关于用matlab拟和两组数据
来源:百度知道 编辑:UC知道 时间:2024/06/09 22:11:25
我有两组数据:
a =
80 85 90 95 100 105 110 115 120 125
>> b=[1.03 1.02 1.01 1 0.991 0.982 0.971 0.961 0.951 0.941]
b =
1.0300 1.0200 1.0100 1.0000 0.9910 0.9820 0.9710 0.9610 0.9510 0.9410
>> c=[135:5:180]
c =
135 140 145 150 155 160 165 170 175 180
>> d=[0.871 0.859 0.847 0.835 0.823 0.811 0.797 0.785 0.772 0.76]
d =
0.8710 0.8590 0.8470 0.8350 0.8230 0.8110 0.7970 0.7850 0.7720 0.7600
分别要把a,b和c,d拟和(a,c为两条线的x轴,b,d为其对应y轴),然后看他们在x=0处是否交于一点。
p.s:我自己画的都是线段,怎么才能拟合出直线??
而且,按照我的数据,没有包括x=0处的点,怎么才能显示出来y轴的相交情况呢?
a =
80 85 90 95 100 105 110 115 120 125
>> b=[1.03 1.02 1.01 1 0.991 0.982 0.971 0.961 0.951 0.941]
b =
1.0300 1.0200 1.0100 1.0000 0.9910 0.9820 0.9710 0.9610 0.9510 0.9410
>> c=[135:5:180]
c =
135 140 145 150 155 160 165 170 175 180
>> d=[0.871 0.859 0.847 0.835 0.823 0.811 0.797 0.785 0.772 0.76]
d =
0.8710 0.8590 0.8470 0.8350 0.8230 0.8110 0.7970 0.7850 0.7720 0.7600
分别要把a,b和c,d拟和(a,c为两条线的x轴,b,d为其对应y轴),然后看他们在x=0处是否交于一点。
p.s:我自己画的都是线段,怎么才能拟合出直线??
而且,按照我的数据,没有包括x=0处的点,怎么才能显示出来y轴的相交情况呢?
明白你的意思啦。
clc;clear;
a=[80 85 90 95 100 105 110 115 120 125 ];
b=[1.03 1.02 1.01 1 0.991 0.982 0.971 0.961 0.951 0.941];
c=[135:5:180];
d=[0.871 0.859 0.847 0.835 0.823 0.811 0.797 0.785 0.772 0.76];
p1=polyfit(a,b,1)
p2=polyfit(c,d,1)
x=0:max(c);
y1=polyval(p1,x);
y2=polyval(p2,x);
plot(a,b,'o',c,d,'*',x,y1,x,y2)
grid
y1=poly2sym(p1)
y2=poly2sym(p2)
x0=solve(y1-y2)
x0=eval(x0)
结果:他们不在x=0相交,在x= 36.6706处相交。
p1 =
-0.0020 1.1876
p2 =
-0.0025 1.2062
y1 =
-4541811987845131/2305843009213693952*x+5348447622921999/4503599627370496
y2 =
-5712900740403371/2305843009213693952*x+33171/27500
x0 =
9226374436607001264/251601099182434375
x0 =
36.6706