用MATLAB作曲线拟合.ppt

上传人:牧羊曲112 文档编号:6002230 上传时间:2023-09-13 格式:PPT 页数:12 大小:341.61KB
返回 下载 相关 举报
用MATLAB作曲线拟合.ppt_第1页
第1页 / 共12页
用MATLAB作曲线拟合.ppt_第2页
第2页 / 共12页
用MATLAB作曲线拟合.ppt_第3页
第3页 / 共12页
用MATLAB作曲线拟合.ppt_第4页
第4页 / 共12页
用MATLAB作曲线拟合.ppt_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《用MATLAB作曲线拟合.ppt》由会员分享,可在线阅读,更多相关《用MATLAB作曲线拟合.ppt(12页珍藏版)》请在三一办公上搜索。

1、1.线性拟合,作多项式f(x)=a1xm+amx+am+1拟合,可用以下命令:,a=polyfit(x,y,m),多项式在 x 处的值 y 可用以下命令计算:y=polyval(a,x),用MATLAB作曲线拟合,解:输入以下命令:x=0:0.1:1;y=-0.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2;A=polyfit(x,y,2)%作出数据点和拟合曲线的图形 z=polyval(A,x);plot(x,y,k+,x,z,r),2)计算结果:=-9.8108 20.1293-0.0317,例 对下面一组数据作二次多项式拟合,

2、(1)lsqcurvefit已知数据点:xdata=(xdata1,xdata2,xdatan),ydata=(ydata1,ydata2,ydatan),2.非线性拟合,Matlab的提供了两个求非线性最小二乘拟合的函数:lsqcurvefit和lsqnonlin。两个命令都要先建立M-文件fun.m,在其中定义函数f(x),但两者定义f(x)的方式是不同的,可参考例题.,lsqcurvefit用以求含参量x(向量)的向量值函数F(x,xdata)=(F(x,xdata1),F(x,xdatan)T中的参变量x(向量),使得,输入格式为:(1)x=lsqcurvefit(fun,x0,xda

3、ta,ydata);(2)x=lsqcurvefit(fun,x0,xdata,ydata,options);(3)x=lsqcurvefit(fun,x0,xdata,ydata,options,grad);(4)x,options=lsqcurvefit(fun,x0,xdata,ydata,);(5)x,options,funval=lsqcurvefit(fun,x0,xdata,ydata,);(6)x,options,funval,Jacob=lsqcurvefit(fun,x0,xdata,ydata,);,说明:x=lsqcurvefit(fun,x0,xdata,ydata,

4、options);,lsqnonlin用以求含参量x(向量)的向量值函数 f(x)=(f1(x),f2(x),fn(x)T 中的参量x,使得 最小。其中 fi(x)=f(x,xdatai,ydatai)=F(x,xdatai)-ydatai,2.lsqnonlin,已知数据点:xdata=(xdata1,xdata2,xdatan)ydata=(ydata1,ydata2,ydatan),输入格式为:1)x=lsqnonlin(fun,x0);2)x=lsqnonlin(fun,x0,options);3)x=lsqnonlin(fun,x0,options,grad);4)x,options

5、=lsqnonlin(fun,x0,);5)x,options,funval=lsqnonlin(fun,x0,);,说明:x=lsqnonlin(fun,x0,options);,例2 用下面一组数据拟合 中的参数a,b,k,该问题即解最优化问题:,1)编写M-文件 curvefun1.m function f=curvefun1(x,tdata)f=x(1)+x(2)*exp(-0.02*x(3)*tdata)%其中 x(1)=a;x(2)=b;x(3)=k;,2)输入命令tdata=100:100:1000cdata=1e-03*4.54,4.99,5.35,5.65,5.90,6.10

6、,6.26,6.39,6.50,6.59;x0=0.2,0.05,0.05;x=lsqcurvefit(curvefun1,x0,tdata,cdata)f=curvefun1(x,tdata),F(x,tdata)=,x=(a,b,k),解法1.用命令lsqcurvefit,解法2:用命令 lsqnonlinf(x)=F(x,tdata,ctada)=x=(a,b,k),1)编写M-文件 curvefun2.m function f=curvefun2(x)tdata=100:100:1000;cdata=1e-03*4.54,4.99,5.35,5.65,5.90,6.10,6.26,6.

7、39,6.50,6.59;f=x(1)+x(2)*exp(-0.02*x(3)*tdata)-cdata,2)输入命令:x0=0.2,0.05,0.05;x=lsqnonlin(curvefun2,x0)f=curvefun2(x),函数curvefun2的自变量是x,cdata和tdata是已知参数,故应将cdata tdata的值写在curvefun2.m中,可以看出,两个命令的计算结果是相同的.,3)运算结果为:f=0.0043 0.0051 0.0056 0.0059 0.0061 0.0062 0.0062 0.0063 0.0063 0.0063 x=0.0063-0.0034 0.2542,4)拟合得a=0.0063 b=-0.0034 k=0.2542,用命令:polyfit(x,y,m),得到 a1=3.3940,a2=702.4918,练习1 用给定的多项式,如y=x3-6x2+5x-3,产生一组数据(xi,yi,i=1,2,n),再在yi上添加随机干扰(可用rand产生(0,1)均匀分布随机数,或用rands产生N(0,1)分布随机数),然后用xi和添加了随机干扰的yi作的3次多项式拟合,与原系数比较。如果作2或4次多项式拟合,结果如何?,练习2.已知数据:,求拟合函数:,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号