Me gusta probar cosas, como a través de algoritmos de lo posible,
el uso de matrices y de fila y columna de las operaciones que son como primaria
como sea posible.
Puedo construir una matriz invertible $A$ tal que $A \matrix(a_1,\ldots,a_n)^T$ = $(1,0,\ldots,0)^T$. Deje $B$ ser lineal mapa correspondiente a $A$ en relación a la base $\{y_1,\ldots,y_n\}$.
A continuación, la base deseada es $\{x = B^{-1}y_1,\ldots,B^{-1}y_n\}$.
Si $n = 1$, tome $A = \matrix(1/a_1)$.
Si $n = 2$, vamos a $c = \gcd(a_1,a_2) = 1$ y elija $s_1$ $s_2$ tal que
$s_1 a_1 + s_2 a_2 = c$. Tomar
$$A = \begin{bmatrix} s_1 \ \ \ \ s_2 \\ -a_2/c \ \ a_1/c \end{bmatrix}.$$
A continuación,$A \matrix(a_1,a_2)^T = \matrix(c,0)^T$. En este paso,
$c = 1$, pero lo escribo como $c$ para su uso en la inducción de paso.
$A$ es invertible porque su determinante es $1$.
Si $n > 2$, el uso de la inducción en el número de distinto de cero entradas en $\matrix(a_1,\ldots,a_n)$.
Si sólo hay $1$ cero de la entrada, entonces es una $\gcd$ de las entradas y
de hecho, $1$ la elección hecha en el paso anterior. Aplicar la mayoría de los
elementales de fila de la operación de intercambio de filas para mover el cero de la entrada
para la primera entrada. Fila de intercambio de las operaciones expresadas en la matriz
formulario corresponden a la multiplicación por la izquierda de la matriz $A$ construido
en las anteriores etapas de la inducción. El producto sigue siendo invertible.
Si hay $2$ o más distinto de cero entradas, primer intercambio de filas, de modo que
$a_1$ $a_2$ son cero (esto va a hacer la fila de intercambio
en el paso anterior no ocurra nunca). Aplicar el $n = 2$ paso a la primera
$2$ coordenadas (más precisamente, a la primera $2$ filas) (aumentan el
$2 \times 2$ matriz con un $(n-2) \times (n-2)$ matriz identidad).
Ahora $c = \gcd(a_1,a_2)$ no es necesariamente una unidad, sino $A$ es
invertible porque hemos dividido de la segunda fila por $c$ hacer su determinante
$1$. Lo que es más importante, la reducción de la
$\matrix(a_1,a_2,a_3,\ldots)^T$ $\matrix(c,0,a_3,\ldots)^T$las hojas de la $gcd$ de las entradas sin cambios, por lo que la inducción de las obras.
Todas las matrices construidas corresponden a los no-siempre-elementales de fila
las operaciones cuando se utilizan para multiplicar los vectores columna de la izquierda.
Algunos no son elementales ya que utilizan una combinación lineal de las filas
mientras que para los puros elementales de fila sólo de operaciones especiales lineal
la combinación de $unit * row_1 + r_2 * row_2$ es permitido.
Si $R$ es la Euclídea, a continuación, el algoritmo de Euclides esencialmente da
la construcción de la $2 \times 2$ $A$ como un producto de matrices para
operaciones elementales con sus filas, por lo que el final de la $A$ es también un producto de este tipo.
No sé de cualquier práctica de algoritmos para la construcción de la
$2 \times 2$ $A$ para PIDs que no Euclidiana.
Este es el dual de un caso especial del algoritmo para la reducción de
Forma normal de Hermite. En el caso general de que vamos a empezar con un
arbitraria de la matriz en lugar de un vector de columna, y hacer reversible (izquierda)
la fila de las operaciones en él para obtener una matriz triangular (con algunas complicaciones
para la matriz no cuadrada). Forma normal de Hermite es lo que
naturalmente, puede obtener haciendo reversible (derecha) de la columna de operaciones
en su lugar. Existe también la forma normal de Smith. Es lo que, naturalmente, puede
obtener por hacer, tanto reversibles operaciones de fila y columna reversible
operaciones-una matriz diagonal. Todos los de la teoría elemental de
los módulos a través de los Pid se pueden leer a partir de estas matrices.