Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2009-05-25
年龄: 41
帖子: 5
声望力: 0 ![]() |
![]()
利用x=[12,14,16,18];y=[132.291,113.019,90.259,70.757];这些数据建立二次函数图,本人写的函数程序:
polyfit[x,y,n]; x=[12,14,16,18]; y=[132.291,113.019,90.259,70.757]; n=[a*x^2+b*x+c];(此为二次函数式) 按上面的程序不能运行,恳请高手帮助。 另,有高手写如下程序: x=[12,14,16,18]; y=[0.000630,0.000538,0.000430,0.000341]; p=polyfit(x,y,2) x1=12:0.5:18; y1=polyval(p,x1); plot(x,y,'*b',x1,y1,'-r'); %legend('拟合前','拟合后图像') 可出来的二次函数图近乎于一条直线,想请哪位高手帮助,出来的图形像二次曲线!谢谢 ![]() |
![]() |
![]() |
![]() |
#2 |
普通会员
注册日期: 2009-03-25
年龄: 37
帖子: 52
声望力: 18 ![]() |
![]()
呵呵,问题在于你根本就没有进行拟合, 还有原始数据太少,只有四个,如果在一个小范围内的话,就是直线,换个大范围看看,我编代码如下,你看看
x=[12,14,16,18]; y=[0.000630,0.000538,0.000430,0.000341]; p=polyfit(x,y,2); a=p(1); b=p(2); c=p(3); x1=linspace(1,200); y1=a*(x1.^2)+b*x1+c; plot(x,y,'*',x1,y1); legend('拟合前','拟合后图像') ;
__________________
:水榭焚香听琴事,浪荡江湖不系舟: ![]() 感谢请点thanks |
![]() |
![]() |