Bonjour a tous,
Je suis débutant sur matlab et j'ai un petit problème
J'ai deux équations TE et TM je veux les résoudre en utilisant la fonction "fsolve". Je voudrais calculer la constante de propagation normalisée (betta) en fonction de la hauteur du substrat (d) et la permittivité (per) pour différents modes TE et TM
Voici mon problème
pour d=0.26 lambda on a deux modes TE1 et TM0, en principe le résultat doit être comme suit: pour le mode TE betta normalisée doit être 1.08 et pour le mode TM betta normalisée doit être 1.4.
l'exécution me donne pour betta_TE 1.08 mais pour le mode TM je trouve 1.12 par contre elle doit être 1.4
voici mon code:
voici ci joint ce que je veux tracer .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 clear all; clc; per=2.55; c=3e8; f=5e9; lamda=c/f; d=0.26*lamda; ko=2*pi/lamda; dx=0.5*lamda; dy=0.5*lamda; TE =@(betta_TE) [(sqrt(per.*ko.^2-betta_TE.^2).*cos(sqrt(per.*ko.^2-betta_TE.^2).*d)+1j*sqrt(ko.^2-betta_TE.^2).*sin(sqrt(per.*ko.^2-betta_TE.^2).*d))]; TM = @(betta_TM)[(per.*sqrt(ko.^2-betta_TM.^2).*cos(sqrt(per.*ko.^2-betta_TM.^2).*d)+1j*sqrt(per.*ko.^2-betta_TM.^2).*sin(sqrt(per.*ko.^2-betta_TM.^2).*d))]; x0=0.3*ko; betta_TE = fsolve(TE,x0) betta_norm_TE=abs(betta_TE)/ko; x0_TM=0.3*ko; betta_TM = fsolve(TM,x0_TM) betta_norm_TM=abs(betta_TM)/ko;
Merci d'avance
Partager