Trabajo de curso en informática "Estudio de las capacidades de la biblioteca de paquetes del sistema Maxima para la resolución de problemas matemáticos especiales". Sistema de comando, cálculos en Maxima Propiedades del sistema Maximo historial de valores

18.11.2023

Todos los comandos se ingresan en el campo ENTER, el separador de comandos es un símbolo; (punto y coma). Luego de ingresar el comando, debes presionar la tecla Enter 2 EN wxMaxima necesitas presionar Shift+Enter. para procesarlo y generar el resultado. En versiones anteriores máxima y algunas de sus conchas (por ejemplo, xMaxima) es estrictamente necesaria la presencia de un punto y coma después de cada comando. Terminar la entrada con un símbolo $ (en lugar de un punto y coma) le permite calcular el resultado del comando ingresado, pero no lo muestra en la pantalla. En el caso de que la expresión deba mostrarse y no calcularse, debe ir precedida por el signo " (comilla simple). Pero este método no funciona cuando la expresión tiene un valor explícito, por ejemplo, la expresión se reemplaza con un valor igual a cero.

Dos comillas simples seguidas aplicadas a una expresión en una cadena de entrada hacen que la cadena de entrada sea reemplazada por el resultado de evaluar la expresión de entrada.

Ejemplo:

(%i3) raíz cuadrada (aa)+bb;

(%i4) "(sqrt(aa)+bb);

2.5.1 Notación de comandos y resultados de cálculos

Después de ingresar, a cada comando se le asigna un número de serie. En el ejemplo considerado, los comandos ingresados ​​están numerados del 1 al 5 y designados en consecuencia (%i1), (%i2), etc.

El resultado del cálculo también tiene un número de serie, por ejemplo etc., donde i- abreviatura del inglés. entrada (entrada), y oh- Inglés producción. Este mecanismo permite evitar repetir el registro completo de comandos ya ejecutados en cálculos posteriores, por ejemplo (%i1)+(%i2) significará agregar a la expresión del primer comando la expresión del segundo y posteriores cálculos del resultado. . También puede utilizar números de resultados de cálculo, por ejemplo . Maxima tiene una notación especial para el último comando ejecutado: .

Ejemplo:

Calcular el valor de la derivada de una función. :

(%i1) diff(x^2*exp(-x),x);

(%i2) f(x):=""%;

Una comilla doble antes del carácter de la operación anterior le permite reemplazar este carácter con un valor, es decir cadena de texto obtenida como resultado de la diferenciación.

Otro ejemplo (con contenido obvio):

2.6 Números, operadores y constantes

2.6.1 Ingresando información numérica

Reglas para ingresar números en máxima exactamente igual que para muchos otros programas similares. Las partes enteras y fraccionarias de las fracciones decimales están separadas por el símbolo de punto. Los números negativos van precedidos de un signo menos. El numerador y el denominador de fracciones ordinarias se separan mediante el símbolo / (barra diagonal). Tenga en cuenta que si el resultado de una operación es una determinada expresión simbólica, pero necesita obtener un valor numérico específico en forma de fracción decimal, entonces usar la bandera le permitirá resolver este problema. En particular, te permite pasar de fracciones ordinarias a decimales. La función también realiza la conversión al formato de coma flotante.

(%i2) 3/7+5/3, flotante;

(%i3) 3/7+5/3, número;

(%i4) flotador(5/7);

2.6.2 Operaciones aritméticas

Notación de operaciones aritméticas en máxima no es diferente de la representación clásica: + , - , * , /. La exponenciación se puede denotar de varias formas: ^, ^^, **. La extracción de una raíz de grado n se escribe como grado. La operación de encontrar un factorial se indica con un signo de exclamación, por ejemplo 5!. Para aumentar la prioridad de una operación, como en matemáticas, se utilizan paréntesis: (). La lista de operadores lógicos y aritméticos básicos se proporciona en la tabla. 2.1 y tabla. 2.2 a continuación.

Tabla 2.2. Operadores logicos
< operador de comparación menor que
> operador de comparación mayor que
<= operador de comparación menor o igual a
>= operador de comparación mayor o igual a
# operador de comparación no igual
= operador de comparación es igual
y operador lógico y
o operador lógico o
no operador lógico no

El sistema matemático informático Maxima es un verdadero veterano entre los programas de esta clase. Es al menos dos décadas mayor que muchos de sus famosos homólogos comerciales. Originalmente llamado Macsyma, fue creado a finales de los años 1960 en el famoso Instituto Tecnológico de Massachusetts y contó con el apoyo durante casi 20 años (de 1982 a 2001) de Bill Schelter, gracias a quien adquirió sus notables cualidades y su fama en el mundo científico. Los detalles sobre el historial del sistema, el módulo de instalación (de sólo 10 MB de tamaño), la documentación, el código fuente y otra información relacionada se pueden encontrar en el sitio web del paquete. La versión actual (5.9.0) se ejecuta en Windows y Linux.

A pesar de su modesto tamaño, Maxima es un producto muy inteligente capaz de resolver problemas analíticos complejos. Como la mayoría de los sistemas matemáticos informáticos, es un intérprete de comandos que interactúa con el usuario mediante preguntas y respuestas. Por lo tanto, el área de trabajo del sistema es una secuencia de celdas de entrada/salida (Fig. 1), marcadas con una etiqueta (C para entrada del usuario, D para resultado) y un número. Esta notación proporciona un mecanismo de enlace conveniente que le permite ingresar solo el nombre de la celda deseada para acceder a uno de los resultados anteriores.

Operaciones numéricas

Arroz. 1
Independientemente de las expresiones con las que trabaje Maxima, siempre se esfuerza por presentar los resultados en una forma analítica precisa. Esto se aplica plenamente a los cálculos numéricos. Por ejemplo, si ingresa la expresión en la línea de comando 1/2+1/3 , entonces el resultado será 5/6 . Para obtener el valor como un número de punto flotante, debe especificarlo explícitamente. La forma más sencilla es especificar un descriptor especial. número separados por comas después de la expresión ingresada.

Para cálculos con alta precisión, Maxima admite operadores especiales que le permiten calcular cualquier valor con una cuadrícula de bits arbitraria (dentro de los límites, por supuesto, de las capacidades del hardware). Esto también se aplica a los números enteros: su valor en el sistema no está limitado por el software. Además, Maxima tiene una velocidad de trabajo con aritmética de alta precisión muy decente, lo que permite realizar cálculos con números enteros de decenas y cientos de miles de dígitos con un rendimiento al nivel de los mejores sistemas comerciales.

Tenga en cuenta que Maxima distingue entre mayúsculas y minúsculas en el caso de las expresiones de entrada. Si su apariencia se parece al nombre de una función incorporada, el programa utiliza esta función. Según esta regla Pecado, pecado Y PECADO significa lo mismo. Sin embargo, las variables y funciones de usuario distinguen entre mayúsculas y minúsculas. X Y X Puede representar diferentes objetos.

El sistema también admite aritmética compleja y una serie de constantes matemáticas bien conocidas.


Operaciones analíticas

La capacidad de realizar transformaciones y operaciones analíticas complejas fue, por supuesto, la característica principal del producto que aseguró el éxito de Maxima entre los especialistas. Esto incluye operaciones de análisis estándar (diferenciación, integración, cálculo de límites), representación de expresiones en forma expandida, expansión de funciones en series, simplificaciones, transformaciones, sustituciones, etc. Además, esta funcionalidad es lo suficientemente flexible como para realizar investigaciones científicas serias. Por lo tanto, es posible encontrar derivadas parciales y ordinarias de cualquier orden, las integrales pueden ser tanto ordinarias como múltiples, se permite el infinito como límites de integración, etc. Como siempre, el programa se esforzará por representar todos los valores calculados en un forma cerrada (exacta).

Si no se puede obtener un resultado inequívoco para la expresión ingresada, el programa hará preguntas capciosas en un lenguaje casi natural (inglés). Por ejemplo, al intentar encontrar la integral de la función xn Máxima aclarará si es igual n+1 cero (como saben, el resultado depende significativamente de esto). Sin embargo, estas preguntas pueden evitarse si especifica de antemano, utilizando operadores especiales, la posibilidad de cambiar los parámetros y variables utilizados.

La herramienta analítica también admite operaciones algebraicas con polinomios (división de dos polinomios, cálculo del máximo común divisor, factorización) y expresiones trigonométricas. Para aplicaciones prácticas, las herramientas integradas en el sistema para resolver ecuaciones y sistemas de varios tipos (algebraicos, trascendentales y diferenciales) juegan un papel importante.


Operaciones de álgebra lineal.

Maxima implementa un motor de operaciones vectoriales-matriciales muy avanzado que permite cálculos algebraicos complejos. Las matrices son introducidas por el operador universal. matriz, luego se les aplican las operaciones lineales habituales: suma, resta, multiplicación por un escalar (para escribirlas utilice notación matemática natural como A+B), así como transposición, inversión, cálculo de determinantes, características espectrales, etc.


Capacidades gráficas

Un sistema matemático informático moderno de tipo universal debe haber desarrollado capacidades de visualización de datos. También están disponibles en Máxima. Los gráficos del sistema se construyen utilizando dos funciones: PLOT2D (bidimensional, Fig. 2) y PLOT3D (tridimensional, Fig. 3). A pesar de esta elección relativamente limitada, estas herramientas le permiten mostrar gráficos de diferentes tipos en un plano y en el espacio con configuraciones bastante precisas: utilizando operadores especiales o argumentos de función, establece el número de nodos de la cuadrícula en los que se construye el gráfico requerido, los datos gamas, color y otras características. Además, puede utilizar configuraciones interactivas para cambiar rápidamente el grosor de las líneas, rotar una superficie tridimensional, etc. La elección de los formatos de exportación de Maxima es muy limitada: los dibujos en el programa, de hecho, se guardan solo en PostScript. En general, las herramientas visuales del sistema son relativamente modestas, aunque permiten obtener algunos tipos de gráficos de alta calidad.


Herramientas de programación

Como cualquier sistema matemático informático, Maxima le permite crear programas complejos y usarlos en problemas que pueden ser difíciles e ineficientes de resolver usando la línea de comando.

En el caso más simple, una función personalizada se define directamente en la línea de comando

MiFunc(x,y):=x^2+y^2;

Entonces MiFunc se puede utilizar junto con los integrados. Por supuesto, el sistema también admite diseños más complejos. El cuerpo de una función permite a los operadores realizar bifurcaciones, bucles, entrada/salida, etc. El lenguaje de programación en Maxima tiene algunas características, la más importante de las cuales es que no es necesario fijar el número de argumentos de la función. El otro consiste en herramientas extremadamente flexibles para trabajar con matrices, que rara vez se encuentran no sólo en los lenguajes tradicionales, sino también en sistemas especializados, incluido SCM. A continuación se muestran algunos ejemplos tomados del mismo manual (los dos puntos en Maxima significan asignación):
a:4*u;
a:%PI;
un[x]:misterio;

Todos los operadores son correctos y definen colectivamente una matriz cuyos índices son números. 4 , 22/7 y cuerda "X", y los valores de los elementos son la expresión 4*t, el número π (en Maxima se escribe %PI) y una cadena de caracteres "misterio". Por tanto, casi cualquier expresión puede actuar como elemento de matriz y como índice. Las propiedades originales de Maxima no se limitan a estas características (por ejemplo, incluso se admiten matrices de funciones), pero no nos detendremos en los detalles.

En general, Maxima está escrito en Lisp y admite directamente muchos de sus comandos. Podemos decir que Lisp es el núcleo del sistema y se puede acceder a él durante la programación de "bajo nivel". Sin embargo, en la mayoría de los casos esto no es necesario. Maxima proporciona una cantidad suficiente de herramientas listas para usar que son mucho más fáciles de usar que los operadores Lisp.

Si es necesario, los programas se guardan en archivos externos. Los comandos se escriben en la misma forma en que se ingresan en el sistema, solo existen algunas características para el diseño de funciones.

Cuidando al usuario

Además de la documentación disponible en el sitio web del producto, el paquete incluye una introducción a Maxima y un tutorial sobre el sistema (ambos en formato HTML): una descripción detallada suficiente para una introducción profunda a todas sus capacidades. Sin embargo, durante una sesión de trabajo con el sistema, a menudo es necesario obtener ayuda en línea. Para esto Maxima proporciona una función DESCRIBIR(), que muestra información detallada sobre el operador de interés para el usuario (que se le pasa como argumento). No importa si no recuerda su sintaxis completa, ingrese las primeras letras del nombre y Maxima mostrará todos los nombres disponibles que comiencen con esta combinación de caracteres. Si esta información no es suficiente, puedes utilizar la función EJEMPLO(), que ofrecerá ejemplos típicos. Las funciones de la misma serie incluyen MANIFESTACIÓN(), que ejecuta programas desde los archivos de demostración suministrados con el sistema. Me gustaría señalar una característica del sistema como la capacidad de presentar los resultados de los cálculos en formato TeX utilizando una función llamada: TEXAS().


conclusiones

Esperamos que después de este breve material, los lectores todavía tengan una idea de Maxima como un sistema verdaderamente profesional diseñado para resolver problemas numéricos y analíticos complejos, así como para la presentación gráfica de datos. Especialmente, como se señaló al principio, el programa es sólido en cálculos analíticos y aritmética de alta precisión. Por supuesto, Maxima está lejos de ser perfecto y, en muchos sentidos, no llega a productos comerciales como Maple y Mathematica. Sin embargo, esto no resta valor a sus ventajas: Maxima se puede utilizar tanto con fines educativos como como plataforma para desarrollos científicos bastante serios.

0

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- 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 es, de hecho, 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) Arcocotangente hiperbólico 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 del argumento x
sinh(x) Seno hiperbólico de 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, indicados respectivamente por:: y::=.

El uso del operador de conjunto de funciones de usuario hace que trabajar con él sea mucho más fácil porque puede consultarlo por su nombre y calcular fácil y cómodamente el valor de la función en puntos determinados.

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, use 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().

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 la variable a en el rango de -3 a 10 en pasos de 5:

Ejemplo: un bucle para encontrar la suma de todos los números naturales hasta 50 inclusive:

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

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

Hemos formado una lista llamada x, que consta de diez elementos, el valor

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,

TENNESSE. Gubina, E.V. andrópova

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 = sin 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:

1.7. Gestionar el proceso de cálculo en Maxima

El sistema matemático informático Maxima pertenece a los sistemas matemáticos simbólicos. Por lo tanto (por defecto) el sistema produce el resultado en forma simbólica. Es decir, si no especifica un comando especial, el sistema

Capítulo 1 Conceptos básicos del trabajo en el sistema matemático informático Maxima.

nunca presentará los resultados obtenidos durante los cálculos en forma de un número real aproximado. Por ejemplo, si ingresamos comando2 en la celda de entrada, obtendremos:

Si es necesario presentar el resultado obtenido durante los cálculos en forma de un número real, en este caso es necesario dar un comando especial al sistema. Por ejemplo, puede hacer esto: si desea obtener un valor aproximado de 2, seleccione el elemento del menú Cálculos numéricos → Flotar(a un número de precisión único) (o A BigFloat

(en un número de doble precisión)). El resultado se verá así:

El signo "%" en Maxima se utiliza para hacer referencia al resultado obtenido en la última sesión. Esto puede resultar conveniente si no es necesario ingresar variables de usuario y luego usar los valores resultantes.

Para controlar el proceso de cálculo, el llamado "cerraduras computacionales". El bloqueo se realiza mediante un solo apóstrofo. Su esencia:

si coloca un apóstrofo delante del nombre de una función o variable, entonces se bloquea el cálculo de la función en sí (pero no de sus argumentos) o variable;

Si pones un apóstrofe delante de una expresión entre corchetes, entonces la expresión completa, es decir, todas las funciones incluidas en ella y todos los argumentos de estas funciones, permanecerán sin calcular.

Por ejemplo, definamos una función f x y comparemos los resultados obtenidos al intentar calcular el valor de la función en el punto x = 0.

Como podemos ver, el signo de apóstrofe bloqueó el intento de calcular el valor de la función en el primer caso.

Otro ejemplo:

TENNESSE. Gubina, E.V. andrópova

A diferencia de bloquear los cálculos, utilizando dos caracteres de apóstrofo, por el contrario, puede forzar al sistema a realizar cálculos: "cálculo forzado". Por ejemplo,

Como puede ver, el sistema se negó a calcular la integral, aunque no le dimos la orden de bloquear los cálculos. Si ponemos un doble apóstrofe antes del comando obtenemos el siguiente resultado:

Tenga en cuenta que en el sistema Maxima, de forma predeterminada, todos los ángulos se miden en radianes. Por lo tanto, si necesita trabajar con ángulos en grados, deberá recordar la fórmula para convertir de radianes a grados.

En la terminología de Maxima, la forma no evaluada de una expresión se llama "forma nominal", la forma evaluada se llama "forma verbal".

El siguiente punto importante cuando se trabaja en sistemas matemáticos informáticos es la capacidad de sustituir los valores de variables o partes de expresiones en funciones y expresiones. Veamos algunas de las capacidades del sistema proporcionadas para estos fines.

Por ejemplo, es necesario sustituir un valor específico en la expresión cos x 4sen x − x en lugar de variables x, por ejemplo, .

Capítulo 1 Conceptos básicos del trabajo en el sistema matemático informático Maxima.

Por lo tanto, el comando subst le permite sustituir los valores de cualquier variable en una expresión. De hecho, existen varios comandos para sustituir valores en una expresión o función en Maxima.

1.8. Transformaciones de expresiones 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. Sea necesario encontrar el valor de la siguiente expresión numérica.

1 1− 4

entradas: 2 1 4 4 5 7 .

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,

TENNESSE. Gubina, E.V. andrópova

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.

el resultado calculado es 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 kill(all) (o seleccionando el menú Maxima->Borrar memoria). 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): convierte una expresión racional a su forma canónica: abre todos los paréntesis, 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 la expresión mediante transformaciones racionales. También funciona “en profundidad”, es decir, irracional.

Capítulo 1 Conceptos básicos del trabajo en el sistema matemático informático Maxima.

Las partes de la expresión no se consideran atómicas, sino que se simplifican, incluyendo todos los elementos racionales dentro de ellas.

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 los términos fraccionarios 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().

− un 2 segundo 2

aba1/4

Ejemplo. Simplificar una expresión

b a b a 2 1/4

a 2− b 2.

Si aplicamos el comando para simplificar racionalmente nuestra expresión, obtenemos:

Usemos la función asumir (condición) y usémosla para imponer restricciones a sus valores en algunas variables incluidas en la expresión:

TENNESSE. Gubina, E.V. andrópova

Como puede ver, obtuvimos un resultado compacto.

1.9. Resolver ecuaciones algebraicas y sus sistemas.

EN El sistema Maxima utiliza la función de resolución incorporada, que tiene la siguiente sintaxis, para resolver ecuaciones lineales y no lineales:

resolver (expr, x) – resuelve la ecuación algebraica expr con respecto a la variable x

resolver (expr): resuelve la ecuación algebraica expr con respecto a la variable desconocida incluida en la ecuación.

Por ejemplo, resolvamos la ecuación lineal 5 x + 8 = 0. Para hacer esto, use el botón Resolver en la barra de herramientas; al hacer clic, aparece el cuadro de diálogo Resolver (Fig. 13). Ingrese la ecuación original y haga clic en Aceptar.

Arroz. 13. Cuadro de diálogo para resolver ecuaciones.

Como resultado, se generará un comando para resolver la ecuación en el documento de trabajo y se mostrará la solución encontrada:

Capítulo 1 Conceptos básicos del trabajo en el sistema matemático informático Maxima.

El comando para resolver ecuaciones se puede especificar de tal manera que sea fácil verificar las soluciones encontradas. Para hacer esto, es recomendable utilizar el comando de sustitución ev.

Por ejemplo, resolvamos la ecuación algebraica x 3 + 1 = 0 y verifiquemos las soluciones encontradas.

Como resultado, obtuvimos tres raíces. Bajo el nombre resh almacenamos una lista de valores: las raíces de la ecuación. Los elementos de la lista están entre corchetes y separados por una coma. Se puede hacer referencia a cada uno de estos elementos de la lista por su número. Usemos esto al verificar las soluciones: sustituya cada una de las raíces en la ecuación original.

Utilice el comando allroots (expr) para encontrar todas las soluciones aproximadas de una ecuación algebraica. Este comando se puede utilizar si el comando de resolución no pudo encontrar una solución a la ecuación o si la solución es demasiado engorrosa, como en el caso de la siguiente ecuación: (1 + 2 x )3 = 13,5(1 + x 5 ).

TENNESSE. Gubina, E.V. andrópova

Con el comando resolver, puedes encontrar soluciones a sistemas de ecuaciones algebraicas lineales. Por ejemplo, un sistema de ecuaciones lineales.

М x +2 y +3 z +4 k +5 m =13

2 x+ y+ 2 z+ 3 k+ 4 m= 10

2 x + 2 y + z + 2 k + 3 m = 11 se puede resolver de la siguiente manera:

2 x+ 2 y+ 2 z+ k+ 2 m= 6

ï 2 x +2 y +2 z +2 k +m =3

1. Guardemos cada una de las ecuaciones del sistema con los nombres eq1, eq2, eq3, eq4, eq5.

2. Encontramos una solución al sistema.

3. Comprobemos la solución encontrada:

Así, al sustituir la solución resultante en cada una de las ecuaciones del sistema, se obtienen las igualdades correctas.

La función de resolución del sistema Maxima también puede resolver sistemas de ecuaciones lineales si la solución no es única. Luego recurre a notación como %r_number para mostrar que la variable desconocida está libre y puede tomar cualquier valor.

Para resolver sistemas de ecuaciones no lineales, puedes usar el comando algsys. Por ejemplo, encontremos una solución al sistema de ecuaciones.