You are on page 1of 9

LABORATORIO # 2 SOLUCIN SISTEMAS DE ECUACIONES LINEALES

DAVID EDUARDO LEN VANEGAS 214951 LINA MARA MILLN DAZ 214908

INGENIERO FERNANDO SALAZAR

UNIVERSIDAD NACIONAL DE COLOMBIA FACULTAD DE INGENIERA MTODOS NUMRICOS BOGOT D.C 01/09/11

SOLUCIN SISTEMAS DE ECUACIONES 1. Mtodo de factorizacin LU 1.1 Definiendo funcin de sustitucin hacia atrs donde se solucionara el sistema { }{ } { }, se guarda con el nombre del archivo SUSTITUCIN HACIA ATRS.SCE function X=SUSATRAS(U, D) n = length(D); X = zeros(n, 1); X(n) = D(n) / U(n, n); for k = n-1:-1:1 X(k) = (D(k) - U(k, k+1:n) * X(k+1:n)) / U(k, k); end endfunction

1.2 Funcin LU, hallan las matrices L Y U por medio de la reduccin de la matriz A, una matriz triangular superior (U) y otra donde se guardan los factores que logran eliminar las filas en el proceso de eliminacin formando una matriz triangular inferior con diagonal en 1 (L) posteriormente por sustitucin hacia adelante se resuelve el sistema { }{ } { } donde D nos ayudara a hallar la solucin del sistema { } { } { } utilizando la funcin sustitucin hacia atrs (susatras), esta funcin se guarda con el nombre de LU.sce

clc; disp(" ** Laboratorio Dos Sistema De Ecuaciones Lineales Metodo de factorizacin LU** ") disp("Codigos: 214951 214908 ") ww=getdate(); mprintf( "AA:%d ,MM:%d ,DD:%d siendo las HH:%d ,MM:%d ,SS:%d ",ww(1),ww(2),ww(6),ww(7),ww(8),ww(9)); A =[10^-11 1.743 1.085 ; 2.863 2.765 1.05 ; 4.168 1.37 1.395 ] B = [55.3 ; 95.7 ; 115.8] [N, N] = size(A); X= zeros(N, 1); D= zeros(N, 1); C = zeros(N, 1); CP= zeros (1 , N) L = zeros (N , N ) U=A; B1=B; AP =[U , B1] for p = 1:N-1 [Y, j] = max(abs(AP(p:N, p))); C = B1(p, :);

CP = U(p, :); B1(p, :) = B1(j+p-1, :); U(p, :) = U(j+p-1, :); B1(j+p-1, :) = C; U(j+p-1, :) = CP; if A(p, p) == 0 'A was singular. No unique solution' break end for k = p+1:N m = U(k, p) / U(p, p); L(k, p)=m U(k, p:N) = U(k, p:N) - m * U(p, p:N); end end

for i=1 : N L(i,i)=1; end D(1) = B1(1); for k = 2:N D(k) = B1(k) - L(k, 1:k-1) * D(1:k-1); end X = SUSATRAS (U, D) 1.3 Solucin del sistema, se cargan las funciones SUSTITUCIN HACIA ATRS.sce y la funcin LU.sce, en el orden mencionado.

2.

Mtodo de la inversa 2.1 Utilizando funcin de Scilab \ divisin a la izquierda la cual antes de elaborar el producto matricial halla la inversa de la matriz, de esa manera se encuentra la solucin del sistema debido a que X=A-1*B, la funcin \ halla una inversa por medio de mnimos cuadrados en el caso de que A sea una matriz singular, el programa se guarda con el nombre FUNCION SCILAB.sce, que recibe el sistema de ecuaciones y halla la solucin sin llamar otra funcin. clc; disp(" ** Laboratorio Dos Sistema De Ecuaciones Lineales Metodo de la inversa** ") disp("Codigos: 214951 214908 ") ww=getdate(); mprintf( "AA:%d ,MM:%d ,DD:%d siendo las HH:%d ,MM:%d ,SS:%d ",ww(1),ww(2),ww(6),ww(7),ww(8),ww(9)); A =[10^-11 1.743 1.085 ; 2.863 2.765 1.05 ; 4.168 1.37 1.395 ] B = [55.3 ; 95.7 ; 115.8] X=A\B

2.2 Solucin del sistema de ecuaciones lineales corriendo el programa FUNCION SCILAB.sce.

3. Mtodo de Gauss 3.1 Definiendo funcin de sustitucin hacia atrs donde se solucionara el sistema con una matriz triangular superior , se guarda con el nombre del archivo sustitucin. atrs.sce clear clc function X=backsub(A, B) n=length(B); X=zeros(n,1); X(n)=B(n)/A(n,n) for k=n-1:-1:1 X(k)=(B(k)-A(k,k+1:n)*X(k+1:n))/A(k,k); end X; Endfunction 3.2 Funcin que convierte la matriz A en una matriz equivalente triangular superior por medio de la reduccin de operaciones elementales entre filas (Gauss) y llama a la funcin backsub que soluciona el sistema de ecuaciones, esta funcin se guarda con el nombre de trian.supe.sce . function X=uptri(A, B) [N, N]=size(A); X=zeros(N, 1); C=zeros(1, N+1);

AU=[A, B] for p=1:N-1 [Y, j] = max(abs(AU(p:N, p))); C=AU(p, :); AU(p, :)=AU(j+p-1, :); AU(j+p-1, :)=C; if AU(p, p)==0 disp('la matriz A es una matriz singular'); break; end for k=p+1:N m=AU(k, p)/AU(p, p); AU(k, p:N+1)=AU(k, p:N+1)-m*AU(p, p:N+1); end end X=backsub(AU(1:N,1:N), AU(1:N,N+1)); Endfunction 3.3 Se define el sistema de ecuaciones lineales y se llama la funcin uptri, este programa se guarda con el nombre de gauss.sce. clc; disp(" ** Laboratorio Dos Sistema De Ecuaciones Lineales Metodo de Gauss ** ") disp("Codigos: 214951 214908 ") ww=getdate(); mprintf( "AA:%d ,MM:%d ,DD:%d siendo las HH:%d ,MM:%d ,SS:%d ",ww(1),ww(2),ww(6),ww(7),ww(8),ww(9)); A=[10^-11, 1.743, 1.085; 2.863, 2.765, 1.05; 4.168, 1.37, 1.395]; B=[55.3; 95.7; 115.8]; X=uptri(A,B) 3.4 Solucin del sistema, se cargan las funciones SUSTITUCIN HACIA ATRS.sce, trian.supe.sce y el programa gauss.sce, en el orden mencionado.

4. Gauss Jordan 4.1 Funcin encargada de reducir la matriz A ampliada (A|B) en una matriz equivalente donde A se transforma en la matriz idntica y B la solucin de sistema, esta funcin se guarda con el nombre de func.gauss.jordan.sce clear clc function X=gaussjor(A, B) [N, N]=size(A); X=zeros(N, 1); C=zeros(1, N+1); AU=[A, B] for p=1:N-1 [Y, j] = max(abs(AU(p:N, p))); C=AU(p, :); AU(p, :)=AU(j+p-1, :); AU(j+p-1, :)=C; if AU(p, p)==0 disp('la matriz A es una matriz singular'); break; end for k=p+1:N m=AU(k, p)/AU(p, p); AU(k, p:N+1)=AU(k, p:N+1)-m*AU(p, p:N+1); end for k=p-1:-1:1 m=AU(k, p)/AU(p, p); AU(k, p:N+1)=AU(k, p:N+1)-m*AU(p, p:N+1);

end if p==N-1 for k=p:-1:1 m=AU(k, p+1)/AU(p+1, p+1); AU(k, p+1:N+1)=AU(k, p+1:N+1)-m*AU(p+1, p+1:N+1); end end end for k=1:N X(k)=AU(k,N+1)/AU(k,k); end X; Endfunction

4.2 Se define el sistema de ecuaciones lineales y se llama la funcin gaussjor, este programa se guarda con el nombre de gauss.jordan.ece clc; disp(" ** Laboratorio Dos Sistema De Ecuaciones Lineales Metodo de Gauss Jordan ** ") disp("Codigos: 214951 214908 ") ww=getdate(); mprintf( "AA:%d ,MM:%d ,DD:%d siendo las HH:%d ,MM:%d ,SS:%d ",ww(1),ww(2),ww(6),ww(7),ww(8),ww(9)); A=[10^-11, 1.743, 1.085; 2.863, 2.765, 1.05; 4.168, 1.37, 1.395]; B=[55.3; 95.7; 115.8]; X=gaussjor(A, B)

4.3 Solucin del sistema, se cargan las funciones SUSTITUCIN HACIA ATRS.sce, trian.supe.sce y el programa gauss.sce, en el orden mencionado.

You might also like