Práctica 3: Funciones

Documentos relacionados
Práctica 3: Funciones

CALCULO GRADO EN INGEN. INFORM. DEL SOFTWARE PRACTICA 1. INTRODUCCIÓN A MATLAB

Práctica 2: Datos. Fonaments d Informàtica 1r curs d Enginyeria Industrial

1. L U G A R E S G E O M É T R I C O S E N E L P L A N O

Tema 7: Derivada de una función

Materia: Matemática de 5to Tema: Ecuación vectorial. Marco Teórico

Fundamentos de Programación Tema 3. Relación I. 3. Escribir las siguientes expresiones aritméticas como expresiones de computadora: La

MATEMÁTICA. Exámenes tipo INGRESO ESCUELA NAVAL MILITAR

Breve introducción al OCTAVE

1. He escrito el No he escrito el He escrito el No he escrito el 4.

La recta en el plano.

CAPÍTULO 5 GRÁFICOS. REPRESENTACIONES EN 2D Y EN 3D. 1.- REPRESENTACIÓN DE FUNCIONES EXPRESADAS EN FORMA EXPLÍCITA

LENGUAJE FORTRAN. FUNCIONES Y SUBRUTINAS

4. Escribe la ecuación de la circunferencia de centro C(-2,3) y radio 4. Sol: (x+2) 2 +(y-3) 2 =16.

Tema 4: Empezando a trabajar con ficheros.m

Tema 6: Trigonometría.

Trigonometría. 1. Ángulos

APELLIDOS Y NOMBRE:...

LA INTERCEPCIÓN DE LA PARABOLA CON EL EJE X, depende del signo del Discriminante. >0, la parábola intercepta al eje OX en dos puntos.

GEOMETRÍ A ANALÍ TÍCA

( ) (ma) ,

Facultad de Ingeniería Facultad de Tecnología Informática. Matemática Números reales Elementos de geometría analítica. Profesora: Silvia Mamone

TEMA 6. TRIGONOMETRÍA

LA CIRCUNFERENCIA. La circunferencia es la sección producida por un plano perpendicular al eje.

CONCEPTO DE CINEMÁTICA: es el estudio del movimiento sin atender a las causas que lo producen

Matemáticas I 1º BACHILLERATO

MATEMÁTICA N O 1. Santillana FASCÍCULO PSU N O 1 MATEMÁTICA. Santillana

EJERCICIOS DE REPASO DE MATEMÁTICAS I PENDIENTES

Práctica 0: Introducción a Matlab. Matlab es un acrónimo: MATrix LABoratory

Derivadas. 1. Tasa de variación media La tasa de variación media de una función f(t) en un intervalo [a, b] se define como:

Pre-Laboratorio 1 MA-33A : Introducción a Matlab

Tema 6: Derivada de una función

Tema 7: Derivada de una función

TRIGONOMETRÍA. 1. Ángulos. 2. Razones trigonométricas de ángulos agudos


TEMARIOS PARA EVALUACIÓN REMEDIAL ( )

MATERIA:_Matemáticas V 5010 CICLO ESCOLAR_ PROFESOR:

Temas e Indicadores - Matemática

BOLETÍN DE EJERCICIOS: PROGRAMACIÓN EN C++ Ejercicio 1.- escribir un programa que calcule el factorial de un número:

Conjuntos de nivel, diagramas de contorno, gráficas. Funciones vectoriales de una y dos variables.

Universidad de Costa Rica. Instituto Tecnológico de Costa Rica. MATEM - Precálculo. Undécimo Año I EXAMEN PARCIAL Nombre: código: Colegio:

unicoos Funciones lineales Objetivos 1.Función de proporcionalidad directa pág. 170 Definición Representación gráfica

Temas para el curso 0 de matemáticas, Día Temas Fecha

APELLIDOS Y NOMBRE: Fecha:

Matemáticas Nivel Medio Matemáticas Ap.CC.SS.I

En la figura se muestra la curva correspondiente V. t la figura, la medida de la tensión máxima es inmediata, mientras que la

Razones trigonométricas

PARABOLA Y ELIPSE. 1. La ecuación general una parábola es: x y 40 = 0. Poner la ecuación en la forma: (x h) 2 = 4p (y k).

Medida de ángulos. Para medir ángulos se utilizan las siguientes unidades:

PRÁCTICA FUNCIONES CURSO Práctica 3 (14- X-2015) dibuja una línea que une los puntos de abscisas el vector x y ordenadas y.

UNIDADES TECNOLÓGICAS DE SANTANDER DEPARTAMENTO DE CIENCIAS BÁSICAS CÁLCULO MULTIVARIABLE Primer Parcial

TEMA 9. TRIGONOMETRÍA

CÁLCULO DIFERENCIAL E INTEGRAL I TERCERA EVALUACIÓN PARCIAL E0600 TRIMESTRE 00-P. 8 x 2 + y 2 + xy3 x 4 =1

Problemas Tema 1 Solución a problemas de Repaso de Matemáticas I - Hoja 11 - Problemas 1, 3

ESCUELA POLITÉCNICA SUPERIOR PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF

>> % suma de dos números reales, el resultado se asigna a ans

Los números decimales ilimitados no periódicos se llaman números irracionales, que designaremos

UTalca - Versión Preliminar

UNIVERSIDADES DE ANDALUCÍA PRUEBA DE ACCESO A LA UNIVERSIDAD

Facultad de Ciencias Naturales y Museo Trabajo Práctico Nº

TEMA 5 FUNCIONES Y PROGRESIONES

GEOMETRIA Y TRIGONOMETRÍA PRIMER PARCIAL

FUNCIONES ELEMENTALES

Prueba Nivel: Álgebra y Modelos Analíticos 3 Matemático. Nombre: Curso: Fecha: Porcentaje de logro Ideal: 100 % Porcentaje Logrado: Nota:

Facultad de Ciencias Naturales y Museo Trabajo Práctico Nº

MyOpenLab. Objetos Canvas. Versión Documentación para el usuario. MyOpenLab Objetos Canvas para Animaciones.

Apuntes de Funciones

UTalca - Versión Preliminar

GEOMETRIA Y TRIGONOMETRÍA PRIMER PARCIAL

LIII OME - SEGUNDA PRUEBA FASE LOCAL, COMUNIDAD DE MADRID =

TEMA 1: Los números reales. Tema 1: Los números reales 1

Practica 2. Estructuras de Datos en MATLAB

ESTUDIO DEL MOVIMIENTO.

PRÁCTICA NÚMEROS REALES Y COMPLEJOS CURSO Práctica 1 (21- IX-2016)

TEMA 6. SEMEJANZA Y TRIGONOMETRÍA

TEMA 6: GEOMETRÍA ANALÍTICA EN EL PLANO

3.1. Errores con pocos dígitos de precisión

Escriba la función vectorial dada r(t) como ecuaciones paramétricas.

Guía de Estudio Algebra y Trigonometría Para Ciencias Agropecuarias

Capítulo 3. Subprogramas. 3.1 Subprogramas FUNCTION

Bloque 2. Geometría. 4. Iniciación a las Cónicas

TEMA 7: TRIGONOMETRÍA

Problemas Tema 7 Enunciados de problemas ampliación Temas 5 y 6

Facultad de Ciencias Naturales y Museo Trabajo Práctico Nº 1

Transcripción:

Fonaments d Informàtica 1r curs d Enginyeria Industrial Práctica 3: Funciones Objetivos de la práctica En esta práctica estudiaremos cómo podemos aumentar la funcionalidad del lenguaje MATLAB para nuestras aplicaciones definiendo funciones. Antes de comenzar En primer lugar debéis crear vuestra carpeta de trabajo con el explorador de Windows. A continuación, iniciar MALTAB y cambiar el directorio a la carpeta de trabajo que habéis creado: pwd indica cuál es el directorio actual dir contenidos del directorio actual cd camino cambiar de directorio. M-files en MATLAB Los M-files pueden ser scripts, que simplemente ejecutan una serie de órdenes o instrucciones de MATLAB; o pueden ser funciones, que además aceptan argumentos y producen resultados. Se crea un M-file utilizando un editor de textos. La versión 5.3 de MATLAB tiene su propio editor (medit). Utilizamos el editor para escribir el M-file, a continuación lo grabamos y lo llamamos directamente desde la línea de comandos de MATLAB como si fuera cualquier otra orden de las que ya conocemos.

Scripts vs. Funciones Scripts No aceptan argumentos de entrada ni producen resultados de salida Trabajan sobre las variables en el workspace Útiles para automatizar una serie de pasos que se repiten muchas veces Funciones Aceptan argumentos de entrada y producen resultados Por defecto, las variables internas son locales a la función Útiles para extender el lenguaje MATLAB para tus aplicaciones Los scripts trabajan sobre variables en el Workspace de la línea de comandos o crean nuevas variables que son añadidas a dicho Workspace, de modo que todas esas variables pueden ser luego manipuladas desde la línea de comandos. Funciones Veremos un ejemplo de función y sobre ella describiremos sus elementos básicos. function pf = pvt (p) % PVT Precio venta publico %Línea H1 % PVT (p) devuelve el precio con IVA, %Texto ayuda % de un producto, dado su precio (p) sin IVA. %Definición de la función iva = 0.16; pf = p * (1+ iva); %Cuerpo de la función Definición de la función: Esta línea define el nombre de la función (pvt) y el número y orden de parámetros de entrada (en el ejemplo, un parámetro: p) y el número y orden de parámetros de salida o resultados (en el ejemplo, un parámetro: pf). function pf = pvt (p) parámetro de entrada nombre de la función parámetro de salida palabra reservada

Si la función tiene más de un parámetro de entrada, estos se separan por comas y si tiene más de un parámetro de salida se escribe la lista separada por comas y entre corchetes ([ ]). Este sería un ejemplo general: function [x, y] = mifuncion (a, b, c) Línea H1: Se trata de una primera línea comentada (empieza con %) tras la línea de definición de la función. MATLAB muestra esta primera ayuda cuando usamos el comando lookfor o pedimos ayuda sobre un directorio Texto de ayuda: MATLAB muestra este texto junto con la línea H1 cuando solicitamos ayuda sobre una determinada función (help pvt). Se muestra el texto comentado hasta la primera línea en blanco o la primera línea ejecutable. El resto de comentarios tras este bloque se ignoran. Cuerpo de la función: esta parte contiene las sentencias que realizan los cálculos y asignan valores a los parámetros de salida. La función opera sobre variables en su propio espacio de trabajo, separado del espacio de trabajo de la línea de comandos. Nombre de la función Los nombres de las funciones deben empezar por una letra. Por lo demás, pueden ser cualquier combinación de letras, números o signos. El nombre del fichero (M-file) que contiene la función es el mismo nombre de la función seguido de la extensión.m. pvt.m Cuando llamamos a una función, MATLAB busca en el espacio de trabajo y después en los directorios indicados en el pathwork (comando path). Si queremos conocer los M-files que tenemos en nuestro directorio de trabajo, escribiremos la orden what en la línea de comandos. Si queremos ver el contenido del M-file pvt.m, entonces teclearemos en la línea de comandos: >> type pvt Llamada a una función Podemos llamar a una función desde la línea de comandos, como si fuera cualquier otra orden o función ya definida en MATLAB. También podemos

llamar a una función dentro de otra función como veremos en posteriores prácticas. >> precio = 1000; >> preciofinal = pvt(precio) >> preciofinal = 1160 Observar que los parámetros de entrada y salida no tienen por qué tener el mismo nombre que en la definición de la función. >> preciofinal = pvt(1400) >> preciofinal = 1624 Es importante escribir todos los parámetros de entrada entre paréntesis y todos los parámetros de salida entre corchete, siempre en el orden correspondiente: >> [v, w] = mifuncion (a, b, c) Las variables de una función son locales, de modo que, aunque en el seno de la función se modifiquen los argumentos de entrada, el valor de dichas variables en el Workspace queda inalterado. Ejercicios 1) Se tienen los partidos ganados (ge) por un equipo de fútbol, los partidos perdidos (pp) y los partidos empatados (pe). Escribir: a) Una función que calcule los partidos jugados por el equipo. b) Una función que calcule los puntos obtenidos en total. c) Una función que calcule los puntos por partido. 2) Escribir una función que calcule las combinaciones de n sobre m: comb(n,m)= n! / (m! * (n-m)!) 3) Escribir una función que calcule el perímetro de un círculo dado su radio. 4) Escribir una función que calcule el área de un círculo dado su radio.

5) Modifica la función anterior para que dado el círculo, calcule tanto el área como la longitud de la circunferencia. 6) Escribir una función que calcule las dos raíces de una ecuación de segundo grado: ax 2 +bx+c=0. 7) Escribir una función que convierta un número binario en hexadecimal. 8) Escribir una función (base2base) que convierta una cadena que representa un número en cualquier base a cualquier otra base que se indique. 9) Escribir una función que calcule la deformación de una viga de longitud L sujeta en los extremos, cuando se le aplica una fuerza F en el punto central. Dicha deformación depende además de la elasticidad (E) y del momento de inercia (I) y se calcula como: deformación = (-F*L 3 ) / (48*E*I*) Calcular cuál será la deformación (en pulgadas) para una viga de las siguientes características: L= 15 ft., F=50.000 lb., E=30*10 6 lb/in 2, I=797 in 4. Queremos ahora observar cómo varía la deformación de la viga en función de la fuerza que se le aplique. Para ello, definiremos f como un vector que toma valores entre 20000 y 60000, aplicaremos la función que hemos escrito para los valores de f y dibujaremos la gráfica con la fuerza en las abscisas y la deformación en las ordenadas: >> f =20000:1000:60000; >> d= deformacion (L, f, E, I); >> plot (f, d); 10) La siguiente función calcula la parábola y=x 2 entre n y -n a intervalos de 0.1: function y = x (n) % x Calcula la función y=x 2 % x(n) La función se representa entre los valores -n y n x=-n:0.1:n; y=x.^2; plot(x,y); grid;

Escribir dicha función y comprobar su funcionamiento. Modificar la función para que podamos calcular la función y=x p, donde p sea cualquier valor positivo. 11) Sabiendo que cada carácter se representa con 8 bits, escribir una función tal que dada una cadena de unos y ceros que representa una palabra en binario (la longitud de la cadena debe ser múltiplo de 8), devuelva la palabra (con caracteres) que representa. Utilizar la función length para conocer la longitud de la cadena y la función reshape para separar la cadena de unos y ceros en grupos de 8 bits. 12) MATLAB no tiene definidas operaciones para valores enteros. Por ejemplo, definir a y b de la siguiente forma y comprobar que no podemos hacer a+b: >>a=int8(40); >>b=int8(110); Escribir una función que reciba dos valores enteros y devuelva su suma entera. 13) Diseñar una función en MATLAB que calcule la superficie y volumen de un cilindro dados su radio (r) y altura (h) (V=πr 2 h, S=2πr2+2πrh). 14) La presión atmosférica (p) varía en función de la altura (h) según la siguiente expresión: p=1035*e -0.12h, donde la altura se mide en kilómetros y la presión en milibares. a) Escribir una función que calcule la presión para una altura dada. b) Utilizando la función anterior, dibujar la gráfica que representa la variación de la presión cuando la altura va de 0 a 30km. (tomados de 1 en 1.) 15) Sabiendo que la resistencia total de 3 resistencias conectadas en serie es: r T = r 1 + r 2 + r 3 Y que si dichas resistencias se conectan en paralelo, entonces su resistencia total es: 1/r T = 1/r 1 + 1/r 2 + 1/r 3 Escribir una función tal que dadas 3 resistencias calcule su resistencia total conectadas en paralelo y en serie.

Fonaments d Informàtica 1r curs d Enginyeria Industrial Práctica 3 (cont.): Funciones Objetivos de la práctica En esta práctica se continuarán ampliando los conocimientos sobre el diseño de funciones en MATLAB. Subfunciones Los ficheros de funciones en MATLAB pueden contener más de una función. La primera función en el fichero es la función principal, aquella que es invocada con el nombre del fichero (M-file). El resto de funciones en ese mismo fichero son subfunciones y son únicamente visibles para la función principal u otras subfunciones en ese mismo fichero. Cada subfunción comienza con su propia línea de definición. Las diferentes subfunciones están una detrás de otra en el fichero y pueden aparecer en cualquier orden, siempre y cuando la función principal esté la primera. Ejemplo: function [long, area] = circulo (radio) %función principal % CIRCULO Calcula el perimetro y el area de un circulo dado su radio long = perimetro(radio); area = areacirc (radio); function p = perimetro (rad) %calcula el perímetro de un círculo p = 2 * pi *rad; function a= aracirc(rad) %calcula el área de un círculo a = pi *rad^2; % subfunción % subfunción Nota: Observar que la función circulo sí es visible para cualquier otra función. Esto es, podemos llamar a la función circulo desde cualquier otra función que definamos o desde la línea de comandos de MATLAB. Sin embargo, las funciones perimetro y areacirc sólo son visibles para la función circulo. Es muy importante, por tanto, decidir cuándo vamos

a definir una función como subfunción de otra, puesto que su uso queda restringido sólo al ámbito de la función principal. Ejercicio: Implementar la función circulo tal y como aparece en el recuadro anterior. Calcular el área y perímetro de un círculo de radio 2.5, llamando a la función desde la línea de comandos. Desde la línea de comandos llamar a la función perimetro para que calcule el perímetro del círculo. Observar que ocurre. Desde la línea de comandos, escribir la orden what. Observar qué funciones (ficheros.m) aparecen. Definir ahora las funciones circulo2, perimetro2 y areacirc2 pero cada una de ellas como función independiente. Repetir los pasos indicados en el párrafo anterior y observar las diferencias. Ejercicios 1. Sea una circunferencia centrada en el origen de coordenadas. Dado un punto de la circunferencia P (x, y), escribir una función que calcule el radio y el ángulo en grados sexagesimales de dicho punto sobre la circunferencia. Para ello, definir una subfunción que calcule el radio, otra que calcule el ángulo en radianes y una tercera que convierta de radianes a grados sexagesimales. (x,y) tg α = y/x α 2. Se lanza una pelota con una velocidad inicial v 0 =15m/s. La velocidad (v) y la posición (d) de la pelota después de t segundos vienen expresadas como: v = v 0 + at d = v 0 t + (at 2 )/2 Donde a es la acelaración de la gravedad (-9.80665 m/s2). La distancia se mide en metros y la velocidad en metros por segundo. Escribir una función en MATLAB (utilizando subfunciones) que calcule la velocidad que lleva la pelota y la distancia recorrida tras t segundos.

Comprobar el comportamiento de la pelota dibujando las gráficas de velocidad y distancia para valores de t entre 0 y 3 segundos (a intervalos de 0.1 segundos). 3. Diseñar una función que recibe la hora actual (horas, minutos y segundos) y devuelve los segundos transcurridos desde la medianoche. La función utilizará subfunciones para pasar de horas y minutos, respectivamente, a segundos. 4. Repetir el ejercicio anterior pero utilizando 3 funciones independientes (sin subfunciones).