MATLAB求最小二乘法所建立的目标函数的方法?
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/08 22:55:41
MATLAB求最小二乘法所建立的目标函数的方法?
你是问建立目标函数在理论上的方法还是实际在MATLAB中运用的方法?
理论的方法 就是寻找一个函数f(x)使得他在每一个x点的取值y与给定数据点的y值之差的平方和最小,这样一来,目标函数自然就是假定的f(x)在每一个x点的取值y,与给定的y值之差的平方和.然后再由约束条件,取极值的方法求得目标函数的最小值.
实际运用 我这里有代码 M文件 可以直接在MATLAB引用,输出拟合出的n次函数的系数.
附件上传不了,我直接拷到这里 编辑到M文件里面就可以用.
function c=lspoly(x,y,m)
n=length(x);
b=zeros(1:m+1);
f=zeros(n,m+1);
for k=1:m+1
f(:,k)=x'.^(k-1);
end
a=f'*f;
b=f'*y';
c=a\b;
c=flipud(c);
理论的方法 就是寻找一个函数f(x)使得他在每一个x点的取值y与给定数据点的y值之差的平方和最小,这样一来,目标函数自然就是假定的f(x)在每一个x点的取值y,与给定的y值之差的平方和.然后再由约束条件,取极值的方法求得目标函数的最小值.
实际运用 我这里有代码 M文件 可以直接在MATLAB引用,输出拟合出的n次函数的系数.
附件上传不了,我直接拷到这里 编辑到M文件里面就可以用.
function c=lspoly(x,y,m)
n=length(x);
b=zeros(1:m+1);
f=zeros(n,m+1);
for k=1:m+1
f(:,k)=x'.^(k-1);
end
a=f'*f;
b=f'*y';
c=a\b;
c=flipud(c);