24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1940  |  回复: 3
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

lhf530001541

新虫 (初入文坛)

[求助] matlab求隐函数解析解

函数方程如下:
x=a-b*(exp((c*x+y)/(e*f))-1)-(c*x+y)/d。除x和y,其他的都是常量,想把x用符号表示出来。事实上x和y的关系图如图:纵轴为x,横轴为y。

有尝试着在matlab里用solve计算,得到的结果是:
Warning: Explicit solution could not be found.
> In solve at 83

ans =

[ empty sym ]
如果把方程后面小部分去掉,简化为:‘x-a+b*(exp((c*x+y)/(e*f))-1’,倒是能得到结果:ans =

a + b - (e*f*lambertw(0, (b*c*exp(y/(e*f))*exp((c*(a + b))/(e*f)))/(e*f)))/c。
不会就多了后面那一小点就求不出解析解了吧?~
求各位大牛帮帮忙~谢过了先!

横轴y纵轴x.PNG
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jerkwin

专家顾问 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
csgt0: 金币+1, 谢谢 2013-04-25 15:54:38
lhf530001541: 金币+10, 有帮助, 谢谢帮助哈,这个行不通,还是得想别的办法~ 2013-04-26 09:40:21
去读读Lambert W function的性质,你就知道了。Lambert W(x)的定义域为[1/e, inf],不是你随便试试就能对的。
4楼2013-04-22 19:57:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 4 个回答

jerkwin

专家顾问 (正式写手)

【答案】应助回帖


感谢参与,应助指数 +1
csgt0: 金币+1, 谢谢 2013-04-22 17:57:30
你把它化简一下,能得到如下形式的x的方程:
x+b*exp(a*x) = c
然后利用Lambert W function就可以把x表示出来了

» 本帖已获得的红花(最新10朵)

2楼2013-04-21 22:34:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lhf530001541

新虫 (初入文坛)

送红花一朵
引用回帖:
2楼: Originally posted by jerkwin at 2013-04-21 22:34:18
你把它化简一下,能得到如下形式的x的方程:
x+b*exp(a*x) = c
然后利用Lambert W function就可以把x表示出来了

谢谢哈,我试过了,还是不行。
用solve>>x+b*exp(a*x)-c得不到结果,
改成solve('x-exp(c*x+d)/a+b/a',x),也就是"a*x+b=exp(c*x+d)"
得到了:- lambertw(0, -(c*exp(d))/(a*exp((b*c)/a)))/c - b/a
把我的公式改成"a*x+b=exp(c*x+d)"形式后,得到:
x=-(a*d+b*d-y)/(c+d)-e*f/c*lambertw(0,-c*c*b*d/(e*f*(c+d))*exp((d*y+c*a*d+c*b*d)/(e*f*(c+d)))/(e*f)+(a*d+b*d-y)*c/((e*f)*(c+d)));
可是代入数字:y=0:1:40;
a=3.5;
b=0.0000000001;
c=3.5;
d=700;
e=66;
f=0.0257;
得到的x是虚数,这是怎么回事呀?lambertw(0,   )不应该都是实数吗?
3楼2013-04-22 15:53:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见