Page 1 of 1

Problème pour utiliser une fonction dans mon programme

Unread postPosted: 18 May 2014, 08:21
by florian becher
Bonjour à tous. J'essaie actuellement de coder différentes méthodes de résolution numérique d'équations différentielles sur ma TI nspire cx cas. Cependant j'ai un gros problème, je ne réussi pas à "insérer" de fonction dans mon programme. Voici mon code pour être plus clair :

Code: Select all
Define abc(fun, a, b) =
Prgm
Local f, temp
f(x,y) := fun
temp := f(a,b)
Disp "res : ", temp
EndPrgm


Cependant, une fois le programme enregistré, lorsque je l'appelle j'ai le résultat suivant :

Code: Select all
abc(2*x²-y,1,2)


Et le résultat :

Code: Select all
res : fun


Alors que je voudrais que mon programme calcule f(1,2) = 2*1²-2 = 0. Comment faire pour corriger cela et avoir bien le résultat souhaité ?

Merci d'avance pour vos réponses,

Florian

Re: Problème pour utiliser une fonction dans mon programme

Unread postPosted: 18 May 2014, 09:22
by AnToX98
Salut, j'ai eu exactement le même problème quelques mois avant.
Il faut contourner le problème avec le workaround suivant :

Code: Select all
Define abc(fun, a, b) =
Prgm
Local f, temp
expr("f(x,y):="&string(fun))
temp := f(a,b)
Disp "res : ", temp
EndPrgm

Re: Problème pour utiliser une fonction dans mon programme

Unread postPosted: 18 May 2014, 11:20
by Levak
Ou plus simplement :
Code: Select all
Define abc(fun, a, b)=
Prgm
  Local f, temp
  f := fun
  temp := f | x = a and y = b
  Disp "res : ", temp
EndPrgm


en l'applelant avec :
Code: Select all
abc(x² + y², 42, 42)


ou encore :
Code: Select all
Define f(x, y) = x² + y²
abc(f(x, y), 42, 42)


En faisant cela, il faut juste faire attention à ne pas utiliser de variable à 1 seule lettre.
En général, c'est donc une bonne pratique de ne travailler qu'avec des variables à plus d'une lettre, donc tes variables a, b et f sont à proscrire.

Re: Problème pour utiliser une fonction dans mon programme

Unread postPosted: 18 May 2014, 15:22
by Bisam
J'espère que c'est uniquement pour le "défi" que tu essaies de coder cela car la calculette a déjà plusieurs schémas numériques intégrés, à savoir le schéma d'Euler explicite et le schéma de Runge-Kutta d'ordre 4..