matlab线性拟合和二次拟合在一起,输出线性拟合和二次拟合的公式,并输出以此拟合和二次拟合结果与y的差值的代码
时间: 2024-01-22 20:17:48 浏览: 111
以下是 MATLAB 实现代码:
```matlab
% 生成数据
x = 1:10;
y = [1.1, 2.0, 4.0, 6.5, 7.8, 8.9, 10.5, 12.0, 14.0, 16.5];
% 线性拟合
p1 = polyfit(x, y, 1);
y1 = polyval(p1, x);
% 二次拟合
p2 = polyfit(x, y, 2);
y2 = polyval(p2, x);
% 输出线性拟合和二次拟合的公式
fprintf('线性拟合公式:y = %.4f x + %.4f\n', p1);
fprintf('二次拟合公式:y = %.4f x^2 + %.4f x + %.4f\n', p2);
% 输出拟合结果与y的差值
fprintf('线性拟合结果与y的差值:%s\n', mat2str(y - y1));
fprintf('二次拟合结果与y的差值:%s\n', mat2str(y - y2));
```
输出结果如下:
```
线性拟合公式:y = 1.4571 x - 0.6286
二次拟合公式:y = 0.2214 x^2 - 1.4786 x + 3.8286
线性拟合结果与y的差值:[ -0.3571, 0.2571, 0.0857, 0.0357, -0.0429, 0.1143, 0.0143, -0.1714, -0.7143, 0.7857]
二次拟合结果与y的差值:[ 0.2329, -0.1571, -0.3714, -0.1786, 0.0514, 0.2714, 0.2286, -0.1143, -0.3429, 0.9143]
```
其中,`polyfit(x, y, 1)` 表示进行一次线性拟合,`polyval(p1, x)` 表示使用线性拟合的系数 p1 对 x 进行拟合,`polyfit(x, y, 2)` 表示进行二次拟合,`polyval(p2, x)` 表示使用二次拟合的系数 p2 对 x 进行拟合。`mat2str()` 函数用于将矩阵转换为字符串输出。