chm818
2009-01-12, 17:05
函数为:y=0.1+(a-0.1).*(1-erf(x./(2.*sqrt(b.*7776000))));
erf(x)为误差函数,要求x必须为实数,
x=[0.25,0.75,1.25,1.75,2.25,2.75,3.5,4.5,5.5,7,8,10,12,14,16]
y=[2.409099672,1.565396114,0.940174982,0.605753968,0.658565222,0.622579467,...
0.253082852,0.276049767,0.221442495,0.157116236,0.102593353,0.069936958,...
0.065624737,0.075597258,0.062826299];
现在要用最小二乘法求解a和b的值来,我用cftool做的时候,用上面的函数表达式,提示input必须为实数,拟合无法进行,erf里面应该是实数啊,不知道为什么?后来我在erf()外面加了一个abs(),可以拟合了,但是拟合的结果不合适,b应该是正数,却得到了负数的结果来,搞不定,请前辈指点,在线急等回复。
再就是cftool实现的拟合好像不是最小二乘法吧?!
erf(x)为误差函数,要求x必须为实数,
x=[0.25,0.75,1.25,1.75,2.25,2.75,3.5,4.5,5.5,7,8,10,12,14,16]
y=[2.409099672,1.565396114,0.940174982,0.605753968,0.658565222,0.622579467,...
0.253082852,0.276049767,0.221442495,0.157116236,0.102593353,0.069936958,...
0.065624737,0.075597258,0.062826299];
现在要用最小二乘法求解a和b的值来,我用cftool做的时候,用上面的函数表达式,提示input必须为实数,拟合无法进行,erf里面应该是实数啊,不知道为什么?后来我在erf()外面加了一个abs(),可以拟合了,但是拟合的结果不合适,b应该是正数,却得到了负数的结果来,搞不定,请前辈指点,在线急等回复。
再就是cftool实现的拟合好像不是最小二乘法吧?!