0% encontró este documento útil (0 votos)
24 vistas6 páginas

MN Proyecto2

Este documento describe el cálculo del determinante de una matriz utilizando la regla de Cramer para resolver un sistema de ecuaciones de 8x8. Se muestra la matriz original y las matrices resultantes al reemplazar cada una de las columnas por su determinante. El proceso requiere calcular determinantes de manera recursiva, lo que conduce a un tiempo de ejecución exponencial relacionado con el tamaño del sistema.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
24 vistas6 páginas

MN Proyecto2

Este documento describe el cálculo del determinante de una matriz utilizando la regla de Cramer para resolver un sistema de ecuaciones de 8x8. Se muestra la matriz original y las matrices resultantes al reemplazar cada una de las columnas por su determinante. El proceso requiere calcular determinantes de manera recursiva, lo que conduce a un tiempo de ejecución exponencial relacionado con el tamaño del sistema.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 6

Regla de Cramer para resolver sistemas de ecuaciones

José Fernando Domı́nguez Chávez


Diciembre 2023

1 Análisis
El comportamiento exponencial evidenciado en la gráfica 1, que representa el tiempo de ejecución de un algoritmo
basado en la regla de Cramer para resolver sistemas de ecuaciones, se origina en la naturaleza recursiva de la regla
de Laplace aplicada para calcular el determinante de una matriz.
Al emplear la regla de Laplace repetidamente, se requiere calcular el determinante n veces. Cada aplicación
de esta regla implica resolver determinantes de matrices de dimensiones más pequeñas. Por ejemplo, al calcular el
determinante de una matriz de tamaño n, se deben resolver n determinantes de tamaño n − 1. Luego, al resolver
cada uno de esos determinantes de tamaño n−1, se generan n−1 determinantes de tamaño n−2, y ası́ sucesivamente
hasta llegar a determinantes de tamaño 1.
Este proceso conlleva a una cascada de cálculos, donde se reducen progresivamente las dimensiones de las matrices
a evaluar. Sin embargo, la cantidad de cálculos necesarios crece exponencialmente a medida que se desciende a
matrices de menor tamaño. Por ende, el tiempo de ejecución del algoritmo se incrementa significativamente conforme
se resuelven determinantes de dimensiones más reducidas, lo que se refleja en la gráfica 1 con una tendencia
claramente exponencial.

120000

100000

80000
Tiempo de ejecución (s)

60000

40000

20000

-20000

1 2 3 4 5 6 7 8

Tamaño del sistema (n)

Figure 1: Gráfica de el tiempo de ejecución en base al tamaño del sistema para el método de determinantes

1
2 Memoria de cálculo
Memoria de cálculo para un sistema de ecuaciones 8 × 8: Matriz original:
 
0 0 10 0 3 −10 −9 5 4
0
 8 −4 9 6 −5 −1 −2 9  
 4 −5 3 8 2 5 −2 9 9
 
0 9 1 5 4 8 −6 −9 −8

 7 10 −1 −10 2
 (1)
 −2 9 6 −9
9
 2 10 −2 −5 −7 −9 8 −4 
10 4 10 −3 0 5 −2 2 2
9 −4 −7 −6 −3 8 6 −9 9

Matriz reemplazando la columna 1 y su determinante:


 
4 0 10 0 3 −10 −9 5
 9
 8 −4 9 6 −5 −1 −2 

 9 −5 3 8 2 5 −2 9 
 
 −8 9 1 5 4 8 −6 −9 
  = 472978324 (2)
 −9 10 −1 −10 2 −2 9 6 
 
 −4 2 10 −2 −5 −7 −9 8 
 
 2 4 10 −3 0 5 −2 2 
9 −4 −7 −6 −3 8 6 −9

Matriz reemplazando la columna 2 y su determinante:


 
0 4 10 0 3 −10 −9 5
 0
 9 −4 9 6 −5 −1 −2 

 4
 9 3 8 2 5 −2 9 

 0 −8 1 5 4 8 −6 −9 
  = −521381944 (3)
 7 −9 −1 −10 2 −2 9 6 
 
 9 −4 10 −2 −5 −7 −9 8 
 
 10 2 10 −3 0 5 −2 2 
9 9 −7 −6 −3 8 6 −9

Matriz reemplazando la columna 3 y su determinante:


 
0 0 4 0 3 −10 −9 5
 0
 8 9 9 6 −5 −1 −2 

 4 −5 9 8 2 5 −2 9 
 
 0 9 −8 5 4 8 −6 −9 
 = 382233156
 (4)
 7 10
 −9 −10 2 −2 9 6 

 9
 2 −4 −2 −5 −7 −9 8 

 10 4 2 −3 0 5 −2 2 
9 −4 9 −6 −3 8 6 −9

Matriz reemplazando la columna 4 y su determinante:


 
0 0 10 4 3 −10 −9 5
 0
 8 −4 9 6 −5 −1 −2 

 4 −5 3 9 2 5 −2 9 
 
 0 9 1 −8 4 8 −6 −9 
 = 536386742
 (5)
 7 10
 −1 −9 2 −2 9 6 

 9
 2 10 −4 −5 −7 −9 8 

 10 4 10 2 0 5 −2 2 
9 −4 −7 9 −3 8 6 −9

2
Matriz reemplazando la columna 5 y su determinante:
 
0 0 10 0 4 −10 −9 5
 0
 8 −4 9 9 −5 −1 −2 

 4 −5 3 8 9 5 −2 9 
 
 0 9 1 5 −8 8 −6 −9 
 = 342463046
 (6)
 7 10
 −1 −10 −9 −2 9 6 

 9
 2 10 −2 −4 −7 −9 8 
 10 4 10 −3 2 5 −2 2 
9 −4 −7 −6 9 8 6 −9

Matriz reemplazando la columna 6 y su determinante:


 
0 0 10 0 3 4 −9 5
 0
 8 −4 9 6 9 −1 −2 

 4 −5 3 8 2 9 −2 9 
 
 0 9 1 5 4 −8 −6 −9 
 = −409973210
 (7)
 7 10
 −1 −10 2 −9 9 6 

 9
 2 10 −2 −5 −4 −9 8 

 10 4 10 −3 0 2 −2 2 
9 −4 −7 −6 −3 9 6 −9

Matriz reemplazando la columna 7 y su determinante:


 
0 0 10 0 3 −10 4 5
 0
 8 −4 9 6 −5 9 −2 

 4 −5 3 8 2 5 9 9 
 
 0 9 1 5 4 8 −8 −9 
 = 580335272
 (8)
 7 10
 −1 −10 2 −2 −9 6 

 9
 2 10 −2 −5 −7 −4 8 

 10 4 10 −3 0 5 2 2 
9 −4 −7 −6 −3 8 9 −9

Matriz reemplazando la columna 8 y su determinante:


 
0 0 10 0 3 −10 −9 4
 0
 8 −4 9 6 −5 −1 9 

 4 −5 3 8 2 5 −2 9 
 
 0 9 1 5 4 8 −6 −8 
 = −432654942
 (9)
 7 10
 −1 −10 2 −2 9 −9 

 9
 2 10 −2 −5 −7 −9 −4 

 10 4 10 −3 0 5 −2 2 
9 −4 −7 −6 −3 8 6 9

Aplicando la regla de Cramer, se obtienen las soluciones:

x1 = 1.21031
x2 = −1.33417
x3 = 0.978103
x4 = 1.37257
x5 = 0.876335
x6 = −1.04909
x7 = 1.48503
x8 = −1.10713

3
3 Código Octave para implementar el método de determinantes.
1 min = -10 % Se establece el minimo de los numeros random
2 max = 10 % Se establece el maximo de los numeros random
3

5 filas = input ( ’ Ingrese ␣ el ␣ numero ␣ de ␣ variables : ␣ ’) ; % Se lee el numero de


variables
6 columnas = filas ; % Se igualan las filas y columnas para hacer una matriz
cuadrada
7

8 % Se crea la matriz de coeficientes con enteros random


9 matriz = randi ([ min , max ] , filas , columnas ) ;
10 % Se crea la matriz de terminos independientes con enteros random
11 m a t r i z T e r m i n o s I n d e p e n d i e n t e s = randi ([ min , max ] , filas , 1) ;
12

13 % Funcion que quita la primera fila y la columna " j " para crear otro
determinante
14 function resultado = reducirMatriz ( matriz , columnaEliminada )
15 % Se definen las nuevas dimensiones ( una columna y fila menos )
16 nuevasFilas = size ( matriz ) (1) -1;
17 nuevasColumnas = size ( matriz ) (2) -1;
18

19 % Se define una matriz con las dimensiones anteriores


20 nuevaMatriz = zeros ( nuevasFilas , nuevasColumnas ) ;
21

22 % Se definen contadores para copiar la matriz original , pero exceptuando


23 % los de la fila 1 y la columna elegida
24 contadorFila = 1;
25 contadorColumna = 1;
26

27 % Se recorre la matriz original


28 for j =1: nuevasColumnas +1
29 for i =1: nuevasFilas +1
30 % Si el elemento actual no esta en la primera fila ni en la columna
31 % elegida , entonces se agregan a la nueva matriz
32 if ( columnaEliminada != j && i !=1)
33 nuevaMatriz ( contadorFila , contadorColumna ) = matriz (i , j ) ;
34 contadorFila ++;
35 % Si la fila llega al limite , se resetea y aumenta 1 en la columna
36 if ( contadorFila == nuevasFilas +1)
37 contadorColumna ++;
38 contadorFila = 1;
39 endif
40 endif
41 endfor
42 endfor
43 % Se devuelve la matriz ya reducida
44 resultado = nuevaMatriz ;
45 endfunction
46

47 % Funcion recursiva que calcula el determinante de una matriz


48 function resultado = determinante ( matriz )
49 % Se calcula la dimension de la matriz
50 tam = size ( matriz ) (1) * size ( matriz ) (2) ;
51 ancho = size ( matriz ) (2) ;

4
52 % Caso base : Si la dimension de la matriz es 1 , solo se devuelve el unico
53 % valor de la matriz
54 if ( tam == 1)
55 resultado = matriz (1 ,1) ;
56 % Si no es asi , se calcula el determinante con la regla de Laplace
57 else
58 dete rminan teValo r = 0;
59 % Se recorren los elementos de la primera fila de la matriz para usarlos
60 % en la regla de Laplace
61 for j =1: ancho
62 % Se calcula el i - esimo sumando de la regla de Laplace
63 dete rminan teValo r = det ermina nteVal or +
(( -1) .^( j +1) ) * matriz (1 , j ) * determinante ( reducirMatriz ( matriz , j ) ) ;
64 % En cada iteracion , se vuelve a llamar a la funcion , y hace lo mismo
65 % pero con una matriz reducida por la funcion reducirMatriz () , asi hasta
66 % llegar a una matriz 1 x1 , de ahi se van calculando los determinantes
67 % hacia atras , es decir , recursivamente .
68 endfor
69 % Se regresa el valor del determinante
70 resultado = deter minant eValor ;
71 endif
72 endfunction
73

74 % Funcion que reemplaza una columna de la matriz con los valores de la matriz
75 % de terminos independientes
76 function resultado = reem plazar Column a ( matriz , matrizColumna , numColumna )
77 filas = size ( matriz ) (1) ;
78 columnas = size ( matriz ) (2) ;
79 matrizResultado = zeros ( filas , columnas ) ;
80 for j =1: columnas
81 for i =1: filas
82 if ( j != numColumna )
83 matrizResultado (i , j ) = matriz (i , j ) ;
84 else
85 matrizResultado (i , j ) = matrizColumna (i ,1) ;
86 endif
87 endfor
88 endfor
89 resultado = matrizResultado ;
90 endfunction
91

92 % Funcion que calcula el valor de las xi con la regla de cramer


93 function resultado = c al cu lar So lu ci on es ( matriz , m a t r i z T e r m i n o s I n d e p e n d i e n t e s )
94 valo rDeter minan te = determinante ( matriz ) ; % Calcula el determinante normal
95 % Va recorriendo todas las variables independientes
96 for i =1: size ( matriz ) (1)
97 valorX = 0;
98 % Calula el valor del determinante si se reemplaza la columna " i " de la
99 % matriz de coeficientes con la matriz de terminos independientes
100 va lo rD et er mi na nt eX =
determinante ( re emplaz arColu mna ( matriz , matrizTerminosIndependientes , i ) ) ;
101

102 % Se calcula el valor de la xi con la regla de cramer


103 valorX = val or De te rm in an te X / va lorDet ermina nte ;
104 % Se muestra el valor de la xi
105 mensaje = sprintf ( ’x % d = ␣ % d ’ , i , valorX ) ;

5
106 disp ( mensaje ) ;
107 endfor
108 endfunction
109

110 ca lc ul ar So lu ci on es ( matriz , m a t r i z T e r m i n o s I n d e p e n d i e n t e s )

También podría gustarte