MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   [MATLAB混合编程] 求助 利用MATLAB画函数图的问题。 (https://www.labfans.com/bbs/showthread.php?t=8621)

103050 2009-05-25 20:35

求助 利用MATLAB画函数图的问题。
 
利用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('拟合前','拟合后图像')
可出来的二次函数图近乎于一条直线,想请哪位高手帮助,出来的图形像二次曲线!谢谢:confused:

麒麟子 2009-05-25 23:15

回复: 求助 利用MATLAB画函数图的问题。
 
呵呵,问题在于你根本就没有进行拟合, 还有原始数据太少,只有四个,如果在一个小范围内的话,就是直线,换个大范围看看,我编代码如下,你看看
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('拟合前','拟合后图像') ;


所有时间均为北京时间。现在的时间是 03:17

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.