今天发现一个很奇怪的NDSolve失效方程
mathematica吧
全部回复
仅看楼主
level 8
Repentanze 楼主
NSolve[1/2*(Exp[x] + Exp[-x]) == Exp[x^2/8], {x}]
NSolve::nsmet 无法利用 NSolve 现有的方法求解该系统. 请尝试使用 Reduce 或 FindInstance.
FindRoot[1/2*(Exp[x] + Exp[-x]) == Exp[x^2/8], {x, 8}] 可以得到三个解之一
{x -> 7.23339}
我不太确定吧里是不是有过相关的讨论。
2025年10月20日 04点10分 1
吧务
level 15
限制为Reals可解:
NSolve[1/2*(Exp[x] + Exp[-x]) == Exp[x^2/8], {x}, Reals]
复数域上的情况搞不清楚……
2025年10月20日 05点10分 2
吧务
level 15
其实对于Solve,NSolve,Reduce来来回回招数也就这些:强制指定数域(有时实数域有奇效,有时复数域有奇效),加限制条件(但是有时候又需要去掉限制条件……),三角化指数,万能公式化三角为多项式,调节 Method 选项,尽量去除不必要的分式,尽量去除不必要的复杂字母系数。差不多就这些吧?
2025年10月20日 05点10分 3
谢谢吧主。去除分式这一项我早有感受,但其他几个确实没有怎么遇到过。 Mathematica的底层构造实在是太神秘莫测了,我试着把这个方程变形了几下,把右边变成没有重根的Exp[x^2]就可以解;左边换成同样有重根的Sinh也可以解[喷]
2025年10月20日 09点10分
1