用jacobi方法求解拉普拉方程PYTHON

时间:2017-04-07 23:03:39

标签: python

我是python的新手,我正在尝试使用拉普拉斯方程和jacobi方法重建金属盒中的电位。我编写了一个似乎最初工作的代码,但是我收到了错误:IndexError:索引8超出了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

1 个答案:

答案 0 :(得分:0)

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

CREATE (:person {name: "aaaa"})-[:work_at]->(:company {type:"Inc"})

您只需在索引中添加# 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]) ,这肯定会超出范围