Я пытаюсь решить систему нелинейных уравнений. Я должен решить это для разных параметров. В большинстве случаев все работает нормально. Как в этом случае:
from scipy.optimize import fsolve
import numpy as np
p=3
x_diff=3.32
y_diff=-1.93
z_diff=0.64
def cubic(c):
r=c[0]
u=c[1]
F=np.empty((2))
F[0]=y_diff*cos(u)-x_diff*sin(u)
F[1]=r+cos(u)*x_diff+y_diff*sin(u)+(r**(2*p-1))*(a**2)*p+z_diff*p*(r**(p-1))*a
return F
cGuess=np.array([3.,2.])
c=fsolve(cubic,cGuess)
x=cubic(c)
В конце я проверил результат, вставив его в функцию cubic (). Для параметров, использованных выше, функция выдает что-то близкое к нулю, как и должно быть.
Но если я изменю параметр x_diff, y_diff и z_diff. fsolve возвращает начальное значение Guess как решение, которое не является решением системы уравнений, как вы можете видеть, если вставить ее в функцию cubic ().
x_diff=-6.15
y_diff=-2.11
z_diff=0.13
Я довольно новичок в python, так что это может быть просто глупой ошибкой, но я не могу ее найти. Мне действительно нужно, чтобы это работало, поэтому спасибо за каждую помощь
Спасибо!