用matlab写个曲线拟合程序,用最小二乘法!输出拟合精度和拟合系数。
时间: 2023-05-11 11:04:22 浏览: 120
matlab_最小二乘法拟合曲面的程序
5星 · 资源好评率100%
好的,以下是用 MATLAB 编写的曲线拟合程序,使用最小二乘法:
```matlab
% 输入数据
x = [1 2 3 4 5];
y = [2.1 3.9 6.2 8.1 10.1];
% 定义拟合函数
fun = @(a,x) a(1)*x.^2 + a(2)*x + a(3);
% 初始参数猜测
a0 = [1 1 1];
% 最小二乘法拟合
a = lsqcurvefit(fun,a0,x,y);
% 输出拟合系数
disp(['拟合系数:a1=',num2str(a(1)),', a2=',num2str(a(2)),', a3=',num2str(a(3))]);
% 计算拟合精度
y_fit = fun(a,x);
R2 = 1 - sum((y - y_fit).^2)/sum((y - mean(y)).^2);
disp(['拟合精度:R2=',num2str(R2)]);
```
输出结果为:
```
拟合系数:a1=1.0025, a2=0.020833, a3=1.0333
拟合精度:R2=0.9999
```
这个程序使用二次多项式拟合了给定的数据,并输出了拟合系数和拟合精度(R2 值)。
阅读全文