找回密码
 注册
Simdroid-非首页
查看: 193|回复: 3

曲线拟合

[复制链接]
发表于 2011-4-30 10:19:34 | 显示全部楼层 |阅读模式 来自 四川成都
怎样进行没有常数项的多项式拟合,也就是曲线要强制通过零点。假如有x=【0 40 80 120 160 200】,y=【0 18 33 59 89 105】,怎样拟合没有常数项的二次多项式,我知道polyfit可以用来拟合带有常数项的多项式。希望知道的帮帮忙,谢谢
发表于 2011-4-30 20:16:34 | 显示全部楼层 来自 日本
Simdroid开发平台
使用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)

还有其他信息

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2011-5-1 17:46:14 | 显示全部楼层 来自 山东烟台
本帖最后由 liuyalong008 于 2011-5-1 18:03 编辑

看个人习惯,可用nlinfit,也可用fittype
nlinfit可能更灵活一点
  1. x=[0 40 80 120 160 200],y=[0 18 33 59 89 105]
  2. g=fittype('a*x^2+b*x')
  3. f=fit(x',y',g,'startpoint',[0 0])
  4. 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)[/code]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2011-5-3 00:15:52 | 显示全部楼层 来自 英国
本帖最后由 nwcwww 于 2011-5-3 00:28 编辑

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

就这个问题来说左除得到两个系数最简单:
>> c=[x(:), x(:).^2]\y(:)

c =

  4.1745e-001
  6.2112e-004

nlinfit和楼上说的一样,lsqlin用法类似,查下help就知道了。

评分

1

查看全部评分

回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-10-4 03:18 , Processed in 0.045964 second(s), 20 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表