用matlab拟合怎么得到公式,有没有直接得到公式的函数

问题描述:

用matlab拟合怎么得到公式,有没有直接得到公式的函数
x=[1030 1102 1208 1300 1403 1511 1620 1770 1820 1930 2010 2189 2265 2345];
y=[10 20 30 40 50 60 70 80 90 100 110 120 130 140];
plot(x,y,'*');
axis([0 2500 0 150]);
a=polyfit(x,y,1);
y0=polyval(a,x);
hold on;


plot(x,y0,'r');
1个回答 分类:综合 2014-12-01

问题解答:

我来补答
lz 看到楼上有两位大神回复了,我是不想参合,但由于matlab确实有这样的函数,而不是向楼上这种disp(['y=' num2str(a(1)) '*x' num2str(a(2))]),手动显示,不够智能.具体函数是poly2sym.
x=[1030 1102 1208 1300 1403 1511 1620 1770 1820 1930 2010 2189 2265 2345];
y=[10 20 30 40 50 60 70 80 90 100 110 120 130 140];
a=polyfit(x,y,1);
syms v
fy=vpa(poly2sym(a,v),4)%制定v为变量.函数默认x为自变量
结果:
fy =
0.09575*v - 85.74
由于默认x为自变量,也可以这样
clear
x=[1030 1102 1208 1300 1403 1511 1620 1770 1820 1930 2010 2189 2265 2345];
y=[10 20 30 40 50 60 70 80 90 100 110 120 130 140];
a=polyfit(x,y,1);
fy=vpa(poly2sym(a),4)
结果:
fy =
0.09575*x - 85.74
如果想拟合为二次的多项式:
clear
x=[1030 1102 1208 1300 1403 1511 1620 1770 1820 1930 2010 2189 2265 2345];
y=[10 20 30 40 50 60 70 80 90 100 110 120 130 140];
a=polyfit(x,y,2);
fy=vpa(poly2sym(a),4)
结果:
fy =
- 3.791*10^(-6)*x^2 + 0.1085*x - 95.84
 
 
展开全文阅读
剩余:2000
上一页:函数急