Ejercicios con funciones en Scheme
Definición: Una función de una variable x es una regla f que asigna a cada valor de x un numero único f(x), llamado el valor de la función en x.
Las funciones que aparecen en los siguientes ejemplos están definidas por formulas algebraicas como: f(x) = 3x -1 y para solucionarlas debes pasarlas a notación prefija.
Ejemplo 1
sea f la función definida por: f(x) = 3x^3 - 4x^2 - 3x + 7
Encuentre: f(2) y f(-2)
Solución
; ===========================================================================
(define (fx x) (+ (* 3 (expt x 3)) (- (* 4 (expt x 2))) (- (* 3 x)) 7)) ;Prueba (fx 2) (fx -2)
; ===========================================================================
Ejemplo 2
Si x representa la temperatura de un objeto en grados Celsius, entonces la temperatura en grados fahrenheit es una función de x, dada por f(x) = (9/5)(x) + 32.
(A) El agua se congela a 0º C (C = Celsius) y hierve a 100ºC. ¿Cuales son las temperaturas correspondientes en grados Fahrenheit?
(B) El aluminio se funde a 660º C. ¿cual es su punto de fusión en grados Fahrenheit?
(A) El agua se congela a 0º C (C = Celsius) y hierve a 100ºC. ¿Cuales son las temperaturas correspondientes en grados Fahrenheit?
(B) El aluminio se funde a 660º C. ¿cual es su punto de fusión en grados Fahrenheit?
Solución
; ===========================================================================
;funcion para pasar temperatura de grados Celsius a fahrenheit (define (fahrenheit x) (+ (* (/ 9 5) x) 32)) ;Prueba "El agua se congela a:" (fahrenheit 0) "El agua hierve a:" (fahrenheit 100) "El aluminio se funde a:" (fahrenheit 660)
; ===========================================================================
Ejemplo 3
Sea x la proporción del total de la votación popular que recibe un candidato demócrata a la presidencia en una elección nacional en Estados Unidos (o sea que x es un numero entre 0 y 1). Los expertos en política han observado que una buena estimación de la proporción de asientos en la Camara de Representantes para los Candidatos demócratas esta dada por:
f(x) = (x^3) / [x^3 + (1 - x)^3 ]
Para: 0 <= x <= 1
Esta formula se llama ley del cubo. calcule f(06) e interprete el resultado.
Este calculo muestra que la función de ley del cubo predice que si 0.6 o (60%) del total de la votación popular es para el candidato demócrata a la presidencia, entonces aproximadamente 0.77 o (0.77%) de los asientos en la cámara de representantes sera ganado por los candidatos demócratas; es decir, cerca de 335 de 435 asientos serán ganados por los demócratas.
Este calculo muestra que la función de ley del cubo predice que si 0.6 o (60%) del total de la votación popular es para el candidato demócrata a la presidencia, entonces aproximadamente 0.77 o (0.77%) de los asientos en la cámara de representantes sera ganado por los candidatos demócratas; es decir, cerca de 335 de 435 asientos serán ganados por los demócratas.
Solución
; ===========================================================================
(define (modelo-votacion x) (cond [(and (<= 0 x) (<= x 1)) (/ (expt x 3) (+ (expt x 3) (expt (- 1 x) 3)))]
[else "no se cumplen las condiciones"] )) ;Prueba (modelo-votacion 0.6)
; ===========================================================================
funciones a trozos en racket
En los ejemplos anteriores, las funciones involucraban solo una formula algebraica. sin embargo, para definir algunas funciones es necesario usar dos o mas formulas. A continuación se presenta un ejemplo de este fenómeno.
Ejemplo 4
Una importante firma de corretaje cobra una comisión de 6% en las compras de oro en cantidades con valor de $50 a $300 dolares. Para cantidades que sobrepasen los 300 dolares, la firma cobra el 2% de la cantidad comprada mas 12 dolares. Suponga-se que x denota la cantidad de oro comprado (en dolares) y f(x) la comisión cobrada como una función de x.
(a) describa f(x)
(b) lleve la formula a racket y encuentre: f(100) y f(500)
(a) describa f(x)
(b) lleve la formula a racket y encuentre: f(100) y f(500)
Solución
a) La formula para f(x) depende de si 50 <= x <= 300 o 300 < x. Cuando 50 <= x <= 300, el cargo es de 0.06x dolares. Cuando 300 < x, el cargo es de 0.02x + 12.
b) código:
; ===========================================================================
(define (funcion-a-trozos x) (cond [(and (<= 50 x) (<= x 300)) (* 0.06 x)] [(< 300 x) (+ (* 0.02 x) 12)] [else "la condición NO se cumple"] )) ;prueba (funcion-a-trozos 100) (funcion-a-trozos 500)
; ===========================================================================