Sunteți pe pagina 1din 14

UNIVERSIDAD NACIONAL DE SAN AGUSTÍN METODOS NUMERICOS

1. OBJETIVOS

El objetivo principal de este trabajo es elaborar un programa que


solucione el problema del método de gauss.

Este problema se solucionará utilizando el método del pivoteamiento


parcial visto en la teoría.

A través de ejemplos prácticos en matlab se verá la diferencia del


método de gauss con y sin el método del pivoteamiento parcial

2. FUNDAMENTO TEORICO

2.1. Método de gauss con pivoteamiento parcial:

Con el fin de reducir el error en los procesos concernientes a la


eliminación gaussiana, se ha procurado el estudio hacia los
elementos pivotes.

El pivoteo parcial es una de las técnicas de pivoteo. Dicta que el


elemento pivote que debe escogerse es el mayor absolutamente de
cada columna.

Así inicialmente, se organiza la matriz para que el elemento


absolutamente mayor de la primera columna sea el primer pivote,
luego se realiza la eliminación y a la hora de pasar al segundo
elemento debe considerarse el mayor absolutamente para ubicarlo
como pivote y nuevamente hacer la eliminación, el proceso sigue
hasta que ya no hayan elementos bajo el pivote o hasta que se
hayan recorrido todas las columnas de la matriz. Este método aun
teniendo errores de redondeo o de propagación son menores que los
que se presentan en el método de eliminación gaussiana y esto se
puedo ver mediante la siguiente propiedad:

|Mik|<=1, para todo i,tal que k+1<=i<=n

INGENIERÍA ELÉCTRICA UNSA


UNIVERSIDAD NACIONAL DE SAN AGUSTÍN METODOS NUMERICOS

2.2. Pseudocódigo:

Datos de Entrada

En este programa se tienen como datos de entrada una matriz inicial


se define como una función como también se define otra llamada
vector que es el vector de términos independientes.

Datos de Salida

Lo que arroja el programa es la solución del sistema cuyos valores


hacen que al reemplazarlos en la matriz por cada una de las
incógnitas sean la solución del sistema.

3. PARTE EXPERIMENTAL
3.1. Programa en matlab sin utilizar el método del pivoteamiento
parcial:

function x=gauss(A,b)
n=length(A);
for k=1:1:n-1
for i=k+1:1:n
m=A(i,k)/A(k,k);
A(i,k)=0;
for j=k+1:1:n
A(i,j)=A(i,j)-m*A(k,j);
end
b(i)=b(i)-m*b(k);
end
end
x=zeros(n,1);
x(n)=b(n)/A(n,n);
for k=n-1:-1:1
s=0;
for j=k+1:1:n
s=s+A(k,j)*x(j);
end

INGENIERÍA ELÉCTRICA UNSA


UNIVERSIDAD NACIONAL DE SAN AGUSTÍN METODOS NUMERICOS

x(k)=(b(k)-s)/A(k,k);
end

3.1.1. Ventana de comandos:

Nota:
Note que en vez de obtener 9, se obtuvo 8.516… Este fenómeno
se debe a que el pivote A1;1 = 11, cuando comparado con A2;1 =
10^16 , es muy pequeño. Observe que en estas condiciones, el
multiplicador

INGENIERÍA ELÉCTRICA UNSA


UNIVERSIDAD NACIONAL DE SAN AGUSTÍN METODOS NUMERICOS

es muy grande, lo que ocasionará imprecisiones cuando se


calcule:

pues 0.5 es muy pequeño en comparación a 10^16/ 11 (2). Lo que


sucederá en esto último es algo análogo a lo que ocurrió cuando
sumamos en el computador 0:0000000000000001+1.

3.2. Programa en matlab utilizando el pivoteamiento parcial:


function x=gaussppl(A,b)
n=length(A);
for k=1:1:n-1
mayor=A(k,k);
aux1=A(k,: );
aux2=b(k,: );
f=k;
for i=k+1:1:n
if abs(A(i,k))>abs(mayor)
mayor=A(i,k);
f=i;
end
end
if f>k
A(k,: )=A(f,: );
A(f,: )=aux1;
b(k,: )=b(f ,: );
b(f,: )=aux2;

else
A(k,: )=A(f,: );
b(k,: )=b(f,: );
end

for i=k+1:1:n
m=A(i,k)/A(k,k);
A(i,k)=0;
for j=k+1:1:n
A(i,j)=A(i,j)-m*A(k,j);

INGENIERÍA ELÉCTRICA UNSA


UNIVERSIDAD NACIONAL DE SAN AGUSTÍN METODOS NUMERICOS

end
b(i)=b(i)-m*b(k);
end
end

x=zeros(n,1);
x(n)=b(n)/A(n,n);
for k=n-1:-1:1
s=0;
for j=k+1:1:n
s=s+A(k,j)*x(j);
end
x(k)=(b(k)-s)/A(k,k);

end

3.3. Ejecución del programa con el sistema visto en la guía.

3.3.1. Ejecución del programa 3.1


a. Ventana de comandos

INGENIERÍA ELÉCTRICA UNSA


UNIVERSIDAD NACIONAL DE SAN AGUSTÍN METODOS NUMERICOS

Nota:
Así, al escoger el mayor elemento en módulo entre
los candidatos a pivote, se consigue que los
multiplicadores m, en módulo, estén entre cero y
uno, lo que evita la propagación de errores de
redondeo.

3.4. Numero de operaciones que realizara y el orden:

3.5. ¿Conviene utilizarlo en la solución práctica de sistemas de


ecuaciones lineales?

Ventajas:
- No altera ni aumenta la cantidad de operaciones que se realizan
para la eliminación.
- Se reduce la propagación de error al haber menor unidad de
cambio entre los números.
- Se reduce los errores por redondeo.

Desventajas:
- A pesar de ser mejor que la eliminación Gaussiana simple, hay
otro método que ofrece mejores resultados y mayor disminución
de propagación de error y redondeo.

INGENIERÍA ELÉCTRICA UNSA


UNIVERSIDAD NACIONAL DE SAN AGUSTÍN METODOS NUMERICOS

4. CONCLUSIONES
 Resolución de sistemas de ecuaciones lineales con solución
única
 (det A ≠0).
 Resolución de sistemas de ecuaciones lineales sin saber si det
A ≠0.
 Discusión general de sistemas de ecuaciones lineales.
 Resolución simultánea de sistemas de ecuaciones lineales.
 Cálculo eficiente de determinantes.
 Cálculo eficiente de inversas.

5. BIBLIOGRAFIA
 Chapra, Steven C; Raymond Canale P (2007) “Métodos
numéricos para ingenieros”, Quinta edición, McGraw Hill,
México D.F, pp 124-139, 142-167.
 Mathews, John H; Fink, Kurtis D (2000) “Métodos numéricos
con MATLAB”, Tercera edicion, Prentice Hall, Santafé de
Bogotá, pp 661-673.
 Correa Z, Francisco J (2010) “Métodos numéricos”, Primera
edicion, Fondo editorial Universidad EAFIT, Medellín, Cap 4 y
5.

INGENIERÍA ELÉCTRICA UNSA


UNIVERSIDAD NACIONAL DE SAN AGUSTÍN METODOS NUMERICOS

1.- objetivos
El objetivo principal de este ejercicio es realizar un programa que realice la
descomposición en sus factores L y U.
De forma práctica se experimentara con diferentes ejemplos.
Se usara los factores L y U para determinar el determinante.

2.- fundamento teórico


La descomposición LU de una matriz A de nxn consiste en expresar A como el
producto de dos matrices L y U. Es decir, A = LU, donde U es una matriz
triangular superior de nxn, aquella matriz triangular superior generada por el

método de Gauss

mientras que L es una matriz triangular inferior de nxn con “unos” sobre su
diagonal y los multiplicadores mi;k debajo:

3.-parte experimental
3.1.- programa en matlab/octave que, dada una matriz A calcla sus
factores L y U.

INGENIERÍA ELÉCTRICA UNSA


UNIVERSIDAD NACIONAL DE SAN AGUSTÍN METODOS NUMERICOS

function [L,A]=csts(A)
n=length(A);
for k=1:1:n-1
for i=k+1:1:n
m=A(i,k)/A(k,k);
A(i,k)=0;
L(1,1)=1;
L(i,k)=m;
for j=k+1:1:n
A(i,j)=A(i,j)-m*A(k,j);
if i==j
L(i,j)=1;
else
L(i,j)=0;
endif
endfor
endfor
endfor
endfunction

3.2.- experimentando con diversos ejemplos

INGENIERÍA ELÉCTRICA UNSA


UNIVERSIDAD NACIONAL DE SAN AGUSTÍN METODOS NUMERICOS

Comentario
Como podemos observar nuestra matriz es U es la matriz A debido que para
crear otra matriz complica la tarea de programación.
También una forma de comprobar de que A=LU. Es realizando la respectiva
multiplicación de las matrices L y U lo cual nos debe dar como resultado la
matriz A.

Ahora experimentamos con una matriz de componentes aleatorios de 5x5.

INGENIERÍA ELÉCTRICA UNSA


UNIVERSIDAD NACIONAL DE SAN AGUSTÍN METODOS NUMERICOS

Comentario.
El computador demora una fracción de segundo, prácticamente es instantáneo.

3.3.- El cálculo del determinante usando la definición es un proceso


extremadamente ineficiente (como ya vimos anteriormente). Sin embargo, una
propiedad de matrices indica que, si A; B; C son matrices cuadradas de n x n y

si A = BC, entonces:
¿Cómo aplicaría usted esta propiedad para calcular de una manera más
eficiente el determinante de A?

En álgebra lineal, una matriz triangular es un tipo especial de matriz


cuadrada cuyos elementos por encima o por debajo de su diagonal
principal son cero. Debido a que los sistemas de ecuaciones lineales con
matrices triangulares son mucho más fáciles de resolver, las matrices
triangulares son utilizadas en análisis numérico para resolver sistemas de

INGENIERÍA ELÉCTRICA UNSA


UNIVERSIDAD NACIONAL DE SAN AGUSTÍN METODOS NUMERICOS

ecuaciones lineales, calcular inversas y determinantes de matrices. El método


de descomposición LU permite descomponer cualquier matriz
invertible como producto de una matriz triangular inferior L y una superior U.

Propiedades de las matrices triangulares:

 Una matriz triangular superior e inferior siempre diagonaliza en una base de


vectores propios(matriz diagonal).
 El producto de dos matrices triangulares superiores (inferiores) es una
matriz triangular superior (inferior).
 La transpuesta de una matriz triangular superior es una matriz triangular
inferior y viceversa.
 El determinante de una matriz triangular es el producto de los elementos de
la diagonal.
 Una matriz triangular es invertible si y solo si todos los elementos de la
diagonal son no nulos. En este caso, la inversa de una matriz triangular
superior (inferior) es otra matriz triangular superior (inferior).
 Los valores propios de una matriz triangular son los elementos de la
diagonal principal.

La propiedad que nos será ultil, será la que resaltamos con rojo. La cual indica
que para hallar la determinante en una matriz rectangular es suficiente con
multiplicar los elementos de la diagonal principal.

Al realizar un programa para comprobar la utilidad de esta propiedad ya


mesionada

function d=deter(A)

n=length(A);

d=1;

for i=1:1:n

d=d*A(i,i);

endfor

endfunction

INGENIERÍA ELÉCTRICA UNSA


UNIVERSIDAD NACIONAL DE SAN AGUSTÍN METODOS NUMERICOS

realizamos unos cuantos ejemplos para probar que le cuesta menos procesos
al computador. Con ayuda de un cronometro realizamos dicho procedimiento.

Observación. Se puede observar que para una matriz de 3x3 no existe menor
inconveniente con respecto al tiempo, ya que el computador se demora muy
poco.

Ahora probaremos con una matriz de 5x5:

INGENIERÍA ELÉCTRICA UNSA


UNIVERSIDAD NACIONAL DE SAN AGUSTÍN METODOS NUMERICOS

Comentario: para una matriz de 5x5 tampoco de tuvieron mayores


inconvenientes con respecto al tiempo que se toma el computador.

Ahora realizaremos la prueba con una matriz de 10x10:

Para este experimento nuestro computador se demoro un aproximado de 6


minutos, el tiempo dependerá del procesador que tengo nuestro equipo; sin
embargo 6 minutos es demasiado tiempo.
Ahora probemos con la descomposición ALU

Pudimos comprobar que la respuesta fue casi instantánea.

4.- conclusiones.
. usar la descomposición ALU es útil cuando queremos hallar sistema de
ecuaciones mediante la determinante
Comprobamos que definitivamente el método de cramer es poco útil para
calcular determinante (toma mucho tiempo).
5.- bibliografia
 Chapra, Steven C; Raymond Canale P (2007) “Métodos
numéricos para ingenieros”, Quinta edición, McGraw Hill, México
D.F, pp 124-139, 142-167.
 Mathews, John H; Fink, Kurtis D (2000) “Métodos numéricos con
MATLAB”, Tercera edicion, Prentice Hall, Santafé de Bogotá, pp
661-673.
 Correa Z, Francisco J (2010) “Métodos numéricos”, Primera
edicion, Fondo editorial Universidad EAFIT, Medellín, Cap 4

INGENIERÍA ELÉCTRICA UNSA

S-ar putea să vă placă și