Matlab进行多项式拟合

觉得有用的先点赞后收藏,不要只收藏不点赞!!

1⃣️一个坐标系里面绘制多个函数图像

clear
clc
x = [0  10 20 30  40  50   60  70  80  90 100 110  120];
y = [5  1 7.5  3 4.5 8.8 15.5 6.5  -5 -10  -2  4.5  7 ];
p5=polyfit(x,y,5);%5阶多项式拟合
y5=polyval(p5,x);
p5=vpa(poly2sym(p5),5);
p9=polyfit(x,y,9);%9阶多项式拟合
y9=polyval(p9,x);
figure;%画图显示
plot(x,y,'bo');
hold on;
plot(x,y5,'r');
plot(x,y9,'g--');
legend('原始数据','5阶多项式拟合','9阶多项式拟合');
xlabel('x');
ylabel('y');

Matlab进行多项式拟合_第1张图片

2⃣️一个GUI里面绘制多个坐标图像


clear
clc
x=0:0.2:2;
y=(x.^2-3*x+5).*exp(-3*x).*sin(x);
xi=0:0.03:2;%要插值的数据
yi_nearest=interp1(x,y,xi,'nearest');
yi_linear=interp1(x,y,xi);
yi_spine=interp1(x,y,xi,'pchip');
yi_pchip=interp1(x,y,xi,'pchip');
yi_v5cubic=interp1(x,y,xi,'v5cubic');
figure;
hold on;
subplot(231);
plot(x,y,'ro');
title('已知数据点');
subplot(232);
plot(x,y,'ro',xi,yi_nearest,'b-');
title('临近点插值');
subplot(233);
plot(x,y,'ro',xi,yi_linear,'b-');
title('线性插值');
subplot(234);
plot(x,y,'ro',xi,yi_spine,'b-');
title('3次样条插值');
subplot(235);
plot(x,y,'ro',xi,yi_pchip,'b-');
title('分段3Hermite插值');
subplot(236);
plot(x,y,'ro',xi,yi_v5cubic,'b-');
title('MATLAB5种三次多项式插值');

Matlab进行多项式拟合_第2张图片

你可能感兴趣的:(Matlab,matlab,几何学,机器学习)