Matlab CC
Matlab CC
Matlab CC
De que se trata
• Es un conjunto de productos integrados para:
• análisis de datos
• visualización
• desarrollo de aplicaciones
• simulación
i l ió
• diseño
• generación de código
The MathWorks Product Suite
Stateflow Coder
System Simulation
Control Partners
Identification & Code generation
System ID
Control System SIMULINK ADI (Beacon)
Frequency-Domain
Robust Control Stateflow dSPACE RTI
System
y ID
Mu Analysis
Mu-Analysis Real Time Workshop
Real-Time VxWorks - Wind River
Nonlinear Contro Fixed Point Blockset SD/Fast - Symbolic Dynamics
l RTW Ada Extension Maple V - Waterloo Maple
Quantitative Fbac Saber - Analogy
k ADAMS - MDI
LMI Control DADSS - CADSI
C S
Model Predictive Teamwork - CADRE
Clientes de MATLAB
Gobierno
G bi C
Comercial
i l - US IInternacional
t i l
9Air Force (US and Allied Signal Aerospatiale
others) Bell Helicopter Airbus Consortium
9Canadian Space Boeing Alenia
Agency Harris British Aerospace
9DoD Honeywell CASA
9European Space Lockheed/Martin DERA
A
Agency N th
Northrop-Grumman
G IAI
9Ministry of Defense Pratt and Whitney Matra
9NASA (all facilities) Raytheon Sys
Sys. Co
Co. Sagem
9Navy (US and others)Sikorsky Spar Aerospace
9NSA TRW SNECMA
Otros Toolboxes
Application Areas
• Technical Computing
– Mathematical computation, analysis, visualization, and algorithm
development
• Control Design
– Model-Based Design for control systems, including simulation, rapid
prototyping and code generation for embedded systems
prototyping,
• Signal Processing and Communications
– Model-Based Design for signal processing and communication systems
including
c ud g simulation,
s u at o , code generation,
ge e at o , and
a d verification
e cat o
• Image Processing
– Image acquisition, analysis, visualization, and algorithm development
• Test & Measurement
– Hardware connectivity and data analysis for test and measurement
applications
• Financial Modeling and Analysis
– Financial modeling, analysis, and application deployment
¿Qué es MatLab
MatLab??
MatLab es un programa interactivo para el análisis, diseño,
cálculo numérico y tratamiento de datos.
datos Contiene muchas
herramientas y utilidades que permiten además diversas
funcionalidades, como resolver problemas en matemática
aplicada, física, química, ingeniería, finanzas y muchas otras
aplicaciones. Está basado en un sofisticado software de
matrices para el análisis de sistemas de ecuaciones como
integrar en análisis numérico, cálculo matricial, proceso
de señal y visualización gráfica en un entorno completo,
completo su
elemento básico de trabajo son las matrices.
• Fundado
F d d en 1984
1984, con ffondos
d privados
i d
• Basado en Natick, Massachusetts
• 475 empleados (150+ Diseñadores)
• Crecimiento anual > 30%
• Fundadores en estado activo:
Jack Little, Cleve Moler, y Steve Bangert
• MATLAB es el software computacional para:
• Diseño
Di ñ d de productos
d t yd desarrollo
ll
• Investigaciones en la industria y académicas
• Educación técnica
• Más de 400,000 MATLAB usuarios a nivel mundial
• Usado en más de 100 países
The MathWorks, Inc. - The Company
MATLAB es un lenguaje de muy alto nivel diseñado
para cómputo
ó t técnico.
té i IIntegra
t en un mismo
i ambiente
bi t
muy fácil de usar cálculos, visualización y
programación.
g
En este ambiente los problemas y sus soluciones se
pueden expresar en notación matemática fácil de
entender.
Algunos de los usos más comunes de MATLAB son:
Cálculos matemáticos
Desarrollo matemático
M d l d y simulación
Modelado i l ió
Análisis de datos
Obtención de gráficas
g
Desarrollo de interfaces gráficas
The MathWorks, Inc. - The Company
MATLAB actualmente
t l t es un poderoso
d sistema
i t de
d
cálculo de operaciones matemáticas y programación
interactivo que integra un sistema de graficación
graficación.
El lenguaje de programación de MATLAB es más
poderoso que lenguajes como FORTRAN
FORTRAN, C
C, VISUAL
BASIC o PASCAL.
JJunto
t a MATLAB se h ha d
desarrollado
ll d una colección
l ió dde
herramientas que programadas en MATLAB pueden
realizar un conjunto de actividades en ciertas áreas de
ingeniería, las ciencias, finanzas y economía, por
mencionar
e co a a algunas.
gu as
Introducción al MATLAB
• MATLAB = MATrix LABoratory
• Es un entorno de computación que presenta facilidades para cálculo
matemático y visualización gráfica
• Dispone de toolboxes especializados:
Control Systems,
y Neural Netword, Optimization,
p etc.
CommandHistory.swf
¿Qué es Matlab?
Matlab = Matrix Laboratory.
Programa
g interactivo p
para realizar cálculos numéricos y
visualizaciones en el ordenador.
Programa comercial de The Mathworks Inc (Natick, MA).
http://www mathworks com
http://www.mathworks.com
Creado en California por Jack Little and Cleve Moler en
1984, para realizar cálculo matricial en ordenadores sin
necesidad de conocimientos de programación.
programación
Requisitos de Matlab
• Plataformas donde corre Matlab
– Sistema Operativo
Unix: Linux, solaris, HP-UX
MacOS
MS-Windows
– Arquitectura
RISC: Sparc
Sparc, HP
HP-PA
PA
PowerMac (G4, G5)
Intel Pentium(III, IV, Xeon, M), AMD (Athlon, Opteron)
Toolboxes
• Librerías especializadas en materias concretas. Incluyen:
– Manuales tipo tutorial (User's
(User s Guide) [HTML
[HTML, PDF]
– Referencia de las funciones (Reference Guide) [HTML, PDF]
– Programas de demo
– Aplicaciones completas listas para utilizar
Versiones de Matlab
• Matlab 5
– Gráficos de calidad (2D,
(2D 3D)
– PC: Corre bajo windows utilizando toda la memoria disponible
• Matlab 6
– Entorno de desarrollo con interfaz Java.
– Matrices 3D, estructuras, cell arrays
• Matlab 7
– Mejoras en el interfaz y mejora de Simulink
– Matlab compiler admite objetos
– Cálculo con enteros
• Matlab R2007a
• Matlab R2007b
• Matlab R2008a
MATLAB
Entorno de Desarrollo Integrado
Programación Digital
Ingeniería Civil
Introducción
odu ó
Elementos básicos del escritorio de Matlab
Current
directory
Command
Windows
Command
History
Entorno de desarrollo integrado del MATLAB
Arraque de Matlab
– Windows
Wi d
• Inicio/Programas/Matlab 7.0.1/Matlab 7.0.1
• icono de Matlab en el escritorio
• comando: matlab
• comando: matlab –r programa
- Unix
• comando: matlab
• En IIT comandos: matlab,
matlab matlab5,
matlab5 matlab6.1,
matlab6 1 matlab6.5,
matlab6 5
matlab7.0, matlabR2007
• Ejemplo útil: matlab6.5 -nodisplay
Entorno de desarrollo integrado del MATLAB
Entorno de desarrollo integrado del MATLAB
Características de Matlab
• Sistema abierto
Integra
g en un único ambiente de
• software:
Posee extensiones rutinas de cálculo, vis
(Toolboxes)
ualización
Permite y programación
incorporar nuevas
• Utiliza notación matemática standard
funciones para su uso en a
Colecciones
plicaciones
li i de funciones
particulares
ti l
para resolver problemas e
specíficos
íf
MATLAB Components
Visualization
Introducción
odu ó
Elementos básicos del escritorio de Matlab
Current
directory
Command
Windows
Command
History
Elementos básicos del escritorio de Matlab
Current
directory
Command
Windows
Command
History
Elementos básicos del escritorio
• Command Windows:
Donde se ejecutan todas las instrucciones y programas. Se escribe la
instrucción o el nombre del programa y se da a Enter.
• Command History:
Muestra los últimos comandos ejecutados en Command Windows. Se puede
recuperar el comando haciendo doble
• Current directory:
Situarse en el directorio donde se va a trabajar
• Help
((También se ppuede usar desde comand windows))
• Workspace:
Para ver las variables que se están usando y sus dimensiones (si son
matrices)
Introducción
Algunos comentarios sobre la ventana de comandos
• S
Se pueded mover por lla lí
línea d
de comandos d con llas tteclasl → ←.
Ir al comienzo de la línea con la tecla Inicio y al final con Fin. Con
Esc se borra toda la línea.
• help toolbox
>> help control system Æ da un listado de todas las funciones del
toolbox especificado y una descripción breve de cada función del
toolbox.
Introducción
Debugger
Set/Clear breakingpoint: Coloca o borra un punto de ruptura
en la línea en que está colocado el cursor
Clear all breakingpoints:: Borra todos los puntos de ruptura
MATLAB Prompt
Tells that MATLAB
is ready for your
command
MATLAB Layout (Diseño)
1 to 5 different windows can be selected to appear (View)
Current
directory
window
Command
History Command
window window
Al-Amer
Al Amer 2006 37
MATLAB shortcuts (Atajos)
New Open files SIMULINK Help
file
Al-Amer
Al Amer 2006 38
MATLAB como una calculadora
Command window
>> 39*4.4+5
ans =
176 6000
176.6000 The MATLAB command
Command window
The result.
Al-Amer
Al Amer 2006 39
MATLAB V
MATLAB: Variables
i bl
• Nombre de las variables:
• Comienzan con una letra
• Hasta 31 caracteres ( algunos usan19
o 21)
• Pueden contener letras, dígitos o
subguión_
• Es diferente las mayúsculas
y a las
minúsculas (“A” es distinto“a”)
MATLAB: Asignación
z Variable names:
z Starts with a letter
z Up
U tto 31 characters
h t ( some use 19 or 21)
z May contain letters, digits and underscore_
X=[3 5 6
X=[3.5 6.3,
3 33] X is a 1X3 matrix with elements 3
3.5
5,6
6.3
3
and 33. Commas or space are used to
separate the elements in a row
Y=[1 Y is a 2X1 matrix whose elements are 1
and 4.
4]
Y = [ 1 ; 4] Semicolon are used to indicate the end of
the row.
A=1:5 Equivalent to A=[1 2 3 4 5]
MATLAB: Declaraciones
MATLAB Statement Remarks
V=[[ 2 3 5
V ⎡ 2 3 5⎤
V =⎢ ⎥
3 3 8] ⎣ 3 3 8⎦
C=[1:3:11] C=[1
C [1 4 7 10]
Z=4\8 Z=2
Y=eye(2) ⎡1 0 ⎤
V =⎢ ⎥
⎣0 1 ⎦
W = zeros(2,3) ⎡0 0 0 ⎤
V =⎢ ⎥
⎣0 0 0 ⎦
MATLAB: Polinomios
A=magic(4)
A i (4)
sum(A) se obtienen las sumas de las columnas
sum(A') se obtienen las sumas de las filas
sum(diag(A))
(di (A)) se obtiene
bti lla suma d
de lla di
diagonall principal
i i l
sum(diag(rot90(A))) se obtiene la suma de la otra diagonal
fliplr(A)
p ( ) ==> sum(diag(fliplr(A)))
( g( p ( )))
Matemática simbólica en MATLAB
• MATLAB cuenta con un toolbox de matemática
simbólica, que permite realizar operaciones de cálculo
sin el uso de valores numéricos
Cálculo Diferenciación, integración, limites, sumatorias,
series de Taylor
Algebra lineal Inversas, determinantes, autovalores, formas
canónicas de matrices simbólicas
Simplificación Métodos de simplificación de expresiones
matemáticas
Solución de Soluciones simbólicas y numéricas a ecuaciones
ecuaciones algebraicas y diferenciales
Transformadas Fourier, Laplace, z-transform, y las
correspondientes transformadas inversas
Matemática simbólica en MATLAB
• Ejemplo
>> X = 1 + 1, Y = 2 * 2; Z = sin(pi/2)
X =
2
Z =
1
Operadores aritméticos
- Suma, A + B suma los elementos de A a los correspondientes de
+ B. A y B deben tener el mismo tamaño. Un escalar se le puede
sumar a una matriz de cualquier tamaño
- Resta, A – B resta los elementos de A a los correspondientes de
- B. A y B deben tener el mismo tamaño. Un escalar se le puede
restar a una matriz de cualquier tamaño
-Multiplicación de matrices, C = A * B es el producto algebraico
lineal de las matrices A y B. Para matrices, el número de
* columnas de A debe ser igual al número de filas de B. Un escalar
se puede multiplicar a una matriz de cualquier tamaño
Introducción a MATLAB
Operadores aritméticos
- B/A es lo mismo que B * A-1 ; A-1 es la matriz inversa de A, y
/ debe ser n x n
- A\B, se conoce como división por la izquierda, si A es
cuadrada, A\B es casi igual inv(A)*B, excepto por la forma de
ser calculado.
\ - Si B es un vector columna de n elementos y A es n x n,
entonces X = A\B es la solución al sistema AX = B por el
método de eliminación de Gauss
- Potencia de matrices
matrices. X^p es X elevado a la potencia de p
p,
si p es un escalar.
- Si p es un entero, la potencia se calcular elevando al
^ cuadrado repetidas veces
veces. Si el entero es negativo
negativo, se
calcula primero la inversa de X
- Si X y p son matrices, MATLAB arroja un error
Ventana de
Comandos
Workspace
Historial de Comandos
MATLAB
Directorio: donde MATLAB tien
Edit: Editor donde escribes tus algoritmos es almacenado tus algoritmos.
• El archivo se g
guarda ((*.m))
nombre.m
• Para correrlo tecla F5
Barra de Menú Æ Debug Æ Run
IMPORTANTE:
el directorio debe estar ubicado donde se
encuentra el archivo (nombre
(nombre.m)
m)
SIMULINK
>> simulink
Simulación
Botón para
simular
Programación Básica
Step
Editor: Hoja de trabajo donde (dentro de
cada
podrás desarrollar algoritmos funcion)
Run
Debug
Instrucciones
introductorias para
cualquier algoritmos
clc; Eliminar
li i todas
d las
l figuras
fi generadas
d anteriormente
i
Secciones de la ayuda
• Syntax
• Description
p
• Arguments
• Examples
• Algorithm
• Limitations
• See Also
• References
Ayuda on-line
• Página oficial de soporte
sopo te
http://www.mathworks.com/support/
– Documentación
– Soluciones a problemas ordenadas por categorías
í
– Ejemplos de código
– Noticias
– Actualizaciones
• Matlab Central
– Newsgroups
– File Exchange
– Link Exchange
• Soporte técnico personal por correo electrónico
– Utilizar un código de licencia válido
– Describir la plataforma
– Acotar el problema
Fundamentos del MATLAB
• Mandatos básicos
• Variables • Introducción
• Funciones • Números y operaciones
• Vectores y matrices
p j
• Complejos • Operaciones con vectores y matrices
• Vectores • Funciones para vectores y matrices
• Polinomios
• Matrices • Gráficos 2D y 3D
• Polinomios • Programación
• Análisis numérico
• Gráficas
• Programación
Los elementos básicos del Matlab, como cualquier otro
l
lenguaje
j d
de programación,
ió son: constantes,
t t variables,
i bl
operaciones, expresiones y funciones.
Constante numéricas:
• Números enteros: 2 35 -48
• Números reales: 2. -35.2 48.45
• Máximo de 16 cifras significativas
• Utilizando la letra E a continuación de un nº con punto
decimal [2.2250e-308 1.7e+308].
• Números
Nú complejos:
l j 2+3i 4*j i,j=(-1)
i j ( 1)½
Operaciones aritméticas elementales:
Suma: + Multiplicación: * Exponenciación: ^
Resta: - División: /
Primero exponenciaciones, luego divisiones y multiplicaciones
por último sumas y restas.
Variables:
es la
l etiqueta
ti t que identifica
id tifi una porción
ió de
d memoria;
i
Matlab diferencia entre mayúsculas y minúsculas
Para ver las variables definidas en un instante determinado se
teclea:
>> who
o bien
>> whos
Para eliminar alguna variable se ejecuta
>> clear
l variable1
i bl 1 variable2
i bl 2
Expresiones numéricas:
son un conjunto de números, funciones y variables
previamente definidas, relacionados todos ellos por operadores
aritméticos. Si una expresión es demasiado larga se indica
mediante ...
Formatos:
Fo matos
por defecto MATLAB tiene formato corto pero se puede elegir
entre los siguientes formatos.
• >> format long (14 cifras significativas)
• >> format short (5 cifras significativas)
• >> format short e ((notación exponencial)
p )
• >> format long e (notación exponencial)
• >> format rat (aproximación racional)
startup.m
p fichero de arranque
q al ejecutar
j matlab.
Para guardar en un fichero los comandos que se ejecutan en
una sesión se pone
>> diary nombre_fichero
nombre fichero
...
>> diary off
Variables
• Definición
f ( )
(=)
>> A=1
>> B=3; Æ No muestra la operación (;)
>> C=A+B
• Matrices:
>> A=[1 2 3 4 5 6] Æ Matriz 1x5
>> B=[1,2,3,4,5,6] Æ Matriz 1x5
>> C=[1 2 3;4 5 6] Æ Matriz 2x3
>> D=C’ Æ (Matriz Transpuesta) Matriz 3x2
Números y operaciones
• Suma: +, Resta -
• Multiplicación: *, División: /
• Potencias: ^
Funciones de Matlab:
• exp(x), log(x), log2(x) (en base 2), log10(x) (en base 10), sqrt(x)
• Operadores lógicos
& andd
| or
~ negación lógica
Números y operaciones
Datos numéricos:
• No hace falta definir variables enteras, reales, etc. como en otros lenguajes
• Números enteros: a=2
• Números reales: x=-35.2
• Máximo de 19 cifras significativas
• 2.23e-3=2.23*10-3
• Precisión y formatos: Por defecto tiene un formato corto, pero se pueden usar otros
>> format long (14 cifras significativas)
>> format short ((5 cifras significativas)
g )
>> format short e (notación exponencial)
>> format long e (notación exponencial)
>> format rat (aproximación racional)
• Constantes características:
pi=π, NaN (not a number, 0/0), Inf=∞.
• Números complejos:
i=sqrt(-1) (sólo se puede usar i o j), z=2+i*4, z=2+4i
• Indeterminación: NaN
• Cadenas de caracteres
» 'Esto es una cadena'
» Esto no
Funciones
• ezplot (x3+1)/x 0
-2
-4
-6
-2 0 2
x
Números Complejos
• 2D: plot()
p ()
crea un gráfico a partir de vectores con escalas lineales sobre ambos ejes,
• hold on:
permite pintar más gráficos en la misma figura (se desactiva con hold off)
• g
grid
activa una cuadrícula en el dibujo. Escribiendo de nuevo grid se desactiva.
• 2D polar(ángulo,r)
2D: l (á l ) para pintar
i t en polares
l
• 2D: fill(x,y,’opción’) dibuja una curva cerrada y la rellena del color que se indique
en ‘opción’
• axis([x0
i ([ 0 x1
1 y0
0 y1])
1]) (2D),
(2D) axis([x0
i ([ 0 x1
1 y0
0 y1
1 z0
0 z1])
1]) (3D)
• axis
i off:
ff desactiva
d ti llos etiquetados
ti t d d de llos ejes
j d desapareciendo
i d llos ejes,
j sus etiquetas
ti t y lla malla,
ll
axis on: lo activa de nuevo
• axis equal: los mismos factores de escala para los dos ejes
• axis square: cierra con un cuadrado la región delimitada por los ejes de coordenadas actuales.
• title('título')
titl ('tít l ') añade
ñ d un tít
título
l all dib
dibujo.
j P Para iincluir
l i en ell ttexto
t ell valor
l d de una variable
i bl
numérica es preciso transformarla mediante :
• int2str(n)
( ) convierte el valor de la variable entera n en carácter
• num2str(x) convierte el valor de la variable real o compleja x en carácter.
Ejemplo: title(num2str(x))
• Guardar gráficos: Save (botón File en ventana gráfica): Se crea un fichero .fig que
podrá volver a editarse y modificarse
0.6
0.4
0.2
−0.2
−0.4
−0.6
−0.8
−1
0 π/2 π 3π/2 2π
Gráficos 2D y 3D
• pcolor(Z)
l (Z) dibuja
dib j proyección
ió con sombras
b d
de color
l sobre
b ell plano
l (l
(la gama d
de color
l
es está en consonancia con las variaciones de Z)
• contour(X,Y,Z,v)
contour(X Y Z v) y contour3(X,Y,Z,v)
contour3(X Y Z v) generan las líneas de nivel de una superfici
e para los valores dados en v. Para etiquetar las líneas, primero cs=contour(Z) (p
ara saber los valores del contorno) y luego clabel(cs) o directamente clabel(cs,v)
Gráficos 2D y 3D
• Manipulación de gráficos
• view(azimut, elev), view([xd,yd,zd])
• rotate(h,d,a) o rotate(h,d,a,o), ‘h’ es el objeto, ‘d’ es un vector que indica l
a dirección, ‘a’ un ángulo y ‘o’ el origen de rotación
• En ventana g gráfica: View ((camera toolbar))
Gráficos 2D y 3D
Transformación de coordenadas
Creación de películas
• getframe se emplea para guardar todas esas imágenes. Devuelve un vector column
a con la información necesaria ppara reproducir
p la imagen
g q que se acaba de represent
p
ar, por ejemplo con la función plot. Esos vectores se almacenan en una matriz M.
9 10
>> y = 4 - x + 2.5*x.^2 200
y =
150
Columns 1 through 6
y
5.5000 12.0000 2 100
3.5000 40.0000 61
.5000 88.0000
50
Columns 7 through 10
119.5000 156.0000 19 0
7.5000 244.0000 1 2 3 4 5 6 7 8 9 10
x
0.5
• y-plots 0
yy=sin([0:0.1:2*pi])
([ p ])
plot(y) -0.5
-1
0 20 40 60
• xy-plots
yp
x=[0:0.1:2*pi] 1
y=sin(x) 0.5
plot (x,y) y could be matrix as well!
0
• plot formats -0.5
y1=sin(x)
y2=cos(x)
y2 cos(x) -1
1
0 2 4 6
plot (x,y1,’o’,x,y2,’+’) see help plot
1
• lin log and log-log
lin-log log log plots 0.5
semilogx,semilogy,loglog see help
0
• Axes, labels
-0.5
05
axis, xlabel, ylabel see help
-1
0 2 4 6
Gráficos
• Comando contour, para
funciones de dos variables
Curvas de nivel de la función f
5
>> [x, y] = meshgrid(-5:0.1:5)
-0.1
; 4
>> f = -1./(1 + 2*(x - 1.5).^2 -0.2
3
+ (y… + 1).^2) - 0.6./(1
/ +
-0.3
(x + 1).^2… + (y - 1.5).^2) 2
; -0.4
1
-0.5
>> contour(x,y,f,50) 0
y
-0.6
-1
>> colorbar -0.7
-2
-0.8
08
>> title('Curvas de nivel de l -3
a función f') -0.9
-4
>> xlabel('x') -1
-5
>> ylabel(
ylabel('y'))
y )) -5
5 0 5
x
>> hold on
>> plot([-3 -1],[3 1],'o-')
Gráficos
• Comando surf,, para
p
funciones de dos
variables Grafico 3D de la función f
-0.1
>> [x
[x, y] = meshgrid(
meshgrid(-5:0.1
5:0 1
:5); 0 -0.2
• Function-files
• There
Th are two
t types
t off MATLAB programs
Argumentos Argumentos
de salida de entrada
Programas
• Comandos útiles para iniciarse en la programa en MATLAB:
f i f
fprintf Permite
P i que ell programa escriba
ib iinformación
f ió en lla
pantalla (datos, resultados, mensajes)
Programas
if else end
if,else, Estor tres comandos permiten tomar decisiones y tomar
caminos alternativos durante la ejecución del programa
dependiendo del cumplimiento de una condición
if condición
instrucciones
else
instrucciones
end
for, end Estas instrucciones permiten construir ciclos o lazos
con un número de iteraciones previamente establecido
f i=1
for 1:10
10
instrucciones
end
Programas
• Ficheros de función: para crear funciones propias. Son llamados por los ficheros de
p g
programa.
• La primera línea es ejecutable y empieza por la palabra function de la forma:
function arg_salida=funcion_nombre(arg_entrada, parametros)
• El fichero se debe guardar como funcion_nombre.m
• Ficheros de función: p
para crear funciones p
propias.
p Son llamados p
por los ficheros de
programa.
• La primera línea es ejecutable y empieza por la palabra function de la forma:
function arg_salida=funcion_nombre(arg_entrada, parametros)
• El fichero se debe guardar como funcion_nombre.m
• Comandos de entrada y salida:
• input: permite introducir datos: ae=input(‘Teclee valor de a’);
• disp: muestra un texto por pantalla: disp(‘El algoritmo no ha convergido’)
Programación
Funciones de funciones
• fzero(‘nombre_funcion’,x0): Calcula el cero de una función más próximo al valor de
la variable x0
Funciones de funciones
• fzero(‘nombre_funcion’,x0): Calcula el cero de una función más próximo al valor de
la variable x0
• ffminsearch(‘funcion’,x0):
(f ) calcula el mínimo relativo de una función
f más próximo a x
0
• fminbnd(‘funcion‘,a,b):
fminbnd( funcion ,a,b): calcula un mínimo de la función en el intervalo [a,b]
Programación
Estructuras de control condicionadas
Bucles
• Operaciones lógicas:
• > <,
>, < >=,<=,==
> < (igual)
(i l) for k=n1:incre:n2
• | (or), &(and)
end
• ~ (no), ~= (no igual)
for k=vector_columna
if
if end
if elseif
else while
end else
end end
end
Control de Flujo: if
Control de Flujo
Control de Flujo: switch
Control de Flujo: try
Logical expressions
• Relational operators (compare arrays of same sizes)
== (equal to) ~= (not equal)
< (less than) <= (less than or equal to)
> (g
(greater
eate tthan)
a ) >= (g
(greater
eate tthan
a oor equa
equal to)
• Logical operators (combinations of relational operators)
& (and)
| (or)
~ (not)
• Logical functions
xor if (x>=0)
(x> 0) & (x<=10)
(x< 10)
isempty disp(‘x is in range [0,10]’)
anyy
else
all
disp(‘x is out of range’)
end
Flow control - selection
• The if-elseif-else construction
if <logical expression>
<commands>
elseif <logical expression>
if height>170
<commands>
disp(’tall’)
else
elseif height<150
<commands>
disp(’small’)
end
else
disp(’average’)
end
Flow control - repetition
• Repeats a code segment a fixed number of times
for index=<vector>
index <vector>
<statements>
end
The <statements> are executed repeatedly.
At each iteration,, the variable index is assigned
g
a new value from <vector>.
for k=1:12
kfac=prod(1:k);
disp([num2str(k),’ ‘,num2str(kfac)])
end
Example – selection and repetition
fact.m
function y
y=fact(n)
% FACT – Display factorials of integers 1..n
if nargin < 1
error(’No
error( No input argument assigned
assigned’)
)
elseif n < 0
error(’Input must be non-negative’)
elseif abs(n
abs(n-round(n))
round(n)) > eps
error(’Input must be an integer’)
end
for k=1:n
kfac=prod(1:k);
disp([num2str(k),’ ’,num2str(kfac)])
y(k)=kfac;
end;
d
Aplicaciones a la Ingeniería
Métodos Numéricos
Aplicados a la Ingeniería
Ejemplo
• Elaborar un p program
g en MATLAB p program
g p
para
calcular la raíz de la siguiente ecuación:
f ( x ) = 2 cos( x ) − 1
Result
X=
% program 1 performs four iterations of 1 1111
1.1111
% Newton’s Method X=
1.0483
X 7
X=.7 X=
for i=1:4 1.0472
X=
X=X – (2*cos(X)-1)/(-2*sin(X))
( ( ) )/( ( )) 1.0472
end
Alternativa 1
Alternativa 2
Alternativa 3
>> rqroots
E t quadratic
Enter d ti coefficient
ffi i t a: 1
Enter quadratic coefficient b: 5
Enter quadratic coefficient c: 6
Value of first quadratic root:
-2
Value of second qquadratic root:
-3
>> rqroots
Enter quadratic coefficient a: 1
Enter quadratic coefficient b: 4
Enter quadratic coefficient c: 8
Value of first quadratic root:
-2.0000+ 2.0000i
Value of second quadratic root:
-2.0000-
2 0000 2.0000i
2 0000i