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 = 200 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 print('i{},x{},t{}'.format(i.x.t)) 21 k_1 = h * f(x[i],t[i]) 22 k_2 = h * f(x[i] + k_1 /2 , t[i] + h/2 ) 23 k_3 = h * f(x[i] + k_2 /2 , t[i] + h/2 ) 24 k_4 = h * f(x[i] + k_3 , t[i] + h ) 25 x[i+1] = x[i] + 1/6 * (k_1 + 2*k_2 + 2*k_3 + k_4 ) 26 27 28 if i == N-1: 29 break 30 31 i += 1 32 33plt.plot (t, x) 34plt.xlabel("t") 35plt.ylabel("x(t)") 36plt.show() 37 38```というルンゲクッタ法を用いたコードなのですが、実行すると、 39- 'int' object has no attribute 'x' 40 File "C:\Users\hot40\OneDrive\Desktop\runngekyttapra3.py", line 20, in <module> 41 print('i{},x{},t{}'.format(i.x.t)) 42 43とエラーが出てきます。何がいけないのかと、対応策を教えていただきたいです。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/13 09:02
2021/12/13 09:43
2021/12/13 09:54