Vous êtes sur la page 1sur 8

Metodos numericos

1.

M
etodos para resolver sistemas lineales

Los sistemas lineales de ecuaciones, de forma natural, aparecen en muchos campos de la ingeniera; por ejemplo, analsis de estructuras, circuitos
electricos, problemas de flujo, etc. As, gracias al avance de la tecnologa, las
computadoras han hecho posible que muchos de los sistemas, considerados
grandes, se puedan resolver de manera rapida y precisa. Esto no solo a permitido a los ingenieros estudiar y analizar problemas mas complejos sino que
el modelamiento de los mismos es cada da mas cercano a la realidad.
En la practica, cuando se analiza un problema se busca transformalo o
expresarlo como un sistema de ecuaciones lineales y, a continuacion, buscar
su solucion a traves de metodos numericos. Por tal motivo, los sistemas de
ecuaciones lineales es la herramienta mas utilizada en la ingeniera moderna.
Un ejemplo de sistemas lineales es el que se muestra a continuacion:
x1 2x2 + 3x3 = 4
2x1 5x2 12x3 = 15
2x2 10x3 = 10

(1)

Como se puede observar, el sistema mostrado se puede resolver a mano; por


ejemplo, por el metodo de Gauss -Jordan. Sin embardo, si se tratase de un
problema mucho mas grande1 (100 ecuaciones con 100 variables) resolver a
mano, tomara mucho tiempo y, casi seguramente, dificultades de caculo.
La clave para resolver sistemas lineales grandes, es darse cuenta que
los mismos son equivalentes a matrices, que continen n
umeros, no variables.
As, el sistema (??) es equivalene a la ecuacion matricial

1 2 3
x1
4
2 5 12 x2 = 15 ,
(2)
0 2 10
x3
10
el cual es equivalente a la matriz ampliada

1 2 3 4
2 5 12 15 .

0 2 10 10

1.1.

(3)

Teora b
asica

A continuacion se expondra las consideraciones teoricas basicas que se


deben tener presentes, al momento de resolver sistemas lineales.
Teorema 1. Sea A una matriz de orden n n y b un vector de orden n 1,
entonces el sistema lineal Ax = b, puede tener: 0, 1 o infinitas soluciones.
1

No es raro que en problemas reales de ingeniera aparezcan problemas con cientos y


miles de variables.

p m

Metodos numericos

Observacion: En la mayora de problemas de ingeniera se desea tener


una u
nica solucion.
Los siguientes dos teoremas muestran los requisitos que debe cumplir
la matriz A para que el sistema Ax = b, tenga una y solo una solucion.
Teorema 2. Sea A una matriz de orden n n. Las siguientes proposiciones
son equivalentes:
1. La ecuacion Ax = b tiene exactamente una solucion, con b 6= 0.
2. det(A) 6= 0.
3. A tiene inversa.
4. La u
nica solucion de Ax = 0 es x = 0.
5. Las columnas de A son linealmente independientes.
6. Las filas de A son linealmente independientes.
Si A tiene estas propiedades, entonces se dice que es no singular; caso
contrario, se dice que A es singular.
Teorema 3. Sea A una matriz cuadrada. Las siguientes proposiciones son
equivalentes:
1. La ecuacion Ax = b tiene 0 o soluciones, las cuales dependen de b.
2. det(A) = 0.
3. A no tiene inversa.
4. La ecuacion Ax = 0 tiene como u
nica solucion a x = 0.
5. Las columnas de A son linealmente dependientes.
6. Las filas de A son linealmente dependientes.
1.1.1.

Ejercicio

Consideremos las siguentes

1 2
4 5
7 8

matrices

3
1 2 3
4 5 6
6
9
7 8 8

y los siguientes vectores.

0
3
6

1
3
6

Se pregunta:
2

p m

Metodos numericos

1. C
ual de las matrices propuestas es no singular?
2. C
ual de los sistemas: A1 x = b1, A1 x = b2, A2 x = b1 y A2 x = b2 tiene
solucion u
nica?

1.2.

El vector residual

Considerando que el residuo de una solucion de la ecuacion


f (x) = 0,
se define como
r = f (x).

(4)

Para un sistema lineal de ecuaciones, el residuo de una aproximacion a la


solucion x, se puede definir como
r = Ax b.

(5)

Tengase presente que r es un vector y, que su tama


no (norma) es una medida
que indica cuan cerca estamos de la solucion.

1.3.

N
umero de condicionamiento

Consideremos las siguientes matrices ampliadas:






1 1/2
1 1/2 3/2
y

1
1/2 1/3
1/2 1/3
{z
}
{z
|
|
A



3/2

5/6 .
}

Notese que las matrices A, considerando el sistema Ax = b, son las mismas,


y que los vectores




3/2
3/2
b1 =
y
b2 =
1
5/6
son ligeramente distintos.
Bajo las circunstancias se
naladas, esperaramos que las soluciones x1 y
x2 seran cercanas.
Resolviendo de manera exacta los sistemas Ax1 = b1 y Ax2 = b2 , se
obtiene que:
 
 
0
1
x1 =
y
x2 =
.
3
1
Como se puede observar, las soluciones no estan cernas, a
un mas ni se
aproximan.
La explicacion para esto se basa en que existen matrices que son muy
sensibles a peque
nos cambios, en sus datos de entrada. Esta sensibilidad,
especificamente, el grado de sensibilidad o medida esta dado por el n
umero
de condicionamiento de la matriz.
3

p m

Metodos numericos

Definici
on 1 (N
umero de condicionamiento). Sea A una matriz cuadrada,
= kAkkA1 k

(6)

recibe el nombre de n
umero de condici
on de una matriz A. Ademas,
(A) 1 y si (A) es un n
umero proximo a 1 se dice que A es una matriz
bien condicionada y si es mucho mayor a 1, se dice que la matriz esta mal
condicionada.
En otras palabras, el n
umero de condicionamiento, si es peque
no, indica
que peque
nos cambios o perturbaciones en los datos de entrada, produciran
peque
nos cambios en las salidas; caso contrario, si en n
umero de condicionamiento es grande, indicara que peque
nos cambios en los datos de entrada,
producen grandes cambios en las salidas.
Observacion: Cuando en ingeniera se obtienen matrices con un n
umero
de condicionamiento grande, esto generalmente indica que el dise
no esta mal
elaborados y por lo tanto el problema a resolver necesita ser redise
nado.

1.4.

M
etodo de Gauss

El metodo de Gauss es uno de los mas utilizados para resolver sistemas


lineales, sin embargo puede llegar a tener limitaciones cuando las matrices
estan mal condicionadas.

1.5.

Algoritmo para la simplificaci


on de Gauss con pivote parcial

Dado un sistema Ax = b, donde A es una matriz n n no singular, el


siguiente algoritmo determina el vector solucion x. El algoritmo trabaja con
la matriz ampliada [A|b], la cual se notara como Ab y cuyos elementos seran
notados como aij .
1.5.1.

C
odigos

function x=backsubst(U,b)
% Esta funci
on resuelve un sistema triangular superior, mediante una
% sustituci
on regresiva.
% Entrada. U:= matriz trinangular superior, b:= vector columna con iguales
% dimensiones.
% Salida. x:= vector soluci
on
[n,m]= size(U); x(n)=b(n)/U(n,n); for j=n-1:-1:1
x(j)=(b(j)-U(j,j+1:n)*x(j+1:n))/U(j,j)
end x=x;

p m

Metodos numericos

function B=rowswitch(A,i,j)
%Entrada. A:= matriz m x n , i ,j:=
ndices de las filas i y j.
%Salida. B:= la matriz A intercambiada la fila i por la fila j
[m,n]=size(A); if i<1|i>m|j<1|j>m
error(Indices no validos)
end
B=A; if i==j
return
end B(i,:)=A(j,:); B(j,:)=A(i,:);
function B=rowcomb(A,i,j,c)
%Entrada: A:= una matriz, i,j := indices de las filas, c:= un n
umero
%distinto de cero.
%Salida: B:= matriz. Es el resultado de a~
nadir a la fila j de A, c veces
%la fila i.
[m,n]=size(A);
if i<1|i>m |j<1|j>m
error(Indice invalido)
end
if i==j
error(Operacion invalida)
end
B=A; B(j,:)= c*A(i,:)+A(j,:);
function B=rowmult(A,i,c)
%Entrada. A:= matriz, i:= el
ndice una fila cualquiera, c:=un n
umero
%distinto de cero.
%Salida. B:= matriz. Es el resultado de multiplicar por c la fila i
[m,n]=size(A);
if i<1|i>m
error(Indice invalido)
end
B=A; B(i,:)=c*A(i,:);
function x=gausselim(A,b)
%Entrada. A:= matriz cuadrada, no singular, b:= vector de las mismas
%dimensiones de la matriz A.
%Salida. x:= Vector soluci
on. Obtenido al resolver el sistema Ax=b por
%eliminaci
on gaussiana con pivote parcial. Siempre y cuando la matriz A sea
5

p m

Metodos numericos

%no singular.
[n,n]=size(A);
Ab=[A;b];
for k=1:n
[mayor, ocurre]=max(abs(Ab(k:n,k)));
if mayor ==0
error(La matriz de coeficientes es singular)
end
m=k+ocurre-1;
Ab=rowswitch(Ab,k,m);
for j=k+1:n
Ab=rowcomb(Ab,k,j,-Ab(j,k)/Ab(k,k));
end
end

x=backsubst(Ab(:,1:n),Ab(:,n+1));

1.6.

Factorizaci
on LU

Dada una matriz A Rnn no singular, entonces existen una matriz


L Rnn triangular inferior con 1s en la diagonal, una matriz U Rnn
triangular superior y una matriz de permutacion P Rnn tales que
P A = LU .
Cuando una matriz A admite esta representacion, se dice que es factorable
de la forma LU .
Un algoritmo para calcular dicha factorizacion, de la matriz A, es el siguiente:
1.6.1.

Algoritmo

%Factorizaci
on LU con pivote
% PA = LU
A=[0 10 6 3 4; 3 0 7 5 6;4 9 0 2 1; 1 2 3 0 5; 3 4 5 6 7]
%A=[-4 10 6 3 4; 3 -3 7 5 6;4 9 -30 2 1; 1 2 3 0 5; 3 4 5 6 7]
%A=magic(10)
B=A;
[m,n]=size(A);
L=eye(n);
P=eye(n);

p m

Metodos numericos

for j=1:n
for i=j+1:m
if A(j,j)~=0
L(i,j)=A(i,j)/A(j,j);
A(i,:)=A(i,:)-L(i,j)*A(j,:);
else
k=j-1;
[mx c]=max(A(j:m,j)); % Busco el maximo entre la columna
A([c+k,j],:)=A([j,c+k],:); % Intercambio filas
P([c+k,j],:)=P([j,c+k],:); % Construyo la matriz de pivotes
L(i,j)=A(i,j)/A(j,j);
% Matriz triangular inferior
% de coeficientes
A(i,:)=A(i,:)-L(i,j)*A(j,:); % Hago ceros a los elementos
% de la columna (Gauss)
end
end
end
U=A;
P*B
L*U

1.7.

Ejercicios
Considere el siguiente sistema lineal de ecuaciones,

x1 + 21 x2 + 13 x3 = 2
1
x1 + 13 x2 + 41 x3 = 0
12
x + 14 x2 + 51 x3 = 1
3 1
1. Resolver el sistema utilizando el metodo de Gauss.
2. Resolver el sistema de manera exacta, es decir, analticamente
(comparar respuestas).
Escrbase una funcion de Matlab [L,U,P]=fac_LUP(A) que calcule la
factorizacion LU de una matriz A utilizando el algoritmo propuesto. La
matriz L debe ser una matriz triangular inferior n n, U una triangular
superior nn y P una matriz de permutacion de las mismas dimensiones
que A, tales que se cumpla L*U=P*A.
Compruebe dicha funcion aplicandola a una matriz aleatoria 55.

p m

Metodos numericos

Dado el sistema lineal de ecuaciones Ax = b, donde la matriz de coeficientes A Rnn es una matriz no singular, un metodo para resolver
dicho sistema consiste en calcular la factorizacion LU de la matriz A.
Si para resolver el sistema utilizamos el algoritmo del apartado anterior
entonces, podemos obtener la solucion x resolviendo los dos sistemas
triangulares siguientes:
Ly = P b
Ux = y

Escrbase una funcion de Matlab =sollu(A,b) que calcule la solucion


del sistema de ecuaciones Ax = b mediante el procedimiento descrito.
Sugerencia: Utilcense las funciones creadas en los apartados anteriores y la de los ejemplos.
Compruebese la funcion sollu resolviendo un sistema de ecuaciones con una matriz aleatoria 6 6 y un vector columna de R6
tambien aleatorio.
Sea A Rnn una matriz no singular, la matriz inversa puede calcularse resolviendo el sistema matricial AX = In , donde X Rnn
e In es la matriz identidad n n. Escrbase una funcion de Matlab
X=inversa(A) que calcule la matriz inversa de A.
Sugerencia: Utilcese la funcion creada en el apartado anterior: sollu.
La matriz de Hilbert es un clasico ejemplo de una matriz mal condicionada, esta se define de la siguiente manera:

1
1
1 12

3
n

1
1
1

2
3
4
n+1

Hn =

..
..
..
..
...
.
.
.
.

1
1
1
1
2n1
n
n+1
n+2
Esta matriz puede ser facilmente generada en Matlab, utilizando el
comando hilb(n), donde n es el orden de la matriz. En el presente
ejercicio se pide:
1. Resolver el sistema Hx = b, donde b es el vector Hx y x =
(1, 1, , 1)0 con n = 12. Este sistema se debe resolver por 3
metodos distintos. Uno de los metodos debe utilizar el programa
x = gausselimi(A,b).
2. Compare el error producido por los tres metodos.
3. Interprete los resultados.

p m

Vous aimerez peut-être aussi