python sympy 求解三角方程

问题描述 投票:0回答:1

我想在 sympy 中求解具有周期解的三角方程。

示例:

2sin(1.5x) = 1
sin(1.5x) = 0.5
1.5x = z
sin(z) = 0.5
asin(0.5) = 0.5236
z1 = 0.5236 + 2k*pi (k is element of Z) (Z are integer numbers)
z2 = pi - 0.5236 = 2.6180 + 2k*pi (k is element of Z)
1.5x1 = 0.5236 + 2k*pi
1.5x2 = 2.6180 + 2k*pi
x1 = 0.3491 + (4/3)k*pi
x2 = 1.7453 + (4/3)k*pi

Sympy 仅给出 k = 0 的基本解。

import sympy as smp
from sympy import *
x = smp.symbols('x')
eqn = Eq(2*sin((3/2)*x), 1)
solve(eqn, x)

[0.349065850398866, 1.74532925199433]

另一个例子:

区间 [0,2pi[

] 内有两种不同的解
sin(x) = sin(x)*cos(x)
0 = sin(x)*cos(x) - sin(x)
0 = sin(x)*(cos(x) - 1)
sin(x) = 0
x1 = 2k*pi
x2 = pi + 2k*pi
cos(x) = 1
x3 = x1
import sympy as smp
from sympy import *
x = smp.symbols('x')
eqn = Eq(sin(x), sin(x)*cos(x))
solve(eqn, x)

[0]

Pi 不在溶液中。这是为什么?

科学界的任何人都可以帮助我哪种Python语法是正确的,以获得周期解,就像我自己解方程一样?

python sympy trigonometry scientific-computing
1个回答
0
投票

您可能正在寻找

solveset

In [9]: eqn
Out[9]: sin(x) = sin(x)⋅cos(x)

In [10]: solveset(eqn, x)
Out[10]: {2⋅n⋅π │ n ∊ ℤ} ∪ {2⋅n⋅π + π │ n ∊ ℤ}
© www.soinside.com 2019 - 2024. All rights reserved.