簡體   English   中英

Python TypeError:衍生物_circ()接受2個位置參數,但給出了6個

[英]Python TypeError: derivatives_circ() takes 2 positional arguments but 6 were given

我試圖計算一些導數以完成一些方程。 但是當我定義我的函數時,我想保存6個不同的變量。 它給了我這個錯誤。

  File "C:\\Users\\Leona\\Anaconda3\\lib\\site-packages\\spyder\\utils\\site\\sitecustomize.py", line 102, in execfile exec(compile(f.read(), filename, 'exec'), namespace) File "C:/Users/Leona/.matplotlib/Python_Dyn_Opdracht6_tweede.py", line 94, in <module> afgeleiden = derivatives_circ([theta[n], omega[n]], x[n], vx[n], y[n], vy[n], t[n]) TypeError: derivatives_circ() takes 2 positional arguments but 6 were given 

這是我用來創建函數的代碼

 def derivatives_circ(state, t): theta = state[0] omega = state[1] Moment=F*D alpha = Moment/Ig x = state[2] vx = state[3] ax = F*np.cos(theta)/my = state[4] vy = state[5] ay = F*np.sin(theta)/m return [omega, alpha, vx, vy, ax, ay] resultaat = odeint(derivatives_circ,[theta0, omega0, x0, vx0, y0, vy0], t) theta = resultaat[:,0] omega = resultaat[:,1] x = resultaat[:,2] vx = resultaat[:,3] y = resultaat[:,4] vy = resultaat[:,5] for n in range(len(t)-1): if theta[n]<0.5*np.pi: afgeleiden = derivatives_circ([theta[n], omega[n]], x[n], vx[n], y[n], vy[n], t[n]) omega[n+1] = omega[n] + afgeleiden[1]*dt theta[n+1] = theta[n] + afgeleiden[0]*dt vx[n+1]=vx[n]+afgeleiden[3]*dt x[n+1]=x[n]+afgeleiden[2]*dt vy[n+1]=vy[n]+afgeleiden[5]*dt y[n+1]=y[n]+afgeleiden[4]*dt else: afgeleiden_circ = derivatives_circ([theta[n], omega[n]], x[n], vx[n], y[n], vy[n], t[n]) omega[n+1] = omega[n] + afgeleiden_circ[1]*dt theta[n+1] = theta[n] + afgeleiden_circ[0]*dt afgeleiden_lin = derivatives_circ([x[n],vx[n]],t[n]) vx[n+1]=vx[n]+afgeleiden[3]*dt x[n+1]=x[n]+afgeleiden[2]*dt afgeleiden = derivatives_circ([y[n],vy[n]],t[n]) vy[n+1]=vy[n]+afgeleiden_circ[5]*dt y[n+1]=y[n]+afgeleiden[4]*dt 

任何幫助將不勝感激!

這行在這里:

afgeleiden = derivatives_circ([theta[n], omega[n]], x[n], vx[n], y[n], vy[n], t[n])

應該是:

afgeleiden = derivatives_circ([theta[n], omega[n], x[n], vx[n], y[n], vy[n]], t[n])

根據您之前對derivatives_circ _circ的調用

在這一行:

def derivatives_circ(state, t):

您定義了此函數,以使其帶有2個參數 ,但在此行中:

afgeleiden = derivatives_circ([theta[n], omega[n]], x[n], vx[n], y[n], vy[n], t[n])

您給它6個參數 這就是為什么它給您錯誤。 我不知道您的代碼背后的想法,但將其替換為以下代碼:

afgeleiden = derivatives_circ([theta[n], omega[n], x[n], vx[n], y[n], vy[n]], t[n])

應該管用!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM