Python 2.7:fsolve有时会返回初始猜测而不是解决方案:

时间:2018-06-26 10:39:47

标签: python python-2.7 scipy equation

我正在尝试求解一组非线性方程。我必须解决不同的参数。大多数时候,一切似乎都正常。就像在这种情况下一样:

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还是很陌生,所以它可能只是一个愚蠢的错误,但我找不到它。我真的需要这个来工作,所以谢谢您的所有帮助! 谢谢!

0 个答案:

没有答案