0

I try to solve linear system that is ax=b by LDU decomposition where L is lower triangular , D is diagonal matrix and U is transpose of L which diagonal entries are 1

but there was error that "TypeError: 'int' object is not subscriptable"

here is my code

import numpy as np

s=(4,4)

a=np.array([[4,1,1,1],[1,3,-1,1],[1,-1,2,0],[1,1,0,2]])
l=np.zeros(s)
v=np.zeros(4)
d=np.zeros(4)
y=np.zeros(4)
z=np.zeros(4)
x=np.zeros(4)
b=np.array([0.65,0.05,0.0,0.5])
s=np.zeros(4)
t=np.zeros(4)
k=np.zeros(4)
q=np.zeros(4)
for i in range(4):
  l[i,i]=1


for i in range(4):
  for j in range(i):
    v[j]=l[i,j]*d[j]
    s[i]=s[i]+l[i,j]*v[j]

  d[i]=a[i,i]-s[i]

for j in range(i+1,4):
    for k in range(i):
        t[j]=t[j]+l[j,k]*v[k]

    l[j,i]=(a[j,i]-t[j])/d[i]

y[0]=b[0]

for i in range(1,4):
  for j in range(i):
    k[i]=k[i]+l[i,j]*y[j] # here are the error code that "TypeError: 'int' object isnosubscriptable"#

  y[i]=b[i]-k[i]

for i in range(4):
  z[i]=y[i]/d[i]

x[3]=z[3]

for i in range(2,-1,-1):
  for j in range(i+1,4):
    q[i]=q[i]+l[j,i]*x[j]

  x[i]=z[i]-q[i]


for i in range(4):
  print(x[i])

I know that it is poor code

but I really don't know why this error type occurs

김세윤
  • 19
  • 2

0 Answers0