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');
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('分段3次Hermite插值');
subplot(236);
plot(x,y,'ro',xi,yi_v5cubic,'b-');
title('MATLAB5种三次多项式插值');
|