永发信息网

matlab中计算vpa(solve('exp(-9*x)-1+x','x'))解出来x不等于0,但明显x=0是他的解啊?如图:

答案:3  悬赏:30  手机版
解决时间 2021-11-19 00:51
  • 提问者网友:蓝琪梦莎
  • 2021-11-18 19:31
matlab中计算vpa(solve('exp(-9*x)-1+x','x'))解出来x不等于0,但明显x=0是他的解啊?如图:
最佳答案
  • 五星知识达人网友:末日狂欢
  • 2021-11-18 19:56
方程有两个解
f=@(x)exp(-9*x)-1+x;
[X,FVAL,EXITFLAG,OUTPUT]=fsolve(@(x)f(x),[0;1])
Equation solved.

fsolve completed because the vector of function values is near zero
as measured by the default value of the function tolerance, and
the problem appears regular as measured by the gradient.



X =

0
0.9999

FVAL =

1.0e-010 *

0
0.7637

EXITFLAG =

1

OUTPUT =

iterations: 1
funcCount: 6
algorithm: 'trust-region dogleg'
firstorderopt: 7.6281e-011
message: [1x695 char]
=========
mathematics
Solve[E^(-9*x) - 1 + x == 0, x]
{{x -> 0}, {x -> 1/9 (9 + ProductLog[-(9/E^9)])}}追问怎样得到x=0这个解啊?就是较小的解。追答用solve命令在2010上好像不行,fsolve可以,mathematics也可以得到0解追问用fsolve怎么用呢,一样吗?或者mathematics怎么用?追答我上面的就是matlab用fsolve写的啊,
mathematics也很简单
解析解

Solve[E^(-9*x) - 1 + x == 0, x]
数值解
NSolve[E^(-9*x) - 1 + x == 0, x]



追问运行你的程序fsolve出现,但有解X=0
??? Undefined function or method 'Equation' for input arguments of type 'char'.追答这部分才是代码
f=@(x)exp(-9*x)-1+x;
[X,FVAL,EXITFLAG,OUTPUT]=fsolve(@(x)f(x),[0;1])
后面是结果
全部回答
  • 1楼网友:千夜
  • 2021-11-18 21:21
你用的是什么版本?
我在6.5版求出的结果是:
ans =
[ .99987645289728097115459516361337]
[ 0]

如果不用vpa,则
>> solve('exp(-9*x)-1+x','x')
ans =
[ 1/9*lambertw(-9*exp(-9))+1]
[ 0]
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯