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

问题描述

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

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

标签: pythonpython-2.7scipyequation

解决方案


推荐阅读