多项式拟合(1)polyfit是多项式的拟合函数 (2)polyval用于对已经拟合后的多项式系数,当给出某个点时求其函数值。 (3)poly2str是将拟合后的多项式系数(双精度数组)转换为字符形式的函数(就是看着清楚一些), 如 p=[1,3,4];poly2str(p,'x') ans = x^2 + 3 x + 4 备注:legend函数加标注 (4)linspace 常用的用来生成等间距数组的方法 用法:linspace(x1,x2,N) 确定N的方法是依照间距d=(a2-a1)/(N-1) 参考:https://jingyan.baidu.com/article/7e440953d40a762fc0e2ef1b.html 很详细 |
%%%%%%% matlab程序 多项式拟合
clc
x = [1 2 3 4 5 6 ]; %data
y = [5.5 43.1 128 290.7 498.4 978.67]; %data
p = polyfit(x,y,4) %p为拟合函数的系数
x2 = 1:.1:6;
y2 = polyval(p,x2);
plot(x,y,'o',x2,y2);
grid on
disp(char(['y=',poly2str(p,'t')]))
legend('y','y2')
%disp(char(['y=',poly2str(p,'t')],['a=',num2str(p(1)),' b=',num2str(p(2)),' c=',num2str(p(3))]));
另一个例子:
%%%%% matlab函数
clc;
x = linspace(0,1,5)
y = 1./(1+x)
p = polyfit(x,y,4)
x1 = linspace(0,2);
y1 = 1./(1+x1);
f1 = polyval(p,x1);
figure
plot(x,y,'o')
hold on
plot(x1,y1)
plot(x1,f1,'r--')
legend('y','y1','f1')