更快的替代NSolve

时间:2013-05-01 14:13:01

标签: wolfram-mathematica

我有一个等式,我想用 Mathematica 中的NSolve来解决这个等式。我是这样做的:

T == (0.000242895 E^(-(2.09472*10^11/(5.70068*10^8 + 
            7.76206*10^12 T))))/(1 + 
    0.969073 E^(-(4.18945*10^11/(5.70068*10^8 + 7.76206*10^12 T))) - 
    1.96883 Cos[8.77331*10^6/(2.28027*10^9 + 7.76206*10^12 T)])

NSolve[T == (0.000242895 E^(-(2.09472*10^11/(5.70068*10^8 + 
             7.76206*10^12 T))))/(1 + 
     0.969073 E^(-(4.18945*10^11/(5.70068*10^8 + 7.76206*10^12 T))) - 
     1.96883 Cos[8.77331*10^6/(2.28027*10^9 + 7.76206*10^12 T)])
 , {T}, Reals]

问题是找到解决方案需要很长时间(~1分钟)。除了使用NSolve之外,还有更快的方法来获得解决方案吗?

1 个答案:

答案 0 :(得分:2)

表达式的分母在大约T = 215时经过零。另一种解决方案是T = 0。如果您想要非零解决方案,只需使用

FindRoot[denom,{T,T0}]

其中T0是任何正数。这大约需要一毫秒。