matlab拟合求方程系数,然后把曲线作图发现自己拟合相差甚远,求高手相助,谢谢
下边是要拟合的数据>>a=[300:10:1200];>>b=[62.346249.716337.086327.112717.139114.179911.220710.9...
下边是要拟合的数据
>> a=[300:10:1200];>> b=[62.3462 49.7163 37.0863 27.1127 17.1391 14.1799 11.2207 10.9026 10.5859 10.2868 9.9896 9.8516 9.7158 9.6431 9.5728 9.5919 9.613 9.5142 9.4113 9.2531 9.0929 8.8627 8.6277 8.4973 8.3655 8.3493 8.3318 8.3045 8.2751 8.258 8.2364 8.191 8.1385 8.1386 8.1299 8.0807 8.0173 7.9957 7.958 7.8037 7.6355 7.5288 7.4096 7.2856 7.1452 6.9159 6.6723 6.5503 6.4113 5.9847 5.5667 5.3913 5.2041 4.9088 4.6186 4.3656 4.1135 3.8235 3.543 3.2073 2.8957 2.7319 2.5518 2.2415 1.9569 1.7047 1.4746 1.2816 1.10002 0.92334 0.75759 0.60001 0.46409 0.35672 0.27071 0.1943 0.13158 0.09582 0.074964 0.056376 0.041637 0.03213 0.023806 0.017857 0.011906 0.0080959 0.0050002 0.0026189 0.0007737 0.00042842 0.00026176];>> cftool
这是用cftool拟合出来的散点图和拟合曲线,第二个是用下边程序画出来的图
>> t=300:10:1200;>> y=-3.2337e-022*t.^9 + 2.3185e-018*t.^8 - 7.2644e-015*t.^7 + 1.3042e-011*t.^6-1.4767e-008*t.^5 + 1.0925e-005*t.^4 - 0.0052758*t.^3 + 1.6023*t.^2-277.5668*t + 20897.5624;>> plot(t,y)
方程系数全是拟合出来的系数,不会出现输入错误,用的是9次多项式拟合,为什么用方程画出来的图会与拟合时的图这么大区别呢?
求大神指点,万分感激,临表涕零。。。 展开
>> a=[300:10:1200];>> b=[62.3462 49.7163 37.0863 27.1127 17.1391 14.1799 11.2207 10.9026 10.5859 10.2868 9.9896 9.8516 9.7158 9.6431 9.5728 9.5919 9.613 9.5142 9.4113 9.2531 9.0929 8.8627 8.6277 8.4973 8.3655 8.3493 8.3318 8.3045 8.2751 8.258 8.2364 8.191 8.1385 8.1386 8.1299 8.0807 8.0173 7.9957 7.958 7.8037 7.6355 7.5288 7.4096 7.2856 7.1452 6.9159 6.6723 6.5503 6.4113 5.9847 5.5667 5.3913 5.2041 4.9088 4.6186 4.3656 4.1135 3.8235 3.543 3.2073 2.8957 2.7319 2.5518 2.2415 1.9569 1.7047 1.4746 1.2816 1.10002 0.92334 0.75759 0.60001 0.46409 0.35672 0.27071 0.1943 0.13158 0.09582 0.074964 0.056376 0.041637 0.03213 0.023806 0.017857 0.011906 0.0080959 0.0050002 0.0026189 0.0007737 0.00042842 0.00026176];>> cftool
这是用cftool拟合出来的散点图和拟合曲线,第二个是用下边程序画出来的图
>> t=300:10:1200;>> y=-3.2337e-022*t.^9 + 2.3185e-018*t.^8 - 7.2644e-015*t.^7 + 1.3042e-011*t.^6-1.4767e-008*t.^5 + 1.0925e-005*t.^4 - 0.0052758*t.^3 + 1.6023*t.^2-277.5668*t + 20897.5624;>> plot(t,y)
方程系数全是拟合出来的系数,不会出现输入错误,用的是9次多项式拟合,为什么用方程画出来的图会与拟合时的图这么大区别呢?
求大神指点,万分感激,临表涕零。。。 展开
3个回答
展开全部
你肯定输错系数了
多项式拟合不要手动输入系数,matlab里有专门算多项式的函数polyval
p = polyfit(a,b,9)
f = polyval(p,a);
plot(a,b,'.k',a,f,'-')
多项式拟合不要手动输入系数,matlab里有专门算多项式的函数polyval
p = polyfit(a,b,9)
f = polyval(p,a);
plot(a,b,'.k',a,f,'-')
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
系数顺序错了吧,感觉走势完全相反……
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询