一次元拡散方程式u(x,t)のグラフをt=0,0.1,1について作成する問題で、プログラムを作っているのですが、タイトルのようなエラーが発生しています。
時間tをステップ数に置き換えて、差分化した関数方程式をdef Y(x)のところで繰り返し使用することで、tがその値の時のu(x)の関数を出し、それを元に散布図を作成する、という風に考えています。どこが変なのか全く分からないです…教えて頂けると助かります。
import numpy as np
import matplotlib.pyplot as plt
ntmax=10
dt=0.001
kp=1
dx=0.01
def t(n):
g = [0 for j in range(n)]
g[0] = 0
i=1
while i < n:
g[i] = g[i-1]+0.01
i += 1
return g
xlist=[t(100)]
def Y(x):
Y[x] = x
for t in range(0,ntmax):
Y[x]=Y[x]+kpdt/(dxdx)(Y[x+0.01]-2Y[X]+Y[x-0.01])
def s(n):
for i in range(0,100):
s[i]=Y[i]
ylist=[s(100)]
plt.scatter(xlist,ylist)
plt.show()

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。