Наличие тригонометрических функций затрудняет решение системы, даже если оно кажется «простым».
Один подход легко найти решение системы, которая включает в себя член вида cos(x)
и/или sin(x)
должен выполнить замену u=cos(x)
, v=sin(x)
, ввести дополнительное уравнение u**2 + v**2 == 1
, и решить для u
, v
. Затем переменную x
можно получить из значения (значений) u
.
import sympy as sp
A, u, v, phi = sp.symbols('A, u, v, phi', real = True)
eqs = [sp.Eq(A * u, 1), sp.Eq(-A * v/2, 0), sp.Eq(u**2 + v**2, 1)]
sol = sp.solve(eqs, [A, u, v])
print (sol)
[(-1, -1, 0), (1, 1, 0)]
Отсюда следует, что A
может принимать два значения (-1
, 1
). Для A=-1
он должен держать u==-1
, что соответствует бесконечному числу значений phi
следующего
sp.solveset(sp.Eq(sp.cos(phi),-1), phi)
ImageSet(Lambda(_n, 2*_n*pi + pi), Integers())
Процедура аналогична для A=1
.
* 'scipy..fsolve (дает ошибку «Результат вызова функции не является правильным массивом поплавков»)' * Если вы не показываете нам фактический код, который вы использовали, трудно кому-либо помочь вы с этим. Создание [минимального, полного, проверяемого примера] (http://stackoverflow.com/help/mcve) облегчит кому-то помощь в решении этой проблемы. –