Documentos de Académico
Documentos de Profesional
Documentos de Cultura
3.1 Introducción
Uno de los mayores atractivos de MATLAB es su facilidad para crear gráficas. Como primera
aproximación, vemos aquí una serie de funciones «fáciles de usar» para crear:
1.5
1
30
0.5 1
25
0
20 0.5
−0.5
15
−1 0
10
−1.5
−0.5
5
−2
0
−1
−2.5 1
6
0.5 1 4
−3 6
2 4
0.5
0 0 2
−3.5
0 −2 0
−2 −1.5 −1 −0.5 0 0.5 1 1.5 2 −0.5 −4
−2
−0.5 −4
−1 −6 −6
−1 v
u
ezplot(f)
ezplot(f,[a,b])
1
3. Gráficos de funciones definidas por una fórmula 2
x sen(x2 )
f (x) = en [−2π, 2π]
2
Por defecto, la función ezplot hace variar la variable independiente en el intervalo [−2π, 2π].
Por lo tanto, basta escribir en la línea de comandos
ezplot('sin(x^2)*x/2')
3
−1
−2
−3
−6 −4 −2 0 2 4 6
x
f (x) = ln(x)
ezplot('log(x)')
2
1.5
0.5
−0.5
−1
−1.5
−2
0 1 2 3 4 5 6
x
x sen(x2 )
f (x) = para x ∈ [0, π]
2
1. Como ejercicio, vamos a escribir un script para hacer esta práctica, y vamos a definir
la función como una función anónima. Crea un fichero de nombre practica4.m que
va a contener las órdenes para hacer el dibujo:
edit practica4.m
(o bien File –> New –> Script y luego File –> Save as –> practica4.m)
f=@(x) x*sin(x^2)/2;
3. Como el intervalo para representar la función es [0, π], escribimos, también en el script,
ezplot(f,[0,pi])
practica4
1.5
0.5
−0.5
−1
también puede definir una curva: la formada por los puntos (x, y) del plano sobre los cuales la
función f toma el valor cero. Cuando una curva viene definida de esta manera se dice que viene
definida de forma implícita. Por ejemplo, la ecuación x2 + y 2 = 4 define una circunferencia de
centro el origen y radio 2.
La misma función ezplot sirve para dibujar una curva así definida, usada en alguna de estas
formas:
ezplot(f)
ezplot(f,[a,b])
ezplot(f,[a,b,c,d])
f es la función (de dos variables) que describe la ecuación, y puede ser especificada como
sigue:
’expresion’ mediante una cadena de caracteres, delimitada por apóstrofes, contenien-
do la expresión de la función de dos variables. Ejemplo: ezplot('x^2+y^2-4').
nombre mediante un «handle» (manejador) de una función de dos variables (de nuevo,
anónima o M-función) (véase Tema 2).
[a,b] (opcional) la curva se dibuja en el cuadrado del plano [a, b] × [a, b]. Si no se especifica,
ezplot usa por defecto [a, b] = [−2π, 2π].
[a,b,c,d] (opcional) la curva se dibuja en el rectángulo del plano [a, b] × [c, d].
x2 + y 2 = 7
x2 + y 2 − 7 = 0.
De lo que se trata es de dibujar la curva formada por los puntos del plano sobre los
cuales la función de dos variables f (x) = x2 + y 2 − 7 toma el valor 0. Para ello
basta con escribir en la línea de comandos
ezplot('x^2+y^2-7')
6
0
y
−2
−4
−6
−6 −4 −2 0 2 4 6
x
2. Utilizando una función anónima, hubiéramos tenido que definir la función de dos
variables f (x, y) = x2 + y 2 − 7, y luego usar ezplot
ezplot(@(x,y) x^2+y^2-7)
Práctica 6 (Propuesta) Escribir un script que dibuje la curva implícitamente definida por
la ecuación
x2 cosh(y) = 7y + 5 para x ∈ [−10, 10], y ∈ [−5, 15]
utilizando para ello una función anónima.
Para cada valor del parámetro t se obtiene un punto de la curva. Por ejemplo, las ecuaciones
describen una circunferencia de centro (a, b) y radio r: para cada valor de t se obtiene un
punto de la circunferencia; cuando t recorre el intervalo [0, π] se obtiene la parte de arriba de
la circunferencia, mientras que cuando recorre [π, 2π], se obtiene la parte de abajo.
Mediante ecuaciones paramétricas es posible describir muchas más curvas y más complicadas
que mediante una ecuación explícita. Algunas serían prácticamente imposibles de visualizar sin
la ayuda de herramientas gráficas informáticas (véase Práctica 8).
Las curvas definidas de esta forma se pueden dibujar también con la función ezplot, en la
forma siguiente:
ezplot(x,y)
ezplot(x,y,[a,b])
x,y son las dos funciones que definen la curva. Pueden ser especificadas, como antes, mediante
sus expresiones o mediantes manejadores.
Práctica 7 Dibujar, usando ezplot, la curva definida por las ecuaciones (paramétricas)
ezplot('sin(3*t)','cos(t)')
0.8 0.8
0.6 0.6
0.4 0.4
0.2 0.2
0 0
y
−0.2 −0.2
−0.4 −0.4
−0.6 −0.6
−0.8 −0.8
−1
−1 −0.5 0 0.5 1 −1 −0.5 0 0.5 1
x x
Práctica 8 (Propuesta) Escribir un script que dibuje, usando ezplot y funciones anóni-
mas, la curva definida por las ecuaciones:
x(t) = cos(t) + 1/2 cos(7t) + 1/3 sen(17t)
, para t ∈ [0, 2π]
y(t) = sen(t) + 1/2 sen(7t) + 1/3 cos(17t)
θ, que es el ángulo que forma el segmento OP con una semirrecta fija de origen O de-
nominada eje polar. Esta semirrecta coincide, normalmente, con la parte positiva del eje
OX.
En tal sistema de coordenadas, al par (r, θ) se le denomina coordenadas polares del punto
P (ver Figura 3.4).
p/2
y
(x ,y)
P (q, r) P
(q, r)
r r
y=rsen(q)
O q q x
0
Polo Eje polar x=rcos(q)
Figura 3.4: Sistema de coordenadas pola- Figura 3.5: Coordenadas cartesianas y po-
res. lares.
r = f (θ), θ ∈ [a, b]
MATLAB dispone de la función ezpolar para dibujar curvas en coordenadas polares. Su uso
es análogo a la función ezplot:
ezpolar(f)
ezpolar(f,[a,b])
[a, b] (opcional) son los límites del intervalo en el que varía θ, es decir donde varía el ángulo.
Si no se especifica, ezpolar toma por defecto [a, b] = [0, 2π].
ezpolar('sin(2*t)*cos(3*t)',[0,pi])
90
1
120 60
0.8
0.6
150 30
0.4
0.2
180 0
210 330
240 300
270
r = sin(2 t) cos(3 t)
ezpolar('nombre*sin(nombre)')
Por otra parte, cuando se trata de una función de dos variables, y si no se especifica el orden,
MATLAB tomará como primer argumento la primera en orden alfabético y como segundo,
la segunda. Como ejemplo, compruébese cómo las dos órdenes siguientes producen resultados
distintos:
ezplot('1+v/(sin(a)+2)')
ezplot('1+v/(sin(w)+2)')
Esto no sucede si se utilizan funciones anónimas, ya que se indica expresamente el orden de las
variables.
ezplot3(x,y,z)
ezplot3(x,y,z,[a,b])
x,y,z son las expresiones de las tres funciones dependientes de t. Se proporcionan en cual-
quiera de las formas habituales
ezplot3('3*cos(t)','t*sin(t^2)','sqrt(t)')
2.5
1.5
z
0.5
0
10
5 3
2
0 1
0
−5 −1
−2
−10 −3
y
x
comando-de-dibujo-1
hold on
comando(s)-de-dibujo
. . .
hold off
hold on hace que no se borre la gráfica ya existente, de forma que se puede seguir dibujando
encima
hold off anula el efecto de hold on
1.5
0.5
0
y
−0.5
−1
−1.5
−2
−4 −3 −2 −1 0 1 2 3 4
x
Práctica 14 (Propuesta) Escribir un script para dibujar, en la misma ventana, las gráficas
de las funciones y = f (x) e y = g(x) junto con los ejes de coordenadas, siendo
subplot(m,n,k)
m número de filas
n número de columnas
k la ventana activa
Los cuadros se numeran de izquierda a derecha comenzando por la fila de más arriba.
1. Vamos a escribir las órdenes para esta práctica en un script. Crea un fichero de nombre
practica15.m.
2. Divide la ventana gráfica en 4 cuadros (creando una «matriz» 2 × 2), activa el primero
y dibuja en él la función f :
subplot(2,2,1)
ezplot('x/2',[0,4])
subplot(2,2,2)
ezplot('sin(3*x)')
subplot(2,2,3)
ezplot('x^2',[0,4])
subplot(2,2,4)
ezplot('cos(x/2)',[-1,4])
x/2 sin(3 x)
2 1
1.5 0.5
1 0
0.5 −0.5
0 −1
0 1 2 3 4 −5 0 5
x x
x2 cos(x/2)
1
15
10 0.5
5 0
0
−0.5
0 1 2 3 4 −1 0 1 2 3 4
x x
axis on
axis off
axis equal
axis auto
grid on
grid off
title('titulo')
xlabel('Leyenda Eje X')
ylabel('Leyenda Y')
legend('leyenda')
ezplot('2*cos(t)','2*sin(t)',[0,2*pi])
3. Usa el comando axis para visualizar el rectángulo [−4, 4] × [−3, 3] del plano
axis([-4,4,-3,3])
4. Añade ahora el título de la gráfica, las etiquetas de los ejes y una leyenda
title('Nombre y Apellidos')
xlabel('Valores de X')
ylabel('Valores de Y')
legend('Circunferencia')
Nombre y Apellidos
3
Circunferencia
Valotes de Y 1
−1
−2
−3
−4 −2 0 2 4
Valotes de X
3.7 Superficies
ezmesh(f)
ezmesh(f,[a,b])
ezmesh(f,[a,b,c,d])
f es la expresión de la función (de dos variables) f (x, y). Se puede proporcionar en cualquiera
de las formas habituales.
[a,b] (opcional) establece el rectángulo para dibujar la superficie: [a, b] × [a, b]. Si no se
especifica, ezmesh toma [a, b] = [−π, π].
2 +y 2 )
Práctica 19 Dibujar la superficie z = x e−(x
ezmesh('x*exp(-x^2-y^2)')
0.5
−0.5
3
2
1 3
2
0 1
−1 0
−1
−2 −2
−3 −3
y
x
ezmesh(x,y,z)
ezmesh(x,y,z,[a,b])
ezmesh(x,y,z,[a,b,c,d])
x,y,z son las expresiones de las funciones de dos variables x(s, t), y(s, t) y z(s, t)
[a,b] (opcional) define el dominio en que varían s y t: s, t ∈ [a, b]. Si no se especifica, ezmesh
toma [a, b] = [−2π, 2π].
[a,b,c,d] (opcional) define el dominio en que varían s y t: (s, t) ∈ [a, b] × [c, d], es decir,
s ∈ [a, b] y t ∈ [c, d].
ezmesh('cos(s)*(2+cos(t))','sin(s)*(2+cos(t))','t',[0,2*pi])
z
3
0
3
2
3
1 2
0 1
−1 0
−1
−2 −2
−3 −3
y
x
En MATLAB la función ezcontour dibuja las curvas de nivel de una función f (x, y):
ezcontour(f)
La función ezcontourf actúa como el anterior, pero rellena con colores los espacios entre curvas
ezcontourf(f)
La función ezmeshc actúa igual que ezmesh , pero dibuja también las curvas de nivel
ezmeshc(f)
ezcontourf('x*exp(-x^2 - y^2)')
3
−1
−2
−3
−3 −2 −1 0 1 2 3
x
Realización de la Práctica 3
√
El dominio de definición de la función f (x) = 1 − x2 es el intervalo [−1, 1] donde el
radicando es mayor o igual que cero. Obsérvese que ezplot, sin ninguna indicación, dibuja
la gráfica de la función en dicho intervalo:
ezplot('sqrt(1-x^2)')
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
Realización de la Práctica 6
x2 cosh(y) − 7y − 5 = 0
10
5
y
−5
−10 −8 −6 −4 −2 0 2 4 6 8 10
x
Realización de la Práctica 8
2. En su interior escribe:
ezplot(funx,funy)
1.5
0.5
y
−0.5
−1
−1.5
Realización de la Práctica 10
ezpolar('2*sin(6*t)',[0,2*pi])
90
2
120 60
1.5
150 1 30
0.5
180 0
210 330
240 300
270
r = 2 sin(6 t)
Realización de la Práctica 12
ezplot3('cos(t)','sin(t)','t',[0,8*pi])
30
25
20
15
z
10
0
1
0.5 1
0.5
0
0
−0.5
−0.5
−1 −1
y
x
Realización de la Práctica 14
ezplot('cos(x)',[-10,10])
hold on
ezplot('x*sin(x)',[-10,10])
ezplot('0',[-10,10])
ezplot(@(x,y) x,[-10,10])
hold off
2
y
−2
−4
−6
−10 −8 −6 −4 −2 0 2 4 6 8 10
x
Realización de la Práctica 16
2. Escribe dentro:
% Programacion Cientifica
% practica 16 - Tema 3
%
subplot(1,2,1)
ezplot('1/x',[-10,10])
%
subplot(1,2,2)
ezplot('x^2',[-5,5])
1/x x2
4
25
3
2 20
1
15
10
−1
−2 5
−3
0
−4
−10 −5 0 5 10 −5 0 5
x x
Realización de la Práctica 18
2. ezplot('sin(x+log(x))',[1,10])
axis([1,12,-1.5,1.5])
axis equal
title('Nombre y Apellidos')
xlabel('Valores de X')
ylabel('Valores de Y')
legend('Gráfica de y=sen(x+log(x))')
Nombre y Apellidos
4 Gráfica de y=sen(x+log(x))
2
Valotes de Y
1
−1
−2
−3
−4
2 4 6 8 10 12
Valotes de X
Realización de la Práctica 21
ezmesh('(2+cos(s))*cos(t)','(2+0.3*cos(s))*sin(t)','sin(t)',[0,2*pi])
axis equal
0.5
0
z
−0.5
3
2
2
1
1
0 0
−1 −1
−2
−2
y x
Realización de la Práctica 23
ezmeshc('sin(u/2)*sin(v/2)')
0.5
−0.5
−1
6
4
6
2 4
0 2
−2 0
−2
−4
−4
−6 −6
y
x
3.10 Ejercicios
Los resultados de estos ejercicios se pueden comprobar en la página web
http://personal.us.es/echevarria/Curso/Tema3
1. Representar gráficamente las siguientes funciones sobre los intervalos que se indican:
2
a) y = e−x , x ∈ [−2, 2]
b) y = 3x3 + x2 − 8x + 1, x ∈ [−100, 100]
3
c) y = sen(ex ), x ∈ [0, π]
x−1
d) y = 2 , x ∈ [−10, 10]
x +1
e) y = cos(2x) + 12 sen( x2 ), x ∈ [−π, π]
2
f ) y = e−x + 4 − x − 3, x ∈ [0, 5]
r
1−x
g) y =
1+x
h) y = arc sen(x2 − 2), x ∈ [0, 5]
a) x = t2 , y = t − t3 /3, t ∈ [−2, 2]
b) x = t − 3 sen(t), y = 4 − 3 cos(t), t ∈ [0, 10]
c) x = 3 cos(t) − cos(3t), y = 4 sin(t)3 , t ∈ [0, 2π]
d ) x = cos(t) + 1/2 cos(7t) + 1/3 sen(17t), y = sen(t) + 1/2 sen(7t) + 1/3 cos(17t),
t ∈ [0, 2π]
e) x = 17 cos(t) + 7 cos( 17
7
t), y = 17 sen(t) − 7 sen( 17
7
t), t ∈ [0, 14π]
f ) x = 2 cos(t), y = 2 sen(t), t ∈ [0, 2π]
g) x = 5t − 4 sen(t), y = 5 − 4 cos(t), t ∈ [−2π, 2π]
h) x = 4 cos(t) + cos(4t), y = 4 sen(t) − sen(4t), t ∈ [0, 2π]
i ) x = sen(2t), y = sen(3t), t ∈ [0, 2π]
j ) x = sen(4t), y = sen(5t), t ∈ [0, 2π]
a) r = θ, θ ∈ [0, 9π/2]
a) z = x2 /4 + y 2 /9, x, y ∈ [−π, π]
2 2
b) z = y /25 − x , x, y ∈ [−π, π]
ln(x + 2)
c) z = x, y ∈ [0, 5]
ey+3
p
sen( x2 + y 2 )
d) z = p , x, y ∈ [−2π, 2π]
x2 + y 2
e) z = 4 sen(xy), x, y ∈ [−2, 2]
p
f ) z = 25 − x2 − y 2 x, y ∈ [−2, 2]
cos((x2 + y 2 )/4)
g) z = , x, y ∈ [−2π, 2π]
(3 + x2 + y 2 )
h) x = cos(s) sen(t), y = sen(s) sen(t), z = cos(t), s ∈ [0, 2π], t ∈ [0, π]
2 2
i ) x = s, y = t, z = 2s − 3t , s, t ∈ [−2, 2]
24