Вы находитесь на странице: 1из 17

02 Funciones y ficheros de función Mg.

Amado Malca Villalobos

FUNCIONES Y FICHEROS DE FUNCION


Considere una función usual, con una variable de entrada (independiente, y una
variable de salida (dependiente). Lo que varia es la cantidad de argumentos que pueden
tener estas variables.
Ejemplo:
y  f  x   2 x  6 , una variable de entrada, y una de salida.
z  F  x, y   2 x 2  6 xy  y 3  8 , dos variables de entrada, y una de salida.
u, v   G  x, y, z    2 x  5 y  z, x  3 y  5z  , tres variables de entrada, y dos de salida.

Para realizar estas funciones se usaran archivos script de extensión: ****.m. En el


desarrollo de estas funciones es posible usar funciones predefinidas por MatLab,
también se pueden usar funciones definidas por el usuario, las cuales deben ubicarse
siempre en la carpeta de trabajo de MatLab.

Funciones predefinidas: cos(x), sqrt(x), exp(x), det(A), etc.

Funciones definidas por el usuario; generalmente para representar una función que se
usara en varios programas adicionales.

x FUNCIÓN y  f  x

CREACIÓN DE UN ARCHIVO DE FUNCIÓN


Básicamente un archivo de función, es un archivo tipo .m, visto en el capitulo tres. Pero
la diferencia está en la primera línea, que lleva una forma especial, para indicar lo de
función.
Ejemplo: Vamos a construir una función cuadrática, de la forma
y  f  x   3x 2  6 x  8, x  R
funcuad.m Ejecución en la ventana de comandos de
MatLab
function y =funcuad(x) >> y=funcuad(1),z=funcuad(2),w=funcuad(3)
y= 1
% Cálculo del valor de una
función cuadrática
z = 16
% w = 37
% El argumento de entrada es: >> y=funcuad([1,2,3])
% x: un numero real y = 1 16 37
% >> y=funcuad([1;2;3])
% El argumento de salida es:
y=
% y = 3x^2+6x-8, tambien real
1
y=3*x.^2+6*x-8; 16
37
>>

02 archivos de función 1
02 Funciones y ficheros de función Mg. Amado Malca Villalobos

Archivo script: funcuad.m

Con esta función se podrían hacer muchas cosas, como: graficar, derivar, integrar, etc.
Veamos una de ellas, grafiquemos en el intervalo [-10,10]

En la ventana de comandos de MatLab.


>> x=-10:0.1:10; y=funcuad(x); plot(x,y),grid
>>
Grafico Resultante:
400

350

300

250

200

150

100

50

-50
-10 -5 0 5 10

02 archivos de función 2
02 Funciones y ficheros de función Mg. Amado Malca Villalobos

Análisis completo de una función cuadrática

Problema: dada una función cuadrática mediante sus coeficientes, y el intervalo de


definición. Ingresados via una función que los pida por teclado, mostrar:
a) El vértice, el foco, el parámetro p, la directriz.
b) la grafica de la parábola con sus elementos
c) La integral en el intervalo [d,e]
𝑦 = 𝑎𝑥 2 + 𝑏𝑥 + 𝑐, 𝑥 𝑒𝑛 [𝑑, 𝑒]
Equivale a
2
1 2 ℎ ℎ2
(𝑥
4𝑝(𝑦 − 𝑘) = − ℎ) ≡ 𝑦 = 𝑥 − 𝑥+ +𝑘
4𝑝 2𝑝 4𝑝
1 −𝑏 𝑏2
𝑝= , (ℎ, 𝑘) = ( , 𝑐 − ) , 𝐹 = (ℎ, 𝑘 + 𝑝), 𝐿: 𝑦 = 𝑘 − 𝑝
4𝑎 2𝑎 4𝑎
fcuadratica.m Ejecución en la ventana de comandos de
MatLab
function fcuadratica(a,b,c,d,e) >> fcuadratica(1,2,3,-4,5)
V = -1 2
V=[-b/(2*a),c-(b^2/(4*a))]
p=1/(4*a)
p = 0.2500
F=V+[0,p] F = -1.0000 2.2500
dx=(e-d)/100 dx = 0.0900
x=d:dx:e; Intgral = 99.0000
y=a*x.^2+b*x+c; >>
inty=[a/3 b/2 c 0];
Intgral=polyval(inty,e)-
polyval(inty,d)
n=length(x);
dz=(V(2)-p)*ones(n,1);
plot(x,y,x,dz)

40

35

30

25

20

15

10

0
-4 -3 -2 -1 0 1 2 3 4 5

02 archivos de función 3
02 Funciones y ficheros de función Mg. Amado Malca Villalobos

Ejemplo: Cálculo de la altura y la distancia máximas que alcanzan un proyectil, cuando


se lanza con un ángulo determinado, y con una velocidad inicial dada.
funcuad.m
function [hmax,dmax]=trayectoria(v0,theta)
% Cálculo de la altura y la distancia máximas, que alcanzan un
proyectil
%
% Los argumentos de entrada son:
% v0: velocidad inicial en m/s
% theta: ángulo en grados sexagesimales.
%
% Los argumentos de salida son:
% hmax: altura máxima en metros
% dmax: distancia máxima en metros

g=9.81;
v0x=v0*cos(theta*pi/180);
v0y=v0*sin(theta*pi/180);
thmax=v0y/g;hmax=v0y^2/(2*g);
ttot=2*thmax;dmax=v0x*ttot;

%Creación de un grafico de la trayectoria


tplot=linspace(0,ttot,200);
x=v0x*tplot;;
y=v0y*tplot-0.5*g*tplot.^2;
plot(x,y), grid
xlabel('DISTANCIA (m)')
ylabel('ALTURA (m)')
title('TRAYECTORIA DE UN PROYECTIL')
Ejecución en la ventana de comandos de MatLab
>> [hmax,dmax]=trayectoria(120,30)
hmax = 183.4862
dmax = 1.2712e+003
>> [hmax,dmax]=trayectoria(80,60)
hmax = 244.6483
dmax = 564.9911
>>

Grafico resultante
TRAYECTORIA DE UN PROYECTIL
250

200
ALTURA (m)

150

100

50

0
0 100 200 300 400 500 600
DISTANCIA (m)

02 archivos de función 4
02 Funciones y ficheros de función Mg. Amado Malca Villalobos

Ventana del programa: trayectoria.m

LAS PARTES DE UN FICHERO DE FUNCIÓN

Línea de definición de la función


Aquí tenemos la expresión: “function”, que define el fichero como una función.
También se define el nombre de la función. Y finalmente se define el número y orden
de los argumentos de entrada y salida. Siempre va en la primera línea.
El esquema de esta línea es:
f unction [argumentos de salida]  nombre_funcion  argumentos de entrada 
O también
f unction argumento de salida  nombre_funcion  argumentos de entrada 

La línea H1 y las líneas de texto de ayuda


Inmediatamente después de la línea de definición de función, están la llamada línea H1
y las líneas de texto de ayuda, que siempre empiezan con el símbolo “%”. Y
proporcionan información descriptiva sobre la función. La línea H1 es la que Matlab
busca en algunos casos de búsqueda de algunas palabras relacionadas con funciones.
Además esto se muestra con el comando “help nombre_funcion”
>> help trayectoria
Calculo de la la altura y la distancia máximas que alcanzan un proyectil

02 archivos de función 5
02 Funciones y ficheros de función Mg. Amado Malca Villalobos

Los argumentos de entrada son:


v0: velocidad inicial en m/s
theta: ángulo en grados.

Los argumentos de salida son:


hmax: altura máxima en metros
dmax: distancia máxima en metros

Cuerpo de la función
Aquí se tiene el código del programa mismo, que incluirá operaciones de entrada y/o
salida, también salida de gráficos si el problema lo amerita.

FUNCIONES EN LINEA
Se usan para realizar funciones simples, que también pueden tener una o más variables
de entrada.
nombre  inline  'exp resion matematica en forma de cadena '
nombre  inline  'exp resion matematica ','arg1','arg 2', ,'arg n ' 

y  f  x   3x 2  6 x  8
Ejemplo: Considerando la función cuadrática:

>> f=inline('3*x^2+6*x-8') % definiendo una function en linea


f = Inline function:
f(x) = 3*x^2+6*x-8
>> f=inline('3*x^2+6*x-8','x') % agregando la variable
f = Inline function:
f(x) = 3*x^2+6*x-8
>> f(1)
ans = 1
>> f(2)
ans = 16

Ejemplo: Ahora consideraremos una función real de dos variables:

>> G=inline('3*x+6*y+9*x*y-6','x','y')
G = Inline function:
G(x,y) = 3*x+6*y+9*x*y-6
>> G(1,2)
ans = 27
>> G(1,2),G(6,8)
ans = 27
ans = 492
>> [G(1,2), G(3,5), G(8,1), G(3,7)]
ans = 27 168 96 234
>> x=[1 2 3],y=[7 6 4]
x= 1 2 3
y= 7 6 4
>> G(x,y)
??? Error using ==> inlineeval at 15

02 archivos de función 6
02 Funciones y ficheros de función Mg. Amado Malca Villalobos

Error in inline expression ==> 3*x+6*y+9*x*y-6


Inner matrix dimensions must agree.
Error in ==> inline.subsref at 27
INLINE_OUT_ = inlineeval(INLINE_INPUTS_,
INLINE_OBJ_.inputExpr, INLINE_OBJ_.expr);

Como aparece un error debemos redefinir la función, para cuando los argumentos son
vectores o matrices.

>> G=inline('3*x+6*y+9*x.*y-6','x','y') % véase la diferencia


G = Inline function:
G(x,y) = 3*x+6*y+9*x.*y-6
>> G(x,y)
ans = 102 144 135
>>
Ahora una función de dos variables de entrada y dos de salida
>> g=inline('[3*x+6*y+9,x+y-6]','x','y')
g = Inline function:
g(x,y) = [3*x+6*y+9,x+y-6]
>> g(2,3)
ans = 33 -1
>> x=[1 3 5],y=[9 8 4]
x= 1 3 5
y= 9 8 4
>> g(x,y)
ans = 66 66 48 4 5 3
>> g(1,9),g(3,8),g(5,4)
ans = 66 4
ans = 66 5
ans = 48 3
>>

Ejemplos 02: g  x, y   4x5 y  7 x3 y 2  8x2 y 4  6x  29 y 6


>> G=inline('4*(x.^5).*y+7*(x.^3).*(y.^2)-8*(x.^2).*(y.^4)+6*x-29*(y.^6)')
G = Inline function:
G(x,y) = 4*(x.^5).*y+7*(x.^3).*(y.^2)-8*(x.^2).*(y.^4)+6*x-29*(y.^6)
>> G(5,6),G(8,7),G(9,1)
ans = -1505694
ans = -3547965
ans = 240676
>> x=[-2 -1 0 1 2 3 4 5],y=[-3 -2 -1 0 1 2 3 4]
x = -2 -1 0 1 2 3 4 5
y = -3 -2 -1 0 1 2 3 4
>> G(x,y)
ans = -23865 -2010 -29 6 135 -290 -15165 -105954

02 archivos de función 7
02 Funciones y ficheros de función Mg. Amado Malca Villalobos

EL COMANDO “feval”
Este comando evalúa el valor de una función, en algún o algunos valores dados. La
diferencia con el caso anterior, está en que aquí se da la función, solo el nombre, y se
evalúa en el valor dado.
variable = feval(‘nombre_funcion’,valor_argumento)

Se tiene que seguir ciertos lineamientos, como son:


-El nombre de la función debe introducirse en forma de cadena.
-La función puede ser una de MATLAB, o alguna definida por el usuario.
- Los argumentos de entrada se separan por comas, y después del nombre de la función.
-Los argumentos de salida van entre corchetes, y separados por comas.

Ejemplo 01: Aquí vamos a definir una función H, y luego la evaluamos en x=1.
>> H=inline('exp(x.^2)./(1+x.^4)')
H = Inline function: H(x) = exp(x.^2)./(1+x.^4)
>> feval(H,1)
ans = 1.3591
>>
Ejemplo 02:
>> D=feval(inline('exp(x.^2)./(1+x.^4)'),1)
D = 1.3591
>> H=inline('exp(x.^2)./(1+x.^4)')
H = Inline function: H(x) = exp(x.^2)./(1+x.^4)
>> feval(H,1)
ans = 1.3591

>> G=inline('exp(x.^2)./(y+x.^4)')
G = Inline function: G(x,y) = exp(x.^2)./(y+x.^4)
>> feval(G,1,1)
ans = 1.3591
>> feval(G,4,5)
ans = 3.4046e+004

>> D=feval(inline('exp(x.^2)./(1+x.^4)'),1)
D = 1.3591
>> D=feval('sin',0)
D= 0
>> D=feval('sin',pi/6)
D = 0.5000
>> D=feval(inline('cos(x)+tan(x)'),pi/7)
D = 1.3825

02 archivos de función 8
02 Funciones y ficheros de función Mg. Amado Malca Villalobos

Problema: dada una función cuadrática mediante sus coeficientes, y el intervalo de


definición. Ingresados via una función que los pida por teclado, mostrar:
a) El vértice, el foco, el parámetro p, la directriz.
b) la grafica de la parábola con sus elementos
c) La integral en el intervalo [d,e]
𝑦 = 𝑎𝑥 2 + 𝑏𝑥 + 𝑐, 𝑥 𝑒𝑛 [𝑑, 𝑒]
Equivale a
2
1 2 ℎ ℎ2
(𝑥
4𝑝(𝑦 − 𝑘) = − ℎ) ≡ 𝑦 = 𝑥 − 𝑥+ +𝑘
4𝑝 2𝑝 4𝑝
1 −𝑏 𝑏2
𝑝= , (ℎ, 𝑘) = ( , 𝑐 − ) , 𝐹 = (ℎ, 𝑘 + 𝑝), 𝐿: 𝑦 = 𝑘 − 𝑝
4𝑎 2𝑎 4𝑎
fcuadratica.m Ejecución en la ventana de comandos de
MatLab
function fcuadratica(a,b,c,d,e) >> fcuadratica(1,2,3,-4,5)
V = -1 2
V=[-b/(2*a),c-(b^2/(4*a))]
p=1/(4*a)
p = 0.2500
F=V+[0,p] F = -1.0000 2.2500
dx=(e-d)/100 dx = 0.0900
x=d:dx:e; Intgral = 99.0000
y=a*x.^2+b*x+c; >>
inty=[a/3 b/2 c 0];
Intgral=polyval(inty,e)-
polyval(inty,d)
n=length(x);
dz=(V(2)-p)*ones(n,1);
plot(x,y,x,dz)

40

35

30

25

20

15

10

0
-4 -3 -2 -1 0 1 2 3 4 5

Ejemplo: Cálculo de la altura y la distancia máximas que alcanzan un proyectil, cuando


se lanza con un ángulo determinado, y con una velocidad inicial dada.

02 archivos de función 9
02 Funciones y ficheros de función Mg. Amado Malca Villalobos

funcuad.m
Function [hmax,dmax]=trayectoria(v0,theta)
% Cálculo de la altura y la distancia máximas, que alcanzan un
proyectil
%
% Los argumentos de entrada son:
% v0: velocidad inicial en m/s
% theta: ángulo en grados sexagesimales.
%
% Los argumentos de salida son:
% hmax: altura máxima en metros
% dmax: distancia máxima en metros

g=9.81;
v0x=v0*cos(theta*pi/180);
v0y=v0*sin(theta*pi/180);
thmax=v0y/g;hmax=v0y^2/(2*g);
ttot=2*thmax;dmax=v0x*ttot;

%Creación de un grafico de la trayectoria


tplot=linspace(0,ttot,200);
x=v0x*tplot;;
y=v0y*tplot-0.5*g*tplot.^2;
plot(x,y), grid
xlabel('DISTANCIA (m)')
ylabel('ALTURA (m)')
title('TRAYECTORIA DE UN PROYECTIL')
Ejecución en la ventana de comandos de MatLab
>> [hmax,dmax]=trayectoria(120,30)
hmax = 183.4862
dmax = 1.2712e+003
>> [hmax,dmax]=trayectoria(80,60)
hmax = 244.6483
dmax = 564.9911
>>
TRAYECTORIA DE UN PROYECTIL
250

200
ALTURA (m)

150

100

50

0
0 100 200 300 400 500 600

Grafico resultante DISTANCIA (m)

Problema: dada una función cuadrática mediante sus coeficientes, y el intervalo de


definición. Ingresados via una función que los pida por teclado, mostrar:
a) El vértice, el foco, el parámetro p, la directriz.
b) la grafica de la parábola con sus elementos
c) La integral en el intervalo [d,e]
𝑦 = 𝑎𝑥 2 + 𝑏𝑥 + 𝑐, 𝑥 𝑒𝑛 [𝑑, 𝑒]
Equivale a
2
1 2 ℎ ℎ2
4𝑝(𝑦 − 𝑘) = (𝑥 − ℎ) ≡ 𝑦 = 𝑥 − 𝑥+ +𝑘
4𝑝 2𝑝 4𝑝

02 archivos de función 10
02 Funciones y ficheros de función Mg. Amado Malca Villalobos

1 −𝑏 𝑏2
𝑝= , (ℎ, 𝑘) = ( , 𝑐 − ) , 𝐹 = (ℎ, 𝑘 + 𝑝), 𝐿: 𝑦 = 𝑘 − 𝑝
4𝑎 2𝑎 4𝑎

Ejemplo: Cálculo de la altura y la distancia máximas que alcanzan un proyectil, cuando


se lanza con un ángulo determinado, y con una velocidad inicial dada.

1
La sucesión {3𝑛 , 𝑛 𝑒𝑛 𝑁 } , se puede construir a partir de las siguientes sucesiones
recurrentes:
Determinar cual de ellas es una sucesión estable o inestable, es decir que el error crece
de manera lineal o exponencial.
5 1
a) 𝑥𝑛 = 6 𝑥𝑛−1 − 6 𝑥𝑛−2 ; 𝑛 = 2,3,4, …
1
con 𝑥0 = 1, 𝑥1 =
3

function sucesion(n)

x(1)=1;x(2)=1/3;
s(1)=1;s(2)=1/3;
m=[1,2];
for i=3:n
m(i)=i;
x(i)=(5/6)*x(i-1)-(1/6)*x(i-2);
s(i)=1/3^(i-1);
end
A=m';B=x';C=s';
error=abs((B-C)./C);
disp([' i ',' x(i) ','
1/3^i '])
disp([A,B,C,error])

5 4
a) 𝑥𝑛 = 3 𝑥𝑛−1 − 9 𝑥𝑛−2 ; 𝑛 = 2,3,4, …
1
con 𝑥0 = 1, 𝑥1 = 3

function sucesion2(n)

x(1)=1;x(2)=1/3;
s(1)=1;s(2)=1/3;
m=[1,2];
for i=3:n
m(i)=i;
x(i)=(5/3)*x(i-1)-(4/9)*x(i-2);
s(i)=1/3^(i-1);
end
A=m';B=x';C=s';
error=abs((B-C)./C);
disp([' i ',' x(i) ','
1/3^i '])
disp([A,B,C,error])

02 archivos de función 11
02 Funciones y ficheros de función Mg. Amado Malca Villalobos

Mostrar los números primos de dos cifras, use la función mod(m,n), que calcula el
residuo de m entre n.

function p=primo(n)
% verificación de un número primo
p=0;
for i=1:n
m=mod(n,i)==0;
p=p+m;
end

% verificación de los primos de dos cifras


primosdosc=[];
for i=10:99
p=primo(i);
if p==2
disp(i)
end
end

Diseñe una función que permita el ingreso de un entero positivo cualquiera, y muestre el
mismo numero con las cifras invertidas

6. FUNCIONES Y FICHERO DE FUNCIÓN


PROBLEMAS PROPUESTOS
1. Escriba una función en MATLAB con dos argumentos de entrada y dos de salida. La
función debe calcular la altura en pulgadas y la masa en libras de una persona a partir
de su altura en centímetros y de su peso en kilogramos. Utilice la siguiente definición
de función para el problema: in,lb  SIaSTi  cm,kg  . Los argumentos de entrada son
la altura en centímetros y el peso en kilogramos, y los argumentos de salida son la
altura en pulgadas y la masa en libras. Posteriormente utilice está función en la
Ventana de Comandos para:
a) Determinar la altura en pulgadas y la masa en libras de una persona que mide 170
cm y pesa 70 kg.
b) Determinar su propia altura y peso en pulgadas y libras, respectivamente.
2. Escriba una función MATLAB para la siguiente función matemática:
y  x   0,9x4 12x2  5x
La entrada de la función será x , y la salida será y . Escriba la función de forma que x
pueda ser un vector, utilícela para:

02 archivos de función 12
02 Funciones y ficheros de función Mg. Amado Malca Villalobos

a) Calcular y(-3) e y(5).


b) Representar gráficamente la función y  x  para 4  x4 .
3. Escriba una función MATLAB para la siguiente función matemática:
r    2 1,1  sen 2 
La entrada de la función será  (en radianes) y la salida será r . Escriba la función de
forma que  pueda ser un vector, y utilícela para:
a) Calcular r  / 3 y r  3 / 2 
b) Representar gráficamente (en coordenadas polares) r   para 0    2
4. Escriba una función MATLAB que calcule el máximo o mínimo local de una función
cuadrática de la forma: f ( x)  ax2  bx  c . Utilice la siguiente línea de definición de la
función :  x,y  maxmin(a,b,c) . Los argumentos de entrada son las constantes. a, b y c
y los argumentos de salida son las coordenadas x e y del máximo o el mínimo de la
función.
Utilice la función para calcular el máximo o el mínimo de las siguientes funciones:
a) f ( x)  3x 2  18x  48
b) f ( x)  5x 2  10 x  3
5. El valor P de una cuenta de ahorros, con un capital inicial P0 y una tasa de interés
anual r (en %) después de t años, viene dado por:
t
 r 
P  P0  1  
 100 
Escriba una función que calcule el valor futuro de una cuenta de ahorros. Utilice para
ello la siguiente línea de definición de función: P  saval  PO, r, t  . Las entradas de la
función serán en capital inicial, la tasa de interés y el número de años. La salida será el
valor de la cuenta a partir de los datos especificados en la entrada. Utilice
posteriormente está función para calcular el valor de un capital inicial de 10 000 €, a
un interés anual del 6%, después de 13 años.

6. Escriba una función que convierta las unidades de un par de torsión (fuerza que
causa la rotación de un objeto) de libras-pulgadas a newtons-metro. Utilice la siguiente
línea de definición para la función: Nm = lbintoNm(lbin) . El argumento de entrada
será el par en libras-pulgadas, y el argumento de salida el par en newtons-metro.
Utilice posteriormente esta función para convertir 500 libras-pulgada a newtons-
metro.
7. Escriba una función que calcule los ángulos de un triángulo a partir de las longitudes
de sus lados. Utilice para ello la siguiente línea de definición de función:
alp,bet,gam  triangulo(a,b,c) . Utilice posteriormente esta función para calcular los
siguientes triángulos:
a = 10, b = 15, c = 7
a = 6, b = 8, c = 10
a = 200, b = 75, c = 250
8. Escriba una función que calcule el vector unitario en la dirección de la recta que une
dos puntos (A y B) en el espacio. Utilice la siguiente línea de definición de función:
n = unitvec (A,B) . La entrada de la función serán dos vectores A y B, cada uno con tres

02 archivos de función 13
02 Funciones y ficheros de función Mg. Amado Malca Villalobos

elementos correspondientes a las coordenadas cartesianas de dichos puntos. La salida


será un vector con tres componentes que representan las coordenadas del vector
unitario en la dirección de A a B. Utilice posteriormente esta función para determinar
los siguientes vectores unitarios:
En la dirección del punto (2,6,5) al punto (-10,15,9)
En la dirección del punto (-10,15,9) al punto (2,6,5)
En la dirección del punto (1,1,2) al punto (2,1,1)
9. La forma tradicional de la ecuación de la recta en el plano x – y es: Ax + By + C = 0 .
Además, cualquier punto queda determinado por sus coordenadas en dicho plano
 x0 , y0  . Escriba una función MATLAB que calcule la distancia entre un punto y una
recta en el plano x  y . Utilice para ello la siguiente definición de función:
d = DistPaL ( x0, y0, A, B, C) , donde los argumentos de entrada son las coordenadas
del punto y las tres constantes de la ecuación de la recta. El argumento de salida será
la distancia. Utilice posteriormente esta función para calcular la distancia en los
siguientes casos:
Punto : (2,-4), recta: 2 x  3,5 y  6  0 .
Punto (11,2): recta: y  2 x  6 , (observe que en este caso la ecuación de la recta no
está representada de la forma tradicional expuesta anteriormente).

10. Escriba una función que calcule la nota final de un estudiante a partir de la nota de
su examen final, sus dos exámenes parciales y de los cinco trabajos realizados durante
el curso. Los exámenes parciales se puntúan de 0 a 100, y cada uno es un20% de la
nota final. El examen final tiene la misma escala de puntuación, y es un 40% de la nota
final. Los trabajos, sin embargo, puntúan de 0 a 10, y todos ellos en conjunto
representan un20% de la nota final.
La función debe tener la siguiente definición: g = notasfinales (R) , donde la entrada
será una matriz R que contenga en cada fila las notas de cada estudiante. Además por
cada fila, se tendrá 8 columnas que representarán las notas de los trabajos (las cinco
primeras), la nota de los dos, exámenes parciales (las dos siguientes) y la nota del
examen final (la última columna) de cada estudiante. La salida de la función será un
vector columna g con la nota final del curso. Cada fila de este vector será la nota final
del estudiante cuyas notas se relacionan con la correspondiente la fila de la matriz R .
La función debe usarse para calcular las notas finales de cualquier número de
estudiantes. Para el caso de un solo estudiante, la matriz R tendrá una sola fila.
Aplique esta función en los siguientes casos:
a) Utilice la Ventana de Comandos para calcular la nota de un estudiante con las
siguientes calificaciones: 10, 5, 8, 7, 9, 75, 87, 69.

02 archivos de función 14
02 Funciones y ficheros de función Mg. Amado Malca Villalobos

b) Escriba un fichero script que pida al usuario las notas de los estudiantes y las
almacene en un array (cada estudiante en una fila). El programa debe calcular
seguidamente las notas finales utilizando la función notasfinales . Ejecute el fichero
script en la Ventana de Comandos para calcular las notas finales de los siguientes
cuatro estudiantes:
Estudiante A: 7, 9, 5, 8, 10, 90, 70, 85
Estudiante B: 6, 4, 7, 0, 7, 60, 71, 50
Estudiante C: 5, 9, 10, 3, 5, 45, 75, 80
Estudiante D: 8, 8, 7, 7, 9, 82, 81, 88
11. Cuando se conectan n resistencias en paralelo, su resistencia equivalente REq
viene determinada por:
1 1 1 1
   ... 
REq R1 R2 Rn
Escriba una función que calcule REq . Utilice la siguiente definición: REQ = req (R) ,
donde la entrada será un vector en el cual cada elemento representa un valor de la
resistencia, y la salida será el valor de la resistencia equivalente REq . Utilice esta
función para calcular la resistencia equivalente de las siguientes resistencias en
paralelo: 50, 75, 300, 60, 500, 180 y 200
12. Escriba una función que proporcione un número entero aleatorio en un rango
concreto especificado a partir de dos números. Utilice para ello la siguiente definición
de función: n = r a n d i n t (a,b) , donde los dos argumentos de entrada a y b son los
números que determinan el rango, y la salida será el número aleatorio calculado n
.Utilice posteriormente está función en la Ventana de Comandos para:
Generar un número aleatorio entre 1 y 49
Generar un número aleatorio entre -35 y -2

13. El momento de inercia superficial I x0 de un rectángulo alrededor del eje x0 que


1 3
pasa por el Centroide viene determinado por I x0  bh . El momento de inercia
12
alrededor del eje x paralelo a x0 viene dado por I x  I x0  Ad x2 , donde A es el área
del rectángulo, y d x la distancia entre los dos ejes.
b
w
x0 t
h
dx h
t
x
Escriba una función que calcule el momento de inercia superficial de una viga en forma
de " I" alrededor del eje que pasa por su Centroide (ver dibujo). Utilice para ello la
siguiente definición de función: I = I v i g a (w, h, t) . Las entradas de la función serán
el ancho w , la altura h y el grosor t del nervio y las pestañas de la viga. (El momento
de inercia del área compuesta se obtiene dividiendo el área en distintas partes y
sumando el momento de inercia de cada una de ellas.)

02 archivos de función 15
02 Funciones y ficheros de función Mg. Amado Malca Villalobos

Utiliza la función para calcular el momento de inercia de una viga en forma de "I"
cuyas dimensiones son w  200 mm, h  300 mm y t  22 mm.
14. La representación bidimensional del estado de tensión en un punto de un material
cargado queda definido por las tres componentes de la tensión  xx ,  yy , xy .Las
tensiones normales máxima y mínima (tensiones principales) en el punto,  max y  min ,
se calculan a partir de las componentes de la tensión, de la forma:
 xx   yy     yy 
2

 max    xx    xy
2

min 2  2 

Escriba una función que calcule las tensiones principales a partir de las componentes
de la tensión. Utilice para ello la siguiente línea de definición de función:
Smax,Smin  TensionPrincipal (Sxx,Syy,Sxy) . Los argumentos de entrada serán las
tres componentes de la tensión, y la salida las tensiones máxima y mínima.
Utilice posteriormente esta función para calcular las tensiones principales para los
siguientes estados de tensión:
 xx  150 MPa,  yy  40 MPa y  xy  80 MPa
 xx  12 ksi,  yy  16 ksi y  xy  7 ksi.
15. En un filtro paso-bajo (filtro que pasa señales de bajas frecuencias), la relación de
voltajes viene determinada por:
V 1
RV  0 
Vi 1   RC 
2

Donde  es la frecuencia de la señal de entrada.


Escriba una función que calcule la relación de voltajes. Utilice para ello la siguiente
línea de definición: RV = pasobajo (R, C, w) . Los argumentos de entrada son el valor
de la resistencia R en  (ohmios), la capacidad del condensador C en F (faradios) y
la frecuencia w de la señal de entrada en rad/s. Diseñe la función de forma que w
pueda ser un vector.
Escriba un fichero script que utilice la función pasobajo para generar un gráfico RV
en función de ,102    106 rad/s . El gráfico debe tener escala logarítmica en el eje
horizontal   . Cuando se ejecute el fichero script, éste debe pedir al usuario que

02 archivos de función 16
02 Funciones y ficheros de función Mg. Amado Malca Villalobos

introduzca los valores de R y C . Etiquete los ejes convenientemente y ejecute el


script para los valores R  1200 y C  8 F .
16. En un filtro paso-banda (filtro que pasa señales con frecuencias dentro de un cierto
rango), la relación de voltajes viene determinada por:

V0  RC
RV  
Vi 1   2 LC    RC 
2 2

Donde  es la frecuencia de la señal de entrada.


Escriba una función que calcule la relación de voltajes. Utilice para ello la siguiente
línea de definición: RV = pasobanda (R, C, L, w) . Los argumentos de entrada son el
valor de la resistencia R en  (ohmios), la capacidad del condensador C en F
(faradios), el valor de la bobina (inductancia) L en H (henrios) y la frecuencia w de la
señal de entrada en rad/s. Diseñe la función de forma que w pueda ser un vector.
Escriba un fichero script que utilice la función pasobanda para generar un gráfico RV
en función de ,102    107 rad/s . El gráfico debe tener la escala logarítmica en el
eje horizontal   . Cuando se ejecute el fichero script , éste debe pedir al usuario que
introduzca los valores de R , C y L . Etiquete los ejes convenientemente y ejecute el
script para los siguientes casos:
R  1100  C  9 F y L  7 mH
R  500  C  300 F y L  400 mH

02 archivos de función 17

Вам также может понравиться