matlab直线拟合代码
时间: 2024-06-23 19:00:28 浏览: 132
matlab 直线拟合代码
5星 · 资源好评率100%
以下是使用最小二乘法进行直线拟合的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函数进行直线拟合的Matlab代码:
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')
阅读全文