MATLAB程序设计:最小二乘法线性拟合

注意!!!syms属性不能直接用,我们先要去mathtool商店下载对应插件,下载方法首次执行报错后有指示。

clc;clear;close all;
xi=[37;38;39;40;41;42;43];
yi=[3.40;3.00;2.10;1.53;1.80;1.90;2.90];
A=[xi.^0,xi.^1,xi.^2];   %生成方程组系数矩阵,以向量生成矩阵
AA=A'*A;   %生成法方程ATA
a=inv(AA)*(A'*yi)   %求解系数,inv为求逆矩阵
syms x
px=a(1)+a(2)*x+a(3)*x.^2;
xx=linspace(37,43,100);   %在37和43之间平均取100个点
yy=subs(px,x,xx);   %求100点的函数值

figure
hold on   %曲线图合并在一起
plot(xi,yi,'o')                                                      %画出数据点
plot(xx,yy,'-')                                                     %拟合曲线

你可能感兴趣的:(matlab,最小二乘法,算法)