alvas Le 28/11/2001 à 17:42 Est-ce que qqun aurait des programmes ASM qui permettent de calculer des constantes en maths ou en physique en utilisant des algos de calcul ?
ex : Pi, exp(1), constante d'Euler ...
Et qu'on puisse bien sur choisir le nombre de décimales !
merci
alvas Le 28/11/2001 à 17:56 ahah !!!
ba figure toi que ça me passionne ...
nan je déconne mais j'aime bien ce genre de programmes
Les algos sont nombreux, varies et il y en a des tres efficaces.
*Pour e : pas besoin d'aller chercher tres loin. e = somme de l'inverse des factorielles.
e=sigma(k=1,+infini,1/k!)
Au n-ieme terme de la serie, on approche e a 1/(k*k!) je crois, en tout cas c'est de cet ordre de grandeur.
*Pour Pi : il existe des algos qui permettent de doubler (voire mieux) le nb de decimales a chaque iteration, mais en asm il faut s'accrocher pour coder ca.
Plus simplement, la formule de MACHIN, ou toute autre formule avec Arctangente, est lineaire et fait bien l'affaire.
De memoire, ca doit etre Pi/4 = Arctan(1/5)-4Arctan(1/239) mais faut verifier (je suis sur du 5 et du 239)
Ensuite, on utilise Arctan(x)=sigma(k=0,+infini,(-1)^k*x^(2*k+1)/(2*k+1)!)
*Pour la constante d'Euler, la j'ai rien en tete mais il me semble que c'est nettement plus dur a calculer.
[edit]Edité par Quenalma le 28-11-2001 à 18:24:16[/edit]
Uther Le 28/11/2001 à 18:23 pour PI, tu peux le faire toi même c'est une formule ultra simple: ca doit pas poser de problèmes. Sinon je vois pas l'utilité puisse que TI fournit déja pas mal de constantes
alvas Le 28/11/2001 à 18:25 Attendez, je suis en maths sup dans les algos, ça va, je les connais.
moi je cherche des progs asm déjà compilés !!!
pff.. c'est le seul truc un tant soit peu interressant
alvas Le 28/11/2001 à 18:27 je peux te programmer ça en Z80 (pour la 83) mis pour la 89 je n'ai jamais essayé l'asm ...
alvas Le 28/11/2001 à 18:38 Voilà ce que j'avais fait pendant les vacances :
;Calcul de PI en utilisant la relation 1/1²+1/2²+1/3²+1/4²+...1/n²=PI²/6
;Ce prgm est très nettement plus rapide que le basic pour des nombres importants.
;J'ai déjà testé ce prgm pour une boucle de 500000
;Ce prgm a été réalisé par alvas
.NOLIST
#define equ .equ
#define EQU .equ
#define end .end
#define END .end
#include "ti83asm.inc"
#include "tokens.inc"
.LIST
.org 9327h
call _clrlcdfull
call _runindicoff
call _homeup
call _RclY
call _op1toop5
call _op1set0
call _op1toop6
call _op1toop4
str1:
call _op5toop1
call _minus1
call _op1toop5
call _ckop1fp0
jp z,fin
call _op6toop1
call _plus1
call _op1toop6
call _fpsquare
call _fprecip
call _op4toop2
call _fpadd
call _op1toop4
jp str1
fin:
ld hl,6
call _setxxxxop2
call _op4toop1
call _fpmult
call _sqroot
call _stox
ret
.end
END
PpHd Le 28/11/2001 à 18:39 Le probleme est d'implementer des flottants de longueur variables. Ou de grandes longueurs.
sinon, faudrait parvenir à bosser sur des STR ?
Miles Le 29/11/2001 à 16:07 Squale92 > Pourquoi des STR ? Si tu veux 2000 chiffres et que tu en stockes sur un long 9, il te faut partie supérieure(2000/9) emplacements, et tu y vas, tu bourrines sur les additions.
utiliser sigma(1/k^2) pour calculer Pi c'est tres mauvais... ca converge pas vite du tout!!
pr le C on peut utiliser le hfloat ... c pr les tres grand nombre (pr genere les cstes)
mais plutot que de les generer, faut mieux les enregistrer