-
19/06/2006 - 13h22 LocalStone
Simplification de racines carrées ...
Bonjour,
Alors voilà ... Je trichais ... Euh ... Hum ... Je m'aidais de Maple pour terminer un exercice de Physique, et d'un seul coup, je me suis posé la question suivante : comment fait-il pour simplifier les racines carrées.
En effet, si on lui demande de simplifier la racine carrée de 25, il donnera tout naturellement 5. Par contre, si on lui donne racine carrée de 2, il n'y aura pas de simplification possible.
Je pense que Maple simplifie les racines carrées si cette racine est un nombre rationnel. Et même pour les racines n-ièmes, d'ailleurs. Et du coup, il me vient une question !
Comment savoir, à partir d'un nombre et de manière algorithmique, si sa racine carrée est rationnelle ? Et même plus généralement, comment déterminer - toujours de manière alogorithmique - si un nombre est rationnel ?
Merci d'avances pour vos réponses !
++ !
L.S.
-
19/06/2006 - 13h32 rvz
Re : Simplification de racines carrées ...
Bonjour,
Un algorithme simple et dont je doute de l'efficacité : On te donne r un nombre réél. Alors tu énuméres tous les entiers et tu regardes p* n!.
Sinon, en général, une racine n'est pas rationnelle. Imagine que r = sqrt(2) est rationnel. Alors écris le sous la forme p/q, avec p et q premiers entre eux.
Alors p^2 = 2 q^2.
Donc 2 divise p^2, donc p. Donc p = 2 p'. Donc 2* p'^2= q^2. Donc 2 divise q^2 donc q. Conclusion : p et q n'étaient pas premiers entre eux, contradiction.
Et ça marche avec toutes les racines n-ièmes des nombres premiers, donc Maple est plus fort que ce que tu crois 
__
rvz
-
19/06/2006 - 13h45 LocalStone
Re : Simplification de racines carrées ...
Mon Dieu ... Mais ça, c'est un forum actif !
Euh ... Revenons à nos racines carrées. Bah ... Tu penses que Maple s'amuse à se taper cette démonstration pour tous les nombre ? Parce que dans un sens, c'est plutôt long, quand même ... Verifier la primalité entre les 2 nombres nécéssite un calcul de PGCD ... PGCD qui plus de nombres formels ... Et sauf le respect de Maple et de ses compétences en Arithmétique ... Bah je pense que ça doit devenir un peu difficile au bout d'un moment ...
Komenkifè ?
-
19/06/2006 - 14h00 rvz
Re : Simplification de racines carrées ...
En adaptant la démo que je t'ai donnée pour sqrt(2), tu peux démontrer que, étant donné un entier n, ou c'est un carré parfait, ou sa racine carrée est un irrationnel, et ça doit marcher même pour les racines p-ièmes d'ailleurs....
__
rvz
-
19/06/2006 - 15h11 Pole
Re : Simplification de racines carrées ...
Donc pour simplifier un nombre, on prend sa racine n-ième, on le met ^n et on le compare avec le nb du départ. Pour chercher la racine n-ième, on doit utiliser l'algorithme de Newton amélioré, sans division : http://numbers.computation.free.fr/A...s/inverse.html et l'exponentiation rapide (utile pour les grands n) et surtout la FFT (même site) dès que le nombre de départ et grand.
Maintenant, plus dur : comment simplifier racine n-ième (a) en k*racine n-ième (a/(k^n))
avec k le plus grand possible.Le but est de trouver un algo rapide et un autre algo qui permet de déterminer si k>1.
C'est possible en Maple (nthpow,simplify(surd(x,n))) mais Maple doit d'abord factoriser, ce qui est une longue étape.
Bon courage!
Pole.
Pour comprendre la récursivité croisée, il faut comprendre les arbres d'appels. Et vice versa. -
19/06/2006 - 18h32 LocalStone
Re : Simplification de racines carrées ...
Je savais déjà que l'on peut calculer la racine n-ième d'un nombre à la précision que l'on veut. Mais Maple fait du calcul formel, c'est à dire qu'il renvoie des valeurs exactes.
Du coup, pour racine carrée de 25, il renvoie 5 (C'est bien une valeur exacte), mais pour racine carrée de deux, il renvoie ... Car on ne peut pas exprimer ce nombre formellement autrement. Ce que je ne comprends pas, c'est comment Maple fait pour savoir si la valeur est exacte ou non.
Voili voilou ...
++ !
L.S.
-
20/06/2006 - 10h25 Pole
Re : Simplification de racines carrées ...
On fait ce que je t'ai dit :
ex : sqrt(25)-> Maple trouve une valeur en faisant la racine carré avec 2 décimale comme 5.01 (ou 4.99), on arrondit -> 5 dans les 2 cas, on élève au carré et on trouve 25. Comme on a donné 25, et qu'on trouve 25, la racine carré est 5.
sqrt(2)-> Maple : 1.42 -> on arrondit : 1 -> on élève au carré : 1 -> on compare : 1<>2 donc sqrt(2) n'est pas un entier.
Maple ne fait pas que du calcul formel : evalf(sqrt(2)); affiche 1.414213562.
Pole.
Pour comprendre la récursivité croisée, il faut comprendre les arbres d'appels. Et vice versa. -
20/06/2006 - 10h46 rvz
Re : Simplification de racines carrées ...
Et comment fait il pour calculer les racines carrés de a ? (je veux dire de manière approchée)
Utilise-t-il l'algorithme suivant :  )
C'est le seul algo que je connaisse qui approche les racines carrées, mais je ne sais pas trop à quel point il est efficace...
__
rvz
-
20/06/2006 - 10h53 LocalStone
Re : Simplification de racines carrées ...
Pole > Ouais, mais c'est aps très beau quand même ... Non ? C'est un peu le même procédé que l'on utilise en maths quand on a pas le temps de faire des calculs pour trouver une limite et qu'on test tous les multiples de Pi ... Euh ... Ouais, je me comprends. Mais c'est pas très beau.
rvz > http://fr.wikipedia.org/wiki/Algorit...ne_n-i%C3%A8me A mon humble avis, c'est ça qu'ils utitilisent ...
-
20/06/2006 - 10h55 LocalStone
Re : Simplification de racines carrées ...
Pole > Ouais, mais c'est aps très beau quand même ... Non ? C'est un peu le même procédé que l'on utilise en maths quand on a pas le temps de faire des calculs pour trouver une limite et qu'on test tous les multiples de Pi ... Euh ... Ouais, je me comprends. Mais c'est pas très beau. Et par exemple, si tu as une fraction, ton procédé devient un peu bancal ...
rvz > http://fr.wikipedia.org/wiki/Algorit...ne_n-i%C3%A8me A mon humble avis, c'est ça qu'ils utitilisent ...
-
20/06/2006 - 11h03 rvz
Re : Simplification de racines carrées ...
Ah oui, tu as raison. C'est bien ce à quoi je pensais, d'ailleurs, même si je me suis fourvoyé en écrivant la formule...
__
rvz
-
20/06/2006 - 12h54 matthias
Re : Simplification de racines carrées ...
Je doute que Maple utilise un algorithme aussi simple, mais on sait jamais. Il existe des méthodes pour accélérer la convergence d'une suite (Richardson ou Aitken entre autres).
-
20/06/2006 - 15h58 Pole
Re : Simplification de racines carrées ...
Tout à fait exact matthias, on peut même regarder dans mon lien pour avoir les algos utilisés pour avoir beaucoup de décimales (quand je dis beaucoup, c'est pour avoir plus de 1 million de décimale!)
LoacalStone > pour les fractions, on simplifie le numérateur et le dénominateur, quelques bricolages( ) et c'est bon. Pour l'histoire des limites, au lieu de passer son temps à chercher des multiples de pi et d'autres choses, mieux vaut utiliser l'inverseur de Simon Plouffe. (Toujours pas très beau, mais rapide et je pense que ça donne souvent la solution )
Sinon, personne pour les algos #5? (Je sais, je demande pas la Lune, mais presque )
Pole.
Pour comprendre la récursivité croisée, il faut comprendre les arbres d'appels. Et vice versa. | | |