Forum

Catégorie : Programmes
Forum : Les programmes des internautes
Vues : 4978
Réponses : 4
Type : discussion
Etat : réponses autorisées

Simplifier TOUTE racines : k=a +-* rac(N)

linkakro le 30/06/2011 à 01:09
Les deux premiers programmes (racfrac et racsimpl) servent à simplifier des racines carrées en produits tels que 3*rac(2)/5.
Le troisième (racplus), inspiré d'après celui de sandro, décompose en un terme entier et un terme racine.

Utiliser les programmes successivement (racfrac puis racsimpl) permet de réaliser une simplification complète.
La méthode de l'un pourrait permettre de coder un programme remplaçant l'autre. Mais j'ai choisi cela pour la simplicité de saisie et pour tester ma nouvelle méthode numérique arrondie.

EDIT : Vous pouvez rassembler les deux premiers programmes ou bien désormais utiliser le quatrième (autre message, Raccalc) pour traiter simultanément coefficient et l'antécédent de la racine : A=rac(N)=(B/C)*rac(D)

======

Ma création personnelle, méthode je pense inédite, numérique
RACFRAC
A=rac(B)/C
Décompose un nombre en une racine et un coefficient de fraction.
Par exemple saisissez .8660254038 (soyez précis) et le programme répondra racine(3)/2.

Des arrondis (round) sont effectués pour palier à des erreurs de calculs, mais ce n'est pas parfait : parfois les résultats sont des multiples de la réponse idéale.

Code
ClrHome
Prompt A
1->B
While BA^2-round(BA^2,0) or rac(B)-round(rac(B),0
B+1->B
End
Output(2,1,"rac(        // rac désigne racine carrée partout
Output(2,3,BA^2
Output(3,1,"/
Output(3,2,rac(B

Je le considère mieux que celui de coc5. Le mien reconnait bien plus de racines différentes, mais mon affichage est moins sophistiqué.

======

Ma première tentative historique, phénomène inspiré des quelques programmes du forum.
RACSIMPL
racine(N)=A*racine(B)
Simplifie une racine : Décompose une racine en un produit de coefficient et d'unune racine simple et un coefficient entier.
Par exemple saisissez 72 et le programme répondra que racine(72)=6*racine(2).

Je rappelle que cet algorithme travaille sur l'antécédent entier de la racine, le calcul est alors exact.

Code
Normal
Float
ClrHome
Input "rac(",N
iPart(rac(N))->I
While not(fPart(N/I^2
I-1->I
End
If N/I=I
Then
Disp I
Stop
End
If I=1
Then
Disp "NON SIMPLIFIABLE"
Stop
End
I^2->C
ClrHome
Disp "rac("," "
Output(1,4,N
iPart(log(I))+1->E
Output(2,1,I
Output(2,E+2,"rac(
Output2,E+5,N/I^2


======

Bidouille inspirée de sandro. Méthode avec arrondi comme Racfrac.
RACPLUS
A=C+rac(B)
Code
Prompt X
DelVar A
While (X-A)^2-round((X-A)^2,0
A+1->A
End
Disp A,"+rac(",(X-A)^2
sandro le 30/06/2011 à 08:40
Juste une question, est-ce que dans le second programme, A peut être une fraction (ex : 25/9)?

Sandro
linkakro le 30/06/2011 à 16:05
Malheureusement non. Le projet sur ce thème n'a pas encore aboutit.
Mais tu peux executer le premier programme puis le deuxième.
(message édité)
linkakro le 19/11/2011 à 22:36
J'ai réussi à combiner mes programmes Racfrac et Racsimpl.
Je vous présente le résultat : RACCALC_2

A est le nombre à développer.
N est le numéro de la racine.
N=2 : racine carrée
N=3 : racine cubique
N=4 : racine quatrième
...

Tant que les calculs restent assez précis et que N est bien choisi, tout nombre doit pouvoir être identifié/simplifié.

0,86602540378443 : racinecarree(3)/2
Nécessairement N=2. Ou bien N=4 mais c'est innutile.

Code
Disp "A=X*N racn Y
Prompt A,N
1->B
While BA^N-round(BA^N,0) or N racn (B)-round(N racn (B),0
B+1->B
End
round(BA^N,0->M
1+iPart(N racn M->I
While fPart(M/I^N)
I-1->I
End
Disp I/(N racn B>Frac
Disp "N racn
Disp M/I^N
" racn " : racine nième. Dans le menu math, ressemble à la racine cubique mais avec un x devant.
">Frac" menu math

edit : caractères spéciaux nettoyés à la demande de sandro ci-dessous
sandro le 19/11/2011 à 22:58
pas mal, mais ce serrait peut-être pratique de remplacer les carractères spéciaux

Sandro