Posté le 10/11/2014 20:02
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 80 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements
Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd
Citer : Posté le 10/11/2014 20:18 | #
Cherche sur le site tu trouveras peut être
Citer : Posté le 10/11/2014 20:30 | #
j'ai cherche mais sans resultat convaincant ...
Citer : Posté le 10/11/2014 20:31 | #
sinon la boucle for pour ton intervalle est une bonne idée
Citer : Posté le 10/11/2014 20:42 | #
sin(a) = sin(b) ? Tu veux dire, a de R et b dans un intervalle normalisé (style -π/2;π/2) ?
Dans ce cas, tu peux facilement écrire le programme : il suffit de diminuer progressivement a jusqu'à ce qu'il soit entre 0 et π/2. Ensuite, tu as l'égalité sin(x) = sin(π-x) pour le ramener dans le "demi-intervalle".
Citer : Posté le 10/11/2014 21:15 | #
voila exactement ce que je pensais mais je bloque apres la declaration de variable ( boucle while ? ) mais y'a 2 solution a moduler non ?
Citer : Posté le 10/11/2014 21:23 | #
Ben, ça dépend de ton intervalle.
Prenons sur [-π/2;π/2] (une seule solution) ;
Étape 1 : récupérer a (juste a, pas le sinus) :
Ensuite, ramener a dans [-π/2;3π/2] (il est forcément dedans). On commence par trouver s'il est avant ou après l'intervalle, et on utilise S comme signe :
-1*(A<-π/2)+1*(A>3π/2)→S
A+2Sπ→A
WhileEnd
Maitenant, soit A est compris entre [-π/2;π/2] et on est content, soit il est entre [π/2;3π/2] et on ne l'est pas, donc on utilise l'autre formule :
π-A→A
IfEnd
Et normalement c'est bon ! Je n'ai pas testé, mais ça devrait aller globalement.
Citer : Posté le 10/11/2014 21:29 | #
ah ok ... ca repose sur le meme principe que la dichotomie
je teste ca dans la soiree et je te tient au courant mais merci beaucoup
Ajouté le 10/11/2014 à 21:30 :
mais on peut pas l'étendre a un intervalle que l'on definit ?
Citer : Posté le 10/11/2014 21:30 | #
En fait non, parce que S est constant tout le long pour une même valeur de a.
Dans l'idéal, il faudrait calculer S une seule fois avant la boucle.
Ajouté le 10/11/2014 à 21:33 :
Si, on peut facilement l'étendre en modifiant les bornes que j'ai définies. Mais du coup, il peut y avoir plusieurs solutions !
J'ai pris [-π/2;π/2] parce que c'est le standard pour les sinus.
Sinon, je crois que tu as beaucoup plus simple pour ce cas particulier
Ça renvoie dans cet intervalle standard.
Citer : Posté le 10/11/2014 21:46 | #
je comprend plus rien la
1) on declare a et les bornes de I (x;y)
2) tant que arcsin a est inferieur a y et superieur a x on le fait moduler ? mais y'a 2 expression ?
Citer : Posté le 10/11/2014 21:52 | #
Non, rien à voir avec arcsin. x)
La commande suivante
renvoie l'unique b de [-π/2;π/2] tel que sin(a) = sin(b).
J'y ai pensé après coup, ça ne fonctionne que dans cet intervalle parce que c'est l'intervalle de calcul des sinus de la machine.
Citer : Posté le 10/11/2014 21:57 | #
Pourrais tu me le resumer en un programme stp ?
Citer : Posté le 10/11/2014 22:00 | #
Pourrais tu me le resumer en un programme stp ?
Je traduis le sous-entendu : peux-tu me faire le programme stp ?
/ je sors
Vitesse des fonctions en Basic Casio | 7 days CPC | Casio Universal Wiki | Tutoriel Basic Casio
>>> Give me a click Brother <<< >>> Teste mon générateur de mots nouveaux <<<
>>> Random Youtube Video <<<
Citer : Posté le 10/11/2014 22:03 | #
Si c'est vraiment trop gros ne t'embete pas mais je suis pas un expert comme vous
Citer : Posté le 11/11/2014 08:48 | #
Mais c'est assez simple à faire !! Lance-toi
Citer : Posté le 11/11/2014 08:59 | #
Oui, essaye de l'écrire et dis-nous si tu n'y arrives pas, tu apprendras bien plus ainsi
Pour la deuxième méthode même pas besoin de programme !
Il suffit de taper, dans le menu RUN :
Et il te donne la solution dans l'intervalle [-π/2;π/2].
Edit : Enfin, si t'es configuré en radians.
Citer : Posté le 11/11/2014 11:54 | #
on a sin a = sin b sur [X;Y]
"X=":?→X
"Y=":?→Y
"A=":?→A
"B=":?→B
A1→B
A2→B-π
While A1>X
A1→B+2π
WhileEnd
While A1<Y
A1→B-2π
De meme pour A2 et afficher les valeurs ?
Citer : Posté le 11/11/2014 12:05 | #
Quand tu veux ajouter du code dans un message, utilise la commande appropriée , c'est plus lisible.
Si tu prends sur [X;Y], tu peux avoir plusieurs solutions. Disons que le programme en donne une.
"Y = "?→Y
"A = "?→A
Faut surtout pas entrer B, puisqu'on le cherche ! Le but est justement de trouver un B appartenant à [X;Y] tel que sin(A) = sin(B).
On calcule le signe de la valeur à ajouter pour amener à dans l'intervalle [X;Y].
Et ensuite, on ramène a dans l'intervalle. Et on fait bien attention, si on dépasse l'intervalle il n'y a pas de solution !
A+2Sπ→A
If (S=-1 And A≥Y) Or (S=1 And A<X)
Then "Pas de solution"
Stop
IfEnd
WhileEnd
Si par hasard A appartenait déjà à l'intervalle, rien ne s'est passé. Plus qu'à afficher la solution :
Ajouté le 11/11/2014 à 12:08 :
Attention, le programme ici ne cherche que les solutions de type A+2kπ, il ignore celles de type π-(A+2kπ).
Citer : Posté le 11/11/2014 12:20 | #
mais le programme va trouver a et non b ?
pour trouver le b c'est else du 2e while ?
Citer : Posté le 11/11/2014 12:21 | #
En fait, je demande la valeur de A puis je la manipule, comme si pour résoudre une équation du premier degré je mettais -B/A dans A et non dans X : ça ne change rien vis-à-vis du programme.
La valeur que tu cherches est la valeur finale de A.
Citer : Posté le 11/11/2014 12:30 | #
mais y'aura qu'une seul valeur trouve pour trouver l'autre je rajoute π ?