mycnheart 发表于 2007-11-11 19:48

请高手帮忙画个隐函数

请这里的各位高手帮个忙,本人刚接触MATLAB,通过BAIDU来到这里,急需几个隐函数图
先发一个公式,那位帮个忙,发个程序代码上来,我参照一下

exp(lnx +1 - 600/y) + exp(ln(1-x)+1-1000/y) = 1

谢谢这里的朋友,帮个忙

[ 本帖最后由 花如月 于 2007-11-11 21:17 编辑 ]

花如月 发表于 2007-11-11 19:55

help ezplot

donkeyxu 发表于 2007-11-11 20:30

回复 #1 mycnheart 的帖子

怎么画出来就是4条直线啊?图中的标0的线

[ 本帖最后由 无水1324 于 2007-11-12 09:09 编辑 ]

kangtj 发表于 2007-11-11 20:51

ezplot不会画。。。
ezplot(‘exp(lnx +1 - 600/y) + exp(ln(1-x)+1-1000/y) - 1’)?

donkeyxu 发表于 2007-11-11 21:07

回复 #4 kangtj 的帖子

ezplot 画得不太好,我用contour画的

kangtj 发表于 2007-11-11 21:15

x难道不是在0-1之间?
存在lnx,和ln(1-x)啊

donkeyxu 发表于 2007-11-11 21:33

回复 #6 kangtj 的帖子

%取0,1间线段就行了,以下是实现程序
dy=inline(['dx*(exp(1-600/y)-exp(1-1000/y))/(x*exp(1-600/y)*600/y/y+(1-x)*1000/y/y'...
,'*exp(1-1000/y))'],'dx','x','y');
a=[];b=[];k=[];m=[];
del=0.001;y0=1000;x0=0;
while x0<=1
    x0=x0+del;
    y0=y0+dy(del,x0,y0);a=;b=;
end
plot(,)


=====================
结果明显不对. 仔细分析一下即知.
By xjzuo
=====================

[ 本帖最后由 xjzuo 于 2007-11-12 16:36 编辑 ]

mycnheart 发表于 2007-11-12 00:43

太感谢楼上的几位了,我试试

mycnheart 发表于 2007-11-12 00:52

经测试,特别感谢donkeyxu写出全部代码

xjzuo 发表于 2007-11-12 16:35

提示:这个问题参考我的一个"总结贴",用contour即可实现.
注意分析两个端点值,即可知道函数的趋势.

donkeyxu 发表于 2007-11-12 17:20

回复 #10 xjzuo 的帖子

%对,我那个算错了,a*dx+b*dy=0;得dy时忘了加负号,现在改下可以了。
dy=inline(['-dx*(exp(1-600/y)-exp(1-1000/y))/(x*exp(1-600/y)*600/y/y+(1-x)*1000/y/y'...
,'*exp(1-1000/y))'],'dx','x','y');
a=[];b=[];k=[];m=[];
del=0.001;y0=1000;x0=0;
while x0<=1
    x0=x0+del;
    y0=y0+dy(del,x0,y0);a=;b=;
end
plot(,)

dingd 发表于 2007-11-13 08:49

用1stOpt也很简单:

Parameter x, y;
PlotFunction exp(ln(x) +1 - 600/y) + exp(ln(1-x)+1-1000/y) = 1;
页: [1]
查看完整版本: 请高手帮忙画个隐函数