probleme 2

probleme 2

par Marie-Rose Boulos,
Nombre de réponses : 1

Bonjour, 

j'ai beaucoup de difficulté à atteindre des valeurs raisonable avec mon code. 

 

j'ai utilise une valeur de départ de D=10^(-9) 

et j'ai pris une valeur de rayon de 0.1cm

 jutilise une différence finie centrée dans une boucle for  et ma boucle for se retrouve dans une while où j'impose ma condition d'arret.   Ma boucle n'arrete jamais.  J'ai réalisé que que mais valeur aux extrémité ne change pas. c'est à dire que mon a  C(0) et C(end)  ne changerais pas .  qui était respectivement 1 et 0

 

J'ai donc utilisé une discritisation arrière pour pouvoir avoir une valeur a C(end)  mais lorsque j'ajoute une discritisation avant pour avoir ma valeur C(0)  mon code ne fonction plus adéquoitement. 

 

est-ce que je doit avoir une discritisation centre arrière et avant comme je le pensait ou je devrais modifier  ma démarche? 

 

merci beaucoup! 

En réponse à Marie-Rose Boulos

Re: probleme 2

par Minh Dung Nguyen,

Pour que tes valeurs aux extrémités changent ou du moins qu'elles soient prisent en compte dans le calcul, il faut que tu leur impose des conditions frontières. Dans les exercices précédents, ils étaient données, mais dans celui-ci il faut qu'on les trouvent nous même en étudiant le problème. On nous a suggéré de prendre des conditions frontières de type neuman pour ce problème plus précisément de flux nuls. Aussi 0.1 cm comme rayon de ton domain semble un peu trop petit. Pour ton problème de code vérifie si tu as ajouté les lignes de codes te permettant de calculer C(0) et C(end) après le calcul des autres valeurs. (si tu utilise une méthode explicite). Si c'est une méthode implicite, assure toi que ta nouvelle matrice reste carré.