telchar Le 06/12/2002 à 17:36Edité par telchar le 06/12/2002 à 17:36 Mais l'algo de Newton est meilleur.....
Si on appelle e(n) = Pn(x)-x^(1/2) l'erreur au rang n, on a :
2(e(n+1)+sqrt(x)) = x + 2(e(n)+sqrt(x)) - (e(n)+sqrt(x))^2
2e(n+1) + 2sqrt(x) = x + 2e(n) + 2sqrt(x) - e(n)^2 - 2e(n)sqrt(x) - x
2e(n+1) = 2e(n) - e(n)^2 - 2e(n)sqrt(x)
=> e(n+1) = (1-sqrt(x))*e(n) - 1/2*e(n)^2
Comme e(n)->0, on a e(n+1) ~ (1-sqrt(x))*e(n)
Donc e(n) ~ (1-x^(1/2)) ^ n
convergence géométrique, meilleure quand x est proche de 1, et mauvaise quand x est proche de 0... (L'algo de Newton donne une convergence quadratique)
telchar : c'est quoi une convergence quadratique ?

Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 :
www.ti-fr.com.
Quelques idées personnelles
ici.
le nombre de décimales justes double à chaque étape... (ou bien : l'erreur est du genre epsilon^(2^n) )
PpHd Le 15/12/2002 à 20:06 Vous auriez pas des algos pour calculer les (a)cos, (a)sin, (a)tan, , exp et ln ?
PpHd Le 17/12/2002 à 23:27 VOus auriez pas plutot des polygones / fractions rationnelles pour les evaluer sur des intervalles. Parce que les series, bof. La difference n'est pas repartie de facon homogene.
Tu peux aussi utiliser des procédés de résolution numérique d'équations différentielles pour calculer ex. Si tu en cherches un: L'algorithme Runge-Kutta est décrit dans le manuel de TI.
Il me semble que ca ne sera pas des plus rapides .... et il m'a semblé que pphd désorais un algo assez rapide
PpHd, essaie quand même les séries : je n'ai rien trouvé de plus rapide et c'est déjà pas mal.
J'ai une moyenne de 1036 cycles pour un cos/sin sur 16 bits.
PpHd Le 19/12/2002 à 14:46 Je prefere utiliser les fractions rationnelles. A degre egal on obtient une approximation de bien meilleure qualite qu'avec les polygones (du a la presence des poles et pas que de zeros). J'ai trouve un algo pour calculer une approximation rationnelle d'une fonction (par intervalle). Reste a savoir si c'est correct.
AsGa Le 03/01/2003 à 23:09 Pour atn, j'utilise un développement en fraction continue qui converge assez vite...
Ordre 1 : atn(x) = x
Ordre 3 : atn(x) = 3x/(3+x^2)
Ordre 5 : atn(x) = x(15+4x^2)/(15+9x^2)
Ordre 7 : atn(x) = x(105+55x^2)/(105+90x^2+9x^4)
Ordre 9 : atn(x) = x(945+735x^2+64x^4)/(945+1050x^2+225x^4)
Réduire l'intervalle de calcul en utilisant :
atn(x) = PI/4 - atn(1/x) permet de réduire l'intervalle de 0..1
atn(x) = atn(k) + atn((x-k)/(1+kx))
Par exemple pour une précision de 16bits, prendre ordre 3, k = 1/4, 1/2, ou 3/4
Pour le log, les fractions continue tronquées marches bien, aussi (convergence plus rapide que dev de ln(1+x))
(Voir une revue disparue, je crois "Computer Langage" années 86-95)
Pour sin et cos, il y a des polynomes qui marchent bien (voir -ancienne- note d'application DSP ADSP2100 Analog Device)
Pour sin cos atn exp ln sh... on peut aussi utiliser CORDIC
y333 : il parlait du manuel complet, pas du truc livré avec les TI.

Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 :
www.ti-fr.com.
Quelques idées personnelles
ici.
Ben le manuel complet est sur le site de TI, non ?