Está en la página 1de 5

Universidad Técnica de Oruro Pablo Zamora MSc.

Facultad Nacional de Ingenierı́a Pre-requisitos Matlab 11/2021

Matlab un repaso

Esta práctica guiada pretende mostrar al estudiante una aplicación sencilla


del entorno matlab, Para esto, el estudiante deberá implementar métodos de
resolución para sistemas lineales de la forma: Ax “ b

Primera Parte
Método de eliminación de Gauss-Jordan

El método de eliminación de Gauss-Jordan es una técnica popular utilizada


en algebra lineal, para resolver sistemas de ecuaciones lineales. Este método
puede ser fácilmente implementado ya que consiste en aplicar operaciones
entre filas y columnas. En internet se ha encontrado una implementación del
algoritmo, se muestra el código,
1 clear ; clc ; close all
2 n = i n p u t ( ’ I n g r e s e l a dimension d e l sistema n = ’) ;
3 C = i n p u t ( ’ I n g r e s e Los e l e m e n t o s de la matriz A ’ ) ;
4 b = i n p u t ( ’ I n g r e s e l o s e l e m e n t o s de la matriz B ’ ) ;
5 d e t t = d et (C)
6 i f d e t t == 0
7 p r i n t ( ’ El s i s t e m a e s i r r e s o l u b l e d e t (A) = 0 ’ )
8 else
9 b = b’
10 A = [ C b ]
11

12 x = zeros (n , 1 ) ;
13 f o r i =1:n´1
14 f o r j=i +1:n
15 m = A( j , i ) /A( i , i )
16 A( j , : ) = A( j , : ) ´ m∗A( i , : )
17 end
18 end
19 x ( n ) = A( n , n+1)/A( n , n )
20 f o r i=n´1: ´1:1

27 de noviembre de 2021 Posgrado Matemática 1/5


Universidad Técnica de Oruro
Facultad Nacional de Ingenierı́a Matlab scripting Pre-requisitos Matlab

21 summ = 0
22 f o r j=i +1:n
23 summ = summ + A( i , j ) ∗x ( j , : )
24 x ( i , : ) = (A( i , n+1) ´ summ) /A( i , i )
25 end
26 end
27 end

A primera vista, el script funciona correctamente, pero existen muchos


errores de implementación que iremos descubriendo en el camino, la tarea del
estudiante será corregir el script e implementar una función:
elimininacionGJ() que utilice el algoritmo de Gauss-Jordan para computar la
solución de un sistema lineal propuesto. Para esto debe seguir los siguientes
pasos, los únicos argumentos que la función debe aceptar son los siguientes
elimininacionGJ(C,b), para Ax “ b donde:
C Ñ es la matriz A.
b Ñ es el vector columna b
.

Guı́a de trabajo
1. Para el primer paso el estudiante debe comentar el script y entender su
funcionamiento
2. Una vez comentado el script, encontramos un condicional principal(if-
else) que comprende todo el script, y corre el algoritmo si y sólo si la
matriz no es singular. Es importante para el estudiante, saber que el de-
terminante es bastante engañosos en especial si se trabaja con números
de coma flotante que pueden arrastrar errores dentro de las operaciones.
Para mostrar esto, implemente los siguentes ejemplos y saque una con-
clusión:
1 A = rand ( 3 , 4 ) ;
2 A = [A;A( 1 , : ) ] ;
3 d et (A)

27 de noviembre de 2021 Posgrado Matemática 2/5


Universidad Técnica de Oruro
Facultad Nacional de Ingenierı́a Matlab scripting Pre-requisitos Matlab

Ñ¿El determinante es o deberı́a ser cero, por qué?

El determinante es cercano a cero, pero si probamos esta forma de generar


una matriz singular, ¿Qué conclusión obtenemos?
1 A = randn ( 1 0 , 9 ) ∗ rand ( 9 , 1 0 ) ∗ 1 0 0 ;
2 d et (A)

Ñ¿El determinante es o deberı́a ser cero o por lo menos cercano a cero,


por qué?

Para verificar si una matriz es singular en matematica computacional,


debemos usar metricas como el rango o el numero de condicion de una
matriz, rank(A), cond(A),condest(A).
3. Pruebe las métricas rank(A), cond(A), para las matrices generadas ante-
riormente y para matrices no singulares cualquiera.
4. Cree un archivo .m en la carpeta de trabajo para implemetar la función
elimininacionGJ(C,b), con el mismo nombre de la función, en la misma
carpeta de trabajo!
5. Para una mejor implementación del algoritmo y la función consideramos
un if-else con las nuevas metricas, e implementamos la funcion con un
comando de error para generar una excepción y terminar la función.
1 f u n c t i o n x = prueba (A)
2

3 i f A==1
4 e r r o r ( ’ no f u n c i o n a ’ )
5 else
6 d i s p ( ok )
7 end
8

9 % Separamos e l c \ ’ o d i g o de l a c o n d i c i o n a l
10 % Aqui c o n t i n u a e l a l g o r i t m o s i todo e s t a ok
11 % Y l a m a t r i z e s no s i n g u l a r

27 de noviembre de 2021 Posgrado Matemática 3/5


Universidad Técnica de Oruro
Facultad Nacional de Ingenierı́a Matlab scripting Pre-requisitos Matlab

6. La función debe automatizar la obtención de los parámetros de la dimen-


sión de la matriz, para esto usamos la función size().
7. Una vez tengamos la función, comprobar por lo menos para dos matrices
de distinta dimensión la función elimininacionGJ(C,b).
8. Comprobar la función elimininacionGJ(C,b) contra los métodos que ofre-
ce matlab para resolver sistemas lineales x=mldivide(C,b) y x=Czb, de
la siguiente forma  “ |Ax ´ b| ¿Cuál  se acerca más a cero?
9. (Pregunta Bonus) Implemente el método de cramer para resolver sistemas
lineales, ¿Por qué es un mal método?
10. (Pregunta Bonus) implemente el método de Gauss-Seidel para aproximar
soluciones de sistemas lineales.

Segunda Parte

1. Crear un vector 5x1, que contenga cualquier valor.


2. Usando un solo comando de matlab evaluar el seno de 0, π{4, π{2, 3π4, π
3. Usando rand, mostrar que la multplicación de matrices no es conmutativa
4. Crear un arreglo que empiece en ´2 y termine en `2 con cincuenta ele-
mentos equidistantes.
5. Crear un vector con 100 elementos, que cubra de 0 a 2pi
6. Crear la siguiente matriz
¨ ˛
1 2 3 4 5
˚6 7 8 9 10‹
˚ ‹
A“˚
˚11 12 13 14 15‹‹
˝16 17 18 19 20‚
21 22 23 24 25
7. Crear la matriz, con la menor cantidad posible de comandos
¨ ˛
1 2 3 4 5 6 7
˚9 7 5 3 1 ´1 ´3 ‹
˚ ‹
B“˚ ˚ 4 8 16 32 64 128 256 ‹

˝0 0 0 0 0 0 0 ‚
1 1 1 1 1 1 1

27 de noviembre de 2021 Posgrado Matemática 4/5


Universidad Técnica de Oruro
Facultad Nacional de Ingenierı́a Matlab scripting Pre-requisitos Matlab

Luego de mostrar la matriz, elimine las dos ultimas filas.


8. Para la matriz A definida anteriormente, obtener la primera columna y
definirla como variable a1, para la matriz B definida anteriormente definir
como b1 a la primera fila. Que pasa si ehecutamos el comando: sum(a1)
y que pasa con sum(b1)?
9. Utilizando la matriz B, eliminar la primera fila, la primera columna la
ultima fila y la ultima columna.
10. Usando operaciones entre vectores obtener la siguiente matriz
¨ ˛
1 2 3 4 5
C “ ˝1 2 3 4 5‚
1 2 3 4 5

Enviar el código funcionando y sus conclusiones en forma de resumen hasta


el lunes 30/11 a hrs 19.00

27 de noviembre de 2021 Posgrado Matemática 5/5

También podría gustarte