Anar al contingut

Algoritme de Lanczos

De L'Enciclopèdia, la wikipedia en valencià

El algoritme de Lanczos és un algoritme iterativo creat per Cornelius Lanczos,[1] est és una adaptació dels métodos iterativos per a trobar els valors propis més útils i vectores propis d'un sistema llineal de dimensió n*n realisant un número d'operacions, m, a on m és més chicotet que n.

Encara que computacionalment eficient, en principi, el método formulat inicialment no era útil, per la seua inestabilitat numèrica. En 1970, Ojalvo i Newman varen mostrar cóm fer el método numèricament estable.[2] Açò es va conseguir utilisant un método per a la correcció dels vectores a qualsevol grau de precisió que, quan no es realisa, produïx una série de vectores que estan altament contaminats pels associats en les freqüències naturals més baixes. En el seu treball original, estos autors també varen sugerir cóm seleccionar un vector de partida (utilisen un generador de números aleatoris per a seleccionar cada element del vector de partida) i varen propondre un método determinat empíricamente per a determinar m, el reduït número de vectores (deu ser seleccionat per a ser d'aproximadament 1 ½ voltes el número de valors propis exactes que es desija).

Poc despuix el seu treball va ser seguit per més artículs[3][4] que també varen proporcionar un anàlisis de l'error comés. En l'any 1988, Ojalvo[5] va produir una història més detallada d'este algoritme i una prova d'error eficient per a un valor propi. Actualment, el método és àmpliament utilisat en una varietat de camps tècnics i ha donat lloc una série de variants.

Método iterativo per a trobar valors propis

[editar | editar còdic]

El método iterativo per a trobar el major valor propi d'una matriu A pot resumir-se senyalant que si x0 és un vector aleatori i xn+1=Axn, llavors per a un n gran llímit xn/xn s'acosta al vector propi normalisat corresponent al valor propi més gran.

Si A=Udiag(σi)U és la descomposició en valors propis d'una matriu de A, llavors An=Udiag(σin)U. Com n es fa gran, la matriu diagonal de valors propis estarà acotada pel valor propi més gran(despreciant el cas en que el valor més gran este repetit ). Mentres, xn+1/xn convergiran al major valor propi i xn/xn al vector propi associat. Si el major valor propi és múltiple, llavors xn convergirà a un vector en el subespacio generat pels vectores propis associats en eixos valors propis més grans. Després d'haver trobat el primer vector propi / valor, un pot restringir successivament l'algoritme per a l'espai nul (kernel) dels vectores propis coneguts per a obtindre el segon major vector propi / valors i aixina successivament.

En la pràctica, este senzill algoritme no funciona molt be per al càlcul de molts dels vectores propis, ya que qualsevol error de grosseig podria introduir llaugers canvis als components dels vectores propis més significatius de nou en el càlcul, degradant l'exactitut del càlcul.

Método de Lanczos

[editar | editar còdic]

Durant el procediment d'aplicació del método, en obtindre l'últim valor propi An1v, també s'obté una série de vectores Ajv,j=0,1,,n2 els quals són descartats. Com n és en freqüència gran, pot ser que es tinga una gran cantitat d'informació que no s'utilise. Els algoritmes més alvançats, com l'algoritme de Arnoldi, l'algoritme de Lanczos, guarden esta informació i utilisen el procés de Gram–Schmidt o l'algoritme Householder per a ortogonalizar novament en una base que comprén el subespacio de Krylov corresponent a la matriu A.

L'algoritme

[editar | editar còdic]

L'algoritme de Lanczos pot ser vist com un sistema simplificat del algoritme de Arnoldi que s'aplica a matrius hermitianas. El mesimo pas de l'algoritme transforma la matriu A en una matriu tridiagonal Tmm; quan m és igual a la dimensió de A, Tmm és semblant a A.

Definicions

[editar | editar còdic]

Es vol calcular la matriu tridiagonal i simètrica Tmm=Vm*AVm.

Els elements de la diagonal es denoten per αj=tjj, I els elements fòra de la diagonal són denotats per βj=tj1,j.

Notar que tj1,j=tj,j1, per la simetria de la matriu.

Iteración

[editar | editar còdic]

(Nota: seguint estos passos solament no es trobaren correctament els valors i vectores propis. Es deuen tindre en conte més consideracions per a corregir errors numèrics. Vore la secció Estabilitat numèrica.)

En principi, hi ha quatre maneres d'escriure el procediment de iteración. Paige[1972] i atres treballs mostren que el següent procediment és el més estable numèricament.[6][7]

 v1 vector aleatori en norma 1.
 v00
 β10
 for j=1,2,,m1
   wjAvj
   αjwjvj
   wjwjαjvjβjvj1
   βj+1wj
   vj+1wj/βj+1
 endfor
 wmAvm
 αmwmvm
 return

Ací, xy representa el producte escalar de vectores x i y.

Despuix de la iteración, s'obté la αj and βj en els que es forma una matriu tridiagonal.

Tmm=(α1β20β2α2β3β3α3βm1βm1αm1βm0βmαm)

Els vectores vj (vectores de Lanczos) generats sobre la marcha formen la matriu de transformació Vm=(v1,v2,,vm), que és útil per al càlcul dels vectores propis (vore més avall). En la pràctica, es podria guardar en cada iteración (pero ocupa memòria), o es podria recalcular quan es necessite, sempre i quan es tinga el primer vector v1. En cada iteración de l'algoritme realisa una multiplicació matriu-vector i atres operacions de punt flotants.

Trobant valors i vectores propis

[editar | editar còdic]

En acabant de que la matriu Tmm és calculada, es poden trobar els seus valors propis λi(m) i els seus corresponents vectores propis ui(m) (Per eixemple, usant l'algoritme QR o Multiple Relatively Robust Representations (MRRR)). Els valors i vectores propis deT es poden obtindre en 𝒪(m2) usant MRRR; si es vol buscar solament els valors propis estos es calculen en 𝒪(m2) usant bisecció espectral.

Es pot demostrar que els valors propis són valors propis aproximats de la matriu original A.

Els vectores propis yi de A es poden calcular yi=Vmui(m), a on Vm és la matriu de transformació que els seus vectores columna són v1,v2,,vm.

Estabilitat Numèrica

[editar | editar còdic]

Estabilitat significa quànt es vorà afectat l'algoritme (és dir, es trobara un resultat aproximat propenc l'original) si hi ha menuts errors numèrics introduïts i acumulats. Estabilitat numèrica és el criteri central per a jujar l'utilitat d'una implementació d'un algoritme en un ordenador en grosseig. Per a l'algoritme de Lanczos, es pot demostrar que en una aritmètica exacta, el conjunt de vectores v1,v2,,vm+1 formen una base ortonormal, els valors i vectores propis trobats són bones aproximacions als de la matriu original. No obstant, en la pràctica (com els càlculs es realisen en aritmètiques de punt flotant a on la inexactitud és inevitable, la ortogonalidad es pert ràpidament i en alguns casos el nou vector inclús podria ser linealment dependent del conjunt que ya està construït. Com a resultat, alguns dels valors propis de la matriu tridiagonal resultant no són bones aproximacions per als de la matriu original. Per lo que, l'algoritme de Lanczos no és molt estable.

Els que usen l'algoritme deuen ser capaç de trobar i eliminar els valors propis "en errors". Les implementacions pràctiques de l'algoritme de Lanczos van en tres direccions per a lluitar contra este problema d'estabilitat:[6][7]

  1. Previndre la pèrdua de ortogonalidad
  2. Recuperar la ortogonalidad en acabant de que es genera la base.
  3. Despuix d'identificar els valors propis "en errors", eliminar-los.

Referències

[editar | editar còdic]
  1. Lanczos, C. “An iteration method for the solution of the eigenvalue problem of linear differential and integral operators”, J. Res. Nat’l Bur. Std. 45, 225-282 (1950).
  2. Ojalvo, I.U. and Newman, M.,”Vibration modes of large structures by an automatic matrix-reduction method”, AIAA J., 8 (7), 1234-1239 (1970).
  3. Paige, C.C., “The computation of eigenvalues and eigenvectors of very large sparse matrius”, the U. of London Ph.D. thesis (1971).
  4. Paige, C.C., “Computational variants of the Lanczos method for the eigenproblem”, J. Inst. Maths Applics 10, 373-381 (1972).
  5. Ojalvo, I.U., “Origins and advantages of Lanczos vectors for large dynamic systems”, Proc. 6th Modal Analysis Conference (IMAC), Kissimmee, FL, 489-494 (1988).
  6. 6,0 6,1 Lanczos Algorithms for Large Symmetric Eigenvalue Computations. ISBN 0-8176-3058-9.
  7. 7,0 7,1 Yousef Saad. Numerical Methods for Large Eigenvalue Problems. ISBN 0-470-21820-7.


Referències

[editar | editar còdic]