Autor Tema: Ayuda con ejercicio de Matlab

0 Usuarios y 1 Visitante están viendo este tema.

03 Diciembre, 2020, 10:15 pm
Leído 555 veces

S@lvador

  • $$\Large \color{#6a84c0}\pi$$
  • Mensajes: 31
  • País: mx
  • Karma: +0/-0
  • Sexo: Masculino
Hola amigos tengo el siguiente problema:
Considera el sistema

\( Ax=b  \), con \( A  \) de orden \(  n  \)
a) Construye una expresión que permita calcular el número de multiplicaciones requerido para calcular un determinante de orden
\( n \) mediante el procedimiento usual de expresarlo en términos de \( n  \) determinantes de orden \( n-1  \), etc.

b) Si se dispone de una computadora que realiza \( 10^6  \) multiplicaciones por segundo, escribe un programa para llevar a cabo los cálculos que se indican
en la siguiente tabla:

| n | No de operaciones | tiempo de proceso |
| 2 |                                |                                |
|  . |                                |                                |
|  . |                                |                                |
|50|                                |                                |

Para el inciso a sé que si \( Ax=b  \) entonces  \( [a_1|a_2...|a_i|...|a_n]x=b \) y se puede calcular la i-esima entrada \( x_i=\frac{det[a_1|...|a_{i-1}|b|a_{i+1}...|an]}{detA} \) pero en realidad no sé muy bien si esto me sirve para llegar a lo que me piden

Por otro lado para el b) leí que para una computadora convencional le tomaría demasiados años en terminar un proceso de 50 ecuaciones :banghead:

03 Diciembre, 2020, 11:31 pm
Respuesta #1

martiniano

  • Moderador Global
  • Mensajes: 1,988
  • País: es
  • Karma: +0/-0
  • Sexo: Masculino
Hola.

No veo relación entre el sistema que te presentan y la pregunta que te hacen.

a) Construye una expresión que permita calcular el número de multiplicaciones requerido para calcular un determinante de orden
\( n \) mediante el procedimiento usual de expresarlo en términos de \( n  \) determinantes de orden \( n-1  \), etc.

Se puede hacer a partir de una relación de recurrencia. Si \( f(n)  \) es el número de multiplicaciones para calcular un determinante de orden \( n \) desarrollándolo por una fila o columna entonces.

\( f(2)=2 \)
\( f(n) =nf(n-1)+n \)

Es decir, para calcular un determinante de orden \( n \) hay que calcular \( n \) determinantes de orden \( n-1 \) y multiplicar cada uno de ellos por el correspondiente término.

Un saludo.

04 Diciembre, 2020, 05:17 am
Respuesta #2

Abdulai

  • Moderador Global
  • Mensajes: 2,708
  • País: ar
  • Karma: +0/-0
  • Sexo: Masculino
...
Por otro lado para el b) leí que para una computadora convencional le tomaría demasiados años en terminar un proceso de 50 ecuaciones :banghead:

Es peor de lo que imaginas.

Si analizamos la recurrencia dada por Martiniano, vemos que:
\( f(2) = 2 \)
\( f(3) = 3 f(2) + 3 = 3!\left(1+\frac{1}{2!}\right) \)
\( f(4) = 4 f(3) + 4 = 4!\left(1+\frac{1}{2!}+\frac{1}{3!}\right) \)
\( f(5) = 5 f(4) + 5 = 5!\left(1+\frac{1}{2!}+\frac{1}{3!}+\frac{1}{4!}\right) \)
..................
\( f(n) = n! \displaystyle\sum_{k=1}^{n-1}\frac{1}{k!} \)

para valores de \( n \) grandes (ya para \( n>5 \) resulta  \( \displaystyle\sum_{k=1}^{n-1}\frac{1}{k!}\approx e-1 \)

por lo tanto para matrices "considerables" el número de productos es aproximadamente \( f(n)\approx 1.718*n! \)


Para \( n=50 \),  si en lugar de la computadora pedorra de 1 Megaflop que propone el ejercicio usáramos una supercomputadora de 400 Petaflops demoraría:

\( T = \dfrac{f(50)}{flops\cdot segundosporaño} \approx  \dfrac{1.718\cdot 50!  }{400\cdot 10^{15}\cdot 365\cdot 24 \cdot 60 \cdot 60} = 4.14\cdot 10^{39} \text{ años} \)   
unos 29 órdenes de magnitud mayor que la edad del universo (\( 14\cdot 10^9 \text{ años} \))  y eso que no contamos las sumas!