网站大量收购闲置独家精品文档,联系QQ:2885784924

MATLAB讲义解析.ppt

  1. 1、本文档共145页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MATLAB讲义解析

* 海底曲面图 * %程序二:插值并作出水深小于5的海域范围。 x1=75:1:200; y1=-50:1:150; [x1,y1]=meshgrid(x1,y1); z1=griddata(x,y,z,x1,y1,v4); %插值 z1(z1=5)=nan; %将水深大于5的置为nan,这样绘图就不会显示出来 meshc(x1,y1,z1) * 水深小于5的海域范围 * 1.作多项式f(x)=a1xm+ …+amx+am+1拟合,可利用已有程序: a=polyfit(x,y,m) 输入同长度 的数组x,y 拟合多项 式次数 2.多项式在x处的值y可用以下命令计算: y=polyval(a,x) 曲线拟合 1)多项式拟合 * 1)输入以下命令: 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)计算结果: A = -9.8108 20.1293 -0.0317 用多项式拟合的命令 * 1. lsqcurvefit 已知数据点: xdata=(xdata1,xdata2,…,xdatan), ydata=(ydata1,ydata2,…,ydatan) Matlab提供了求非线性最小二乘拟合的函数:lsqcurvefit.这个命令都要先建立M文件fun.m,在其中定义函数f(x),但两者定义f(x)的方式是不同的,可参考例题. lsqcurvefit用以求含参量x(向量)的向量值函数 F(x,xdata)=(F(x,xdata1),…,F(x,xdatan))T 中的参变量x(向量),使得 2)最小二乘曲线拟合 * 该函数调用格式为: [a, Jm] = lsqcurvefit (‘fun’,x0,xdata,ydata); 其中,fun为原型函数的Matlab表示,x0为最优化的初值,xdata,ydata为原始输入输出数据向量,调用该函数则将返回待定系数a以及在待定系数下的目标函数的值Jm 例 假设有一组实测数据 xi 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 yi 2.3201 2.647 2.9707 3.2885 3.6008 3.909 4.2147 4.5191 4.8232 5.1275 假设已知该数据可能满足的原型函数为 试求出满足下面数据的最小二乘解的a, b, c, d的值。 * 先建立原型函数: function y=f1(a,x) y=a(1)*x+a(2)*x.^2.*exp(-a(3)*x)+a(4); 在命令窗口中输入: x=[0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0]; y=[2.3201 2.647 2.9707 3.2885 3.6008 3.909 4.2147 4.5191 4.8232 5.1275]; a=lsqcurvefit(‘f1’,[1;2;2;2],x,y) * 例 用下面一组数据拟合 中的参数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:1000 cdata=1e-03*[4.54,4.99,5.35,5.65,5.90,6.10,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)= ,

文档评论(0)

little28 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档