Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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:
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)
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)
>> 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.
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)
En vez de lı́neas aparece ahora una superficie y se eliminan las lı́neas ocultas.
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’)
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)
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:
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.
x = 0:10;
y = sin(x);
xx = 0:.25:10;
yy = interp1(x,y,xx);
plot(x,y,’o’,xx,yy)
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.
x = 0:10;
y = sin(x);
x1 = 0:.1:10;
y1 = spline(x,y,x1);
plot(x,y,’o’,x1,y1)
yn = spline(x,y,2)
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’)
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)
q=quad(@eqn,0,2)
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.
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
Usar Subplot para visualizar en una solo entorno figure las siguientes funciones
r = 7 − 7 sin(θ);
r = cos(8θ)
∫2
2. −2
(x−2)(x+2)
x2 +4
dx
2. g(x) = x2 − 2x + 2