作业帮 > 综合 > 作业

用MATLAB进行线性拟合的程序代码

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/06 01:54:16
用MATLAB进行线性拟合的程序代码

我想把第一列的数据和二三列进行拟合,结果就像下图一样的效果,还能知道它的拟合公式,第一条线用不同的颜色


clc;clear;close all
U=[1.45,1.85,2.02,2.2,2.67,2.98];
V=[200,400,500,600,800,1000];
H=[25.6,43.5,51.4,60.2,79.6,95.2];
[AX,H1,H2]=plotyy(U,V,U,H,'plot');
set(H1,'Marker','o','line','none','color','k')
set(H2,'Marker','*','line','none','color','r')
legend('容积','实际高度')
xlabel('电压值/V')
yl1=get(AX(1),'Ylabel')
set(yl1,'string','容积/L')
yl2=get(AX(2),'Ylabel')
set(yl2,'string','实际高度/cm')
p1=polyfit(U,V,1);
p2=polyfit(U,H,1);
VV=p1(1)*U+p1(2);
HH=p2(1)*U+p2(2);
hold on
[AX,HH1,HH2]=plotyy(U,VV,U,HH)
set(HH1,'color','k')
set(HH2,'color','r')
clc
disp(['V=',num2str(p1(1)),'*U',num2str(p1(2))])
disp(['H=',num2str(p2(1)),'*U',num2str(p2(2))])运行结果V=513.0775*U-542.8718H=45.1123*U-39.7716
再问: 两个关系式的自变量都是电压,怎么都是H.还有那里面的容积和实际高度能移到左上方吗?现在它遮住直线了。
再问:
再问: 能不能用y1表示容量,y2表示液位高度,x表示电压。告诉我程序就行。我把分都给你。
再问:
再问: 我按照你的编程改成了下面的图
再问:
再答: clc;clear;close all
x=[1.45,1.85,2.02,2.2,2.67,2.98];
y1=[200,400,500,600,800,1000];
y2=[25.6,43.5,51.4,60.2,79.6,95.2];
[AX,H1,H2]=plotyy(x,y1,x,y2,'plot');
set(H1,'Marker','o','line','none','color','k')
set(H2,'Marker','*','line','none','color','r')
legend('容积','实际高度')
xlabel('电压值/V')
yl1=get(AX(1),'Ylabel')
set(yl1,'string','容积/L')
yl2=get(AX(2),'Ylabel')
set(yl2,'string','实际高度/cm')
p1=polyfit(x,y1,1);
p2=polyfit(x,y2,1);
VV=p1(1)*x+p1(2);
HH=p2(1)*x+p2(2);
hold on
[AX,HH1,HH2]=plotyy(x,VV,x,HH)
set(HH1,'color','k')
set(HH2,'color','r')
clc
disp(['y1=',num2str(p1(1)),'*x',num2str(p1(2))])
disp(['y2=',num2str(p2(1)),'*x',num2str(p2(2))])运行结果:y1=513.0775*x-542.8718y2=45.1123*x-39.7716