Una forma de resolver sistemas compatibles consiste en usar
determinantes y la regla de Cramer. En esta ocasión nuestro archivo
LyX/pythontex permite generar cualquier número de ejercicios de este
tipo. Los datos para resolver los problemas se pueden introducir de
forma manual o de forma aleatoria y tenemos varios ejemplos en el código
de fichero que nos pueden servir de ayuda para tener ideas de qué
relación de ejercicios deseamos generar.
De nuevo casi todo el código esté en formato python/LaTeX y el uso de
LyX es mínimo. Pero por mantener el mismo sistema de los ficheros de las
entradas anteriores lo subo en formato LyX. El programa permite ajustar
la salida a SCD o SCI (dependientes de un parámetro), en este último
caso se discrimina en el código qué ecuación se debe eliminar así como
la incógnita que se debe usar como parámetro.
Lo único que tendremos que adecuar en el fichero es:
# Resolvemos sistemas compatibles 3x3 de la forma A*X=B por la Regla de Cramer paso a paso
import random
# Podemos trabajar con dos opciones para las matrices A y B:
# m --> Datos manuales
# a --> Datos aleatorios
# Si no ponemos que opción es "m" siempre se hace con datos aleatorios.
opción = ''
# OPCIONES PERMITIDAS EN EL PROGRAMA PARA LOS TIPOS ALEATORIOS
# tipo -> cadena con los tipos permitidos siguientes:
# scd1 -> sistema compatible y determinado con soluciones enteras (el determinante se obliga a que sea +-1)
# scd2 -> sistema compatible y determinado con soluciones de cualquier tipo
# sci -> sistema compatible e indeterminado dependiente de un parámetro
# Valores entre los que obtener los coeficientes de los ejercicios que se obtienen de forma aleatoria
minimo = -5
maximo = 5
# Forma de definir los ejercicios que queremos obtener
# listaejercicios=[ tipo1, tipo2, ... ]
# Por ejemplo, con la lista siguiente se obtienen 5 ejercicios de órdenes y tipos especificados
# listaejercicios = ["scd1","scd2","scd2","sci","sci"]
# Otras formas de obtener listas de ejercicios
tipos = ['scd1', 'scd2', 'sci']
# Si queremos una lista de 4 ejercicios de cada tipo (12 ejercicios) podemos optar por
# listaejercicios = 4*tipos
# Si lo que queremos es 10 ejercicios aleatorios
# listaejercicios = [j for j in random.choices(tipos, k=10)]
# O si lo que queremos es 10 ejercicios aleatorios pero más del tipo SCD
# Estos pesos suponen que la probabilidad de seleccionar el valor "scd2" es el triple
# a la probabilidad de seleccionar cualquier otro
# pesos = [1, 3, 1]
# listaejercicios = [j for j in random.choices(tipos, pesos, k=10)]
# 15 ejercicios del tipo especificado
listaejercicios = 4*["scd1"]+6*["scd2"]+5*["sci"]
# OPCIONES PERMITIDAS EN EL PROGRAMA PARA INTRODUCIR LOS DATOS DE FORMA MANUAL
# Podemos optar por poner la matrices A y B de forma manual si optamos por opción='m'
# en ese caso debemos introducir los datos de la forma
# Ei = (A, B)
# Si los datos del ejercicio que introducimos no dan como resultado un SC no se tienen en cuenta.
# Además, para SCI solo se tienen en cuenta los que dependen de un parámetro (rango(A) = rango (A*) = 2)
# por ejemplo:
E1 = (Matrix([[1,1,0],[1,0,1],[0,1,1]]),Matrix([2,3,4]))
E2 = (Matrix([[1,1,1],[1,-2,3],[1,0,1]]),Matrix([1,2,5]))
E3 = (Matrix([[1,1,-1],[3,-2,1],[1,3,-2]]),Matrix([6,-5,14]))
E4 = (Matrix([[1,1,1],[2,4,-2],[1,2,-1]]),Matrix([0,4,2]))
E5 = (Matrix([[1,2,1],[1,2,1],[1,2,-1]]),Matrix([0,0,2]))
# Este ejercicio que sigue no se tendría en cuenta
E6 = (Matrix([[1,2,1],[1,2,1],[1,2,-1]]),Matrix([0,2,2]))
E7 = (Matrix([[0,0,0],[0,1,1],[0,1,-1]]),Matrix([0,3,-1]))
E8 = (Matrix([[1,0,1],[0,0,0],[1,0,-1]]),Matrix([3,0,-1]))
E9 = (Matrix([[1,1,1],[2,2,2],[1,0,-1]]),Matrix([3,6,-1]))
E10 = (Matrix([[1,-1,0],[1,-1,1],[-1,1,1]]),Matrix([1,9,7]))
# Número máximo de ejercicios.
# Si ponemos más de 15 tenemos que aumentar este valor para que se construya
# bien la lista de ejercicios. Si tenemos definidos 10 ejercicios y aquí ponemos
# 3, solo se resolveran los 3 primeros: E1, E2 y E3
maxejer = 10
Tal cuál está por defecto, obtenemos 15 ejercicios del tipo especificado
en la variable listaejercicios de los cuales 4 tienen soluciones
enteras, 6 puede que no y 5 son SCI dependientes de un parámetro.
Con esos valores, un posible resultado de la compilación se puede
descargar en el pdf final disponible al final del artículo. A
continuación solo muestro el resultado del primero de cada tipo en
formato html (ejercicios 1, 5 y 11):
Regla de Cramer para sistemas 3x3
Si tenemos un sistema
⎩⎨⎧a1,1x+a1,2y+a1,3za2,1x+a2,2y+a2,3za3,1x+a3,2y+a3,3z===b1b2b3 que en forma matricial es de la forma A⋅X=B , es
decir a1,1a2,1a3,1a1,2a2,2a3,2a1,3a2,3a3,3⋅xyz=b1b2b3 en el que ∣A∣≠0,entonces