Está en la página 1de 12

1.

Funciones
Ademas de los archivos que almacenan una serie de instrucciones en
MATLAB se puede crear funciones almacenadas en un archivo para poder
utilizar cuando se requieren y se almacenan como un archivo con extension
m. La mayoria de los archivos guardados en los toolboxes son funciones. Su
Sintaxis es la siguiente:

function [sal1, sal2,....]=nombre(ent1,ent2....)

sentencias

2. Gráficas
2.1. Gráficas 2D
Función plot
Esta es la función clave de todos los gráficos 2-D en MATLAB. Ya se ha
dicho que el elemento básico de los gráficos bidimensionales es el vector. Se
utilizan también cadenas de 1, 2 ó 3 caracteres para indicar colores y tipos
de lı́nea. La función plot(), en sus diversas variantes, no hace otra cosa que
dibujar vectores. Un ejemplo muy sencillo de esta función, en el que se le
pasa un único vector como argumento, es el siguiente:
>> x=[1 3 2 4 5 3]
x =
1 3 2 4 5 3
>> plot(x)
una variante puede ser
>> x=[1 6 5 2 1]; y=[1 0 4 3 1];
>> plot(x,y)
Un comando que permite formar una tabla para ser utilizada en una
gráfica es la función linspace (a, b,n), que genera un vector de n valores
desde a hasta b.

x=linspace(0,2*pi,200);
y=sin(x)
plot(x,y)

Dr. Yair Lozano Hernández


Otros comando para realizar gráficos son:

semilogx(...) Representa gráficamente una serie de puntos tomando


logaritmos en el eje x.

semilogy(...) Representa gráficamente una serie de puntos tomando


logaritmos en el eje y.

loglog(...) Representa gráficamente una serie de puntos tomando lo-


garitmos en ambos ejes.

polar(...) Representa gráficamente una serie de datos en coordena-


das polares. El primer argumento corresponde al ángulo respecto a la
dirección principal R y el segundo a la distancia respecto al centro de
referencia Z.

Subplot
Una ventana de gráfico se puede dividir en m partes horizontales y n
verticales, con la finalidad de representar múltiples gráficos en ella. Cada una
de estas subventanas tiene sus propios ejes, aunque mantiene propiedades que
son comunes a toda la figura. La forma general de este comando es:
>> subplot(m,n,i)
donde m y n son el número de subdivisiones en filas y columnas, e i
es la subdivisión que se convierte en activa. Las subdivisiones se numeran
consecutivamente empezando por las de la primera fila, siguiendo por las de
la segunda, etc. Por ejemplo, la siguiente secuencia genera cuatro gráficas en
la misma ventana:
x=0:0.1:2*pi;
y=sin(x); z=cos(x); w=exp(-x); v=y-z;
subplot(2,2,1), plot(x,y)

subplot(2,2,2), plot(x,z)
subplot(2,2,3), plot(x,w)
subplot(2,2,4), plot(x,v)

2.2. Gráficas 3D y funciones adicionales


MATLAB tiene posibilidades de realizar varios tipos de gráficos 3D, asi
como otro tipo de gráficas. y a continuación se mencionan las principales.
Dibujo de lı́neas: FUNCIÓN PLOT3
La función plot3 es análoga a l plot. Su forma más sencilla es:
>> plot3(x,y,z)
que dibuja una lı́nea que une los puntos (x(1), y(1), z(1)), (x(2), y(2), z(2)),
etc. y la proyecta sobre un plano para poderla representar en la pantalla. Al
igual que en el caso plano, se puede incluir una cadena de 1, 2 ó 3 caracteres
para determinar el color, los markers, y el tipo de lı́nea:
>> plot3(x,y,z,s)

También se pueden utilizar tres matrices X, Y y Z del mismo tamaño:

>> plot3(X,Y,Z)

en cuyo caso se dibujan tantas lı́neas como columnas tienen estas 3 matrices,
cada una de las cuales está definida por las 3 columnas homólogas de dichas
matrices.

Dibujo de mallados: FUNCIONES MESHGRID, MESH Y SURF


Para poder dibujar una función de dos variables (Z = f (x, y)) sobre un
dominio rectangular, se utilizan las funciones de dibujo de malla.

A continuación describimos brevemente su uso para crear una gráfica:


Sean x e y dos vectores que contienen las coordenadas en una y otra dirección
de la retı́cula (grid) sobre la que se va a dibujar la función. Después hay que
crear dos matrices X (cuyas filas son copias de x) e Y (cuyas columnas son
copias de y). Estas matrices se crean con la función meshgrid.
Estas matrices representan respectivamente las coordenadas x e y de todos
los puntos de la retı́cula. La matriz de valores Z se calcula a partir de las
matrices de coordenadas X e Y. Finalmente hay que dibujar esta matriz Z
con la función mesh, cuyos elementos son función elemento a elemento de
los elementos de X e Y. Por ejemplo: √
Para dibujar de la función R = u2 + v 2 ; Las lı́neas siguientes permiten
observa su uso:

close all
u=-8:0.5:8; v=u;
[U,V]=meshgrid(u,v);
R=sqrt(U.^2+V.^2);
W=sin(R)./R;
mesh(U,V,W) %También se puede poner como mesh(W)

La función mesh dibuja en perspectiva una función en base a una retı́cula


de lı́neas de colores, rodeando cuadriláteros del color de fondo, con elimina-
ción de lı́neas ocultas.

En el caso de ejecutar el comando:


>> surf(U,V,W) % surf(W)

En vez de lı́neas aparece ahora una superficie y se eliminan las lı́neas ocultas.

Comentario: En lugar de utilizar las funciones mesh y surf utilice


plot3 y comente que sucede.
funciones adicionales
fplot
La función fplot admite como argumento un nombre de función o un
nombre de fichero *.m en el cual esté definida una función de usuario. La
función puede ser escalar (un único resultado por cada valor de x) o vectorial.
La forma general de esta función es la siguiente:

fplot(’funcion’, limites, ’cadena’, tol)

donde: ’funcion’ representa el nombre de la función o del fichero *.m entre


apóstrofos (pasado como cadena de caracteres), limites es un vector de 2 ó 4
elementos, cuyos valores son [xmin,xmax] o [xmin,xmax,ymin,ymax], ’cade-
na’ tiene el mismo significado que en plot y permite controlar el color, los
markers y el tipo de lı́nea. tol es la tolerancia de error relativo. El valor por
defecto es 2e-03. El máximo número de valores en x es (1/tol)+1
Esta función puede utilizarse también en la forma:

[x,y]=fplot(’funcion’, limites, ’cadena’, tol)

y en este caso se devuelven los vectores x e y, pero no se dibuja nada.


Ejemplos del uso de la función fplot es:

f=’2*sin(x)’;
fplot(f,[0,6])
function y = func(x)
y(:,1)=200*sin(x)./x;
y(:,2)=x.^2;
y a continuación se ejecuta el comando:
>> fplot(’func(x)’, [-20 20], ’g’)

Dibujo de lı́neas de contorno: FUNCIONES CONTOUR Y CON-


TOUR3
Una forma distinta de representar funciones tridimensionales es por medio
de isolı́neas o curvas de nivel. Su uso es a partir de genera una mallado con
meshgrid.
>> contour(Z,20)
>> contour3(Z,20)
>> contour(W,20)
>> contour3(W,20)

donde ”20representa el número de lı́neas de nivel. Un ejemplo de uso es


el siguiente:

close all
u=-8:0.5:8; v=u;
[U,V]=meshgrid(u,v);
R=sqrt(U.^2+V.^2)+eps;
W=sin(R)./R;
mesh(U,V,W)
figure
contour(W,20)
figure
contour3(W,40)

Funciones Eval y feval


Eval: evalúa como expresión de Matlab el texto entre comas

eval(’cadena de caracteres’)
Una ejemplo es:
eval(’sin(x)’)

Feval permite evaluar, dentro de dicha función, otra función cuya refe-
rencia o cuyo nombre contenido en una cadena de caracteres se le pasan
como primer argumento. Es posible que este nombre se haya leı́do desde
teclado o se haya recibido como argumento. A la función feval hay que
pasarle como argumentos tanto la referencia o el nombre de la función
a evaluar como sus argumentos. La función feval que tiene la siguiente
forma general:

feval(funcname, arg1, arg2, arg3, ...)


donde funcname es una cadena de caracteres con el nombre de la fun-
ción a evaluar, y arg1, arg2, arg3, ... son los argumentos que se le pasan
a feval para que se los pueda pasar a funcname.
Un ejemplo se su uso seria el siguiente:

Definamos en un archivo la siguiente funcion:


function s=quad(x)
s=x^2;

al ejecutar feval obtendriamos:


>> r=feval(@quad,2)

r =

3. Simulación
3.1. Sistemas de ecuaciones lineales.
Para resolver sistema ecuaciones MATLAB utiliza dos maneras muy sim-
ples, que se mencionan enseguida
Division: En MATLAB se puede resolver un sistema de ecuaciones si-
multáneas usando división de matrices. La solución de la ecuación de
matrices AX = B puede calcularse usando división izquierda de ma-
trices, como en B\A; la solución de la ecuación de matrices XA = B
puede calcularse usando división derecha de matrices, como en B/A.
MATLAB utiliza el método de eliminación gaussiana.
También podemos resolver un sistema de ecuaciones usando la inversa
de la matriz A, siempre que exista dicha inversa. mediante la función
inv.
Interpolación
La interpolación permite estimar el valor de una función f (x) para un x
arbitrario, a partir de la construcción de una curva o superficie que une los
puntos donde se han realizado las mediciones y cuyo valor si se conoce.
En este describiremos el uso de MATLAB para hacer la interpolación.

Interpolación lineal
Una de las técnicas más comunes para estimar datos entre dos puntos
de datos dados es, la interpolación lineal, cuya idea es que la función
interpolante es una linea recta entre los dos puntos y poder encontrar un
punto entre ellos. Por ejemplo supongamos que conocemos a y c podemos
estimar el valor b a partir de las siguiente expresión.2
b−a
f (b) = f (a) + (f (c) − f (a))
c−a
La función interp1 realiza la interpolación usando vectores con los valores
x y y. La interpolación lineal es la técnica de interpolación por omisión,
aunque también puede especificarse explı́citamente en la función.

interp1 (x,y,xnew) Devuelve un vector del tamaño de xnew, que


contiene los valores y interpolados que corresponden a xnew usando
interpolación lineal.

interp1(x,y,xnew,’linear’) Devuelve un vector del tamaño de xnew,


que contiene los valores y interpolados que corresponden a xnew usando
interpolación lineal.

Los siguientes ejemplos ilustran el funcionamiento de la función.

x = 0:10;
y = sin(x);
xx = 0:.25:10;
yy = interp1(x,y,xx);
plot(x,y,’o’,xx,yy)

Si desea conocer el valor especifico de un punto se coloca la siguiente linea

yn=interp1(x,y,2)
Interpolación de splines cúbicas
Una spline cúbica es una curva continua que se construye de tal manera
que pasa por una serie de puntos, dicha curva entre cada par de puntos es
un polinomio de tercer grado, que forma una curva continua entre los dos
puntos y una transición suave entre este polinomio de tercer grado y el de
los dos puntos anteriores.

En MATLAB, la spline cúbica se calcula con la función interp1 usando


un argumento que especifica interpolación de spline cúbica en lugar de la
interpolación lineal.

interp1 (x,y,xnew, ’spline ’) Devuelve un vector de columna que


contiene los valores y interpolados que corresponden a xnew usando
interpolación de spline cúbica.

Una función equivalente a la anterior es yy = spline(x,y,xx); que fun-


ciona igual que la función interp1
El siguiente ejemplo muestra su uso

x = 0:10;
y = sin(x);
x1 = 0:.1:10;
y1 = spline(x,y,x1);
plot(x,y,’o’,x1,y1)

para desea conocer el valor especifico de un punto se coloca la siguiente


linea

yn = spline(x,y,2)

Otras opciones de la funcion interp1 en lugar de linear o spline, son:

nearest interpolación asignado el valor del vecino más cercano.

pchip interpolación con polinomios de Hermite

cubic (igual que ’pchip’)

v5cubic interpolación Cúbica


Una función adicional para ajustar curvas es la función polyfit que calcu-
la el mejor ajuste a un conjunto de datos con un polinomio de cierto grado.
La función devuelve los coeficientes, en potencias descendentes de X, del
polinomio de grado n que se ajusta a los vectores x y y.
polyfit(x,y,n) Devuelve un vector de n + 1 coeficientes que representa
el polinomio de mejor ajuste de grado n para las coordenadas x y y. El
orden de los coeficientes corresponde a potencias decrecientes de x.

x=0:5;
y=[0,10,20,50,65,100];
c=polyfit(x,y,1)
m=c(1);
b=c(2);
yn=m*x+b;

plot(x,yn,x,y,’o’)

Además, se usa el comando polyval para calcular el valor de un polinomio


para un dado valor de x, según la forma:
y = polyval( p,x )
donde: p es el polinomio, ingresado como vector fila y x es el valor de la
incógnita cuya imagen se desea calcular.
3.2. Integración numérica
MATLAB cuenta con dos funciones para realizar integración numérica
de funciones mediante la regla de Simpson y la regla de Newton Cotes las
funciones son las siguientes:

quad(’nombrefunc’,a,b) Devuelve el área bajo la función entre a y b


usando una forma de la regla de Simpson.

quad8(’nombrefunc’,a,b) Devuelve el área bajo la función entre a y b


usando una regla de Newton-Cotes. Esta función es mejor que quad
para manejar algunas funciones que tienen singularidades.

Consideremos la función
∫ 2
1
dx
0 x3 − 2x − 5
El código de MATLAB para encontrar el valor de la integral
Se define la funcion en MATLAB
function y=eqn(x)

y= 1./(x.^3-2*x-5)

Y para obtener el valor de la integral se utiliza lo siguiente:

q=quad(@eqn,0,2)

3.3. Derivacion numérica


Para realizar la derivación numérica MATLAB mediante la función diff

diff (x) Devuelve un nuevo vector que contiene las diferencias entre
valores adyacentes del vector x. Si x es una matriz, la función devuelve
una matriz que contiene las diferencias entre valores adyacentes en las
columnas de x.

El siguiente segmento de código muestra el funcionamiento.


Consideremos la función f (x) = x2 + 2x − 3, cuya derivada es f’(x)=
2x+2.

x=-4:0.1:5;
f=x.^2+2*x;
df=diff(f)./diff(x)
xx=x(2:length(x))
plot(xx,df)
Ejercicios
Realice las funciones siguientes y posteriormente genere una archivo que
las llame para ver su funcionamiento

Escriba una función que calcule la media de n datos almacenados en


un vector.
Escriba una función que calcule el factorial de un numero.

Genere una tabla de conversiones de centímetros a pulgadas. Comience la


columna de centímetros en 0, con incrementos de 2 cm. La última línea deberá
contener el valor de 50 cm. (Recuerde que 1 pulg = 2.54 cm) (Colocar el
nombre de cada columna.) y grafique los datos.

Gráficas las siguientes funciones.

f (x) = x(x2 + 4)2


log x
f (x) = x

Usar Subplot para visualizar en una solo entorno figure las siguientes funciones

r = 7 − 7 sin(θ);

r = cos(8θ)

r(t) = (sin(t), cos(t), t)

r(t) = (et/4 sin(2t), et/4 sin(2t), t/4)

Utilice subplot y visualice las tres formas de gráficas 3D de la siguiente funcion



• z = − |xy|
Ejercicios
Utilice fplot para graficar las siguientes funciones que deben ser defini-
das en un archivo m

• 2 sin(x) + cos2 (x)


{
x2 + 4 Si x ≤ 0
• f (x) =
−1x + 3 Si x > 0

Utilice feval para evaluar las siguientes funciones.

• f (x) = x + (x2 + 4)2 − 3x


• f (x) = log x
x
• f (x) = x
x−1
− x

En los siguientes ejercicios obtenga cada uno de los tipo de interpolación y


mencione con cual obtiene mejores resultados, obtenga las gráficas respectivas
en de manera individual un solo entorno figure y obtener otra figura en donde
se observe la comparación de todos lo tipo en una solo gráfica.

1. Considere los siguientes datos


x 0 2 3 5 6 8 9 11 12
y 10 10 10 10 10 10 10.5 15 60
2. Considere los siguientes datos
t 1 2 3 4 5 6 7 8 9
p 3 5 7 5 6 7 7 5 6
Obtenga el valor de las integrales siguientes:
∫ 0,7
1. 0,3
xdx

∫2
2. −2
(x−2)(x+2)
x2 +4
dx

De las siguientes funciones obtenga la derivada y compare la solución


numérica, con la que obtendrı́a de manera analı́tica
1. g(x) = x3 − 5x2 + 2x + 8

2. g(x) = x2 − 2x + 2

También podría gustarte