Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

Répondre

Veuillez composer votre message et l'envoyer
Nom (obligatoire)

E-mail (obligatoire)

Message (obligatoire)

Programme anti-spam : Afin de lutter contre le spam, nous vous demandons de bien vouloir répondre à la question suivante. Après inscription sur le site, vous n'aurez plus à répondre à ces questions.

Quel est le résultat de l'opération suivante (donner le résultat en chiffres)?
soixante treize plus quinze
Système anti-bot

Faites glisser le curseur de gauche à droite pour activer le bouton de confirmation.

Attention : Vous devez activer Javascript dans votre navigateur pour utiliser le système anti-bot.

Retour

Résumé de la discussion (messages les plus récents en premier)

yoshi
16-05-2013 15:06:14

Bonjour,

J'ai ajouté une _ de chaque côté de @ : cherches-tu vraiment à te faire spammer ?
Il existe des robots spécialisés dans la collecte des adresses en clair sur les forums !
Les enlever pour l'envoi d'un message...

@+

MathRack
16-05-2013 12:32:52

Bien entendu : mathrack.bibmath_@_gmail.com

Cordialement,
MathRack

math@
16-05-2013 10:58:24

Bonjour MathRack,

S'il vous plait pourrais-je avoir votre adresse mail pour que je vous envoie ce que j'ai fait.

Cordialement
math@

MathRack
16-05-2013 09:11:45

Autant pisser dans un violon (et pas sur un vieux lion)... Encore une fois :

1 - Le nombre de points dans l'espace physique est [tex]n+1[/tex] et pas [tex]2n+2[/tex].

2 - Donc le [tex]dx[/tex] que tu utilises est faux.

3 - Le tableau U qui contient la condition initiale doit être affecté en 2 parties, d'abord [tex]\zeta_0[/tex] dans U(1:n+1) puis [tex]u_0[/tex] dans U(n+2:2n+2)

4 - Je te conseille enfin de chercher les solutions de l'EDP du post #13. En choisir une en cos & sin. Adapter [tex]\alpha[/tex], xdeb et xfin dans tes paramètres pour que la solution analytique soit solution numérique. Utiliser le [tex]\zeta[/tex] analytique comme condition initiale [tex]\zeta_0[/tex] avec [tex]u_0=0[/tex]. Et enfin calculer quelques pas de temps pour voir si la solution est bien stationnaire.

Cordialement,
MathRack

math@
16-05-2013 08:55:40
yoshi a écrit :

Bonjour,

@Math
Puis-je savoir en quoi
exp(-(x-l/2))  !!!
est différent de ce que j'avais corrigé en
[tex]e^{-\left(x-\frac l 2\right)}[/tex]
et que tu as de nouveau rétabli dans sa forme initiale ????

Merci.

   Yoshi
Modérateur

Bonjour Yoshi,

Il y a pas de différence entre les deux écritures mais j'ai écrit exp(-(x-l/2)) pour poser une question sur la périodicité de la gaussienne

math@

MathRack
15-05-2013 15:55:40
math@ a écrit :

oui ma condition initiale est bien une gaussienne (c'est le prof qui a imposé cette condition)

Je te confirme que la condition initiale suivante :

dx = l*1.D0/(2*n+1)
...
do i = 1, 2*n+2
  abcs = i * dx - l/2.D0
  U(i) = 1.D0 / sqrt(2.D0*pi) / sigma * exp(-.5d0 * abcs**2 / sigma**2)
end do

Te donnes un tableau de taille 2n+2 qui est l'enveloppe d'une gaussienne sur [tex][-0.5L,0.5L][/tex].

Mais il faut faire attention car le tableau U est la condition initiale pour les variables [tex]\zeta[/tex] et [tex]u[/tex]. La première moitié du tableau (1 à n+1) correspond à [tex]\zeta[/tex] et la deuxième moitié (n+2 à 2n+2) à [tex]u[/tex]. En utilisant cette condition initiale, tes variables [tex]\zeta[/tex] et [tex]u[/tex] ne sont pas périodiques!!! Je pense que c'est un peu maladroit d'appeler ta condition initiale U car c'est la condition initiale pour tes 2 variables...

yoshi
15-05-2013 15:37:46

Bonjour,

@Math
Puis-je savoir en quoi
exp(-(x-l/2))  !!!
est différent de ce que j'avais corrigé en
[tex]e^{-\left(x-\frac l 2\right)}[/tex]
et que tu as de nouveau rétabli dans sa forme initiale ????

Merci.

   Yoshi
Modérateur

math@
15-05-2013 15:11:16

oui ma condition initiale est bien une gaussienne (c'est le prof qui a imposé cette condition)

MathRack
15-05-2013 14:52:06

Remonte au post #7 : il faut remplacer [tex]i \times dx[/tex] par [tex](i-1) \times dx[/tex].
Tu as [tex](i-1) \times dx \in [0,L] [/tex] et donc [tex]abcs \in [- 0.5 L , 0.5 L][/tex]. Comme ta gaussienne est en [tex]abcs^2[/tex], elle est bien périodique.

Pour avoir la condition initiale u=0 et [tex]\zeta=cos(...)[/tex] dans la variable X0 qui est de taille 2n+2 :

! zeta0 = cos(...)
do i = 1, n+1
  X0(i)=cos(...)
enddo
! u0 = 0
X0(n+2:2*n+2)=0

Es-tu certaine de ta condition initiale en gaussienne? Tu utilises :

dx = l*1.D0/(2*n+1)
...
do i = 1, 2*n+2
  abcs = i * dx - l/2.D0
  U(i) = 1.D0 / sqrt(2.D0*pi) / sigma * exp(-.5d0 * abcs**2 / sigma**2)
end do

Pour avoir une condition initiale gaussienne sur les variables u et zeta, il faut remplacer par:

dx = 1.D0 * l / n
...
do i = 1, n+1
  abcs = (i-1) * dx - l/2.D0
  ! zeta gaussienne
  U(i) = 1.D0 / sqrt(2.D0*pi) / sigma * exp(-.5d0 * abcs**2 / sigma**2)
  ! u gaussienne
  U(n+1+i) = 1.D0 / sqrt(2.D0*pi) / sigma * exp(-.5d0 * abcs**2 / sigma**2)
end do

Tu dois forcément mettre une condition initiale sur u ET sur zeta...

math@
15-05-2013 14:15:31

pour le 1er point, oui je souhaite que mon abcs couvre l'intervalle [xbed,xfin] et qu'elle soit centrée au milieu de cet intervalle.

et pour la gaussienne dans mon cas elle n'est pas paire (j'ai exp(-(x-l/2))!!!

Pour la condition initiale je peux pas mettre que u=0? car j'ai un système de 2 équations et 2 inconnus W([tex]\zeta[/tex],u)!

MathRack
15-05-2013 13:08:11

Re,

1 - Dans le programme principal, tu as :
abcs = i * dx - l/2.D0
Tu souhaites donc que la variable abcs couvre un intervalle qui commence après xdeb et termine après xfin?

2 - La gaussienne utilisée comme condition initiale c'est un peu embêtant :
      - la fonction est bien périodique, même valeur en x=-5 et x=5 car elle est paire
      - la dérivée première n'est pas périodique car elle est impaire
Donc la condition initiale est continue, dérivable mais la dérivée première n'est pas continue. Et dans l'EDP, il y a des dérivées 2 & 3...

3 - Si on pose u=0, la première équation du système montre que [tex]\zeta[/tex] ne va pas dépendre du temps. La deuxième équation du système donne :
[tex]0 = g \partial_x \left( \zeta - \frac{h^2}{3}\left( \alpha - 1 \right) \partial_{xx} \zeta\right)[/tex]

On trouve [tex]\zeta = constante[/tex] si [tex]\alpha=1[/tex]. Si non, en fonction du signe de [tex]\alpha-1[/tex], on trouve des solutions en cos & sin ou cosh & sinh.

Je te conseille d'essayer une condition initiale avec u=0 et un [tex]\zeta[/tex] en cos & sin. Normalement, la solution doit rester constante (aux erreur d'arrondi près). Si ça marche le bloc supérieur gauche des matrices est bien codé. Attention : ton programme doit adapter la longueur du domaine numérique à la période des solutions en cos & sin.

MathRack

math@
15-05-2013 11:15:19

Bonjour MathRack,

1 - j'ai noté X les varibles au pas de temps k+1 et Y les variable au pas de temps K.
2 - Les conditions aux limites sont des conditions périodiques et la conditions initiale c'est une gaussienne.
3 - Pour le schéma j'ai utilisé Crank Niclson en  temps et des schéma centrés en espace.
4 - j'ai utilisé les coeffs a1,a2,b1,b2 ... car les coefficients a,b,d ont une syntaxe énorme est j'avais peur de me tromper c'est pour cette raison que j'ai utilisé  a1,a2 ...
5 - je me suis trompé dans la matrice et voilà la bonne matrice
[tex]
\left(\begin{array}{c|c}
   
    \begin{matrix}
1 &0 &0 &0 &0 &\cdots &0\\
0 &1&0 &0  &0 &\cdots &0 \\
0 &0 &1 &0 &0 &\cdots &0\\
\vdots &\ddots &\ddots &\vdots\\
\vdots &\ddots &\ddots &\vdots\\
0 &0 &0 &\cdots &0 &1 &0 \\
0 &0 &0 &0 &\cdots &0 &1

\end{matrix}

&\begin{matrix}
0 &-b &a &0 &\cdots &-a &b\\
b &0 &-b &a  &0 &\cdots &-a\\
-a &b &0 &-b &a &0 &\cdots\\
\vdots &\ddots &\ddots &\vdots\\
\vdots &\ddots &\ddots &\vdots\\
a &0 &\cdots &-a &b &0 &-b\\
-b &a &0 &\cdots &-a &b &0


\end{matrix}\\

\hline

\begin{matrix}
0 &-e &0 &0 &\cdots &0 &e\\
e &0 &-e &0  &0 &\cdots &0\\
0 &e &0 &-e &0 &0 &\cdots\\
\vdots &\ddots &\ddots &\vdots\\
\vdots &\ddots &\ddots &\vdots\\
0 &0 &\cdots &0 &e &0 &-e\\
-e &0 &0 &\cdots &0 &e &0

\end{matrix}
&
\begin{matrix}
d &-c &0 &0 &0 &\cdots &-c\\
-c &d &-c &0  &0 &0 &\cdots\\
0 &-c &d &-c &0 &\cdots &0\\
\vdots &\ddots &\ddots &\vdots\\
\vdots &\ddots &\ddots &\vdots\\
0 &0 &0 &\cdots &-c &d &-c \\
-c &0 &0 &0 &\cdots &-c &d

\end{matrix}
 
\end{array}\right)
[/tex]
6 - 7 - J'ai pas calculé la solution analytique car l'équation est compliquée

Merci et bonne journée

math@

MathRack
15-05-2013 11:02:29

Bonjour,

Il y a un bon petit volume de code. Je vais jeter un oeil plus tard dans la journée mais ça va me prendre un peu de temps pour te répondre. L'erreur est visible dans la solution finale... Mais l'origine de l'erreur peut être dans nimporte quelle étape du programme!

Concernant les informations dans ton post :
1 - Tu notes X les variables au pas de temps k+1 et Y les variables au pas de temps k?
2 - Ok pour le système à résoudre. Quelles sont les conditions aux limites / conditions initiales?
3 - Le premier schéma numérique me semble OK. Le deuxième c'est vraiment l'usine à gaz...
4 - Dans les matrices décrites, il n'y a jamais les coefficients a1, a2, b1, b2, d1,d2?
5 - La matrice tA est identique à A dans ton post... On parle bien de l'opération de transposition classique ?
6 - La majorité des schémas numériques ont un domaine de stabilité. En dehors de ce domaine de stabilité, le calcul est souvent instable et conduit à une solution fausse. As-tu vérifié l'existence d'un critère de stabilité pour ton schéma numérique? (la condition CFL limite souvent le pas de temps par exemple)
7 - Est-ce que ces équations ont une solution analytique? (par exemple pour tester le programme sur une solution stationnaire...)

Dans le programme principal, tu as :
abcs = i * dx - l/2.D0
Tu souhaites donc que la variable abcs couvre un intervalle qui commence après xdeb et termine après xfin?

Cordialement,
MathRack

math@
15-05-2013 09:55:29

Bonjour,

Voilà le code que j'ai implémenté. je travaille sur les équation de green naghdi, le but c'est résoudre un système de type tAAX=tACY ou tA est la transposée de A et  C est une matrice aussi
l'erreur c dans le calcul de la solution finale et je comprends pas d'où vient le problème

http://pastebin.com/5kkyec1t
http://pastebin.com/YhbynDPi
http://pastebin.com/WyAmsexR
http://pastebin.com/7MdG9w6p
http://pastebin.com/LnZeLRLG
http://pastebin.com/9iidjXCi
http://pastebin.com/1twEPtSt
le système que je veux résoudre
[tex]
$\left\{\begin{array}{ll}
\partial_{t}\zeta + h\partial_{x}u = 0\\\\
\left( I-\dfrac{\alpha}{3}h^{2}\partial_{xx}\right) \left( \partial_{t}u+\left( 1-\dfrac{1}{\alpha}\right) g\partial_{x}\zeta\right) +\dfrac{g}{\alpha}\partial_{x}\zeta = 0\\
\end{array}\right.$
[/tex]
le schéma numérique
[tex]

$\left\{\begin{array}{ll}
\zeta_{i}^{n+1} = \zeta_{i}^{n} - h\dfrac{\delta t}{4\delta x}(u_{i+1}^{n+1}-u_{i-1}^{n+1} + u_{i+1}^{n}-u_{i-1}^{n})\\\\

\dfrac{\alpha}{12}\left(1-\dfrac{1}{\alpha}\right)g \zeta^{n+1}_{i-2}-\left(\left(1-\dfrac{1}{\alpha}\right)g\dfrac{\delta x^2}{4h^2}+\dfrac{\alpha}{6}\left(1-\dfrac{1}{\alpha}\right)g+\dfrac{g\delta x^2}{4\alpha h^2}\right)\zeta^{n+1}_{i-1}+\\\\ \left(\left(1-\dfrac{1}{\alpha}\right)g\dfrac{\delta x^2}{4h^2}+\dfrac{\alpha}{6}\left(1-\dfrac{1}{\alpha}\right)g+\dfrac{g\delta x^2}{4\alpha h^2}\right)\zeta^{n+1}_{i+1}-\dfrac{\alpha}
{12}\left(1-\dfrac{1}{\alpha}\right)g \zeta^{n+1}_{i+2}\\\\-\dfrac{\alpha\delta x}{3\delta t}U^{n+1}_{i-1}+\left(\dfrac{\delta x^3}{\delta t h^2}+\dfrac{2\alpha\delta x}{3\delta t}\right)U^{n+1}_{i}-\dfrac{\alpha\delta x}{3\delta t}U^{n+1}_{i+1} =

-\dfrac{\alpha}{12}\left(1-\dfrac{1}{\alpha}\right)g \zeta^{n}_{i-2}+\\\\
\left(\left(1-\dfrac{1}{\alpha}\right)g\dfrac{\delta x^2}{4h^2}+\dfrac{\alpha}{6}\left(1-\dfrac{1}{\alpha}\right)g+\dfrac{g\delta x^2}{4\alpha h^2}\right)\zeta^{n}_{i-1}-
\left(\left(1-\dfrac{1}{\alpha}\right)g\dfrac{\delta x^2}{4h^2}+\dfrac{\alpha}{6}\left(1-\dfrac{1}{\alpha}\right)g+\dfrac{g\delta x^2}{4\alpha h^2}\right)\zeta^{n}_{i+1}\\\\-\dfrac{\alpha}{12}\left(1-\dfrac{1}{\alpha}\right)g \zeta^{n}_{i+2}-\dfrac{\alpha\delta x}{3\delta t}U^{n}_{i-1}+\left(\dfrac{\delta x^3}{\delta t h^2}+\dfrac{2\alpha\delta x}{3\delta t}\right)U^{n}_{i}-\dfrac{\alpha\delta x}{3\delta t}U^{n}_{i+1}

\end{array}\right.$   

[/tex]

j'ai multiplié la 2ème équation par dx^3/h_0^2
les coeffs des matrices

[tex]
$a_1 = \dfrac{\alpha\delta t}{12}$\\\\
$a_2 = \left(1-\dfrac{1}{\alpha}\right)g $\\\\
$a = a_1*a_2$\\\\
$b_1 = \dfrac{g\delta t\delta x^2}{4h_0^2}$\\\\
$b_2 = \dfrac{\alpha\delta t}{6}$\\\\
$b = b_1+(b_2*a_2)$\\\\
$c = \dfrac{\alpha\delta x}{3}$\\\\
$d_1 = \dfrac{\delta x^3}{h_0^2}$\\\\
$d_2 = \dfrac{2\alpha\delta x}{3}$\\\\
$e = \dfrac{\delta t h_0}{4\delta x}$\\\\
[/tex]

la matrice A

[tex]
$ \left(\begin{array}{c|c}

\begin{matrix}
1 &0 &0 &0 &0 &\cdots &0\\
0 &1 &0 &0  &0 &\cdots &0 \\
0 &0 &1 &0 &0 &\cdots &0\\
\vdots &\ddots &\ddots &\vdots\\
\vdots &\ddots &\ddots &\vdots\\
0 &0 &0 &\cdots &0 &1 &0 \\
0 &0 &0 &0 &\cdots &0 &1

\end{matrix}

&
  \begin{matrix}
0 &e &0 &0 &\cdots &0 &-e\\
-e &0 &e &0  &0 &\cdots &0\\
0 &-e &0 &e &0 &0 &\cdots\\
\vdots &\ddots &\ddots &\vdots\\
\vdots &\ddots &\ddots &\vdots\\
0 &0 &\cdots &0 &-e &0 &e\\
e &0 &0 &\cdots &0 &-e &0

\end{matrix}\\

\hline

\begin{matrix}
0 &b &-a &0 &\cdots &a &-b\\
-b &0 &b &-a  &0 &\cdots &a\\
a &-b &0 &b &-a &0 &\cdots\\
\vdots &\ddots &\ddots &\vdots\\
\vdots &\ddots &\ddots &\vdots\\
-a &0 &\cdots &a &-b &0 &b\\
b &-a &0 &\cdots &a &-b &0


\end{matrix}
&

\begin{matrix}
d &-c &0 &0 &0 &\cdots &-c\\
-c &d &-c &0  &0 &0 &\cdots\\
0 &-c &d &-c &0 &\cdots &0\\
\vdots &\ddots &\ddots &\vdots\\
\vdots &\ddots &\ddots &\vdots\\
0 &0 &0 &\cdots &-c &d &-c \\
-c &0 &0 &0 &\cdots &-c &d

\end{matrix}

\end{array}\right)$
[/tex]

la transposée de A
[tex]
$ \left(\begin{array}{c|c}

\begin{matrix}
1 &0 &0 &0 &0 &\cdots &0\\
0 &1 &0 &0  &0 &\cdots &0 \\
0 &0 &1 &0 &0 &\cdots &0\\
\vdots &\ddots &\ddots &\vdots\\
\vdots &\ddots &\ddots &\vdots\\
0 &0 &0 &\cdots &0 &1 &0 \\
0 &0 &0 &0 &\cdots &0 &1

\end{matrix}

&
  \begin{matrix}
0 &e &0 &0 &\cdots &0 &-e\\
-e &0 &e &0  &0 &\cdots &0\\
0 &-e &0 &e &0 &0 &\cdots\\
\vdots &\ddots &\ddots &\vdots\\
\vdots &\ddots &\ddots &\vdots\\
0 &0 &\cdots &0 &-e &0 &e\\
e &0 &0 &\cdots &0 &-e &0

\end{matrix}\\

\hline

\begin{matrix}
0 &b &-a &0 &\cdots &a &-b\\
-b &0 &b &-a  &0 &\cdots &a\\
a &-b &0 &b &-a &0 &\cdots\\
\vdots &\ddots &\ddots &\vdots\\
\vdots &\ddots &\ddots &\vdots\\
-a &0 &\cdots &a &-b &0 &b\\
b &-a &0 &\cdots &a &-b &0


\end{matrix}
&

\begin{matrix}
d &-c &0 &0 &0 &\cdots &-c\\
-c &d &-c &0  &0 &0 &\cdots\\
0 &-c &d &-c &0 &\cdots &0\\
\vdots &\ddots &\ddots &\vdots\\
\vdots &\ddots &\ddots &\vdots\\
0 &0 &0 &\cdots &-c &d &-c \\
-c &0 &0 &0 &\cdots &-c &d

\end{matrix}

\end{array}\right)$
[/tex]

la matrice C

[tex]
$ \left(\begin{array}{c|c}
      \begin{matrix}
1 &0 &0 &0 &0 &\cdots &0\\
0 &1&0 &0  &0 &\cdots &0 \\
0 &0 &1 &0 &0 &\cdots &0\\
\vdots &\ddots &\ddots &\vdots\\
\vdots &\ddots &\ddots &\vdots\\
0 &0 &0 &\cdots &0 &1 &0 \\
0 &0 &0 &0 &\cdots &0 &1

\end{matrix}
 
&
\begin{matrix}
0 &-e &0 &0 &\cdots &0 &e\\
e &0 &-e &0  &0 &\cdots &0\\
0 &e &0 &-e &0 &0 &\cdots\\
\vdots &\ddots &\ddots &\vdots\\
\vdots &\ddots &\ddots &\vdots\\
0 &0 &\cdots &0 &e &0 &-e\\
-e &0 &0 &\cdots &0 &e &0


\end{matrix}\\

\hline
\begin{matrix}
0 &-b &a &0 &\cdots &-a &b\\
b&0 &-b &a  &0 &\cdots &-a\\
-a &b &0 &-b &a &0 &\cdots\\
\vdots &\ddots &\ddots &\vdots\\
\vdots &\ddots &\ddots &\vdots\\
a &0 &\cdots &-a &b &0 &-b\\
-b &a &0 &\cdots &-a &b &0
\end{matrix}

&
  \begin{matrix}
d &-c &0 &0 &0 &\cdots &-c\\
-c &d &-c &0  &0 &0 &\cdots\\
0 &-c &d &-c &0 &\cdots &0\\
\vdots &\ddots &\ddots &\vdots\\
\vdots &\ddots &\ddots &\vdots\\
0 &0 &0 &\cdots &-c &d &-c \\
-c &0 &0 &0 &\cdots &-c &d

\end{matrix}

\end{array}\right)$
[/tex]
Si quelqu'un peut m'aider je serai vraiment reconnaissante.
Merci d'avance

Cordialement
math@

math@
14-05-2013 11:02:06

Bonjour,

Merci pour votre aide maintenant ma condition initiale est bien un gaussienne centrée en 0.

Cordialement

Math@

Pied de page des forums