python
1import numpy as np 2import matplotlib.pyplot as plt 3 4def f(x,t): 5 return x*(5-x) 6 7a = 0.0 8b = 2.0 9N = 0.01 10h = (b-a)/N 11i = 0 12 13t = np.arange(a,b,h) 14x_0 = 1 15 16x = np.empty(N) 17x[0] = x_0 18 19while i < N-1: 20 k_1 = h * f(x[i],t[i]) 21 k_2 = h * f(x[i] + k_1 /2 , t[i] + h/2 ) 22 k_3 = h * f(x[i] + k_2 /2 , t[i] + h/2 ) 23 k_4 = h * f(x[i] + k_3 , t[i] + h ) 24 x[i+1] = x[i] + 1/6 * (k_1 + 2*k_2 + 2*k_3 + k_4 ) 25 26 if i == N-1: 27 break 28 29 i += 1 30 31plt.plot (t, x) 32plt.xlabel("t") 33plt.ylabel("x(t)") 34plt.show() 35```ルンゲクッタ法を用いたコードなのですが、実行すると、 36- float' object cannot be interpreted as an integer 37 File "C:\Users\hot40\OneDrive\Desktop\runngekyttapra3.py", line 16, in <module> 38 x = np.empty(N) 39 40とエラーが出てしまいます。何がいけないのかと、対応策を教えていただきたいです。
回答1件
あなたの回答
tips
プレビュー