You are on page 1of 65

Mtodos Numricos para Ingeniera Mecnica.

SIMULACION.
Dr. Jorge Arturo Hernndez Zrate
Ingeniera Mecnica - Mecatrnica

MATLAB
Departamento: Metal Mecnica ITV

Mtodos Numricos para Ingeniera Mecnica.

OBJETIVO:
El alumno reconocer los elementos bsicos del lenguaje
MatLab y su ambiente de desarrollo integrado.

Mtodos Numricos para Ingeniera Mecnica.

Entorno de desarrollo integrado de MatLab.

Mtodos Numricos para Ingeniera Mecnica.

COMMAND WINDOW.
sta es la ventana en la que se ejecutan interactivamente las
instrucciones de MATLAB y en donde se muestran los resultados
correspondientes, si es el caso.
En cierta forma es la ventana ms importante.

Mtodos Numricos para Ingeniera Mecnica.

WORKSPACE .
El espacio de trabajo de MATLAB (Workspace) es el conjunto de
variables y de funciones de usuario que en un determinado momento
estn definidas en la memoria del programa.
Ms adelante se ver que cada funcin tiene su propio espacio de trabajo, con
variables cuyos nombres no interfieren con las variables de los otros espacios
de trabajo.

La ventana Workspace Browser constituye un entorno grfico para


ver las variables definidas en el espacio de trabajo.

Mtodos Numricos para Ingeniera Mecnica.

COMMAND HISTORY BROWSER.


El Command History Browser ofrece acceso a las sentencias que se
han ejecutado anteriormente en la Command Window. Estas
sentencias estn tambin accesibles por medio de las teclas de
flecha hacia abajo y hacia arriba.
La ventana de Command History facilita mucho el tener una visin
ms general de lo hecho anteriormente y seleccionar lo que
realmente se desea repetir.

Mtodos Numricos para Ingeniera Mecnica.

CURRENT DIRECTORY BROWSER


Los programas de MATLAB se encuentran en fichero con la extensin *.m.
Estos ficheros se ejecutan tecleando su nombre en la lnea de comandos.
Para que un fichero *.m se pueda ejecutar es necesario que se cumpla una de
las dos condiciones siguientes:
Que est en el directorio actual. MATLAB mantiene en todo momento un
nico directorio con esta condicin. Este directorio es el primer sitio en el que
MATLAB busca cuando desde la lnea de comandos se le pide que ejecute un
fichero.
Que est en uno de los directorios indicados en el Path de MATLAB

Mtodos Numricos para Ingeniera Mecnica.

Orden de Bsqueda en comandos o funciones.


Supngase que se utiliza la palabra nombre1 en un comando. El proceso que
sigue el programa para tratar de conocer qu es nombre1 es el siguiente:
1. Comprueba si nombre1 es una variable previamente definida por el usuario.
2. Comprueba si nombre1 es una funcin interna o intrnseca de MATLAB.
3. Comprueba si nombre1 es una sub-funcin o una funcin privada del
usuario
4. Comprueba si hay un fichero llamado nombre1.mex, nombre1.dll o
nombre1.m en el directorio actual.
5. Comprueba si hay ficheros llamados nombre1.mex, nombre1.dll o
nombre1.m en los directorios incluidos en el search path de MATLAB.
Estos pasos se realizan por el orden indicado. En cuanto se encuentra lo que
se est buscando se detiene la bsqueda y se utiliza el fichero que se ha
encontrado.

Mtodos Numricos para Ingeniera Mecnica.

Mtodos Numricos para Ingeniera Mecnica.

Elementos bsicos del lenguaje Matlab.


Identificadores.
Formado de las letras del alfabeto ingles (maysculas/minsculas),
los dgitos del 0-9 y el smbolo de subrayado (_).
El primer carcter debe ser una letra.
Longitud mxima 31 caracteres.

Sensible al tamao.

Continuacin de lnea tres puntos suspensivos


Comentarios se preceden con %.

Mtodos Numricos para Ingeniera Mecnica.

Tipos de datos.
Por defecto todos los elementos son tratados como double en arrays.
8 bytes , 15 cifras decimales exactas
Escalares,.

Matrices de ms de dos dimensiones.

Vectores.

Vectores y matrices de celdas.

Matrices.

Estructuras.

String.

Clases y objetos.

Valores especiales.
inf , NaN
eps 2.22x10-16
realmin (2.2x10-308) , realmax (1.7977x10308)

Mtodos Numricos para Ingeniera Mecnica.

Constantes de inters.
eps

El nmero ms pequeo para el cual 1 + eps > 1 (2.22x10-16)

inf

infinito

NaN

No es un numero.

i or j

1 (parte imaginaria de un numero complejo).

pi

(3.1415)

realmin Ms pequeo nmero positivo (2.2x10-308) .


realmax Ms grande nmero positivo (1.7977x10308).

Mtodos Numricos para Ingeniera Mecnica.

Algunos comandos de control comunes.


Comando clear.
clear
clear x,y

: Elimina todas las variables creadas,excepto las


globales.
: Elimina solo las varibles x y y (como ejemplo)

clear global

: Elimina todas las variable globales.

clear all

: Elimina todas las variable incluyendo las globales.

Mtodos Numricos para Ingeniera Mecnica.

Definicin de variables.
Definicin de escalares y vectores desde el teclado.
Inicializacin.
a = 10;

% efecto del; en el comando.

b = [ 1.5 3.2] ;

% vector fila separacin de los datos por espacio o


coma.
% vector fila de 6 elementos con continuacin de
lnea

b=[123
4 5 6];

c = [ 1.5 ; 3.2 ]; % vector columna la separacin entre reglones por ;


o
c = [ 1.5
3.2 ];

Mtodos Numricos para Ingeniera Mecnica.

Definicin de matrices desde el teclado.


d = [ 1 2 3 ; 2 4 6] ;

% Matriz de 2 renglones y 3 columnas.

o
d=[123
2 4 6 ];
Referencia a un elemento individual a travs de ndices:
d(2,1)

% Elemento de la fila 2 y columna 1.

Mtodos Numricos para Ingeniera Mecnica.

Operaciones comunes.
Operaciones bsicas.

Transpuesta.
t = a
El producto de [a] por su transpuesta dar una matriz simtrica.
s = a * t;

Inversa. (comando inv)


inv(a)

Mtodos Numricos para Ingeniera Mecnica.

Nmeros complejos.
MATLAB en forma implcita trabaja con nmeros complejos, por
ejemplo:
>> a = sqrt(-4)
a=

0+

+2i

2+

3i

>> b = 2 + 3i
b=

Se puede utilizar indistintamente i o j para representar la parte


imaginaria del nmero, es conveniente no utilizar estos como
identificadores de variables.

Mtodos Numricos para Ingeniera Mecnica.

Cadena de caracteres.
A diferencia de C las constantes de cadena de caracteres se colocan
entre comillas simples o apostrofes y son tratadas como arreglos de
caracteres.
Ejemplo.
>> s = esto es una cadena de caracteres;
>> s1 = Press return to exit;
>> s2 = the program;
>> s3 = strcat(s1,s2)
s3 =
Press return to exit the program
>> s4 = s1(1:12)
s4 =
Press return

% Crea una cedana (string)


% Crea otra cadena
% Concatena s1 y s2

% Extrae los caracteres del 1 al 12 de s1

Mtodos Numricos para Ingeniera Mecnica.

Operador dos puntos ( : ).


x = 1: 10;

% vector fila de 10 elementos [ 1 2 3 4 5 6 7 8 9 10]

time = 0: 0.5 :2;

% [ 0 0.5 1.0 1.5 2.0 ]

valores = 10: - 1: 1 ; % [ 10 9 8 7 6 5 4 3 2 1]
Como puede verse, este operador por defecto produce vectores fila.
El siguiente ejemplo, genera una tabla de senos y csenos

Mtodos Numricos para Ingeniera Mecnica.

Funciones linspace.
Otra forma de crear arreglos con elementos igualmente espaciados es a
travs de la funcin linspace.

x = linspace( x_inicial, x_final , n)


Crea un arreglo de n elementos iniciando con x_inicial hasta x_final.

>> x = linspace(0,1,5)
x=
0 0.2500 0.5000 0.7500 1.0000

Mtodos Numricos para Ingeniera Mecnica.

Extraccin de sub-matrices.
Sea a = [ 1 2 3 ;
456;
7 8 9]
>> a[3,:]

% Todos los elementos de la tercera fila [ 7 8 9]

>> a[ : , 2:3]

% Todas las filas de las columnas 2 y 3


% [ 2 3 ; 5 6; 8 9]

>> a[ 1:2:3,2]

% Primer y tercer fila de la columna 2


%[ 2 ; 8]

>> a([3 2],:)

% De la fila 3 y 2 en este orden todas las columnas


% [ 7 8 9; 4 5 6]

a(: ) representa un vector columna, con las columnas de a una


detrs de la otra

Mtodos Numricos para Ingeniera Mecnica.

Formacin de matrices a partir de otras.


Un caso especialmente interesante es el de crear una nueva matriz a
partir de otras submatrices previamente definidas.
Ejemplo.
>> a = [ 1 2 3 ];
>> b = a;
>> c = zeros(3);
>> d = [ a , 4 ; c , b];
d=
1
0
0
0

2
0
0
0

3
0
0
0

4
1
2
3

Matriz de ceros de 3x3.

Mtodos Numricos para Ingeniera Mecnica.

Almacenamiento secuencial de una matriz..


Los elementos de una matriz de pueden direccionar a travs de un
solo ndice, ya que estos elementos se encuentran ordenados por
columna como se ilustra en el siguiente ejemplo.

Mtodos Numricos para Ingeniera Mecnica.

Tipos de matrices predefinidos.

Ejemplo
funcin

Descripcin

eye(4)

Forma una matriz identidad de tamao (4x4)

zeros(3,5)

Forma una matriz de ceros de tamao (3,5)

zeros(4)

Matriz de ceros de (4x4)

ones(3)

Forma una matriz de unos de (3x3)

ones(2,4)

De tamao (2x4)

rand(3)

Forma una matriz de numeros aleatorios entre 0 y 1 con


distribucin uniforme de tamao (3x3)

rand(2,5)

De tamao (2x5)

Mtodos Numricos para Ingeniera Mecnica.

Funciones matemticas elementales.


Estas funciones actan sobre cada elemento de la matriz. Se aplican
de la misma forma a escalares, vectores y matrices. Algunas de estas
funciones

Mtodos Numricos para Ingeniera Mecnica.

Funciones que actan sobre vectores.


En realidad estas funciones se pueden aplicar tambin a matrices, pero en
ese caso se aplican por separado a cada columna de la matriz, dado como
valor de retorno un vector resultado de aplicar la funcin a cada columna

Mtodos Numricos para Ingeniera Mecnica.

Operadores aritmticos.
MATLAB cuenta con los siguientes operadores aritmticos.

Mtodos Numricos para Ingeniera Mecnica.

Operadores y jerarqua de evaluacin..


Jerarqua.

Operador

Descripcin.

Alta

Potenciacin

*
/
\

Multiplicacin.
Divisin
Div inversa.

Baja

+
-

Suma
resta

==========

==========

===========

.^
.* ./ .\

Mtodos Numricos para Ingeniera Mecnica.

Operadores aritmticos.
Ejemplo.
>> A = [1 2 3; 4 5 6]; B = [7 8 9; 0 1 2];
>> A + B % Suma de matrices.
ans =
8 10 12
4 6 8
>> A*B % Multiplicacin de matrices.
ans =
50 8
122 17
>> A*B % La multiplicacin es incorrecta!
??? Error using ==> * % due to incompatible dimensions Inner matrix dimensions must agree.

>>
>> A.*B
ans =
7 16 27
0 5 12

Mtodos Numricos para Ingeniera Mecnica.

Operadores relacionales.
Como es natural en MATLAB se aplican tambin a nivel de vectores y
matrices. Estos operadores se aplican elemento a elemento cuando
se aplican en vectores o matrices.

El resultado siempre que se utiliza un operador relacional es 1 (true) o 0


(false), de manera general como en el caso de C distinto de cero equivale a
true.

Mtodos Numricos para Ingeniera Mecnica.

Ejemplo.
>> A = [1 2 3; 4 5 6]; B = [7 8 9; 0 1 2];
>> A > B
ans =
000
111

Operadores lgicos.
MATLAB cuenta con los siguientes operadores lgicos.

Mtodos Numricos para Ingeniera Mecnica.

Entrada .
La funcin input permite imprimir un mensaje en la lnea de comandos de
MATLAB y recuperar como valor de retorno un valor numrico o el resultado
de una expresin tecleada por el usuario.
Cualquier expresin valida de MATLAB es aceptada por el comando. El
usuario puede teclear un escalar, un vector , una matriz

input (cadena de peticin : );


>> a = input(Enter expression: )
Enter expression: tan(0.15)
a=
0.1511
>> s = input(Enter name: , s)
Enter name: Jose Antonio
s=
Jose Antonio

Para cadena de caracteres.

Mtodos Numricos para Ingeniera Mecnica.

Salida formateada.
La funcin fprintf permite la salida formateada.
fprintf(formato,lista)
Donde formato contiene informacin de cmo mostrar los datos y lista
son los elementos que sern mostrados, separados por comas. Los
ms comunes especificadores de formato son:
%w.df
%w.de

notacin de punto flotante.


notacin exponencial.

Donde w es el nmero de columnas utilizadas para mostrar el dato y


d es el nmero de dgitos despus del punto decimal.

Mtodos Numricos para Ingeniera Mecnica.

Ejemplo.

Carcter de
control \n: salto de
lnea

>> x = 0:0.2:1;
>> for i = 1:length(x)
fprintf(%4.1f %11.6f \n ,x(i), sin( x(i) ) )
end
0.0
0.2
0.4
0.6
0.8
1.0

0.000000
0.198669
0.389418
0.564642
0.717356
0.841471

11 columnas 6 dgitos

El carcter de escape \n permite iniciar con una nueva lnea.

Mtodos Numricos para Ingeniera Mecnica.

Salida a un archivo.
% los siguientes comandos, generan un archivo llamado exp.txt
x = 0:.1:1;
y = [x; exp(x)];
fid = fopen('exp.txt','w');
fprintf(fid,'%6.2f %12.8f\n',y);
fclose(fid)
0.00
0.10
0.20
0.30
0.40
0.50
0.60
0.70
0.80
0.90
1.00

1.00000000
1.10517092
1.22140276
1.34985881
1.49182470
1.64872127
1.82211880
2.01375271
2.22554093
2.45960311
2.71828183

y es una matriz de 2 renglones

Archivo de datos generado.


Obsrvese el orden en que aparecen estos.
Recuerde que las matrices en MATLAB se
encuentran columna tras columna.

Mtodos Numricos para Ingeniera Mecnica.

Mtodos Numricos para Ingeniera Mecnica.

Archivos M.
MatLab cuenta con dos formas de escribir lneas de programas:
La ventana de comandos y el editor/debuger:
La ventana de comandos es un modo de interactuar que conforme son
escritos los comandos estos son inmediatamente procesados.
La ventana de edicin es usada para escribir y guardar programas( llamados
archivos de comandos script files) y funciones. Antes de que el programa o
funcin pueda ser ejecutado, este deber de ser guardado como un archivo M.
Cuando una funcin es llamada la primera ves durante la ejecucin de un
programa, esta es compilada en P-code (pseudo cdigo) para acelerar su
ejecucin en subsecuentes llamados (ver comando pcode).

Mtodos Numricos para Ingeniera Mecnica.

Archivos de funciones.
La primera lnea (que no sea un comentario si existe) del archivo de
funciones llamado name.m que define una funcin tiene la forma:
function [lista de valores de retorno] = name(lista de argumentos)
Donde name es el nombre de la funcin. Entre corchetes y separados
por comas van los valores de retorno (siempre que haya mas de uno)
y entre parntesis tambin separados por comas los argumentos.
La diferencia importante con otros lenguajes, es que en MATLAB se
pueden tener valores de retorno matriciales.

Mtodos Numricos para Ingeniera Mecnica.

Argumentos de una funcin.


Una funcin podra no llevar argumentos, por lo que al llamarse se podra no
colocar los parntesis, desde luego eso no seria recomendables por claridad,
ya que se podr creer que se trata de una variable.
Durante la ejecucin una funcin podra tener argumentos y valores de
retorno variables.
Los argumentos son pasados por valor, esto quiere decir que los
argumentos reales no sern modificados por la funcin, si se realiza una
modificacin dentro de la funcin, estas se realizan en la copia.

Mtodos Numricos para Ingeniera Mecnica.

La sentencia return.
Una funcin normalmente regresa el control al programa que la llamo
cuando esta alcanza su final, sin embargo se puede formar esta regreso
a travs de la sentencia return.
En el siguiente ejemplo se emplea el mtodo de Newton Raphson para encontrar
la solucin de f(x) = sin x 0.5 x. El valor de x es refinado sucesivamente hasta
que este es lo suficientemente pequeo. El ciclo for asegura que no se excedan
30 iteraciones, suficientes para la convergencia del mtodo.

function x = solve(x)
for numIter = 1:30
dx = -(sin(x) - 0.5*x)/(cos(x) - 0.5); % -f(x)/f(x)
x = x + dx;
if abs(dx) < 1.0e-6
% error < epsilon
>> x = solve(2)
return
x=
end
1.8955
end
error(Demasiadas iteraciones)

Mtodos Numricos para Ingeniera Mecnica.

Argumentos de una funcin.


Una funcion podria ser llamada con menos argumentos de los que aparaecen
en su definicin : El numero de argumentos de entrada o de salida usados en
el llamado a la funcion pueden ser determinados con las funciones nargin y
nargout, respectivamente.

Mtodos Numricos para Ingeniera Mecnica.

Argumentos por omisin.


El siguiente ejemplo de una funcion llamada solve involucra dos argumentos de
entrada y dos de salida. El error de tolerancia es una parametro de entrada
opcional que puede ser usado para remplazar su valor por defecto de 1e-6. El
argumento de salida numIter, el cual contiene el nmero de iteraciones, podria
ser omitido en el llamado.
function [x,numIter] = solve(x, epsilon)
if nargin == 1
% Especifica el valor por
epsilon = 1.0e-6; % defecto de epsilon
end
for numIter = 1:100
dx = -(sin(x) - 0.5*x)/(cos(x) - 0.5);
x = x + dx;
if abs(dx) < epsilon
return
end
end
error(Too many iterations)

>> x = solve(2) % numIter not printed


x=
1.8955
>> [x,numIter] = solve(2) % numIter is printed
x=
1.8955
numIter =
4
>> format long
>> x = solve(2,1.0e-12) % Solving with extra precision
x=
1.89549426703398
>>

Mtodos Numricos para Ingeniera Mecnica.

Modularidad de las funciones.


Una versin de la anterior podra ser:
function [x,numIter] = solve(x,epsilon)
if nargin == 1; epsilon = 1.0e-6; end
for numIter = 1:30
dx = myfunc(x);
x = x + dx;
if abs(dx) < epsilon; return; end
end
error(Too many iterations)
function y = myfunc(x)
y = -(sin(x) - 0.5*x)/(cos(x) - 0.5);
>> x = solve(2)
x=
1.8955

Sub funcin.

Mtodos Numricos para Ingeniera Mecnica.

Funciones como argumentos.


function [x,numIter] = solve(func,x,epsilon)
if nargin == 2; epsilon = 1.0e-6; end
for numIter = 1:30
Funcion :
dx = feval(func,x);
feval(function handle, arguments)
x = x + dx;
if abs(dx) < epsilon; return; end
end
error(Too many iterations)

>> x = solve(@myfunc,2)
x=
1.8955

% @myfunc es el manejador.

Mtodos Numricos para Ingeniera Mecnica.

Funciones inline.
Cuando las funciones no son muy complejas, estas pueden ser representadas
por un objeto inline:

nombreFuncion = inline (expresion, var1,var2)

Donde expresion define la funcin y var1, var2 son los nombres de las
variables independientes.

>> myfunc = inline (x2 + y2,x,y);


>> myfunc (3,5)
ans =
34

Mtodos Numricos para Ingeniera Mecnica.

Sub funciones.
Las sub-funciones, son funciones adicionales definidas en el mismo archivo
*.m con nombres diferentes del nombre del archivo ( y del nombre de la
funcin principal) . Estas funciones solo pueden ser llamadas por las funciones
contenidas en ese archivo, resultando invisibles para otras funciones externas.

function r = funcionPrincipal(a,b)
r = subFuncion1(a,b);
function x = subFuncion1(y, z)
x = subFuncion2(y,z);
function x = subFuncion2(y,z)
x = y+z+2;

Nombre del archivo M:


funcionPrincipal.m

Mtodos Numricos para Ingeniera Mecnica.

Mtodos Numricos para Ingeniera Mecnica.

Grficos bidimensionales..
MatLab cuenta con un tipo especial de ventanas para realizar las
operaciones graficas. Ciertos comandos abren una ventana nueva y
otros dibujan sobre la ventana activa, bien sustituyendo lo que hubiera
en ella, bien aadiendo nuevos elementos grficos a un dibujo
anterior.

Mtodos Numricos para Ingeniera Mecnica.

Funciones elementales.
MatLab dispone de cuatro comandos bsicos para crear grficos 2-D,
estas funciones se diferencian principalmente por el tipo de escala
que utilizan.
comando
plot()

Crea un grafico a partir de vectores y/o columnas de


matrices con escalas lineales sobre ambos ejes.

loglog()

Con escalas logartmicas en ambos ejes.

semilogx()

Con escala lineal en el eje de las ordenadas y


logartmicas en el eje de las abscisas.

semilogy()

Escala lineal en las abscisa y logartmica en las


ordenadas

Mtodos Numricos para Ingeniera Mecnica.

Apariencia de los grficos.


Existen otras funciones orientadas a aadir ttulos al grfico, a cada uno de los
ejes, .
Algunas de estos comandos son:

comando
title(texto)

Aade un titulo al dibujo.

xlabel(texto)

Aade una etiqueta al eje de las abscisas

ylabel(texto)

Aade una etiqueta al eje de las ordenadas.

legend()

Define rtulos para distintas lneas o ejes


utilizados en la figura.

Mtodos Numricos para Ingeniera Mecnica.

Ejemplo.
clear;
clc;
close ; % cierra la ventana grafica activa.
x = 0:0.1:10;
y = sin(x);
z = cos(x);
plot(x,y, x,z);
grid;
xlabel('x')
title('graficas de seno y coseno');
legend('sinx ', 'cos y');

Mtodos Numricos para Ingeniera Mecnica.

Estilos y colores en la funcin plot().

Mtodos Numricos para Ingeniera Mecnica.

Aadir grficos a una figura existente.


Existe la posibilidad de aadir lneas a un grafico ya existente, sin
destruirlo o sin abrir una nueva ventana. Se utiliza para ello los
comandos hold on y hold off. El primero de ellos hace que los
grficos sucesivos respeten los que ya se han dibujado en la figura.
El comando hold off deshace el efecto de hold on

Mtodos Numricos para Ingeniera Mecnica.

Comando subplot().
Una ventana grfica se puede dividir en m particiones horizontales y n
verticales, con objeto de representar mltiplos grficos en ella. Cada una de
las subventanas tiene sus propios ejes, aunque otras propiedades son
comunes a toda la figura. La forma general del comando es:

subplot( m , n, i)
Donde m y n son el nmero de subdivisiones en filas y columnas, e i es la
subdivisin que se convierte en activa. Las subdivisiones se numeran
consecutivamente empezando por la primera fila, siguiendo por la segundo,
etc.

Mtodos Numricos para Ingeniera Mecnica.

Funcin fplot().
La funcin fplot admite como argumento un nombre de funcin o un nombre
de archivo *.m . La funcin puede ser escalar o vectorial. La forma general de
esta funcin es la siguiente:

fplot( funcion, limites, cadena, tolerancia)

Mtodos Numricos para Ingeniera Mecnica.

Lgica de Programacin.

Estructuras de control selectiva if /else.


Representacin algortmica.

Sintaxis.

if condicion
sentencias;
end

Ingeniera meca trnica. ITV

Lgica de Programacin.

Estructuras de control selectiva if / else.


Representacin algortmica.

Sintaxis.
if condicion
bloqueA
else
bloqueB
end

Esta sentencia permite realizar una bifurcacin, ejecutando una parte u otra
del programa segn se cumpla o no una cierta condicin.
Se evala la expresin. Si el resultado es true , se ejecuta el bloqueA y si el
resultado es false, se ejecuta el bloqueB.

Ingeniera meca trnica. ITV

Lgica de Programacin.

Estructura de control mltiple o ifs anidados..


Esta sentencia permite realizar una ramificacin mltiple, ejecutando una entre
varias partes del programa segn se cumpla una entre n condiciones. La forma
general es la siguiente:

Diagrama de flujo.
if condicion1
bloque1
elseif condicion2
bloque2
elseif condicion3
bloque3
...
[else
bloqueDefecto]
end

Ingeniera meca trnica. ITV

Mtodos Numricos para Ingeniera Mecnica.

Sentencia switch.
La sentencia switch realiza una funcin anloga a un conjunto ifelseif
concatenados. Su forma general es la siguiente.

switch expresion
case exp1
bloque1
case { exp2, exp3,exp4 }
bloque2

otherwise
% opcion por defecto.
bloqueDefecto
end
La expresin debe ser un numero escalar o una cadena de caracteres. Como
puede verse es posible agrupar varias expresiones entre llaves

Mtodos Numricos para Ingeniera Mecnica.

Ejemplo.
function y = trig(func,x)
switch func
case sin
y = sin(x);
case cos
y = cos(x);
case tan
y = tan(x);
otherwise
error(No such function defined)
end
>> trig(tan,pi/3)
ans =
1.7321

Lgica de Programacin.

Estructuras de repeticin en.


while

while expresion

for

for vc = vi [:inc]: vf

sentencias
end
Ingeniera meca trnica. ITV

sentencias;
end

Mtodos Numricos para Ingeniera Mecnica.

Ejemplo.
El siguiente ejemplo determina el numero de aos que se requiere
para que un capital de $ 1000,00 crezca a $ 10000.00 a una taza de
inters anual del 6%.
>> p = 1000; years = 0;
>> while p < 10000
years = years + 1;
p = p*(1 + 0.06);
end
>> years
years =
40

Mtodos Numricos para Ingeniera Mecnica.

Control de flujo break.


Un ciclo puede ser terminado por una sentencia break. Cuando se alcanza un
break, el control es pasado a la primera sentencia fuera del ciclo. En el
siguiente ejemplo la funcin construye un vector fila de longitud arbitraria . El
proceso termina cuando no se proporciona ningn dato por parte del usuario.

function x = buildvec
for i = 1:1000
elem = input(==> );
if isempty(elem
break
end
x(i) = elem;
end

>> x = buildvec
==> 3
==> 5
==> 7
==> 2
==>
x=
3 5 7 2

Mtodos Numricos para Ingeniera Mecnica.

El comando error.
La ejecucin de un programa puede ser terminada mostrando un
mensaje de error a travs de:

error(mensaje)
Por ejemplo, las siguientes lneas de un programa determinan la
dimensin de una matriz y aborta el programa si la matriz no es
cuadrada.
[m,n] = size(A);
% m = no. of rows; n = no. of cols.
if m = n
error(Matrix must be square)
end