Diagonalizar una matriz.
Publicado por Gerardo (7 intervenciones) el 20/06/2019 06:41:01
buenas. tengo un problema con el siguiente código. que intenta diagonalizar una matriz despues de haber hecho su factorización LU. veamos el código y a lo último muestro el error que sale, ¿qué cambio puedo hacerle?. Creo que el error reside en la línea: D = np.zeros ((m,n)) ¿cómo la cambio?
error que obtengo.
Traceback (most recent call last):
File "C:/Users/MOVITEL S & B/Desktop/Análisis núm/Tareas/Ensayo diagonalización..py", line 39, in <module>
DL = D(L,3,3)
File "C:/Users/MOVITEL S & B/Desktop/Análisis núm/Tareas/Ensayo diagonalización..py", line 31, in D
D[i,j] = A[i][j]
ValueError: setting an array element with a sequence.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import numpy as np
def L(A,m,n):
L = np.zeros ((m,n))
U = np.zeros ((m,n))
for k in range (0,n-1):
for i in range (k+1,m) :
L[i,k] = A[i][k]/ A[k][k]
U[i][k] = 0
for j in range (k+1, m):
A[i][j] = A[i][j] - L[i,k]*A[k][j]
U[i,j] = A[i][j]
for i in range (0,n):
L[i,i] = 1
U[0,i] = A[0][i]
return L , U
def D(A,m,n):
D = np.zeros ((m,n))
for i in range (0,m):
for j in range (0,n):
if (j == i):
D[i,j] = A[i][j]
return D
B = [[16,4,64],[4,3,8],[64,8,300]]
L = L(B,3,3)
DL = D(L,3,3)
print(DL)
error que obtengo.
Traceback (most recent call last):
File "C:/Users/MOVITEL S & B/Desktop/Análisis núm/Tareas/Ensayo diagonalización..py", line 39, in <module>
DL = D(L,3,3)
File "C:/Users/MOVITEL S & B/Desktop/Análisis núm/Tareas/Ensayo diagonalización..py", line 31, in D
D[i,j] = A[i][j]
ValueError: setting an array element with a sequence.
Valora esta pregunta


0