Prac4 14c

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 2

Métodos Numéricos para el Álgebra Lineal: Práctica 4

1. Dada una matriz A ∈ Rn×n , el algoritmo de eliminación de Gauss (sin pivoteo) se


puede implementar en Matlab de la siguiente manera:

Input: A matriz n × n, b vector n × 1.


for k=1:n−1
for i=k+1:n
m=A(i,k)/A(k,k)
for j=k+1:n
A(i,j)=A(i,j)−m*A(k,j)
end
b(i)=b(i)−m*b(k)
end
end

Esta forma de implementar el algoritmo es completamente escalar, tal y como la


harías directamente con lo visto en clase. Implementa este algoritmo en una función
de Matlab, llamada SEG (Solución por Eliminación Gausiana) con entradas A y b y
que tenga como salida x, la solución del sistema Ax = b (tu código debe llamar a la
función que has hecho en la práctica 1 para resolver sistemas triangulares superiores).

(a) Identifica y explica lo que hace cada línea del código.


(b) Cuenta sobre el código el número de operaciones necesarias para resolver un sis-
tema lineal de dimensión n. Comprueba que el número de operaciones coincide
con el que nos debe de dar teóricamente.
(c) ¿Cuántas operaciones hay que hacer para transformar el término fuente?
(d) Utiliza tu código para calcular la solución del sistema Ax = b, siendo
   
2 3 −1 4
A =  4 5 −3 , b = 6 (1)
−2 3 −1 0

2. La inversa de una matriz A puede calcularse resolviendo los n sistemas lineales

Ax = ei

Las soluciones de estos sistemas son las columnas de la matriz A−1 . Justifica estas
afirmaciones.
Calcula la inversa de la matriz
 
2 3 −1
A =  4 5 −3 (2)
−2 3 −1

utilizando la función SEG para calcular la solución de cada sistema. Comprueba tu


resultado en Matlab.

1
3. Se puede modificar el algoritmo de eliminación gaussiana del problema 1 para calcular
la descomposición A = LU , aprovechando la estructura conocida de la matriz L. El
algoritmo es el siguiente
Input: A matriz n × n.
for k=1:n−1
for i=k+1:n
A(i,k)=A(i,k)/A(k,k)
for j=k+1:n
A(i,j)=A(i,j)−A(i,k)*A(k,j)
end
end
end

(a) Indica y comenta las diferencias entre este código y la parte principal del SEG.m
de la práctica 3.
(b) ¿Dónde se guardan los elementos de U y de L?
(c) Investiga los comandos tril, triu, eye de Matlab para ver cómo se puede
implementar una función de matlab (que llamarás milu) con entradas A ∈
Rn×n , y con las matrices L y U como salidas.

4. Consideremos las matrices


   
4 1 1 1 1 0 0 1
1 3 0 0 0 2 0 1
A= 1
, B= 
0 2 0 0 0 3 1
1 0 0 1 1 1 1 4

(a) Comprueba que estas matrices son definidas positivas.


(b) Demuestra que, para estas matrices, es posible llevar a cabo la descomposición
LU sinse encontrar pivotes nulos.
(c) Utiliza el código milu para calcular las descomposiciones LU de estas matrices,
sin estrategia de pivoteo.
(d) Comprueba en Matlab que el producto LU recupera la matriz original.
(e) Utiliza las descomposiciones LU obtenidas (y tus programas susreg.m y susprog.m
para calcular la solución de los sistemas
T T
Ax = 7 4 3 2 Bx = 2 3 4 7 (3)

Comprueba que las soluciones calculadas son correctas.

También podría gustarte