Rançon de Kinder-Surprise à qui trouvera le bug...
Par Nicolas le dimanche 15 novembre 2009, 09h39 - Mathématiques - Lien permanent
EDIT : Problème réglé. J'ai donc mit hors ligne les fichiers de mon projet étant donné qu'il n'est pas terminé. Je les remettrai sans doute en ligne plu tard dans l'année sous licence Creatives Commons.
Bonjour à tous les mathématiciens qui traineront dans le coin ! I need you !
En effet, je travaille, pour mon projet, sur l'approximation de la solution de l'équation de transport grâce aux différences finies. Cinq doivent être implémentées dans Matlab : Upwind, Lax-Wendroff, LaxFrierichs, Beam-Warming et Leap-frog. Voici les données les concernant :

Toutes ces approximations fonctionnent parfaitement sous Matlab SAUF celle de Leap-frog qui est toujours décalé sur la droite, quoi que je fasse !
Voilà pourquoi je promets la rançon d'une boite de Kinder-Surprise à la première personne qui trouvera le bug caché dans mon programme.
Pour ce faire, voilà le fichier zip de mes programmes Matlab :
progs-matlab.zip
Celui concernant LeapFrog s'appelant solleap.m. Ces programmes sont largements commentés, vous devriez vous y retrouver.
PS : Je rappelle que le problème avec cette méthode est qu'elle est toujours décalée sur la droite ou sur la gauche quoique je fasse alors qu'elle devrait être bien meilleure que cela (ordre 2 en temps et en espace). Du coup, cela fausse le graphe de l'erreur L2 et l'approximation de l'ordre (pente de la droite de l'erreur en coordonnées logarithmiques)... Merci d'avance pour votre aide !
Commentaires
Après une très longue recherche, j'ai... rien trouvé ! (En même temps, c'est moins facile sans matlab).
Ya quand même un truc que je comprend pas, c'est la ligne :
vn(1)=vm(1)-c*(v0(2)-v0(Nx));
Qu'est ce qu'il fait ici ce Nx ? (Bon, j'avoue, j'ai du mal avec les notations vn, v0 et vm qui veulent dire u^n+1, u^n et u^n-1...)
Si j'ai plus de courage, je regarderai ça mercredi prochain, avec le vrai logiciel !
(Ya un demi-Kinder pour ceux qui ont cherché ?...)
Ok pour le demi-Kinder pour te remercier de ta recherche
En fait, pour cette ligne on utilise la condition limite qui est que la solution en 0 est celle en 1=Nx*Dx ici...
On fait cela parce que si on demandait à Matlab v0(0) il gueulerait comme jamais auparavant...
Ouep c'est vrai ke niveau nommage j'ai été un peu (beaucoup?) boulet... Mais bon...
Merci encore !
moi aussi j'ai cherché !! j'aurais mon demi-kinder ?? (tu peux pas dire nan :P )
Hum... Donne-moi une preuve que t'as cherché alors :p Y'a bien un truc que t'as du trouver bizarre ou que t'as peut-être pas compris... ?
eh bien, je dois dire que le graphe de l'erreur L2 et l'approximation de l'ordre m'ont pour le moins déconcertée... cela m'a beaucoup freiné dans la recherche de l'erreur.
Ah oui, tu parles de cette courbe en cloche pour Leap-Frog ?
quand n tend vers l'infini oui ...
C'est quand même cloche car toutes les courbes tracées par Matlab sont des segments de droites :p
une courbe en cloche très aplatie n'est-elle pas une droite ?? la voilà la vraie question!!
lol moi je soutiens la thèse de Laurie!
(tu partageras ton demi-kinder avec moi hein!!)
bon bah niko la dessus c'est pas moi qui vais t'aider, matlab et moi ça fait .....mal^^
bon courage en tout cas!!
L'offre de rançon de Kinder-surprise est officiellement close.
@El jj : Bien entendu, je sais que je t'en dois un... Mais j'ai du manger ceux de la semaine dernière car celui que je t'avais gardé s'était émietté... Donc je serais plus malin la semaine prochaine, je ne l'amènerais pas tous les jours...
Erreur démasquée... J'ai bien mérité ma propre boite de Kinder Surprise... Merci à ceux qui m'ont soutenu ou aidé dans cette terrible tâche... J'en ai la larme à l'oeil... Ou pas
Bonne fin de week-end à toutes et tous !