matlab 最小二乘法拟合四次多项式曲线
来源:学生作业帮助网 编辑:作业帮 时间:2024/10/06 11:31:54
x=[123456];y=[2.13.96.18.210.312];nh1=polyfit(x,y,2);%这里是二次拟合,你也可以先画出大概图形估计它是几次曲线然后再判断是12还是3..等.m=1:
xi=[0.019,0.023,0.027];%xdatayi=[430,380,256];%ydataabc0=[4,0.5,5];%initialvalues%%初始值设定abc=lsqcurve
p=[xyones(length(x),1)]\z这样得到的就是平面z=p(1)*x+p(2)*y+p(3)祝你学习快乐!再问:xyz轴中如何显示所拟合的平面再答:方法很多,mesh函数最好
F=@(p,x)p(1)*x(:,1).^2+p(2)*x(:,1).*x(:,2)+p(3)*x(:,2).^2+p(4);%离散数据点x=[6.324606.93791.13727.08751.4
用函数lsqnonlin进行最小二乘拟合functionf=myfunc(c,x,y)f=y-c(1)+c(2)./x;return保存为M文件.然后在命令行下输入:x=[你的x数组]y=[你的y数组
t=[11.41.622.42.633.644.656];y=[0.264241,0.408167,0.475069,0.593994,0.691559,0.732615,...0.800852,0.
1)>>x=linspace(1,32,8);>>y=linspace(0.1,0.8,8);>>p=polyfit(x,y,1)p=0.02260.0774%a=0.0226b=0.07742)>>
首先确认一下,你这的log是以10为底的对数吧?那么命令如下.(如果是以e为底就不用除以log(10)了,自己改一下.)>>x=0.01:0.01:1;>>m=log(x)/log(10);>>for
用polyfit函数,(用来多项式拟合的,是用最小二乘法)举个例子x=[90919293949596];z=[70122144152174196202];a=polyfit(x,z,1)结果:a=1.
y-1=exp(x/a)^2两边取对数,化成线性拟和然后polyfit
%方法一y=[5040302010];t=[556373100121];yp=log(y);p=polyfit(t,yp,1);b=-p(1)a=exp(p(2))yf=a*exp(-b*t);yf-
如上所述,采用polyfit来拟合,二次多项式polyfit(x,y,2)x=[0.110.130.190.210.270.370.530.590.710.790.891.07];y=[3868-10
对于线性函数,除了polyfit(),还可以用regress()等对于非线性函数,可以用lsqcurvefit()或nlinfit()等根据你提供的数据,可以拟合成如下关系Q=0.52429N^1.6
t=0:5:55;y=[01.272.162.863.443.874.154.374.514.584.624.64];%你将t,y的每一个值代入方程,会得到关于a,b,c的三元一次方程组(12个方程)
用曲线拟合工具箱做,很简单的,不过x,y的值要到你的工作空间里去,如图,这里的a,b相当于你的c,n
x=[27560000,55120000,82680000,88192000,110240000,137800000]y=[1743170000,1894750000,2053220000,20670
y=[00.060.110.170.230.280.340.400.460.520.590.650.720.800.870.961.051.161.311.55]';x=[20.0218.9517.7
先建立一个函数functionY=efun(b,x)Y=b(1)*exp(b(2)*x)+b(3)*exp(b(4)*x);保存为efun.m;再输入:x=[0.16670.41670.75001.0
曲线不平滑主要还是你的数据少
你可以查查POLYFIT函数,可以做到拟合曲线