begin process at 2012 05 27 16:05:51
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths & Algorithmes

 > EQUIPOTENTIELS ET LIGNES DE CHAMPS

EQUIPOTENTIELS ET LIGNES DE CHAMPS


 Information sur la source

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Maths & Algorithmes Classé sous :équipotentiel, distribution, gradient, potentiel, champs Niveau :Débutant Date de création :20/12/2005 Vu / téléchargé :12 833 / 549

Auteur : JCDjcd

Ecrire un message privé
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (24)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
Voici un programme qui affiche les lignes de champs (en vert) et les lignes d'equipotentiel (en rouge)
d'une distribution de particules chargees (en bleu)

Source

  • * L'algorithme pour tracer les equipotentiels est le suivant :
  • on utilise le gradient pour ce deplacer "grossierement", en effet le gradient
  • est perpendiculaire a la ligne de niveau (l'equipotentiel), donc on se deplace un peu
  • perpendiculairement au gradient, ensuite il faut se remettre sur le bon potentiel
  • car on s'en est un peu ecarter a cause du deplacement, on revenir au bon potentiel initial
  • on utile la methode de Newton pour avoir la zero d'une fonction, donc on va encore de deplacer
  • mais cette fois-ci paralellement au gradient, on parametre le potentiel sur cette droite, on
  • obtient une fonction dependante de t : f(t)
  • on cherche a trouver t proche de 0 qui verifie f(t)=V0 avec V0 le potentiel initial, et donc
  • grace a l'algorithme de Newton, en 10 iterations on bien revenu sur le bon potentiel.
  • On effectue cette "remise au bon potentiel" pour eviter les cumules d'erreurs.
  • * L'algorithme pour tracer les lignes de champs est le suivant :
  • on simule le deplacement d'une petite particule dans ce champs grace aux equations differentielles,
  • il suffit donc de resoudre les equations avec une methode de Runge-Kutta. (On suppose que la particule
  • subit une forte force de frottement pour negliger les effets de la vitesse)
* L'algorithme pour tracer les equipotentiels est le suivant :
on utilise le gradient pour ce deplacer "grossierement", en effet le gradient
est perpendiculaire a la ligne de niveau (l'equipotentiel), donc on se deplace un peu
perpendiculairement au gradient, ensuite il faut se remettre sur le bon potentiel
car on s'en est un peu ecarter a cause du deplacement, on revenir au bon potentiel initial
on utile la methode de Newton pour avoir la zero d'une fonction, donc on va encore de deplacer
mais cette fois-ci paralellement au gradient, on parametre le potentiel sur cette droite, on
obtient une fonction dependante de t : f(t)
on cherche a trouver t proche de 0 qui verifie f(t)=V0 avec V0 le potentiel initial, et donc
grace a l'algorithme de Newton, en 10 iterations on bien revenu sur le bon potentiel.
On effectue cette "remise au bon potentiel" pour eviter les cumules d'erreurs.

* L'algorithme pour tracer les lignes de champs est le suivant :
on simule le deplacement d'une petite particule dans ce champs grace aux equations differentielles,
il suffit donc de resoudre les equations avec une methode de Runge-Kutta. (On suppose que la particule
subit une forte force de frottement pour negliger les effets de la vitesse)


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture COLORATION SYNTAXIQUE
Source avec Zip Source avec une capture ORBITES DES SATELLITES GPS
Source avec Zip Source avec une capture DESSIN D'ARBRES
Source avec Zip Source avec une capture PROGRAMMATION LINEAIRE
Source avec Zip EXTENSION DE CORPS (MATH)

 Sources de la même categorie

Source avec Zip UN EXAMPLE D'APPLICATION EN CUDA DE L'ALGORITHME DE SCAN POU... par oguzaras
Source avec Zip Source avec une capture CHIFFREMENT DE VIGENERE par lajouad
Source avec Zip Source avec une capture ANALYSE SYNTAXIQUE par lajouad
Source avec Zip Source avec une capture STRUCTURE D'UNE MATRICE PAR LES LISTE LINÉAIRE (NON CONTUGUS... par benzarabel
Source avec Zip Source avec une capture DESSINER UNE ARBRE BINAIRE( MODE CONSOLE): par benzarabel

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture OPENCL : CALCUL ET AFFICHAGE DU GRADIENT COULEUR D'UNE WEBCA... par ciddiju
Source avec Zip BINFORGE (REPOSITORY SYSTEM) par psykocrash
Source avec Zip Source avec une capture SIMULATION D'UN REBOND SUR UN MUR par JCDjcd
Source avec Zip Source avec une capture VIDEOS DE FRACTALES DE MANDELBROT par JCDjcd
Source avec Zip RESEAU DE NEURONE ET APPRENTISSAGE par lebojojo

Commentaires et avis

Commentaire de cosmobob le 20/12/2005 23:27:58

salut
t'as l'air de t'éclater en spé, jme trompe? :p

Commentaire de JCDjcd le 20/12/2005 23:31:20

oui beaucoup !

Commentaire de luhtor le 21/12/2005 10:23:01

Maple c'est de la merde hein ? ^^

Commentaire de JCDjcd le 21/12/2005 11:05:34

non pas du tout pourquoi ?

Commentaire de luhtor le 21/12/2005 15:16:45

Ah peut etre que avais des betes de course en PC. :) pour faire ce genre de calcul avec maple (ce qu'on fait en spé), faut etre courageux et patient.

Commentaire de Galmiza le 21/12/2005 18:08:57

Sympa  T'es dans quelle filière ?

Commentaire de Kirua le 21/12/2005 18:19:14

Programme adopté :) Joli l'utilisation de Newton-Raphson pour rattraper les erreurs, c'est ingénieux :).

Tu peux expliciter pour ta force de frottement importante? En gros, tu veux juste dire qu'on déplace la particule dans le champ tout tout doucement pour éviter des erreurs en fin de course,; c'est ça non?

Je suis justement dans le chapitre d'électricité et magnétisme, je vais m'amuser un peu avec ton logiciel, merci :)

Commentaire de Kirua le 21/12/2005 18:35:06

le fichier math.c c'est de toi? les techniques de multiplication de polynômes par les racines n ièmes de l'unité etc... c'est assez poussé comme bibli de fonctions!

tu as quoi comme cours? c'est des math appliquées?

Commentaire de JCDjcd le 21/12/2005 18:37:07

effectivement il faut que le mouvement se fasse tout doucement, car sinon la vitesse prend une vitesse non-negligeable, et la trajectoire est une droite, il faut que la particule puisse suivre les lignes de champs.

Pour voir l'utilite, il suffit d'enlever dans le programme les lignes suivants, et voir le resultat a l'ecran :
        // frottement infini
        distribution.rk.y->coord[2] = 0.;
        distribution.rk.y->coord[3] = 0.;

Commentaire de JCDjcd le 21/12/2005 18:41:19

math.c et .h c'est ma librairie de fonctions mathematiques,
il y a tous ce dont j'ai eu besoin jusqu'a ce jour dans les programmes, des que j'en ai besoin je la complete.

Commentaire de Kirua le 21/12/2005 18:58:42

Je pense qu'il y a une faute dans math.c un peu après la ligne 2618, regarde:

//-------------------------------------------------
// les matrices
//-------------------------------------------------
#if DBG_LIB_MATH_MATRIX == DBG_ON
void _AssertMatrix(P_MATRIX p,BOOL bCheckVals)
{

AssertPointer(p);
AssertMalloc(p);
Assert(p->nx > 0);
Assert(p->ny > 0);

if(bCheckVals)
  {
  int i,j;

  for(j=0;i<p->ny;j++)
    {
    for(i=0;i<p->nx;i++)
      {
      AssertDouble(p->vals[p->nx*j + i]);
      }
    }
  }

PopErrorMacro();
} // _AssertMatrix()
#endif // DBG_LIB_MATH_MATRIX == DBG_ON

"  for(j=0;i<p->ny;j++) "

ça devrait pas être j < p->ny ? (au lieu de i < p->ny).

enfin bon ^^ c'est quand même assez impressionnant comme rassemblement de choses. les FFT, tu les as abordées seul ou en cours?

Commentaire de JCDjcd le 21/12/2005 20:36:46

merci pour l'erreur.
pour les FFTs, j'ai vu ca tout seul.

Commentaire de dletozeun le 30/12/2005 21:43:54

lol! Moi aussi je suis sur l'electromagnetisme en ce moment!
Pas mal du tout ce programme ( ca claque sur les screenshots) je vais regarder un peu le code  plus tard...

Mais dit moi t'a l'air d'etre une star d'apres ce que dit kirua! T'es en quelle filiere et tu vise quoi comme ecole?

Commentaire de JCDjcd le 31/12/2005 11:54:06

filiere MP, et pour ce qui est du reste, ca reste personel...

Commentaire de mimajeur le 24/07/2006 23:30:02

bonjour a tous,j'ai compile sous dev c++,et il m'affiche l'erreur suivante :
undefinedreference to 'InitCommonControls@0'
je suis debutant merci de me repodre simplement sur la definition de l'erreur. Bravo pour tes programmes JCDjcd c'est ce genre de programmes que je veux faire et je voudrais savoir si on peut les compiler sous dev.

Commentaire de JCDjcd le 25/07/2006 10:25:22

tu vas dans les options du projet, dans l'onglet "link", et tu ajoutes comctl32.lib

Commentaire de mimajeur le 30/07/2006 13:47:15

qu'est ce qu'il veut dire quand il marque ca:
undefinedreference to 'InitCommonControls@0'
undefinedreference to -finite(double)
j'ai rajoute comctl32.lib
merci

Commentaire de JCDjcd le 30/07/2006 14:11:05

_infinit est dans <float.h>
verifie que tu as bien ajoute comctl32.lib au bon endroit

Commentaire de mimajeur le 30/07/2006 14:39:18

j'ai ajoute comctl32.lib je fais :
projet option, parametre et dans la case linker je l'ecris
a quoi cela sert ?

Commentaire de mimajeur le 30/07/2006 14:48:10

je regarde dans tous les fichiers je ne trouve pas initcommoncontrol@0
ca fait à peu pres six mois que je programme en autodidacte, les codes ne me posent pas trop de probleme de comprehension mais c'est sur ce genre d'erreurs que je bute.
une explication serait la bienvenue .

Commentaire de orcima le 12/01/2010 10:09:33

Bonjour,

Je ne comprend pas pourquoi il y a une dissymétrie des lignes de champs puisque les sources sont symétriques

Commentaire de JCDjcd le 12/01/2010 10:26:40

globalement c'est bien symetrique
il se peut qu'il y ait quelques petites erreurs de calcul numerique

Commentaire de orcima le 12/01/2010 11:19:07

Merci de votre réponse

Dans la première capture d'écran on voit nettement que la plus grande boucle fermée sur le potentiel de gauche est différente de celle de droite
Cela vient il de la correction d'erreur ?

Commentaire de orcima le 12/01/2010 11:26:25

Je pense que c'est le pas qui fait que les équipotentiels de gauche sont différent de ceux de droite.
L'idéal serait d'indiquer, comme dans les courbes de niveaux, la valeur des équipotentiels de chaque courbe

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

MAJ d'une base de données direct [ par Ginyu ] Salut,J'ai crée un projet en MFC,Single Document File,Base de données en Snapshot.J'ai ma fenetre RecordView avec mes champs et tout mais quand je mod notion de champs dans un programme.... [ par cabarrus ] salut j'ai des difficulté à comprendre la notion de champs dans un programme ansi que l'utilité des déclarations de champs...sin on peu me faire un pe Socket Raw [ par tquille ] Salut,J'utilise les socket en mode Raw et j'inclus l'entete IP à l'emission grace à la ligne suivante :setsockopt(socket,IPPROTO_IP,IP_HDRINCL,(char * Parsage de chaine en javascript [ par syl2 ] Bonjour,j'essaye de réaliser une fonction qui va me tester la validité de mon champs nom dans un formulaire HTML. C'est à dire que dans ce champs, je limite affichage console ??? [ par helena123 ] Bonjour , je travaille avec des champs de 32896 elements (des bits en fait) mais lorsque je demande de les afficher dans une console les uns derriere fread / fwrite [ par helena123 ] Coucou les loulous,je ne comprends pas :j ecris dans un fichier un champs de bits et lorsque je veux le relire et l afficher a l ecran, il me l ecrit lecture fichier binaire [ par helena123 ] Salut les loulous,j utilise cette "structure" de champs de bits que l on peut trouver dans la librairie et qui est tres facile a utiliser mais pour la listebox.Urgent [ par melaaddali ] Je travaille avec visual c++.J'ai crée une liste composée de plusieurs champs puis un listebox..comment faire pour que le champs « nom » de ma liste s SOS : Impossible d'acceder a certains champs ! [ par haccounsoft ] Salut à tous et merci d'avance a ceux qui tenteront de m'aider.Mon probleme n'est pas un probleme lié directement au C++, il concerne les tableaux d'o SVP - ULTRA URGENT - Prob Distribution prog Win98 [ par marcel6566 ] Bonjour,J'ai créé un programme d'aide à la lecture pour 4 classes de CP dans une école primaire. Mon programme est réalisé sous XP avec VC++ version 6


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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,045 sec (4)

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