
【MATLAB】如何用最小二乘法拟合直线?
已知x和y之间是线性关系,且y=kx+b,某次实验测得数据为x=[123456];y=[2.13.96.18.210.312];如何用MATLAB画出拟合直线并求出k和b...
已知x和y之间是线性关系,且y=kx+b,某次实验测得数据为 x=[1 2 3 4 5 6];y=[2.1 3.9 6.1 8.2 10.3 12]; 如何用MATLAB画出拟合直线并求出k和b的值?最小二乘法。
非线性度也能求出来最好! 展开
非线性度也能求出来最好! 展开
1个回答
展开全部
x=[1 2 3 4 5 6];
y=[2.1 3.9 6.1 8.2 10.3 12];
nh1=polyfit(x,y,2);%这里是二次拟合,你也可以先画出大概图形 估计它是几次曲线然后再判断是1 2 还是3.。。等。
m=1:.5:6;%m是根据散点x来定的。
nh2=polyval(nh1,m);
plot(x,y,'+',m,nh2)
这是拟合图形
用最小二乘法求值就是用最小二乘法所导出的正规方程组的矩阵形式来求。
根据题意求一次拟合系数如下:
for i=1:6
for j=1:2
A(i,j)=i.^(j-1)
end
end
K=A'*A;
Final=K'*A'*y'
求出的第一个数为b,第二个是k
程序没运行过 大概思想是这样的
y=[2.1 3.9 6.1 8.2 10.3 12];
nh1=polyfit(x,y,2);%这里是二次拟合,你也可以先画出大概图形 估计它是几次曲线然后再判断是1 2 还是3.。。等。
m=1:.5:6;%m是根据散点x来定的。
nh2=polyval(nh1,m);
plot(x,y,'+',m,nh2)
这是拟合图形
用最小二乘法求值就是用最小二乘法所导出的正规方程组的矩阵形式来求。
根据题意求一次拟合系数如下:
for i=1:6
for j=1:2
A(i,j)=i.^(j-1)
end
end
K=A'*A;
Final=K'*A'*y'
求出的第一个数为b,第二个是k
程序没运行过 大概思想是这样的
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?

2025-09-30 广告
上海艾羽信息科技有限公司是一家以CAE软件销售、技术咨询及服务,仿真咨询及规划布局为一体的高科技公司。作为ANSYS的合作伙伴,艾羽致力于将ANSYS推出的产品,通过业界性能颇佳、丰富的工程仿真软件产品组合帮助客户解决复杂的仿真难题。力求与...
点击进入详情页
本回答由VSH艾羽提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询