2 回答

TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超7個(gè)贊
該文檔說您有兩個(gè)選擇limits_z
(以及所有其他限制)
通過元組
(start, end)
傳遞一個(gè)可調(diào)用的(就像你一樣)。如果您傳遞一個(gè)可調(diào)用對(duì)象,它將使用所有集成參數(shù)進(jìn)行調(diào)用。這就是函數(shù)所做的,因?yàn)槟愕?code>limit_z函數(shù)不接受參數(shù),你會(huì)得到一個(gè)錯(cuò)誤
因此,最簡(jiǎn)單的方法是將其設(shè)置為變量
limits_z = [0,2*np.pi]

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超9個(gè)贊
您的函數(shù)簽名不正確。f想要三個(gè),limits_z想要一個(gè)參數(shù)。恩夸德
我添加了一個(gè)未使用的參數(shù),稱為dump。
from scipy import integrate
import numpy as np
def f(x,z,dump):
return (3*x**2 + 3*z**2)**0.5
def limits_y(x,z):
return [(2*x**2+2*z**2),8]
def limits_z(dump):
return [0,2*np.pi]
def limits_x():
return [0,2]
print(integrate.nquad(f,[limits_y,limits_z,limits_x]))
添加回答
舉報(bào)