Saltar al contenido

Diario de clases

Clases de Jesús Soto

Menú
  • Home
  • Equation Editor
  • Generador de tablas
Menú

Navegación de entradas

ALG: Matrices ←

ALG: Vectores y matrices con Maxima

Posted on 21 de septiembre de 2026

Maxima

Las prácticas la realizaremos con Maxima, un sistema para la manipulación de expresiones simbólicas y numéricas. Esta herramienta informática nos ayudará a resolver problemas de la asignatura de forma sencilla y aplicada.

El sitio de descargas está en siguiente enlace descarga maxima. Aunque podéis trabajar con él, hay un entorno, muy intuitivo y cómodo que será con el que trabajaremos wxMaxima (si tenéis problemas con esa versión, hay una versión para windows en https://wolfgang.dautermann.at/maxima/nightlybuild/), con una colección amplia de menús en los que, agrupados por temáticas, se recogen las operaciones más habituales, de suerte que el usuario principiante no necesita recordar los comandos, aunque os aconsejo tenerlos a mano. Con wxMaxima podremos resolver nuestras prácticas y presentar los resultados de forma más sencilla.

interface for the computer algebra system Maxima
wxMaxima is a document based interface for the computer algebra system Maxima. wxMaxima provides menus and dialogs for many common maxima commands, autocompletion, inline plots and simple animations. wxMaxima is distributed under the GPL license.

En la web de maxima disponéis de documentación, https://maxima.sourceforge.io/docs/manual/es/maxima.html. Nosotros no veremos todos los comandos y funciones, solo utilizaremos los que mostremos en los ejercicios. También, encontraréis bastante material, aparte del que os proporcionaremos, como el del profesor Jeronimo Alaminos et al, Prácticas de ordenador con Maxima, un valioso documento para la iniciación. O la web del excelente profesor José Manuel Mira Ros(del que tengo un grato recuerdo) con su manualico, que os será de tremenda ayuda.


Prácticas con Maxima

Hoy nos iniciamos en un sistema para la manipulación de expresiones simbólicas y numéricas, Maxima. Un herramienta informática que nos ayudará a resolver problemas de la asignatura de forma sencilla y aplicada.

Para comenzar, nos iniciaremos en la definición de vectores y matrices, y las operaciones que podemos hacer con ellos.

Vectores

Un vector se define utilizando [] y los elementos del vector separados por comas. Con los vectores podemos hacer las operaciones básicas de suma y multiplicación por escalar.

Ejercicio: Sean los vectores \(v:[1,2,3]\) y \(u:[4,5,6]\), calcular \(2v-3u\)

(%i3)
v:[1,2,3]$
u:[4,5,6]$
2*v–3*u;

(%o3) [ − 10 , − 11 , − 12 ]


Como hemos visto en el ejercicio anterior, el operador "+" suma componente a componente de dos vectores. El operador "*" multiplica un escalar por cada uno de los elementos de un vector. Una diferencia cuando utilizamos los operadores "*" o "." entre vectores. El operador "*" entre dos vectores nos proporciona otro vector de la misma dimensión donde las componentes se han multiplicado dos a dos; mientras que el operador "." nos proporciona el producto escalar de dos vectores.

Otro operador importante es "^", en este caso \(v\)^n, siendo \(v\) un vector, eleva cada una de las componentes de \(v\) a \(n\).

Ejercicio: Como veremos más adelante, definimos el producto escalar, euclídeo, de los vectores \(v:[v_1,v_2,\ldots,v_n]\) y \(u:[u_1,u_2,\ldots,u_n]\), como \[v\bullet u=\sum_{i=1}^nv_i\cdot u_i.\]
Construir una función que dados dos vectores nos devuelva su producto escalar.

(%i1) p_escalar(u,v):=sum(v[i]·u[i],i,1,length(v))$

Veamos un ejemplo:

(%i4) v:[1,2,3,4]$
u:[−1,4,5,0]$
p_escalar(u,v);

\[\operatorname{ }22\]


Ejercicio: Dados los vectores \(u\):[2,-2], \(v\):[5,8] y \(w\):[-4,3], y el producto escalar euclídeo, ¿cuál es el valor de \(u\bullet (v-2w)\)?

(%i1) p_escalar(u,v):=sum(v[i]·u[i],i,1,length(v))$

(%i5) u:[2,−2]$v:[5,8]$w:[−4,3]$
p_escalar(u,v−2·w);

\[22\]


Ejercicio: Como veremos más adelante, definimos la norma, euclídea, de un vector \(v:[v_1,v_2,\ldots,v_n]\) como \[\|v\|=\sqrt{\sum_{i=1}^nv_i^2}.\]
Construir una función que dado un vector nos devuelva su norma.

(%i1) norma(v):=sqrt(sum(v[i]^2,i,1,length(v)))$

Veamos un ejemplo:

(%i4) v:[1,2,3,4]$
norma(v);
norma(v),numer;

\[\operatorname{ }\sqrt{30}\]

\[\operatorname{ }5.477225575051661\]


Ejercicio: Continuando con los ejemplos anteriores, llamamos normalizar un vector al proceso de dividir un vector por su norma. Construir una función que, dado un vector, nos lo devuelva normalizado.

(%i2) norma(v):=sqrt(sum(v[i]^2,i,1,length(v)))$
normalizar(v):=v/norma(v)$

(%i4) u:[1,2,3,4]$
normalizar(u);

\[\left[ \frac{1}{\sqrt{30}},\frac{2}{\sqrt{30}},\frac{3}{\sqrt{30}},\frac{4}{\sqrt{30}}\right] \]


Matrices

Si queremos utilizar matrices nos bastará con definirla mediante matrix(). Las filas de definimos como vectores:

Ejercicio: Definir las matrices \(A=\begin{bmatrix}1 & 2 & 3\\
4 & 5 & 6\end{bmatrix}\) y \(B=\begin{bmatrix}1 & 2 \\ 3& 4 \\ 5 & 6\end{bmatrix}\).


(%i2)
A : matrix([ 1, 2, 3],[ 4, 5, 6]) ;
B : matrix([ 1, 2],[ 3, 4],[ 5, 6]) ;

(A) [ 1 2 3 4 5 6 ]
(B) [ 1 2 3 4 5 6 ]


La primera, A, sería una matriz de 2×3, B sería una matriz de 3×2. La manera de acceder a los elementos es mediante A[i,j].

Los operadores anteriores comentados para vectores funcionan igual en matrices. En el caso de elevar una matriz a una potencia tendríamos que utilizar "^^".

Otra forma de acceder a submatrices es con los comandos:

  • col((Matriz,NúmColumna)): Recupera la columna NúmColumna.
  • row((Matriz,NúmFila)): Recupera la fila NúmFila.
  • submatrix(\(i_1,i_2,\ldots,i_p\), Matriz,\(j_1,j_2,\ldots,j_q\)): Elimina de la Matriz las filas cuyos números son \(i_1,i_2,\ldots,i_p\) y las columnas cuyos números son \(j_1,j_2,\ldots,j_q\). No es preciso que estén ambas: pueden eliminarse únicamente filas o columnas.
  • addrow(Matriz, \(v_1, \ldots, v_p\)): Añade en la base de Matriz las filas dadas por vectores (o matrices) \(v_1, \ldots, v_p\). Las longitudes deben ser concordantes.
  • addcol(Matriz, \(v_1, \ldots, v_p\)): Añade en la base de Matriz las filas dadas por vectores (o matrices) \(v_1, \ldots, v_p\). Las longitudes deben ser concordantes.
  • matrix_size(Matriz): Proporciona las dimensiones de la matriz.
  • transpose(Matriz): Proporciona la matriz traspuesta de Matriz.
  • mat_trace(\(M\)): dada la matriz \(M\) nos devuelve su traza.

Algunas matrices interesantes:

  • diagmatrix(Número,Valor): Genera una matriz cuadrada diagonal cuyo tamaño se establece mediante el valor de Número y en la que todos los elementos de la diagonal tienen el mismo Valor.
  • diag_matrix(\(a_1,a_2,\ldots,a_n\)): Genera una matriz diagonal cuadrada con \(a_1,a_2,\ldots,a_n\) en la diagonal.
  • ident(Número): Genera la matriz identidad (cuadrada) cuyo tamaño viene dado por el valor Número; es un caso particular del anterior.
  • zeromatrix(n,m): Genera la matriz de n filas y m columnas en la que todos sus elementos son ceros.

Ejercicio: Construir la matriz \[\begin{pmatrix}2 & 2 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\
2 & 2 & 0 & 0 & 0 & 0 & 0 & -1 & 0\\
0 & 0 & 3 & 0 & 0 & 0 & 0 & 0 & 0\\
0 & 0 & 0 & 3 & 0 & 0 & 0 & 0 & 0\\
0 & 0 & 0 & 0 & 3 & 0 & 0 & 0 & 0\\
0 & 0 & 0 & 0 & 0 & 4 & 4 & 4 & 4\\
0 & 0 & 0 & 0 & 0 & 4 & 4 & 4 & 4\\
0 & 1 & 0 & 0 & 0 & 4 & 4 & 4 & 4\\
0 & 0 & 0 & 0 & 0 & 4 & 4 & 4 & 4\end{pmatrix}\]


(%i7)
X:addcol(zeromatrix(2,2)+2,zeromatrix(2,7))$
X1:addcol(zeromatrix(3,2),ident(3)·3)$
X1:addcol(X1,zeromatrix(3,4))$
X:addrow(X,X1)$
X:addrow(X,addcol(zeromatrix(4,5),zeromatrix(4,4)+4))$
X[2,8]:−1$
X[8,2]:1$

Ejercicio: Escribir en forma matricial el sistema \[\begin{matrix}x+2y=10\\ 2x-2y=4\\ 3x+5y=26\end{matrix}\]


(%i4)
A:matrix([1,2],[2,−2],[3,5])$
X:transpose(matrix([x,y]))$
b:transpose(matrix([10,4,26]))$
print(A,X,"=",b)$

\[\begin{pmatrix}1 & 2\\ 2 & -2\\ 3 & 5\end{pmatrix} \begin{pmatrix}x\\ y\end{pmatrix}=\begin{pmatrix}10\\ 4\\ 26\end{pmatrix}\]


Ejercicio: Dadas \(A\)=[[1,-3],[2,2],[4,1]] y \(B\)=[[-1,-7], [4,-5]], Si \(C=B^t\cdot A^t\), ¿cuánto es \(c_{12}\)?


(%i4) A:matrix([1,–3],[2,2],[4,1])$
B:matrix([–1,–7], [4,–5])$
C:transpose(A.B);
C[1,2];

(C) [ − 13 6 0 8 − 24 − 33 ]
(%o4) 6


Ejercicio: Sea \(A=\begin{bmatrix} 1 & 3\\ \alpha & 1 \end{bmatrix}\), ¿cuál es el valor de \(\alpha\) para el cual A es una raíz del polinomio \(f(x)=x^2-2x-8\)?


(%i2)
A : matrix([ 1, 3], [ x, 1]) $
A ^ ^ 2 – 2 * A – 8 * ident( 2) ;

(%o2) [ 3 ⁢ x − 9 0 0 3 ⁢ x − 9 ]

(%i3) solve(%[1,1],x);

(%o3) [ x = 3 ]


A veces, podemos necesitar comandos que nos ayuden a simplificar expresiones; algunos son:

  • expand(expr): Expande la expresión expr. Los productos de sumas y de sumas con exponentes se multiplican, los numeradores de las expresiones racionales que son sumas se separan en sus respectivos términos, y las multiplicaciones (tanto las que son conmutativas como las que no) se distribuyen sobre las sumas en todos los niveles de expr.
  • radcan(expr): Simplifica la expresión expr, que puede contener logaritmos, exponenciales y radicales, convirtiéndola a una forma canónica, lo que significa que todas las expresiones funcionalmente equivalentes se reducen a una forma única.
  • ratsimp(expr): Simplifica la expresión expr y todas sus subexpresiones, incluyendo los argumentos de funciones no racionales.
  • fullratsimp(expr): Aplica repetidamente ratsimp a una expresión, seguida de simplificaciones no racionales, hasta que no se obtienen más transformaciones; entonces devuelve el resultado.

Podéis ver más en Funciones y variables para simplificación

Navegación de entradas

ALG: Matrices

Novela

La Loba, la lucha fraticida por un reino

La Loba, la lucha fratricida por un reino.

Urraca, señora de Zamora, acusada de instigar la muerte de su hermano, el rey Sancho de Castilla, deberá defenderse de la acusación, al tiempo que luchará por mantener la cohesión entre los hermanos y los reinos cristianos: una lobera de fieros lobeznos.

👉 En amazon

Entradas recientes

  • ALG: Vectores y matrices con Maxima
  • ALG: Matrices
  • MathBio: Espacios vectoriales
  • MathBio: Presentación
  • ALG: Presentación
septiembre 2026
L M X J V S D
 123456
78910111213
14151617181920
21222324252627
282930  
« Ago    
  • álgebra
  • bioestadistica
  • matematica discreta
  • mathbio

Prácticas álgebra

Meta

  • Acceder
  • Feed de entradas
  • Feed de comentarios
  • WordPress.org
©2026 Diario de clases | Diseño: Tema de WordPress Newspaperly