我在
python中做了这个小测试程序,看看如何解决和解决问题.
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或其他功能获得列表所有数值解决方案,只需一行?