matlab最小二乘拟合二次多项式算法代码
时间: 2024-10-30 07:02:41 浏览: 28
在MATLAB中,可以使用`polyfit`函数来进行最小二乘拟合,特别是对二次多项式(也就是二次函数)。这里是一个简单的示例代码,用于拟合数据点:
```matlab
% 假设我们有如下数据点
x = [1, 2, 3, 4, 5];
y = [2, 4, 6, 8, 10]; % 这些是你要拟合的数据
% 使用polyfit函数拟合二次多项式 (degree=2)
p = polyfit(x, y, 2); % p是一个向量,包含了二次多项式的系数,如p(1)*x^2 + p(2)*x + p(3)
% 计算并画出拟合曲线
x_fit = linspace(min(x), max(x)); % 创建新的x值范围进行拟合
y_fit = polyval(p, x_fit); % 拟合函数的结果
plot(x, y, 'o', 'MarkerSize', 10, 'LineWidth', 1); % 绘制原始数据点
hold on;
plot(x_fit, y_fit, '-r'); % 绘制拟合线
xlabel('x');
ylabel('y');
title('Least Squares Fit of a Quadratic');
% 显示拟合方程
disp(['Fitted equation: y = ' num2str(p(1)) 'x^2 + ' num2str(p(2)) 'x + ' num2str(p(3))]);
```
在这个例子中,`polyfit`返回的是一个向量`p`,其元素对应于多项式`ax^2 + bx + c`的系数。`polyval(p, x)`则用于计算给定`x`值下的函数值。
阅读全文