jeudi 11 septembre 2014

Calcul du déterminant d'une matrice 3x3.

Nous allons calculer le déterminant d'une matrice contenant 3 lignes et 3 colonnes avec la convention de notation ci dessous.







Le déterminant de cet matrice s'obtient en calculant a1(b2c3 - b3c2) - b1(a2c3-a3c2) + c1(a2b3-a3b2).
Le programme suivant permets à l'utilisateur d'entrer les 3 colonnes sous la forme de 3 vecteurs [a1, a2, a3 ], [b1, b2, b3] et [c1, c2, c3] lors des invitations A?, B? et C?.

PGRM TOP
M001 LBL M
M002 INPUT A
M003 INPUT B
M004 INPUT C
M005 [1,0,0]
M006 STO H
M007 [0,1,0]
M008 STO M
M009 [0,0,1]
M010 STO L
M011 RCL H
M012 RCL x A
M013 RCL M
M014 RCL x B
M015 RCL L
M016 RCL x C
M017 x
M018 x
M019 RCL H
M020 RCL x A
M021 RCL L
M022 RCL x B
M023 RCL M
M024 RCL x C
M025 x
M026 x
M027 -
M028 RCL H
M029 RCL x B
M030 RCL M
M031 RCL x A
M032 RCL L
M033 RCL x C
M034 x
M035 x
M036 -
M037 RCL H
M038 RCL x B
M039 RCL L
M040 RCL x A
M041 RCL M
M042 RCL x C
M043 x
M044 x
M045 +
M046 RCL H
M047 RCL x C
M048 RCL M
M049 RCL x A
M050 RCL L
M051 RCL x B
M052 x
M053 x
M054 +
M055 RCL H
M056 RCL x C
M057 RCL L
M058 RCL x A
M059 RCL M
M060 RCL x B
M061 x
M062 x
M063 -
M064 X<> T
M065 CLSTK
M066 X<> T
M067 RTN

Lancez le programme en faisant XEQ M ENTER.
Rappellons que les 3 colonnes doivent être entrées sous la forme de 3 vecteurs. Par exemple pour la matrice ci dessous, entrez [7, 6, 8] puis [3, 0, 8] puis [10, 6, 12].








Entrez la première colonne à l'invitation A?, continuez en tapant R/S, ensuite entrez la deuxième colonne à l'invitation B?, continuez en tapant R/S puis entrez la troisième colonne à l'invitation C? et terminez en tapant R/S.

Sur la ligne basse de l'écran sera alors affichée 0, la la valeur du déterminant de la matrice 3x3 entrée.

A très bientôt ;)

mercredi 10 septembre 2014

Dérivée d'un polynôme et d'une fonction (2ème partie).

Dans le dernier article nous avons calculé de façon exacte la dérivée d'un polynôme.
Ici nous allons utiliser la définition de la dérivée d'une fonction en une valeur donnée.







Le programme suivant entre en mémoire le polynôme P(X) = 8X^4 - 3X^3 + X^2 + 2X - 8 puis il calcule la valeur approchée de la dérivée en utilisant la variable entrée en D002.

PGRM TOP
# Le Label P correspond à la saisie du polynôme.
# Début de la saisie du polynôme en mode RPN.
P001 LBL P
P002 RCL X
P003 4
P004 Y^X
P005 8
P006 x
P007 RCL X
P008 3
P009 Y^X
P010 -3
P011 x
P012 +
P013 RCL X
P014 2
P015 Y^X
P016 +
P017 RCL X
P018 2
P019 x
P020 +
P021 -8
P022 +
P023 RTN
# Fin de la saisie du polynôme.
# le Label D correspond au programme de dérivation.
D001 LBL D
# On entre la valeur en laquelle la dérivée sera calculée.
D002 INPUT X
# Le programme va calculer P(X).
D003 XEQ P001
D004 STO T
D005 0.000001
D006 STO + X
# Le programme va calculer P(X+h) avec h=0.000001.
D007 XEQ P001
D008 RCL T
D009 -
D010 0.000001
D011 ÷
D012 X<> T
D013 CLSTK
D014 X<> T
D015 RTN

Lancez le programme en faisant XEQ D ENTER.
Entrez -2 à l'invitation X? puis continuez en tapant R/S.

Sur la ligne basse de l'écran sera alors affichée -294 soit la valeur de P'(-2), la valeur de la dérivée du polynôme P en X=-2.

Autre exemple: Si vous voulez entrer en mémoire le polynôme P(X) = -9X^5 + 3X^3 - 2X, vous devrez saisir P de cette façon:

PGRM TOP
# Le Label P correspond à la saisie du polynôme.
# Début de la saisie du polynôme en mode RPN.
P001 LBL P
P002 RCL X
P003 5
P004 Y^X
P005 -9
P006 x
P007 RCL X
P008 3
P009 Y^X
P010 3
P011 x
P012 +
P013 RCL X
P014 -2
P015 x
P016 +
P017 RTN
# Fin de la saisie du polynôme.
# La suite du programme est la recopie exacte du Label D au dessus.

Lancez le programme en faisant XEQ D ENTER.
Entrez 3 à l'invitation X? puis continuez en tapant R/S.

Sur la ligne basse de l'écran sera alors affichée -3566 soit la valeur de P'(3), la valeur de la dérivée du polynôme P en X=3.

Relancez le programme et cette fois-ci entrez -2 à l'invitation X? puis continuez avec R/S.

Sur la ligne basse de l'écran sera alors affichée -685.999 soit une valeur approchée de P'(-2), la valeur de la dérivée du polynôme P en X=-2.

La valeur exacte de P'(-2) est en fait -686 comme vous pourrez le constater avec le programme précédemment présenté.

Nota Bene: Il est possible de calculer avec ce programme la dérivée de n'importe quelle fonction si elle dérivable en la valeur entrée. Prenons par exemple la fonction F(X) = (Sin(2X))^2 qui a pour dérivée F'(X) = 4Sin(2x)Cos(2x).

PGRM TOP
# Le Label P correspond à la saisie de la fonction F.
# Début de la saisie de la fonction en mode RPN.
P001 LBL P
P002 RCL X
P003 2
P004 x
P005 SIN
P006 x^2
P007 RTN
# Fin de la saisie de la fonction.
# La suite du programme est la recopie exacte du Label D au dessus.

Lancez le programme en faisant XEQ D ENTER.
Entrez 1 à l'invitation X? puis continuez en tapant R/S.

Sur la ligne basse de l'écran sera alors affichée -1.513608 soit une valeur approchée de F'(1), la valeur de la dérivée de la fonction F en X=1.

La valeur exacte de F'(1) est 4.Sin(2).Cos(2) soit -1,513605.

A bientôt :)

samedi 6 septembre 2014

Calcul de la dérivée d'un polynôme (1ère partie).

Le but de ce petit programme est initialement d'entrer les coefficients du polynôme dans la mémoire de la calculatrice et ensuite de calculer sa dérivée en un point donné en entrant la valeur au clavier.

Le programme suivant entre en mémoire le polynôme P(X) = 8X^4 - 3X^3 + X^2 + 2X - 8 puis il calcule la valeur de la dérivée du polynôme en utilisant la variable entrée en D003 dans le programme.

PGRM TOP
# Le Label P correspond à la saisie du polynôme.
# Début de la saisie des coefficients du polynôme.
P001 LBL P
# On entre -8 coefficient de X^0.
P002 0
P003 STO I
P004 -8
P005 STO (I)
# On entre 2 coefficient de X^1.
P006 1
P007 STO I
P008 2
P009 STO (I)
# On entre 1 coefficient de X^2.
P010 2
P011 STO I
P012 1
P013 STO (I)
# On entre -3 coefficient de X^3.
P014 3
P015 STO I
P016 -3
P017 STO (I)
# On entre 8 coefficient de X^4.
P018 4
P019 STO I
P020 8
P021 STO (I)
# Fin de la saisie des coefficients du polynôme.
# le Label D correspond au programme de dérivation.
D001 LBL D
# CLSTK signifie vider les 4 niveaux du stack (Menu CLEAR choix 5).
D002 CLSTK
# On entre la valeur en laquelle la dérivée sera calculée.
D003 INPUT X
D004 X = 0 ?
D005 GTO D023
D006 RCL I
D007 1
D008 -
D009 Y^X
D010 RCL I
D011 RCL (I)
D012 x
D013 x
D014 +
D015 RCL X
D016 DSE I
D017 GTO D006
# Roll Down décale les contenus des registres d'un rang vers le bas.
D018 RD
# On échange le contenu du registre X avec la variable T vide.
D019 X<> T
D020 CLSTK
# On échange à nouveau le contenu du registre X avec la variable T.
D021 X<> T
D022 RTN
D023 1
D024 STO I
D025 CLSTK
D026 RCL (I)
D027 RTN

Lancez le programme en faisant XEQ P ENTER.
Entrez -2 à l'invitation X? puis continuez en tapant R/S.

Sur la ligne basse de l'écran sera alors affichée -294 soit la valeur de P'(-2), la valeur de la dérivée du polynôme P en X=-2.

Autre exemple: Si vous voulez entrer en mémoire le polynôme P(X) = -9X^5 + 3X^3 - 2X, vous devrez saisir les coefficients de la même façon:

PGRM TOP
# Le Label P correspond à la saisie du polynôme.
# Début de la saisie des coefficients du polynôme.
P001 LBL P
# On entre 0 coefficient de X^0.
P002 0
P003 STO I
P004 0
P005 STO (I)
# On entre -2 coefficient de X^1.
P006 1
P007 STO I
P008 -2
P009 STO (I)
# On entre 0 coefficient de X^2.
P010 2
P011 STO I
P012 0
P013 STO (I)
# On entre 3 coefficient de X^3.
P014 3
P015 STO I
P016 3
P017 STO (I)
# On entre 0 coefficient de X^4.
P018 4
P019 STO I
P020 0
P021 STO (I)
# On entre -9 coefficient de X^5.
P022 5
P023 STO I
P024 -9
P025 STO (I)
# Fin de la saisie des coefficients du polynôme.
# La suite du programme est la recopie exacte du Label D au dessus.

Lancez le programme en faisant XEQ P ENTER.
Entrez 3 à l'invitation X? puis continuez en tapant R/S.

Sur la ligne basse de l'écran sera alors affichée -3566 soit la valeur de P'(3), la valeur de la dérivée du polynôme P en X=3.

Liens intéressants:
HP-35S et Variables indirectes.

Nous verrons prochainement une autre technique (utilisant la définition de la dérivation) pour calculer des dérivées de façon approchée avec la HP-35s.

A très bientôt :)