求教用matlab实现最小二乘法拟合直线
2个回答
展开全部
function [a] = funpolyfit(x,y,n)
%功能:求已知数据的最小二乘法拟合多项式的各项系数
%输入参数 x:已知数据点x的坐标向量;
% y:已知数据点y的坐标向量;
% n:拟合多项式次数;
%输出参数a:最小二乘法拟合多项式的各项系数 a(1)x2+a(2)x+a(3)
%
x = x(:); % 保证为列向量
y = y(:);
m = length(x); % 输入数据个数
% 构建系数矩阵
% 3 2
% y = [x x x 1] [a3
% a2
% a1
% a0]
%
V = zeros(m,n+1);
V(:,n+1) = ones(m,1);
for j = n:-1:1
V(:,j) = x.*V(:,j+1);
end
% V.'*V*a = V'y;
A = V.'*V;
b = V.'*y;
a = A\b;
a = a.'; % 转换成行向量
%功能:求已知数据的最小二乘法拟合多项式的各项系数
%输入参数 x:已知数据点x的坐标向量;
% y:已知数据点y的坐标向量;
% n:拟合多项式次数;
%输出参数a:最小二乘法拟合多项式的各项系数 a(1)x2+a(2)x+a(3)
%
x = x(:); % 保证为列向量
y = y(:);
m = length(x); % 输入数据个数
% 构建系数矩阵
% 3 2
% y = [x x x 1] [a3
% a2
% a1
% a0]
%
V = zeros(m,n+1);
V(:,n+1) = ones(m,1);
for j = n:-1:1
V(:,j) = x.*V(:,j+1);
end
% V.'*V*a = V'y;
A = V.'*V;
b = V.'*y;
a = A\b;
a = a.'; % 转换成行向量
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2017-05-18
展开全部
求教用matlab实现最小二乘法拟合直线 - 豆丁网
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询