MATLAB中的曲线拟合
曲线拟合是为给定的数据找到一个合适的方程的方法,也可以说是在一些随机数据中找到一个模式。本文的目的是学习使用MATLAB进行曲线拟合,因此,希望读者有数学方面的曲线拟合知识。
曲线拟合的步骤
第1步: 在MATLAB中打开一个新的脚本,用所需的名称保存,以保持程序的可重复使用。
第2步: 如果你有一个数据文件,那么就按照这个步骤进行,否则就转到第4步。通过进入菜单中的 “主页 “部分,然后点击导入数据,导入数据文件。
一个像下面这样的新窗口将被打开。首先,选择数据类型为列向量,选择你想添加的列,然后,点击右上角的导入数据。
现在,导入工作已经完成,我们将转入装配部分。
第3步: 创建2个变量,并将其分配给上一步导入的两个列。你可以在左下方的工作区看到这些列向量的名称。
第4步: 为了学习的目的,我们将使用两个向量x_data和y_data,它们是在脚本中创建的,而不是从数据文件中导入的。然而,在前面的步骤中已经说明了如何将数据导入脚本文件。现在使用polyfit命令来获取通过拟合得到的方程的系数。
语法:
coeffs=polyfit(<independent_data>,
<dependent_data>, <degree_of_equations>)
第5步: 现在我们已经得到了一个存储在coeffs中的多项式。接下来,我们将评估它在x_data中每个点的值。这可以通过polyval命令来完成,它在每个给定的数据点或范围内评估多项式。
plt=polyval(<polynomial>,<data/data_range>)
第6步: 现在,只需用新的多项式和原始数据绘制图表。要把它们都绘制在同一个图形中,可以使用保持命令,如下所示。
示例:
/* MATLAB code for curve fitting */
clear
/* Input the value of X and Y */
x_data=[1,3,5,7,9,11,13,15];
y_data=[4,9,23,37,73,103,133,179];
coeffs=polyfit(x_data,y_data,5);
plt=polyval(coeffs,x_data);
plot(x_data,plt,'r');
hold on
plot(x_data,y_data,'o');
xlabel('X_ data')
ylabel('Y_ data')
title('Polynomial fitting')
hold off
输出: