Page 347 - Chapra y Canale. Metodos Numericos para Ingenieros 5edición_Neat
P. 347
11.3 ECUACIONES ALGEBRAICAS LINEALES CON BIBLIOTECAS Y PAQUETES 323
Solución. Un ejemplo de un programa principal en Fortran 90 que usa LFCRG y
LFIRG para resolver este problema se escribe así:
PROGRAM Lineqs
USE msimsl
IMPLICIT NONE
INTEGER::ipath,lda,n,ldfac
PARAMETER(ipath=1,lda=3,ldfac=3,n=3)
INTEGER::ipvt(n),i,j,itmax=50
REAL::A(lda,lda),Ainv(lda,lda), factor(ldfac,ldfac),Rcond,Res(n)
REAL::Rj(n),B(n),x(n)
DATA A/1.0,0.5,0.3333333,0.5,0.3333333,0.25,0.3333333,0.25,0.2/
DATA B/1.833333,1.083333,0.783333/
!Realiza la descomposición lu; determina y muestra el número de
condición
CALL LFCRG(n,A,lda,factor,ldfac,ipvt,Rcond)
PRINT *, “número de condición = “, 1.0E0/Rcond
PRINT *
!Inicializa al vector Rj a cero
DO i = 1,n
Rj(i) = 0.
END DO
!Llena las columnas de la matriz identidad a través de
LFIRG para generar la
!inversa y almacena resultados en Ainv. Despliega Ainv
DO j = 1, n
Rj(j) = 1.0
CALL LFIRG(n,A,lda,factor,ldfac,ipvt,Rj,ipath,ainv 1,j),Res)
Rj(j) = 0.0
END DO
PRINT *, “Matriz inversa:”
DO i = 1,n
PRINT *, (Ainv(i,j),j=1,n)
END DO
PRINT *
!Usa LFIRG para obtener la solución para B. Despliega resultados
PRINT *, “Solución:”
DO I = 1,n
PRINT *, x(i)
END DO
END PROGRAM
6/12/06 13:54:15
Chapra-11.indd 323 6/12/06 13:54:15
Chapra-11.indd 323

