Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.

Forum Casio - Autres questions


Index du Forum » Autres questions » Algorithme de variation
Scientifix Hors ligne Membre Points: 762 Défis: 30 Message

Algorithme de variation

Posté le 31/10/2014 15:45

Bonjour
Comme vous le savez sûrement, j'ai sorti un programme qui permet de tracer un tableau de variation.
Sauf que l'algorithme était pas assez précis comme me l'a fait remarqué un utilisateur
J'ai donc un nouveau code :


ClrList [maroon]3[/maroon]:0→C
[gray]"Fonction "[/gray]?→Y1
[b][blue]If[/blue][/b] Y1(-5)=Y1(1) And Y1(1)=Y1(5)
[b][blue]Then[/blue][/b]
[brown]Cls[/brown]
[b][brown]Text[/brown][/b] [maroon]15[/maroon],[maroon]10[/maroon],[gray]"f(x) est constante"[/gray]
[b][brown]Text[/brown][/b] [maroon]23[/maroon],[maroon]10[/maroon],[gray]"sur l[green]'intervalle"[/gray][/green]
[b][blue]Stop[/blue][/b]
[b][blue]Ifend[/blue][/b]
[b][blue]For[/blue][/b] -10→A [b][blue]To[/blue][/b] [maroon]9[/maroon]
d/dx(Y1,[maroon]0[/maroon].1A→B
[b][blue]If[/blue][/b] Bd/dx(Y1,[maroon]0[/maroon].1A+0.1)<=[maroon]0[/maroon] And B
[b][blue]Then[/blue][/b] [b][blue]Isz[/blue][/b] C
0.1A→U:U+0.1→V:U+.05→W
[b][blue]While[/blue][/b] V-U>.05
[b][blue]If[/blue][/b] [maroon]0[/maroon]>d/dx(Y1,U)d/dx(Y1,W
[b][blue]Then[/blue][/b] W→V
[b][blue]Else[/blue][/b] W→U
[b][blue]IfEnd[/blue][/b]
.5+(U+V→W
[b][blue]WhileEnd[/blue][/b]
W→List3[C
[b][blue]IfEnd[/blue][/b]
[b][blue]Next[/blue][/b]


Le problème est que quand il n'y a pas de racine, le programme bug et on obtient "erreur Dim".
Dans mon ancien code j'avais ajouté un système qui, quand il n'y avait pas de racines, m'indiquait directement si la fonction était strictement croissante ou décroissante sur l'intervalle. Mais je n'arrive plus à ajouter un tel système dans ce code quelqu'un peut m'aider ?
Merci !


Lephenixnoir En ligne Administrateur Points: 22772 Défis: 149 Message

Citer : Posté le 31/10/2014 15:57 | #


Déplacé et renommé.
Tu feras un peu plus attention la prochaine fois ?
Scientifix Hors ligne Membre Points: 762 Défis: 30 Message

Citer : Posté le 31/10/2014 15:57 | #


Promis
Tu as une petite réponse ?
JE SERAI ABSENT POUR 2 ANS A+

Je suis fan de Mathématiques et de Sciences en général (d'où mon nom ). Consultez mes programmes en rapport avec les Maths
--------------------------------------------------------

Calculatrice : Graph 75
Lephenixnoir En ligne Administrateur Points: 22772 Défis: 149 Message

Citer : Posté le 31/10/2014 16:18 | #


Ben, si tu est certain qu'elle est monotone sur l'intervalle t'as qu'à calculer pour deux valeurs de l'intervalle et regarder l'ordre obtenu
Scientifix Hors ligne Membre Points: 762 Défis: 30 Message

Citer : Posté le 31/10/2014 19:54 | #


Non, je voudrais que l'algorithme fasse une recherche de racines et ensuite
s'il n'y pas de racines et que la dérivée est positive alors "f(x) croissante sur l'intervalle"
s'il n'y pas de racines et que la dérivée est négative alors "f(x) décroissante sur l'intervalle"

tu vois comment je pourrai faire ?
JE SERAI ABSENT POUR 2 ANS A+

Je suis fan de Mathématiques et de Sciences en général (d'où mon nom ). Consultez mes programmes en rapport avec les Maths
--------------------------------------------------------

Calculatrice : Graph 75
Lephenixnoir En ligne Administrateur Points: 22772 Défis: 149 Message

Citer : Posté le 31/10/2014 19:56 | #


Je me tue à te le dire.

Considérant a et b deux nombres de l'intervalle tels que a < b :
S'il n'y a pas de racines
    x prend la valeur f(a)
    y prend la valeur f(b)
    Si x<y
        f est croissante
    Sinon
        f est décroissante
    Fin
Fin

Sinon, je trouve ton test pour f constante un peu léger.
Scientifix Hors ligne Membre Points: 762 Défis: 30 Message

Citer : Posté le 31/10/2014 20:00 | #


Ok, tu peux m'ajouter ça dans le code stp ? Car (je ne comprend pas pourquoi) chez moi ça marche jamais
En fait ce que je n'arrive pas à faire c'est le "s'il n'y a pas de racine"
Et qu'est ce que tu propose pour prouver qu'elle est constante ?
Merci
JE SERAI ABSENT POUR 2 ANS A+

Je suis fan de Mathématiques et de Sciences en général (d'où mon nom ). Consultez mes programmes en rapport avec les Maths
--------------------------------------------------------

Calculatrice : Graph 75
Matt36230 Hors ligne Membre Points: 1888 Défis: 0 Message

Citer : Posté le 31/10/2014 20:22 | #


Essaye :
"TEST"→List 3
List 3<2 And List 3 [1]=0⇒"le reste"
Mais je ne sais pas si c'est ce que tu veux
Scientifix Hors ligne Membre Points: 762 Défis: 30 Message

Citer : Posté le 31/10/2014 20:31 | #


Merci pour ton aide
Et tu mettrais où cette condition "if liste 3 vide then ..." dans le code ?
JE SERAI ABSENT POUR 2 ANS A+

Je suis fan de Mathématiques et de Sciences en général (d'où mon nom ). Consultez mes programmes en rapport avec les Maths
--------------------------------------------------------

Calculatrice : Graph 75
Matt36230 Hors ligne Membre Points: 1888 Défis: 0 Message

Citer : Posté le 31/10/2014 20:34 | #


Ca je ne sais pas dsl j'ai rien compris au code (j'ai pas encore appris les tableaux de variations je l'apprends à la rentrée)
Scientifix Hors ligne Membre Points: 762 Défis: 30 Message

Citer : Posté le 31/10/2014 20:40 | #


Ah désolé, tu dois rien comprendre aux dérivées non plus alors
Bonne programmation
JE SERAI ABSENT POUR 2 ANS A+

Je suis fan de Mathématiques et de Sciences en général (d'où mon nom ). Consultez mes programmes en rapport avec les Maths
--------------------------------------------------------

Calculatrice : Graph 75
Matt36230 Hors ligne Membre Points: 1888 Défis: 0 Message

Citer : Posté le 31/10/2014 20:41 | #


Non dsl Et merci toi aussi
Bonne chance pour trouver :idea:
Lephenixnoir En ligne Administrateur Points: 22772 Défis: 149 Message

Citer : Posté le 31/10/2014 20:53 | #


Il faut le mettre après l'analyse.

Et Scientifix, le problème c'est surtout que tu testes trois valeurs simples, qui conviennent biens à des "cas d'école" : fais une analyse sur 10 à 20 aléatoires sur l'ensemble de l'intervalle, tu stockes la première valeur et si une est différente, la fonction n'est pas constante.
Là t'es déjà beaucoup plus sûr.
Scientifix Hors ligne Membre Points: 762 Défis: 30 Message

Citer : Posté le 01/11/2014 12:05 | #


Merci Lephé
Je sais qu'il faut mettre cela après l'analyse mais je ne sais pas comment faire le "si pas de racines alors ..."
Peux tu me montrer ? Et au passage me montrer où mettre cette condition dans le code ? Merci
Je vais faire un truc mieux pour les fonctions constantes, t'as raison c'est pas génial mon histoire

Ajouté le 02/11/2014 à 17:29 :
Bon, je sais que je commence à être chiant, mais où que je mette cette p***** de condition dans le programme, celui-ci "passes dessus" sans problème car je n'ai pas de "Dim error" mais n'affiche pas le message "croissante" ou "décroissante" comme il le devrait Quelqu'un peut-il me mettre cette £\à=è=¤¨^! de condition dans le code de mon post originel ?
Merci !!!

PS: désolé de faire le chieur mais là je ne comprend vraiment pas
JE SERAI ABSENT POUR 2 ANS A+

Je suis fan de Mathématiques et de Sciences en général (d'où mon nom ). Consultez mes programmes en rapport avec les Maths
--------------------------------------------------------

Calculatrice : Graph 75
Lephenixnoir En ligne Administrateur Points: 22772 Défis: 149 Message

Citer : Posté le 02/11/2014 17:31 | #


Avant tout, il y a un problème dans ta fonction non ? Au début, C vaut 0, tu changes pas la valeur et tu mets W dans List 3[C].
Scientifix Hors ligne Membre Points: 762 Défis: 30 Message

Citer : Posté le 02/11/2014 17:32 | #


Je vois pas ce que tu veux dire ... ça marche très bien sur ma calculatrice
JE SERAI ABSENT POUR 2 ANS A+

Je suis fan de Mathématiques et de Sciences en général (d'où mon nom ). Consultez mes programmes en rapport avec les Maths
--------------------------------------------------------

Calculatrice : Graph 75
Lephenixnoir En ligne Administrateur Points: 22772 Défis: 149 Message

Citer : Posté le 02/11/2014 17:34 | #


Au début :
0→C

Et par la suite :
W→List 3[C

De la deuxième instruction je déduis que C est le compteur de solutions non ? Alors pourquoi n'augmente-t-il nulle part ? Là, tu stockes W dans List 3[0], soit le titre.
Scientifix Hors ligne Membre Points: 762 Défis: 30 Message

Citer : Posté le 02/11/2014 17:44 | #


Pourtant quand j'exécute le programme pour f(x)=x^3-x par exemple (2 racines) et que je vais dans RUN MATH après C vaut bien 2 ... et List 3[1 contient -0.575 et Liste 3[2 0.575 ce qui est correct. Par contre je ne sais pas où mettre ma boucle "si pas de racines ..." car où que je la mette le programme ne veut jamais afficher le texte "croissante/décroissante sur l'intervalle ..."
JE SERAI ABSENT POUR 2 ANS A+

Je suis fan de Mathématiques et de Sciences en général (d'où mon nom ). Consultez mes programmes en rapport avec les Maths
--------------------------------------------------------

Calculatrice : Graph 75
Lephenixnoir En ligne Administrateur Points: 22772 Défis: 149 Message

Citer : Posté le 02/11/2014 17:48 | #


Oups, au temps pour moi ! J'avais raté un Isz C.
Bien, voilà donc ce que ça donne :
ClrList 3:0→C
"Fonction "?→Y1

// Test de constance
If Y1(-5)=Y1(1) And Y1(1)=Y1(5)
Then
Cls
Text 15,10,"f(x) est constante"
Text 23,10,"sur l'intervalle"
Stop
Ifend

// Analyse
For -10→A To 9
d/dx(Y1,0.1A→B
If Bd/dx(Y1,0.1A+0.1)<=0 And B
Then Isz C
0.1A→U:U+0.1→V:U+.05→W
While V-U>.05
If 0>d/dx(Y1,U)d/dx(Y1,W
Then W→V
Else W→U
IfEnd
.5+(U+V→W
WhileEnd
W→List3[C
IfEnd
Next

// Test du nombre de racines
If C=0
Then Y1(un_nombre_de_l'intervalle)→X
Y2(un_nombre_plus_grand_toujours_dans_l'intervalle)→Y
If X<Y
Then "Croissante"
Else "Decroissante"
IfEnd
IfEnd
Scientifix Hors ligne Membre Points: 762 Défis: 30 Message

Citer : Posté le 02/11/2014 18:04 | #


Merci !! ça marche
Désolé d'avoir été aussi chiant .... GENIAL CA MARCHE ENFIN
JE SERAI ABSENT POUR 2 ANS A+

Je suis fan de Mathématiques et de Sciences en général (d'où mon nom ). Consultez mes programmes en rapport avec les Maths
--------------------------------------------------------

Calculatrice : Graph 75
Lephenixnoir En ligne Administrateur Points: 22772 Défis: 149 Message

Citer : Posté le 02/11/2014 18:42 | #


Ben... après l'analyse quoi. x)
J'ai hâte de tester la prochaine version !

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2022 | Il y a 118 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