用jacobi方法求解laplace方程PYTHON

2024-10-16 17:28:38 发布

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

我对python相当陌生,正在尝试使用laplace方程和jacobi方法在金属盒中重建电势。我已经编写了一段代码,但是我得到了一个错误:索引器错误:索引8超出了大小为7的轴0的界限,无法找出原因。任何帮助都会很棒!在

from visual import*
from visual.graph import*
import numpy as np

 lenx = leny = 7
delta = 2

vtop = [-1,-.67,-.33,.00,.33,.67,1]
vbottom = [-1,-.67,-.33,.00,.33,.67,1]
vleft = -1
vright = 1

vguess= 0

x,y = np.meshgrid(np.arange(0,lenx), np.arange(0,leny))

v = np.empty((lenx,leny))
v.fill(vguess)

v[(leny-1):,:] = vtop
v [:1,:] = vbottom
v[:,(lenx-1):] = vright
v[:,:1] = vleft

maxit = 500

for iteration in range (0,maxit):
    for i in range(1,lenx):
        for j in range(1,leny-1):
            v[i,j] = .25*(v[i+i][j] + v[i-1][j] + v[i][j+1] + v[i][j-1])
            print v

Tags: infromimportfor错误nprangevisual
1条回答
网友
1楼 · 发布于 2024-10-16 17:28:38

只需快速浏览一下您的代码,就好像索引错误发生在这一部分,并且可以相应地进行更改:

# you had v[i+i][j] instead if v[i+1][j]
v[i,j] = .25*(v[i+1][j] + v[i-1][j] + v[i][j+1] + v[i][j-1])

您只需在索引中添加额外的i,这肯定超出了范围

相关问题 更多 >