matlab多项式拟合代码并给出拟合公式
时间: 2024-12-24 08:16:50 浏览: 16
Matlab中可以使用`polyfit`函数来进行多项式拟合。下面是一个简单的例子,演示如何通过给定的数据点拟合一条线性和二次多项式:
```matlab
% 创建一些数据点 (x,y)
x = linspace(0, 10, 50); % 等间距的x值
y = sin(x) + 0.5 * x.^2 + 0.1 * randn(size(x)); % 加入随机噪声
% 使用polyfit进行线性拟合 (degree=1)
p_linear = polyfit(x, y, 1);
linear_fit = polyval(p_linear, x);
% 使用polyfit进行二次拟合 (degree=2)
p_quadratic = polyfit(x, y, 2);
quadratic_fit = polyval(p_quadratic, x);
% 显示拟合结果
plot(x, y, 'o', 'MarkerSize', 8, 'LineWidth', 2, 'DisplayName', 'Data Points')
hold on
plot(x, linear_fit, '-r', 'LineWidth', 2, 'DisplayName', 'Linear Fit')
plot(x, quadratic_fit, '-b', 'LineWidth', 2, 'DisplayName', 'Quadratic Fit')
legend('show')
xlabel('x')
ylabel('y')
title('Polynomial Fitting Example')
% 输出拟合公式
disp(['Linear fit: y = ' num2str(p_linear(1)) ' + ' num2str(p_linear(2)) ' * x'])
disp(['Quadratic fit: y = ' num2str(p_quadratic(1)) ' + ' num2str(p_quadratic(2)) ' * x + ' + ' num2str(p_quadratic(3)) ' * x^2'])
```
在这个例子中,线性拟合的公式是 `y = p_linear(1) + p_linear(2)*x`,二次拟合则是 `y = p_quadratic(1) + p_quadratic(2)*x + p_quadratic(3)*x^2`。
阅读全文