1 Contenido Funciones predefinidas ....................................................................................................................... 4 Constantes....................................................................................................................................... 4 Constante de Arquímedes ........................................................................................................... 4 Constante de Magritte ................................................................................................................ 4 Ancho de la ventana .................................................................................................................... 4 Altura de la ventana .................................................................................................................... 4 Centro de la ventana ................................................................................................................... 4 Unidad de longitud ...................................................................................................................... 4 Aritmética ........................................................................................................................................ 4 División euclidiana....................................................................................................................... 4 Máximo común divisor ................................................................................................................ 5 Mínimo común múltiplo.............................................................................................................. 5 Funciones matemáticas................................................................................................................... 5 Número seudo-aleatorio ............................................................................................................. 5 Raíz cuadrada .............................................................................................................................. 5 Valor absoluto ............................................................................................................................. 5 Signo ............................................................................................................................................ 5 Aproximaciones y troncaturas .................................................................................................... 5 Exponencial ................................................................................................................................. 5 Logaritmo natural ........................................................................................................................ 5 Funciones trigonométricas.............................................................................................................. 6 Funciones trigonométricas directas ............................................................................................ 6 Funciones trigonométricas inversas............................................................................................ 6 Conversiones ............................................................................................................................... 6 Funciones hiperbólicas .................................................................................................................... 6 Funciones hiperbólicas directas .................................................................................................. 6 Funciones hiperbólicas inversas .................................................................................................. 6 Cálculo ............................................................................................................................................. 7 Solución de ecuaciones ............................................................................................................... 7 2 Extremos...................................................................................................................................... 7 Derivada ...................................................................................................................................... 7 Integral ........................................................................................................................................ 7 Variación de una magnitud ......................................................................................................... 8 Suma acumulada de una magnitud............................................................................................. 8 Variables geométricas ..................................................................................................................... 8 Abscisa ......................................................................................................................................... 8 Ordenada..................................................................................................................................... 9 Distancia ...................................................................................................................................... 9 Angulo ......................................................................................................................................... 9 Factor de escala........................................................................................................................... 9 Autoreferencia ............................................................................................................................ 9 Operaciones .................................................................................................................................... 9 Opuesto ....................................................................................................................................... 9 Suma ............................................................................................................................................ 9 Diferencia .................................................................................................................................... 9 Producto .................................................................................................................................... 10 cociente ..................................................................................................................................... 10 Potencias ................................................................................................................................... 10 Tests .............................................................................................................................................. 10 Booleanos .................................................................................................................................. 10 Negación.................................................................................................................................... 11 Conjunción ................................................................................................................................ 11 Disyunción ................................................................................................................................. 11 Funciones del usuario ................................................................................................................... 11 Ejemplos .................................................................................................................................... 11 Representación gráfica.................................................................................................................. 13 Representación gráfica.............................................................................................................. 13 Integral ...................................................................................................................................... 13 Nube de puntos ......................................................................................................................... 13 Curvas paramétricas .................................................................................................................. 14 Lineas de nivel ........................................................................................................................... 15 3 Lugares .......................................................................................................................................... 15 Traza .......................................................................................................................................... 15 Traza automática ....................................................................................................................... 16 Lugar de puntos......................................................................................................................... 16 4 Funciones predefinidas Las funciones predefinidas son aquellas cuya lista aparece en un campo como el de las coordenadas de un punto o el valor de una expresión. Son por lo tanto omnipresentes, ya que intervienen incluso en la visibilidad condicional (pestaña “condicional”) y en los alias de los objetos. Constantes Constante de Arquímedes El número π se denota como pi o Pi. Constante de Magritte “invalid” es el número obtenido cuando por ejemplo se busca la abscisa del punto de intersección de dos rectas paralelas o la raíz cuadrada de un número negativo. Para parodiar a Magritte, se puede decir que “no es una constante”. Salvo que no genera errores sintácticos, y se puede citar para invalidar un valor, por ejemplo si un número es igual a "if(x(P1)>0;x(P1);invalid)", dicho número es igual a la abscisa de P1 a menos que P1 esté a la izquierda del eje de las abscisas, en cuyo caso este número no está definido. Por lo que se puede hacer geometría condicional (el modelo hiperbólico de Poincaré se define así en un semi-plano). Ancho de la ventana “windoww” es en unidades del sistema de coordanadas, el semi-ancho de la ventana (valor absoluto de las mayores abscisas visibles). Por ejemplo, esta constante vale 8 si las abscisas van de -8 a 8. Se puede por lo tanto modificar con un zoom. Altura de la ventana “windowh” es en unidades del sistema de coordenadas, la altura de la ventana. Vale 10 si las ordenadas van de -5 a 5. Se puede modificar con un zoom. Centro de la ventana “windowcx” y “windowcy” son las coordenadas del centro de la ventana. Unidad de longitud “pixel” es el número de pixeles que tiene una graduación (sobre cada uno de los ejes: recordemos que en CaRMetal el sistema de coordenadas siempre es ortonormado, lo que garantiza que los círculos no parezcan elipses). Esta variable puede ser modificada con un zoom o una redimensionalización de la ventana. Aritmética División euclidiana “div(a,b) tiene como resultado el cociente euclidiano de a por b (b no nulo). El resultado es siempre un entero. “mod(a,b)” tiene como resultado el residuo euclidiano de a por b (b no nulo). El valor principal de un ángulo en radianes puede obtenerse con el remplazo b=2π. 5 Máximo común divisor “gcd(a,b)” (del inglés greatest common divisor) da como resultado el máximo común divisor de a y b. Mínimo común múltiplo “lcm(a,b) (del inglés least common multiple) da como resultado el mínimo común múltiplo de a y b. Funciones matemáticas Número seudo-aleatorio “random(x) crea un número pseudo-aleatorio equidistribuido comprendido entre 0 y x. Por ejemplo, random(1) crea un número pseudo-aleatorio entre 0 y 1, random(-1) crea un número entre -1 y 0, random(360)crea un ángulo aleatorio en grados. Raíz cuadrada “sqrt(x)” representa la raíz cuadrada de x. Es indefinida si x es negativo. Valor absoluto “abs(x)” representa el valor absoluto de x. Por ejemplo, “abs(x(M))” representa la distancia entre el punto M y el eje de las ordenadas. Signo “sign(x)” representa el signo de x, es decir que sign(x)= x/abs(x) (por convención, sign(0)=0). Los valores que puede tomar son 1, -1 y 0. De este modo, “sign(d(x(M)))” es igual a -1 si M se desplaza hacia la izquierda, a 1 si M se desplaza hacia la derecha y a 0 si M está inmóvil (o se desplaza verticalmente). Aproximaciones y troncaturas “round(x)” es el entero más cercano a x, con la convención de aproximar por encima si la parte fraccionaria es 0,5. (round(2,3)=3) “floor(x)” es el entero inmediatamente inferior a x. (floor(2,7)=2, floor(-3.1)=-4) “ceil(x)” es el entero inmediatamente superior a x (ceil(x)=-(floor(-x))). Las funciones floor y ceil implementan los valores aproximados cuyo margen de error es 1, por defecto (floor) o por exceso (ceil). Para redondear con un margen de error de 0,01, se realiza la operación “round(100*x)/100”. Para obtener x modulo 7, se realiza la operación “x-floor(x/7)*7”. Exponencial “Exp(x)” es la exponencial de x (es decir, ex). Logaritmo natural “log(x)” representa el logaritmo natural de x. 6 Funciones trigonométricas Funciones trigonométricas directas El seno de x se representa como “sin(x)” si x está en grados y “rsin(x)” si x está en radianes. El coseno de x se representa como “cos(x)” si x está en grados y “rcos(x) si x está en radianes. La tangente de x se representa como “tan(x) si x está en grados y “rtan(x) si x está en radianes. Funciones trigonométricas inversas La función arcsin(x) da como resultado el ángulo en grados (entre -90 y 90) tal que su seno es x. Para obtener el ángulo en radianes, se utiliza la función “rarcsin(x). Por ejemplo, arcsin(1)=90 mientras que rarcsin(1)=π/2 aproximadamente. La función arccos(x) da como resultado el ángulo en grados (entre 0 y 180) tal que su coseno es x. Para obtener el ángulo en radianes, se utiliza la función “rarccos(x). La función arctan(x) da como resultado el ángulo en grados (entre -90 y 90) tal que su tangente es x. Para obtener el ángulo en radianes, se utiliza la función “rarctan(x). La función atan2(y,x) es una función de dos variables reales x y y. Da como resultado el ángulo en grados (entre -180 y 180) que forma el vector de coordenadas (x,y) con el eje de las abscisas. La función ratan2(y,x) realiza lo mismo que la anterior pero en radianes. Conversiones Deg(x) es el ángulo en grados cuyo valor en radianes es x. Rad(x) es el ángulo en radianes cuyo valor en grados es x. Angle180(x) da como resultado el ángulo entre -180 y 180 que es igual a x (en grados) Angle360(-10) da como resultado el ángulo entre 0 y 360 que es igual a x (en grados) Funciones hiperbólicas Funciones hiperbólicas directas coshyp(x) es igual a 𝑒 𝑥 +𝑒 −𝑥 2 sinhyp(x) es igual a 𝑒 𝑥 −𝑒 −𝑥 2 tanhyp(x) es igual a 𝑒 𝑥 −𝑒 −𝑥 2𝑒 𝑥 +𝑒 −𝑥 Funciones hiperbólicas inversas Argcosh(x) da el real y tal que coshyp(y)=x 7 Argsinh(x) da el real y tal que sinhyp(y)=x Argtanh(x) da el real y tal que tanhyp(y)=x Cálculo Solución de ecuaciones Zero(f,a,b) da una solución de la ecuación f(x)=0 en el intervalo [a;b]. Para utilizarlo, f tiene que ser el nombre de una función del usuario (ver más adelante como crearla). Si la función f se anula entre a y b, zero(f,a,b) es un real: una de las soluciones de f(x)=0 en [a;b]. Si no, zero(f,a,b) es indeterminado. Es aconsejable que f se anule exactamente una vez en el intervalo [a;b]. Si f(x)=0 tiene varias soluciones en [a;b], zero(f,a,b) es indeterminado (de hecho es determinado por el hecho de que el método utilizado es la dicotomía). Esta precaución es necearia porque a, b e incluso f pueden depender de cursores, o de coordenadas de puntos. Extremos Min(f,a,b) da uno de los valores de x para los que f es mínimo en [a;b]. el mínimo es determinado si sólo se obtiene una vez en el intervalo. Max(f,a,b) da uno de los valores de x para los que f es máximo en [a;b]. el máximo es determinado si sólo se obtiene una vez en el intervalo. Derivada Diff(f,x) calcula el número derivada de f en x. f debe ser el nombre de una función de usuario. Si f es una función de varias variables, se deriva con respecto a x. Integral Integrate(f,a,b) da . F debe ser el nombre de una función de usuario. La integral se evalúa con el método de Romberg. Si f está en modo “sólo con puntos” (ver más adelante), integrate(f) (sin cotas) calcula la suma de Riemann correspondiente, es decir donde a y b son las cotas y d el paso dados en la pestaña “numérico” de f, y n es la parte entera de Si f es una curva paramétrica, integrate(f) da el área algebraica que delimita. Length(f) da la longitud de la curva f, que puede ser la representación gráfica de una función definida en un intervalo, o una curva paramétrica, o un lugar. 8 Variación de una magnitud d(x)1 es la variación de la magnitud x, es decir cuánto está variando la magnitud. En general, d(x)=0. Esta función permite (entre otros) medir la actividad del ratón, es decir introducir la noción de tiempo en las figuras geométricas. Por ejemplo, si P1 es un punto, la expresión “d(x(P1))” muestra la variación instantánea de la abscisa de P1. La función d(x) no solo se aplica a números sino también a puntos. En ese caso d(P) es la distancia de desplazamiento de P. Suma acumulada de una magnitud Sum(x) tiene el efecto inverso de la función precedente: suma en cada evento (movimiento del ratón, creación o modificación de un objeto) el valor actual de x: el resultado puede ser muy grande rápidamente! Sum(x,f) tiene el mismo efecto que sum(x) si f >0 pero si f<0, la suma se vuelve 0. Típicamente f es igual a –p donde p es una casilla booleana a seleccionar, titulada “anulación del contador” o algo por el estilo. Por ejemplo, si P1 es el punto considerado anteriormente, “sum(d(x(P1)))” es constantemente igual a la abscisa de P1: poco interesante, pero si se añade un valor absoluto, “sum(abs(d(x(P1)))” da la variación absoluta de la abscisa de P1 que mide cuanto se mueve P1 después de abrir la figura. Un ejemplo de utilización de esta función es la macro “progress bar” que utiliza “sum” como contador. Variables geométricas Abscisa x(P) es la abscisa del punto P. En una función pero el antecedente es un punto, no un número. Además P no tiene que ser un punto: Si P es una recta, una semirrecta, un segmento o un vector, x(P) es la abscisa de un vector director unitario de la recta o del segmento, o la abscisa del vector normalizado. Un ejemplo que utiliza la variación de un número: Crear un punto P1 y escribir como abscisa “x(P1)+10*rsin(d(x(P1)))” y lo mismo para la ordenada. Luego tratar de mover P1 con el ratón. No aconsejado para los que han abusado del café o son propensos a marearse… 1 La misma notación se utiliza para una función de dos variables. La distancia, descrita mas adelante. 9 Ordenada y(P) es la ordenada de P si es un punto , la de un vector director unitario si P es una recta, una semirrecta, un segmento o un vector. Para obtener el coeficiente director (pendiente) de la recta d1, se utiliza “y(d1)/x(d1)”. Distancia d(A,B) es la distancia entre A y B. A y B deben ser puntos ya creados. Angulo La función a tiene tres puntos como antecedente, y un número como imagen. Es decir, a(P1,P2,P3) da el ángulo en grados entre los puntos P1, P2 y P3 (de vértice P2). Factor de escala Scale(x,a,b) da el número , “invalid” en caso contrario. Autoreferencia This, cuando se utiliza en las propiedades de un objeto es una referencia al mismo objeto. Por ejemplo, si se quiere restringir las coordenadas de un punto a números enteros, sin tener que buscar como se llama ese punto, se escribe en la casilla de abscisa “round(x(this))” y análogamente para la ordenada. Si el punto se llama P1 la abscisa se convierte en “round(x(P1))”. El símbolo arrobas @ tiene el mismo efecto salvo que permite hacer referencia a otro objeto, incluso que no ha sido definido. Operaciones Al aplicar una de las siguientes funciones a una expresión (o varias), se obtiene otra expresión, pero también combinando expresiones con una de las siguientes operaciones: Opuesto El opuesto de x es –x Suma La suma de a y b es a+b Diferencia a-b 10 Producto a*b cociente a/b. Si b es nulo, es indeterminado (“invalid”). La división es exacta, si se quiere el cociente entero (euclidiano) hay que utilizar la función “floor” (ver más adelante). Potencias CaRMetal tiene dos notaciones para ab: a^b y a**b. en los dos casos, si a es negativo el exponenete debe ser entero. Para Carmetal 00=1. Carmetal conoce las reglas de prioridad operatoria, que pueden modificarse con paréntesis. Si se olvida cerrar un paréntesis, carmetal muestra un mensaje de error y reinicializa la expresión. Tests Booleanos Cuando se unen dos expresiones con un símbolo de relacio´n como “<” el resultado es uan expresión que vale 1 si la relación es verdadera, 0 si no: se habla de expresión booleana pero los números 0 y 1 también se consideran como enteros y pueden sumarse, dividirse, etc. Las relaciones posibles son: < > <= >= == ~= para (aproximadamente igual” (la diferencia es, en valor absoluto, inferior a 10-10). La igualdad se escribe con un símbolo igual doble y no hay signo para “diferente”. Para escribir “diferente” hay que usar una negación. Ejemplos: “3>4” da 0, y también “3==4” pero “3<=4” da 1. Utilidad de ~=: en los tests, puede suceder que el resultado sea falso cuando debería ser verdadero. Por ejemplo, la distancia entre el centro de un círculo de radio 5 y un punto del círculo puede no ser exactamente 5 (error de aproximación). Remplazar == por ~= es más prudente en 11 esos casos. Esto evita que un ángulo se muestre como de 90° cuando las rectas no son perpendiculares… Inside(P,c) es una expresión booleana que vale 1 si el punto P está en el interior del círculo c, 0 si no. Esta función puede utilizarse con polígonos. Negación El signo de exclamación antes de una expresión booleana (igual a 0 o 1) se la resta a 1. Funciona como una negación. Además efectúa una conversión booleana según la regla “todo lo que no es nulo vale uno”. Para obtener se escribe !(a==b). Conjunción && es una conjunción de expresiones booleanas. Tiene el mismo efecto que la multiplicacio´n salvo que convierte en booleanos las expresiones, permitiendo escribir 2&&3 para 1. Si c1 y c2 son dos superficies (polígonos o círculos), y P un punto, la variable “inside(P,c1)&&inside(P,c2)” es igual a 1 si y solamente si el punto P esta en permite trabajar con diagramas de Venn. lo que Disyunción La disyunción entre booleanos se representa con ||. P||q es nulo si y solo si p y q son nulos. Funciones del usuario Una función de usuario se crea al hacer clic en el icono “f(x)”. Es una función que se puede añadir a la lista anterior. Como todo objeto Carmetal, puede modificarse su color, punteado, darle un aspecto condicional, un número de capa, etc. Lo más importante en ese objeto es su definición (en la pestaña “numérico”). Podemos definir funciones de una variable (x) de dos variables (x, y) e incluso tres (x,y,z) o cuatro (x,y,z,t). Ejemplos Función de una variable real: Expresión “1/cos(x)”; por supuesto, en este caso llamamos la función “sec”. Ahora la figura tendrá una función mas, la secante. Podrá utilizarse en “sec(3)” o en otras expresiones. Primitva de una función: como la función no tiene primitiva calculable por fórmula analítica, no es posible obtener la función de error salvo por un método numérico como Romberg. En Carmetal es bastante fácil: se hace clic en “f(x)”, se define una sola variable (x) y se define la función como “exp(-x^2/2)”. Si la función se 12 llama f1, se recomienza el procedimiento con una función llamada “erfc” y cuya definición es “integrate(f1;-4;x)/sqrt(2*pi)”, y con la que se pueden calcular las probabilidades gaussianas2. Esta es la representación gráfica: 2 Función booleana de una variable real: la función se llama “entero” y vale “x==floor(x)”. entero(x) vale 1 si y solo si x es entero. Función real de dos variables: distancia en el plano. Se crea un punto A en el plano y la función f1 de expresión “sqrt((x-x(A))^2+(y-y(A))^2)”. Este uso de la función f1 en lugar de la distancia entre dos puntos evita recurrir a otro punto diferente de A y uniendo varias funciones de este tipo pueden obtenerse líneas de nivel (ver más adelante) y explorar dinámicamente el punto de Fermat de un triángulo. -4 se toma aquí como aproximación de 13 Representación gráfica Representación gráfica Al hacer clic en el ícono que representa una gráfica en un plano cartesiano, puede crearse una función de usuario pero al mismo tiempo representarla gráficamente. Puede modificarse el color, espesor, etc. pero también las cotas (pestaña “numérico”) del intervalo de definición (min y max) y el paso (longitud horizontal de los segmentos que componen la representación gráfica), lo que permite dibujar fácilmente polígonos. Carmetal está dotado de un algoritmo de detección automática de las discontinuidades que el evita trazar segmentos verticales, como lo muestra la representación gráfica de la parte fraccionaria de x: Integral La pestaña “aspecto” ofrece otra posibilidad: al seleccionar la opción “llena”, se colorea la integral de la función en el intervalo de definición. Si sólo se quiere colorar una parte del dominio bajo la curva (ejemplo: la región crítica en estocástica), deben crearse copias de la función, representadas también pero en intervalos mas pequeños. Esas copias se colorean. Por ejemplo, con tres funciones gaussianas, una definida en R en rojo, una segunda definida en y la tercera definida en en azul, llena se ve la región crítica siguiente: Nube de puntos Si se selecciona la casilla “solo puntos”, se obtiene una nube de puntos cuya ordenada es la imagen de la abscisa por la función. El espacio entre esos puntos está dado por el paso de la pestaña “numérico”, y su aspecto se determina por el estilo que se seleccionó en la pestaña “aspecto” Si se crea un punto cuando el ratón está cerca de la representación gráfica, el punto queda sobre la curva (también se puede usar la opción “asociar”). Y si la curva está en modo “puntos”, el punto 14 se mueve sobre un conjunto discreto de puntos. Por ejemplo, si la función “x^2/10” está en modo “puntos” con un paso de 1, un punto asociado a su representación gráfica con un incremento de 1 tendrá únicamente abscisas enteras. Aquí está la representación gráfica en azul y el punto móvil en rojo, con sus coordenadas: Curvas paramétricas Cuando se crea o modifica una representación gráfica, la pestaña “numérico” tiene una casilla “función paramétrica”. Al seleccionarla, se definen dos funciones x e y de la variable t. y para esta función se puede escoger un paso, ponerla ne modo 2puntos”, etc. Por ejemplo, la función x(t)=rsin(2*t) y la función y(t)=rsin(3*t) dan en la curva de Lissajous, en modo “lleno”: Una curva paramétrica también puede ser el nido de un punto incluso si las funciones x e y son discontinuas. Tambien es posible poner una curva paramétrica en modo 2puntos” , permitiendo trabajar en geometrías finitas. 15 Lineas de nivel Si se hace clic en el icono que representa una lemniscata se puede crear una función de dos variables x e y pero representar el conjunto de sus ceros. Por ejemplo, la curva de ecuación : Es posible asociar un punto a una línea de nivel. Lugares Traza Recordemos que si la casilla “activar traza” está seleccionada para uno o varios puntos, al moverlos la nube de puntos permanece visible si no se hace zoom. Por ejemplo, si se construye un triángulo con un vértice sobre un círculo y se construye su ortocentro y se selecciona “activar traza” para el ortocentro el movimiento del punto sobre el círculo da. 16 También recordamos que esas posiciones sucesivas del ortocentro no se memorizan en la figura, y que también puede activarse la traza de rectas, círculos, etc. También existe la herramienta Traza de Carmetal, la cuarta de la categoría “funciones” En el ejemplo anterior se selecciona el punto a trazar (el ortocentro) luego se mueve el punto del que depende (el punto grueso) y aparece la curva cuando se da la vuelta al círculo. Esta traza se guarda con la figura y resiste su desplazamiento (no al zoom). Traza automática La penúltima herramienta hace lo mismo pero con una animación: después de seleccionar la herramienta, se hace clic en el punto que se quiere trazar manteniendo oprimida la tecla shift luego se hace doble clic en el punto móvil y se muestra la traza y el punto que la controla se mueve automáticamente sobre el círculo a una velocidad que puede controlarse con las combinaciones shift+flecha a la derecha (o a la izquierda). Si el punto de control está sobre un segmento o una recta, el punto vuelve al primer extremo al alcanzar el segundo extremo. Si no se oprime la tecla shift al hacer clic sobre el punto, la traza queda invisible durante la animacio´n y aparece al final. Cómo detener la animación? Haciendo clic en una zona vacía de la figura. Un segundo clic relanza la animación. Lugar de puntos Lugar de puntos La última herramienta de esta categoría permite construir lugares, que son objetos de Carmetal sobre los que se pueden colocar puntos. Para construir un lugar se hace clic en el punto que genera el lugar, luego doble clic en el punto del que depende y aparece el lugar: 17 Si se arrastran los puntos no gruesos se ve la evolución de la cuartica. En las propiedades del lugar hay una opción “número de etapas”. Si ese número es demasiado pequeño, el lugar parece poligonal. Si es muy grande, la figura no tendrá fluidez. El punto del que depende el lugar (punto de control) puede moverse sobre una recta, un segmento o un círculo. Envolventes de rectas La misma herramienta puede aplicarse a una recta que depende de un punto y en ese caso da la envolvente de la recta (o segmento). Por ejemplo, para construir la célebre envolvente de las rectas de Simson de un triángulo, se construye un triángulo, su circuncírculo, un punto sobre el círculo, dos lados del triángulo y las proyecciones del punto sobre el círculo sobre esos lados, que definen la recta de Simson. Luego se selecciona la herramienta lugar, se hace clic en la recta y doble clic en el punto sobre el círculo. 18 Si se mueve uno de los puntos azules, la envolvente cambia en tiempo real. Es posible colocar un punto sobre ella.