You are on page 1of 76

Mtodos Numricos para Ingeniera Mecnica.

Mtodos Numricos para Ingeniera Mecnica.


Maestra en Ingeniera Mecnica

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.


Directorio actual. Espacio de trabajo.

Ventana de comandos.

Mtodos Numricos para Ingeniera Mecnica.

DIRECTORIO ACTUAL.
Los programas de MATLAB se encuentran en archivos con la extensin *.m.

Estos archivos se ejecutan tecleando su nombre en la lnea de comandos.

Para que un archivo *.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 archivo.. 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 archivo 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 archivo que se ha encontrado.

Mtodos Numricos para Ingeniera Mecnica.

Mtodos Numricos para Ingeniera Mecnica.

Elementos bsicos del lenguaje MATLAB.


Identificadores.
Formado de las (maysculas/minsculas), subrayado (_). letras del alfabeto ingles los dgitos del 0-9 y el smbolo de

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 arreglos. (8 bytes , 15 cifras decimales).

Escalares,. Vectores. Matrices. String.

Matrices de ms de dos dimensiones. Vectores y matrices de celdas. Estructuras. Clases y objetos.

Mtodos Numricos para Ingeniera Mecnica.

Constantes de inters.
eps inf NaN El nmero ms pequeo para el cual 1+eps > 1+(2.22x10-16) Infinito No es un nmero.

i or j
pi

1 (parte imaginaria de un nmero complejo).


(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
clear all

: Elimina todas las variable globales.


: Elimina todas las variable incluyendo las globales.

Mtodos Numricos para Ingeniera Mecnica.

Arrays simples.

Para crear un array en Matlab:


Comienza por un corchete de apertura [ Los valores separados por espacios o por comas Finaliza con un corchete de cierre ]

Ejemplo:

x = [23 45 12 2+3i

-2i]

Mtodos Numricos para Ingeniera Mecnica.

Direccionamiento de arrays.

Para acceder a elementos individuales se utilizan subndices entre parntesis.


Ejemplo: x = [1 2 3;4 5 6;7 8 9] x(2,3) ans = 8 x(6) ans = 8

Mtodos Numricos para Ingeniera Mecnica.

Definicin de variables.
Definicin de escalares y vectores desde el teclado.
Inicializacin. a = 10; b = [ 1.5 3.2] ; b=[123 4 5 6];
% Escalar a = 10. % Vector fila separacin de los datos por espacio o coma. % Vector fila de 6 elementos, con continuacin de lnea

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] ;
o d=[123 2 4 6 ];

% Matriz de 2 renglones y 3 columnas.

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.

Formatos de visualizacin. Comando


format long format short e format long e format hex format bank format + format rat format short

Ejemplo
35.83333333333334 3.5833e+01 35.83333333333334e+01 4041eaaaaaaaaab 35.83 + 215/6 35.8333

Comentario
16 dgitos 5 dgitos mas exponente 16 dgitos mas exponente hexadecimal 2 dgitos decimales positivo, negativo o cero aproximacin racional visualizacin por defecto

Mtodos Numricos para Ingeniera Mecnica.

Operador dos puntos ( : ).


notacin de dos puntos:

primero:incremento:ltimo

x = 1: 10;
time = 0: 0.5 :2;

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


% [ 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.

Funcion 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] % Primer y tercer fila de la columna 2 %[ 2 ; 8]

>> a( 1:2:3,2)

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

Operadores aritmticos.
MATLAB cuenta con los siguientes operadores aritmticos.

Mtodos Numricos para Ingeniera Mecnica.

Operadores y jerarqua de evaluacin..


Jerarqua.
Alta

Operador
^ * / \

Descripcin.
Potenciacin Multiplicacin. Divisin Div inversa. Suma resta

Baja

+ -

Mtodos Numricos para Ingeniera Mecnica.

Operaciones de arrays con escalares. La suma, resta, multiplicacin y divisin por un escalar simplemente aplica la operacin a todos los elementos del array Ejemplo:
x = [1 2 3 4 5 6]; 4*x-7

ans =
-3 1 5 9 13 17

Mtodos Numricos para Ingeniera Mecnica.

Operaciones entre arrays

Cuando dos arrays tienen la misma longitud, la suma y la resta se aplican sobre la base de elemento a elemento Para multiplicar o dividir dos arrays elemento a elemento se utilizan los operandos: .* , ./ y .\ ejemplo: (a./b=b.\a) Para la potencia elemento a elemento se utiliza .^

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.

Resumen de operaciones con arrays.


Elemento a elemento.
a=[a1 ... an], b=[b1 ... bn], c=escalar
Suma con un escalar Multiplicacin por un escalar Suma de arrays Multiplicacin de arrays a+c = [a1+c a2+c ... an+c] a*c = [a1*c a2*c ... an*c] a+b = [a1+b1 a2+b2 ... an+bn] a.*b = [a1*b1 ,a2*b2 ... an*bn]

Divisin por la derecha de arrays


Divisin por la izquierda de arrays Potencias de arrays

a./b = [a1/b1 a2/b2 ... an/bn]


a.\b = [a1\b1 a2\b2 ... an\bn] a.^c = [a1^c a2^c ... an^c] c.^a = [c^a1 c^a2 ... c^an] a.^b = [a1^b1 a2^b2 ... an^bn]

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.
abs(x) acos(x) acosh(x) Valor absoluto Arcocoseno Arcocoseno hiperblico

angle(x)
asin(x) asinh(x) atan(x) atanh(x) ceil(x) conj(x) cos(x) cosh(x) exp(x) log (x)

Angulo de complejos
Arcoseno Arcoseno hiperblico Arcotangente Arcotangente hiperblica Redondeo hacia + Complejo conjugado Coseno Coseno hiperblico Exponencial e1=2.71 Logaritmo neperiano

Mtodos Numricos para Ingeniera Mecnica.

Funciones matemticas elementales.


fix(x) floor(x) imag(x) log10(x) real(x) rem(x,y) round(x) Redondeo hacia cero Redondeo hacia menos infinito Parte imaginaria compleja Logaritmo comn Parte real compleja Resto de la divisin (resto al dividir x/y) Redondeo al entero ms cercano

sign(x)
sin(x) sinh(x) sqrt(x) tan(x) tanh(x) fix(x)

Funcin signo
Seno Seno hiperblico Raiz cuadrada Tangente Tangente hiperblica Redondeo hacia cero

Mtodos Numricos para Ingeniera Mecnica.

Funciones con arrays. Las funciones se aplican a los elementos individuales de los arrays Ejemplo:
x = [0 pi/4 pi/2 3*pi/4 pi]

sin(x) ans = 0

0.7071

1.0000

0.7071 0.0000

cos(x) ans = 1.0000 0.7071 0.0000 -0.7071 -1.0000

Mtodos Numricos para Ingeniera Mecnica.

Tipos de matrices predefinidos.


Ejemplo. Funcin
eye(4) zeros(3,5) zeros(4) ones(3) ones(2,4) rand(3) rand(2,5)

Descripcin
Forma una matriz identidad de tamao (4x4) Forma una matriz de ceros de tamao (3,5) Matriz de ceros de (4x4) Forma una matriz de unos de (3x3) De tamao (2x4) Forma una matriz de numeros aleatorios entre 0 y 1 con distribucin uniforme de tamao (3x3) De tamao (2x5)

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.

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=
>> b = 2 + 3i b=

0+

+2i

2+

3i

Mtodos Numricos para Ingeniera Mecnica.

Polinomios.

Los polinomios en Matlab son representados por vectores filas conteniendo los coeficientes en orden decreciente.

Ejemplo: x4 - 12x3 + 0x2 + 25x +116


p=[1 -12 0 25 116]

Mtodos Numricos para Ingeniera Mecnica.

Funciones para polinomios.

Races del polinomio: roots(p) Polinomio asociado a unas races: poly(p) Multiplica dos polinomios: conv(p1,p2) Divide dos polinomios: deconv(p1,p2) Clculo de derivadas: polyder(p) Evaluacin de polinomios: polyval(p,n) Desarrollo en fracciones parciales: residue(p)

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.

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

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

Mtodos Numricos para Ingeniera Mecnica.

Operadores Lgicos.

Operador
& | ~

Descripcin
AND OR NOT

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

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 forzar este 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 dx 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.

Ejemplo.
El siguiente programa solicita al usuario una ecuacin para graficarla en el intervalo de [ 0, 2 pi].

clear; clc;

Otra forma: clear; clc;

f = input('Ecuacion ','s');
fun = inline(f,'x'); x = linspace(0, 2*pi,101); y = fun(x); plot(x,y)

f = input('Ecuacion ','s');
x = linspace(0, 2*pi,101); y = eval(f); plot(x,y)

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 2D, estas funciones se diferencian principalmente por el tipo de escala que utilizan. comando

plot()
loglog() semilogx()

Crea un grafico a partir de vectores y/o columnas de matrices con escalas lineales sobre ambos ejes.
Con escalas logartmicas en ambos ejes. 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) xlabel(texto) ylabel(texto) legend()


Aade un titulo al dibujo. Aade una etiqueta al eje de las abscisas Aade una etiqueta al eje de las ordenadas. 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.

Ejemplo, colores y estilos de linea. Dibujar la funcin y=sin(x) y z=cos(x)

x=linspace(0,2*pi,30) y=sin(x) z=cos(x) plot(x,y, 'r*', x,z, 'b:')

Mtodos Numricos para Ingeniera Mecnica.

Ejemplo de rejillas y etiquetas. Dibujar la funcin y=sin(x) y z=cos(x)


x=linspace(0,2*pi,30); y=sin(x); plot(x,y); z=cos(x); plot(x,y,'r*', x,z,'b:',2/3*pi, sin(2/3*pi),'mo') grid xlabel('Intervalo 2 Pi') ylabel('valores de Seno y Coseno') title('SENO y COSENO') text(2/3*pi,sin(2/3*pi),' (2.09,0.87)') legend('Seno','Coseno')

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 segunda, 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)


funcion representa el nombre de la funcin o archivo *.m entre apstrofos (pasado como cadena de caracteres limites : es un vector de 2 o 4 elementos que pueden tomar los valores de [xmin, xmax] o [ xmin, xmax, ymin, ymax]. cadena : tiene el mismo significado que en plot y permite controlar el color, los makers y el tipo de linea. tolerancia : es la tolerancia de error relativo. El valor por defecto es 2e-03

Mtodos Numricos para Ingeniera Mecnica.

Funcin fplot().

Ejemplo: clear; clc; f = input('Ecuacion ','s'); fplot(f,[0 2*pi],'r') grid

Mtodos Numricos para Ingeniera Mecnica.

Lgica de Programacin.

Estructuras de control selectiva if.

Representacin algortmica.

Sintaxis.

true expresion

false sentenciaA

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
for

while expresion sentencias end


Ingeniera meca trnica. ITV

for vc = vi [:inc]: vf 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