请教高手帮忙解决利用matlab求解方程组交点,并绘制图形的问题,万分感谢
当x1=0:0.001:1时
x2=(C-b1.*x1)./(2.*((1-a)-(1+b1).*x1));
得出自变量(横坐标)为x1,函数值(纵坐标)为x2的一个曲线
当x2=0:0.001:1时
x1=(C-b2.*x2)./(2.*((1-a)-(1+b2).*x2));
得出自变量为x2,函数值为x1的一个曲线;
注:其中C,a,b1,b2都是可调整的参数,例如C=0.5;a=0.2;b1=0.4;b2=0.1;
将之前的到得两个曲线整合到一个坐标系上,该坐标系横坐标是x1,纵坐标是x2( 0<x1<x2<1),并求出两个曲线的交点的值(x1,x2)。
以下是我写的matlab代码,问题很大,得到的结果不是我想要的,希望各位matlab高手帮帮小妹,万分万分的感谢!
x1=0:0.001:1;
x2=0:0.001:1;
C=0.5;
a=0.2;
b1=0.4;
b2=0.1;
x2=(C-b1.*x1)./(2.*((1-a)-(1+b1).*x1));
x1=(C-b2.*x2)./(2.*((1-a)-(1+b2).*x2)); 展开
在你的代码里
x1=0:0.001:1;
x2=0:0.001:1;
C=0.5;
a=0.2;
b1=0.4;
b2=0.1;
x2=(C-b1.*x1)./(2.*((1-a)-(1+b1).*x1));
x1=(C-b2.*x2)./(2.*((1-a)-(1+b2).*x2));
在计算最后一行 x1=(C-b2.*x2)./(2.*((1-a)-(1+b2).*x2));时,里面的x2已经不是0:0.001:1了,而是前一行x2=(C-b1.*x1)./(2.*((1-a)-(1+b1).*x1))的计算结果~
另外,你的描述 :将之前的到得两个曲线整合到一个坐标系上,该坐标系横坐标是x1,纵坐标是x2( 0<x1<x2<1),并求出两个曲线的交点的值(x1,x2)。
这句话我实在不是很理解,你里面颠来倒去用了好多次x1,x2,一会儿x1横坐标,一会儿x2横坐标,才得到的两条曲线,最后又要画在一个坐标系,有点晕~
我猜测你的原始意图,改了下代码,不知道是不是你想要的,代码如下,你可以试试:
x1=0:0.001:1;
x2=0:0.001:1;
C=0.5;
a=0.2;
b1=0.4;
b2=0.1;
xx2=(C-b1.*x1)./(2.*((1-a)-(1+b1).*x1));
plot(x1,xx2,'b');
xx1=(C-b2.*x2)./(2.*((1-a)-(1+b2).*x2));
hold on;
plot(xx1,x2,'r');
xlabel('x1');
ylabel('x2');
axis([0 1 0 1]);
这里面暂时没有考虑 0<x1<x2<1这个条件,如果加入这个条件就是取我上面代码画出的图形里对角线x2=x1左上方部分的曲线~