Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#1 24-04-2013 13:47:00

BIENVENU MABIKA
Membre
Inscription : 23-04-2013
Messages : 5

[SCILAB] Résoudre un système d'equations differentielles

bonjour à tous
je cherche à resoudre le système d'equation  diffentielle suivant:

x'(t)=50(y(t)-(1/3)x(t)^3+x(t)
y'(t)=-x(t)
on donne les conditions initiales x(0)=0.25, y(0)=0 ,t=[0,10]

j'ai procédé comme suit:

deff('dx=fct(t,x)', 'dx(1)=50(x(2)-(1/3)x(1)^3+X(1); dx(2)=-x(1))');
t0=0;x0=[0.25,0];t=0:0.1:10;
z=ode(x0,t0,t,fct)
mais j'ai un message d'erreur qui apparait
message d'erreur: operateur,virgule ou point-virgule manquant
si vous pouvez m'aidé à le résoudre
cordialement

Hors ligne

#2 24-04-2013 16:03:43

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 943

Re : [SCILAB] Résoudre un système d'equations differentielles

Salut,

Va voir  ta discussion précédente : j'ai fait une erreur...

D'autre part, Bienvenu, tes discussions doivent figurer dans le forum programmation, pas Entraide Supérieur...

Là, elles y sont...
Mais parce que, moi, je les ai déplacées...
Merci d'y penser la prochaine fois.

       Yoshi
- Modérateur -


Arx Tarpeia Capitoli proxima...

Hors ligne

#3 26-04-2013 10:21:54

Yassine
Membre
Inscription : 09-04-2013
Messages : 1 090

Re : [SCILAB] Résoudre un système d'equations differentielles

Je ne suis pas un expert de Scilab. Je vais donc juste faire une suggestion qui n'est paut être pas le vrai problème :
tu écris :

x0=[0.25 , 0]

ce qui suggère pour moi un vecteur ligne (une ligne, deux colonne) alors que tu manipules des vecteurs colonnes (deux lignes, une colonne). Je tenterais donc


x0=[0.25 ; 0]
// avec un point-virgule
 

.

Par ailleurs, si tu suivais les conseils de yoshi, en présentant ton code un peu mieux (il y a un barre d'outil juste au dessus de la zone d'édition des messages qui te permet de marquer une zone comme étant du code (icone qui ressemble à <>)), on évitant d'économiser les lignes, ça serait peut être plus lisibles pour tous et tu trouveras plus facilement de l'aide.


L'ennui dans ce monde c'est que les idiots sont sûrs d'eux et les gens sensés pleins de doutes. B. Russel

Hors ligne

#4 26-04-2013 10:31:44

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 943

Re : [SCILAB] Résoudre un système d'equations differentielles

Bonjour,

Allez, après Yassine, j'en remets une couche...
Tu as écrit :
[tex]x'(t)=50(y(t)-(1/3)x(t)^3+x(t)[/tex]
Je constate qu'il manque une parenthèse fermante... Où ? a la fin, après le x(t) ?

D'autre part, je vois :
50(y(t)....
Ca, c'est de l'écriture de l'algèbre à la main : si tu voulais écrire [tex]x'(t)=50\times(y(t)-(1/3)x(t)^3+x(t)[/tex]
alors avec un langage de programmation, le x, c'est *...
Ce qui expliquerait le message d'erreur: "opérateur, virgule ou point-virgule manquant."
Même remarque pour (1/3)x(t)^3 ---> (1/3)*x(t)^3

Alors, ami, il faudrait te montrer aussi un peu plus réactif, sinon on en a au moins pour 8 jours à t'aider...

@+

[EDIT]
Une fonction doit être appelée avec un nombre d'arguments égal et (dans le même ordre) qu'elle a été définie...
Donc :
* Et dans ode (), tu l'appelles sans lui passer de paramètres... C'est normal ?
* Que veut dire t=0:0.1:10 ? Que t devra prendre les valeurs de 0 à 10 par pas de 0.1 ?
* Pourrais-tu récrire ta fonction avec la syntaxe
   function[t,x]=dx(t,x)
         .................
   endfunction
que je comprenne mieux ce que tu fais ?

http://cermics.enpc.fr/scilab_new/site/ … lab_3.html
Ou dans la console Scilab taper : help ode

Je corrige ton code comme ça :

deff('dx=fct(t,x)', 'dx(1)=50*(x(2)-(1/3)*x(1)^3+x(1)); dx(2)=-x(1)')
t0=0;x0=[0.25;0];t=0:0.1:10;
z=ode(x0,t0,t,fct)

disp(z)

Que ce soit x0=[0.25;0] suggestion de Yassine ou x0[0.25,0], il n'y a plus de message d'erreur !
J'ai différentes valeurs en sortie, à toi de tester et de voir si c'est cohérent avec ce que tu attends...

Voilà ce que j'ai en sortie (début) :
avec le ";"

column  1 to 12

   0.25    1.6743327    1.579963     1.467571     1.3287323    1.1283176    0.5686903  - 2.0098364  - 1.9423248  - 1.8703067  - 1.7930254  - 1.7090123 
    0.    - 0.1230827  - 0.2860048  - 0.4385407  - 0.5786564  - 0.7023442  - 0.794968   - 0.6839312  - 0.4862805  - 0.2956098  - 0.1123943    0.0627716


Avec la "," :

column  1 to 12

    0.25    0.    1.6743327  - 0.1230827    1.579963  - 0.2860048    1.467571  - 0.4385407    1.3287323  - 0.5786564    1.1283176  - 0.7023442

Dernière modification par yoshi (26-04-2013 12:25:44)


Arx Tarpeia Capitoli proxima...

Hors ligne

#5 27-04-2013 14:18:44

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 943

Re : [SCILAB] Résoudre un système d'equations differentielles

Bonjour,

Ton absence de réactivité n'est pas très motivante pour te répondre.
La prochaine fois, on mettra autant de temps que toi...

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#6 09-05-2013 13:56:39

Ismail
Membre
Inscription : 08-05-2013
Messages : 24

Re : [SCILAB] Résoudre un système d'equations differentielles

Bonjour tous les deux,

Le but de l'exercice est de résoudre le système d’équations différentielles suivant
x'(t)=50(y(t)-(1/3)x(t)^3+x(t)
y'(t)=-x(t)
complété par les conditions initiales x(0)=0.25, y(0)=0

On nous demande de résoudre ce système sur l’intervalle temps [0;10] puis de représenter graphiquement x en fonction de t.


Pensez vous que mon programme est bon?

Merci beaucoup pour votre réactivité et pour l'aide que vous m'apportez!


//On défini les équation de x'(t) et y'(t)
deff('dx=fct(t,x)', 'dx(1)=50*(x(2)-(1/3)*x(1)^3+x(1)); dx(2)=-x(1)')
//On initialise en donnant les conditions initiales
t0=0;x0=[0.25;0];t=0:10;
//on appelle le programme ode (solveur d'équations différentielles ordinaires)
z=ode(x0,t0,t,fct)
//x0 est le vecteur des conditions initiales
//t0 est le temps initial
//t est le vecteur de temps où on veut calculer la solution
//z est la matrice contenant la solution pour t1,t2...
disp(z)
//calcul de z
plot(z)
//affichage de z

Dernière modification par Ismail (09-05-2013 13:57:01)

Hors ligne

#7 09-05-2013 17:15:00

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 943

Re : [SCILAB] Résoudre un système d'equations differentielles

Bonsoir,

J'étais en vadrouille : je suis maintenant de retour dans mon home provisoire...
Bon ce que tu écris est exactement le programme que j'ai fini par corriger au post #4 dans l'EDIT...
Sauf que l'ami Bienvenu regrettera de ne pas avoir donné signe de vie après...
Il restait une grosse question en suspens :
x=[0.25,1]  ou x=[0.25;1]  matrice ligne ou matrice colonne ?

J'ai affiché post #4 les sorties dans les 2 cas...
A toi de voir.

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#8 10-05-2013 14:29:40

Ismail
Membre
Inscription : 08-05-2013
Messages : 24

Re : [SCILAB] Résoudre un système d'equations differentielles

Et d'après toi?

Hors ligne

#9 10-05-2013 14:58:22

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 943

Re : [SCILAB] Résoudre un système d'equations differentielles

Re,

Moi ? Comment veux-tu que je sache ?
Je vois l'exercice et ça me laisse rêveur parce que je n'arrive pas à le rattacher à une résolution "manuelle" d'équa diff...
Ce qui fait que je ne comprends strictement rien à ce qui sort, ni à ce que ça change dans la théorie de prendre un vecteur ligne ou un vecteur colonne...
Si je regarde les sorties avec matrice colonne, je les retrouve en une ligne (deux en une) avec résultats non pas différents mais intercalés en partant d'une matrice ligne..
Pas de résultats en plus ou en moins...
D'un point de vue purement esthétique, je trouve qu'en partant d'une matrice colonne, les résultats présentés sur 2 lignes, c'est pkus clair...
Sans comprendre ce que représentent tous ces nombres...

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#10 10-05-2013 15:39:28

Ismail
Membre
Inscription : 08-05-2013
Messages : 24

Re : [SCILAB] Résoudre un système d'equations differentielles

Haha haha merci en tout cas :) je pense que je vais laisser comme ça je le sens plutôt bien :) encore un exercice et mon devoir et boucle :)

Hors ligne

#11 10-05-2013 15:41:50

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 943

Re : [SCILAB] Résoudre un système d'equations differentielles

RE,

Je ne vois pas ce que j'ai pu dire de drôle...

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#12 10-05-2013 19:58:10

Ismail
Membre
Inscription : 08-05-2013
Messages : 24

Re : [SCILAB] Résoudre un système d'equations differentielles

C'était juste ta façon de présenter les choses :)

Hors ligne

Réponse rapide

Veuillez composer votre message et l'envoyer
Nom (obligatoire)

E-mail (obligatoire)

Message (obligatoire)

Programme anti-spam : Afin de lutter contre le spam, nous vous demandons de bien vouloir répondre à la question suivante. Après inscription sur le site, vous n'aurez plus à répondre à ces questions.

Quel est le résultat de l'opération suivante (donner le résultat en chiffres)?
plus quatre
Système anti-bot

Faites glisser le curseur de gauche à droite pour activer le bouton de confirmation.

Attention : Vous devez activer Javascript dans votre navigateur pour utiliser le système anti-bot.

Pied de page des forums