我是編碼新手,請(qǐng)耐心等待。我有一個(gè)練習(xí),目的是求解一個(gè)微分方程,其中有一個(gè)函數(shù)在 0 和 t 之間具有 dx cos(x)**2 形式的積分。我嘗試定義一個(gè)函數(shù),然后使用該定義嘗試在程序結(jié)束時(shí)獲得最終值。import numpyfrom scipy import integratedef dydt(C,y,t): return -C*ydef f_2(x): return numpy.sin(x)**2def C(t): return 1+ integrate.quad(f_2,0,t)t=numpy.linspace(0,10,100)y=integrate.odeint(dydt,[1.0],t)這是我得到的錯(cuò)誤: TypeError: dydt() missing 1 required positional argument: 't' --> 我知道我已經(jīng)明確定義了我的 t,那么我做錯(cuò)了什么?干杯!
1 回答

墨色風(fēng)雨
TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超6個(gè)贊
dydt(C,y,t)應(yīng)該dydt(C,y)
import numpy
from scipy import integrate
def dydt(C,y):
return -C*y
def f_2(x):
return numpy.sin(x)**2
def C(t):
return 1+ integrate.quad(f_2,0,t)
t=numpy.linspace(0,10,100)
y=integrate.odeint(dydt,[1.0],t) # works fine
print(y)
添加回答
舉報(bào)
0/150
提交
取消