三维曲线(非线性)拟合步骤 1 设定目标函数. (M 函数书写)% 可以是任意的 例如: fu nction f=my data(a,data) %y 的值目标函数值 或者是第三维的,a=[a(1) ,a(2)] 列向量 x =data(1,:); %data 是一2 维数组,x =x 1 y =data(2,:); %data 是一2 维数组,x =x 2 f=a(1)*x +a(2)*x .*y ; 0000000000000000000 %这里的a(1), a(2)为目标函数的系数值。 f 的值相当于 y data 的值 2 然后给出数据 x data 和 y data 的数据和拟合函数lsqcu rv efit 例如: x 1=[1.0500 1.0520 1.0530 1.0900 1.0990 1.1020 1.1240 1.1420... 1.1490 1.0500 1.0520 1.0530 1.0900 1.0990 1.1020 1.1240 1.1420 1.1490]; x 2=[3.8500 1.6500 2.7500 5.5000 7.7000 3.3000 4.9500 8.2500 11.5500... 1.6500 2.7500 3.8500 7.7000 3.3000 5.5000 8.2500 11.5500 4.9500]; y data=[56.2000 62.8000 62.2000 40.8000 61.4000 57.5000 44.5000 54.8000... 53.9000 64.2000 62.9000 64.1000 63.0000 62.2000 64.2000 63.6000... 52.5000 62.0000]; data=[x 1;x 2]; %类似于将 x 1 x 2 整合成一个 2 维数组。 a0= [-0.0014,0.07]; option=optimset('Max Fu nEv als',5000); format long; [a,resnorm]=lsqcu rv efit(@my data,a0,data,y data,[],[],option); y y =my data(a,data); resu lt=[y data' y y ' (y y -y data)'] % a 的值为拟合的目标函数的参数值 利用 lsqcu rv efit 进行拟合的 它完整的语法形式是: % [x ,resnorm,residu al,ex itflag,ou tpu t,lambda,jacobian] =lsqcu rv efit(fu n,x 0,x data,y data,lb,u b,options) 二维曲线(非线性)拟合步骤 1.fu nction F = my fu n(x ,x data) F = x (1)*x data.^2 + x (2)*sin(x data) + x (3)*x data.^3; % 可以是任意的 2.然后给出数据 x data 和 y data >>xdata = [3.6 7.7 9.3 4.1 8.6 2.8 1.3 7.9 10.0 5.4]; >>ydata = [16.5 150.6 263.1 24.7 208.5 9.9 2.7 163.9 325.0 54.3]; >>x0 = [10, 10, 10]; %初始估计值 >>[x,resnorm] = lsqcurvefit(@myfun,x0,xdata,ydata) 搜狐博客 > 豆豆快乐吧 > 日志 2009-09-01 | Matlab 画三维图的方法 Matlab ...