[Matlab] Résolution équation de dispersion
Résolu/Fermé
A voir également:
- [Matlab] Résolution équation de dispersion
- Resolution 1366x768 - Forum TV & Vidéo
- Cette resolution n'est pas prise en charge par cette tv modifiez la ✓ - Forum Format et connectique vidéo
- Problème résolution écran 1920x1080 - Forum Windows 10
- Écrire un programme qui résout une équation du second degré ✓ - Forum C
- Editeur d'équation - Télécharger - Vie quotidienne
2 réponses
Sacabouffe
Messages postés
9427
Date d'inscription
dimanche 19 août 2007
Statut
Membre
Dernière intervention
29 mai 2009
1 832
19 mars 2009 à 01:44
19 mars 2009 à 01:44
Salut
Faut commencer par simplifier ton équation de dispersion.
En posant x=h*u, t'es amené à résoudre
er*x+x*tanh(x)+er*(er-1)*h*k0^2=0
Étant donné le comportement de la tangente hyperbolique, ça paraît assez sage de chercher les zéros au voisinage de -er*h*k0^2 à chaque fois.
Faut commencer par simplifier ton équation de dispersion.
En posant x=h*u, t'es amené à résoudre
er*x+x*tanh(x)+er*(er-1)*h*k0^2=0
Étant donné le comportement de la tangente hyperbolique, ça paraît assez sage de chercher les zéros au voisinage de -er*h*k0^2 à chaque fois.
c=3e8; h=2e-3; er=4.32; f=(0:1e6:10e9); k0=2*pi*f/c; l=er*(er-1)*h*k0.^2; g=@(x,p)(er*x+x*tanh(x)+l(p)); xzero=zeros(size(l)); for p=1:size(l,2) xzero(p)=fzero(@(x)(g(x,p)),-er*h*k0(p)^2); end %% Pour beta, on prend la racine %% de partie imaginaire positive beta=sqrt(xzero/h+er*k0.^2); figure(1);plot(f,real(beta)); figure(2);plot(f,imag(beta)); %% Vérification pour l'équation erroreq=er*h*(beta.^2-k0.^2)+... h*(beta.^2-er*k0.^2).*tanh(h*(beta.^2-er*k0.^2)); figure(3);plot(f,erroreq);Bonne nuit