Sie sind auf Seite 1von 22

UNIVERSIDAD VERACRUZANA

FACULTAD DE CIENCIAS QUÍMICAS

INGENIERÍA EN BIOTECNOLOGÍA
ALGORITMOS Y PROGRAMACIÓN

DOCENTE: DOCTOR DANIEL RAMON LOPEZ LIEVANO

EQUIPO:1
LIZETH JHOANA BERNABE SANCHEZ
CRISTHIAN JAIR BELTRÁN RAMÍREZ
JESÚS YAIR LÓPEZ COLORADO

Métodos algebraicos y Manipulación de


matrices en MATLAB
Prologo

Este manual se enfoca en una seria de guías de MATLAB.

El objetivo de esta guía es servir en el apoyo para el manejo de MATLAB en la manipulación de


matrices y métodos algebraicos en las que se emplea el citado software en las limitaciones de
tiempo que no permiten una dedicación muy exhaustiva a su explicación. Hemos pretendido
mostrar una guía con los comandos básicos de MATLAB en forma clara concisa con ejemplos
que hemos considerados apropiados. Queremos, así mismo, que sea una guía fácil de
comprender. Gracias a la experiencia adquirida en el uso de MATLAB y gracias a las sugerencias
de compañeros y nuestro profesor a cuáles queremos demostrar un gran agradecimiento.

Coatzacoalcos, Ver. Abril 22 del 2017

pág. 2
Introducción al MATLAB

¿Para qué Sirve?

Estas son algunas de las utilidades básicas que da el programa y que son útiles para varios
ingenieros y científicos en todo el mundo, estas son:

 Análisis numérico
 Cálculo matricial
 Procesamiento de señales
 Gráficos

Bueno comencemos destacando que la filosofía del entorno de MATLAB no es la de otros


paquetes de matemáticas usuales, tales como Derive, Maple o Matemática.

Su filosofía se asemeja más a la de un lenguaje de programación que al de un paquete estándar


de matemáticas pues, aunque podemos ejecutar desde la línea de comandos mediante los
nombres de dichos operaciones como en los paquetes mencionados, lo habitual con MATLAB es
crear un fichero de texto externo que contenga la secuencia de comandos que se desea ejecutar
y llamar a este ‘’programa’’ desde MATLAB algunas de las ventajas e inconvenientes son:

1) Ventajas que el entorno MATLAB tiene frente a un lenguaje de programación:

(a) No hay que definir el tipo de variables que se van a utilizar, ni el tamaño de las mismas.

(b) No hay que compilar los programas, como ocurre en los entornos de programación.

(c) Se pueden utilizar extensísimas librerías de funciones ya definidos.

(d) Presentan un manejo practico de vectores.

pág. 3
2) Desventajas en el entorno de MATLAB:

Frente a un lenguaje de programación no presentan inconvenientes destacables. Además, las


sentencias y estructuras que se manejan son muy similares a las que se usan en el entorno de C.

(a) Al no estar pensado para el trabajo en línea de comandos no presentan ningún menú de acceso
rápido a procedimientos de uso frecuentes (como el que tiene Derive).

(b) No posee una librería de cálculo simbólico propio por lo que recurre a comandos de maple. No obstante, este
no es el fin último de este programa y hay otros en el mercado más optimizados para este tipo de cálculos.

No obstante aun así con sus desventajas MATLAB tiene Millones de ingenieros y científicos de todo el
planeta que utilizando MATLAB para analizar y diseñar los sistemas y productos que transforman
nuestro mundo. MATLAB está presente en sistemas de seguridad activa de automóviles, naves espaciales
interplanetarias, dispositivos de monitorización de la salud, redes eléctricas inteligentes y redes móviles
LTE. Se utiliza para aprendizaje automático, procesamiento de señales, procesamiento de imágenes,
visión artificial, comunicaciones, finanzas computacionales, diseño de control, robótica y muchos otros
campos, en pocas palabras MATLAB es una gran herramienta.

Bueno antes de comenzar, hagamos algunas consideraciones generales:

 MATLAB distingue entre mayúsculas y minúsculas.

 La comilla ' es la que, en un teclado estándar, se encuentra en la tecla de la interrogación.

 Los comentarios deben ir precedidos por % o, lo que es lo mismo, MATLAB ignora todo lo que
vaya precedido por el símbolo %.

 La ayuda de MATLAB es bastante útil; para acceder a la misma basta teclear help. Es
recomendable usarlo para obtener una información más precisa sobre la sintaxis y diversas
posibilidades de uso de los comandos

pág. 4
Solución numérica de sistemas de ecuaciones lineales mediante
Matlab
Los sistemas de ecuaciones lineales se utilizan para resolver muchos problemas de la
ciencia y la ingeniería. La solución numérica de dichos sistemas la forman una gran
variedad de algoritmos, como eliminación de Gauss, Gauss-Jordan, Gauss-Seidel,
Montante, Jacobi, Lu y Cholesky entre otros, que de una manera u otra resuelven el
sistema de ecuaciones lineales (si tiene solución).

𝑎11 + 𝑎12 𝑥2 + ⋯ + 𝑎1𝑛 𝑥𝑛 = 𝑏1


𝑎21 𝑥1 + 𝑎22 𝑥2 + ⋯ + 𝑎2𝑛 𝑥𝑛 = 𝑏2
𝑎𝑚1 𝑥1 + 𝑎𝑚2 𝑥2 + ⋯ + 𝑎𝑚𝑛 𝑥𝑛 = 𝑏𝑚
Este sistema de M ecuaciones algebraicas lineales con
N incógnitas puede escribirse en forma matricial como:

𝐴𝑀𝑥𝑁 𝑋 = 𝐵
Este sistema de M ecuaciones algebraicas lineales con
N incógnitas puede escribirse en forma matricial como:

pág. 5
Iniciando y finalizando una sección
de MATLAB
MATLAB se arranca pulsando con el cursor en el icono de MATLAB (Es el que está encerrado en
el círculo rojo), e inmediatamente aparece la pantalla de la figura como se muestra en la
siguiente imagen:

pág. 6
A continuación, le abrirá una ventana como esta:

Cualquier comando que se escriba en MATLAB será procesado cuando se presione ENTER. Por
ejemplo, El comando de salir de MATLAB que es quit.

Al poner este comando automáticamente el programa se cerrará así finalizando la sección.

pág. 7
Si se necesita detener la ejecución del programa o de un comando en MATLAB antes de su finalizado
normal es necesario presionar la tecla CTRL y la tecla C. Así MATLAB se detendrá por cualquier comando o
programa que estuviera ejecutándose en ese momento y devuelve el cursor a su estado original así
quedando para ejecutar el siguiente programa.

A continuacion se le mostrara las teclas (CTRL) Y (C)

Depues de precionar las teclas ante nombradas se reiniciara el cursor como se ve acontinuacion:

pág. 8
Introducción al programa MATLAB

Bueno cuando tengamos el programa abierto aparecera esta ventana llamada Command Window.

Esta ventana determina la linea comandos donde podemos escribir y ejecutar los comando en el
sistema (ademas de algunos mensajes).

Ya para porgramar se utiliza otra ventana que New Script.

Al dar New Script le abri una pequeña ventana dentro del programa como la mostrada en la
siguiente imagen.

pág. 9
Solución numérica de sistemas de
ecuaciones lineales mediante Matlab

COMANDOS Y FUNCIONES MATLAB PARA SOLUCIÓN NUMÉRICA


DE LOS SISTEMAS DE ECUACIONES LINEALES.
Función Descripción

syms x y z . . . t Convierte las variables x y z . . . t en


simbólicas.

solve(‘ec1,ec2, …ecn‟,‟x1,x2,…xn`) Resuelve n ecuaciones lineales


simultáneas ec1, ec2,… ecn. (Sistema de
las variables x1, x2,… xn)

X = linsolve(A,B) Resuelve un sistema de ecuaciones lineales


del tipo A*X=B para una matriz cuadrada
A, siendo B la matriz del término
independiente del sistema de ecuaciones.

X = A\B Resuelve el sistema triangular A*X=B.


Emplea eliminación de Gauss

X = inv(A)*B Resuelve el sistema A*X=B. Emplea la


matriz inversa.

X = rref([A, B]) Obtiene la matriz reducida escalonada por


renglones de A, utilizando el método de
Gauss-Jordan, en la cual, la diagonal
principal tiene 1 y los demás elementos 0.

pág. 10
Función Descripción

rrefmovie( [A, B] ) Muestra el procedimiento paso a paso de la


solución del sistema de ecuaciones lineales
haciendo, incluso, cambio de renglones
para facilitar los cálculos, mostrando el
resultado final.

[L , U] = lu(A) Descomposición (Factorización) LU.


Devuelve una matriz triangular superior U y
una matriz triangular inferior L. Se cumple
que A=L*U. Resuelve el sistema de
ecuaciones lineales mediante la operación:
X = U \ ( L\ B).

U = chol(A) Descomposición (Factorización) de Cholesky


de una matriz simétrica y definida positiva.
Devuelve la matriz triangular superior U de
A. Sólo se utiliza la diagonal y la parte
triangular superior de A. Si A no es definida
positiva devuelve un error. Se cumple que A
= U' * U. Resuelve el sistema de ecuaciones
lineales mediante la operación X = U \ ( U‟ \
B).

pág. 11
Función Descripción

A‟ Matriz transpuesta de A.

inv(A) Calcula, si existe, la matriz inversa de la matriz


cuadrada A (A-1 ).

det(A) Determinante de la matriz cuadrada A.

rank(A) Rango de la matriz A.

e = eig(A) Halla los valores característicos de la matriz


cuadrada A. Es decir, calcula directamente las
raíces que definen al polinomio característico
de la matriz A.

[ V, D] = eig(A,B) Halla la matriz diagonal D de valores


característicos generalizados de la matrices
cuadradas A y B y una matriz V, cuyas
columnas son los vectores característicos
correspondientes, cumpliéndose que
A*V=B*V*D.

P = poly(A) Calcula los coeficientes del polinomio


característico de la matriz cuadrada A.

pág. 12
Mediante la operación: X = A \ B. Es decir, usa el operador aritmético “ \ “ (División izquierda de
la matriz).

ACONTINUACION ESTARA UNA IMAGEN PARA QUE VEA UN EJEMPLO MAS DETALLADO:

En el editor escribimos la matriz


¨A¨ y la matriz ¨B¨, como se
muestra la imagen.

En la segunda fila escribimos la


ecuación x=A\B

Aquí podemos observar el


resultado adquirido tras la
operación dada en la
imagen anterior.

pág. 13
Primero definimos la matriz en el espacio del editor y detonamos con una letra aquí por ejemplo
yo lo llamé la matri A se debe poner entre corchetes aquí por ejemplo yo elegí los valores
mostrado en la imagen el punto y como es para indicar el salto de fila después se tiene que
calcular la inversa para poder calcular la inversa se escoge el nombre de la variable yo escogí la
se muestra en la imagen puede ser cualquier eso no afecta ya después le damos el botón de Run

No olviden los puntos y coma ya que sin


ellos no serían matrices si no vectores.

Aquí podemos observar el


resultado de la inversa.

Ahora vamos a calcular nuestro determinante para ello se debe poner el nombre de la variable
yo le puse DET ahora podemos entre paréntesis a nuestra matriz después le dan Run

Aquí le dejo una imagen de Run para


que sepan cual es

Aquí podemos ver el resultado de la


determinante

pág. 14
Aquí podemos ver el ejemplo
anteriormente explicado

Ahora vamos a ver como calcular la transpuesta vamos a escoger el nombre de la


variable yo utilice la que se muestra en la imagen y solo vamos a escoger la matriz y
para indicar que transpuesta le vamos a poner una comilla y solo le damos Run.

Ç
Aquí vemos en la imagen de la
transpuesta y su resultado

pág. 15
Para poder aplicar el comando
primero se define la matriz en el
espacio de editor debemos tener la
matriz A y B después se le va a poner
el comando X=rref con la matrices
correspondientes que aquí serian
([A,B]) y simplemente le damos Run
aquí en la imágenes se muestra el
resultado y un ejemplo de cómo seria.

pág. 16
Operador de dos puntos
Vamos a ver unas aplicaciones del operador de dos puntos para crear sub matrices a partir de una matriz.
Bueno de esta matriz usando el operador dos puntos vamos a tomar la primera columna simplemente lo
que hago es poner el nombre de la variable y el operador dos puntos en la parte de la columna significan
todos elementos. Aquí vemos el operados de dos
puntos asiendo su función de extraer
una columna

Como vemos hace una extracción de


la columna gracias al operador de dos
puntos como vemos en la imagen
indique la extracción de la columna
dos.

También este operador sirve para las


filas solo que debes de poner el
numero después de los dos puntos se
pone antes

pág. 17
Aquí indicamos que tomamos los
números de la segunda fila y
tomamos del segundo elemento hasta
el final.

pág. 18
Aquí les dejare unos cuantos comandos que se pueden utilizar en MATLAB para tenga
conocimiento de los comandos existente que se pueden utilizar y también indicando las funciones
de cada comando. Es como algo extra para que tengan un apoyo.

Comandos básicos

 + Suma o adición

 – Resta o sustitución

 * Multiplicación matricial

 / División derecha

 \ División izquierda.

 ^ Potencia.

 ' Transpuesta complejo conjugado.

 (:)Operador de dos puntos

 :* producto elemento a elemento

 ^ potenciación

 .^ elevar a una potencia elemento a elemento

 ./ y.\ división de elemento a elemento

pág. 19
Ejemplos :
Facilidad de uso Ejemplo. Consideremos el problema de
calcular los valores y vectores pro-
Ejemplo.- Consideremos el problema de
sumar a una matriz el producto pios de la matrices de Hilbert de
dimensiones n = 300, . . . , 600. El pro-
de otras dos, todas ellas de dimension n
× n. El programa en FORTRAN grama en FORTRAN 9X usando la
subrutina dsyev de la librerıa LAPACK
9X, suprimiendo las lıneas relacionadas
con el interface de subrutinas, para y suprimiendo las lıneas relacionadas
con el interface de subrutinas exter-
n = 1000 podrıa ser:
nas, para n = 300 podrıa ser:
program blas
program euler
integer, parameter :: d0 = selected real
kind(14) integer, parameter :: d0 = selected real
kind(14)
integer :: m, n, k, lda, ldb, ldc
integer :: n, lda, info, lwork
character(len=1) :: transa, transb
character(len=1) :: jobz, uplo
integer, dimension(1) :: iseed
INTEGER :: i, j
real(kind = d0),dimension(1000,1000) ::
a, b, c integer, dimension(1) :: iseed
real(kind = d0) :: alpha, beta real(kind = d0),dimension(300,300) :: a
real :: s, s1, s2 real(kind = d0),dimension(300) :: w
!============================== real(kind = d0),dimension(2400) :: work
===============
real :: s, s1
iseed=1
n=1000
Seccion 3: Vectores y Matrices
lda=n
38
ldb=n
Hay varias funciones que permiten
ldc=n manejar y definir matrices de forma
m=n comoda, como:
k=n ones(nf,nc)
matriz de unos de dimension nf×nc mento dan una matriz cuadrada de
dimension ese argumento.
zeros(nf,nc)
Seccion 3: Vectores y Matrices
matriz de ceros de dimension nf×nc
41
eye(nf,nc)
>> A=ones(2,4)
matriz identidad de dimension nf×nc
A=
[nf,nc]=size(A) numero de filas y de
columnas de la matriz A 1111
diag(v) 1111
matriz diagonal con vector v en la >> B=zeros(size(A))
diagonal
B=
hilb(n)
0000
matriz de Hilbert de dimension n×n
0000
norm(A,p)
>> C=rand(2,4)
norma p de A.
C=
p=1,2,Inf,’fro’, ...
0.25150 0.28437 0.56549 0.60927
rand(nf,nc)
0.18432 0.39318 0.32908 0.79883
matriz de numeros aleatorios
>> D=eye(2)
uniformemente
D=
distribuidos en el intervalo (0,1) de
10
dimension nf×nc
01
randn(nf,nc)
>> % normas 1, 2 e infinito
matriz de numeros normalmente
>> norm(C,1), norm(C,2), norm(C,’inf’)
distribuidos con media nula y varianza
uno de ans = 1.4081
dimension nf×nc ans = 1.3105
Las funciones ones, zeros, eye, rand, ans = 1.7106
randn con un solo argu-

pág. 21
Referencias Biográficas :
Aprenda Matlab 5.3 como si estuviera en primero, 2001,Javier García de Jalón, José
Ignacio Rodríguez, Recuperado de :
http://mat21.etsii.upm.es/ayudainf/aprendainf/Matlab53/matlab53.pdf , Fecha de
recuperación 16/04/17.
Solución numérica de sistemas de ecuaciones lineales mediante Matlab y su aplicación
en Ingeniería, VII Encuentro Multidisciplinario de investigación 2010, ING. Luis Lorenzo
Jiménez García, Recuperado de :
http://informatica.aragon.unam.mx/investigacion/SAPI/base/Eventos/Memoria7/Ponenci
a%20Luis%20Lorenzo.pdf , Fecha de recuperación 16/04/17.

Das könnte Ihnen auch gefallen