Rincón Matemático

Disciplinas relacionadas y temas generales => Computación e Informática => Mensaje iniciado por: Julio_fmat en 24 Octubre, 2017, 07:51 am

Título: Fracciones continuas en Magma
Publicado por: Julio_fmat en 24 Octubre, 2017, 07:51 am
Escriba un programa Magma que desarrolle el número \( \sqrt{13} \) en fracción continua, y ocupe dicho desarrollo para encontrar las siguientes convergentes:

\( \dfrac{p}{q}\in \mathbb{Q} \) tal que \( \left |{\sqrt{13}-\dfrac{p}{q}}\right |<10^{-4}. \)

Hola, estoy recién aprendiendo el lenguaje de programación Magma... Mi profesor para este caso lo desarrolla así:

> L:=ContinuedFraction(Sqrt(13));
> n:=0;
> repeat
n:= n+1;
M:= Convergents(L[1..n]);
until Abs(Sqrt(13)-M[1,1]/M[2,1]) lt 10^(-4);
> n;
8
> M[1,1]/M[2,1];
256/71

Algunos pasos que no entiendo son..., ¿porqué hacer n=0? Uso repeat siempre? ¿qué significa until? M[1,1], M[2,1] son matrices?

Bueno eso, Gracias de antemano.
Título: Re: Fracciones continuas en Magma
Publicado por: sugata en 24 Octubre, 2017, 08:03 am
No conozco este lenguaje en particular, pero vamos a ver si te puedo ayudar.
Habitualmente en algunos lenguajes las variables cogen el último valor, o tienen valor vacío, de ahí que haya que definir \( n=0 \)

Respecto al repeat,  hay que usarlo cuando se necesite, y repetirá todo hasta llegar a until,  que significa hasta. Es decir, repite lo siguiente hasta que pase algo.
Lo de los corchetes, ni idea.
Título: Re: Fracciones continuas en Magma
Publicado por: Luis Fuentes en 24 Octubre, 2017, 09:37 am
Hola

Escriba un programa Magma que desarrolle el número \( \sqrt{13} \) en fracción continua, y ocupe dicho desarrollo para encontrar las siguientes convergentes:

\( \dfrac{p}{q}\in \mathbb{Q} \) tal que \( \left |{\sqrt{13}-\dfrac{p}{q}}\right |<10^{-4}. \)

Hola, estoy recién aprendiendo el lenguaje de programación Magma... Mi profesor para este caso lo desarrolla así:

> L:=ContinuedFraction(Sqrt(13));
> n:=0;
> repeat
n:= n+1;
M:= Convergents(L[1..n]);
until Abs(Sqrt(13)-M[1,1]/M[2,1]) lt 10^(-4);
> n;
8
> M[1,1]/M[2,1];
256/71

Algunos pasos que no entiendo son..., ¿porqué hacer n=0?

\( n \) es simplemente un contador para contar cuantas veces iteramos el algoritmo. Empieza en n=0, porque cada vez que ejecuta el algoritmo le añade uno. Así por ejemplo si sólo lo ejectua una vez pasaría a valer n=0+1=1.

Citar
Uso repeat siempre? ¿qué significa until?

¿Siempre? Repeat ....until, es un bucle que repite lo que se pone en medio hasta que se cumpla la condición indicada.

Citar
M[1,1], M[2,1] son matrices?

son elementos de una matriz.

Saludos.