【发布时间】:2014-02-07 14:12:31
【问题描述】:
我正在使用 fsolve 来求解非线性方程。我的问题是,根据起点,解决方案会发生变化,我不确定我发现的那些是最合理的。 这是代码
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import fsolve, brentq,newton
A = np.arange(0.05,0.95,0.01)
PHI = np.deg2rad(np.arange(0,90,1))
def f(b):
return np.angle((1+3*a**4-3*a**2)+(a**4-a**6)*(np.exp(2j*b)+2*np.exp(-1j*b))+(a**2-2*a**4+a**6)*(np.exp(-2j*b)+2*np.exp(1j*b)))-Phi
B = np.zeros((len(A),len(PHI)))
for i in range(len(A)):
for j in range(len(PHI)):
a = A[i]
Phi = PHI[j]
b = fsolve(f, 1)
B[i,j]= b
我固定 x0 = 1 因为它似乎给出了更合理的值。但有时,我认为方法不收敛,结果值太大。
我该怎么做才能找到最佳解决方案?
非常感谢!
【问题讨论】:
标签: python optimization numpy simpy