Matlab编程问题

来源:百度知道 编辑:UC知道 时间:2024/06/10 06:14:51
想用MatlaB软件编程画一个图。其中函数p是自变量x和y的函数。然后再给出y和x的一个关系(只不过y和x是隐函数关系,而且非常复杂,不能化简成显函数)。再把这个关系带入到原函数中去,就可以得到函数p和单一自变量x的关系。最后画出p和x的二维关系图。例如:
p=(x.*(1+log(r./x))-(1-log(1./r)))./(x.*y.*((1-r./x)./(Bh-y)+(r-1)./(Bc-x.*y)-(x-1)./(Bh-x.*y)));
Bc*(r-1)/(Bc-x*y)-Bh*(x-1)/(Bh-x*y)^2+Bh*(1-r/x)/(Bh-y)^2=0;
x=1:0.25:4;(给出x的范围)
r=4;
Bh=1/8000;
Bc=1/2000;
请高人不吝赐教,对我的问题有看不懂的地方就提出来,我在下面回复解释!

clear;clc;
r=4;
Bh=1/8000;
Bc=1/2000;
F=@(x,y)Bc*(r-1)./(Bc-x.*y)-Bh*(x-1)./(Bh-x.*y).^2+Bh*(1-r./x)./(Bh-y).^2;
p=@(x,y)(x.*(1+log(r./x))-(1-log(1./r)))./(x.*y.*((1-r./x)./(Bh-y)+(r-1)./(Bc-x.*y)-(x-1)./(Bh-x.*y)));
x=1:0.25:4;
for i=1:length(x)
y(i)=fzero(@(y)F(x(i),y),0);
z(i)=p(x(i),y(i));
end
plot(x,z)

我不太明白隐函数和显函数的定义,这个概念我没有接触过。不过我想你现在的问题是不是就是无法再matlab里面把x和y得关系式表达出来呢?
如果能够表达出来,那就应该好办呀,就按照matlab的规律编写这个公式的表达式,然后最后用一个描点的plot的函数就可以出来了吧,我自己这样想的哈~~~

我说一下我的想法: 就是用solve命令解方程
首先根据方程: Bc*(r-1)/(Bc-x*y)-Bh*(x-1)/(Bh-x*y)^2+Bh*(1-r/x)/(Bh-y)^2=0;求出y,然后埋在根据x的值和y的值和方程:p=(x.*(1+log(r./x))-(1-log(1./r)))./(x.*y.*((1-r./x)./(Bh-y)+(r-1)./(Bc-x.*y)-(x-1)./(Bh-x.*y)));求出p,那么现在我们已经得出了x和p,就能画图像了

我刚才试过了x=1.25的情况:
y =

0.00039968970327 - 0.00000000000001i
0.00010169493827 - 0.00000628492769i
0.00010169493825 + 0.00000628492770i
-0.24598641291312 + 0.00000000000000i