Page 1 sur 1

Récupération de coordonnées

Publié : dim. mai 10, 2020 7:19 pm
par alusipdranreb
Bonsoir, j'ai besoin de récupérer sous forme de listes de tableur ( Excel ou autre ) les coordonnées des points d'une courbe 2D solution de l'équation différentielle suivante, dont on ne connaît pas de solution analytique :

Graph; plotode((-t*y(t))/(2+sin(t))+(exp(-t))*cos(t),[t=-pi/2...3*pi/2,y],[0,0],tstep=0.1, plan, affichage=bleu);

Comment faire? Cela doit être possible…
Amicalement.
alusipdranreb

Re: Récupération de coordonnées

Publié : lun. mai 11, 2020 5:40 pm
par frederic han
Bonjour,
je ne sais pas s'il y a plus pratique mais, si vous rangez ce dessin dans une variable

Code : Tout sélectionner

A:=plotode((-t*y(t))/(2+sin(t))+(exp(-t))*cos(t),[t=-pi/2...3*pi/2,y],[0,0],tstep=0.1, plan, affichage=bleu);
alors A[1] contient la liste des points sous forme de nombres complexes.
donc ensuite,

Code : Tout sélectionner

F:=fopen("tutu.csv")
for j in A[1]:
    fprint(F,Unquoted, re(j),",",im(j),"\n")
fclose(F)    
cela crée un .csv avec vos points sur les deux premieres colonnes.

Frederic

Re: Récupération de coordonnées

Publié : mar. mai 12, 2020 9:30 am
par alusipdranreb
Bonjour Frédéric,
Merci pour la réponse, mais il y a un problème : j'obtiens un message d'erreur das la deuxième ligne de la boucle for.

:2: syntax error, unexpected T_FOR line 2 col 1 at for

:4: syntax error, unexpected T_UNARY_OP line 4 col 1 at fclose

Warning, input parsed as a constant function undef applied to F
Syntaxe en mode compatible xcas
Erreur grammaticale ligne 2 à for


of([undef])

Pouvez-vous regarder cela?
Amicalement.
Bernard

Re: Récupération de coordonnées

Publié : mar. mai 12, 2020 9:51 am
par parisse
Il faut ajouter un # seul sur une ligne avant le code de Frederic pour que la syntaxe Python soit reconnue. Ou bien utiliser la syntaxe Xcas:

Code : Tout sélectionner

F:=fopen("tutu.csv");
for j in A[1] do
    fprint(F,Unquoted, re(j),",",im(j),"\n");
od;
fclose(F)    

Re: Récupération de coordonnées

Publié : mar. mai 12, 2020 12:24 pm
par alusipdranreb
Bonjour B.Parisse,
Merci pour votre réponse.
Je n'obtiens pas le résultat escompté.
Xcas utlise sans doute RK4, ou 5 ou 45, à pas variable ou constant. Une liste de coordonnées de points est donc calculée et est exploitée pour tracer la courbe solution numérique de l'équation différentielle.
C'est cette liste de coordonnées que je voudrais obtenir. Elle serait utilisée dans un tableur du type Excel.
Amicalement.
Bernard

Re: Récupération de coordonnées

Publié : jeu. mai 14, 2020 6:42 am
par parisse
Bon, je viens de retester, il y a une erreur dans la commande plotode, qui devrait etre

Code : Tout sélectionner

A:=plotode((-t*y)/(2+sin(t))+(exp(-t))*cos(t),[t=-pi/2...3*pi/2,y],[0,0],tstep=0.1, plan, affichage=bleu);
mais ensuite la commande

Code : Tout sélectionner

F:=fopen("tutu.csv");
for j in A[1] do
    fprint(F,Unquoted, re(j),",",im(j),"\n");
od;
fclose(F)    
ouvre le fichier tutu.csv et y place sur une ligne la valeur de t et la valeur de y correspondante, separes par une virgule.

Code : Tout sélectionner

-1.57079632679,-0.87010850126
-1.55068637544,-0.89687945669
-1.52466150826,-0.929402353736
-1.49828332012,-0.959922009457
-1.47152737821,-0.988362481686
-1.44436527495,-1.01464122439
-1.41676516164,-1.03866725508
-1.38869136451,-1.06034037627
-1.36010316915,-1.07955079613
-1.33095411857,-1.09617788003
-1.30119268206,-1.1100880613
...
Est-ce que le fichier tutu.csv est bien cree sur votre ordinateur? (Attention, ceci ne fonctionne pas avec Xcas pour Firefox, seulement avec Xcas sur PC).
Si le format n'est pas lisible par votre tableur, il faut modifier la commande fprint, par exemple rajouter un ";" en fin de ligne, etc.
La methode de resolution est une methode de Runge-Kutta d'ordre plus grand que RK4, c'est la methode de Prince-Dormand (https://en.wikipedia.org/wiki/Dormand%E ... nce_method)

Re: Récupération de coordonnées

Publié : sam. mai 16, 2020 3:47 am
par alusipdranreb
Bonjour Bernard Parisse,
Le problème est réglé.
Grand-merci.
Xcas permet-il de traiter numériquement des ED du deuxième ordre directement, comme le fait Mathematica?
Et 3ème, 4ème ordre? ( Propriétés des matériaux, vibrations ).
Amicalement.
Bernard

Re: Récupération de coordonnées

Publié : sam. mai 16, 2020 7:05 am
par parisse
Non, mais on peut les reecrire comme des systemes du 1er ordre.

Re: Récupération de coordonnées

Publié : sam. mai 16, 2020 11:48 am
par alusipdranreb
Tout-à-fait.
Je vais m'y employer.
3ème et 4ème ordre numérique, il doit y avoir de la documentation là-dessus rue d'Ulm.
Je n'ai encore rien trouvé de vraiment bien.
En tous cas, mon problème est résolu.
Merci.
Bernard