/* [wxMaxima batch file version 1] [ DO NOT EDIT BY HAND! ]*/ /* [ Created with wxMaxima version 0.8.7 ] */ /* [wxMaxima: title start ] Práctica 3. Funciones [wxMaxima: title end ] */ /* [wxMaxima: section start ] Definición de funciones [wxMaxima: section end ] */ /* [wxMaxima: comment start ] En la práctica 1 vimos funciones elementales que vienen ya definidas en Maxima, para definir una nueva función usamos dos puntos seguidos del signo igual. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ f(x):=sqrt(x-3); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ f(3); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ g(x):=2*asin(x); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ g(1); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ g(1.001); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] En las siguientes prácticas consideraremos funciones reales de variable real, es decir, sus dominios serán conjuntos de números reales. Si evaluamos una función fuera de su dominio obtendremos un número complejo o un error. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ f(2); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ g(1.0001); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] De forma similar al comando values que ya vimos, si queremos ver las funciones que hemos definido, usamos el comando functions . [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ functions; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Para ver la definición de una función concreta, usamos el comando fundef . [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ fundef(f); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] La instrucción kill(all) que ya hemos empleado anteriormente, borra todas las variables y todas funciones que hayamos definido. Si solamente queremos borrar una función podemos usar kill indicando sólo la función que queremos borrar, o kill(functions) para borrar todas las funciones. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ kill(g); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ functions; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ kill(functions); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ functions; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ejercicio. i) Defina las funciones f(x)=sqrt(x^2+1), g(x)=log(abs(x)) , h(x)=1/x . ii) Evalúe f(0), g(0) y h(0). iii) Borre las funciones f y h. iv) Compruebe la definición de g con el comando fundef . v) Borre todas las funciones. (Solución del apartado ii: 1, error, error) [wxMaxima: comment end ] */ /* [wxMaxima: section start ] Gráficas de funciones [wxMaxima: section end ] */ /* [wxMaxima: comment start ] Para representar una función podemos emplear el comando wxplot2d con la siguiente sintaxis wxplot2d( expresiones, [variable, min, max] , opciones ). Por ejemplo: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ f(x):=x+sin(x); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ wxplot2d(f(x), [x, -6, 6]); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Podemos representar conjuntamente varias funciones si las escribimos en una lista. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ wxplot2d([ sin(x), x-x^3/6+x^5/120 ], [x,-3,3]); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] En los ejemplos que hemos visto, Maxima ha representado la gráfica hallando de forma automática el intervalo en el eje vertical, si queremos indicarle otro intervalo para la variable dependiente, podemos indicarlo en las opciones, de la siguiente manera wxplot2d( expresiones, [x, min_x, max_x], [y, min_y, max_y], opciones ) . [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] En el siguiente ejemplo vemos como el rango para la ordenada que calcula Maxima no permite ver la forma de la función tangente. A continuación, indicando un rango [y, -20, 20] vemos mejor la forma y las asíntotas. Como algunos valores de la función cerca de la asíntota no se muestran, Maxima nos lo advierte con un mensaje. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ wxplot2d(tan(x), [x,-6,6]); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ wxplot2d(tan(x), [x,-6,6], [y,-20,20]); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ejercicio. Represente la función sin(x)-exp(x^2)+9/10 para valores de x entre -8 y 8. A continuación muestre sólo los valores (x,y) de esa gráfica para y entre -3 y 3. ¿Cuántas veces corta la gráfica representada al eje OX? (Sol. Dos veces) [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] Ejercicio. Represente la función r(x)=(x^2-4.41)/(x-2.1) en el intervalo [0,4]. Halle r(2.1). (Sol. Error de división por cero, aunque en la gráfica no se vea ningún 'hueco'.) [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] Ej. Defina las funciones g(x)=|x^2-2x-3|. Halle g(1) y g(3). Represente la función en el intervalo [-3,4]. [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] El comando plot2d tiene la misma sintaxis que el comando wxplot2d que hemos visto. La diferencia es que la gráfica que genera plot2d aparece en una ventana distinta, que se puede redimensionar y cerrar cuando se desee. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ plot2d(sin(x),[x,0,%pi]); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ej. Defina la función f(x)=sin(x), g(x)=f(x-2), h(x)=f(x)/3. Represente conjuntamente las gráficas de f(x), g(x) y h(x) en el intevalo [-5,5] usando el comando plot2d. [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] Ejercicio. Represente la función x*sin(1/x) primero en el intervalo [-1,1] y luego en el intervalo [-0.01,0.01]. [wxMaxima: comment end ] */ /* [wxMaxima: section start ] Inversa de una función [wxMaxima: section end ] */ /* [wxMaxima: comment start ] Dada una función f inyectiva, podemos con Maxima encontrar su inversa g de forma que si y=f(x), entonces x=g(y). Para ello en primer lugar definimos la función f. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ f(x):=(3*x+3)/(2*x+1); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] En segundo lugar, planteamos la ecuación y=f(x) para despejar x en función de y. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ solve(y=f(x),x); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Por último definimos la función g con la expresión obtenida, siguiendo el convenio de llamar x a la variable. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ g(x):=-(x-3)/(2*x-3); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ wxplot2d([f(x),g(x)],[x,0,1.3]); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Comprobamos con la ayuda del comando ratsimp que una es la inversa de la otra, es decir, que f(g(x))=x y que g(f(x))=x. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ f(g(x)); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ ratsimp(f(g(x))); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ ratsimp(g(f(x))); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ejercicio. Halle la inversa de la función f(x)=(5x-1)/(3x+1). (Sol. g(x)=-(x+1)/(3*x-5) .) [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] Ej. Represente conjuntamente las gráficas de x, x^2 y sqrt(x) en el intervalo [0,2] usando la instrucción plot2d. Redimensione la ventana para que ambos ejes se muestren en la misma escala. Observe la simetría respecto de la bisectriz del primer cuadrante y=x. [wxMaxima: comment end ] */ /* [wxMaxima: section start ] Funciones a trozos [wxMaxima: section end ] */ /* [wxMaxima: comment start ] En una función a trozos, o definida por partes, la regla de definición es distinta según el conjunto al que pertenezca la variable independiente. [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] En Maxima las funciones a trozos se definen usando la estructura condicional if-then-else (si-entonces-en caso contrario), como en el siguiente ejemplo. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ f(x):=if x<2 then x^2 else x+2; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] En esta definición, si x<0, f(x) valdrá x^2, y en otro caso (si x>=0) f(x) valdrá x+2. Vemos su gráfica. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ wxplot2d(f(x),[x,0,5]); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Estas funciones así definidas se pueden evaluar y dibujar en Maxima, pero como veremos más adelante, no se pueden derivar e integrar en Maxima, sino que tendremos nosotros que elegir en cada caso el 'trozo' o los 'trozos' necesarios. [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] Veamos otro ejemplo de función a trozos, para ver como representa Maxima los saltos en la gráfica de una función. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ g(x):=if x<2 then x^2 else x+4; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ wxplot2d(g(x),[x,0,5]); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Esta función tiene un salto en x=2, sin embargo Maxima dibuja un segmento vertical en x=2 lo cual es erroneo ya que este segmento no forma parte de la gráfica de g, en particular g(2)=6. [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] Para poder definir una función con tres o más trozos, debemos emplear una estructura if-then-else dentro de una estructura if-then-else. Como ejemplo, definiremos la función h(x) dada por -x+2 si x<0, x+2 si 0<=x<=2, x^2 si x>2. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ h(x):=if x<0 then -x+2 else ( if x<=2 then x+2 else x^2 ); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ wxplot2d(h(x),[x,-3,6]); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Al definir h se han usado paréntesis para la parte de la función en x>0. Estos paréntesis se han incluido para aclarar la definición de la función y no son necesarios. [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] Ejercicio. Defina la función g(x) dada por -x+5 si x<4, 2 en otro caso. Represente la función en el intervalo [-1,6]. [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] Ejercicio. Defina la función h(x) dada por 1 si x<=pi/2, sin(x) si pi/2=2*pi. Halle h(3*pi/2) y h(3*pi). Represente la funcion en el intervalo [0,3pi]. (Sol. -1, pi^2 ). [wxMaxima: comment end ] */ /* [wxMaxima: section start ] Ejercicios [wxMaxima: section end ] */ /* [wxMaxima: comment start ] Ej. En 1690 Jacob Bernouilli propuso el problema de hallar la forma de la catenaria, la ecuación fue obtenida por Leibniz, Huygens y Johann Bernoulli en 1691. Considere las funciones c(x)=a*cosh(x/a), y p(x)=a+x^2/(2*a) donde la función c(x) representa un arco catenario y la función p(x) es una parábola que lo aproxima. Represente conjuntamente ambas funciones para a=18 en el intevalo [-18,18]. [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] Ej. Considere que d1 es el valor de la primera cifra de su DNI o pasaporte, y d2 el valor de la segunda cifra. Dibuje conjuntamente la gráfica de y=x^2 - 4*d1*x + 2*(d1)^2, y la de y=-x^2 + 2*d2*x - 2*d1*d2 en un intervalo que permita ver los cortes de las dos parábolas. [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] Ej. Considere la función f(x)=x^2+a*x+2. Halle el valor de a que hace que la gráfica de f pase por el punto (1,6). (Indicación: Use el comando solve) (Sol. a=3). [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] Ej. En Maxima la función round(x) devuelve un entero más próximo a x. Represente la función en el intervalo [-3,3]. ¿Podría decir a la vista de la gráfica a qué valor redondea 0.5 y 1.5? Halle round(0.5) y round(1.5). (Sol. 0 y 2. La función presenta saltos en los puntos p+0.5, con p entero y redondea estos puntos al entero par más próximo.) [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] Ej. Defina la función q(x) como un cociente cuyo numerador es x^2+x+1 y cuyo denominador es x^2-x-1. Represente la función para x en el intervalo [-4,4], y para y en el intervalo [-10,10]. [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] Ej. Defina la función h(x)=|sin(x)|. Halle h(3pi/2). Represente la función en el intervalo [-3pi,3pi]. (Sol. 1) [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] Matemáticas II. Grado en Edificación. (A. Palomares.) [wxMaxima: comment end ] */ /* Maxima can't load/batch files which end with a comment! */ "Created with wxMaxima"$