TEMA 5. Script y funciones

Curso de GNU Octave y LATEXpara el apoyo a la investigaci´
on en ingenier´ıa
Curso de GNU Octave y LATEXpara el apoyo a la
investigaci´on en ingenier´ıa
Red de investigaciones y Tecnolog´ıa Avanzada - RITA
Facultad de ingenier´ıa
Universidad Distrital Francisco Jos´
e de Caldas
Copyleft © 2014. Reproducci´
on permitida bajo los
t´erminos de la licencia de documentaci´
on libre GNU
Red de investigaciones y Tecnolog´ıa AvanzadaCurso
- RITA
de (Facultad
GNU Octave
de ingenier´
y LATEXpara
ıa Universidad
el apoyo a Distrital
la investigaci´
Francisco
on en Jos´
ingenier´
Junio,
e de Caldas)
ıa
2014
1/1
Curso de GNU Octave y LATEXpara el apoyo a la investigaci´
on en ingenier´ıa
Introducci´
on
Archivos-M o ficheros script
Otra forma diferente de ejecutar comandos en Octave/Matlab es crear un
fichero con los comandos para ejecutarlo posteriormente. Algunas ventajas
de usar scripts se citan a continuaci´
on:
Los comandos son ejecutados en el orden que aparecen
Se pueden hacer correcciones o cambios posteriores , solo hay que
editar el archivo y ejecutarlo de nuevo.
Los ficheros script tienen extensi´
on .m es la que utiliza y reconoce
OCTAVE/MATLAB cuando se guardan estos archivos.
Red de investigaciones y Tecnolog´ıa AvanzadaCurso
- RITA
de (Facultad
GNU Octave
de ingenier´
y LATEXpara
ıa Universidad
el apoyo a Distrital
la investigaci´
Francisco
on en Jos´
ingenier´
Junio,
e de Caldas)
ıa
2014
2/1
Curso de GNU Octave y LATEXpara el apoyo a la investigaci´
on en ingenier´ıa
Introducci´
on
Ejemplos de aplicaci´on:Funcionamiento del mecanismo de
un pist´on
El mecanismo de un pist´on conectado a una manivela es un problema
cl´asico en aplicaciones de ingenier´ıa. La manivela tiene una velocidad de
rotaci´on de 500 rpm
Calcular y representar gr´aficamente la posici´
on, velocidad y aceleraci´on del
pist´
on para cada una de las revoluciones de la manivela.Representar los 3
gr´aficos distintos en la misma ventana.Considerar que θ = 0◦ en el
instante t = 0.
Red de investigaciones y Tecnolog´ıa AvanzadaCurso
- RITA
de (Facultad
GNU Octave
de ingenier´
y LATEXpara
ıa Universidad
el apoyo a Distrital
la investigaci´
Francisco
on en Jos´
ingenier´
Junio,
e de Caldas)
ıa
2014
3/1
Curso de GNU Octave y LATEXpara el apoyo a la investigaci´
on en ingenier´ıa
Introducci´
on
Soluci´on:Funcionamiento del mecanismo de un pist´on
Se considera que hay una velocidad angular constante θ˙ . con las
condiciones iniciales dadas de tiene entonces que el ´angulo θ para un
determinado instante de tiempo t esta dado por θ = θ˙ ∗ t. Las distancias
d1 y h vienen dadas por:
d1 = r ∗ cos(θ) y h = r ∗ sin(θ)
Se calcula d2 por medio de Teorema de Pitagoras
q
p
d2 = c 2 − h2 = c 2 − (r ∗ sin(θ))2
La posici´on del pist´on viene dada por la distancia x = d1 + d2
Red de investigaciones y Tecnolog´ıa AvanzadaCurso
- RITA
de (Facultad
GNU Octave
de ingenier´
y LATEXpara
ıa Universidad
el apoyo a Distrital
la investigaci´
Francisco
on en Jos´
ingenier´
Junio,
e de Caldas)
ıa
2014
4/1
Curso de GNU Octave y LATEXpara el apoyo a la investigaci´
on en ingenier´ıa
Introducci´
on
Soluci´on:Funcionamiento del mecanismo de un pist´on
Posici´
on del pist´
on en funci´
on del θ
q
x = r ∗ cos(θ) + c 2 − (r ∗ sin(θ))2
Velocidad del pist´
on es x˙ =
dx
dθ
x˙ = −r θ˙ sin(θ) −
Aceleraci´
on del pist´
on es x¨ =
x¨ = −r 2 θ˙2 cos(θ) −
r 2 ∗ θ˙ ∗ sin(2θ)
p
2 ∗ c 2 − (r ∗ sin(θ))2
d 2x
dθ2
4r 2 θ˙2 cos(2θ)(c 2 − (r ∗ sin(θ))2 ) + (r θ˙ sin(2θ))2
4(c 2 − (r ∗ sin(θ))2 )3/2
Red de investigaciones y Tecnolog´ıa AvanzadaCurso
- RITA
de (Facultad
GNU Octave
de ingenier´
y LATEXpara
ıa Universidad
el apoyo a Distrital
la investigaci´
Francisco
on en Jos´
ingenier´
Junio,
e de Caldas)
ıa
2014
5/1
Curso de GNU Octave y LATEXpara el apoyo a la investigaci´
on en ingenier´ıa
Introducci´
on
Soluci´on:Funcionamiento del mecanismo de un pist´on
Se genera un fichero Script en Octave o Matlab que calcula y representa la
posici´on, velocidad y aceleraci´
on del pist´
on para una revoluci´on de la
manivela, se muestra a continuaci´
on el resultado del fichero piston.m
Figura: Gr´afica de posici´
on, velocidad y aceleraci´
on del pist´on
Red de investigaciones y Tecnolog´ıa AvanzadaCurso
- RITA
de (Facultad
GNU Octave
de ingenier´
y LATEXpara
ıa Universidad
el apoyo a Distrital
la investigaci´
Francisco
on en Jos´
ingenier´
Junio,
e de Caldas)
ıa
2014
6/1
Curso de GNU Octave y LATEXpara el apoyo a la investigaci´
on en ingenier´ıa
Introducci´
on
Ejemplos de aplicaci´on:Dipolo el´ectrico
El campo el´ectrico en un punto generado por una carga el´ectrica se
representa por un vector E, cuya magnitud esta dada por la ley de
Coulomb:
Figura: Campo el´ectrico en un punto de una carga
E=
1 q
4π0 r 2
2
C
donde 0 = 8, 8541878 ∗ 10−12 N.m
ıo)
2 (permitividad del vac´
Red de investigaciones y Tecnolog´ıa AvanzadaCurso
- RITA
de (Facultad
GNU Octave
de ingenier´
y LATEXpara
ıa Universidad
el apoyo a Distrital
la investigaci´
Francisco
on en Jos´
ingenier´
Junio,
e de Caldas)
ıa
2014
7/1
Curso de GNU Octave y LATEXpara el apoyo a la investigaci´
on en ingenier´ıa
Introducci´
on
Ejemplos de aplicaci´on:Dipolo el´ectrico
Sea un dipolo el´ectrico con q = 12 ∗ 10− 9C , se quiere calcular la magnitud
del campo el´ectrico a lo largo del eje x , desde x = −5cm hasta x = 5cm
como se muestra en la figura.
Figura: Configuraci´
on de un dipolo el´ectrico
El campo el´ectrico en cualquier punto (x,0) a lo largo del eje x se obtiene
sumando el campo el´ectrico generado por cada una de las
cargas.E = E− + E+ . La magnitud del campo el´ectrico viene dada por la
longitud del vector E.
Red de investigaciones y Tecnolog´ıa AvanzadaCurso
- RITA
de (Facultad
GNU Octave
de ingenier´
y LATEXpara
ıa Universidad
el apoyo a Distrital
la investigaci´
Francisco
on en Jos´
ingenier´
Junio,
e de Caldas)
ıa
2014
8/1
Curso de GNU Octave y LATEXpara el apoyo a la investigaci´
on en ingenier´ıa
Introducci´
on
Soluci´on:Dipolo el´ectrico
Crear un vector x con los puntos a lo largo del eje x
Calcula lapdistancia desde la carga hasta los puntos del eje x
rmenos =p (0,02 − x)2 + 0,022
rmas = (0,02 + x)2 + 0,022
Construir vectores unitarios con direcci´
on desde cada carga a los
distintos puntos sobre el eje x
1
EmenosUV = rm enos
((0,02 − x)i − (0,02)j)
1
EmasUV = rm enos ((0,02 + x)i + (0,02)j)
Calcular la magnitud de los vectores E− + E+ en cada punto usando
la ley de Coulomb
q
q
1
1
|Emenos | = 4π
y |Emas | = 4π
2
2
0 r
0 r
menos
mas
Red de investigaciones y Tecnolog´ıa AvanzadaCurso
- RITA
de (Facultad
GNU Octave
de ingenier´
y LATEXpara
ıa Universidad
el apoyo a Distrital
la investigaci´
Francisco
on en Jos´
ingenier´
Junio,
e de Caldas)
ıa
2014
9/1
Curso de GNU Octave y LATEXpara el apoyo a la investigaci´
on en ingenier´ıa
Introducci´
on
Soluci´on:Dipolo el´ectrico
Crear los vectores E− y E+ multiplicando los vectores unitarios por las
magnitudes
Crear el vector E sumando los vectores E− y E+
Calcular la magnitud de E
Representar E en funci´
on de x
Figura: Representaci´
on vectorial de un dipolo el´ectrico
Red de investigaciones y Tecnolog´ıa AvanzadaCurso
- RITA
de (Facultad
GNU Octave
de ingenier´
y LATEXpara
ıa Universidad
el apoyo a Distrital
la investigaci´
Francisco
on en Jos´
Junio,
ingenier´
e de2014
Caldas)
ıa
10 / 1
Curso de GNU Octave y LATEXpara el apoyo a la investigaci´
on en ingenier´ıa
Introducci´
on
Soluci´on:Dipolo el´ectrico
La siguiente figura muestra la gr´afica obtenida por medio del script
dipolo.m donde se observa el campo el´ectrico generado a los largo del eje
X en un rango entre -5cm y 5cm.
Figura: Campo el´ectrico en eje X de un dipolo el´ectrico
Red de investigaciones y Tecnolog´ıa AvanzadaCurso
- RITA
de (Facultad
GNU Octave
de ingenier´
y LATEXpara
ıa Universidad
el apoyo a Distrital
la investigaci´
Francisco
on en Jos´
Junio,
ingenier´
e de2014
Caldas)
ıa
11 / 1
Curso de GNU Octave y LATEXpara el apoyo a la investigaci´
on en ingenier´ıa
Introducci´
on
Funciones y ficheros de funci´on
Existe la necesidad de operar con funciones distintas que no est´an
predefinidas . Una funci´
on definida es un programa en Octave/Matlab
que el usuario crea y almacena ; esta funci´
on puede ser utilizada al igual
que el resto de funciones del sistema.
Definici´
on de una funci´
on
Define el fichero ser´a tratado como un fichero de funci´on
Define el nombre de la funci´
on
Define el n´
umero y el orden de los argumentos de entrada y salida
La sintaxis de la funci´on se define a continuaci´
on:
Figura: Par´ametros de un fichero de funci´on
Red de investigaciones y Tecnolog´ıa AvanzadaCurso
- RITA
de (Facultad
GNU Octave
de ingenier´
y LATEXpara
ıa Universidad
el apoyo a Distrital
la investigaci´
Francisco
on en Jos´
Junio,
ingenier´
e de2014
Caldas)
ıa
12 / 1
Curso de GNU Octave y LATEXpara el apoyo a la investigaci´
on en ingenier´ıa
Introducci´
on
Funci´on matem´atica
4
√
3x+5
Escribir un fichero de funci´
on para la funci´
on f (x) = x(x 2 +1)
2 .Utilizar la
funci´on para calcular f(x) en x=1,3,5,7,9 y 11
El fichero funcion.m tiene el siguiente contenido:
function y=funcion(x)
y = (x.4 ∗ sqrt(3 ∗ x + 5)./(x.2 + 1).2 )
Para evaluar la funci´on se crea un vector con estos valores y se procede a
utilizar la funci´on creada.
x=1:2:11;
funcion(x)
ans =
0.70711 3.03074 4.13474 4.89710 5.51972 6.06377
Red de investigaciones y Tecnolog´ıa AvanzadaCurso
- RITA
de (Facultad
GNU Octave
de ingenier´
y LATEXpara
ıa Universidad
el apoyo a Distrital
la investigaci´
Francisco
on en Jos´
Junio,
ingenier´
e de2014
Caldas)
ıa
13 / 1
Curso de GNU Octave y LATEXpara el apoyo a la investigaci´
on en ingenier´ıa
Introducci´
on
Conversi´on de unidades de temperatura
Escribir una funci´on llamada f2c.m que convierta grados F a grados C.
Utilizar la funci´on para resolver el siguiente programa . El cambio de
longitud de un objeto ∆L, se debe al cambio de temperatura ∆T , que
viene determinado en la siguiente expresi´
on : ∆L = αL∆T , donde α es el
coeficiente de dilataci´on . Determinar la variaci´
on del ´area e una chapa de
aluminio (α = 23x10− 61/C ) de forma rectangular (4,5mx2,25m) cuando
la temperatura cambia de 40 a 92F
Soluci´
on
Se crea la funci´on f2c.m:
function C=f2c(F)
% Cambio de temperatura de Celcius a Fareheit
C=5*(F-32)./9;
Red de investigaciones y Tecnolog´ıa AvanzadaCurso
- RITA
de (Facultad
GNU Octave
de ingenier´
y LATEXpara
ıa Universidad
el apoyo a Distrital
la investigaci´
Francisco
on en Jos´
Junio,
ingenier´
e de2014
Caldas)
ıa
14 / 1
Curso de GNU Octave y LATEXpara el apoyo a la investigaci´
on en ingenier´ıa
Introducci´
on
Soluci´on:Conversi´on de unidades de temperatura
A continuaci´on se escribe el fichero dilatacion.m que c´alcula la variaci´on
del ´area de la chapa debido al cambio de temperatura.
a1=4.5;b1=2.25;T1=40;T2=92;alpha=23e-6;
deltaT=f2c(T2)-f2c(T1);
a2=a1+alpha*a1*deltaT;
b2=b1+alpha*b1*deltaT;
CambioArea=a2*b2-a1*b1;
fprintf(’La variaci´
on del area es de %6.5f metros
cuadrados.’,CambioArea)
Luego de ejecutar el fichero en la ventana de comandos da el siguiente
resultado.
octave:40> dilatacion
La variaci´
on del area es de 0.01346 metros cuadrados.
Red de investigaciones y Tecnolog´ıa AvanzadaCurso
- RITA
de (Facultad
GNU Octave
de ingenier´
y LATEXpara
ıa Universidad
el apoyo a Distrital
la investigaci´
Francisco
on en Jos´
Junio,
ingenier´
e de2014
Caldas)
ıa
15 / 1
Curso de GNU Octave y LATEXpara el apoyo a la investigaci´
on en ingenier´ıa
Introducci´
on
Aplicaci´on:Crecimiento y decrecimiento exponencial
El crecimiento y decrecimiento de una cantidad se puede modelar a partir
de la siguiente expresi´on:
A(t) = A0 e kt
donde A(t) y A0 representan una magnitud en el instante t y en el instante
0, respectivamente, k es una constante u
´nica espec´ıfica para cada
aplicaci´on.
Escribir una funci´on que utilice este modelo para predecir los siguientes
casos.
1
La poblaci´on de M´exico fue de 67 millones en el a˜
no 1980, y de 79
millones en 1986. Estimar la poblaci´
on en el a˜
no 2014
2
La vida media de un material radioactivo es de 5.8 a˜
nos.¿Cu´anto
quedar´a de una muestra de 7 g de ese mismo material despu´es de 30
a˜
nos?
Red de investigaciones y Tecnolog´ıa AvanzadaCurso
- RITA
de (Facultad
GNU Octave
de ingenier´
y LATEXpara
ıa Universidad
el apoyo a Distrital
la investigaci´
Francisco
on en Jos´
Junio,
ingenier´
e de2014
Caldas)
ıa
16 / 1
Curso de GNU Octave y LATEXpara el apoyo a la investigaci´
on en ingenier´ıa
Introducci´
on
Soluci´on:Crecimiento y decrecimiento exponencial
Para utilizar el modelo del crecimiento exponencial , el valor de la
constante k debe ser calculado resolviendo k en t´erminos de A0 , A(t), t1 :
k=
1 A(t1 )
ln
t1
A0
A partir de que k es conocido , se define una funci´
on crecimiento.m que
resuelve los problemas planteados
Red de investigaciones y Tecnolog´ıa AvanzadaCurso
- RITA
de (Facultad
GNU Octave
de ingenier´
y LATEXpara
ıa Universidad
el apoyo a Distrital
la investigaci´
Francisco
on en Jos´
Junio,
ingenier´
e de2014
Caldas)
ıa
17 / 1
Curso de GNU Octave y LATEXpara el apoyo a la investigaci´
on en ingenier´ıa
Introducci´
on
Soluci´on:Crecimiento y decrecimiento exponencial
Para el caso de la poblaci´
on de M´exico en el 2014 se tiene los
siguientes valores A0 = 67, A(t1 ) = 79, t1 = 6, t = 34, y se calcula a
partir de :
octave:53> crecimiento(67,79,6,34)
At = 170.43
Ahora para el material radioactivo se tiene A0 = 7, A(t1 ) = 3,5 ya que
corresponde al valor del material desintegrado a la mitad, t1 = 5,8 y
t = 30.Se ingresan los valores a la funci´
on:
octave:54> crecimiento(7,3.5,5.8,30)
At = 0.19411
Red de investigaciones y Tecnolog´ıa AvanzadaCurso
- RITA
de (Facultad
GNU Octave
de ingenier´
y LATEXpara
ıa Universidad
el apoyo a Distrital
la investigaci´
Francisco
on en Jos´
Junio,
ingenier´
e de2014
Caldas)
ıa
18 / 1