最小二乘法拟合(y=a*e^bx形式)

求求各位大神们!!
有一组数据,求怎么用最小二乘法拟合出来!
我把我的分全压上来了
啊!我忘记了,我要用matlab实现这个y=a*e^bx形式的函数的拟合!!!
需要matlab的代码

第1个回答  2010-05-01
给你段程序,你自己照着改吧,需要给初值。

function Untitled3

clc

xi=[0.019,0.023,0.027]; % x data
yi=[430,380,256]; % y data
abc0=[4,0.5,5]; % initial values
abc = lsqcurvefit(@fun,abc0,xi,yi)

% target function
function y = fun(abc,x)
y = (abc(1)*(1-x/abc(2))+x/abc(2)).^abc(3);

abc =

31.2588 -3.9585 1.7033
=======================================
另外,其实指数的情况两边取一下对数,就变成线性拟合了本回答被提问者采纳
第2个回答  2010-05-01
其实很简单的
先算出这些数据的X和Y的平均数

∑为连加,就是把后面字母对应的数据都加起来!
如数据X=1.2.3.4.5,则∑(X)=1+2+3+4+5=15
数据Y=2.3.4.5.6 则∑(Y)=2+3+4+5+6=20
∑(X*Y)=1*2+2*3+3*4+4*5+5*6=
∑(X*X)=1*1+2*2+3*3+4*4+5*5=
因为有五个数据,所以这里的N=5
分别代入
最后得到关于a.b的二元一次方程组, a=(N∑xy-∑x∑y)/(N∑x^2-(∑x)^2)

b=y(平均)-ax(平均)

就可以算出来了,考试的话是会给出公式的,记得怎么算就可以了
相似回答