matlab三维曲线拟合已知数据点,用plot3画出的三维曲线如图所示,请各位高手求解,可以用什么三维曲线拟合?目的是要得到曲线方程
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/15 06:51:48
matlab三维曲线拟合已知数据点,用plot3画出的三维曲线如图所示,请各位高手求解,可以用什么三维曲线拟合?目的是要得到曲线方程
matlab三维曲线拟合
已知数据点,用plot3画出的三维曲线如图所示,请各位高手求解,可以用什么三维曲线拟合?目的是要得到曲线方程
matlab三维曲线拟合已知数据点,用plot3画出的三维曲线如图所示,请各位高手求解,可以用什么三维曲线拟合?目的是要得到曲线方程
三维曲线(非线性)拟合步骤 1 设定目标函数. (M 函数书写)% 可以是任意的 例如: function f=mydata(a,data) %y 的值目标函数值 或者是第三维的,a=[a(1) ,a(2)] 列向量 x=data(1,:); %data 是一 2 维数组,x=x1 y=data(2,:); %data 是一 2 维数组,x=x2 f=a(1)*x+a(2)*x.*y; 0000000000000000000 %这里的 a(1), a(2)为目标函数的系 数值. f 的值相当于 ydata 的值 2 然后给出数据 xdata 和 ydata 的数据和拟合函数 lsqcurvefit 例如: x1=[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]; x2=[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]; ydata=[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=[x1;x2]; %类似于将 x1 x2 整合成一个 2 维数组. a0= [-0.0014,0.07]; option=optimset('MaxFunEvals',5000); format long; [a,resnorm]=lsqcurvefit(@mydata,a0,data,ydata,[],[],option); yy=mydata(a,data); result=[ydata' yy' (yy-ydata)'] % a 的值为拟合的目标函数的参数值 利用 lsqcurvefit 进行拟合的 它完整的语法形式是: % [x,resnorm,residual,exitflag,output,lambda,jacobian] =lsqcurvefit(fun,x0,xdata,ydata,lb,ub,options)