Я пытаюсь решить линейную систему, которая является ax = b с помощью разложения LDU, где L - нижняя три angular, D - диагональная матрица, а U - транспонирование L, диагональные элементы которого равны 1
, но ошибка, что "TypeError: 'int' объект не может быть подписан"
вот мой код
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])
Я знаю, что это плохой код
, но я действительно не не знаю, почему возникает этот тип ошибки