Page 1 sur 1

Difficultés de programmation

Publié : lun. 21 déc. 2009 15:52
par rexacont
Bonjour a tous,
Nouveau sur HP 41 j'ai des difficultés à rentrer des fonctions polynômes.
Résultats fantoches et surtout différents après réintroductions.
Comment faire par exemple pour introduire la fonction 4x^2-7x+2/x-1 ?
Merci d'avance.

Re: Difficultés de programmation

Publié : lun. 21 déc. 2009 16:04
par Thomas FR69
Bonjour Rexacont et bienvenue sur ce forum !

Je propose par exemple, pour fp(x) = 4x^2-7x+(2/x)-1 :

Code : Tout sélectionner

01 LBL FP
02 ENTER^
03 ENTER^
04 1/X
05 2
06 *
07 1
08 -
09 X<>Y
10 -7
11 *
12 +
13 X<>Y
14 X^2
15 4
16 *
17 +
18 RTN
Je suppose que x est dans le registre X avant l'appel de la fonction FP. À la fin on trouvera (si je ne me suis pas trompé :roll: ) fp(x) dans le registre X.

Re: Difficultés de programmation

Publié : lun. 21 déc. 2009 16:28
par Thomas FR69
Voici ce qu'il se passe à chaque étape dans les registres de la pile :
fp-x.png

Re: Difficultés de programmation

Publié : lun. 21 déc. 2009 16:39
par hpmaniac
Pour faire suite à la proposition de Thomas (qui a été plus rapide que moi :wink: ) voici une autre méthode que tu pourras généraliser à d'autres polynômes.

En utilisant la méthode de Horner, qui s'adapte particulièrement bien au RPN, on peut réécrire ton polynôme sous la forme :

4x^2-7x+2/x-1 = x(4x -7) +2/x -1

Ce qui se programme en utilisant l’autoréplication du registre T:

Code : Tout sélectionner

01  LBL “POLY”
02  ENTER^      ‘X :x              Y :x
03  ENTER^      ‘X :x              Y :x            Z :x
04  ENTER^      ‘X :x              Y :x            Z :x        T :x
05  4           ‘X :4              Y :x            Z :x        T :x
06  *           ‘X :4x             Y :x            Z :x        T :x
07  7           ‘X :7              Y :4x           Z :x        T :x
08  -           ‘X :4x-7           Y :x            Z :x        T :x
09  *           ‘X :x(4x-7)        Y :x            Z :x        T :x
10  X<>Y        ‘X :x              Y :x(4x-7)      Z :x        T :x
11  1/x         ‘X :1/x            Y :x(4x-7)      Z :x        T :x
12  2           ‘X :2              Y :1/x          Z :x(4x-7)  T :x
13  *           ‘X :2/x            Y :x(4x-7)      Z :x        T :x
14  +           ‘X :x(4x-7)+2/x    Y :x            Z :x        T :x
15  1           ‘X :1              Y :x(4x-7)+2/x  Z :x        T :x
16  -           ‘X :x(4x-7)+2/x-1  Y :x            Z :x        T :x
17  RTN

Les 3 ENTER permettent de remplir la pile avec la valeur x, ensuite après chaque opération on a x à disposition dans le registre Y .
Ca serait encore plus simple s’il n’y avait pas de puissance négative de x qui oblige à introduire les pas 10 et 11.
La même séquence d’instructions peut aussi s’exécuter en dehors du mode programme (sans le LBL et le RTN).

Re: Difficultés de programmation

Publié : lun. 21 déc. 2009 17:39
par rexacont
Vous êtes des chefs.
Laissez-moi le temps de comprendre.
À bientôt et merci.

Re: Difficultés de programmation

Publié : mar. 22 déc. 2009 09:43
par hpmaniac
Voici quelques détails supplémentaires sur la méthode de Horner:

Image