第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(平均)
就可以算出来了,考试的话是会给出公式的,记得怎么算就可以了