Difficultés de programmation

Questions et discussions autour de la programmation du HP-41.
rexacont
Apprenti
Messages : 16
Inscription : ven. 13 nov. 2009 14:27

Difficultés de programmation

Message 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.

Avatar de l’utilisateur
Thomas FR69
Administrateur
Messages : 582
Inscription : ven. 15 avr. 2005 15:47
Localisation : Lyon, FRANCE
Contact :

Re: Difficultés de programmation

Message 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.

Avatar de l’utilisateur
Thomas FR69
Administrateur
Messages : 582
Inscription : ven. 15 avr. 2005 15:47
Localisation : Lyon, FRANCE
Contact :

Re: Difficultés de programmation

Message par Thomas FR69 »

Voici ce qu'il se passe à chaque étape dans les registres de la pile :
fp-x.png
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.

Avatar de l’utilisateur
hpmaniac
Expert
Messages : 213
Inscription : mar. 16 sept. 2008 15:18
Localisation : Grenoble

Re: Difficultés de programmation

Message 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).

rexacont
Apprenti
Messages : 16
Inscription : ven. 13 nov. 2009 14:27

Re: Difficultés de programmation

Message par rexacont »

Vous êtes des chefs.
Laissez-moi le temps de comprendre.
À bientôt et merci.

Avatar de l’utilisateur
hpmaniac
Expert
Messages : 213
Inscription : mar. 16 sept. 2008 15:18
Localisation : Grenoble

Re: Difficultés de programmation

Message par hpmaniac »

Voici quelques détails supplémentaires sur la méthode de Horner:

Image

Répondre