matlab多项式回归代码
时间: 2023-10-05 17:14:25 浏览: 248
下面是一个使用MATLAB进行多项式回归的基本代码示例:
```matlab
% 创建一些示例数据
x = linspace(-5, 5, 100)';
y = 2*x.^3 - 5*x.^2 + 3*x + 5 + randn(size(x))*10;
% 设置多项式的阶数
order = 3;
% 构建多项式矩阵
X = ones(length(x), order+1);
for i = 1:order
X(:, i+1) = x.^i;
end
% 使用最小二乘法拟合多项式
coefficients = (X'*X) \ (X'*y);
% 计算拟合曲线
xfit = linspace(min(x), max(x),100)';
Xfit = ones(length(xfit), order+1);
for i = 1:order
Xfit(:, i+1) = xfit.^i;
end
yfit = Xfit * coefficients;
% 绘制数据点和拟合曲线
figure;
plot(x, y, 'o', 'MarkerSize', 5);
hold on;
plot(xfit, yfit, 'r', 'LineWidth', 2);
xlabel('x');
ylabel('y');
legend('数据点', '拟合曲线');
grid on;
```
这段代码首先创建一些示例数据,然后设置多项式的阶数。接下来,它构建了多项式矩阵,并使用最小二乘法拟合多项式。最后,它计算了拟合曲线,并绘制了数据点和拟合曲线。
你可以根据需要调整示例数据和多项式的阶数来适应你的实际情况。希望能对你有所帮助!
阅读全文