在 Wolfram|Alpha 中,可以求解cos λ = -1/cosh λ:
λ = ± 1.87510406871196...
λ = ± 4.69409113297417...
λ = ± 7.85475743823761...
λ = ± 10.9955407348755...
为什么 cos(x) = - 1 /cosh(x) 在 SymPy 中不起作用?
我试过这个:
from sympy import *
x = symbols('x', real=True)
eq = cos(x) + 1 /cosh(x)
ans=solve(eq)
print(ans)
# NotImplementedError: multiple generators [cos(x), exp(x)]
# No algorithms are implemented to solve equation cos(x) + 1/(exp(x)/2 + exp(-x)/2)
-----------------
(2018/08/21) 图形计算器
https://www.numberempire.com/graphingcalculator.php?functions=cos(x) *cosh(x)%2C-1&xmin=-10&xmax=10&ymin=-1.5&ymax=1.5&var=x
SymPy 中的“Sym”代表符号。WolframAlpha 找到符号解了吗?不,它没有;因为没有。所以,SymPy 也没有找到。
你从 WolframAlpha 得到的是一个数值解。为了获得这些,还有其他 Python 库,最著名的是SciPy。
但是,SymPy 也可以通过在幕后调用mpmath 为您提供数字解决方案。这是通过nsolve
. 它接受第二个参数,即搜索解决方案的初始点,并返回一个解决方案。
>>> nsolve(eq, 0)
7.85475743823761
如果您想要更多,请尝试多个起点:
>>> {nsolve(eq, n) for n in range(-10, 10)}
{4.69409113297418, -1.87510406871196, 7.85475743823761, -7.85475743823761, 1.87510406871196, -10.9955407348755, -4.69409113297418}
在这里我尝试了20个起点,有一些根是重复的,因此使用一个集合来消除重复。
有无穷多个解;无论使用什么工具,您都只会得到其中的几个。但是对于较大的 x,1/cosh(x) 实际上是 0,因此根与 cos(x) = 0 大致相同,即pi/2 + pi*k
任意整数 k。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句