Contactos

Para agrupar expresiones en el sistema de máximos, se utilizan. Tikhon Tarnavsky. Maxima: máxima libertad de cálculos simbólicos. Trabajar para comprender y dominar material nuevo.

Interfaz del programa: ruso

Plataforma: XP/7/Vista

Fabricante: Alexey Beshenov

máxima- una de las aplicaciones matemáticas más poderosas de la actualidad, que tiene muchas capacidades para calcular una cantidad bastante grande de funciones diferentes. No hace falta decir que la aplicación es un producto bastante específico que es poco probable que utilice el usuario medio. El caso es que, en primer lugar, el programa está diseñado para cálculos científicos y de ingeniería, aunque puede resultar útil para un gran número de estudiantes.

Características principales del programa Maxima.

Si hablamos de las principales capacidades de este producto de software único, inmediatamente vale la pena señalar la gran cantidad de funciones con las que puede funcionar el programa. Esto incluye diferenciación, funciones integrales, cálculo de funciones explícitas e implícitas, trabajo con expresiones de punto flotante, reconocimiento de sistemas de ecuaciones lineales, transformadas de Laplace, expansión de series, cálculo de matrices y tensores, trabajo con sistemas de ecuaciones, conjuntos, fracciones exactas, polinomios, vectores, trazar funciones usando representación 2D o 3D y mucho más. Probablemente, hoy en día no existe ningún área de cálculos matemáticos que este sistema no reconozca.

En cuanto a la interfaz de este producto de software, a pesar de la complejidad del programa en sí, es bastante sencilla. El panel principal tiene varios tipos de menús, en los que, de hecho, se presentan todas las secciones de cálculos matemáticos. Al utilizar cada uno de ellos, debe ingresar el problema inicial y el programa proporcionará la solución óptima automáticamente. Además, en algunos casos es posible obtener el resultado en forma de evidencia detallada con todos los procedimientos descritos y justificaciones para aceptar el resultado final.

Además, cualquier solución se puede imprimir fácilmente o, en algunos casos, obtener los gráficos correspondientes. Hay que decir que todo este sistema no parece en modo alguno gravoso, incluso a pesar de su aparente complejidad. Está claro que una herramienta tan potente puede ser del agrado de muchos usuarios. Seguramente los trabajadores de ingeniería, las mentes científicas y los estudiantes apreciarán sus enormes capacidades, la lista de tareas soportadas, así como la velocidad de trabajo inimaginable. Por lo tanto, si a menudo tiene que lidiar con tantos cálculos matemáticos, simplemente no encontrará un producto de software mejor para este tipo de tarea. En general, la aplicación funciona, como suele decirse, con un plus.

wxMaxima es un programa que es una de las implementaciones gráficas del sistema de álgebra informática Maxima. Este sistema puede trabajar con expresiones numéricas y simbólicas y su uso es completamente gratuito, incluso con fines comerciales. El principal beneficio de esta solución para los usuarios comunes es que ayuda a construir y resolver fórmulas y ecuaciones matemáticas. Además, wxMaxima realiza otras operaciones matemáticas útiles: integración, diferenciación, transformada de Laplace, construcción de series numéricas y vectores, trabajo con matrices y mucho más.

El programa "comprende" perfectamente fracciones y números de coma flotante y contiene un gran "arsenal" de herramientas para realizar cálculos analíticos. La interfaz de wxMaxima es lo más simple y rusificada posible. Consiste en un espacio de trabajo y una barra de herramientas que se puede utilizar para crear expresiones, gráficos, listas, tensores y similares. Con wxMaxima encontrará toda la documentación y los materiales de referencia necesarios (parcialmente traducidos) que le ayudarán a comprender las capacidades de esta solución de software.

Características y funciones clave

  • es un shell gráfico muy conveniente para el sistema de álgebra informática Maxima;
  • sirve para construir y calcular expresiones simbólicas y numéricas;
  • trabaja con matrices, vectores, ecuaciones, tensores, gráficas;
  • realiza operaciones de diferenciación, integración, transformada de Laplace, expansión de series, etc.;
  • acompañado de documentación detallada.

Aquí puede descargar gratis una nueva versión de la aplicación matemática Maxima en ruso para Windows XP / Vista / 7/8/10 desde el servidor o el sitio web oficial.

Descripción del programa Máxima:

máxima- un sistema de álgebra informática diseñado para trabajar con expresiones simbólicas y numéricas, incluyendo integración, diferenciación, expansión de series, transformada de Laplace, sistemas de ecuaciones lineales, ecuaciones diferenciales ordinarias, conjuntos, polinomios, listas, vectores, matrices y tensores.

Dado que el programa realiza cálculos bastante serios en el campo de la ingeniería y las matemáticas superiores, es poco probable que el usuario medio lo necesite. Pero los especialistas que realizan cálculos científicos y de ingeniería, así como muchos estudiantes, apreciarán sus enormes capacidades, la lista de tareas soportadas y la excelente velocidad de trabajo.

Maxima es una de las aplicaciones matemáticas más poderosas disponibles en la actualidad, que tiene muchas capacidades para calcular una gran cantidad de funciones diversas. Además de las funciones anteriores, el programa realiza cálculos numéricos de alta precisión utilizando fracciones exactas, números enteros y números de punto flotante de precisión arbitraria. El sistema permite trazar funciones y estadísticas en dos y tres dimensiones.

Probablemente, hoy en día no existe ningún área de cálculos matemáticos que este sistema no reconozca.

Interfaz del programa. A pesar de su complejidad, es bastante sencillo. El panel de control principal tiene varias secciones de menú en las que se presentan todos los métodos de cálculo matemático. Para comenzar a trabajar con cada sección, el usuario debe ingresar el problema inicial y el programa proporcionará la solución óptima automáticamente.

Además, en algunos casos es posible obtener el resultado en forma de evidencia detallada con todos los procedimientos descritos y justificaciones para aceptar el resultado final.

Maxima es descendiente del legendario sistema de álgebra informática Macsyma, desarrollado a principios de los años 60 en el MIT. Es el único sistema basado en Macsyma que todavía está disponible públicamente y tiene una comunidad de usuarios activa debido a su apertura. Hubo un tiempo en que Macsyma revolucionó el álgebra informática e influyó en muchos otros sistemas, incluidos Maple y Mathematica.

Nombre máxima
Versión 5.40.0
Idioma ruso si
Sistema Windows XP/Vista/7/8/10
Desarrollador

El sistema Maxima tiene muchas funciones integradas. Cada función integrada se puede describir en la documentación contenida en el sistema de ayuda. Se puede acceder a la ayuda utilizando la tecla de función F1. Maxima también tiene una función especial que proporciona información de la documentación para palabras específicas. Una versión abreviada de esta llamada de función: ?? nombre (Fig. 12). ¿¿Aquí?? es el nombre del operador y el argumento debe estar separado de él por un espacio. ¿¿Operador?? muestra una lista de aquellas secciones de ayuda y nombres de funciones que contienen el texto especificado, después de lo cual le solicitan que ingrese el número de la sección o descripción de la función que desea ver:

Figura 12. Solicitar ayuda sobre un comando de interés del sistema Maxima

Tenga en cuenta que en el sistema Maxima no existe una distinción clara entre operadores y funciones. Además, cada declaración es en realidad una función.

Todas las funciones y operadores de Maxima funcionan no sólo con números reales, sino también con números complejos. Los números complejos en sí están escritos en forma algebraica, con la unidad imaginaria denotada por %i; es decir, en la forma a+b*%i, donde A Y b son las partes real e imaginaria de un número, respectivamente.

Consideremos sintaxis de función básica Sistemas maxima.

1. Operadores aritméticos: + , -, *, /, -->. Ejemplo:

3. Operadores lógicos: y, o, no. Ejemplo:

4. Función para encontrar el factorial de un número: !

El factorial se da en la forma más general y, de hecho, es una función gamma (más precisamente, x! = gamma(x+1)), es decir, se define sobre el conjunto de todos los números complejos excepto los enteros negativos. El factorial de un número natural (y cero) se simplifica automáticamente al mismo número natural.

5. La función para encontrar el semifactorial es: !! (el producto de todos los números pares (para un operando par) o impares menores o iguales al dado).

6. Función de negación de igualdad sintáctica: # La notación a#b es equivalente a no a=b. Ejemplo:

7. Función para encontrar el módulo de un número x: abs(x) El módulo está definido para todos los números complejos. Ejemplo:

8. Función que devuelve el signo del número x: signum(x)

9. Funciones que devuelven los valores mayor y menor de números reales dados: máx(x1,...,xn) y mínimo(x1,...,xn).

10. Algunas funciones matemáticas integradas:

raíz cuadrada (x) Raíz cuadrada de x
acos(x) Arcocoseno del argumento x
acosh (x) Arcocoseno hiperbólico de x
acota(x) Arcocotangente del argumento x
acoth(x) Arco hiperbólico cotangente del argumento x
acsc(x) Arcocosecante del argumento x
acsch(x) Arcocosecante hiperbólica del argumento x
asec(x) Arcosecante del argumento x
asech(x) Arcosecante hiperbólico del argumento x
asin(x) Arcoseno del argumento x
asinh(x) Arcoseno hiperbólico del argumento x
atán (x) Arctangente del argumento x
atanh (x) Arcotangente hiperbólico del argumento x
cosh(x) Coseno hiperbólico del argumento x
tela(x) Cotangente hiperbólica del argumento x
csc(x) Cosecante del argumento x
csch(x) Cosecante hiperbólica del argumento x
segundo(x) Secante del argumento x
seg(x) Secante hiperbólica del argumento x
pecado(x) Seno de x
sinh(x) Seno hiperbólico del argumento x
bronceado(x) Tangente x
tan(x) Tangente hiperbólica del argumento x
iniciar sesión(x) Logaritmo natural de x
exp(x) Exponente x

11. Funciones para trabajar con matrices:

determinante – encontrar el determinante de una matriz:

Valores propios: encontrar los valores propios de la matriz:

invertir– obteniendo la matriz inversa:

menor– define el menor de la matriz. El primer argumento es una matriz, el segundo y

el tercero son los índices de filas y columnas, respectivamente:

rango– rango de matriz:

submatriz– devuelve la matriz obtenida del original eliminando

filas y/o columnas correspondientes. Los parámetros son:

número de filas que se eliminarán, matriz original, número de columnas que se eliminarán.

transponer– transposición de matriz:

El lenguaje del sistema Maxima contiene los operadores ejecutables básicos que se encuentran en cualquier lenguaje de programación. Mirémoslos.

Operadores de asignación de valor (expresiones de nomenclatura).

1. Operador “:” (operador para establecer el valor de una variable).

2. Operador “:=" (operador para especificar una función de usuario).

3. Versiones extendidas de operadores de asignación y asignación de funciones, denotados respectivamente por:: y::=.

El uso de un operador de función de usuario hace que trabajar con una función de usuario sea mucho más fácil porque se puede acceder a ella por nombre y los valores de la función en puntos determinados se pueden calcular fácil y convenientemente.

Ejemplo: encontrar el valor de una función. F (x,y)=cosx + pecado y en el punto

Operador de bucle. El operador de bucle se puede especificar de varias formas. El método de especificación depende de si se sabe de antemano cuántas veces debe ejecutarse el cuerpo del bucle.

Ejemplo: configurar un bucle para mostrar los valores de una variable A en el rango de -3 a 10 en pasos de 5:

La siguiente característica importante del sistema Maxima es trabajar con listas y matrices.

Para generar listas, utilice el comando makelist. Por ejemplo, usando el comando

Hemos formado una lista llamada x, que consta de diez elementos cuyos valores se encuentran según la fórmula.

Para formar matrices, utilice el comando matriz. Por ejemplo, usando el comando,

Hemos formado una matriz A bidimensional que consta de 10 filas y 5 columnas. Para llenar la matriz con elementos, usaremos un bucle con un parámetro. Por ejemplo,

Para mostrar elementos de matriz en la pantalla, puede usar el comando:

Se puede formar una matriz sin declaración previa. En el siguiente ejemplo, hemos formado una matriz unidimensional x, que consta de 5 elementos, cuyos valores se calculan mediante la fórmula x( i)=pecado i

El inconveniente de trabajar con matrices es que los valores de los elementos de la matriz se muestran en una columna. Es mucho más conveniente si los valores de una matriz (bidimensional) se muestran como una matriz. Para estos fines, puede utilizar el comando genmatrix. Por ejemplo, para generar una matriz bidimensional (matriz), debe especificar un comando de la siguiente forma:

Generemos la matriz resultante:

6. Las transformaciones de expresiones más simples.

De forma predeterminada, la función Autosimplificación está activa en el sistema Maxima, es decir. el sistema intenta simplificar la expresión ingresada sin ningún comando.

Ejemplo. Supongamos que necesita encontrar el valor de la siguiente expresión numérica:

Configuremos la expresión de acuerdo con las reglas del lenguaje del sistema Maxima.

Como puedes ver, el sistema respondió con el valor de la expresión, aunque no especificamos ningún comando.

¿Cómo se puede obligar al sistema a generar no el resultado, sino la expresión misma? Para hacer esto, se debe desactivar la función de simplificación usando el comando simp:false$. Entonces obtenemos:

Para activar la función de simplificación, debe especificar el comando simp:true$. La función de simplificación automática puede funcionar tanto con expresiones numéricas como con algunas no numéricas. Por ejemplo,

Al entrar podemos referirnos a cualquiera de las celdas anteriores por su nombre, sustituyéndola en cualquier expresión. Además, la última celda de salida se indica con %, y la última celda de entrada se indica con _. Esto le permite acceder al resultado más reciente sin distraerse con su número. Pero no se debe abusar de tales llamadas a celdas, ya que al reevaluar todo el documento o sus celdas de entrada individuales, puede ocurrir una discrepancia entre los números de celda.

Ejemplo. Encuentra el valor de la expresión y aumenta el resultado 5 veces.

Es recomendable utilizar variables en lugar de nombres de celdas y asignar sus nombres a cualquier expresión. En este caso, cualquier expresión matemática puede actuar como valor de la variable.

Los valores de los nombres de las variables se conservan durante todo el trabajo con el documento. Recordemos que si es necesario eliminar la definición de una variable, esto se puede hacer usando la función kill(name), donde nombre es el nombre de la expresión a destruir; además, puede ser un nombre asignado por usted o cualquier celda de entrada o salida. De manera similar, puede borrar toda la memoria y liberar todos los nombres ingresando el comando matar(todos) (o seleccionando el menú Makhta->Borrar memoria(Memoria clara)). En este caso, también se borrarán todas las celdas de E/S y su numeración comenzará nuevamente desde uno.

La función de simplificación automática no siempre puede simplificar una expresión. Además, hay una serie de comandos diseñados para trabajar con expresiones: racionales e irracionales. Veamos algunos de ellos.

rata (expresión): transforma una expresión racional a la forma canónica: abre todos los corchetes, luego lleva todo a un denominador común, suma y reduce; convierte todos los números en notación decimal finita a números racionales. La forma canónica queda automáticamente "anulada" en el caso de transformaciones que no sean racionales.

ratsimp (expresión): simplifica una expresión mediante transformaciones racionales. También se trabaja “en profundidad”, es decir, las partes irracionales de la expresión no se consideran como atómicas, sino que se simplifican, incluyendo dentro de ellas todos los elementos racionales.

fullratsimp(expresión): una función para simplificar una expresión racional aplicando secuencialmente la función ratsimp() a la expresión pasada. Debido a esto, la función es algo más lenta que ratsimp(), pero da un resultado más confiable.

expandir (expresión): expande los paréntesis en una expresión en todos los niveles de anidamiento. A diferencia de la función rateexpand(), no reduce fracciones a un denominador común.

radcan(expresión): una función para simplificar funciones logarítmicas, exponenciales y de potencia con exponentes racionales no enteros, es decir, raíces (radicales).

A menudo, cuando intentas simplificar una expresión en Maxima, en realidad sólo puedes hacerla más compleja. Puede ocurrir un aumento en el resultado debido a que no se sabe qué valores pueden tomar las variables incluidas en la expresión. Para evitar esto, debes poner restricciones a los valores que puede tomar una variable. Esto se hace usando la función asumir (condición). Por lo tanto, en algunos casos, el mejor resultado se puede lograr combinando radcan() con ratsimp() o fullratsimp().

Dado que esta serie de artículos se centrará en un programa matemático para cálculos simbólicos, primero unas palabras sobre qué son estos cálculos simbólicos o, como también se les llama, analíticos, en contraposición a los cálculos numéricos. Se sabe que las computadoras funcionan con números (enteros y de coma flotante). Por ejemplo, las soluciones de la ecuación x 2 = 2 x + 1 se pueden obtener como −0,41421356 y 2,41421356, y 3 x = 1 como 0,33333333. Pero me gustaría ver no una grabación digital aproximada, sino un valor exacto, es decir, 1±√2 en el primer caso y 1/3 en el segundo. La diferencia entre cálculos numéricos y simbólicos comienza con este sencillo ejemplo. Pero además de esto, también hay problemas que no pueden resolverse numéricamente en absoluto. Por ejemplo, ecuaciones paramétricas, donde en forma de solución es necesario expresar la incógnita a través de un parámetro; o encontrar la derivada de una función; Sí, casi cualquier problema bastante general sólo puede resolverse de forma simbólica. Por tanto, no es de extrañar que para esta clase de problemas hayan aparecido programas informáticos que operan no solo con números, sino con casi cualquier objeto matemático, desde vectores hasta tensores, desde funciones hasta ecuaciones integrodiferenciales, etc.

Máxima en ciencia y educación.

Entre el software matemático para cálculos analíticos (simbólicos), el más conocido es el comercial ( Arce, Matemáticas); Esta es una herramienta muy poderosa para un científico o maestro, estudiante de posgrado o estudiante, que le permite automatizar la parte más rutinaria del trabajo que requiere mayor atención, mientras opera con un registro analítico de datos, es decir, de hecho, fórmulas matemáticas. Un programa de este tipo puede denominarse entorno de programación, con la diferencia de que los elementos del lenguaje de programación son notaciones matemáticas familiares para los humanos.

El programa, que se convirtió en el tema del artículo, funciona según los mismos principios y proporciona una funcionalidad similar; Su diferencia más radical es que no es comercial ni cerrado. En otras palabras, estamos hablando de software libre. De hecho, el uso del software libre es más natural para la ciencia fundamental que para la ciencia comercial, ya que el modelo que se utiliza en el software libre es un modelo de apertura y disponibilidad pública de todos los desarrollos. Evidentemente, estas mismas propiedades son inherentes a los resultados de la actividad científica. Utilizando esta similitud de enfoques, se pueden considerar extensiones de la funcionalidad del software libre o bibliotecas adicionales que se pueden crear para sus necesidades en el proceso de investigación científica como parte integral de los resultados de dicha investigación. Y estos resultados pueden usarse y distribuirse a discreción del usuario sin tener en cuenta las restricciones impuestas por las licencias del software fuente. En el caso del software comercial, que es propiedad de su fabricante, este tipo de libertad está significativamente limitada, desde la imposibilidad de transferir libre (y legalmente) dicho software junto con sus desarrollos hasta posibles reclamaciones de patentes por parte del desarrollador del software. empresa en el caso de la distribución de bibliotecas adicionales caseras.

Por otro lado, la principal dirección, además del desarrollo científico, donde estos programas tienen demanda es la educación superior; y el uso de software libre para necesidades educativas es una oportunidad real tanto para la universidad como para estudiantes y profesores de tener a su disposición copias legales de dicho software sin costes monetarios elevados, o incluso significativos.

Este artículo inicia una serie dedicada al programa gratuito de computación analítica. máxima. En esta serie intentaré darle la impresión más completa del programa: estará dedicado tanto a los principios como a los conceptos básicos del trabajo con Maxima, así como a una descripción de sus capacidades más amplias y ejemplos prácticos.

Una pequeña historia

La historia del proyecto, ahora conocido como Maxima, comenzó allá por finales de los años 60 en el legendario MIT (Instituto Tecnológico de Massachusetts), cuando, en el marco del gran proyecto MAC que existía en esos años, se comenzó a trabajar en una informática simbólica. programa que recibió el nombre de Macsyma (de MAC Symbolic MAnipulation). La arquitectura del sistema se desarrolló en julio de 1968, la programación en sí comenzó en julio de 1969. Se eligió Lisp como lenguaje para desarrollar el sistema, y ​​la historia ha demostrado que fue la elección correcta: de los lenguajes de programación existentes en ese momento. , es el único que continúa desarrollándose hoy, casi medio siglo después del inicio del proyecto. Los principios subyacentes al proyecto fueron posteriormente tomados prestados por los programas comerciales que se desarrollan más activamente en la actualidad: Mathematica y Maple; Así, Macsyma se convirtió en realidad en el fundador de toda la dirección de programas de matemáticas simbólicas. Naturalmente, Macsyma era un proyecto comercial cerrado; fue financiado por organizaciones públicas y privadas, incluida la histórica ARPA (Agencia de Proyectos de Investigación Avanzada; ¿recuerda ARPAnet, el antepasado de Internet?), los Departamentos de Energía y Defensa de EE. UU., DOE y DOD. El proyecto se estaba desarrollando activamente y las organizaciones que lo controlaban cambiaron más de una vez, como siempre ocurre con los proyectos cerrados de larga duración. En 1982, el profesor William Schelter comenzó a desarrollar su propia versión basada en el mismo código, llamada Maxima. En 1998, Shelter pudo obtener del DOE los derechos para publicar el código bajo la GPL. El proyecto Macsyma original dejó de existir en 1999. William Shelter continuó desarrollando Maxima hasta su muerte en 2001. Pero, como es típico en el software de código abierto, el proyecto no murió junto con su autor y curador. Ahora el proyecto continúa desarrollándose activamente y la participación en él es la mejor tarjeta de presentación para matemáticos y programadores de todo el mundo.

Algunas palabras sobre el programa.

Por el momento, Maxima se lanza para dos plataformas: sistemas compatibles con Unix, es decir, Linux y *BSD, y MS Windows. Por supuesto, hablaré de la versión de Linux.

Maxima en sí es un programa de consola y dibuja todas las fórmulas matemáticas utilizando caracteres de texto ordinarios. Esto tiene al menos dos ventajas. Por un lado, el propio Maxima se puede utilizar como núcleo, con interfaces gráficas construidas sobre él para satisfacer todos los gustos. Hay bastantes de ellos hoy en día; esta vez me centraré en los dos más populares (ver barra lateral), y los más visuales y fáciles de usar, y hablaremos del resto en los próximos números; También son interesantes a su manera, aunque más específicos.

Por otro lado, por sí solo, sin complementos de interfaz, Maxima es poco exigente en términos de hardware y puede funcionar en computadoras que ahora nadie considera computadoras (esto puede ser relevante, por ejemplo, para una universidad o un laboratorio científico, que probablemente no tengan dinero para actualizar su flota de máquinas, pero puede surgir la necesidad de software para computación simbólica).

Los nombres de funciones y variables en Maxim distinguen entre mayúsculas y minúsculas, es decir, difieren en letras mayúsculas y minúsculas. Esto no será nuevo para nadie que haya trabajado con sistemas compatibles con POSIX o lenguajes de programación como, por ejemplo, C o Perl. Esto también es conveniente desde el punto de vista de un matemático, para quien también es común que las letras mayúsculas y minúsculas puedan denotar diferentes objetos (por ejemplo, conjuntos y sus elementos, respectivamente).

Para comenzar a trabajar con el programa, necesitará el paquete Maxima; Si no está en los repositorios estándar de su distribución, puede obtenerlo en el sitio web del proyecto, cuya dirección se encuentra en la barra lateral.

Los principios de trabajo con el programa no dependen de qué interfaz elijas para él, por lo que intentaré abstraerme lo más posible de una interfaz específica, limitándome solo a pequeños comentarios en los casos en que se comporten de manera diferente.

Por el momento la última versión del programa es la 5.9.3, que es de la que les hablaré; Si su distribución aún tiene una versión anterior, en principio puede usarla: tanto 5.9.2, que fue relevante hace unos meses, como 5.9.1, lanzado a fines del año pasado, no tienen diferencias fundamentales con respecto a la versión anterior. el actual.

Interfaces gráficas para Maxima

Desde el punto de vista de conocer Maxima, dos interfaces son de mayor interés.

El primero es un programa de gráficos independiente y separado llamado . Éste, como el propio Maxima, además de Linux/*BSD, también existe en una versión para MS Windows. En wxMaxima, ingresa fórmulas en forma de texto y la salida de Maxima se muestra gráficamente, utilizando símbolos matemáticos familiares. Además, se pone gran énfasis en la facilidad de entrada: la línea de comando está separada de la ventana de E/S, y los botones adicionales y un sistema de menú le permiten ingresar comandos no solo en texto, sino también en modo de diálogo. El llamado "autocompletado" en la línea de comando en realidad sólo tiene la similitud en que se llama mediante la tecla "Tab". Desafortunadamente, se comporta solo como un historial de comandos inteligente, es decir, llama al comando de los ya ingresados ​​en esta sesión que comienza con los caracteres especificados en la línea de comando, pero no complementa los nombres de los comandos y sus parámetros. Por lo tanto, esta interfaz es más conveniente cuando necesita hacer muchos cálculos y ver los resultados en la pantalla; y también, quizás, si no te gusta mucho introducir todos los comandos desde el teclado. Además, wxMaxima proporciona una interfaz cómoda para la documentación del sistema; aunque como la documentación viene en formato html, puedes utilizar un navegador normal.


La segunda interfaz bastante interesante de Maxima es un modo adicional en el editor. . Aunque este editor comparte antecedentes históricos comunes con el conocido Emacs, como sugiere el nombre, existen pocas similitudes prácticas entre ellos. TeXmacs se está desarrollando para la edición visual de textos científicos, en los que se ve el texto editado en la pantalla casi en la misma forma en que se imprimirá. En particular, tiene el llamado modo de entrada matemática, que es muy conveniente para trabajar con una amplia variedad de fórmulas y puede importar/exportar texto a LaTeX y XML/HTML. Maxima, llamado desde TeXmacs, utiliza la capacidad de trabajar con fórmulas. De hecho, las fórmulas se muestran en la notación matemática habitual, pero al mismo tiempo se pueden editar y copiar en otros documentos como texto normal. La sesión de Maxima se llama desde el menú: “ insertarSesiónmáxima", y aparece un menú adicional con comandos de Maxima. Después de iniciar la sesión, ya puede cambiar al modo de entrada matemática dentro de ella (el menú del modo de entrada se abre mediante el primer botón en el panel de entrada) y también utilizar elementos de notación matemática al ingresar. Esta interfaz será más conveniente para aquellos que quieran utilizar los resultados de los cálculos en sus textos y les guste editarlos visualmente.



Empecemos

Después de iniciar la sesión de Maxima, vemos las siguientes líneas:

Máxima reinició. (%i1)

El primero es un mensaje de que el kernel de Maxima acaba de iniciarse (en cambio, dependiendo de la versión y la compilación específica, es posible que se muestre información breve sobre el programa); el segundo es una invitación a ingresar el primer comando. Un comando en Maxim es cualquier combinación de expresiones matemáticas y funciones integradas, terminadas, en el caso más simple, con punto y coma. Después de ingresar el comando y presionar "Enter", Maxima imprimirá el resultado y esperará el siguiente comando:


Para operaciones aritméticas se utilizan notaciones tradicionales: -, +, *, /; ** o ^ para exponenciación, sqrt() para raíz cuadrada.

Si para algunas notaciones no es obvio cómo escribirlas en una línea, lo explicaré a medida que avance.

Como puedes ver, cada celda tiene su propia etiqueta; esta etiqueta es el nombre de la celda entre paréntesis. Las celdas de entrada se denominan %i con un número (i de aporte- entrada), celdas de salida - como %o con el número correspondiente (o de producción- conclusión). Todos los nombres de servicios integrados comienzan con el signo %: para, por un lado, hacerlos lo suficientemente cortos y fáciles de usar, y por el otro, para evitar posibles superposiciones con nombres personalizados, que a menudo también es conveniente conservar. corto. Gracias a esta uniformidad, no tendrás que recordar, como suele ocurrir en otros sistemas, cuáles de estos breves y cómodos nombres están reservados por el programa, y ​​cuáles puedes utilizar según tus necesidades. Por ejemplo, los nombres internos %e y %pi denotan constantes matemáticas bien conocidas; y %c con un número denota constantes utilizadas en la integración, para las cuales el uso de la letra “c” es tradicional en matemáticas.

Al entrar podemos referirnos a cualquiera de las celdas anteriores por su nombre, sustituyéndola en cualquier expresión. Además, la última celda de salida se indica con %, y la última celda de entrada se indica con _. Esto le permite consultar el último resultado sin distraerse con su número.

Aquí %+47/59 es lo mismo que %o1+47/59 .

El resultado del cálculo no siempre es necesario en la pantalla; se puede suprimir finalizando el comando con un símbolo $ en lugar de; . El resultado silenciado todavía se evalúa; Como puede ver, en este ejemplo, las celdas %o1 y %o2 están disponibles, aunque no se muestran (se accede a la celda %o2 a través del símbolo %, cuyo significado se descifra arriba):

No es necesario escribir cada comando posterior en una nueva línea; Si ingresa varios comandos en una línea, cada uno de ellos seguirá teniendo su propio nombre de celda. Por ejemplo, aquí, en la línea después de la etiqueta %i1, se ingresan celdas de %i1 a %i4; la celda %i3 usa %i1 y %i2 (indicado por _ - entrada anterior):


En wxMaxima y TeXmacs, el último o único comando de una línea no necesita ir seguido de un carácter final; esto funcionará igual que si hubiera terminado; , es decir, la salida no se silenciará. En otros ejemplos, a menudo omitiré; . Si elige una interfaz diferente, no olvide agregarla.

Además de utilizar nombres de células, nosotros, por supuesto, podemos dar nombres a cualquier expresión nosotros mismos. De otra forma, podemos decir que asignamos valores a variables, con la diferencia de que cualquier expresión matemática puede actuar como valor de dicha variable. Esto se hace usando dos puntos: el signo igual se deja para las ecuaciones que, dado el contexto matemático general de la notación, son más fáciles y familiares de leer de esta manera. Y además, dado que el principal pasatiempo de Maxima es la notación simbólica y los cálculos analíticos, las ecuaciones se utilizan con bastante frecuencia. Por ejemplo:

En cierto sentido, los dos puntos son aún más claros en este contexto que el signo igual: esto puede entenderse en el sentido de que definimos una determinada designación y luego usamos los dos puntos para descifrar qué significa exactamente. Una vez nombrada la expresión, podemos llamarla por su nombre en cualquier momento:

Cualquier nombre se puede borrar de la expresión que se le ha asignado usando la función kill(), y se puede liberar la memoria ocupada por esta expresión. Para hacer esto, sólo necesita escribir kill(name), donde nombre es el nombre de la expresión que se va a destruir; además, puede ser un nombre asignado por usted o cualquier celda de entrada o salida. De manera similar, puede borrar toda la memoria a la vez y liberar todos los nombres escribiendo kill(all) . En este caso, también se borrarán todas las celdas de E/S y su numeración comenzará nuevamente desde uno. En el futuro, si el contexto significa una continuación lógica de las líneas de E/S anteriores, continuaré con la numeración (ya he usado esta técnica anteriormente). Cuando la nueva “sesión” no tenga ninguna conexión con la anterior, comenzaré la numeración nuevamente; Este será un comando indirecto para "matar (todos)" si escribe ejemplos en Maxima, ya que los nombres de variables y celdas pueden repetirse en dichas "sesiones".

Acceso a la documentación de Maxima

En los ejemplos anteriores utilizamos dos funciones integradas. Como puedes adivinar fácilmente por el contexto, solve es una función para resolver una ecuación y diff es una función de diferenciación. Casi toda la funcionalidad de Maxima se implementa a través de estas funciones integradas. Una función en Maxima puede tener un número variable de argumentos. Por ejemplo, la función de resolución, que usamos con un argumento, se llama más a menudo con dos argumentos. El primero especifica la ecuación o función cuyas raíces se deben encontrar; la segunda es la variable para la cual se debe resolver la ecuación:


Si la fórmula que define la ecuación a resolver contiene solo un símbolo, como en el ejemplo anterior, entonces se puede omitir el segundo argumento, ya que la elección de qué resolver la ecuación aún no es ambigua.

La segunda función de nuestros nuevos amigos - diff - también puede tomar un argumento; en este caso, encuentra el diferencial de la expresión dada:

Aquí del(x) y del(y) denotan los diferenciales de los símbolos correspondientes.

Cada función integrada tiene una descripción en la documentación de Maxima. Contiene información sobre qué argumentos acepta la función y en qué variantes, así como una descripción de sus acciones en diferentes casos y ejemplos específicos de aplicación. Pero, por supuesto, no siempre es conveniente buscar una descripción de cada función requerida en la documentación html o en las páginas de información, especialmente porque esta información generalmente se necesita directamente en el proceso de trabajo. Por lo tanto, Maxima tiene una función especial: describe(), que proporciona información de la documentación para palabras específicas. Además, específicamente para facilitar la obtención de información de referencia, existe una versión abreviada de la llamada a esta función: ? nombre en lugar de describir (nombre). ¿Aquí? es el nombre del operador y el argumento debe estar separado de él por un espacio (la expresión ?name se usa para llamar a una función Lisp llamada nombre). describir la función y el operador? muestra una lista de secciones de ayuda y nombres de funciones que contienen el texto especificado y luego le solicita que ingrese el número de la sección o la descripción de la función que desea ver:

Al seleccionar una sección, se mostrará su contenido:


¿Si es para la palabra que ingresaste después? o describe, se encuentra una sola coincidencia, su descripción se mostrará inmediatamente.

Además de la ayuda, muchas funciones de Maxima tienen ejemplos de su uso. Se puede cargar un ejemplo con la función ejemplo(). Llamar a esta función sin un argumento mostrará una lista de todos los nombres de ejemplo disponibles; una llamada como ejemplo(nombre) cargará el archivo de ejemplo especificado en la sesión actual y lo ejecutará:


Resolviendo el problema al iniciar desde TeXmacs

Si tiene problemas para iniciar una sesión de Maxima desde TeXmacs, preste atención a quién se ejecuta con el nombre /bin/sh en su sistema. El hecho es que la inicialización de todas las sesiones se implementa en TeXmacs a través de scripts de shell llamados usando /bin/sh. Y el script responsable de la sesión de Maxima utiliza una característica que no está estandarizada como se requiere para /bin/sh, pero está presente en su emulación bash. En otras palabras, si su /bin/sh no es un enlace a /bin/bash , sino algo más, entonces esta puede ser la razón por la que no se puede abrir una sesión de Maxima (por ejemplo, en Debian y distribuciones basadas en él en otras). que bash link /bin/sh también puede querer instalar un guión más claro; en este caso, puede restaurar el status quo usando dpkg-reconfigure dash). Si no es posible hacer de /bin/sh un enlace a /bin/bash, puede intentar cambiar #!/bin/sh a #!/bin/bash en /usr/lib/texmacs/TeXmacs/bin/maxima_detect . Escribí a los desarrolladores de TeXmacs sobre este problema, pero aún no he recibido ninguna respuesta de ellos, por lo que aún no puedo decir si este defecto se corregirá en las próximas versiones.

Principios básicos

El hecho de que Maxima esté escrito en Lisp queda claro para una persona familiarizada con este lenguaje desde el comienzo de trabajar con el programa. De hecho, Maxim muestra claramente el principio "Lisp" de trabajar con datos, que resulta muy útil en el contexto de las matemáticas simbólicas y los cálculos analíticos. El hecho es que en Lisp, en general, no existe separación entre objetos y datos: los nombres de variables y las expresiones se pueden usar casi en el mismo contexto. En Maxima esta propiedad está aún más desarrollada: de hecho, podemos utilizar cualquier símbolo, independientemente de si tiene asignada alguna expresión. De forma predeterminada, el símbolo asociado con cualquier expresión representará esa expresión; un símbolo no conectado a nada se representará a sí mismo, interpretado nuevamente como una expresión. Expliquemos con un ejemplo:

De esto se deduce, en particular, que el valor del símbolo incluido en él se sustituye automáticamente en la expresión sólo si este valor se asignó al símbolo antes de que se definiera la expresión:

Si un símbolo ya tiene algún significado, ¿podemos utilizar el símbolo en sí en lugar de su significado en una expresión? Ciertamente. Esto se puede hacer usando el signo de apóstrofe: ingresado antes de cualquier carácter o expresión, evita su cálculo:

El resultado de la expresión %i12 sería similar si by y no tuvieran valores en ese momento; por lo tanto, podemos bloquear de forma segura la evaluación de símbolos sin siquiera recordar (o saber) si se les ha asignado alguna expresión.

Podemos hacer lo mismo con cualquier función incorporada si no queremos ejecutarla, pero usarla en nuestro contexto matemático. Por ejemplo, la función de diferenciación ya mencionada puede resultarnos útil para denotar la derivada en una ecuación diferencial; en este caso, por supuesto, no es necesario calcularlo:

Gracias a las características descritas, trabajar en Maxim, por un lado, se vuelve en muchos aspectos similar al trabajo "manual" tradicional con fórmulas matemáticas, lo que prácticamente elimina la barrera psicológica al comenzar a trabajar con el programa. Por otro lado, incluso en esta etapa inicial, usted estará efectivamente liberado del trabajo manual más rutinario, como el seguimiento de los valores de los símbolos actuales, y podrá concentrarse completamente en la tarea misma. Por supuesto, bloquear evaluaciones no es la única forma de influir en cómo Maxima evalúa una expresión particular; este proceso se puede controlar de forma bastante flexible.



¿Te gustó el artículo? Compártelo