RuntimeWarning:求解方程组时在double_scalars中遇到无效值

时间:2018-10-08 16:00:27

标签: python runtime-error solver np

我知道这是一个经常性的问题,但是我无法在生成此错误的代码中找到错误。

我想解决以下形式的方程组

System of equations

当我尝试使用fsolve在Python上运行此代码时,出现错误 RuntimeWarning:double_scalars中遇到无效值。通过查看其他帖子,我理解除以零时会发生这种情况,但是我找不到解决此问题的方法。

请让我知道是否有替代版本可以解决此方程组。这是我与所有其他变量的参数值一起使用的代码。

    import numpy as np
    from scipy.optimize import fsolve

    class PS3_2:

        def __init__(self, 
                     sigma = 3, 
                     kappa = 4,
                     nu = 4,
                     eta = 1,
                     r = 4,
                     epsilon = 0.05,
                     y0 = 0.001, 
                     beta = 0.99):

            self.sigma, self.kappa, self.nu, self.eta, self.r, self.epsilon, self.y0, self.beta = sigma, kappa, nu, eta, r, epsilon, y0, beta

        def conditions_ss(self, x):
            return np.array([-x[0]**(-self.sigma) + (1+self.r)*self.beta*x[1]**(-self.sigma), 
                             self.eta*x[0]**(-self.sigma) - self.kappa*x[2]**(1/self.nu),
                             (1/2*(self.eta+self.epsilon) + 1/2*(self.eta-self.epsilon))*x[1]**(-self.sigma) - self.kappa*x[3]**(1/self.nu),
                             x[0] + x[1]/(1+self.r) - self.eta*x[2] - ((1/2*(self.eta-self.epsilon)+1/2*(self.eta+self.epsilon))*x[3])/(1+self.r)])

        def solve_ss(self, x0):
            return fsolve(self.conditions_ss, x0)

在主文件上,我使用

    from PS3_2_class import PS3_2
    import numpy as np

    ra_model = PS3_2()

    x0 = np.array([4, 0.06, 0.25, 0.25])
    params_1 = ra_model.solve_ss(x0)

并获取确切的错误:

    /path/to/PS3_2_class.py:32: RuntimeWarning: invalid value encountered in double_scalars
      return fsolve(self.conditions_ss, x0)
    /path/to/PS3_2_class.py:33: RuntimeWarning: invalid value encountered in double_scalars

0 个答案:

没有答案