代码详解:

clear;
clc;
clf;
x = -1:0.01:1;     % 从-1开始,以0.01为步长,一直到1的所有值。
xf = -1:0.2:1;
y = 1./(1+25*x.^2);
yf = 1./(1+25*xf.^2);
y1 = polyfit(xf,yf,3);  % 使用polyfit函数进行三次多项式拟合
Y =polyval(y1,x);      % 计算拟合多项式在x上的值
y2 =polyval(y1,xf);      % 计算拟合多项式在xf上的值
plot(x,y,x,Y,'m', xf,yf,'or',xf,y2,'*b');% 绘制曲线
f = poly2str(y1,'x')     % 将拟合多项式系数向量转换为表达式
title('Curve Fitting with d=3','FontName','New Times Roman','FontSize',12);
xlabel('x-axis','FontName','New Times Roman','FontSize',12);
ylabel('y-axis','FontName','New Times Roman','FontSize',12);
legend('Given curve','Fitting curve')

代码解释:

  1. clear; 清除MATLAB工作空间中的所有变量。
  2. clc; 清除MATLAB命令窗口中的所有内容。
  3. clf; 清除MATLAB图形窗口中的所有内容。
  4. x = -1:0.01:1; 创建一个包含从-1开始,以0.01为步长,一直到1的所有值的向量x。
  5. xf = -1:0.2:1; 创建一个包含从-1开始,以0.2为步长,一直到1的所有值的向量xf。
  6. y = 1./(1+25*x.^2); 创建一个包含函数1/(1+25x²)在向量x中的每个元素上的值的向量y。
  7. yf = 1./(1+25*xf.^2); 创建一个包含函数1/(1+25x²)在向量xf中的每个元素上的值的向量yf。
  8. y1 = polyfit(xf,yf,3); 使用polyfit函数对向量xf和yf进行三次多项式拟合,并将拟合后的多项式的系数向量y1存储在变量y1中。
  9. Y =polyval(y1,x); 使用polyval函数计算在向量x的每个元素上拟合后的多项式的值,并将这些值存储在向量Y中。
  10. y2 =polyval(y1,xf); 使用polyval函数计算在向量xf的每个元素上拟合后的多项式的值,并将这些值存储在向量y2中。
  11. plot(x,y,x,Y,'m', xf,yf,'or',xf,y2,'*b'); 绘制原函数曲线以及拟合多项式曲线,并将原函数曲线用蓝色的线条表示,拟合多项式曲线用紫色的线条表示,向量xf和yf中的点用红色圆点表示,向量xf和y2中的点用蓝色星号表示。
  12. f = poly2str(y1,'x') 使用poly2str函数将三次多项式拟合后得到的多项式的系数向量表示成对应的多项式的习惯表达式,并将该表达式存储在变量f中。
  13. title('Curve Fitting with d=3','FontName','New Times Roman','FontSize',12); 设置图形标题为“Curve Fitting with d=3”,并将字体设置为New Times Roman,字体大小设置为12。
  14. xlabel('x-axis','FontName','New Times Roman','FontSize',12); 设置x轴标签为“x-axis”,并将字体设置为New Times Roman,字体大小设置为12。
  15. ylabel('y-axis','FontName','New Times Roman','FontSize',12); 设置y轴标签为“y-axis”,并将字体设置为New Times Roman,字体大小设置为12。
  16. legend('Given curve','Fitting curve') 添加图例,其中“Given curve”表示原函数曲线,“Fitting curve”表示拟合多项式曲线。

总结:

这段MATLAB代码演示了如何使用polyfitpolyval函数进行三次多项式曲线拟合,并绘制原函数曲线和拟合曲线。代码清晰简洁,易于理解,适用于学习MATLAB曲线拟合的基本操作。


原文地址: https://www.cveoy.top/t/topic/n4DD 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录