Sunteți pe pagina 1din 27

Programacin Construccin de arreglos

Ing. Luis Lorenzo Jimnez Garca


27


CAPTULO 2. CONSTRUCCIN DE ARREGLOS.

Objetivo: Mostrar como se crean y direccionan los arreglos de una y dos
dimensiones.

El arreglo es una forma fundamental que MatLab usa para almacenar y manipular
datos. Un arreglo es una lista de nmeros ordenados en renglones y/o columnas. El
arreglo de una dimensin es un rengln o una columna de nmeros y se usa para
representar vectores. El arreglo de dos dimensiones es una coleccin de nmeros
ordenados en renglones y columnas y se usan para representar matrices. En adicin a
los arreglos que solo tienen nmeros, MatLab usa arreglos formados de una lista de
caracteres, que son llamados cadenas.



2.1 Creacin de arreglos de una dimensin (Vectores)

Un vector es una sucesin de nmeros distribuidos en un rengln o en una columna. En
MatLab, un vector es creado mediante la asignacin de sus elementos a la variable
entre corchetes:

nombre_variable = [elementos del vector]

Vector rengln. Para crear un vector rengln escriba los elementos con un espacio en
blanco cuando menos entre cada valor o separados por una coma simple encerrados
entre corchetes, [, , ,].

Vector columna. Para crear un vector columna escriba los elementos separados por
punto y coma (;) o presione enter despus de cada elemento o tambin
transponiendo un vector rengln mediante un apstrofo (') situado al final de su
definicin. Los valores deben estar entre corchetes.



Ejercicio de prctica 2.1

Los siguientes datos corresponden al crecimiento demogrfico de un pas.

Tiempo
(Aos)
1994 1996 1998 2000 2002 2004 2006
Poblacin
(Millones)
127 130 136 145 158 178 211
Programacin Construccin de arreglos

Ing. Luis Lorenzo Jimnez Garca
28


Escriba las instrucciones necesarias para la creacin de vectores rengln y vectores
columna.


Escribiendo los datos en la Ventana de Comandos (Command Window) tenemos (El
usuario debe escribir las instrucciones escritas en color azul en el promt >>):


>> % Vector rengln separando los datos por coma simple:
>> Tiempo = [1994, 1996, 1998, 2000, 2002, 2004, 2006]
Tiempo =
1994 1996 1998 2000 2002 2004 2006
Nota: Dependiendo del ancho de la Ventana de Comandos, los
resultados se despliegan en una sola o en varias lneas.
Para omitir la salida de resultados se escribe punto y coma
(;) al final de la instruccin.

>> % Vector rengln separando los datos con espacio en
>> % blanco:
>> Tiempo = [1994 1996 1998 2000 2002 2004 2006]
Tiempo =
1994 1996 1998 2000 2002 2004 2006

>> % Vector columna separando los datos por punto y coma:
>> Poblacion = [127; 130; 136; 145; 158; 178; 211]
Poblacion =
127
130
136
145
158
178
211

Programacin Construccin de arreglos

Ing. Luis Lorenzo Jimnez Garca
29

>> % Vector rengln separando los datos con espacio
>> Poblacion = [127 130 136 145 158 178 211]
Poblacion =
127 130 136 145 158 178 211

>> % El apstrofo al final de la variable Poblacin cambia a
>> % vector columna
>> vector_columna = Poblacion'
vector_columna =
127
130
136
145
158
178
211

>> % El apstrofo al final de la variable vector_columna
>> % cambia a vector rengln
>> poblacion_renglon = vector_columna'
poblacion_renglon =
127 130 136 145 158 178 211




Ejercicio de prctica 2.2

Realice las siguientes operaciones para la creacin de vectores a partir de una serie de
datos en la Ventana de Comandos.

>> % Las coordenadas de un punto son asignadas al vector
>> % rengln lulu
>> lulu = [2, 4, 5]
lulu =
Programacin Construccin de arreglos

Ing. Luis Lorenzo Jimnez Garca
30

2 4 5
>> % Las coordenadas de un punto son asignadas al vector
>> % columna lulu
>> lulu = [2 ;4; 5]
lulu =
2
4
5

>> % Tambin se puede escribir de la siguiente forma:
>> % Se teclea enter despus de cada valor y se termina
>> % con ]
>> lu = [2
4
5]
lu =
2
4
5

>> % Se asignan valores al vector v
>> v = [35 46 78 23 5 14 81 3 55]
v =
35 46 78 23 5 14 81 3 55

>> % Se despliega el cuarto elemento del vector v
>> v(4)
ans =
23

>> % Se cambia el valor del sexto elemento del vector v
>> v(6) = 273
Programacin Construccin de arreglos

Ing. Luis Lorenzo Jimnez Garca
31

v =
35 46 78 23 5 273 81 3 55

>> % Se suma el segundo y octavo elemento del vector v
>> v(2) + v(8)
ans =
49

>> % Se eleva el valor 5 al cubo y se suma raz cuadrada
>> % de 81 del vector v.
>> v(5)^v(8) + sqrt(v(7))
ans =
134

>> % v no es una matriz y genera error
>> u = v(3,7)
??? Index exceeds matrix dimensions.

>> % Se elimina el sexto elemento
>> v(6) = [ ]
v =
35 46 78 23 5 81 3 55

>> % Se elimina del tercero al sexto elemento
>> v(3:6) = [ ]
v =
35 46 3 55

>> % Se asignan valores al vector1
>> vector1 = [1, 4, 9, 2.66, 3/4]
vector1 =
1.0000 4.0000 9.0000 2.6600 0.7500
Programacin Construccin de arreglos

Ing. Luis Lorenzo Jimnez Garca
32


>> % Raz cuadrada de cada elemento del vector1
>> sqrt(vector1)
ans =
1.0000 2.0000 3.0000 1.6310 0.8660



Existen diferentes formas de crear un vector sin necesidad de explicitar entre corchetes
todos sus elementos:


2.1.1 Creacin de un vector con incrementos constantes, especificando el primer
elemento, el espaciamiento y el ltimo elemento.

Se especifica el primer trmino (valor inicial) vi, el espaciamiento o incremento
(decremento) e y el ltimo trmino (valor final) vf. Los valores deben estar separados
por dos puntos (:)

nombre _variable = [vi:e:vf] nombre _variable = vi:e:vf



Ejercicio de prctica 2.3

Realice los siguientes ejemplos para la asignacin de valores numricos para la
creacin de vectores, en la Ventana de Comandos.


>> % Obtencin de los nmeros entre 10 y 35 separados
>> % por 5 unidades
>> vector2 = [10:5:35]
vector2 =
10 15 20 25 30 35

>> % Obtencin de los nmeros entre 15 y 30 separados por
>> % el valor unitario(default)
>> vector3= 15:30
vector3 =
Programacin Construccin de arreglos

Ing. Luis Lorenzo Jimnez Garca
33

Columns 1 through 10
15 16 17 18 19 20 21 22 23 24
Columns 11 through 16
25 26 27 28 29 30
Nota: El nmero de valores por rengln depende de que tan
abierta o cerrada est la Ventana de Comandos.

>> % Qu valores se asignan a los siguientes vectores?
>> x = [1:2:13]
>> y = [1.5:0.1:2.1]
>> z = [-3:7]
>> a = 21:-3:6
>> b = [0:4:22]
>> c = [13:-2:4]
>> d = -15:2:-8
>> e = [0:pi/10:pi]


Si los nmeros vi, e y vf son tales que el valor final vf no se puede obtener
aadiendo las diferencias e a vi, entonces, el ltimo elemento del vector ser el ltimo
nmero que no exceda vf.


2.1.2 Creacin de un vector con espaciamientos constantes, especificando el
primer elemento, el ltimo elemento y el nmero de elementos.

Un vector en el cul el primer elemento es xi, el ltimo elemento xf y el nmero de
elementos es n, es creado escribiendo el comando linspace y MatLab determina por
default el espaciamiento correcto. Los valores deben estar separados por coma simple
(,).

nombre_variable = linspace(xi,xf,n)



Ejercicio de prctica 2.4

Programacin Construccin de arreglos

Ing. Luis Lorenzo Jimnez Garca
34

Realice los siguientes ejemplos para la asignacin de valores numricos para la
creacin de vectores con el comando linspace, en la Ventana de Comandos.



>> % Obtencin de 6 nmeros entre 0 y 8 igualmente espaciados
>> X = linspace(0,8,6)
X =
0 1.6000 3.2000 4.8000 6.4000 8.0000

>> % Obtencin de 11 nmeros entre 30 y 10 igualmente
>> % espaciados
>> V = linspace(30,10,11)
V =
30 28 26 24 22 20 18 16 14 12 10

>> % Primer elemento 10, ltimo 50 y cuando el nmero de
>> % elementos es omitido el default es 100 valores
>> Z = linspace(10,50)
Z =
Columns 1 through 6
0.0000 10.4040 10.8081 11.2121 11.6162 12.0202
. . . . . .
Columns 89 through 94
45.5556 45.9596 46.3636 46.7677 47.1717 47.5758
Columns 97 through 100
48.7879 49.1919 49.5960 50.0000
Nota: El nmero de valores por rengln depende de que tan
abierta o cerrada est la Ventana de Comandos.

>> % Qu valores se asignan a los siguientes vectores?
>> D = linspace(1,10,3)
>> E = logspace(1,3)
Programacin Construccin de arreglos

Ing. Luis Lorenzo Jimnez Garca
35

>> F = linspace(0,pi,10)




2.2 Creacin de arreglos de dos dimensiones (Matrices)

Un arreglo de dos dimensiones, tambin llamado matriz, distribuye los nmeros en
renglones y columnas. Las matrices se usan para almacenar informacin como si fuera
una tabla y su aplicacin es muy importante en lgebra.

En nomenclatura matemtica, las matrices pueden ser del tipo:


(
(
(
(
(
(

=
(
(
(

=
(
(
(

=
33 9 0 10 2 3
15 5 7 15 1 33
35 0 11 12 0 1
99 8 25 19 7 10
25 11 9 21
10 13 7 6
5 9 4 3
9 8 7
6 5 4
3 2 1
C B A

En este caso, A es una matriz cuadrada 3x3, es decir, tres renglones y tres columnas, B
es una matriz 3x4 (tres renglones y cuatro columnas) y C es una matriz 4x6 (cuatro
renglones y seis columnas). En general una matriz mxn tiene m renglones y n
columnas, adems el producto de m por n nos d el tamao de la matriz (nmero de
elementos)

La matriz es creada asignando los elementos de la matriz a la variable. Para hacer esto
es necesario escribir los elementos rengln por rengln entre corchetes [ ]. Primero se
escribe el corchete abrir [, seguidamente se escribe la primer columna separando los
elementos por espacio o comas. Antes de escribir el siguiente rengln hay que poner un
punto y coma ( ; ) o pulsar enter. Por ltimo se pone el corchete cerrar ] al final del
ltimo rengln.

nombre_variable = [elementos del rengln 1;elementos del rengln
2;elementos de rengln 3;...;elementos del rengln n]

Los elementos de una matriz son nmeros o expresiones matemticas que pueden
incluir nmeros, variables predefinidas y funciones. Todos los renglones deben tener el
mismo nmero de elementos. Si un elemento es cero debe incluirse como tal. Si no se
cumple con esta condicin MatLab manda un mensaje de error.


Programacin Construccin de arreglos

Ing. Luis Lorenzo Jimnez Garca
36


Ejercicio de prctica 2.4

Introduce los datos de las matrices A, B y C dadas anteriormente:


>> % Los renglones de la matriz son separados por ;
>> A = [1 2 3; 4 5 6; 7 8 9]
A =
5 35 43
4 76 81
21 32 40

>> % Los renglones de la matriz son separados por salto de
>> % rengln.
>> B = [3 -4 9 5
6 7 13 10
21 -9 11 25]
B =
3 -4 9 5
6 7 13 10
21 -9 11 25

>> % Los renglones de la matriz son separados por ;
>> % y salto de rengln.
>> C = [-10 7 19 25 8 99;
1 0 12 11 0 35;
-33 1 15 7 5 15;
3 2 10 0 9 33]

C =
-10 7 19 25 8 99
1 0 12 11 0 35
Programacin Construccin de arreglos

Ing. Luis Lorenzo Jimnez Garca
37

-33 1 15 7 5 15
3 2 10 0 9 33

>> D=[1:2:11; 0:5:25; linspace(10,60,6); 67 2 43 68 4 13]
D =
1 3 5 7 9 11
0 5 10 15 20 25
10 20 30 40 50 60
67 2 43 68 4 13
En la matriz D,los dos primeros renglones fueron generados
como vectores usando la notacin para la creacin de
vectores con espaciamientos constantes, el tercer rengln
fue generado usando el comando linspace y el ltimo rengln
fue generado individualmente.



2.2.1 Algunos comandos utilizados para generar matrices.

Algunos de los principales comandos para generar y operar con diferentes tipos de
matrices se muestran en la Tabla 2.1 (The MathWorks, 2010):



Tabla 2.1 Principales funciones para operar con matrices

Funcin Descripcion
zeros (m) Crea una matriz m x m de ceros
zeros(m,n) Crea una matriz m x n de ceros
ones(m) Crea una matriz m x m de unos
ones(m,n) Crea una matriz m x n de unos
eye(n) Crea una matriz identidad n x n
eye(m,n) Crea la matriz m x n con unos en la diagonal principal y
ceros el resto de los elementos.
Programacin Construccin de arreglos

Ing. Luis Lorenzo Jimnez Garca
38

diag(A) Extrae la diagonal de la matriz A como vector columna.
Para cualquier vector A, crea una matriz cuadrada con A
como la diagonal principal
fliplr(A) Voltea la matriz A en su imagen especular de derecha a
izquierda.
flipud(A) Voltea la matriz A verticalmente
size(A) Calcula el orden (tamao) de la matriz A

magic(m)
Crea una matriz mgica m x m. Sus elementos son los
enteros desde 1 hasta n
2
con iguales sumas de renglones
y columnas
rand(m,n) Crea una matriz aleatoria uniforme de m x n
A Calcula la matriz transpuesta de A
rand(m,n) Genera una matriz aleatoria de mxn




Ejercicio de prctica 2.5

Ejecuta las siguientes funciones para generar y manipular matrices

>> % Genera una matriz con elementos nulos de 3x3
>> A = zeros(3)
A =
0 0 0
0 0 0
0 0 0
>> % Genera una matriz con elementos nulos de 3x4
>> A1 = zeros(3,4)
A1 =
0 0 0 0
0 0 0 0
Programacin Construccin de arreglos

Ing. Luis Lorenzo Jimnez Garca
39

0 0 0 0

>> % Genera una matriz unitaria de 3x3
>> C = ones(3)
C =
1 1 1
1 1 1
1 1 1

>> % Genera una matriz unitaria de 4x5
>> C1 = ones(4,5)
C1 =
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1

>> % Genera una matriz identidad de orden 5
>> D = eye(5)
D =
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1

>> % Genera una matriz con unos en la diagonal
>> % principal y ceros el resto
>> D1 = eye(5,4)
D1 =
1 0 0 0
0 1 0 0
Programacin Construccin de arreglos

Ing. Luis Lorenzo Jimnez Garca
40

0 0 1 0
0 0 0 1
0 0 0 0

>> % Genera una matriz aleatoria de 3x4
>> E = rand(3,4)

E =
0.9501 0.4860 0.4565 0.4447
0.2311 0.8913 0.0185 0.6154
0.6068 0.7621 0.8214 0.7919

>> A = [ 1 2 3; 4 5 6; 7 8 9]
A =

1 2 3
4 5 6
7 8 9

>> % Extrae la diagonal de una matriz A
>> diag(A)

ans =
1
5
9

>> % Voltea la matriz A en su imagen especular de
>> % derecha a izquierda
>> fliplr(A)
ans =
3 2 1
6 5 4
9 8 7
>> % Voltea la matriz A verticalmente
>> flipud(A)
ans =
7 8 9
4 5 6
Programacin Construccin de arreglos

Ing. Luis Lorenzo Jimnez Garca
41

1 2 3

>> % Crea una matriz mgica 3x3
>> magic(3)
ans =
8 1 6
3 5 7
4 9 2

2.3 Uso de los dos puntos (:) en la manipulacin de arreglos de una y
dos dimensiones

Los dos puntos se utilizan para acceder a un rango de elementos dentro de un vector o
una matriz. En forma resumida tenemos:

Para vectores:
vec(:) se refiere a todos los elementos del vector vec, ya sea un vector rengln o
columna.
vec(m,n) se refiere a todos los elementos comprendidos entre las posiciones m y n
del vector vec.

Para matrices:
A(:,n) se refiere a los elementos de la columna n de la matriz A.
A(n,:) se refiere a los elementos del rengln n de la matriz A.
A(:,m:n) se refiere a los elementos entre las columnas m y n de la matriz A.
A(m:n,:) se refiere a los elementos entre los renglones m y n de la matriz A.
A(m:n,p:q) se refiere a los elementos del rengln m al n y los de la columna p a la q
de la matriz A.



Ejercicio de prctica 2.6

Realice los siguientes ejercicios de vectores y matrices en MatLab y observe los
resultados.


>> % Define un vector rengln a
>> a = [3 8 1]
Programacin Construccin de arreglos

Ing. Luis Lorenzo Jimnez Garca
42


>> % Define el vector rengln b como la transpuesta de a.
>> b = a'

>> % Define una matriz c de 3x4
>> c = [4 7 2 5; 30 12 7 9; 18 3 9 1]

>> % Define la transpuesta d de una matriz c
>> d = c'

>> % Se crea un vector z
>> z = [4 6 9 2 12 56 78 32 39]

>> % w es creado desde el elemento 3 hasta el 7 del vector z
>> w = z(3:7)

>> % Define una matriz A de 5x6. Todos los datos en una lnea
>> A = [1 3 5 7 9 11; 2 4 6 8 10 12; 3 6 9 12 15 18; 4 8 12 16
20 24; 5 10 15 20 25 30]

>> % Elementos de todos los renglones de la columna 3 de A
>> b = A(:,3)

>> % Elementos de todas las columnas del rengln 2 de A
>> c = A(2,:)

>> % Elementos del rengln 2 al rengln 4,todas las columnas
>> e = A(2:4,:)

>> % Elementos del rengln 1 al 3 y de la columna 2 a la 4.
>> f = A(1:3,2:4)

Programacin Construccin de arreglos

Ing. Luis Lorenzo Jimnez Garca
43






Ejercicio de prctica 2.7

Realice los siguientes ejercicios de vectores y matrices y analice su salida en MatLab.


>> % Se crea la matriz A
>> A = [1 3 5; 7 9 11]
>> % Se anula el elemento (2,3)
>> A(2,3)= 0

>> % La transpuesta de A
>> b = A'
>> c = [ b eye(3)]

>> % Se extraen las columnas impares de la matriz c
>> d = c(:,1:2:5)

>> % Interseccin de los dos primeros renglones de c y sus
>> % columnas tercera y quinta
>> e = c([ 1 2],[3 5])

>> % Interseccin de los dos primeros renglones y las tres
>> % ltimas columnas de la matriz c
>> f = c ( [1 2] , 3:5)

>> % Los elementos de la diagonal de g son los mismos de la
>> % diagonal d
>> g = diag(diag(d))

>> % Interseccin del 1y 3 rengln de c y su 2,3 y
Programacin Construccin de arreglos

Ing. Luis Lorenzo Jimnez Garca
44

>> % 5 columna
>> h = c ([1 3],[2 3 5])

>> % Matriz identidad, nula y unitaria de 5x4
>> i = [eye(5,4),zeros(5,4),ones(5,4)]

>> % Llamamos al primer rengln y todas las columnas
>> i(1,:)


>> % Se forma j con los renglones impares y las columnas
>> % pares
>> j = i(1:2:5, 2:2:12)

>> % Se calcula el orden o tamao de j
>> size(j)

>> % Nueva matriz
>> m = [3 11 6 5; 4 7 10 2; 13 9 0 8]

>> % Se asigna el valor de 20 al 3 rengln y 1 columna
>> m(3,1) = 20
>> m(2,4) m(1,2)

>> % Elimina todos los renglones de la columna 2 hasta 4.
>> m(:,2:4) = [ ]



2.4 Variables cadenas o strings

Una cadena es un arreglo de caracteres, que pueden ser letras, dgitos, otros smbolos
y espacios encerrados entre apstrofos (') y se asignan al nombre de una variable.
Tambin se puede usar el comando char
Programacin Construccin de arreglos

Ing. Luis Lorenzo Jimnez Garca
45


nombre_variable = char('cadena 1' , 'cadena 2' , 'cadena 3' )



Ejercicio de prctica 2.7

Realice los siguientes procesos de variables cadena:


>> b = 'Mi nombre es Luis Rodrigo'
b =
Mi nombre es Luis Rodrigo
>> Datos = char('Nombre del estudiante:','Luis Rodrigo',
'Grado:', '2-1')
Datos =
Nombre del estudiante:
Luis Rodrigo
Grado:
2-1




2.5 Aplicaciones


Problema 1. Uno de los clculos bsicos en ingeniera es encontrar la fuerza resultante
sobre un objeto que se empuja o jala en mltiples direcciones. Sumar fuerzas es el
clculo principal que se realiza en clases de esttica y dinmica. Considere un globo
sobre el que actan las fuerzas que se muestran en la Figura 2.1. Encuentre la
magnitud y la direccin de la fuerza total.

Programacin Construccin de arreglos

Ing. Luis Lorenzo Jimnez Garca
46

Figura 2.1 Globo sujeto a fuerzas

Solucin:
Para encontrar la fuerza total o neta que acta sobre el globo, se necesita sumar la
fuerza debida a la gravedad, la fuerza debida a la flotabilidad y la fuerza debida al
viento. Un enfoque es encontrar la fuerza en la direccin y la fuerza en la direccin
para cada fuerza individual y luego recombinarlas en un resultado final.

La fuerza en las direcciones y se pueden encontrar a partir de trigonometra (Fig.
2.2):







Figura 2.2 Direcciones de fuerzas



()

()

()


Se pueden sumar todas las fuerzas en la direccin y todas las fuerzas en la direccin
y usar estos totales para encontrar la fuerza resultante:




Para encontrar la magnitud y el ngulo de

, se calcula la tangente (Fig. 2.3):


Programacin Construccin de arreglos

Ing. Luis Lorenzo Jimnez Garca
47



()


]
Figura 2.3 Magnitudes


Nota: La tangente inversa tambin se llama arco tangente.

Una vez conocido se puede encontrar

con seno o coseno:



()


()



Suponga que la fuerza debida a la gravedad en este globo particular es de 100 N,
dirigida hacia abajo, la fuerza de flotacin es de 200 N, dirigida hacia arriba y la fuerza
del viento es de 50 N, en un ngulo de 30 grados desde la horizontal, como se muestra
en la Fig. 2.4:


Fuerza gravitacional Fuerza de flotacin Fuerza del viento

Figura 2.4 Fuerzas principales que actan sobre el globo


De esta manera se puede encontrar la magnitud y la direccin de la fuerza resultante o
total.


Programacin Construccin de arreglos

Ing. Luis Lorenzo Jimnez Garca
48

Se generan las instrucciones en un archivo M-File Script (Este tipo de archivos se
tratan en el Cap. 4) en el editor de MatLab y se salvan con el nombre de globo
(Automticamente MatLab les d la extensin .m)

% Calcular la magnitud y la direccin de la fuerza
% total que se ejerce sobre un globo aerosttico
% Se definen las entradas de las fuerzas (F) y
% los ngulos (Grados) como vectores.
F = [100, 200, 50];
grados = [-90, +90, +30];

% Se transforma los grados a radianes
theta = grados*pi/180;

% Encuentra las componentes x
FX = F.*cos(theta);

% Suma las componentes x
FXtotal = sum(FX);

% Encuentra y suma las componentes de y
FYtotal = sum(F.*sin(theta));

% Se obtiene el ngulo resultante en radianes
theta_resul_radianes = atan(FYtotal/FXtotal);

% Se transforma el ngulo resultante en grados
theta_resul_grados = theta_resul_radianes*180/pi

% Encuentra la magnitud de la fuerza resultante
Ftotal = FXtotal/cos(theta_resul_radianes



Programacin Construccin de arreglos

Ing. Luis Lorenzo Jimnez Garca
49

En la Ventana de Comandos de MatLab se escribe el nombre del archivo globo.



>> globo
theta_resul_grados =
70.8934
Ftotal =
132.2876



La magnitud es de 132.2876 N y la direccin de 70.8934 grados.







Problema 2. El rango de un objeto que se lanza en un ngulo con respecto al eje x
y una velocidad inicial

est dado por (Fig. 2.5):






Figura 2.5 Rango de un can


()

() (Sin considerar la resistencia del aire)




Si el can se apunta recto hacia arriba, se sabe que el rango es cero, y si el can
est horizontal, el rango tambin es cero. Esto significa que el rango debe aumentar
con el ngulo del can hasta algn mximo y luego disminuir (Fig. 2.6).


Programacin Construccin de arreglos

Ing. Luis Lorenzo Jimnez Garca
50


Figura 2.6 Movimientos del can


Use

, una velocidad inicial de 50 m/s y 100 m/s y vare los valores de


con incrementos de 0.1, para calcular los rangos.

- Despliegue los resultados en forma tabular con los valores de y los rangos.
- Grafique ambos conjuntos de resultados en una sola grfica.
- Obtenga el rango mximo y el ngulo en que se alcanza.

Solucin:

Se generan las instrucciones en un archivo M-file y se salvan con el nombre de canon.
(En el Cap. 4 se tratar al detalle los archivos M-File o Script).


% Calcula el rango de un proyectil balstico
% Se definen las constantes:
% g es la aceleracin de la gravedad
% v1 y v2 son las velocidades iniciales del can
g = 9.81;
v1 = 50;
v2 = 100;

% Se define el vector angulo
ang = 0:0.1:pi/2;

Programacin Construccin de arreglos

Ing. Luis Lorenzo Jimnez Garca
51

% Calcula el rango para las dos condiciones iniciales
r1 = v1^2/g*sin(2*ang);
r2 = v2^2/g*sin(2*ang);

% Despliega los resultados en forma tabular
double([ang',r1',r2'])
% Grafica los resultados(Fig. 2.8)
plot(ang,r1,'-*',ang,r2,'-or'),grid
title('Rango del can')
xlabel('ngulo del caon (rad)')
ylabel('Rango (m)')
legend('velocidad inicial=50m/s','velocidad inicial=100m/s')



Se escribe el nombre del archivo canon en la Ventana de Comandos y se ejecuta:

>> canon

Reagrupando la salida de datos del archivo canon.m, en forma tabular tenemos:


ngulo
del can
(radianes)
Velocidad
inicial
50 m/s
(m)
Velocidad
inicial
100 m/s
(m)
0 0 0
0.1 50.2 200.7
0.2 98.3 393.4
0.3 142.6 570.3
0.4 181.2 724.6
Programacin Construccin de arreglos

Ing. Luis Lorenzo Jimnez Garca
52

0.5 212.5 850.0
0.6 235.4 941.5
0.7 248.9 995.4
0.8 252.4 1009.7
0.9 245.9 983.7
1.0 229.6 918.5
1.1 204.2 816.7
1.2 170.6 682.3
1.3 130.2 520.7
1.4 84.6 338.4
1.5 35.6 142.5




En forma grfica tenemos (Fig. 2.7):

Programacin Construccin de arreglos

Ing. Luis Lorenzo Jimnez Garca
53


Figura 2.7 Comportamiento de proyectil balstico




Si usamos la opcin Data cursor, se observa que el rango mximo para una velocidad
inicial de 100 m/s es 1,010 m. y para 50 m/s es 252.4 m. Ambas soluciones tienen un
pico en el mismo ngulo, aproximadamente a 0.8 radianes. El valor numrico
corresponde para es 0.785 radianes, esto es, el rango mximo se logra a 45
grados.





0 0.5 1 1.5
0
200
400
600
800
1000
1200
X: 0.8
Y: 1010
Rango del can
ngulo del caon (rad)
R
a
n
g
o

(
m
)
X: 0.8
Y: 252.4
Velocidad inicial = 50 m/s
Velocidad inicial = 100 m/s

S-ar putea să vă placă și