我使用python的fsolve使用下面的脚本找到一组方程的根:

from scipy.optimize import fsolve
from scipy.interpolate import spline
import math
import numpy as np
#from mpldatacursor import datacursor

%pylab
from matplotlib import pyplot as plt
import matplotlib.dates as mdates
%matplotlib inline


def equations(p):
    x,y,z = p
    f1 = (1 - 2*math.cos(math.radians(x)) + 2*math.cos(math.radians(y)) - 2*math.cos(math.radians(z)) + 0.8)
    f2 = (1 - 2*math.cos(math.radians(5*x)) + 2*math.cos(math.radians(5*y)) - 2*math.cos(math.radians(5*z)))
    f3 = (1 - 2*math.cos(math.radians(7*x)) + 2*math.cos(math.radians(7*y)) - 2*math.cos(math.radians(7*z)))
    return (f1,f2,f3)

x,y,z = fsolve(equations,(0,0,0))
#print equations((x,y,z))

这适用于一个小问题 . 这仅产生一组解,即每个x,y,z的一个值以满足那些方程,但由于这些是三角函数,因此应该存在至少2个解 . 我如何使用fsolve(或其他任何东西)为给定的起点找到x,y,z的两个解 .

示例:对于 x,y,z = fsolve(equations,(0,0,0)) ,是否可以为 x,y,z 而不是一个解决方案生成两个值?

谢谢您的帮助 .