499699012 发表于 2011-4-30 10:19:34

曲线拟合

怎样进行没有常数项的多项式拟合,也就是曲线要强制通过零点。假如有x=【0 40 80 120 160 200】,y=【0 18 33 59 89 105】,怎样拟合没有常数项的二次多项式,我知道polyfit可以用来拟合带有常数项的多项式。希望知道的帮帮忙,谢谢

guojunhang 发表于 2011-4-30 20:16:34

使用curving fitting tool 吧
可以在fitting选项里面建立custom equation
a*x*x+b*x
拟合后:
General model:
       f(x) = a*x*x+b*x
Coefficients (with 95% confidence bounds):
       a =   0.0006211(-0.0003283, 0.001571)
       b =      0.4175(0.2572, 0.5777)

还有其他信息

liuyalong008 发表于 2011-5-1 17:46:14

本帖最后由 liuyalong008 于 2011-5-1 18:03 编辑

看个人习惯,可用nlinfit,也可用fittype
nlinfit可能更灵活一点x=,y=
g=fittype('a*x^2+b*x')
f=fit(x',y',g,'startpoint',)
plot(f,x,y)[codef =
   General model:
   f(x) = a*x^2+b*x
   Coefficients (with 95% confidence bounds):
       a =   0.0006211(-0.0003283, 0.001571)
       b =      0.4175(0.2572, 0.5777)

nwcwww 发表于 2011-5-3 00:15:52

本帖最后由 nwcwww 于 2011-5-3 00:28 编辑

因为有线性约束所以polyfit不适用。
可以考虑用左除,nlinfit或者lsqlin。

就这个问题来说左除得到两个系数最简单:
>> c=\y(:)

c =

4.1745e-001
6.2112e-004

nlinfit和楼上说的一样,lsqlin用法类似,查下help就知道了。
页: [1]
查看完整版本: 曲线拟合