资源描述:
《matlab三维曲线拟合》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、三维曲线(非线性)拟合步骤1设定目标函数.(M函数书写)%可以是任意的例如:functionf=mydata(a,data)%y的值目标函数值或者是第三维的,a=[a(1),a(2)]列向量x=data(1,:);%data是一2维数组,x=x1y=data(2,:);%data是一2维数组,x=x2f=a(1)*x+a(2)*x.*y;0000000000000000000%这里的a(1),a(2)为目标函数的系数值。f的值相当于ydata的值2然后给出数据xdata和ydata的数据和拟合函数lsqcurvefit例如:x1=[1.05001.05201.05301.09
2、001.09901.10201.12401.1420...1.14901.05001.05201.05301.09001.09901.10201.12401.14201.1490];x2=[3.85001.65002.75005.50007.70003.30004.95008.250011.5500...1.65002.75003.85007.70003.30005.50008.250011.55004.9500];ydata=[56.200062.800062.200040.800061.400057.500044.500054.8000...53.900064.20006
3、2.900064.100063.000062.200064.200063.6000...52.500062.0000];data=[x1;x2];%类似于将x1x2整合成一个2维数组。a0=[-0.0014,0.07];option=optimset('MaxFunEvals',5000);formatlong;[a,resnorm]=lsqcurvefit(@mydata,a0,data,ydata,[],[],option);yy=mydata(a,data);result=[ydata'yy'(yy-ydata)']%a的值为拟合的目标函数的参数值利用lsqcurvef
4、it进行拟合的它完整的语法形式是:%[x,resnorm,residual,exitflag,output,lambda,jacobian]=lsqcurvefit(fun,x0,xdata,ydata,lb,ub,options)二维曲线(非线性)拟合步骤1.functionF=myfun(x,xdata)F=x(1)*xdata.^2+x(2)*sin(xdata)+x(3)*xdata.^3;%可以是任意的2.然后给出数据xdata和ydata>>xdata=[3.67.79.34.18.62.81.37.910.05.4];>>ydata=[16.5150.6263.
5、124.7208.59.92.7163.9325.054.3];>>x0=[10,10,10];%初始估计值>>[x,resnorm]=lsqcurvefit(@myfun,x0,xdata,ydata)搜狐博客>豆豆快乐吧>日志2009-09-01
6、Matlab画三维图的方法Matlab画三维图的方法Tags:Matlab.三维曲线的画法三维空间曲线要用到plot3函数,这个和plot类似。plot3函数有三个参数,x,y和z轴,比如下面的例子:>>T=-2:0.01:2;>>plot3(cos(2*pi*T),sin(2*pi*T),T)如果安装了SymbolicMath
7、Toolbox的话也可以用下面ezlpot3函数的方法:>>ezplot3('cos(2*pi*T)','sin(2*pi*T)','T',[-22])三维曲面的画法有mesh何surf两种命令来画三维曲面,它们使用的场合不同。前者是当z轴是x和y的显式函数时,后者是x,y,z中某个为其他2个的函数。mesh函数>>[XY]=meshgrid(-2:.1:2,-2:.1:2);>>Z=X.^2-Y.^2;>>mesh(X,Y,Z)同理用SymbolicMathToolbox可以直接执行>>ezmesh('X.^2-Y.^2',[-22],[-22])surf函数在函数不能表示
8、成z=f(x,y)时,需要用surf函数。比如x2+y2+z2=1.先需要用柱面坐标或者球坐标来表示。这里用柱面坐标表示为r2+z2=1x=sqrt(1-z2)cosθ,x=sqrt(1-z2)sinθ;执行matlab指令:>>[theta,Z]=meshgrid((0:0.1:2)*pi,(-1:0.1:1));>>X=sqrt(1-Z.^2).*cos(theta);>>Y=sqrt(1-Z.^2).*sin(theta);>>surf(X,Y,Z);axissquare同理用SymbolicMa