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).

Répondre

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)?
soixante dix-neuf plus quatre-vingt deux
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.

Retour

Résumé de la discussion (messages les plus récents en premier)

Ismail
10-05-2013 19:58:10

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

yoshi
10-05-2013 15:41:50

RE,

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

@+

Ismail
10-05-2013 15:39:28

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 :)

yoshi
10-05-2013 14:58:22

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...

@+

Ismail
10-05-2013 14:29:40

Et d'après toi?

yoshi
09-05-2013 17:15:00

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.

@+

Ismail
09-05-2013 13:56:39

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

yoshi
27-04-2013 14:18:44

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...

@+

yoshi
26-04-2013 10:31:44

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

Yassine
26-04-2013 10:21:54

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.

yoshi
24-04-2013 16:03:43

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 -

BIENVENU MABIKA
24-04-2013 13:47:00

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

Pied de page des forums