PDF de programación - MatLab

Imágen de pdf MatLab

MatLabgráfica de visualizaciones

Publicado el 27 de Octubre del 2019
763 visualizaciones desde el 27 de Octubre del 2019
2,1 MB
47 paginas
Creado hace 17a (25/05/2006)
PRÓLOGO

MATLAB es un programa que nos permite desarrollar numerosas aplicaciones
al cálculo, la representación y la programación. En este manual, inspirado en el
libro A MAT LAB companion f or Multivariable Calculus, de Jeffery M. Cooper,
pretendemos complementar la asignatura de Cálculo Diferencial tratando la mayoría
de los puntos del temario desde un punto de vista informático, para que el alumno
pueda desarrollar en el ordenador los resultados que ha visto en clase.

Este trabajo está dividido en seis secciones en las que se exponen los principios
básicos para el manejo del programa sobre tratamiento de vectores: representación,
posición relativa de dos planos, introducción a dimensión superior; curvas en el plano:
curvas paramétricas, tangencias a curvas paramétricas, giros; funciones de dos y tres
variables: declaración, representación, funciones polares, superficies de funciones de
tres variables; resolución de ecuaciones: método de Newton, intersección de curvas
y superficies y por último problemas de optimización.

Además hemos apoyado las explicaciones con numerosos ejemplos y figuras ge-
neradas por MATLAB para que ilustren y ayuden a la hora de reproducir casos
similares.

Hemos utilizado algunas funciones no predeterminadas cuyo código puede en-

contrarse en la página web:

http : //www.math.umd.edu/˜jec/matcomp/matcompmf iles/mf iles.html

Esperamos que este trabajo sea de utilidad a la hora de introducirse en MATLAB
como herramienta aplicable al campo del cálculo multivariable y que anime a los
compañeros a ver el ordenador como una máquina capaz de ayudarnos en el trabajo
matemático.

Por último, agradecemos a nuestro tutor, el profesor José María Martínez Anse-

mil, la ayuda prestada para realizar este trabajo.

Mario Díaz-Romeral Ruiz y Juan Jesús Tebar Moreno
Alumnos de Matemáticas becarios de excelencia de la CAM
CURSO 2005/06

1

1. VECTORES RECTAS Y PLANOS

1.1. Vectores en dimensiones dos y tres.

Los vectores se escriben en MATLAB de la siguiente forma: v = [a, b, c], y la

norma usada en principio es la norma euclídea .

Podemos destacar los siguientes comandos para pintar vectores con punto de
aplicación común, es decir, si tenemos dos vectores v, w y el punto p0, utilizamos el
comando arrow y arrow3 (para dimensión 3)

%EJEMPLO 1.1
%nos muestra gráficamente la resta (lo mismo pasaría con la suma)
%de dos vectores en el plano
p0=[1,1];
v=[1 0];
arrow(p0,v)
hold on %para pintar sobre el dibujo creado
%con el arrow (sin borrarlo)
w=[2,3];
arrow(p0,w)
arrow(p0,v-w,’r’)
%la ’r’ es para que la solución (v-w) salga en rojo
axis equal %son los ejes coordenados
hold off %anula hold on

4

3

2

1

0

-1

-2

-2

-1

0

1

2

3

4

5

Resta de vectores

Tenemos también las funciones dot(v, w) o también v∗ w0 para hacer el producto
escalar de dos vectores; y para el producto vectorial (en tres dimensiones) está la
función cross(v, w).

2

%EJEMPLO 1.2
%producto escalar y vectorial de dos vectores en tres dimensiones
%producto vectorial
SYMS a b c x y z %declaración de variables simbólicas
v=[a b c];
w=[x y z];
cross(v,w)
ans =

[ b*z-c*y, c*x-a*z, a*y-b*x]

%producto escalar
v*w’
ans =

a*conj(x)+b*conj(y)+c*conj(z)

dot(v,w)
ans =

conj(a)*x+conj(b)*y+conj(c)*z

1.2.

Dibujar rectas en dos y tres dimensiones

Se pueden dibujar tan sólo sabiendo dos puntos ( P0 = (x0, y0) y P1 = (x1, y1) )
con el comando plot([x0, x1], [y0, y1]). Idem en tres dimensiones pero con el comando
plot3. (Para una recta poligonal daremos los cinco puntos necesarios.)

También podemos pintar los puntos de las rectas con plot3(x, y, z,0 ∗ 0).
Obsérvese en los dibujos:

%EJEMPLO 1.3
%una recta poligonal
x=[1,1,1,1,1];
y=[2,2,4,5,2];
z=[1,4,3,4,2];
plot3(x,y,z)
%o con plot3(x,y,z,’*’) para que salga con asteriscos

3

4

3.5

3

2.5

2

1.5

1
5

4

3

1

0.5

2

0

2

1.5

Otro comando muy usado que sirve para hacer figuras es f ill (idem en 3 dimen-

siones.)

%EJEMPLO 1.4
%si coinciden las coordenadas x0 con x4,saldrá un triángulo
%en caso contrario une los vértices del punto (xo,yo),(x4,y4)
x=[1,7,5,3,1];y=[2,-1,4,6,2];
fill(x,y,’r’)%para que salga dibujada en rojo

6

5

4

3

2

1

0

-1

1

2

3

4

5

6

7

1.3. Planos

Formas de determinar los planos en tres dimensiones:
1) por un punto del plano y su vector normal.
2) con tres puntos del plano.
3) un punto y dos vectores.

4

En este ejemplo damos dos vectores y un punto para construir el plano :

%EJEMPLO 1.5
p0=[1 1 1];
v=[1 0 0];
w=[1 3 5];
for s=-1:.5:1

for t=-1:.5:1

arrow(p0,s*v+t*w)
hold on

end

end

1

0.5

0

-0.5

-1
-1

0

1

2

4

3

2

1

3

-2

0

-1

Otra manera es con la función predefinida plane(p0, N) en la que p0 es un punto
y N el vector normal al plano, donde sale dibujado mejor el plano, e incluso está
dibujado el vector normal.

%EJEMPLO 1.6
%aquí dibujaremos un plano apoyándonos en la función plane
%realizada por el autor del libro
p0=[1 1 2];
N=[1 0 3];
plane(p0,N)

5

2.8

2.6

2.4

2.2

2

1.8

2

1.5

1

0.5

0.5

1

1.5

0

Podemos dibujar la intersección de dos planos, siempre y cuando éstos se corten.

%EJEMPLO 1.7
%dibujamos dos planos que al tener un punto en común
%y los vectores normales a ambos son diferentes, se cortan
%a lo largo de una recta
p0=[1 3 6];
%punto común
N1=[0 3 3];
N2=[1 2 1];
plane(p0,N1)
%dibuja primer plano
hold on
plane(p0,N2)
L=cross(N1,N2);
%vector normal a N1 y N2
arrow3(p0,L)
%simula la recta intersección de ambos planos
hold off

6

6.8

6.6

6.4

6.2

6

5.8

5.6

5.4

5.2

3.5

3

2.5

2

1.5

1

0.5

0

1.4. Gráficos tridimensionales

Es usual cambiar el punto de vista en gráficos tridimensionales, en MATLAB se
hace dando dos ángulos, (azimut y elevación). Para cambiar dicho punto de vista,
por ejemplo a 40 grados de azimut y 50 de elevación, lo que hacemos es:

1)Poner view(40, 50), para revisar dicho punto de vista; [az, el] = view .
2)Dar un vector view([1 2 1]).
3)Con el comando rotate3don. Pinchando en la figura con el botón izquierdo
y rotando la figura, la elevación y el azimut van apareciendo en la pantalla. Con
rotate3dof f se finaliza el comando.

7

2. CURVAS EN EL ESPACIO

2.1. Representación paramétrica de curvas.

MATLAB reconoce y permite representar curvas dadas en forma paramétrica,
esto es, funciones sobre cada una de las componentes del vector salida por un pa-
rámetro real t.

%EJEMPLO 2.1
%División del intervalo [0,2*pi] en 1000 partes iguales y,
%por expresión paramétrica y representación de la circunferencia unidad
%centrada en el origen.
t=linspace(0,2*pi,1000);
x=cos(t);
y=sin(t);
plot(x,y)
%También podemos declarar las funciones del parámetro
%para las variables empleando el comando ’inline’.
t=linspace(0,2*pi,1000);
x=inline(’cos(t)’,’t’);
y=inline(’sin(t)’,’t’);
plot(x(t),y(t))
%Si declaramos el parámetro como una incógnita simbólica
syms t
x=cos(t);
y=sin(t);
ezplot(x,y)
%El comando ezplot viene con un argumento que es
%el intervalo de definición del parámetro.
%MATLAB toma por defecto t en [0,2*pi]

8

1

0.5

0

-0.5

1
0
-1

-1

-0.5

0

0.5

-1

1

También en el caso tridimensional podemos representar curvas paramétricas de
la forma (x(t), y(t), z(t)) con t el parámetro real con el que venimos trabajando. Un
ejemplo clásico es la hélice circular.

%EJEMPLO 2.2
%Se define el rango del parámetro. Se declaran
%las variables en función del mismo y, por la
%instrucción ’plot3’
%dibuja la hélice circular sobre el espacio.
t=linspace(0,4*pi,1000);
x=cos(t);
y=sin(t);
z=t/(2*pi);
plot3(x,y,z)
%Declarando el parámetro simbólicamente podemos
%representar la hélice circular a través de la
%instruccién ’ezplot3’
syms t
x=cos(t);
y=sin(t);
z=t/(2*pi);
ezplot3(x,y,z,[0,4*pi])
%Se explicita el dominio del parámetro, ya que
%por defecto MATLAB hubiese tomado el intervalo [0,2*pi]

9

2

1.5

1

0.5

0
1

0.5

0

-0.5

0

-0.5

-1

-1

1

0.5

2.2. Vectores tangentes a una curva paramétrica.

Nos planteamos ahora el problema de las tangencias a curvas paramétricas, y

cómo MATLAB lo trabaja.

Podemos conseguir representar conjuntamente la curva y los vectores tangentes
en los puntos que nos interesen, así como obtener otras aplicaciones curiosas, como
se explica a continuación:

%EJEMPLO 2.3
%Declaramos la hélice circular como hemos visto
%anteriormente y tras ello (por medio de ’hold on’
%para sobreescribir en la misma imagen), toma un nuevo
%parámetro ’s’ que divide el dominio, de forma que
%calculamos los vectores tangentes a la hélice
%en esos puntos. Para ello, haciendo uso de un bucle ’for’,
%introduce en ’p’ el punto en que se aplicará el vector,
%y en v la dirección. Con la instrucción ’arrow3’ se representa
t=linspace (0,4*pi,101);
x=inline(’cos(t)’);
y=inline(’sin(t)’);
z=inline(’t/(2*pi)’);
plot3(x(t),y(t),z(t))
hold on

10

for s=linspace(0,4*pi,17);

p=[x(s),y(s),z(s)];
v=[-sin(s),cos(s),1/(2*pi)];
arrow3(p,v,’r’)

end
view(135,40)
%La instrucción view cambia el punto de vista.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Dibujamos la hélice circular con un punto rojo recorriéndola
%a una velocidad proporcional al módulo del vector velocidad
%en el punto por el que pasa.
syms t
x=cos(t);
y=sin(t);
z=t/(2*pi);
ezplot3(x,y,z,[0,4*pi],’animate’);

2.5

2

1.5

1

0.5

0
-2

-1

0

1

2

-1.5

-1

-0.5

0

1

0.5

1.5

También resulta representativo el estudio de algún caso en el que la derivada se

anule.

%EJEMPLO 2.4
%En este ejemplo vemos una curva paramétrica con

11

%un punto en que la derivada no es continua. Viene
%representada junto con unos vectores tangentes por
%algunos puntos.
t=linspace(-1,1,101);
x=inline(’t.^3’);
y=inline(’t.^2’);
plot(x(t),y(t),’c’)
hold on
for j=linspace(-1,1,4);

p=[x(j),y(j)];
v=[3*j^2,2*j];
arrow(p,v,’r’)

end

3

2.5

2

1.5

1

0.5

0

-0.5

-1
-1

0

1

2

3

4

Para la comprensión de estos códigos será necesario conocer las funciones arrow
y arrow3 que se definen en los archivos del mismo nombre y que fueron programadas
por el autor.

2.3.

Longitud de arcos.

El cálculo de la longitud de un segmento recto no plantea exces
  • Links de descarga
http://lwp-l.com/pdf16782

Comentarios de: MatLab (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad