我的代码是第二首颂歌的欧拉方法。我已经试过用这种方法来定义f {definicial(): 全球f f=矩阵(M,N)} 但我在同一行有问题。我不知道如何识别我在这方面的功能。在
N=101
x_min = -10.0
x_max = 10.0;
dx = (x_max - x_min)/(N-1)
dt = 0.25*dx*dx
t=0
t_max = 1000
Q=1
j=0
M=2
f = [N , M]
def f_xx(i,t):
return ((f[i+1][t]-2*f[i][t]+f[i-1][t])/(dx*dx))
def guess(x):
return ((pi*Q/x_max)*x +(pi*Q))
for i in range (N):
for j in range(j):
x = x_min + i*dx
f[i][j] = guess(x)
for j in range(t_max+1):
for i in range(N-1):
x = x_min + i*dx
f[i][j+1] = f[i][j]+(f_xx(i,j)-sin(f[i][j]))*dt <<<error
for i in range (N-1):
f[i][j] = f[i][j+1]
“int”对象没有属性getitem是什么意思?有人能帮忙修理吗?在
f
是一个包含两个整数的列表。f[i]
引用了第i个int;因此f[i][j]
将尝试获取int的第j个值,无论{不过,现在还不清楚你想怎么处理这个电话。在
您试图使用f作为一个列表列表(例如,像一个二维数组),但它实际上只是一个列表:[101,2]。在
我对ODEs不太熟悉,但我认为您试图创建一个101x2的0网格,如果是这样的话,请尝试f=[[0.0]*m来表示范围(N)]内的x。在
相关问题 更多 >
编程相关推荐