前提・実現したいこと
以下のURLを参考に、ファン・デル・ポール方程式をdx/dt=y,((d^2)x/(dx)^2)-mu(1-x^2)(dx/dt)+x=0とした時の(t,x(t))と(t,y(t))の図示を試みているのですが、エラーが出てしまいます。自分では解決できなかったのでエラーの解決方法を教えて頂けると嬉しいです。
参考URL
試したこと
import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt from numpy import sin,cos, sqrt from scipy.integrate import odeint x0 = [1, 0] #初期値ベクトル y0 = [1, 0] t = np.arange(30,50,0.01) # 時間 # van der Pol振動子 mu = 2.0 def rhs3(x,t,mu) : return [ x[1], mu*(1-x[0]**2)*x[1]-x[0] ] def rhs4(x,y,t,mu) : return [ y[1], mu*(1-x[0]**2)*y[1]-x[0] ] x3 = odeint(rhs3, x0, t, args=(mu,)) x4 = odeint(rhs4, y0, t, args=(mu,)) plt.xlabel('t') plt.ylabel('x') plt.axes(axisbg='white') plt.grid(True, color='gray', linestyle='dashed') plt.plot(t, x3[:,0], label='x') plt.plot(t, x4[:,0], label='y') plt.legend(loc='upper right', frameon=True, facecolor='white', edgecolor='black') plt.savefig('x-t.png', dpi=300, facecolor='white', transparent=False, format="png")
としましたが、
x4 = odeint(rhs4, y0, t, args=(mu,)) File "/anaconda3/lib/python3.6/site-packages/scipy/integrate/odepack.py", line 215, in odeint ixpr, mxstep, mxhnil, mxordn, mxords) TypeError: rhs4() missing 1 required positional argument: 'mu'
とエラーが出てしまいます。(Fileの文以降の色が他の文と変わっています)
拙いところもあるかと思いますが教えて頂けると嬉しいです。よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー