我正在尝试求解一组非线性方程。我必须解决不同的参数。大多数时候,一切似乎都正常。就像在这种情况下一样:
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)
最后,我通过将结果插入到函数cube()中来测试了结果。对于上面使用的参数,该函数给出的值应接近零。 但是,如果我更改参数x_diff,y_diff和z_diff。 fsolve返回初始的Guess作为解,这不是方程组的解,因为您将其插入函数cubic()可以看到。
x_diff=-6.15
y_diff=-2.11
z_diff=0.13
我对python还是很陌生,所以它可能只是一个愚蠢的错误,但我找不到它。我真的需要这个来工作,所以谢谢您的所有帮助! 谢谢!