Python 解带状联立方程时的溢出误差

Python 解带状联立方程时的溢出误差,python,numpy,matrix,physics,Python,Numpy,Matrix,Physics,我试图用计算物理书中的函数来解带状联立方程: 但是,运行该函数会导致以下溢出错误: OverflowError: cannot convert float infinity to integer in banded line 39: v[m] /= div 矩阵A和w为: A = [[ 3 -1 -1 ... 0 0 0] [-1 4 -1 ... 0 0 0] [-1 -1 4 ... 0 0 0] ... [ 0 0 0 ... 4 -1 -1] [

我试图用计算物理书中的函数来解带状联立方程: 但是,运行该函数会导致以下溢出错误:

OverflowError: cannot convert float infinity to integer in banded line 39: v[m] /= div
矩阵A和w为:

A = 
[[ 3 -1 -1 ...  0  0  0]
 [-1  4 -1 ...  0  0  0]
 [-1 -1  4 ...  0  0  0]
 ...
 [ 0  0  0 ...  4 -1 -1]
 [ 0  0  0 ... -1  4 -1]
 [ 0  0  0 ... -1 -1  3

w = [5 5 0 ... 0 0 0]

x = banded(A,w,2,2)
有人能帮我弄清楚为什么在使用这个函数时会出现溢出错误吗?
谢谢。

我认为您应该将A制作成带状矩阵,如banded.py所示

(-A02A13A24)。。。 (-A01 A12 A23 A34)。。。 (A00 A11 A22 A33 A44。。。 (A10 A21 A32 A43 A54。。。 (A20 A31 A42 A53 A64

此外,如果矩阵A或向量W中的矩阵元素是整数,则可以认为带状函数不能正常工作,可以考虑将其初始化为浮点。

( - - A02 A13 A24 ... ( - A01 A12 A23 A34 ... ( A00 A11 A22 A33 A44 ... ( A10 A21 A32 A43 A54 ... ( A20 A31 A42 A53 A64 ...