Académique Documents
Professionnel Documents
Culture Documents
Anlisis Numrico
Solucin numrica de sistemas de ecuaciones lineales
Solucin de sistemas de ecuaciones lineales
Casos que se pueden presentar:
Solucin nica
Mltiples soluciones
Sin solucin
1 0 0 1
0 1 0 2 Compatible determinado (solucin nica)
0 0 1 3
1 0 1 4
0 1 1 5 Compatible indeterminado (Mltiples soluciones)
0 0 0 0
1 1 0 1
0 1 1 2
Inompatible (Sin solucin)
0 0 0 3
Mtodo de Gauss-Jordan
2x y z 1
x 2 y 3z 6
x y 2 z 3
Mtodo de Gauss-Jordan
2 1 1 1 2 1 1 1
1 2 3 6 1 2 3 6
1 1 2 3 r3 r2 0 3 5 9
Mtodo de Gauss-Jordan
2 1 1 1
0 5 7 11
0 0 4 / 3 4
Mtodo de Gauss-Jordan
2 1 1 1 4 / 3 Z=4 Z=3
0 5 7 11 5Y-7 3 11 Y= 11 21 / 5 2
0 0 4 / 3 4 2 X 2 3 1 X= 1 2 3 / 2 1
Mtodo de Gauss-Jordan
1 0 0 1
0 1 0 2 X 1
0 0 1 3 Y 2
Z 3
A=[2 1 -1 ; 1 -2 3 ; 1 1 -2]
A=
[ ] Indica inicio y fin del arreglo o matriz.
2 1 -1 Espacio o comas nos sirven para elementos por
1 -2 3 fila o rengln.
1 1 -2
; nos indican un cambio de fila.
Funciones en Matlab
Funciones en Matlab
1 -2 3
>> A(2,:)
ans =
1 -2 3
Funciones en Matlab
ans =
-1
3
-2
Funciones en Matlab
Extraer renglones 1 y 2
A(1:2, 2:3)
ans =
1 -1 Extraer columnas 2 y 3.
-2 3
Funciones en Matlab
Reasignar el valor de la celda 2,1 a un valor
de 10
A(2,1)=10
A=
2 1 -1
10 -2 3
1 1 -2
Funciones en Matlab
A= A=
2 1 -1 2 1 -1
1 -2 3 1 -2 3
1 1 -2 0 3 -5
Funciones en Matlab
function Mf = convertir_ceros(a,b,c,Ma)
Mf=Ma; %a => filas donde esta el pivote
FILApivote=Ma(a,:)/Ma(a,c); %b => fila cuyo elemento se quiere cambiar a cero
if (Ma(b,c)>0) %c => columna donde se harn las sustituciones
FILAcambio=Ma(b,:)-FILApivote;
else
FILAcambio=Ma(b,:)+FILApivote;
end
Mf(b,:)=FILAcambio;
end
Funciones en Matlab
A= A=
2 1 -1 2 1 -1
1 -2 3 1 1 -2
1 1 -2 1 -2 -3
Funciones en Matlab
function Mf = cambiar_fila(a,b,Ma )
V1=Ma(a,:); %a y b => filas a cambiar de posicin
V2=Ma(b,:); %Ma => Matriz que se quiere transformar
Mf=Ma; %Mf => Matriz transformada
Mf(a,:)=V2;
Mf(b,:)=V1;
end
function Mf = cambiar_columna(a,b,Ma )
%a y b => columnas a cambiar de posicin
%Ma => Matriz que se quiere transformar
%Mf => Matriz transformada
V1=Ma(1:end,a);
V2=Ma(1:end,b);
Mf=Ma;
Mf(1:end,a)=V2;
Mf(1:end,b)=V1;
end
Funciones en Matlab
A=
ans = 3
2 1 -1
1 -2 3
1 1 -2
Funciones en Matlab
function Mf =maximo_matriz(Ma )
Mf=zeros(1,3); Debe ser modificado para
n=size(Ma,1); pedir el mximo de una
vmax=0; fmax=0; cmax=0; submatriz
for i=1:n
for j=1:n A=
if (abs(Ma(i,j)) > abs(vmax))
2 1 -1
vmax=Ma(i,j); 1 -2 3
fmax=i; 1 1 -2
cmax=j;
end
end
end
Mf=[vmax fmax cmax];
end
A= A= A=
2 1 -1 -1 1 2 3 -2 1
1 -2 3 3 -2 1 -1 1 2
1 1 -2 -2 1 1 -2 1 1
Mtodo de Gauss-Jordan
Racional 2/3
Decimal a 5 digitos 0.66667
Redondeo 0.667
Truncamiento 0.666
a 1 i n,1 j n
a 1 i 3,1 j 3
ai1 ai 2
Una vez acomodada la matriz se deben eliminar los elementos que estn por
debajo de ella como en el Gauss Jordan tradicional.
a 2 i n, 2 j n
a 2 i 3, 2 j 3
Se eliminan del anlisis la fila y columna 1
Una vez acomodada la matriz se deben eliminar los elementos que estn por
debajo de ella como en el Gauss-Jordan tradicional.
Para nuestro caso ya se triangulo la matriz y se puede aplicar la sustitucin hacia atrs
seguir manipulando la matriz hasta obtener la matriz identidad del lado izquierdo.
A=L*U
Este mtodo nos permite reducir las iteraciones y errores ocasionados por el pivoteo
en el mtodo de Gauss-Jordan y Adicionalmente puede ser usado para otros
procesos como la obtencin de la inversa.
Mtodos de descomposicin LU
Existen dos estructuras o versiones que deben tener las matrices que desean
encontrarse.
L11 0 0 U11 0 0
L L21 L22 0 U U 21 U 22 0
L31 L32 L33 U 31 U 32 U 33
Mtodos de descomposicin LU
1 3 2
A 3 4 1
2 5 2
1 3 2
A LU 3 4 1
2 5 2
Mtodos de descomposicin LU
Se puede escribir a la matriz A en forma de A=LU con L=I (matriz identidad) y U=A
1 0 0 1 3 2
A LU 0 1 0 3 4 1
0 0 1 2 5 2
Mtodos de descomposicin LU
La matriz U no esta como se pide en la definicin Crout (debe ser una matriz
triangular superior) por lo cual se deben eliminar U21, U31 y U32.
1 0 0 1 3 2
A LU 0 1 0 3 4 1
0 0 1 2 5 2
Mtodos de descomposicin LU
Se usa como pivote para la primera eliminacin U11, pero al alterar U tambin L sufre
un cambio.
1 0 0 1 3 2
A LU 0 1 0 3 4 1
0 0 1 2 5 2
1 0 0 1 3 2 1 0 0 1 3 2 1 0 0 1 3 2
A LU 3 1 0 0 5 7 A LU 3 1 0 0 5 7 A LU 3 1 0 0 5 7
0 0 1 2 5 2 2 0 1 0 11 2 2 11/ 5 1 0 0 63 / 5
Mtodos de descomposicin LU
Finalmente convirtiendo la diagonal principal de U en unos tenemos.
1 0 0 1 3 2
A LU 3 1 0 0 5 7
2 11/ 5 1 0 0 63 / 5
1 0 0 1 3 2
A LU 3 1 0 0 5 7
2 11/ 5 1 0 0 63 / 5
Ax B
1 1 1 x1 6
Ax B 2 1 1 x 3
2
2 1 2 x3 6
x1 6 x2 x3 x ( i 1)
6 x2 x3
(i ) (i )
1
x2 3 2 x1 x3 x2 (i1) 3 2 x1(i ) x3(i )
x3 3 x1 0.5 x2
x3(i1) 3 x1(i ) 0.5 x2 (i )
xi1 c Bxi
x1(2) 6 0 0 6
x2 (2) 3 2 0 0 3
x3(2) 3 0 0.5 0 3
x1(3) 6 3 3 6
x2 (3) 3 2 6 3 12
x3(3) 3 6 0.5 3 10.5
xi1 xi
xi1 xi tolerancia
3 1 1
2 8 5
xi j i xij , j=1,2...n , i j
2 4 7
4 1 0 x1 2
Ax B 1 4 1 x 6
2
0 1 4 x3 2
Si desarrollramos el determinante:
Para simplificar podemos usar la siguiente ecuacin (teniendo como incgnitas a las bi).
n n 1
b1
n n 1
b2 n2
... bn1 bn 0
Que es equivalente a:
n 1 n2
A y b1 A
n
y b2 A y ... bn1 Ay bn y 0
0 1 1
A 1 2 1 A y b1 A y b2 A y b3 y 0
3 2
1 1 0
1
Donde y= 0
0
4 9 5 2 3 1
A 9 18 9
3
A 3 6 3
2
5 9 4 1 3 2
Desarrollando la ecuacin:
A I A3 y b1 A2 y b2 A y b3 y 0
2 3 1 1 2 3 1 1 0 1 1 1 1
A I 3 6 3 0 b1 3 6 3 0 b2 1 2 1 0 b3 0 0
1 3 2 0 1 3 2 0 1 1 0 0 0
4 2 0 1 0
A I 9 b1 3 b2 1 b3 0 0
5 1 1 0 0
Entonces nos quedara el siguiente sistema, que a partir de este momento puede
resolverse con los mtodos previos (Gauss_Jordan, Pivoteo, etc.):
2 b1 0 b2 1 b3 4
3 b1 1 b2 0 b3 9
1 b1 1 b2 0 b3 5
b1 2 b2 3 b3 0
Este mtodo nos sirve sirve para calcular los autovalores (eigenvalores) de mdulo
mximo o mnimo) de una matriz real. Slo es vlido (es decir converge) cuando dicho
autovalor es real y es nico.
A I X 0
AX X 0 AX X
La formula anterior puede ser utilizada para emplear un mtodo de aproximaciones
sucesivas al presentarse de la siguiente manera:
AX k k 1 X k 1
El proceso se repetir hasta que la diferencia entre dos aproximaciones cumpla con la
tolerancia preestablecida.
AX X A1 AX A1 X
Lo que resulta: X A1 X
1 1 1
Si dividimos entre : X A X A 1
X
1
1
A X k X k 1
k 1
2 2 1
A
1 3 1
1 2 2
1
El primer paso es definir un vector inicial diferente del vector nulo: Xo 0
0
2 2 1 1 2
AX 0 1 3 1 0 1
1 2 2 0 1
2 2 1
AX 0 1 (1) X 1 X 1 1 / 2 0.5
1 1 0.5
2 2 1 1 3.5
AX 1 1 3 1 0.5 3 (2 ) 3.5
1 2 2 0.5 3
Este proceso se puede seguir repitiendo hasta que la diferencia entre las lambdas sea
menor a la tolerancia:
1
Su vector Asociado: 1
1
1 1
A1 X k X k 1 Con: Xo 0
k 1
0
1 1 5
X 0.8 X 1
1 1 0.8 4
0.8 1
X 1 0.2 / 0.8 0.25 Se deja de tareas realizar las
dems iteraciones
0.2 0.25
0.333 1/ 3
Su vector Asociado: 0.333 1/ 3
0.333 1/ 3
3 7 2 11 5 0