begin process at 2010 09 09 14:46:12
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths & Algorithmes

 > RESOLUTION NUMERIQUE D'UNE EQUATION DIFFERENTIELLE PAR LA METHODE D'EULER

RESOLUTION NUMERIQUE D'UNE EQUATION DIFFERENTIELLE PAR LA METHODE D'EULER


 Information sur la source

Note :
Aucune note
Catégorie :Maths & Algorithmes Niveau :Débutant Date de création :21/11/2004 Date de mise à jour :21/11/2004 18:24:43 Vu :11 673

Auteur : Jarod1980

Ecrire un message privé
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
La méthode d'Euler permet de résoudre numériquement des équations differentielles. Il est vrai que cette méthode est moins bonne que Runge Kutta car elle est moins précise.
Ici l'equation a resoudre est:
p''+w^2sin(p)=0
pour commencer il faut former un système autonome, c'est à dire:
on pose:
x'=y=f(x,y)
=> y'+w^2sin(x)=0 <=> y' = -w*w*sin(x)=g(x,y)

Théorème de Taylor: f(x+h)=f(x)+h*f '(x)+o(h²)
ou encore:
x(t+tau)=x(t)+tau*x'(t)+o(tau²) soit: xn+1=xn(t)+tau*xn'(t) et yn+1=yn+tau*yn'

Source

  • #include<stdio.h>
  • #include<math.h>
  • #define g 9.81
  • void main(void)
  • {
  • float tau,w,l;
  • int nit,i;
  • FILE *fichier;
  • fichier=fopen("resultat.txt","wt");
  • float x;
  • float y;
  • printf("\Entrer teta0:");
  • scanf("%f",&x);
  • y=0;
  • i=0;
  • printf("\nEntrer le nombre d'iterations:");
  • scanf("%i",&nit);
  • printf("\nEntrer le pas (valeur suggerée 0.01):");
  • scanf("%f",&tau);
  • printf("\Entrer la longueur du fil:");
  • scanf("%f",&l);
  • w=sqrt(g/l);
  • printf("\nLa pulsation w0=%f",w);
  • for(i=1;i<=nit;i++)
  • {
  • x=x+tau*y;
  • y=y+tau*((-w*w)*sin(x));
  • fprintf(fichier,"%f %f %f\n",i*tau,x,y);
  • }
  • fclose(fichier);
  • }
#include<stdio.h>
#include<math.h>
#define g 9.81

void main(void)
{
	float tau,w,l;
	int nit,i;
	FILE *fichier;
	fichier=fopen("resultat.txt","wt");
	float x;
	float y;
	printf("\Entrer teta0:");
	scanf("%f",&x);
	y=0;
	i=0;
	printf("\nEntrer le nombre d'iterations:");
	scanf("%i",&nit);
	printf("\nEntrer le pas (valeur suggerée 0.01):");
	scanf("%f",&tau);
	printf("\Entrer la longueur du fil:");
	scanf("%f",&l);
	w=sqrt(g/l);
	printf("\nLa pulsation w0=%f",w);
	for(i=1;i<=nit;i++)
	{
		x=x+tau*y;
		y=y+tau*((-w*w)*sin(x));
		fprintf(fichier,"%f %f %f\n",i*tau,x,y);
	}
	fclose(fichier);
}



 Historique

21 novembre 2004 18:24:43 :
-

 Sources du même auteur

Source avec une capture FRACTALE NEWTON-RAPHSON VERSION GLUT
Source avec Zip FAST FOURIER TRANSFORM
TRANSFORMEE DE FOURIER DISCRETE
Source avec une capture FRACTALE TREE (ARBRE) VERSION GLUT
Source avec une capture COURBE DE GUMOWSKI & MIRA VERSION GLUT

 Sources de la même categorie

Source avec Zip CALCUL DU DETERMINANT par arfang03
Source avec Zip Source avec une capture EULER AURAIT 303 ANS par pgl10
Source avec Zip Source avec une capture FORMULES POUR NOMBRES PREMIERS par pgl10
Source avec Zip Source avec une capture TRAITEMENT DE L'EQUATION D'UNE CONIQUE AVEC UN GRAMMAIRE par kinkek
Source avec Zip BELLMAN:LA VALEUR DU PLUS COURT CHEMIN ET LE PLUS COURT CHEM... par Perace

Commentaires et avis

Commentaire de vecchio56 le 21/11/2004 18:43:01 administrateur CS

Je crois que l'image n'est pas une capture de ton programme.  Tu nous fais de fausses joies...

Commentaire de Jarod1980 le 21/11/2004 19:54:45

vecchio56, il faut ouvrir le fichier resultat.txt qui a été généré par le programme avec un tableur de type excel. Ensuite il suffit de tracer les courbes.

Commentaire de PascalCmoa le 22/04/2005 14:56:23

Juste une question, de quelle méthode d'Euler t'es tu servi. La méthode implicite ou explicite. Car il existe une différence assez flagrante entre les dux méthode. L'une anticipe sur les résultats à venir, alors que l'autre utilise les résultats précédent pour calculer son prochain résultat.
De plus, Euler n'est qu'une représentation approchée d'une résoltion d'équa-diff.

Commentaire de lumierk le 23/10/2007 15:05:46

j'ai bien apprécier votre resonnement , mais j'ai un pétit problème dans la compilation , si vous pouvez me dire le logiciel utilisé pour la compilation,...
envoyer le à l'e-mail: lumierk@yahoo.fr
merci..

Commentaire de Jarod1980 le 24/10/2007 12:57:33

Salut,
J'ai utilisé devcpp pour compiler mon code. Quelles sont tes problèmes lors de la compilation?

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Septembre 2010
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
27282930   

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,154 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales