本示例演示了如何在MATLAB中使用三次多项式对给定曲线进行拟合,并绘制原函数曲线和拟合曲线。

clear; % 清除命令窗口中的变量和函数
clc; % 清除命令窗口中的内容
clf; % 清除当前图形窗口中的图形
x = -1:0.01:1; % 定义一个包含-1到1之间0.01间隔的数组
xf = -1:0.2:1; % 定义一个包含-1到1之间0.2间隔的数组
y = 1./(1+25*x.^2); % 计算y的值
yf = 1./(1+25*xf.^2); % 计算yf的值
y1 = polyfit(xf,yf,3); % 对yf进行三次多项式拟合,返回多项式系数向量y1
Y =polyval(y1,x); % 用拟合后的多项式系数向量y1计算x对应的y值
y2 =polyval(y1,xf); % 用拟合后的多项式系数向量y1计算xf对应的yf值
plot(x,y,x,Y,'m', xf,yf,'or',xf,y2,'*b'); % 绘制原函数曲线、拟合多项式曲线、样本点和拟合后的样本点
f = poly2str(y1,'x') % 将三次多项式拟合后得到的多项式的系数向量表示成对应的多项式的习惯表达式,并赋值给f
title('Curve Fitting with d=3','FontName','New Times Roman','FontSize',12); % 绘制图形标题
xlabel('x-axis','FontName','New Times Roman','FontSize',12); % 绘制x轴标签
ylabel('y-axis','FontName','New Times Roman','FontSize',12); % 绘制y轴标签
legend('Given curve','Fitting curve') % 绘制图例,给出原函数曲线和拟合曲线的名称

代码解析:

  • clear;:清除命令窗口中的变量和函数。
  • clc;:清除命令窗口中的内容。
  • clf;:清除当前图形窗口中的图形。
  • x = -1:0.01:1;:定义一个包含-1到1之间0.01间隔的数组。
  • xf = -1:0.2:1;:定义一个包含-1到1之间0.2间隔的数组。
  • y = 1./(1+25*x.^2);:计算y的值。
  • yf = 1./(1+25*xf.^2);:计算yf的值。
  • y1 = polyfit(xf,yf,3);:对yf进行三次多项式拟合,返回多项式系数向量y1。
  • Y =polyval(y1,x);:用拟合后的多项式系数向量y1计算x对应的y值。
  • y2 =polyval(y1,xf);:用拟合后的多项式系数向量y1计算xf对应的yf值。
  • plot(x,y,x,Y,'m', xf,yf,'or',xf,y2,'*b');:绘制原函数曲线、拟合多项式曲线、样本点和拟合后的样本点。
  • f = poly2str(y1,'x'):将三次多项式拟合后得到的多项式的系数向量表示成对应的多项式的习惯表达式,并赋值给f。
  • title('Curve Fitting with d=3','FontName','New Times Roman','FontSize',12);:绘制图形标题。
  • xlabel('x-axis','FontName','New Times Roman','FontSize',12);:绘制x轴标签。
  • ylabel('y-axis','FontName','New Times Roman','FontSize',12);:绘制y轴标签。
  • legend('Given curve','Fitting curve'):绘制图例,给出原函数曲线和拟合曲线的名称。

本示例中,我们使用polyfit函数对给定的数据点进行三次多项式拟合,并使用polyval函数计算拟合多项式在不同x值下的y值。最后,我们使用plot函数绘制原函数曲线和拟合曲线,并添加标题、轴标签和图例。

希望本示例能帮助您理解在MATLAB中如何使用三次多项式进行曲线拟合。


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

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