
求教用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.'; % 转换成行向量
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?

2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
2017-05-18
展开全部
求教用matlab实现最小二乘法拟合直线 - 豆丁网
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询