非線形方程式を解くために 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 に修正しました。しかし、メソッドが収束せず、結果の値が大きすぎると思うことがあります。
最善の解決策を見つけるにはどうすればよいですか?
どうもありがとう!