Está en la página 1de 19

Mtodo iterativo

En matemtica computacional, un mtodo iterativo trata de resolver un problema (como una ecuacin o un sistema de ecuaciones) mediante aproximaciones sucesivas a la solucin, empezando desde una estimacin inicial. Esta aproximacin contrasta con los mtodos directos, que tratan de resolver el problema de una sola vez (como resolver un sistema de ecuaciones Ax=b encontrando la inversa de la matriz A). Los mtodos iterativos son tiles para resolver problemas que involucran un nmero grande de variables (a veces del orden de millones), donde los mtodos directos tendran un coste prohibitivo incluso con la potencia del mejor computador disponible.

ndice
[ocultar]

1 Puntos fijos atractivos 2 Sistemas lineales

o o o o

2.1 Mtodos iterativos estacionarios 2.2 Mtodos del subespacio de Krylov 2.3 Convergencia 2.4 Precondicionantes

3 Historia 4 Vase tambin 5 Enlaces externos

[editar]Puntos

fijos atractivos

Si una ecuacin puede ponerse en la forma f(x) = x, y una solucin x es un punto fijo atractivo de la funcin f, entonces puede empezar con un punto x1 en la base de atraccin dex, y sea xn+1 = f(xn) para n 1, y la secuencia {xn}n 1 converger a la solucin x.

[editar]Sistemas

lineales

En el caso de un sistema lineal de ecuaciones, las dos clases principales de mtodos iterativos son los mtodos iterativos estacionarios y los ms generales mtodos delsubespacio de Krylov

[editar]Mtodos

iterativos estacionarios

Los mtodos iterativos estacionarios resuelven un sistema lineal con un operador que se aproxima al original; y basndose en la medida de error (el residuo), desde una ecuacin de correccin para la que

se repite este proceso. Mientras que estos mtodos son sencillos de derivar, implementar y analizar, la convergencia normalmente slo est garantizada para una clase limitada de matrices.

[editar]Mtodos

del subespacio de Krylov

Los mtodos del subespacio de Krylov forman una base ortogonal de la secuencia de potencias de la matriz por el residuo inicial (la secuencia de Krylov). Las aproximaciones a la solucin se forman minimizando el residuo en el subespacio formado. El mtodo prototpico de esta clase es el mtodo de gradiente conjugado. Otros mtodos son el mtodo del residuo mnimo generalizado y el mtodo del gradiente biconjugado.

[editar]Convergencia
Dado que estos mtodos forman una base, el mtodo converge en N iteraciones, donde N es el tamao del sistema. Sin embargo, en la presencia de errores de redondeo esta afirmacin no se sostiene; adems, en la prctica N puede ser muy grande, y el proceso iterativo alcanza una precisin suficiente mucho antes. El anlisis de estos mtodos es difcil, dependiendo de lo complicada que sea la funcin del espectro del operador.

[editar]Precondicionantes
El operador aproximativo que aparece en los mtodos iterativos estacionarios puede incorporarse tambin en los mtodos del subespacio de Krylov, donde se pasan de ser transformaciones del operador original a un operador mejor condicionado. La construccin de precondicionadores es un rea de investigacin muy extensa.

[editar]Historia
Probablemente, el primer mtodo iterativo apareci en una carta de Gauss a un estudiante. Propona resolver un sistema 4 por 4 de ecuaciones mediante la repeticin de la solucin del componente donde el residuo era mayor. La teora de mtodos estacionarios se estableci slidamente con el trabajo de D.M. Young, que empez en la dcada de 1950. El mtodo del gradiente conjugado se invent en esa misma dcada, con desarrollos independientes de Cornelius Lanczos, Magnus Hestenes y Eduard Stiefel, pero su naturaleza y aplicacin se malentendieron en esa poca. Slo en la dcada de 1970 se puso de manifiesto que estos mtodos los cuales tienden a funcionan muy bien para resolver ecuaciones de derivadas parciales, especialmente del tipo elptico.

http://es.wikipedia.org/wiki/M%C3%A9todo_iterativo
INTRODUCCIN En la prctica de la ingeniera y ciencias es frecuente tener la necesidad de resolver un sistema de ecuaciones lineales. Estos sistemas aparecen en muy diversos problemas, ya sea como

la solucin completa de un problema al menos como parte de ella. Dada esta necesidad frecuente, se requiere resolverlos en forma eficiente. Los mtodos numricos que resuelven los sistemas se pueden clasificar en directos e indirectos. Los mtodos directos son aquellos que determinan la solucin en un numero determinado de pasos. Los mtodos iterativos son aquellos que obtienen la solucin aproximndose a ella en un numero finito, pero no definido de pasos. La siguiente entrega pretende encontrar la solucin de un sistema de ecuaciones lineales por los mtodos anteriormente mencionados. Como los algoritmos de los mtodos ya estn disponibles en la mayora de los libros de texto sobre la materia, se explicara en la medida de lo posible, detalles de implementacin(personales)de los mtodos directos(que son mas difciles de programar). El lenguaje de programacin idneo para tal fin ser matlab 6.0 SISTEMAS LINEALES DE ECUACIONES Antes de empezar con los detalles de implementacin de los mtodos directos resulta conveniente determinar con que sistema o sistemas vamos a trabajar. Para los mtodos directos se preferir un sistema cuya matriz de coeficientes sea simtrica y definida positiva; la razn de tal decisin radica es que con este tipo de matrices trabaja el mtodo directo de "Cholesky", a diferencia de Doolittle y Crout. Puesto que se utilizar un W(factor de relajacin) dado : W = (raz cuadrada(5)+1)/2 = 1.61803398874989aprox. No ser necesario tener un sistema tridiagonal para hallar dicho valor. Como consecuencia de lo anteriormente expuesto, se utilizar el mismo sistema para los mtodos directos e iterativos. Una matriz A es simtrica si su transpuesta es igual a A. Es decir: A = [a(i,j)] es simtrica si y solo si [a(i,j)]=[a(j,i)]. Una matriz simtrica A es positiva definida si y solo si los eigenvalores(valores propios) de A son positivos. Toda matriz simtrica se puede descomponer como: A = L*Lt (transpuesta) Para construir de manera fcil la matriz en cuestin, basta con utilizar las siguientes instrucciones en matlab: >>L=tril(ones(10)); %construye L >>A=L*L'; %construye L*Lt >>A%matriz simtrica A= 1111111111 1222222222 1233333333 1234444444 1234555555 1234566666 1234567777 1234567888 1234567899 1 2 3 4 5 6 7 8 9 10 Si se quiere comprobar que efectivamente se trata de una matriz positiva definida, basta con teclear: >>eig(A)%calcula los valores propios de A

Que obtendr: ans = 0.2557 0.2738 0.3080 0.3662 0.4652 0.6431 1.0000 1.8730 5.0489 44.7661 Y todos los valores propios de A son positivos Para evitar problemas de convergencia en los mtodos iterativos es necesario que el esquema convergente quede determinado. Para el mtodo de Jacobi basta teclear: >> S=diag(diag(A));%crea la matriz diagonal >> T=S-A; >>B=inv(S)*T; >>eig(B) Que arroja: ans = -6.2572 -0.3709 0.4470 0.7060 0.8199 0.8800 0.9156 0.9386 0.9545 0.9666 Como cada uno de los valores propios es menor que ("<1"),entonces el esquema de convergencia "A", sirve para obtener las ecuaciones iterativas del mtodo de Jacobi. Para el mtodo de Gauss-Seidel: >> L=tril(A,-1); >>D=diag(diag(A)); >> S=D+L; >> T=S-A; >>B=inv(S)*T; >> eig(B) Que arroja: ans = 0 0.5000 0.6667

0.7500 0.8000 0.8333 0.8571 0.8750 0.8889 0.9000 Como cada uno de los valores propios es menor que ("<1"),entonces el esquema de convergencia "A", sirve para obtener las ecuaciones iterativas del mtodo de Gauss-Seidel. Como ya se ha determinado la matriz de coeficientes del sistema, ahora slo resta elegir el vector de trminos independientes y determinar la solucin del sistema(para ayudarnos a ver mejor el comportamiento de los mtodos). Como todo sistema se puede escribir como Ax=b, utilizaremos a matlab para resolverlo por x = (inversa de A)*b.(solucin por la inversa) Entonces se teclea: >>b=[11;2;9;20;5;6;7;0;1;3];%vector de trminos independientes >> x=inv(A)*b;%solucin por la inversa El resultado obtenido ser: x= 20 -16 -4 26 -16 0 8 -8 -1 2 Que es el vector solucin que se presumir obtener por los mtodos a evaluar. Nuestro sistema quedar entonces de la siguiente manera:

Que es la forma matricial Ax=b. METODOS DIRECTOS Puesto que ya se determin el sistema con el cual se trabajar, ahora se centrar la atencin en la programacin de los mtodos directos. La lgica de los algoritmos(procedimientos no ambiguos que resuelven problemas),sugieren que el cuerpo de la implementacin sea:

1)Captura de los datos de entrada. 2)Implementacin de un mtodo directo. 3)Implementacin de los procedimientos progresivos y regresivos que llevan a la solucin. 4)Salida y presentacin de los resultados. Se explicara solo los detalles del mtodo de Doolittle, cuya lgica es aplicable a los restantes mtodos directos respecto a los itenes 1. y 3). DOOLITTLE (Captura de los datos de entrada) Que es lo que necesita un mtodo directo para poder empezar? Resulta lgico pensar que necesita A y b (Ax=b), pero si esto se hace pidindole al usuario que digite A y luego b, se corre el riesgo que digite mal los datos, adems resulta muy cansado hacerlo. Podra adems digitar un tamao de matriz que no corresponde a la matriz. Para aminorar un poco el riesgo, se le pedir al usuario que ingrese la matriz aumentada del sistema, de la cual se sacar la informacin necesaria para que el mtodo funcione. Como el tamao de A es n*n, el tamao de la matriz aumentada es n*n+1, puesto que se incluye a "b"(una columna mas). El algoritmo de captura quedara como: 1. 2. 3. Lea matriz Tam=tamao(matriz) Para i=1, n haga

b(i)=matriz(i,n+1) (determinar "b") Para j=1, n haga A(i,j)=matriz(i,j) (determinar "A") Finpara Finpara 4- b1=transpuesta(b) ("b" es un vector columna) DOOLITTLE (Implementacin de los procedimientos progresivos y regresivos que llevan a la solucin.) Se utilizar un sistema de 3*3 y 4*4 para ver el comportamiento de "c" en L*c=b, y de "x" en Ux=c. L*c=b

c(1)=b(1) c(2)=b(2)-[l(2,1)*c(1)] c(3)=b(3)-[l(3,1)*c(1)+l(3,2)*c(2)]

c(1)=b(1) c(2)=b(2)-[l(2,1)*c(1)] c(3)=b(3)-[l(3,1)*c(1)+l(3,2)*c(2)] c(4)=b(4)-[l(4,1)*c(1)+l(4,2)*c(2)+l(4,3)*c(3)] Es facil observar, que lo que se esta efectuando entre corchetes([]), es una sumatoria. Tambin se observa que en L(i,j) , i<>j y i>j Adems, de c(2) a c(n) se tiene que para L(i,j), i=2,n y j=1,n-1 Entonces el esquema para c quedaria como: c(1)=b(1) c(i)=b(i)-Sumatoria(L(i,j)*c(i)), i<>j y i>j para todo L(i,j) con i=2,n y j=1,n-1 El procedimiento que resume este comportamiento es: c(1)=b(1) Para i=2,n haga z=0 Para j=1,n-1 haga Si i<>j y i>j entonces z=z+L(i,j)*c(j) Finsi Finpara c(i)=b(i)-z Finpara Ux=c

x(3)=c(3)/u(3,3) x(2)={c(1)-[u(2,3)*x(3)]}/u(2,2) x(1)={c(1)-[ u(1,3)*x(3)+u(1,2)*x(2) ]}/u(1,1)

x(4)=c(4)/u(4,4) x(3)={c(3)-[u(3,4)*x(4)]}/u(3,3) x(2)={c(2)-[u(2,4)*x(4)+u(2,3)*x(3)]}/u(2,2) x(1)={c(1)-[u(1,4)*x(4)+u(1,3)*x(3)+u(1,2)*x(2)]}/u(1,1) Es facil observar, que lo que se esta efectuando entre corchetes([]), es una sumatoria. Tambin se observa que en U(i,j) , i<>j y i<j Adems, de x(n-1) a x(1) se tiene que para U(i,j), i=n-1,1 y j=n,2 Entonces el esquema para x quedaria como: x(n)=c(n)/u(n,n) x(i)=c(i)-Sumatoria(U(i,j)*x(j)), i<>j y i<j para todo U(i,j) con i=n-1,1 y j=n,2 El procedimiento que resume este comportamiento es: x(n)=c(n)/u(n,n) Para i=n-1,1 haga Para j=n:-1:2 haga Si I<>j y i<j entonces z=z+U(i,j)*x(j) Finsi Finpara x(i)=(c(i)-z)/U(i,i) Finpara A continuacin se da el cdigo fuente con algunos comentarios sobre las instrucciones donde es conveniente. CODIGO FUENTE DE DOOLITTLE matriz=input ('TECLEE LA MATRIZ AUMENTADA DEL SISTEMA, por ejemplo: [5 -4 2 20;2 -3 4 19;1 1 3 10]\n'); tam=size(matriz);%sacar el tamao de la matriz para determinar: %A(matris de coeficientes) y b(vector de terminos independientes) n=tam(1);%saca el numero de filas de la matriz(tamao de A) for i=1:n b(i)=matriz(i,n+1);%determinar "b" for j=1:n A(i,j)=matriz(i,j);%determinar "A" end end b1=b';% "b" es un vector columna L=eye(n);%inicializa la "L" de doolittle(le da el tamao de A),y evita crear sus unos y ceros for k=1:n-1 %factorizacion de doolittle''''''''''''''''''''''''''''' for i=k+1:n %'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

L(i,k)=A(i,k)/A(k,k); %(se determina la "L")'''''''''''''''''''''' ''''''''''' for j=1:n %'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' A(i,j)=A(i,j)-A(k,j)*L(i,k);%(se determina la "U"(A se transforma en U)) end %''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' end %''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' end %''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' U=A;%cambio de variable c=b1;%se inicializa el vector "c", que tiene el mismo tamao de "b"(se determina c(1)) for i=2:n %procedimiento para hallar "c"(progresivamente) z=0; %'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' for j=1:n-1 %''''''''L*c=b''''''''''''''''''''''''''''''''''''''''''''''''''''''''' if i~=j & i>j %'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' z=z+L(i,j)*c(j);%'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' end %'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' end %'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' c(i)=b1(i)-z; %'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' end %'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' x=c;%se inicializa el vector "x", que tiene el mismo tamao de "c" x(n)=c(n)/U(n,n);%se determina x(n)(ultima solucion del sistema) for i=n-1:-1:1 %procedimiento para hallar "x"(regresivamente) z=0; %''''''''''''''''''''''''''''''''''''''''''''' for j=n:-1:2 %''''''U*x=c'''''''''''''''''''''''''''''''''' if i~=j & i<j %''''''''''''''''''''''''''''''''''''''''''''' z=z+U(i,j)*x(j);%''''''''''''''''''''''''''''''''''''''''''''' end %''''''''''''''''''''''''''''''''''''''''''''' end %''''''''''''''''''''''''''''''''''''''''''''' x(i)=(c(i)-z)/U(i,i); %''''''''''''''''''''''''''''''''''''''''''''' end %''''''''''''''''''''''''''''''''''''''''''''' L%muestra la matriz triangular inferior de doolittle U%muestra ''''''''''''''''''''''superior '''''''''''' LU=L*U%muestra la factorizacion de doolittle x%vector solucion del sistema clear all%elimina las variables del espacio de trabajo(evita que el programa se cargue de basura) %copyright 2004 %ESVEN MORALES CODIGO FUENTE DE CROUT matriz=input ('TECLEE LA MATRIZ AUMENTADA DEL SISTEMA, por ejemplo: [5 -4 2 20;2 -3 4 19;1 1 3 10]\n'); tam=size(matriz);%sacar el tamao de la matriz para determinar %A(matris de coeficientes)y b(vector de terminos independientes) n=tam(1);%saca el numero de filas de la matriz for i=1:n b(i)=matriz(i,n+1);%determinar "b" for j=1:n A(i,j)=matriz(i,j);%determinar "A"

end end b1=b';% "b" es un vector columna U=eye(n);%inicializa la "U" de crout(le da el tamao de A),y evita crear sus unos y ceros for k=1:n-1 %factorizacion de crout''''''''''''''''''''' for j=k+1:n %''''''''''''''''''''''''''''''''''''''''''' U(k,j)=A(k,j)/A(k,k); %(se determina la "U")'''''''''''''''''''''' for i=1:n %''''''''''''''''''''''''''''''''''''''''''' A(i,j)=A(i,j)-A(i,k)*U(k,j);%(se determina la "L"(A se transforma en L)) end %''''''''''''''''''''''''''''''''''''''''''' end %''''''''''''''''''''''''''''''''''''''''''' end %''''''''''''''''''''''''''''''''''''''''''' L=A;%cambio de variable c=b1;%se inicializa el vector "c", que tiene el mismo tamao de "b" c(1)=b1(1)/L(1,1);%se determina el primer elemento de c for i=2:n %procedimiento para hallar "c"(progresivamente) s=0; %'''''''''''''''''''''''''''''''''''''''''''''' for j=1:n-1 %'''''''''''''''''''''''''''''''''''''''''''''' if i~=j & i>j %'''''''''''''''''''''''''''''''''''''''''''''' s=s+L(i,j)*c(j);%'''''''''''''''''''''''''''''''''''''''''''''' end %'''''''''''''''''''''''''''''''''''''''''''''' end %'''''''''''''''''''''''''''''''''''''''''''''' c(i)=(b1(i)-s)/L(i,i); %'''''''''''''''''''''''''''''''''''''''''''''' end %'''''''''''''''''''''''''''''''''''''''''''''' x=c;%se inicializa el vector "x", que tiene el mismo tamao de "c" for i=n-1:-1:1 %procedimiento para hallar "x"(regresivamente) s=0; %''''''''''''''''''''''''''''''''''''''''''''' for j=n:-1:2 %''''''''''''''''''''''''''''''''''''''''''''' if i~=j & i<j %''''''''''''''''''''''''''''''''''''''''''''' s=s+U(i,j)*x(j);%''''''''''''''''''''''''''''''''''''''''''''' end %''''''''''''''''''''''''''''''''''''''''''''' end %''''''''''''''''''''''''''''''''''''''''''''' x(i)=c(i)-s; %''''''''''''''''''''''''''''''''''''''''''''' end %''''''''''''''''''''''''''''''''''''''''''''' L%muestra la matriz triangular inferior de crout U%muestra ''''''''''''''''''''''superior '''''''' LU=L*U%muestra la factorizacion de crout x%vector solucion del sistema clear all%elimina las variables del espacio de trabajo(evita que el programa se cargue de basura) %copyright 2004 %ESVEN MORALES CODIGO FUENTE DE CHOLESKY matriz=input ('TECLEE LA MATRIZ AUMENTADA DEL SISTEMA, por ejemplo: [5 -4 2 20;2 -3 4 19;1 1 3 10]\n'); tam=size(matriz);%sacar el tamao de la matriz para determinar A(matris de coeficientes)

% y b(vector de terminos independientes) n=tam(1);%saca el numero de filas de la matriz for i=1:n b(i)=matriz(i,n+1);%determinar "b" for j=1:n A(i,j)=matriz(i,j);%determinar "A" end end b1=b';% "b" es un vector columna for k=1:n %Algoritmo de cholesky for i=1:k-1 %''''''''''''''''''''' sum=0; %''''''''''''''''''''' for j=1:i-1 %''''''''''''''''''''' sum=sum+A(i,j)*A(k,j); %''''''''''''''''''''' end %''''''''''''''''''''' A(k,i)=(A(k,i)-sum)/A(i,i); %''''''''''''''''''''' end %''''''''''''''''''''' sum=0; %''''''''''''''''''''' for j=1:k-1 %''''''''''''''''''''' sum=sum+A(k,j)*A(k,j); %''''''''''''''''''''' end %''''''''''''''''''''' A(k,k)=sqrt(A(k,k)-sum); %''''''''''''''''''''' end %''''''''''''''''''''' for i=1:n-1 %Aade los ceros de la L de cholesky for j=1:n %''(puesto que el algoritmo solo ''' if j>i %'''altera los elementos de''''''''' A(i,j)=0; %'''la diagonal principal de A'''''' end %''''y por debajo de esta)'''''''''' end %''''''''''''''''''''''''''''''''''' end %''''''''''''''''''''''''''''''''''' L=A;%cambio de variable Lt=L';%Lt sera la U de cholesky(transpuesta de L) c=b1;%se inicializa el vector "c", que tiene el mismo tamao de "b" c(1)=b1(1)/L(1,1);%se determina el primer elemento de c for i=2:n %procedimiento para hallar "c"(progresivamente) s=0; %'''''''''''''''''''''''''''''''''''''''''''''' for j=1:n-1 %'''''''''''''''''''''''''''''''''''''''''''''' if i~=j & i>j %'''''''''''''''''''''''''''''''''''''''''''''' s=s+L(i,j)*c(j) ;%'''''''''''''''''''''''''''''''''''''''''''''' end %'''''''''''''''''''''''''''''''''''''''''''''' end %'''''''''''''''''''''''''''''''''''''''''''''' c(i)=(b1(i)-s)/L(i,i); %'''''''''''''''''''''''''''''''''''''''''''''' end %'''''''''''''''''''''''''''''''''''''''''''''' x=c;%se inicializa el vector "x", que tiene el mismo tamao de "c" x(n)=c(n)/Lt(n,n);%se determina x(n)(ultima solucion del sistema)

for i=n-1:-1:1 %procedimiento para hallar "x"(regresivamente) z=0; %''''''''''''''''''''''''''''''''''''''''''''' for j=n:-1:2 %''''''Lt*x=c'''''''''''''''''''''''''''''''''' if i~=j & i<j %''''''''''''''''''''''''''''''''''''''''''''' z=z+Lt(i,j)*x(j);%''''''''''''''''''''''''''''''''''''''''''''' end %''''''''''''''''''''''''''''''''''''''''''''' end %''''''''''''''''''''''''''''''''''''''''''''' x(i)=(c(i)-z)/Lt(i,i); %''''''''''''''''''''''''''''''''''''''''''''' end %''''''''''''''''''''''''''''''''''''''''''''' L%muestra la matriz triangular inferior de cholesky Lt%muestra ''''''''''''''''''''''superior '''''''' LLt=L*Lt%muestra la factorizacion de cholesky x%vector solucion del sistema clear all%elimina las variables del espacio de trabajo(evita que el programa se cargue de basura) %copyright 2004 %ESVEN MORALES RESULTADOS CON LOS METODOS DIRECTOS DOOLITTLE L= 1000000000 1100000000 1110000000 1111000000 1111100000 1111110000 1111111000 1111111100 1111111110 1111111111 U= 1111111111 0111111111 0011111111 0001111111 0000111111 0000011111 0000001111 0000000111 0000000011 0000000001 LU = 1111111111 1222222222 1233333333 1234444444

1234555555 1234566666 1234567777 1234567888 1234567899 1 2 3 4 5 6 7 8 9 10 x= 20 -16 -4 26 -16 0 8 -8 -1 2 CROUT L= 1000000000 1100000000 1110000000 1111000000 1111100000 1111110000 1111111000 1111111100 1111111110 1111111111 U= 1111111111 0111111111 0011111111 0001111111 0000111111 0000011111 0000001111 0000000111 0000000011 0000000001 LU = 1111111111 1222222222 1233333333 1234444444

1234555555 1234566666 1234567777 1234567888 1234567899 1 2 3 4 5 6 7 8 9 10 x= 20 -16 -4 26 -16 0 8 -8 -1 2 cholesky L= 1000000000 1100000000 1110000000 1111000000 1111100000 1111110000 1111111000 1111111100 1111111110 1111111111 Lt = 1111111111 0111111111 0011111111 0001111111 0000111111 0000011111 0000001111 0000000111 0000000011 0000000001 LLt = 1111111111 1222222222 1233333333 1234444444

1234555555 1234566666 1234567777 1234567888 1234567899 1 2 3 4 5 6 7 8 9 10 x= 20 -16 -4 26 -16 0 8 -8 -1 2 Nota: como ste trabajo solo fue realizado por una sola persona, no tuvo tiempo para implementar los mtodos iterativos(a pesar de que son mas fciles de implementar). No obstante el trabajo de escritorio que si realiz, y las investigaciones personales que hizo, dieron pie para poder Sacar las prximas conclusiones. CONCLUSIONES Ventajas y desventajas de los mtodos iterativos comparados con los mtodos directos. Ventajas *Probablemente ms eficientes que los directos para sistemas de orden muy alto. *Mas simples de programar. *Puede aprovecharse una aproximacin a la solucin ,si tal aproximacin existe. *Se obtienen fcilmente aproximando burdas de la solucin. *Son menos sensibles a los errores de redondeo(valioso en sistemas mal condicionados). *Se requiere menos memoria de mquina.Generalmente, las necesidades de memoria son proporcionales al orden de la matriz. Desventajas *Si se tienen varios sistemas que comparten la matriz coeficiente, esto no representar ahorro de clculos ni tiempo de mquina, ya que por cada vector a la derecha de A tendr que aplicarse el mtodo seleccionado. *An cuando la convergencia este asegurada, puede ser lenta y ,por lo tanto, los clculos requeridos para obtener una solucin particular no son predecibles. *El tiempo de mquina y la exactitud del resultado dependen del criterio de convergencia. *Si la convergencia es lenta, los resultados deben interpretarse con cautela. *No se tiene ventaja particular alguna(tiempo de mquina por iteracin) si la matriz coeficiente es simtrica. *No se obtiene la inversa de A ni el determinante de A. BIBLIOGRAFA

-INTRODUCCION AL LGEBRA LINEAL. Antn Howard. 2da Ed -METODOS NUMERICOS PARA INGENIEROS. Chapra/Canale Mc-Graw Hill. 4a Ed ESVEN SALOMON MORALES BITAR UNIVERSIDAD AUTONOMA DEL CARIBE INGENIERIA DE SISTEMAS BARRANQUILLA / ATLANTICO

Leer ms: http://www.monografias.com/trabajos18/sistemas-ecuaciones/sistemasecuaciones.shtml#ixzz2KnZnuYnP

http://www.monografias.com/trabajos18/sistemas-ecuaciones/sistemas-ecuaciones.shtml

1.4 Software de cmputo numrico.


Paquetes comerciales de Fortran
Paquetes de sofware comercial para cmputo numrico general.

NAG El Grupo de Algoritmos numricos (Numerical Algorithms Group) (NAG) ha desarrollado una biblioteca de Fortran conteniendo alrededor de 1000 subrutinas accesibles al usuario para resolver problemas generales de matemticas aplicadas, incluyendo: ecuaciones diferenciales ordinarias y parciales, transformada rpida de Fourier, cuadratura, lgebra lineal, ecuaciones no lineales, ecuaciones integrales, y ms.

IMSL La biblioteca numrica de Fortran IMSL hecha por Visual Numerics, Inc. cubre muchas de las reas contenidas en la biblioteca NAG. Tambin tiene soporte para analizar y presentar datos estadsticos en aplicaciones cientficas y de negocios Numerical rcipes: Los libros de Numerical Recipes in C/Fortran son muy populares entre los ingenieros porque pueden ser usados como libro de cocina donde se puede encontrar una "receta (recipe)" para resolver algn problema a mano. Sin embargo, el software correspondiente de Numerical Recipes no es comparable en alcance o calidad al dado por NAG o IMSL.

Debe de mencionarse que todo el software listado anteriormente tambin esta disponible para el lenguaje C (o al menos puede ser llamado desde C). El programador slo tiene que escribir una rutina pequea ( driver) para el problema particular que tenga, porque el software para resolver las subtareas se encuentra ya disponible. De esta forma la gente no tiene que reinventar la rueda una y otra vez. Matlab ( MATrix LABoratory, "laboratorio de matrices") es un software matemtico que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programacin propio (lenguaje M). Est disponible para las plataformas Unix, Windows y Apple Mac OS X. Entre sus prestaciones bsicas se hallan: la manipulacin de matrices, la representacin de datos y funciones, la implementacin de algoritmos, la creacin de interfaces de usuario (GUI) y la comunicacin con programas en otros lenguajes y con otros dispositivos hardware. El paquete MATLAB dispone de dos herramientas adicionales que expanden sus prestaciones, a saber, Simulink (plataforma de simulacin multidominio) y GUIDE (editor de interfaces de usuario GUI). Adems, se pueden ampliar las capacidades de MATLAB con las cajas de herramientas (toolboxes); y las de Simulink con los paquetes de bloques (blocksets). Es un software muy usado en universidades y centros de investigacin y desarrollo. En los ltimos aos ha aumentado el nmero de prestaciones, como la de programar directamente procesadores digitales de seal o crear cdigo VHDL.

1.5 Mtodos iterativos.


Trata de resolver un problema (como una ecuacin o un sistema de ecuaciones) mediante aproximaciones sucesivas a la solucin, empezando desde una estimacin inicial. Considere el problema de encontrar una raz a una ecuacin cuadrtica, por ejemplo: f(x) = x2 x 2 = 0 Un mtodo directo para resolverlo es aplicar la frmula general

Un mtodo iterativo consta de los siguientes pasos.

1. inicia con una solucin aproximada (Semilla). 2. ejecuta una serie de clculos para obtener o construir una mejor aproximacin partiendo de la aproximacin semilla. La frmula que permite construir la aproximacin usando otra se conoce como ecuacin de recurrencia. Esta aproximacin contrasta con los mtodos directos, que tratan de resolver el problema de una sola vez (como resolver un sistema de ecuaciones Ax=bencontrando la inversa de la matriz A). Los mtodos iterativos son tiles para resolver problemas que involucran un nmero grande de variables (a veces del orden de millones), donde los mtodos directos tendran un coste prohibitivo incluso con la potencia del mejor computador disponible. Ventajas y Desventajas: Un elemento en contra que tienen los mtodos iterativos sobre los mtodos directos es que calculan aproximaciones a la solucin. Los mtodos iterativos se usan cuando no se conoce un mtodo para obtener la solucin en forma exacta. Tambin se utilizan cuando el mtodo para determinar la solucin exacta requiere mucho tiempo de clculo, cuando una respuesta aproximada es adecuada, y cuando el nmero de iteraciones es relativamente reducido. Puntos fijos atractivos Si una ecuacin puede ponerse en la forma f(x) = x, y una solucin x es un punto fijo atractivo de la funcin f, entonces puede empezar con un punto x1 en la base de atraccin de x, y sea xn+1 = f(xn) para n 1, y la secuencia {xn}n 1 converger a la solucin x. Sistemas lineales En el caso de un sistema lineal de ecuaciones, las dos clases principales de mtodos iterativos son los mtodos iterativos estacionarios y los ms generales mtodos del subespacio de krylov Mtodos iterativos estacionarios Los mtodos iterativos estacionarios resuelven un sistema lineal con un operador que se aproxima al original; y basndose en la medida de error (el residuo), desde una ecuacin de correccin para la que se repite este proceso. Mientras que estos mtodos son sencillos de derivar, implementar y analizar, la convergencia normalmente slo est garantizada para una clase limitada de matrices. Mtodos del subespacio de Krylov Los mtodos del subespacio de Krylov forman una base ortogonal de la secuencia de potencias de la matriz por el residuo inicial (la secuencia de Krylov). Las aproximaciones a la solucin se forman minimizando el residuo en el subespacio formado. El mtodo prototpico de esta clase es el mtodo del gradiente conjugado. Otros mtodos son el mtodo del residuo mnimo generalizado y el mtodo del gradiente biconjugado. Convergencia

Dado que estos mtodos forman una base, el mtodo converge en N iteraciones, donde N es el tamao del sistema. Sin embargo, en la presencia de errores de redondeo esta afirmacin no se sostiene; adems, en la prctica N puede ser muy grande, y el proceso iterativo alcanza una precisin suficiente mucho antes. El anlisis de estos mtodos es difcil, dependiendo de lo complicada que sea la funcin del espectro del operador. Pre condicionante El operador aproximativo que aparece en los mtodos iterativos estacionarios puede incorporarse tambin en los mtodos del subespacio de Krylov, donde se pasan de ser transformaciones del operador original a un operador mejor condicionado. La construccin de precondicionadores es un rea de investigacin muy extensa. El mtodo Jacobi es el mtodo iterativo para resolver sistemas de ecuaciones lineales ms simple y se aplica slo a sistemas cuadrados, es decir a sistemas con tantas incgnitas como ecuaciones. 1. Primero se determina la ecuacin de recurrencia. Para ello se ordenan las ecuaciones y las incgnitas. De la ecuacin i se despeja la incgnita i. En notacin matricial se escribirse como: x = c + Bx (1) Donde x es el vector de incgnitas. 2. Se toma una aproximacin para las soluciones 3. Se itera en el ciclo que cambia la aproximacin xi+1 = c + Bxi (2)

https://sites.google.com/site/metnumvmc/unidad-i-2

También podría gustarte