Está en la página 1de 7

Matlab Bsico Sesin No.

2 Expositor: Miguel Ataurima Arellano


Descargado de: http://matlabperu.blogspot.com 1 ataurima@telefonica.net.pe / ma2lac@msn.com
EXPOSITOR:
Miguel Ataurima Arellano
INGENIERO CONSULTOR 1
Universidad Nacional de Ingeniera
Facultad de Ingeniera Elctrica y Electrnica
Lima Per
MATLAB
NIVEL BSICO
Inicio Inicio
http://matlabperu.blogspot.com
ataurima@telefonica.net.pe
ma2lac@msn.com
La Programacin en MATLAB
Sentencias de Control Selectivas
Sentencias de Control Repetitivas
Sentencias Especiales
Introduccin a los Mtodos numricos
El Lenguaje de Programacin
MATLAB
SESIN No. 2

EXPOSITOR:
Miguel Ataurima Arellano
INGENIERO CONSULTOR 2
Universidad Nacional de Ingeniera
Facultad de Ingeniera Elctrica y Electrnica
Lima Per
MATLAB
NIVEL BSICO
Inicio Inicio
http://matlabperu.blogspot.com
ataurima@telefonica.net.pe
ma2lac@msn.com
La Programaci La Programaci n en MATLAB n en MATLAB
Los Programas
La Programacin y los Algoritmos
Los Lenguajes de Programacin
La Programacin en MATLAB



Copyright 2008 ataurima@telefonica.net.pe 3
Los Programas
Un programa, o tambin llamado programa informtico, programa de computador,
es simplemente un conjunto de instrucciones para una computadora.
Las computadoras necesitan de los programas para funcionar, y un programa no
hace nada a menos que sus instrucciones sean ejecutadas por el procesador.
Un programa se puede referir tanto a un cdigo ejecutable como a su cdigo
fuente, el cual es transformado en un ejecutable cuando es compilado o
interpretado.
Generalmente el cdigo fuente de los programas es escrito por profesionales
conocidos como programadores.
El cdigo fuente es escrito en un lenguaje de programacin que sigue un
paradigma (imperativo o declarativo).
Cuando se pide que el programa sea ejecutado, el procesador ejecuta el programa
instruccin por instruccin, hasta que el programa termina.
De acuerdo a sus funciones, los programas pueden ser clasificados en software de
sistema y software de aplicacin. Pueden ejecutarse muchos programas de forma
simultnea en un mismo ordenador, a lo cual se le llama multitarea.

Copyright 2008 ataurima@telefonica.net.pe 4
La Programacin y los Algoritmos
Se conoce como programacin de computadores a la implementacin
(conversin) de un algoritmo, a travs de un determinado lenguaje de
programacin, en un programa.
Un algoritmo es una secuencia no ambigua, finita y ordenada de instrucciones que
han de seguirse para resolver un problema.
Los algoritmos se representan mediante diagramas de flujo o pseudocgido.
Mientras que un algoritmo se ejecuta en una mquina abstracta que no tiene
limitaciones de memoria o tiempo, un programa se ejecuta en una mquina real,
que s tiene esas limitaciones.
Los programas suelen subdividirse en partes menores (mdulos), de modo que la
complejidad algortmica de cada una de las partes sea menor que la del programa
completo, lo cual ayuda al desarrollo del programa.

Matlab Bsico Sesin No.2 Expositor: Miguel Ataurima Arellano
Descargado de: http://matlabperu.blogspot.com 2 ataurima@telefonica.net.pe / ma2lac@msn.com
Copyright 2008 ataurima@telefonica.net.pe 5
Los Lenguajes de Programacin
Un lenguaje de programacin es un lenguaje que puede ser utilizado para
controlar el comportamiento de una mquina, particularmente una computadora.
Consiste en un conjunto de smbolos y reglas sintcticas y semnticas que definen
su estructura y el significado de sus elementos y expresiones.
Un lenguaje de programacin permite a uno o ms programadores especificar de
manera precisa: sobre qu datos una computadora debe operar, cmo deben ser
estos almacenados, transmitidos y qu acciones debe tomar bajo una variada gama
de circunstancias. Todo esto, a travs de un lenguaje que intenta estar
relativamente prximo al lenguaje humano o natural, tal como sucede con el
lenguaje lxico. Una caracterstica relevante de los lenguajes de programacin es
precisamente que ms de un programador puedan tener un conjunto comn de
instrucciones que puedan ser comprendidas entre ellos para realizar la construccin
del programa de forma colaborativa.
Los procesadores usados en las computadoras son capaces de entender y actuar
segn lo indican programas escritos en un lenguaje fijo llamado lenguaje de
mquina. Todo programa escrito en otro lenguaje puede ser ejecutado de dos
maneras:
Mediante un programa que va adaptando las instrucciones conforme son encontradas. A
este proceso se lo llama interpretar y a los programas que lo hacen se los conoce como
intrpretes.
Traduciendo este programa al programa equivalente escrito en lenguaje de mquina. A
ese proceso se lo llama compilar y al traductor se lo conoce como compilador.

Copyright 2008 ataurima@telefonica.net.pe 6
Clasificacin de los Lenguajes de Programacin
Por el nivel de abstraccin
Lenguajes de bajo nivel
Aquellos que mas se asemejan al lenguaje de una computadora (lenguaje de mquina)
Lenguajes de mediano nivel
Aquellos conformados por nemnicos convertibles en forma directa a lenguaje mquina.
Lenguajes de alto nivel
Aquellos que estn conformados por elementos del lenguaje humano.
Por la forma de ejecucin
Compilados
Aquellos que convierten todo un programa a lenguaje mquina para su ejecucin
Interpretados
Aquellos que van convirtiendo sentencias de un programa a lenguaje mquina conforme vaya
siendo necesario durante su ejecucin (proceso de datos).
Por el paradigma de programacin
Un paradigma de programacin es la filosofa utilizada en la construccin del software, podemos mencionar
entre ellos a los paradigmas:
Imperativo
Funcional
Lgico
Orientado a Objetos


Copyright 2008 ataurima@telefonica.net.pe 7
clc;
clear;
x = input('Ingrese x=');
for k=1:20
:
:
1001 0010
0010 1001
:
:
cdigo fuente
cdigo
ejecutable
algoritmo
inicio
fin
leer:
x
:
:
memoria
>>
miprograma.m
Ingrese x=_
interpretacin codificacin
10010010...
10010010...
invocacin del
programa
programa en
ejecucin
Lenguaje
MATLAB
Lenguaje de
mquina
miprograma
Command Window Command Window
miprograma.m
PROGRAMADOR
USUARIO
(se solicita la ejecucin el programa)
La Programacin en MATLAB

EXPOSITOR:
Miguel Ataurima Arellano
INGENIERO CONSULTOR 8
Universidad Nacional de Ingeniera
Facultad de Ingeniera Elctrica y Electrnica
Lima Per
MATLAB
NIVEL BSICO
Inicio Inicio
http://matlabperu.blogspot.com
ataurima@telefonica.net.pe
ma2lac@msn.com
Sentencias de Control Selectivas
Sentencias de Control Selectivas Simple
Por evaluacin de condicin: if ... else
Sentencias de Control Selectivas Mltiple
Por consecutivas evaluaciones de condiciones : if ... elseif ... else
Por mltiples comparaciones: switch ... case ... otherwise


Matlab Bsico Sesin No.2 Expositor: Miguel Ataurima Arellano
Descargado de: http://matlabperu.blogspot.com 3 ataurima@telefonica.net.pe / ma2lac@msn.com
Copyright 2008 ataurima@telefonica.net.pe 9
if ... else
DIAGRAMA DE FLUJO SINTAXIS
donde:
condicin, es la expresin (lgica o
relacional) a evaluarse. Su resultado es del tipo
logical (1= true, 0= false).
sentencia(s)1, puede ser una o mas
sentencias a ejecutarse siempre que
condicin = true.
sentencia(s)2, puede ser una o mas
sentencias a ejecutarse siempre que
condicin = false. (es opcional).
condicin
sentencia(s)1 sentencia(s)2
T F
opcional

Copyright 2008 ataurima@telefonica.net.pe 10
CASOS ESPECIALES
Ausencia de sentencia(s)2
Ausencia de sentencia(s)1
condicin
sentencia(s)1
T F
condicin
sentencia(s)2
T F
sentencia nula


Copyright 2008 ataurima@telefonica.net.pe 11
if ... elseif ... else
DIAGRAMA DE FLUJO SINTAXIS
donde:
cond.k, es la expresin k-sima (lgica o
relacional) a evaluarse. Su resultado es del tipo
logical (1=true, 0=false).
sent.k, es la sentencia(s) a ejecutarse
siempre que cond.k =true.
sent. por defecto, es la sentencia(s) a
ejecutarse por defecto, o sea, cuando
cond.1=cond.2=...=cond.N=false
(es opcional).
cond. 1
sent. 1
T F
cond. 2
sent. 2

cond. N
sent. N
sent. por
defecto

T F
T F
opcional

Copyright 2008 ataurima@telefonica.net.pe 12
switch ... case
DIAGRAMA DE FLUJO SINTAXIS
donde:
var, es una variable entera o caracter.
CTE_k, es la constante k-sima de comparacin.
sent.k, es la sentencia(s) k-sima a ejecutarse
cuando la comparacin
var =cte
k
arroje como resultado true.
sent. por defecto, es la sentencia(s). a
ejecutarse cuando todas las comparaciones
var =cte
k
arrojen como resultado false.
var =cte
1
sent. 1
T
F
var =cte
2
var =cte
N
sent. 2
sent. N

sent.
por defecto
F
F
F
T
T
opcional

Matlab Bsico Sesin No.2 Expositor: Miguel Ataurima Arellano
Descargado de: http://matlabperu.blogspot.com 4 ataurima@telefonica.net.pe / ma2lac@msn.com
EXPOSITOR:
Miguel Ataurima Arellano
INGENIERO CONSULTOR 13
Universidad Nacional de Ingeniera
Facultad de Ingeniera Elctrica y Electrnica
Lima Per
MATLAB
NIVEL BSICO
Inicio Inicio
http://matlabperu.blogspot.com
ataurima@telefonica.net.pe
ma2lac@msn.com
Sentencias de Control Iterativa
Por evaluacin de condicin: while
Por recorrido de contador: for


Copyright 2008 ataurima@telefonica.net.pe 14
while
DIAGRAMA DE FLUJO SINTAXIS
donde:
condicin, es la expresin (lgica o relacional) a
evaluarse. Su resultado es del tipo logical
(1= true, 0= false).
sentencia(s), es la sentencia(s) a ejecutarse
siempre que la evaluacin de la condicin arroje
como resultado el valor de true
condicin
T
F
sentencia(s)
iteracin


Copyright 2008 ataurima@telefonica.net.pe 15
for
DIAGRAMA DE FLUJO SINTAXIS
donde:
rango(k), es el rango de valores que toma la
variable contadora : k.
ej: Considere como rango(k) a
k=1:3:7
entonces k tomara los valores 1, 4 y 7.
sentencia(s), es la sentencia(s) a ejecutarse
para cada uno de los valores del contador.
ej: Para el caso anterior, se ejecutar la
sentencia(s) 3 veces: la primera para k=1, la
segunda para k=4 y la tercera para k=7.
k
sentencia(s)
rango( k )
iteracin

EXPOSITOR:
Miguel Ataurima Arellano
INGENIERO CONSULTOR 16
Universidad Nacional de Ingeniera
Facultad de Ingeniera Elctrica y Electrnica
Lima Per
MATLAB
NIVEL BSICO
Inicio Inicio
http://matlabperu.blogspot.com
ataurima@telefonica.net.pe
ma2lac@msn.com
Sentencias Especiales
Sentencia de salto: continue
Sentencia de ruptura: break
Sentencia de terminacin: return


Matlab Bsico Sesin No.2 Expositor: Miguel Ataurima Arellano
Descargado de: http://matlabperu.blogspot.com 5 ataurima@telefonica.net.pe / ma2lac@msn.com
Copyright 2008 ataurima@telefonica.net.pe 17
continue (sentencia de salto)
Pasa el control a la siguiente iteracin en los bucles for o while en el cual aparezca, salteando
al posible conjunto de sentencias del cuerpo del bucle que la sucedan.
EJEMPLO: Analizar
rango(k) define los valores de k para cada uno
de los cuales se efectuar una iteracin
El cuerpo del bucle for contiene una sentencia
condicional if que evala una condicin.
La sentencia de salto continue se ejecutar
siempre que la evaluacin de condicin resulte
verdadera.
Al ejecutarse continue se iniciar una nueva
iteracin, salteando las instrucciones que
preceden a continue ; es decir
sentencia(s)3 .
V

Copyright 2008 ataurima@telefonica.net.pe 18
break (sentencia de ruptura)
Termina la ejecucin de un bucle for o while. Las sentencias que aparezcan despus de la
sentencia break, no sern ejecutadas.
EJEMPLO: Analizar
La sentencia de salto break se ejecutar siempre
que la evaluacin de condicin resulte
verdadera.
Al ejecutarse break se finalizar la ejecucin del
bucle for obviando la ejecucin de las sentencias
posteriores; es decir sentencia(s)3 .
V


Copyright 2008 ataurima@telefonica.net.pe 19
return (sentencia de terminacin)
Ocasiona un normal retorno a la funcin invocante.
EJEMPLO: Analizar
NOTA:
isempty(A) es una funcin que retorna true siempre
que la matriz A sea vaca : []

EXPOSITOR:
Miguel Ataurima Arellano
INGENIERO CONSULTOR 20
Universidad Nacional de Ingeniera
Facultad de Ingeniera Elctrica y Electrnica
Lima Per
MATLAB
NIVEL BSICO
Inicio Inicio
http://matlabperu.blogspot.com
ataurima@telefonica.net.pe
ma2lac@msn.com
Introduccin a los
Mtodos Numricos
Los Mtodos Numricos
Solucin de Ecuaciones No Lineales
El Mtodo del Punto Fijo
El Mtodo de Newton-Raphson


Matlab Bsico Sesin No.2 Expositor: Miguel Ataurima Arellano
Descargado de: http://matlabperu.blogspot.com 6 ataurima@telefonica.net.pe / ma2lac@msn.com
Copyright 2008 ataurima@telefonica.net.pe 21
Los Mtodos Numricos
Los Mtodos Numricos (Anlisis Numrico) son la rama de las matemticas que
se encargan de disear algoritmos para, a travs de nmeros y reglas matemticas
simples, simular procesos matemticos ms complejos aplicados a procesos del
mundo real; es decir, resolver el modelo que los explica.
Entre los mas aplicados a economa computacional podemos mencionar
Mtodos para le Resolucin de ecuaciones no lineales.
Mtodos para la Resolucin de sistemas lineales.
Mtodos para la Interpolacin y aproximacin polinomial.
Mtodos para el Ajuste de curvas.
Mtodos para la Derivacin numrica.
Mtodos para la Integracin numrica.
Mtodos para la Optimizacin numrica
Mtodos para la Resolucin de Ecuaciones diferenciales.
Mtodos para el Clculo de Valores y Vectores Propios
La mayora de softwares en la economa computacional, traen implementados los
mtodos numricos, a travs de bibliotecas; mientras que otros permiten la
adaptabilidad de los mismos segn el caso en anlisis.

Copyright 2008 ataurima@telefonica.net.pe 22
Solucin de Ecuaciones No Lineales
EL MTODO DEL PUNTO FIJO
1 1
( )
( )
Aproxima la solucin de la ecuacin iniciando con el valor inicial de
partida y la frmula de recurrencia
n n
x g x
p p g p

=
=
2
p
1
p
3
p

x
y
y x =
( ) y g x =
2 1
( ) p g p =
3 2
( ) p g p =
1
( )
n n
p g p

=

y x =
( ) y g x =
1
p
x
y
2
p
3
p
4
p
2 1
( ) p g p =
3 2
( ) p g p =
1
( )
n n
p g p

=

4 3
( ) p g p =
EL METODO CONVERGE
EL METODO CONVERGE
EL METODO CONVERGE
EL METODO CONVERGE
1
p
1
p
VALOR INICIAL
VALOR INICIAL


Copyright 2008 ataurima@telefonica.net.pe 23
y x =
( ) y g x =
1
p
x
y
2
p
3
p
2 1
( ) p g p =
3 2
( ) p g p =
1
( )
n n
p g p

=

EL METODO DIVERGE
EL METODO DIVERGE

y x =
( ) y g x =
1
p
x
y
2
p
3
p
4
p
2 1
( ) p g p =
3 2
( ) p g p =
1
( )
n n
p g p

=

4 3
( ) p g p =
EL METODO DIVERGE
EL METODO DIVERGE

1
p
1
p
VALOR INICIAL
VALOR INICIAL

Copyright 2008 ataurima@telefonica.net.pe 24
Algoritmo del Mtodo de Punto Fijo
1
(1) P p
1
2, , max k =
( ) ( ( 1) ) P k f P k
( ) ( 1) error P k P k
( )
error
relerror
P k

error <
relerror <
SALIR DEL
BUCLE
1
max k =
k
"Maxim o n u m e ro d e
ite ra cio ne s e xce d id o"
( ) p P k =
V
F
V F
( ) g x
1
p

1
max
p
k
P
error
relerror
1
1
( ) :
:
:
max :
funcin iterativa
valor inicial para el mtodo de punto fijo
tolerancia
es el mximo numero de iteraciones
g x
p

{ }
:
:
:
(1), (2) , , ( )
:
es la aproximacin resultante por el mtodo fijo
es el numero de iteraciones efectuadas
vector columna conteniene la secuencia
de aproximaciones
es el error cometido en la a
p
k
P
P P P k
error

proximacin p
Entrada
Salida
ESQUEMA E/S DIAGRAMA DE FLUJO

Matlab Bsico Sesin No.2 Expositor: Miguel Ataurima Arellano
Descargado de: http://matlabperu.blogspot.com 7 ataurima@telefonica.net.pe / ma2lac@msn.com
Copyright 2008 ataurima@telefonica.net.pe 25
25
1
(1) P p
1
2, , max k =
( ) ( ( 1) ) P k f P k
( ) ( 1) error P k P k
( )
error
relerror
P k

error <
relerror <
SALIR DEL
BUCLE
1
max k =
k
"Maximo numero de
iteraciones excedido"
( ) p P k =
V
F
V F
Codificacin
Cdigo Fuente: puntofijo.m
puntofijo.m

Copyright 2008 ataurima@telefonica.net.pe 26
EL MTODO DE NEWTON-RAPHSON
Permite aproximarnos a una raz de a partir de un valor inicial p1
mediante la frmula de recurrencia (iteracin)
para
EL METODO CONVERGE
EL METODO CONVERGE


Copyright 2008 ataurima@telefonica.net.pe 27
Cdigo Fuente: newton.m
newton.m

Copyright 2008 ataurima@telefonica.net.pe 28
Aplicacin
Resolver con una precisin de 10
-4
.
Use a lo mas 20 iteraciones.
SOLUCIN:
1. Preparamos las funciones
MATLAB para y
2. Invoque a la funcin newton
con los parmetros necesarios
fcn1.m
fcn2.m
raz aproximada
Sucesin de
aproximaciones
Sucesin de
errores por cada aproximacin
Nmero de iteraciones utilizadas

También podría gustarte