Nuevo paquete de software de computación algebraica - Magma

Magma es un poderoso paquete de computación algebraica desarrollado por el Grupo de Álgebra Computacional del Departamento de Matemáticas y Estadística de la Universidad de Sydney .


prefacio

Magma proporciona un entorno matemático para el uso directo o definido por el usuario de cálculos como grupos, anillos, dominios, módulos, álgebras, planos, curvas, diagramas, diseños, códigos y muchos otros sistemas algebraicos . Magma también admite muchas bases de datos diseñadas para computación estudios que ayudan en las matemáticas que son de naturaleza algebraica. El núcleo de Magma implementa la definición y las operaciones relacionadas de las cinco ramas del sistema algebraico, a saber, la teoría de grupos, la teoría de anillos, la teoría de campos, la teoría de módulos y la teoría algebraica , que es también la razón de su función informática.
Por favor agregue una descripción de la imagen

1. Instalación Magama

Se puede descargar directamente desde el sitio web oficial de forma gratuita: MAGMA | CTG (cncr.nl) , que puede estar basado en Linux o Windows.
[La transferencia de la imagen del enlace externo falló, el sitio de origen puede tener un mecanismo anti-leeching, se recomienda guardar la imagen y cargarla directamente (img-fHMxycLf-1683250043100) (C:\Users\XueFeng Liu\AppData\Roaming\Typora \typora-user-images \image-20230505090034525.png)]Seleccione el sistema operativo correspondiente a instalar, yo elegí la versión de Windows. O consulte el enlace Computational Algebra Group Theory magma programa de instalación completa para instalar directamente. La interfaz después de instalar Magama es:
inserte la descripción de la imagen aquí

2. Operación básica

Una vez en Magma, ingresa el comando. Cada comando completo debe terminar con un punto y coma (;) . Luego presione la tecla Retorno (Enter).

> print 2 + 4;
6

3. Operaciones con polinomios

> P<x> := PolynomialRing(IntegerRing());  
> P;
Univariate Polynomial Ring in x over Integer Ring   #相当于其他语言带入的库
> (x^6-5*x^2+2)*(17*x^3-1);           #多项式相乘
17*x^9 - x^6 - 85*x^5 + 34*x^3 + 5*x^2 - 2  
>  Factorization(x^8 - 1);  #因式分解
[
    <x - 1, 1>,
    <x + 1, 1>,
    <x^2 + 1, 1>,
    <x^4 + 1, 1>
]

Para salir de Magma, escriba control-d al comienzo de una línea. ( Mantenga presionada la tecla "control" y escriba "d". )

1. Encuentra el cociente y el resto

Para elementos de anillos euclidianos, como números enteros y polinomios, "división" significa encontrar el cociente y el resto . Estos operadores son div y mod respectivamente .

> 23 div 4,23 mod 4;
5 3

Significa que 23 dividido por 4 da 5 con un resto de 3. (Tenga en cuenta que si desea imprimir varias expresiones, sepárelas con comas ). Para elementos de campo como números reales y números racionales, use el operador de barra inclinada (/) para calcular la división exacta. Por ejemplo

>  (2/3) / (4 + 7/9);
6/43
> 4.7 / 2.6;
1.80769230769230769230769230768

2. Salida de función

Cuenta 18! Ingrese el enunciado, el código es el siguiente (ejemplo):

> Factorial(18);
6402373705728000

Si una función tiene varios parámetros, deben estar separados por comas . Para encontrar el máximo común divisor de 15130 y 3162, puede ingresar

> GCD(15130, 3162); 
34

4. Cargue el archivo

Los ejemplos de código Magma que has visto hasta ahora son muy breves. A medida que comience a escribir programas más largos, puede que le resulte conveniente desarrollar código en archivos de texto fuera de Magma. Luego puede pedirle a Magma que cargue el contenido del archivo en Magma:

 load "filename";

Aquí "nombre de archivo" es el nombre del archivo. Magma usará esta entrada como si la estuviera escribiendo desde el teclado. Hay muchas funciones booleanas en Magma . Sus nombres suelen ir seguidos de una descripción de las propiedades que se van a probar, sin espacios intermedios. Por ejemplo:

> IsPrime(357);
false

La declaración if de Magma se usa cuando desea que la computadora realice diferentes acciones dependiendo de si una determinada condición es verdadera o falsa. El siguiente ejemplo calcula el área de un triángulo usando la fórmula Area = ps(s − a)(s − b)(s − c) , dadas a, b, c como longitudes de los lados, donde s = (a + b + c)/2 . Sin embargo, verifica que el triángulo no sea degenerado, es decir, que la suma de dos lados cualesquiera sea mayor que el tercer lado. (El símbolo gt significa "mayor que".) Si la condición después de if es verdadera, Magma ejecuta las declaraciones entre entonces y else, y si es falsa, ejecuta las declaraciones entre else y end if;

> a := 6; b := 8; c := 10;
> if ((a+b) gt c) and ((b+c) gt a) and ((c+a) gt b) then
> s := (a+b+c)/2;
> "Area is", Sqrt(s*(s-a)*(s-b)*(s-c)), "square units.";
> else
> "Triangle is degenerate.";
> end if;
Area is 24.00000000000000000000000000 square units.

5. Conjuntos, sucesiones, productos cartesianos

Tanto los conjuntos como las secuencias son colecciones de objetos que están en la misma estructura algebraica (universo). Los conjuntos no están ordenados, por lo que un elemento puede aparecer como máximo una vez en un conjunto. Sin embargo, la secuencia está ordenada, por lo que puede repetirse. Los conjuntos se encierran entre { } y las secuencias entre [ ]. Por ejemplo:

> t := {
    
     (-11)^2, (-7)^2, (-5)^2, (-3)^2, 3^2, 5^2, 7^2, 11^2 };
> q := [ (-11)^2, (-7)^2, (-5)^2, (-3)^2, 3^2, 5^2, 7^2, 11^2 ];
> t, q;
{
    
     9, 25, 49, 121 }
[ 121, 49, 25, 9, 9, 25, 49, 121 ]

La i-ésima entrada de la secuencia q es q[i]:

> q[10] := q[5] - 4*q[1]; q[2] := 1000;
> q;
[ 121, 1000, 25, 9, 9, 25, 49, 121, undef, -475 ]

Magma tiene constructores especiales para colecciones y secuencias. forma de expresión

{
    
    i..j by k} or [i..j by k]

表示等差级数 i, i + k, i + 2k, . . . , j 作为一组或整数序列。

Seis, declaración iterativa (bucle)

La declaración de iteración de Magma es similar a las declaraciones en otros lenguajes de programación. Ellos son:

 • while 布尔表达式 do 
        语句
  end while 

• repeat

    语句

  until 布尔表达式;
 • for 对于域中的变量,do 

    语句

  end for;

Resumir

Recientemente, cuando aprendí los conocimientos relevantes de criptografía, descubrí que era muy difícil para Matlab operar en GF (P). Más tarde, se encontró un nuevo paquete de software de cálculo algebraico: Magma en algunas referencias. Por ejemplo, cuando se resuelven ecuaciones de alto grado con múltiples variables, se reconoce que el mejor entorno para implementar el método de cálculo de Grobner es utilizar el software del sistema algebraico Magma.

Supongo que te gusta

Origin blog.csdn.net/weixin_48266700/article/details/129955074
Recomendado
Clasificación