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 ...