You are on page 1of 3

Laboratorio No.

4
Laboratorio Métodos Numéricos
Descomposición de Matrizl, LU y Cholesky
Ilka Banfield
1. Objetivos

Entender sobre las fuentes de error en algorítmos numéricos. Aprender a usar Scilab
para programar, graficar y realizar exploraciones numéricas.

2. Uso de ésta guía


Esta guía de laboratorio contiene:

1. Parte de la teoría requerida para poder realizar y entender el experimento numérico


propuesto, recomendamos que lea bien ésta guía antes del principio de la sesión de
laboratorio.

2. Una serie de pasos o acciones que deben ejecutar en el laboratorio. Para que sea más
fácil de localizar estos pasos dentro del documento, éstos serán resaltados de la siguiente
manera:

Paso 0
Este es un ejemplo de cómo aparecerán los pasos a acciones a realizar. Fíjese que
está enumerado.

3. Además de las acciones a tomar se les harán preguntas o se les pedirá que realice
trabajo extra. Estas preguntas o trabajos extras son los que deben entregarse como su
informe de laboratorio. Para que sea fácil localizarlas y no se le olvide, las resaltaremos
de la siguiente manera:

Ejemplo: Modificar el programa xxx para que calcule otra cosa. Entregue el
programa en su informe. ¿Piensa usted que la nueva versión es más rápida? 4. En
algunas situaciones haremos comentarios importantes que indicaremos de la
siguiente manera:

División entre cero


Al calcular el error aproximado, se puede dar el caso que el nuevo o “mejor” valor sea
cero y por consiguiente el error aproximado sea infinito...
Los informes de laboratorio deben ser entregados antes del laboratorio siguiente. El
informe debe estar contenido en una archivo Word u OpenOffice con todas sus gráficas y
tablas incluida en el mismo documento.

Debe tratar de que su escritura sea coherente y todas las preguntas que se le hicieron en
la guía estén contempladas. Si se le pide que haga o modifique programas estos deben
ser entregados en archivos aparte, también cualquier archivo de datos utilizados.
Estos archivos serán entregados según instrución del profesor o profesor de laboratorio
utilizando la plataforma Moodle.
3. Procedimiento

Paso 1
Escriba la siguiente función en un archivo llamado slu.sci.
function [L, U]=slu(A, eps)

//slu Factorización de LU factorization para una matriz cuadrada "sin intercambio de filas"
//
// [L, U] = slu(A) utiliza la eliminación gaussiana para resolver un sistema de eucaciones
// Descomponen en una triangular inferior L y una triangular superior U de tal forma quet L*U = A.
// Este algoritmo se detetiene si el pivote es muy pequeño..
// eps es un valor de tolerancia para detener el programa por pivote pequeño.

[n, n] = size(A);

for k = 1:n
if abs(A(k, k)) < sqrt(eps)
error("Se encontró un pivote muy pequeño.")
end
L(k, k) = 1;
for i = k+1:n
L(i,k) = A(i, k) / A(k, k);
for j = k+1:n
A(i, j) = A(i, j) - L(i, k)*A(k, j);
end
end
for j = k:n
U(k, j) = A(k, j);
end
end

Paso 2

Prueba el programa con eps = 1d-5 y

1 4 7
𝐴= 2 5 8
3 6 12
Paso 3
Modifique la función agregando el comando halt para que vaya verificando la formación de
la matrices L y U.

Paso 4
Modifique la función para que una de las salidas sea la inversa de la matriz A.

Paso 5
Modifique el programa para que realice el cambio de pivotes entre filas y pruébelo con la
siguiente matriz:

Paso 6
Modifique el programa para que resuelva el siguiente sistema de ecuaciones:

You might also like