π
<-

Problème pour définir une fonction dans un programme

Programmation et implémentation d'algorithmes.

Problème pour définir une fonction dans un programme

Unread postby Ameisen » 26 May 2010, 00:21

Bonjour à tous
Bravo pour le site et ce forum qui je pense va beaucoup m'aider

J'ai un problème pour résoudre une fonction (j'ai pris un exemple tres simple POUR ILLUSTRER) tel que :

f(x)= k*x

je veux résoudre trouver k pour que f(6)=10 par exemple et plus généralement f(a)=b

Donc je demande qu'on me rentre la fonction, qu'on rentre a et b
Input "Rentrez l'équation précédente",u

et c'est après que je sais pas ce qu'il faut faire pour que ca fonctionne bon jusque là tout va bien la calculatrice m'affiche bien la fonction quand je met
Disp u

Sauf que jusque là je peux pas injecter ma condition à savoir par exemple "f(a)=b"
Donc je dois définir une fonction à partir de "u" et j'ai souvent vu qu'on mettait pour obtenir cela dans d'autres programme
define q(x)=expr(string(u))

Sauf que ca, ca marche bien quand ca veut ... car quand je tape
Disp u

après avoir rentré ca ca m'affiche "u" et non pas la fonction...
Enfin bref comment on définit une fonction dans un programme à partir d'une variable qu'on a rentré précédemment (qui est bien sure susceptible d'être une fonction et qui contient déjà la variable qui nous intéresse par exemple x) ? :#wahoo#:

Merci pour votre aide
User avatar
Ameisen
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Level up: 23.4%
 
Posts: 45
Joined: 26 May 2010, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: T

Re: Problème pour définir une fonction dans un programme

Unread postby Bisam » 26 May 2010, 08:47

Tu peux utiliser le symbole "|" qui signifie "tel que" pour éviter d'avoir à transformer une expression en fonction. La plupart du temps, c'est suffisant.
Exemple si ta solution générale sol_gen s'exprime avec une constante K, tu peux trouver la solution satisfaisant la condition initiale f(a)=b en tapant :
Code: Select all
solve((sol_gen|x=a)=b,K)-A
Disp sol_gen|K=A


Si tu as absolument besoin d'une fonction, la méthode que tu as suggérée devrait marcher mais il nous faudrait plus de détails pour comprendre ce qui ne marche pas.

Cela peut venir de variables non déclarées comme variables locales, ou simplement de l'expression qui a été tapée.

Pour terminer, je m'interroge vraiment sur l'utilité de ton programme car la résolution d'une équation différentielle du 1er ordre sans second membre, ça se fait en une ligne... (et la calculatrice sait le faire) alors c'est quoi tes étapes ?
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 69.6%
 
Posts: 5670
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):
MyCalcs profile

Re: Problème pour définir une fonction dans un programme

Unread postby Ameisen » 26 May 2010, 11:50

Enfin c'est pas tant la résolution de l'équation différentielle qui m'intéresse (certes c'est pas franchement la mer a boire de remplacer a et b dans l'équation et de la faire à la main...) mais la façon générale de rentrer une fonction dans un programme car c'est sure que j'en aurais besoin dans un autre programme tôt ou tard cette étape n'étant qu'une étape dans la suite du programme

Par exemple j'ai la fonction

f(x)=k*e^(2x)+x*e^(2x) ou k est une constante quelconque

Je veux déterminer le k pour que f(0)=-1

Donc je dois
1- Rentrer une fonction f quelconque
2- Rentrer a
3- Rentrer b

Et à partir de cela trouver le "k" pour que la calculatrice me trouve le k et l'enregistre comme une variable pour réutilisation ultérieur dans un programme

enfin ca pourrait etre f(34500040)=78900 enfin un programme qui me trouve le k pour n'importe quel f(a)=b (avec la fonction le a et le b rentré par l'utilisateur bien sure que ca soit un minimum détaillé...)

Si quelqu'un sait me dire ce qu'il faut rentrer comme code pour que ca fonctionne bah qu'il hésite par car moi je sèche

PS : oui merci je sais c'est un jeu d'enfant de la faire à la main... je veux juste savoir comment on le programme car ca m'agace de voir qu'un truc aussi enfantin à faire à la main, j'arrive pas à faire le programme pour le résoudre
User avatar
Ameisen
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Level up: 23.4%
 
Posts: 45
Joined: 26 May 2010, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: T

Re: Problème pour définir une fonction dans un programme

Unread postby Loulou 54 » 26 May 2010, 16:51

Ameisen wrote:
Disp u

après avoir rentré ca ca m'affiche "u" et non pas la fonction...


Il faut peut-être afficher la fonction que t'as défini avant, c'est à dire q :
Code: Select all
Disp q(x)
Mes programmes => ici !
User avatar
Loulou 54Premium
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Level up: 1.6%
 
Posts: 1985
Images: 8
Joined: 02 Aug 2009, 00:00
Location: 54, près de Metz
Gender: Male
Calculator(s):
MyCalcs profile
Class: Ingé Logiciel chez Amazon

Re: Problème pour définir une fonction dans un programme

Unread postby Ameisen » 26 May 2010, 18:37

Bon j'y arrive pas ca m'agace

Voila le programme

Prgm
ClrIO
Local q,f,a,b,k
Input "rentrez la fonction",q
disp q
Pause
Disp "On chercher q(a)=b"
Input "rentrez a",a
Input "rentrez b",b
pause
disp solve ((q|x=a)=b,k)-a1
disp q|k-a1
pause
EndPrgm
User avatar
Ameisen
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Level up: 23.4%
 
Posts: 45
Joined: 26 May 2010, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: T

Re: Problème pour définir une fonction dans un programme

Unread postby Ameisen » 26 May 2010, 19:32

Bon j'ai compris le truc de pourquoi elle m'affichait "q" précédemment et pas la fonction
en fait il faut lui indiquer que c'est l'expression qu'on veut voir s'afficher et pas le nom de la variable

Donc il faut rentrer

Input "Rentrez la fonction",q
define f(x)=expr(string(q))
disp expr(string(f(x))

et là en effet la fonction rentrée en q s'affiche sauf que c'est un peu pénible de devoir afficher a chaque fois expr(string(f(x))...
User avatar
Ameisen
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Level up: 23.4%
 
Posts: 45
Joined: 26 May 2010, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: T

Re: Problème pour définir une fonction dans un programme

Unread postby Ameisen » 26 May 2010, 20:16

Voila j'ai trouvé la solution et la voici

Prgm
Local a,b,g,k,f
Input "rentrez la fct",g
define f(x)=expr(string(q))
expr(string(f(x))- g
Pause
disp "On cherche q(a)=b"
Input "Rentrez a",a
Input "Rentrez b",b
Pause
disp solve((g|x=a)=b,x)
solve((g|x=a)=b,x)-k
disp k
pause
EndPrgm
User avatar
Ameisen
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Level up: 23.4%
 
Posts: 45
Joined: 26 May 2010, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: T

Re: Problème pour définir une fonction dans un programme

Unread postby Bisam » 26 May 2010, 21:14

Je n'ai pas eu le temps de lire tes posts précédents et de te répondre plus tôt mais il y a bien plus simple pour faire la même chose (et en plus clair pour l'utilisateur) que ce que tu as écrit :
Code: Select all
Prgm
Local a,b,g
Clrio
Disp "Entrez la fonction g"
Input "dépendant de k",g
disp "On cherche k tel que g(a)=b"
Prompt a,b
disp solve((g|x=a)=b,k)
EndPrgm
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 69.6%
 
Posts: 5670
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):
MyCalcs profile

Re: Problème pour définir une fonction dans un programme

Unread postby Ameisen » 20 Oct 2010, 01:04

Bien tout cela m'a bien aidé et j'ai fait mon programme de résolution pas à pas
Maintenant j'ai un dernier petit détail à régler en effet j'aimerais que à la suite de cette résolution d'équation :
disp solve((g|x=a)=b,k)

je puisse réutiliser la valeur de "k"

J'aimerais que la calculatrice comprenne bien que "k" vaut par exemple 1 (donc que k=1) dans la suite du programme car pour l'instant je dois demander à ce qu'on saisisse la valeur de k en mettant cela à la suite :
Input "Rentrez k",k

Ce qui est un peu dommage...
Merci

PS : Il y a des variables qu'il est impossible d'utiliser ainsi k et interdit j'ai dû mettre k1 pour que la calculatrice me disent plus "Undefined variable", il y a beaucoup de variable qui sans raison apparente sont impossibles à utiliser ?
User avatar
Ameisen
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Level up: 23.4%
 
Posts: 45
Joined: 26 May 2010, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: T

Re: Problème pour définir une fonction dans un programme

Unread postby Bisam » 20 Oct 2010, 07:13

Pour récupérer la valeur de k, tu peux utiliser la fonction "exp>list" (voir le manuel) qui prend une expression booléenne et en extrait toutes les occurrences de la forme k=... sous la forme d'une liste de solutions.

Pour ce qui est des variables impossibles à utiliser, il y en a quelques-unes, c'est vrai (par exemple "y1","y2",...,"y99" ou encore "ok" ou "errornum") mais pas "k". Cela doit venir de ton programme : tu veux utiliser "k" en l'ayant déclarée comme variable locale et sans lui avoir affecté de valeur.
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 69.6%
 
Posts: 5670
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):
MyCalcs profile


Return to Programmation

Who is online

Users browsing this forum: ClaudeBot [spider] and 3 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1016 utilisateurs:
>992 invités
>19 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)