Вы находитесь на странице: 1из 22

INSTITUTO TECNOLOGICO DE VERACRUZ

Mtodos Numricos
en MatLab
Simulacin
INGENIERIA EN MECATRONICA
Jaime Manuel Gonzlez Vernet

Introduccion
MatLab es un programa interactivo para computacin numrica y visualizacin de datos.
Es ampliamente usado por Ingenieros de Control en el anlisis y diseo, posee adems
una extraordinaria versatilidad y capacidad para resolver problemas en matemtica
aplicada, fsica, qumica, ingeniera, finanzas y muchas otras aplicaciones.
Est basado en un sofisticado software de matrices para el anlisis de sistemas de
ecuaciones. Permite resolver complicados problemas numricos sin necesidad de escribir
un programa. MATLAB es un entorno de computacin y desarrollo de aplicaciones
totalmente integrado orientado para llevar a cabo proyectos en donde se encuentren
implicados elevados clculos matemticos y la visualizacin grfica de los mismos.
MATLAB integra anlisis numrico, clculo matricial, proceso de seal y visualizacin
grfica en un entorno completo donde los problemas y sus soluciones son expresados del
mismo modo en que se escribiran tradicionalmente, sin necesidad de hacer uso de la
programacin tradicional. El nombre de MATLAB proviene de la contraccin de los
trminos MATrix LABoratory y fue inicialmente concebido para proporcionar fcil acceso a
las libreras LINPACK y EISPACK, las cuales representan hoy en da dos de las libreras
ms importantes en computacin y clculo matricial. MATLAB es un sistema de trabajo
interactivo cuyo elemento bsico de trabajo son las matrices. El programa permite realizar
de un modo rpido la resolucin numrica de problemas en un tiempo mucho menor que
si se quisiesen resolver estos mismos problemas con lenguajes de programacin
tradicionales como pueden ser los lenguajes Fortran, Basic o C.
MATLAB goza en la actualidad de un alto nivel de implantacin en escuelas y centros
universitarios, as como en departamentos de investigacin y desarrollo de muchas
compaas industriales nacionales e internacionales. En entornos universitarios, por
ejemplo, MATLAB se ha convertido en una herramienta bsica, tanto para los
profesionales e investigadores de centros docentes, como una importante herramienta
para la imparticin de cursos universitarios, tales como sistemas e ingeniera de control,
lgebra lineal, proceso digital de imagen, seal, etc. En el mundo industrial, MATLAB est
siendo utilizado como herramienta de investigacin para la resolucin de complejos
problemas planteados en la realizacin y aplicacin de modelos matemticos en
ingeniera. Los usos ms caractersticos de la herramienta los encontramos en reas de
computacin y clculo numrico tradicional, prototipos algortmicos, teora de control
automtico, estadstica, anlisis de series temporales para el proceso digital de seal.

MATLAB dispone tambin en la actualidad de un amplio abanico de programas de apoyo


especializado, denominado Toolboxes, que extienden significativamente el nmero de
funciones incorporadas en el programa principal. Estos Toolboxes cubren en la actualidad
prcticamente casi todas las reas principales en el mundo de la ingeniera y la
simulacin, destacando entre ellos el 'toolbox' de proceso de imgenes, seal, control
robusto, estadstica, anlisis financiero, matemticas simblicas, redes neurales, lgica
difusa, identificacin de sistemas, simulacin de sistemas dinmicos, etc. Adems
tambin se dispone del programa Simulink que es un entorno grfico interactivo con el
que se puede analizar, modelar y simular la dinmica de sistemas no lineales.

Objetivo
El objetivo de este manual es el de dar una breve explicacin a la aplicaciones de ciertos
mtodos numricos con la ayuda del software MatLab tales como, Sistemas de
ecuaciones lineales, eliminacin de Gauss, Ecuaciones no lineales, Gauss Seidel; Newton
Raphson, Ecuaciones de Euler, Runge Kutta , Diferencias Finitas, entre otros.

Uso de Matrices
MatLab emplea matrices porque con ellas se puede describir infinidad de cosas de una
forma altamente flexible y matemticamente eficiente. Una matriz de pixeles puede ser
una imagen o una pelcula. Una matriz de fluctuaciones de una seal puede ser un sonido
o una voz humana. Y tal vez ms significativamente, una matriz puede describir una
relacin lineal entre los componentes de un modelo matemtico. En este ltimo sentido,
una matriz puede describir el comportamiento de un sistema extremadamente complejo.
Por ejemplo una matriz puede representar el vuelo de una avin a 40.000 pies de altura, o
un filtro digital de procesamiento de seales.
Origen
MatLab fue originalmente desarrollado en lenguaje FORTRAN para ser usado en
computadoras mainframe. Fue el resultado de los proyectos Linpack y Eispack
desarrollados en el Argonne National Laboratory. Su nombre proviene de MATrix

LABoratory. Al pasar de los aos fue complementado y reimplementado en lenguaje C.


Actualmente la licencia de MatLab es propiedad de MathWorks Inc .
Plataformas
MatLab est disponible para una amplio nmero de plataformas: estaciones de trabajo
SUN, Apollo, VAXstation y HP, VAX, MicroVAX, Gould, Apple Macintosh y PC AT
compatibles 80386 o superiores. Opera bajo sistemas operativos UNIX, Macintosh y
Windows.

Comandos
La primera forma de interactuar con MatLab es a travs de la lnea de comandos. Puede
ejecutarse un comando si este est escrito despus del smbolo >> y se presiona la tecla
Enter.
MATLAB trabaja esencialmente con matrices numricas rectangulares. La manera ms
fcil de ingresar matrices pequeas es enumerando los elementos de sta de tal manera
que:

Los elementos estn separados por blancos comas.


Los elementos estn cerrados entre corchetes, [ ].
Muestre el final de cada fila con; (punto y coma).

Ejemplo: A = [1 2 3; 4 5 6; 7 8 9 ] resultara en la matriz A = 1 2 3 4 5 6 7 8 9 MATLAB


guarda esta matriz para utilizarla luego bajo el nombre de A. Si la matriz a introducir es
muy grande se puede utilizar el siguiente formato:
A = [1 2 3
456
7 8 9]

El comando load y la funcin fread pueden leer matrices generadas en sesiones


anteriores generadas por otros programas. Ya que MatLab se basa en el lgebra de
matrices como ejemplo se creara una matriz. Estas pueden estar formadas por un slo
elementos (escalar), por una fila o una columna (vector) o por una serie de filas y
columnas (matriz propiamente dicha).
>>A=1
define A como un escalar de valor 1. Al definir A automticamente MatLab presenta en
pantalla su valor.
A=1
Para no presentar el valor de la variable creada, debe agregarse punto y coma (;) al final
del comando.
Despus de crear una variable, puede presentarse su valor en pantalla escribiendo la
variable despus del prompt (>>).
>>A
Se pueden redefinir variables, por ejemplo:
>>A=[1 2 3]
define A como un vector de tres elementos, A(1)=1, A(2)=2 y A(3)=3. Estos elementos
deben separase con espacios en blanco o comas (,).
Para definir una matriz se deben separar las filas con punto y coma (;) o con retorno
(Enter). >>A=[1 2 3; 4 5 6]

>>A=[1 2 3 4 5 6]
ambos comandos producen el mismo efecto:
A=123
456

MatLab para Sistemas de ecuaciones lineales


Para resolver sistemas de ecuaciones lineales con MATLAB. Si queremos resolver un
sistema de ecuaciones lineales, lo primero que debemos hacer es escribirlo en la forma
matricial Ax = b. Por ejemplo consideremos el sistema de ecuaciones:
2x y z = 2
2x + 3y z = 6
x + 2y + 3z = 15
Este sistema se puede escribir en la forma Ax = b con:

Para resolverlo en MATLAB, primero definimos la matriz A y el vector b, as:


>> A=[2 -1 -1; 2 3 -1; 1 2 3]
>> b=[2 6 15]
(donde el smbolo indica que queremos la transpuesta de este vector, para que sea un
vector columna)
Ya habiendo definido la matriz A y el vector b, slo resta usar una de las rutinas de
MATLAB. Segn nuestros conocimientos, si queremos encontrar un vector x tal que Ax =
b, entonces ese vector debe ser x = A1b. Esto puede ser hecho en MATLAB as.
>> x = inv(A)*b
Con lo cual obtenemos:
x=
3.1429e+000

1.0000e+000
3.2857e+000
Otra manera de llegar a esta solucin es escribiendo A(1) en lugar de inv(A); sin
embargo la manera ms sencilla de hacerlo en MATLAB es escribiendo:
>> x=A\b
donde el smbolo \ (divisin a izquierda), se usa en MATLAB para obtener la solucin del
problema Ax = b.

De los varios mtodos para la solucin de sistemas lineales usando MATLAB, el que ms
se usa es el ltimo, principalmente porque llega a la solucin sin necesidad de hallar la
inversa de la matriz A
Por ltimo slo resta decir que en el caso de trabajar con matrices y vectores de
componentes enteras o racionales, es conveniente expresar los resultados de esta misma
manera para evitar la prdida de cifras significativas. En MATLAB esto se puede hacer
con la instruccin format rat, con la que se aproximan todos los resultados a la fraccin
ms cercana. Para nuestro ejemplo:
>> format rat
>> x=A\b
Produce el resultado:
x=
22/7
1
23/7
que es la solucin exacta del sistema lineal.

Como el objetivo del Manuel es utilizar tcnicas iterativas, como los mtodos de, GaussSeidel y SOR, para llegar a la solucin de un sistema de ecuaciones lineales, ahora
veamos cmo usar MATLAB de esta manera. Recordemos que todos los mtodos
iterativos vistos se basan en el problema de punto fijo:

donde:

Para construir ests matrices en MATLAB, se hace lo siguiente:

Para el mtodo de Jacobi: Una vez definida la matriz A, la instruccin diag(A) nos
devuelve un vector compuesto por la diagonal principal de A. Ahora si volvemos a usar
esta instruccin con el vector obtenido, MATLAB nos devuelve una matriz diagonal,
formada por este vector. Es decir, la instruccin diag(diag(A)) nos devuelve la matriz
diagonal de A. Por ejemplo, las instrucciones:

Para crear la matriz de Jacobi, debemos usar una matriz identidad de orden 3; esta matriz
se obtiene en MATLAB con la instruccin eye(n), donde n es el orden de la matriz que
deseamos. Por lo tanto la matriz de Jacobi se puede calcular con la instruccin:

Pseudocdigo:

Para el mtodo de Gauss-Seidel: Podemos usar la instruccin tril(A), que nos devuelve la
matriz triangular inferior de la matriz A. Con esta instruccin y un procedimiento similar al
descrito para el mtodo de Jacobi, tenemos:

Mg =
2 0 0
2 3 0
1 2 3

Pseudocdigo:

METODO DE GAUSS
La construccin Bsica sera la siguiente:

Dentro de MatLab la construccin seria de la siguiente manera

MatLab para Sistemas de ecuaciones NO lineales

MTODO DE NEWTON-RAPHSON
Se utiliza para resolver ecuaciones de la forma

. El mtodo de Newton se

obtiene de la serie de Taylor truncada en el primer trmino, recordando la serie de Taylor


para una funcin f

alrededor de un punto tenemos:

En el punto deseado para la solucin

por lo que despejando x:

El mtodo consiste en elegir una aproximacin

Hasta que la diferencia

inicial y realizar la iteracin:

sea muy cercana a cero, para lo cual se establece

una tolerancia a criterio del usuario. En el algoritmo

se muestra

el algoritmo de Newton-Raphson en pseudocdigo debido a que no hay forma de escribir


un cdigo en Matlab general para este mtodo.

Pseudocdigo:

MTODO DE EULER
El mtodo de Euler consiste en aproximar la derivada por diferencias finitas, de esta
manera:

Por lo cual el valor de la funcin en el intervalo de tiempo n+1 es:

El mtodo de Euler tiene la desventaja de que se vuelve inestable y la solucin diverge si


el tamao de paso de tiempo

es muy grande.

MTODO DE RUNGE-KUTTA DE ORDEN 4

Uno de los mtodos ms utilizados para resolver numricamente problemas de


ecuaciones diferenciales ordinarias con condiciones iniciales es el mtodo de RungeKutta de cuarto orden, el cual proporciona un pequeo margen de error con respecto a la
solucin real del problema y es fcilmente programable en un software para realizar las
iteraciones necesarias. Hay variaciones en el mtodo de Runge-Kutta de cuarto orden

pero el ms utilizado es el mtodo en el cual se elige un tamao de paso


mximo de iteraciones N tal que

y un nmero

Funciones para Ecuaciones Diferenciales


Las funciones de MATLAB para resolver problemas de valor inicial para ecuaciones
diferenciales ordinarias son:
ode23 - mtodo Runge-Kutta de largo de paso variable que combina un mtodo de orden
dos con uno de orden tres.
ode45 - mtodo Runge -Kutta -Fehlberg de largo de paso variable que combina un
mtodo de orden cuatro con uno de orden cinco.

Ecuacin diferencial de primer orden


Sea una ecuacin diferencial de primer orden, con la condicin inicial de que en el
instante t0 el valor inicial de x es x0
Se elige una anchura de paso h y se calculan cuatro nmeros k1, k2, k3, k4 de acuerdo
con el procedimiento esquematizado en la tabla adjunta. Segn el procedimiento
ordinario de Runge-Kutta, a partir del valor de x en el instante t se determina el valor
de x en el instante t+h mediante la frmula que figura en la ltima fila de dicha tabla.

Вам также может понравиться