Nesesito ayuda con el metodo de potencias para sacar un valor caracteristico y su vector asociado de una matriz cuadrada en este caso es una de 3x3
https://es.m.wikipedia.org/wiki/Método_de_las_potencias
Edto ea lo que tengo pero por alguna razon no sigue asiendo interaciones
'Metodo de Potencias para encontrar
'el maximo valor caracteristico
'y su vector asociado
'Ingresando la siguiente matriz
'1 2 3
'4 5 6
'1 1 1
'Debe dar como resultado
'lambda 1 = 7.7720018727
'Vector asiciado:
'0.3860009363
'1.0000000000
'0.2046663546
'Pedir una matriz(a) 3 x 3 y la multiplica por otra matriz(b) aleatoria
'de 3 x 1 dando como resultado una matriz(c) de 3 x 1 dividir la matriz(c)
'entre el maximo de dicha matriz genrando otra matriz(d) de 3x1.calcular
'el error relativo q seria el numero maximo de la matriz(d) menos el
'numero maximo anterior si estes es menor a 0.0000000001 imprimir el
'ultimo valor maximo y la ultima matriz dividida
Dim A(50, 50) ,B(50, 50), c(50,50)
Dim n,i,j,k,nn,NuMax
wscript.echo "Ingrese Los Elementos De La Matriz A " & vbLf & ""
For i = 1 To 3
For j = 1 To 3
wscript.echo "Elemento", i, j
A(i, j) = Wscript.StdIn.ReadLine
Next
Next
'genera matriz aleatoria de ceros y unos
for i = 1 to 3
if i = 1 then
b(i,1) = 1
else
RAndomize()
b(i, 1) = Mid("01", Int(Rnd * 2) + 1, 1)
end if
next
do
'multiplica la matriz a*b y
'almacena el resultado en c
For i = 1 To 3
For j = 1 To 1
For k = 1 To 3
C(i, j) = C(i, j) + (A(i, k) * B(k, j))
next
Next
Next
'busca el valor mas grande
'en vector c
NuMax = c(1,1)
for i = 1 to 3
if c(i,1)>NuMax then
NuMax = c(i,1)
end if
next
'divide cada uno de los componentes
'del vector c entre el maximo de dicho vector
for i = 1 to 3
for j = 1 to 3
b(i,j) = c(i,j)/NuMax
next
next
'error:: numero maximo - el anterior
err = NuMax-err
if round(err,10) <0.000000001 then ' Si el error es menor a 0.000000001 termina e imprimeresultados
exit do
end if
loop
'para comprobar que lambda y el vector asociado esta bien
'multiplicar la matriz(a) ingesada y multiplicarla por
'la matriz resultante debe dar
'0
'0
'0
'MatrizOriginal * VectorAsociado = 0 ok
wscript.echo "Lambda1 = " & NuMax & vbLf & "Vector Asociado:" & vbLf & imprimir(b)
function Imprimir(c)
M = ""
For i = 1 To 3
For j = 1 To 1
M = M & C(i, j) & " "
Next
M = M & vbLf
Next
imprimir = M & vbLf
End function