Nothing Special   »   [go: up one dir, main page]

Matlab CC

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 151

Programación Digital en Ingeniería

Departamento Académico de Ingeniería


Escuela Profesional de Ingeniería Civil
Programación Digital
en Ingeniería
Ingeniería Civil – FIMGC - UNSCH
cristiancastropcristiancastropcristiancastropcristiancastropcristiancastropcristiancastrocristiancastropcristiancastro

ING. CRISTIAN CASTRO P.



()69(;690
; 6 ºº ' 
Fundamentos de
Programación
P g Digital
D g en Ingeniería
I g
Programación Digital
Ingeniería Civil
Objetivo
j de la práctica
p
• Introducir el programa de cálculo científico Matlab
• Familiarización de los comandos para:
• Representación y cálculo matricial
• Generación de señales y su visualización
• Creación de M-files
• Almacenamiento de resultados de una sesión e ingreso de datos
en el espacio de trabajo
• Usos típicos del MATLAB
• Cálculo numérico
• Desarrollo de algoritmos
• Modelado, simulación y desarrollo de prototipos
• Análisis y visualización de datos
• Construcción de gráficas
• Desarrollo de aplicaciones en áreas científicas y tecnológicas
Seminario de MatLab Básico II
Programación Digital
Ingeniería Civil
Sitio Oficial
• www.mathworks.com
• Existe mucha información y material.

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

Blocksets Simulink RTW

Toolboxes MATLAB Compiler


Productos de MathWorks
Language General Applications Signal Processing

MATLAB Optimization Signal Processing


Spline
Image Processing DSP Blockset
MATLAB Compiler
St ti ti
Statistics Mapping W
Wavelets
l t
Symbolic Math Power System Block Set Communications
NAG Fuzzy Logic
Database Financial Toolbox
Partial Differential Eqns
Neural Network

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.

El nombre MATLAB proviene de la contracción de los términos


MATrix LABoratory,
LABoratory fue inicialmente concebido para propor-
cionar fácil acceso a las librerías LINPACK y EISPACK.
MATLAB es un ambiente de técnico-informático integrado.
Sus capacidades incluyen:
• Computación matemática
• G áfi
Gráficos y visualización
i li ió
• Análisis de datos
• Desarrollo de algoritmos
• Simulación y modelamiento
• Programación y desarrollo de aplicaciones

“Para los propósitos de los científicos e ingenieros, MATLAB tiene


llos más
á grandes
d rasgos y es ell mejor
j programa desarrollado
d ll d de
d su
clase.” - IEEE Spectrum, Software Review, February 1997
The MathWorks, Inc. - The Company

• 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

• Es un lenguaje de alto nivel

• 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

• Se pueden recuperar instrucciones con las teclas ↓↑

• 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.

• Se puede cortar la ejecución de un programa con Ctrl+C


• help
p funcion
>> help tf Æ da una descripción de la función y muestra ejemplos de
cómo usarla.

• 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

Step: Avanza un paso en el programa

Step in: Avanza un paso en el programa y si en ese paso se


llama a una función, entra en dicha función

Step out: Avanza un paso en el programa y si en ese paso se


llama a una función, entra en dicha función
Continue:
C ti C ti
Continua ejecutando
j t d h hasta
t ell siguiente
i i t punto
t dde
ruptura
Quit debugging: Termina la ejecución del debugger
Introducción a la programación en MATLAB
Ventana Descripción
Command Window Entrada de comandos a ser procesados por MATLAB

Command History Listado de los comandos utilizados con anterioridad

Launch Pad Listado de acceso a documentación, demos, etc.

Current Directory Guía para la administración de archivos y directorios

Help Guía para el acceso y visualización de documentación on-line

Workspace Guía que permite acceder a variables de MATLAB

Array Editor Guía que permite modificar el contenido de variables

Editor Debugger Editor de textos para archivos de MATLAB


Run MATLAB
From Start Menu
• Select Programs
• Select MATLAB

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_

z Case sensitive ((“A”A is not the same as “a”)


a)
» A=2.3
A 23
A=
2 3000
2.3000
Th MATLAB command
The d

This iis the


Thi h result
l off the
h
MATLAB statement
MATLAB: Asignación Escalar

» A=2.3 this creates a variable “A”


A= andd sett its
it value
l tto 2
2.3
3
2.3000

» A=[2.3] The square braces [ ] are


A= used
d tto define
d fi matrices.
ti
2.3000 We can use them for
scalars too.
MATLAB: Vector Fila

The square braces are


used to define a matrix

» X=[2,3 7 ] Space or comma are used


to separate elements in the
X= same row
2 3 7
MATLAB: Vector Columna

The square braces are


used to define a matrix

» X=[2;3 ; 7 ] semicolon are used to end a


row.
X= You can also use ENTER to
2 end a row
3
7
MATLAB: Declaraciones
MATLAB Statement
St t t R
Remarks
k
C=5.66 C is a scalar

C=[5.66] An alternative way

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

roots(p) Find the roots of a


polynomial whose
coefficients are given in p
roots([1 ]) Find the roots of
([ 4 2.1])
x2+4x+2.1=0
polyval(p,v) Evaluate the ppolynomial
y
whose coefficients are
given in p at x=v
Ejemplo: Matriz Mágica
A =
16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1

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

• Primero es necesario declarar las variables simbólicas


• >> syms x y
• Luego se puede realizar operaciones y construir las funciones
funciones, por
ejemplo
• >> f = x^2 + 3.4*y -20
• D i d d
Derivada de f con respectot ax
• >> diff(f,x)
• ans =
• 2*x
• Integral de f entre 0 y pi
• >> int(f
int(f,0,pi)
0 pi)
• ans =
• 1/3*pi^3+17/5*y*pi-20*pi
Introducción a MATLAB
• Línea de comandos: Es un conjunto de códigos MATLAB,
separados por coma (,) o punto y coma (;) que se ejecutan
secuencialmente según aparecen en la línea una vez que se pulsa
l tecla
la t l ENTER

• Ejemplo
>> X = 1 + 1, Y = 2 * 2; Z = sin(pi/2)
X =
2
Z =
1

• Una línea de comandos puede ser editada y modificada usando las t


eclas de desplazamiento ← ↑ → ↓
Introducción a MATLAB
• Caracteres especiales: A algunos símbolos se ha asignado una
función particular para facilitar la escritura de instrucciones, los
de uso más común son los siguientes:
[] - definir input de vectores y matrices
- asignar precedencia en operaciones aritméticas
() - referir elementos de matrices
- pasar argumentos a funciones o subprogramas
= - asignar valores
‘ - indica transposición de matrices
- dentro de [ ] para separar líneas
; - separar comandos
- suprimir impresión
% - indica comentario, el texto que le sigue es ignorado
: - pa
para
a indicar
d ca iteraciones
e ac o es o ge
generar
e a vectores
ec o es e
en secue
secuencias
c as
Introducción a MATLAB
• Operadores: Ya que MATLAB está diseñado para trabajar con
matrices, todos los operadores realizan operaciones con matrices,
de modo que un escalar puede verse como una matriz 1 x 1 y un
vector como una matriz de 1 x n ó de n x 1 según sea el caso

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

' - A' es la transpuesta de A


Introducción a MATLAB

Operadores aritméticos de Arreglos de datos


- A .* B, es la multiplicación elemento por elemento de los
.* arreglos A y B, los cuales deben tener el mismo tamaño
- A .// B,
B es la matriz con elementos A(i
A(i,j)
j) / B(i
B(i,j).
j) A y B deben
.// tener el mismo tamaño, al menos que uno sea un escalar
- A .\ B, es la matriz con elementos B(i,j) / A(i,j). A y B deben
.\ tener el mismo tamaño, al menos que uno sea un escalar
- A .^B, es la matriz con elementos A(i,j) elevados a la
.^ potencia de B(i,j). A y B deben tener el mismo tamaño, al
menos que uno sea un escalar
MATLAB
Estructuras Básicas de Datos
Programación Digital
Ingeniería Civil
Floating point numbers in
Matlab
• IEEE Standard for double precision numbers
s e f
1 2 12 13 64

• Round-off: eps = 2-52


• Underflow: realmin = 2-1022
• Overflow: realmax = ((2-eps)) ·21023
Entorno de MATLAB
Editor
Simulink
Directorio

Ventana de
Comandos

Workspace

Historial de Comandos
MATLAB
Directorio: donde MATLAB tien
Edit: Editor donde escribes tus algoritmos es almacenado tus algoritmos.

Workspace: Espacio donde permite ob


servar las variables definidas en el co Command Window: Espacio donde puede escribir
mando o mediante un algoritmo.
algoritmo comandos como: hacer calculos (suma, resta, etc),
desarrollar graficas (figuras) llamar funciones de
ayuda (help).
Directorio: donde MATLAB tienes
almacenado tus algoritmos. Help:
p ((F1)) Manual de Ayuda
y ppara utilizar todos los rec
ursos que tiene MATLAB

Command History: Espacio donde puede observar los


comando hechos anteriormente. Ademas comandos se
mantienen almacenados a traves del tiempo.
Gráficas en MATLAB
• plot(X,Y) Æ gráfico lineal
>> x=0:0.1:10;
>> plot(x,sin(x))
plot(x sin(x))
Gráficas en MATLAB
• plot3(X,Y,Z) Æ Gráfico en 3D
>> t = 0:pi/50:10*pi;
>> plot3(sin(t),cos(t),t);
( () () )
EDITOR

>> edit Æ Abre el editor de MATLAB

• El archivo se g
guarda ((*.m))
nombre.m
• Para correrlo tecla F5
Barra de Menú Æ Debug Æ Run

• Para correrlo desde MATLAB


>> nombre.m

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

Nueva hoja Open “Find”:


Find : Busqueda Debugger and “Run”.
Run .
“files” Revisa el procedimiento
de trabajo de algun “string”
del algoritmo
Programación Básica
Básica:: Lógica

Instrucciones
introductorias para
cualquier algoritmos

clear all; Borra del comando y de workspace las variables


generadas anteriormente
close all Eliminar todas las figuras generadas anteriormente

clc; Eliminar
li i todas
d las
l figuras
fi generadas
d anteriormente
i

warning off all En el comando no aparecerá las adventencias que


reclame MATLAB al correr el algoritmo
Comandos
d bá
básicos
i

• ver Î muestra la versión, el código de licencia y


las toolboxes disponibles
– Licencia 46431: pprofesores (p
(para investigación
g y proyectos)
p y )
– Licencia 205966: aulas (sólo para docencia)
• whos Î lista todas las variables disponibles
• save archivo Î guarda todas las variables
• save archivo a b Î guarda las variables a y b
• load archivo Î carga variables
• quit Î salir
• Ayuda en modo texto mediante comandos
– help función Î muestra la ayuda de una función
– help Î para las funciones como para desarrollos propios
• Ayuda de tipo gráfico
Ayudas
d yd
documentación

Ejemplo de consulta

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)

Variables predefinidas en Matlab:


i = (-1)½ pi = π Inf= ∞ NaN= cálculos indefinidos
eps = < nnº que + otro nnº=nº
=n coma flotante 2.22e
2 22e-16
16
date = valor de la fecha actual
rand = genera números aleatorios [0 1]
realmin = <nº+ realmax >nº+
realmax=
Funciones de matlab:
nombre(argumento)
b ( t )
• sqrt (x) raiz cuadrada
• abs(x) módulo de x
• conj(z) conjugado de un complejo
• real(z), imag(z) parte real e imaginaria de z
• exp(x)
p( ) calcula ex, siendo x real o complejo
p j
• sin(x) asin(x) [-π/2 π/2] cos(x) acos(x) [0 π] tan(x)
• atan(x) [-π/2 π/2] angle(z) log(x) (en base e) log10(x)
• rats(x) rem(x,y) resto de x/y round(x) sign(x)
Comandos de ayuda:
• help
• lookfor
• what ficheros .m y .mat del directorio actual
• dir ficheros del directorio actual
• type nombre_fichero
nombre fichero Muestra el contenido del fichero
• delete nombre_fichero Borra el fichero
• cd cambia de directorio
• pwdd indica
d ell directorio
d actuall
• which nombre_fichero india el directorio donde esta
• ! Abre una ventana de MSDOS que se cierra cuando
volvemos a Matlab

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

Operaciones aritméticas elementales:

• Suma: +, Resta -

• Multiplicación: *, División: /

• Potencias: ^

• Orden de prioridad: Potencias, divisiones y multiplicaciones y por último


sumas y restas. Usar () para cambiar la prioridad

• Comentarios sobre el editor: ‘;’ para que no escriba %, para comentar


líneas, ‘…’ para continuar una línea

• No se pueden dejar espacios en blanco en el nombre de un fichero

• Funcionamiento de Debugger: run, breakpoint, step


Números y operaciones

Funciones de Matlab:

• exp(x), log(x), log2(x) (en base 2), log10(x) (en base 10), sqrt(x)

• Funciones trigonométricas: sin(x), cos(x), tan(x), asin(x), acos(x),


atan(x), atan2(x) (entre –pi
atan(x) pi y pi)

• Funciones hiperbólicas: sinh(x), cosh(x), tanh(x), asinh(x), acosh(x),


atanh(x)

• Otras funciones: abs(x) (valor absoluto), int(x) (parte entera), round(x)


(redondea al entero más próximo), sign(x) (función signo)

• Funciones para números complejos: real(z) (parte real), imag(z) (parte


imaginaria), abs(z) (módulo), angle(z) (ángulo), conj(z) (conjugado)
• Operadores relacionales
< menor que
> mayor que
<= menor o igual que
>= mayor o igual que
== igual que
~= distinto que
Si una comparación se cumple el resultado es 1 (true), mientras que si
no se cumple es 0 (false)
(false).

• 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)

Ver en menú de File: Preferences → Command Windows


Preferences (en el menú de File)
Números y operaciones
DATOS NUMÉRICOS:

• Son sensibles a las mayúsculas: x=5, X=7

• Información sobre variables que se están usando y sus


dimensiones ((si son matrices):
) Workspace.
p También tecleando
>> who
>> whos (da más información)

• Para eliminar alguna variable se ejecuta


>> clear variable1 variable2

• Si se quieren borrar todas las variables: >> clear

• 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

• Cuidado con no usar luego ‘i’ como contador en un bucle


t b j d con complejos.
trabajando l j
Mandatos básicos
» help, help tema
» dir
» diary fichero
• Comentarios: %
• Edición de líneas de comando
• Cortar y Pegar
Variables
• Asignar • Guardar
» a = 3, b = 4 » save fichero
• Listar • Recuperar
» ans
» load fichero
» who
» whos
• Eliminar
» clear b
Constantes y cadenas

• Número π: pi • Formatos numéricos


• Unidad imaginaria: i,j » format long
• Precisión: eps » format short

• Infinito: Inf » format rat

• Indeterminación: NaN
• Cadenas de caracteres
» 'Esto es una cadena'
» Esto no
Funciones

• help elfun (x3+1)/x


‹ sin ‹ asin
8
‹ cos ‹ acos 6
‹ tan ‹ atan 4
‹ exp ‹ log 2

• ezplot (x3+1)/x 0
-2
-4
-6
-2 0 2
x
Números Complejos

• Forma binómica • Módulo y argumento


» z = 3 + 4i » abs(z)
• Parte real e imaginaria » angle(z)
» real(z) • Representación gráfica
» imag(z) » plot(z,'*')
• C
Complejo
l j conjugado
j d » compass(z)
( )
» conj(z)
MATLAB
Desarrollo de Gráficos
Programación Digital
Ingeniería Civil
Crear gráficos
Crear/ajustar gráficos
Selección del tipo de gráfico
Tipos de gráficos (1D, 2D)
Tipos de gráficos (>=3D)
Crear g
gráficos con plot
p
Subplots: varios gráficos por figura
Gráficos de superficies
Superficies especiales
Iluminación y Punto de vista
Retoque de gráficos desde menú
Creación de animaciones
Gráficos 2D y 3D
Funciones gráficas 2D y 3D elementales

• 2D: plot()
p ()
crea un gráfico a partir de vectores con escalas lineales sobre ambos ejes,

>> plot(X,Y,’opción’) (opción: permite elegir color y trazo de la curva)

• 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: loglog() escala logarítmica en ambos ejes,


semilogx(): escala lineal en el eje de ordenadas y logarítmica en el eje de abscisas
,
semilogy(): escala lineal en abscisas y logarítmica en ordenadas
G áfi
Gráficos 2D y 3D
Funciones gráficas 2D y 3D elementales

• 2D: subplot(n,m,k) subdivide una ventana gráfica en m particiones horizontales y


n verticales y k es la subdivisión que se activa.

• 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’

• 3D: plot3 es análoga a su homóloga bidimensional plot.


» plot3(X,Y,Z, ’opción’)
Gráficos 2D y 3D
Elección de la escala de los ejes

• 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 auto: devuelve la escala a la de defecto

• 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.

• Para elegir las etiquetas que aparecen en los ejes:

• set(gca, ‘XTick’,-pi:pi/2,pi) %gca:get current axis


• set(gca, ‘XTicklabel’,({‘-pi’,’-pi/2’,0,’pi/2’,’pi’})
Gráficos 2D y 3D
Funciones para añadir títulos a la gráfica

• 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))

• xlabel( texto ) añade una etiqueta al eje de abscisas.


xlabel(‘texto’) abscisas Con xlabel off desaparece.
desaparece
Lo mismo ylabel(‘texto’) o zlabel(‘texto’)

• text(x,y,'texto') introduce 'texto' en el lugar especificado por las coordenadas x e y.


Si x e y son vectores
vectores, el texto se repite por cada par de elementos
elementos.

• gtext('texto') introduce texto con ayuda del ratón.


Gráficos 2D y 3D
Funciones de Matlab para gráficos 2D y 3D

• Imprimir gráficos: Print (botón File en ventana gráfica)

• Guardar gráficos: Save (botón File en ventana gráfica): Se crea un fichero .fig que
podrá volver a editarse y modificarse

• Exportar gráficos: Export (botón File en ventana gráfica)

• figure(n): Llamar una nueva figura o referirnos a una figura ya hecha

• close all borra todas las figuras,


f close(figure(n))
(f ( )) una en concreto
Gráficos 2D y 3D
Representar las funciones:
y1= sin(3 π x)/ex
y2=cos(3π x)/ex
con x variando entre 0 y 3 π,obteniendo una única figura de la forma:
1
e−xsin(3πx)
−x
e cos(3πx)
0.8

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

Representación gráfica de superficies

• Creación de una malla a partir de vectores [X, Y]


Y]=meshgrid(x,y)
meshgrid(x,y)

• Gráfica de la malla construida sobre la superficie Z(X,Y): mesh(X,Y,Z),


meshc(X,Y,Z) (dibuja además líneas de nivel en el plano z=0)

• Gráfica de la superficie Z(X,Y): surf(X,Y,Z), surfc(X,Y,Z)

• 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

Representación gráfica de superficies


• Diferentes formas de representar los polígonos coloreados:
• shading flat: sombrea con color constante para cada polígono.
• shading interp: sombrea calculado por interpolación de colores entre los
vértices de cada polígono
• shading
h di faceted:
f t d sombreado
b d constante
t t con líneas
lí negras superpuestas
t
(opción por defecto)

• hidden off (desactiva la desaparición de líneas escondidas),


escondidas) hidden on (lo activa)

• 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

• [ang,rad]=cart2pol(x,y), de cartesianas a polares


• [ang,rad,z]=cart2pol(x,y,z), de cartesianas a cilindricas

• [x,y]=pol2cart(ang,rad), de polares a cartesianas


• [x,y,z]=pol2cart(ang,rad,z), de cilindricas a cartesianas

• [angx,angz,rad]=cart2sph(x,y,z), de cartesianas a esfericas


• [x,y,z]=aph2cart(angx,angz,rad), de esfericas a cartesianas
Gráficos 2D y 3D

Creación de películas

• Una película se compone de varias imágenes (frames)

• 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.

• movie(M,n,fps) representa n veces la película almacenada en M a una velocidad de


fps
ps imágenes
áge es por
po segundo
segu do
X=0:0.01:2*pi;
for j=1:10
plot(x,sin(j*x)/2)
M(j)
M(j)=getframe;
tf
end
movie(M,4,6)
Gráficos

• Una de las facilidades más importantes que ofrece


MATLAB es la capacidad de realizar gráficas fácilmente

• MATLAB gráfica directamente la salida en una ventana


separada
p de la ventana de comando llamada ventana
de figura

• Las funciones gráficas automáticamente crean una


nueva ventana de figura si no existe ninguna. Si existe
una ventana de figura,
g , MATLAB usa esta ventana
Gráficos
• Comando plot
>> x = [1:10] >> hold on
>> plot(5,100,'*r')
x =
1 2 3 4 Grafica de y en función de x
5 6 7 8 250

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

>> plot(x, y, '-ob')


1

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

>> f = -1./(1 + 2*(x - 1.5) -0.2 -0.3


.^2 + (y… + 1).^2) - 0.6
-0.4
./(1 + (x + 1).^2
1). 2… + (y -0.4
0
- 1.5).^2); -0.5
-0.6
-0.6
>> surf(x,y,f) -0.8
-0.7
-1
-0.8
>> colorbar
-1.2
-0.9
5
>> title('Grafica 3D de la -1.4 -1
0
f
función
ió f') 5
0
-5
Color Options
- Yellow - ‘y’
• Magenta - ‘m’
• Cyan - ‘c’
c
• Red - ‘r’
• Green - ‘g’
• Blue - ‘b’
b
• Black - ‘k’
MATLAB
Desarrollo de Programas
Programación Digital
Ingeniería Civil
Creación de M
M-files
files
• Son archivos con extensión *.m de 2 tipos:

• Sucesión de líneas de comandos

• Function-files

• There
Th are two
t types
t off MATLAB programs

script files function files

% script file function [y]=fun(x)


P=[1 3 2] y=x^2+3*x^2+2
( )
roots(P)
Archivos con extensión .m
m
• Los comandos de MATLAB pueden organizarse
de forma secuencial para formar un código
(p g
(programa) )
• Los códigos se guardan en archivos con formato
ASCII q
que p poseen extensión *.m
• Tipos archivos m:
• Scripts
Scripts:: contienen el cuerpo principal del
programa
• Funciones
Funciones:: pueden recibir variables como
argumento y pueden entregar otras variables
como resultado de las operaciones que realizan
Scripts
Ejemplo Archivo Script
• % archivo script grafico • Comentarios
C t i
1.m
• Crea vector x
• x = pi/100 : pi/100 : 10*
• Evalúa función desead
pi;
a
• y = sin(x)./x;
• Crea la ventana con el
• plot (x,y)
(x y) gráfico
áfi
• Grid • Dibuja en el gráfico la
grilla p
g punteada
• El comando se ejecuta
desde la ventana de co
mando invocando el no
mbre del archivo (sin la
extensión)
• >> grafico1
fi 1
Funciones (definición)
Ejemplo
j p de Función
• Función definida por el usuario cuyo argumento de ent
rada sea un vector y su función sea devolver un vector
conteniendo los mismos elementos pero ordenados en
forma descendiente
• funcion [b] = descsort (a)
• % Function descsort ordena en forma descendente un vector a
• b = sort ((-a);
a);
• b = -b;
• Ejemplo numérico
>> a=[pi –10.00 35.00 0.15]
a=
3 1416 –10.00
3.1416 –10 00 35
35.00
00 0
0.1500
1500
>> b = descsort (a)
b=
35.00 3.1416 0.1500 -10.000
Programas

• Es posible combinar un lote de instrucciones que ejecuten


una serie de cálculos y comparaciones para llegar a un
resultado;
lt d un programa
• MATLAB permite guardar estos programas en archivos
con extensión “.m”
• Estos archivos se ejecutan
j simplemente
p invocando su
nombre sin la extensión, y pueden ser llamados desde
otros programas a manera de rutinas o subprogramas
• Los archivos .m se puede crear usando un editor de texto
cualquiera. MATLAB trae su propio editor de texto
Programas
• Tipos de archivos .m

Escritos (Scripts) Funciones (Functions)

No aceptan argumentos de Pueden aceptar argumentos de


entrada ni retornan argumentos de entrada y retornan argumentos de
salida salida
Operan con datos existentes en el Operan con variables internas
espacio de trabajo (locales)
Usados principalmente para Usados principalmente para crear
automatizar una serie de pasos aplicaciones
que desean desarrollar en
cualquier momento
Programas

• Para declarar un archivo .m


m como una función
es necesario escribir en la primera línea
ejecutable el nombre de la función (debe ser
igual al nombre del archivo), los argumentos
de entrada y los argumentos
g de salida,, según
g la
siguiente estructura:
function [ ]
[…] = NombreDeLaFuncion( )
NombreDeLaFuncion(…)

Argumentos Argumentos
de salida de entrada
Programas
• Comandos útiles para iniciarse en la programa en MATLAB:

pause Detiene la ejecución del programa hasta que una


t l activa
tecla ti sea presionada
i d

input Recibe datos por el teclado en tiempo de ejecución

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

while, end Estas instrucciones permiten hacer ciclos que se


repiten indefinidamente hasta que alguna condición
impuesta deja de cumplirse
while condición
instrucciones
end
Programación
Ficheros de Matlab

• Ficheros de programa: Se construyen mediante una secuencia de comandos. El fic


h
hero principal
i i l se llllamará main_nombre.m
i b

• 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

• Comandos de entrada y salida:


• input: permite introducir datos: ae=input(‘Teclee valor de a’);
• disp: muestra un texto por pantalla: disp(‘El
disp( El algoritmo no ha convergido
convergido’))
Programación
Ficheros de Matlab

• Ficheros de programa: Se construyen mediante una secuencia de comandos


comandos.
El fichero principal se llamará main_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

• fminsearch(‘funcion’,x0): calcula el mínimo relativo de una función más próximo a x


0

• fminbnd(‘funcion‘,a,b): calcula un mínimo de la función en el intervalo [a,b]

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

También podría gustarte