Mostrando entradas con la etiqueta herramientas de cálculo. Mostrar todas las entradas
Mostrando entradas con la etiqueta herramientas de cálculo. Mostrar todas las entradas

miércoles, 22 de diciembre de 2021

Algunas de mis herramientas de cálculo favoritas

Mis herramientas favoritas

Lenguajes de programación y asistentes de cálculo:
    Hoja de cálculo ( herramienta generalista, muy versátil; está integrada en muchas otras herramientas )
    R ( estadística, probabilidad, y cálculo numérico )
    Octave ( cálculo y análisis numérico )
    Maxima ( Un clásico CAS - cálculo simbólico - )
    Python ( lenguaje de propósito general, orientación a objetos; muy adecuado para los trabajos de modelización )
    C/C++ ( lenguaje de propósito general, orientación a objetos; muy adecuado para los proyectos de ingeniería y electrónica )
    Processing ( lenguaje muy apropiado para la elaboración de gráficos, orientación a objetos. También sirve como interfaz para la adquisición de datos mediante la intervención de una placa microcontroladora )
    Julia ( cálculo numérico, cálculo paralelo, un proyecto interesantísimo )
    JavaScript ( lenguaje orientado a objetos muy adecuado para preparar utilidades interactivas en una página web )

Herramientas de mucha utilidad didáctica para las matemáticas en e. secundaria:
    GeoGebra ( multiherramienta: hoja de cálculo, cálculo simbólico, gráficos en 2 y 3 dimensiones, ...)
    Logo ( un clásico didáctico del MIT )
    Scratch ( programación visual, muy apropiada para aprender a programar, hereda la filosofía de los científicos que concibieron el lenguaje Logo, pero con eficaces interfaces gráficos que facilitan el aprendizaje )

Calculadoras científicas, gráficas, programables ...:
    Casio fx 82 MS ( humilde calculadora científica, pero muy buena )
    Casio fx 850P ( un clásico entrañable de los años 80 del siglo pasado, programable en Casio Basic, con una gran librería de utilidades ). Se me estropeó hace unos años (era muy viejecita)
    TI 92 II ( un calculadora gráfica de los años 90 del siglo pasado, programable en TI Basic; entre otras herramientas, incorpora un módulo CAS con Derive, todo un clásico )
    TI Voyage 200 ( es la evolución de la TI92, con algunas mejoras, todo un clásico de la primera década del actual siglo )
    NumWorks ( calculadora gráfica y programable del siglo XXI, muy rápida y con mucha capacidad de memorai, con un enfoque novedoso por tratarse de un proyecto colaborativo: software y hardware abiertos. Es programable en Python. Presenta una buena conectividad a través de la página web del fabricante. El software se puede actualizar periódicamente y se desarrolla de forma continua, cada vez es mejor. )

Herramientas de edición:
    Bloc de notas ( por su sencillez y pocos recursos necesarios, cualquiera sirve. Una herramienta humilde, pero necesaria. Aparece integrada en todos los sitemas operativos )
    LaTeX ( sistema de composición de documentos, muy apropiado para la tipografía científica )
    LibreOffice ( conjunto de herramientas ofimáticas )
    LyX ( procesador de textos híbrido WYSIWYG - LaTex )
    HTML ( un lenguaje de marcas ( 'tags' ) para editar trabajos en la www: un clásico fundamental )

Electrónica:
    Fritzing ( programa para el diseño de circuitos electrónicos: por si os gusta experimentar en el taller, trastear y soldar )
nbsp   Scratch ( programación visual, puede utilizarse en proyectos de robótica )
    MBlock ( programación visual, similar a Scratch y especialmente útil en proyectos de robótica )

Astronomía: ( programas de ayuda para la localización de astros y para obtener sus coordenadas )
    Stellarium
    Cartes du Ciel

jueves, 6 de mayo de 2021

Comentarios sobre la implementación de la división entera en alguna herramientas de cálculo

Las instrucciones básicas de muchas herramientas de cálculo no dan el resultado esperado al utilizar las instrucciones al uso para efectuar calcular el resto y el cociente de una división entera si el dividendo o bien el divisor son, en general, negativos. Probando algunas de estas instrucciones con el lenguaje de programación/herramienta de cálculo Python me he dado cuenta de ello. También lo he comprobado con la calculadora TI Voyage 200 y con el programa de cálculo simbólico MAXIMA, con los mismos resultados incorrectos de acuerdo con el teorema de la división entera (TDE), que recordemos que afirma lo siguiente:

Sean dos números enteros $a$ ( dividendo ) y $b\neq 0$ ( divisor ), entonces existen otros dos números enteros $q$ (cociente) y $r$ (resto), únicos, tales que:
i) $a=bq+r$
ii) $0\le r \prec |b|$

Por tanto, hay que tener muy en cuenta estos resultados inesperados en los cálculos con programas y herramientas de cálculo en los que se hagan uso de las instrucciones 'cociente' y 'resto' al trabajar con números enteros. No obstante, todo va bien si el dividendo y el divisor son positivos, incluso si el dividendo es negativo y el divisor positivo, pero se obtienen respuestas incorrectas.

-oOo-

He hecho las siguientes pruebas, por si queréis reproducirlas:

Toda va bien ...
Python responde con los resultados correctos del cociente y el resto si el dividendo y el divisor son positivos, incluso si el dividendo es menor que el divisor; y también si el dividendo es negativo y el divisor es positivo. Así, por ejemplo, según el TDE, si a:=9 y b:=5, entonces $r=4$ y $q=1$ ( lápiz y papel ), y, mediante Python, se obtienen estos resultados: para a//b (cociende de a/b), 1 y para a%b (resto de a/b ), 4. Así, pues, todo va bien con números enteros positivos. También se obtienen los resultados correctos si $a\prec b$ ( el dividendo es menor que el divisor ): el cociente ha de ser cero, q=0, y el resto ha de ser igual al divisor, r=b; en efeto, pongamos que $a:=1$ y $b:=2$, con Python obtenemos también en este caso lo que se espera a//b es 0 y de a%b, 2. Incluso si el dividendo es negativo y el divisor postivo, también se obtiene lo correcto; por ejemplo, si $a:=-9$ y $b:=5$, el cociente, según el TDE, ha de ser -2 y el resto 1, y, así es, en efecto: haciendo a//b se obtiene -2 y haciendo a%b, 1, como debe ser.

Pero se obtienen respuestas inesperadas en otros casos ...
Ahora bien, Python da respuestas incorrectas -- como también las da MAXIMA, así como la calculadora TI Voyage 200 ( No lo he probado de momento con otras herramientas ) -- para el resto y el cociente en los otros casos, cuando el dividendo es positivo y el divisor es negativo, y cuando ambos son negativos. Por ejemplo, según el TDE, si a:=9 y b:=-5, entonces r=4 y q=-1; y, sin embargo, estas no son las respuestas de Python: haciendo a//b se obtiene como respuesta -2 (cociente) y haciendo a%b, -1 (resto). Veamos a continuación otro ejemplo de la incorrección de los resultados obtenidos, para a:=-9 y b:=-5, según el TDE, r=1 y q=-2; ahora bien, con Python, a//b responde 1 ( y no -2) y a&b, -4, en lugar de 1.

$\square$