“int”对象没有“Python”属性

2024-04-19 18:08:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我的代码是第二首颂歌的欧拉方法。我已经试过用这种方法来定义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是什么意思?有人能帮忙修理吗?在


Tags: 方法代码inforreturndefdtpi
2条回答

f是一个包含两个整数的列表。f[i]引用了第i个int;因此f[i][j]将尝试获取int的第j个值,无论{}的值是什么,它都不可能工作。在

不过,现在还不清楚你想怎么处理这个电话。在

您试图使用f作为一个列表列表(例如,像一个二维数组),但它实际上只是一个列表:[101,2]。在

我对ODEs不太熟悉,但我认为您试图创建一个101x2的0网格,如果是这样的话,请尝试f=[[0.0]*m来表示范围(N)]内的x。在

相关问题 更多 >