1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > matlab最小二乘法拟合直线

matlab最小二乘法拟合直线

时间:2023-10-17 13:14:43

相关推荐

matlab最小二乘法拟合直线

最小二乘法直线拟合原理--最小二乘算法原理、来源及其Matlab实现(直线拟合) - 知乎

对于下列表格用最小二乘法拟合直线

matlab代码如下:

clear all

% 生成离散点

t = [19.1 25.0 30.1 36.0 40.0 45.1 50.0];

r = [76.3 77.8 79.75 80.80 83.35 83.90 85.10];

% 构造参数矩阵

A = ones(7,2);

A(:,2) = t';

% 参数初值

a = 0; %平均速度

b = 0; %初始位置

% 误差值

l = r - (b + a*t);

% 解算参数

for i = 1:7

dX = inv(A'*A)*A'*l';

b = b + dX(1);

a = a + dX(2);

l = r - (b + a*t);

end

% 成图,红色‘+’为生成的离散点,黑色直线为最小二乘拟合直线

plot(t,r,'r+',t,b+a*t,'k')

xlabel('温度T')

ylabel('阻值R')

title('Rt=R0+R0αT')

图像如下:

也可直接用polyfit来实现:

t = [19.1,25.0,30.1,36.0,40.0,45.1,50.0];

r = [76.3,77.8,79.75,80.80,83.35,83.90,85.10];

scatter(t,r); %scatter画出离散点

p=polyfit(t,r,1); %拟合曲线,其中p为权重系数

y1=polyval(p,t); %权重系数代入,拟合出新的y1

hold on%绘制y1

plot(t,y1)

xlabel('温度T')

ylabel('阻值R')

title('Rt=R0+R0αT')

图形为:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。