涉及fsolve和Quad集成的python代码中的数学域错误

时间:2020-07-31 00:51:06

标签: python math integration solver quad

此代码中出现数学域错误。但是相同的功能lein new quill my-art Failed to resolve version for quill:lein-template:jar:RELEASE: Could not find metadata quill:lein-template/maven-metadata.xml in local (C:\Users\danie\.m2\repository) Failed to read artifact descriptor for quill:lein-template:jar:RELEASE This could be due to a typo in :dependencies, file system permissions, or network issues. If you are behind a proxy, try setting the 'http_proxy' environment variable. Could not find template quill on the classpath. 可以在另一个程序中运行(我没有使用F)而没有任何域错误。

fsolve

我收到此错误:

import numpy as np
from scipy.integrate import quad
from scipy.optimize import fsolve
from math import sqrt

def F(x, g, a, d, A, M):
  return A*(x**(1-g))/(1-g)+M*((x**(a+1))/(a+1)+(x**(d+1))/(d+1))

def C(q):
  return q+1

def intf1(x, rho, g, a, d, A, M):
  return (1/sqrt(F(rho, g, a, d, A, M)-F(x, g, a, d, A, M)))

def eq_to_solve(q, rho, g, a, d, A, M):
  return (quad(intf1,0,rho,args=(rho,g, a, d, A, M))[0]-quad(intf1,q,rho,args=(rho,g, a, d, A, M))[0]-(C(q)*q)/intf1(q, rho, g, a, d, A, M))

A = -4
M = 20
g = 0.6
a = 0.7
d = 2.1
rhomin = 10**(-6)
rhomax = 50
num_rho_values = 60
rholist = np.linspace(rhomin, rhomax, num=num_rho_values, endpoint=False)
lambdalist=[]
found_rholist = []
for rho in rholist:
    q_guess_list = np.linspace(1, rho, num = 10, endpoint=False)
    for q_guess in q_guess_list:
        q_val = fsolve(eq_to_solve, q_guess, args=(rho, g, a, d, A, M))
        if q_val > 0 and abs(eq_to_solve(q_val, rho, g, a, d, A, M)) < 10**(-6):
            lam = (C(q_val)*q)**2/(2*intf1(q_val, rho, g, a, d, A, M))
            print("found q= ", q_val)
            if lam > 0:
                print('found lam = ', lam)
                lambdalist.append(lam)
                found_rholist.append(rho)
            else:
                None
        else:
            None

0 个答案:

没有答案
相关问题