急!!用matlab解决一个最小二乘拟合的问题,要自己编程的,不能用内置函数

2024-12-23 12:35:12
推荐回答(1个)
回答1:

三次样条的不大懂
编一个最小二乘拟合二次曲线的M函数

function yy=Least_Square_algorithm(X,Y,p)
%用于拟合最小二乘方程f(X)=a*X^2+b*X+c的数据
%X为1*n向量
%Y为1*n向量
%p为待估点
%***********example*************
%X=[1 612 1073 1605];
%Y=[806.4 825.3 819.0 803.9];
%Least_Square(X,Y,2265)
%**********************************************************
N=length(X);
%**********构造矩阵方程系数*****
for ni=1:N+1
x(ni,:)=X.^(ni-1);
end
y=Y';
%**********构造系数矩阵********
for i=1:3
for j=1:3
A(i,j)=sum(x(i+j-1,:));
end
end
for i=1:3
B(i,1)=x(i,:)*y;
end
%****************************
xx=A\B;
c=xx(1)
b=xx(2)
a=xx(3)
yy=a*p*p+b*p+c