Récemment, j'ai été confronté au problème du passage de fonction à un programme sur TI, et je me suis posé la même question sur Casio. J'espère que ça sera utile à un maximum de personnes !
L'exemple de base est un programme de résolution par dichotomie. Le but de cet algorithme est d'approximer f(x) = 0 dans un intervalle [a;b], en divisant l'intervalle en deux à chaque itération jusqu'à une précision e. Vous trouverez plus d'informations sur Wikipédia (comme toujours) : http://fr.wikipedia.org/wiki/Dichotomie
Voici un algorithme de dichotomie en langage naturel :
- Code: Select all
Si f(a) × f(b) < 0 alors
Tant que |b-a| > e faire
m → (a+b)/2
Si f(a) × f(m) > 0 alors
a → m
Sinon
b → m
FinSi
FinTantQue
Afficher [a;b]
Sinon
Si f(a) = 0
Afficher a
Sinon
Si f(b) = 0
Afficher b
Sinon
Afficher "Pas de solution dans [a;b]"
FinSi
FinSi
FinSi
En Casio-Basic, le problème qui se pose est l'évaluation de f(a) et f(m). En effet, les variables en Casio-Basic ne peuvent contenir que des nombres ; il est impossible de stocker une fonction dans une variable. Que faire ?
La solution réside dans le menu "Graph" de votre machine. Entrez votre fonction dans le champ Y1. Revenez dans l'éditeur de programme.
À partir de là, vous pouvez évaluer Y1 en entrant le caractère Y dans "Vars" > "Grph" > "Y" suivi d'un 1, qui est à différencier du Y du clavier alphabétique.
De ce fait, écrire ceci
- Code: Select all
Y1 → F
Au final, on devra écrire ceci :
- Code: Select all
A → X
Y1 → F
Pour finir, voici donc le programme complet, en supposant que la fonction aie bien été entrée dans le menu "Graph" :
- Code: Select all
"A ="? → A
A → X
Y1 → F
"B ="? → B
B → X
Y1 → G
If F × G < 0 Then
While |B-A| > E
(A+B)/2 → M
A → X
Y1 → F
M → X
Y1 → G
If F × G > 0 Then
A → M
Else
B → M
IfEnd
WhileEnd
"SOLUTION COMPRISE ENTRE"
A⦟
"ET"
B
Else
If F = 0 Then
A⦟
"EST SOLUTION"
Else
If G = 0 Then
B⦟
"EST SOLUTION"
Else
"PAS DE SOLUTION DANS [A,B]"
IfEnd
IfEnd
IfEnd
Et voilà ! Le tour est joué ! Évidemment, il en sera de même pour tous les programmes qui dépendent d'une fonction…