Scripts pour la propagation d'ondes linéaires

illustrant la méthode de décomposition spectrale de l'opérateur spatial

D'abord le plus simple: Ondes1D.m qui permet de calculer la solution de l'équation des ondes avec comme opérateur en espace Au = - u" + c u sur l'intervalle [0,1], avec conditions de Dirichlet, Neumann ou Neumann-Dirichlet. Les vecteurs propres sont explicites et on calcule les coefficients de Fourier de la donnée initiale par intégration numérique. Cela requiert une fonction paramétrée par le rang du coefficient, et qui est définie dans FourIntegrand.m. Cette fonction offre le choix entre plusieurs familles de conditions initiales.

Dans le même ordre d'idée, Guide1D.m résout l'équation du guide d'onde par la même méthode que précédemment. Elle utilise aussi FourIntegrand.m pour les mêmes raisons.

Des alternatives utilisant la FFT (Fast Fourier Transform) sont proposées dans fftpur1D.m et fft1D.m. Elles résolvent l'équation des ondes avec conditions aux limites périodiques. Dans le premier on utilise la FFT et son inverse, alors que dans la deuxième on n'utilise que FFT et une formule classique pour la reconstruction de la solution.

La méthode de Ondes1D.m est tensorisée pour résoudre l'équation des ondes en dimension 2 sur le carré [0,1] x [0,1]. Le script est Ondes2D.m et il utilise toujours la fonction FourIntegrand.m qui permet le calcul 1D des coefficients de Fourier.

Une alternative est proposée dans fft2D.m qui permet un calcul 2D vrai de coefficients de Fourier approchés. On peut ainsi prendre comme condition initiale une fonction radiale centrée au centre (0.5 , 0.5) du carré.

Un ensemble plus complexe de programmes permet de résoudre l'équation des ondes en 1D avec un opérateur en espace du type Au = - (α u')' α est constant par morceaux. On a programmé le cas α = a sur les intervalles [0,b] U [1-b,1] et α = 1 sur [b,1-b]. Contrairement à tous les cas précédents, les vecteurs propres ne sont plus explicites. Un nombre fixé d'éléments du spectre peut être calculé comme les premiers zéros d'une fonction analytique explicite specfun.m, ce qui est réalisé par spec.m. Les solutions servent alors à déterminer les vecteurs propres par une formule semi-analytique eigvec.m où la valeur propre entre comme paramètre. La solution de l'équation des ondes est calculée par la fonction Ondes1DTrans.m qui utilise la fonction auxiliaire FourIntegrandTrans.m pour le calcul des coefficients de Fourier.

Tous les programmes sont commentés. La théorie est présentée dans des notes de cours dont on peut obtenir une copie.