![]() |
[求助]为什么简单的方程却解不出来?
本人matlab菜鸟,呵呵,以前解过这个方程,可是现在却解不出来了,大侠们帮帮忙吧
软件版本 Matlab 7.0 >> s=solve('0.000505657=(k/(1-k))*((1-k)^48)/(1-(1-k)^48)') Warning: Explicit solution could not be found. > In solve at 140 s = [ empty sym ] >> s s = [ empty sym ] |
是不是机子的问题,我运行了一下,结果如下
>> s=solve('0.000505657=(k/(1-k))*((1-k)^48)/(1-(1-k)^48)') s = .10792191439543645274644010346451 |
应该是版本有问题 能算出来的
|
在matlab里面solve命令主要是用来求解代数方程(即多项式)的解,但是也不是说其它方程一个也不能解,不过求解非代数方程的能力相当有限,通常只能给出很特殊的实数解。(该问题给出的方程就是典型的超越方程,非代数方程)
从计算机的编程实现角度讲,如今的任何算法都无法准确的给出任意非代数方程的所有解,但是我们有很多成熟的算法来实现求解在某点附近的解。matlab也不例外,它也只能给出任意非代数方程在某点附近的解,函数有两个:fzero和fsolve,具体用法请用help或doc命令查询吧。如果还是不行,你还可以将问题转化为非线性最优化问题,求解非线性最优化问题的最优解,可以用的命令有:fminbnd, fminsearch, fmincon等等。 |
所有时间均为北京时间。现在的时间是 11:15。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.