gpt4 book ai didi

python - 如何在 Sympy 中解决 sin(z)=2?

转载 作者:太空狗 更新时间:2023-10-30 02:11:37 26 4
gpt4 key购买 nike

Sympy 处理复数,因此有可能求解像 sin(z)=2 这样的方程。但是,我无法解决。有人知道如何在 Sympy 中解决它吗?

顺便说一句,解决方案的形式如下:

z=\frac{\pi}{2}+\ln(2\pm\sqrt{3})i

<code>z=\frac{\pi}{2}+\ln(2\pm\sqrt{3})i</code>

我将在 Sympy 中添加一个非常专业的方法来解决这个问题,这个方法很难通用化:

from sympy import *
z=symbols('z')
r=re(sin(z)-2)
i=im(sin(z))
x,y=symbols('x,y',real=True)
eq1=r.subs({re(z):x,im(z):y})
eq2=i.subs({re(z):x,im(z):y})
solve((eq1,eq2),(x,y))

输出为 [(pi/2, log(-sqrt(3) + 2)), (pi/2, log(sqrt(3) + 2))]。谁有更好的解决方案?

最佳答案

如果您更喜欢log 格式,请使用.rewrite(log),例如

In [4]: asin(2).rewrite(log)
Out[4]:
⎛ ___ ⎞
-ⅈ⋅log⎝╲╱ 3 ⋅ⅈ + 2⋅ⅈ⎠

结合 Games 的答案,您可以得到:

In [3]: sols = solve(sin(z) - 2, z)

In [4]: sols
Out[4]: [π - asin(2), asin(2)]

In [5]: [i.rewrite(log) for i in sols]
Out[5]:
⎡ ⎛ ___ ⎞ ⎛ ___ ⎞⎤
⎣π + ⅈ⋅log⎝╲╱ 3 ⋅ⅈ + 2⋅ⅈ⎠, -ⅈ⋅log⎝╲╱ 3 ⋅ⅈ + 2⋅ⅈ⎠⎦

顺便说一句,真的有无限多解,因为sin2*pi 周期的。 SymPy 目前不支持直接给出所有这些,但是通过使用 sin(z + 2*pi*n) 而不是 sin(z) 很容易得到它们>:

In [8]: n = Symbol('n', integer=True)

In [9]: sols = solve(sin(z + 2*pi*n) - 2, z)

In [10]: sols
Out[10]: [-2⋅π⋅n + asin(2), -2⋅π⋅n + π - asin(2)]

In [11]: [i.rewrite(log) for i in sols]
Out[11]:
⎡ ⎛ ___ ⎞ ⎛ ___ ⎞⎤
⎣-2⋅π⋅n - ⅈ⋅log⎝╲╱ 3 ⋅ⅈ + 2⋅ⅈ⎠, -2⋅π⋅n + π + ⅈ⋅log⎝╲╱ 3 ⋅ⅈ + 2⋅ⅈ⎠⎦

这里的n 是任意整数。

关于python - 如何在 Sympy 中解决 sin(z)=2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21252482/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com