多项式回归的matlab代码
时间: 2024-12-24 20:37:18 浏览: 3
在MATLAB中,你可以使用内置的`polyfit`函数来进行多项式回归。这是一个例子,假设我们有一组二维数据`xData`和`yData`,我们想要找到一个二次多项式(二次方程)作为最佳拟合:
```matlab
% 定义输入数据
xData = [1 2 3 4 5]; % 输入变量
yData = [2 4 6 8 10]; % 输出变量,通常是对应输入的增倍值
% 使用polyfit函数进行二次多项式拟合
p = polyfit(xData, yData, 2); % 第三个参数2表示我们要找一个二次多项式
% 计算多项式表达式
coefficients = [p(1) ' x^2 + ' num2str(p(2)) ' x + ' num2str(p(3))];
polynomial = str2double(coefficients); % 将字符串转换为数值多项式
% 求解y值
xRange = linspace(min(xData), max(xData), 100); % 创建x轴范围用于预测
yFit = polynomial*xRange.^2 + p(2)*xRange + p(3);
% 绘制数据和拟合曲线
plot(xData, yData, 'o', 'MarkerSize', 10, 'LineWidth', 1.5);
hold on;
plot(xRange, yFit, '-');
xlabel('x');
ylabel('y');
title(['Quadratic Polynomial Regression - Coefficients: (' num2str(p(1)) ', ' num2str(p(2)) ', ' num2str(p(3)) ')']);
% 显示拟合方程
disp(['Fitted equation: ' coefficients]);
```
这个代码会返回一个二次多项式,并显示在图形上。如果你想尝试其他阶数的多项式,只需改变`polyfit`中的第三个参数即可。
阅读全文