matlab二次最佳平方逼近多项式代码
时间: 2023-07-09 17:46:05 浏览: 269
matlab 函数逼近与拟合源程序代码.zip_lsqlin_nlinfit函数_傅里叶拟合_多项式拟合_有理多项式
5星 · 资源好评率100%
以下是在MATLAB中实现二次最佳平方逼近多项式的代码:
假设有n个数据点,其中x和y分别为数据点的横纵坐标,可以按照以下步骤进行代码编写:
1. 构造矩阵A和向量b:
```
A = [x.^2, x, ones(n,1)];
b = y;
```
2. 求解线性方程组Ax=b,得到系数向量c:
```
c = (A'*A)\(A'*b);
```
3. 计算拟合误差(RMSE):
```
y_fit = c(1)*x.^2 + c(2)*x + c(3);
rmse = sqrt(mean((y-y_fit).^2));
```
完整的代码如下:
```
% 输入数据点
x = [1, 2, 3, 4, 5];
y = [2.1, 3.9, 6.2, 8.1, 10.3];
% 构造矩阵A和向量b
A = [x.^2, x, ones(length(x),1)];
b = y;
% 求解线性方程组Ax=b,得到系数向量c
c = (A'*A)\(A'*b);
% 计算拟合误差(RMSE)
y_fit = c(1)*x.^2 + c(2)*x + c(3);
rmse = sqrt(mean((y-y_fit).^2));
% 绘制拟合曲线和原始数据点
xx = linspace(0,6);
yy = c(1)*xx.^2 + c(2)*xx + c(3);
plot(xx,yy,'r-',x,y,'bo');
legend('拟合曲线','原始数据点');
title(['RMSE=' num2str(rmse)]);
```
阅读全文