Я сделал эту небольшую тестовую программу на питоне, чтобы увидеть, как работают solve
и nsolve
.
from sympy import *
theta = Symbol('theta')
phi = Symbol('phi')
def F(theta,phi):
return sin(theta)*cos(phi)+cos(phi)**2
def G(phi):
return ((1 + sqrt(3))*sin(phi) - 4*pi*sin(2*phi)*cos(2*phi))
solution1 = solve(F(pi/2,phi),phi)
solution2 = solve(G(phi),phi)
solution3 = nsolve(G(phi),0)
solution4 = nsolve(G(phi),1)
solution5 = nsolve(G(phi),2)
solution6 = nsolve(G(phi),3)
print solution1, solution2, solution3, solution4, solution5, solution6
И я получаю этот вывод:
[pi/2, pi] [] 0.0 -0.713274788952698 2.27148961717279 3.14159265358979
Первый вызов решения дал мне два решения соответствующей функции. Но не второй. Интересно, почему? nsolve
похоже работает с начальным тестовым значением, но в зависимости от этого значения дает разные численные решения. Есть ли способ получить список всех числовых решений с помощью nsolve
или другой функции всего в одной строке?