noussa1983
Messages postés5Date d'inscriptionlundi 7 mai 2007StatutMembreDernière intervention11 mai 2007
-
7 mai 2007 à 07:58
noussa1983
Messages postés5Date d'inscriptionlundi 7 mai 2007StatutMembreDernière intervention11 mai 2007
-
11 mai 2007 à 17:55
Salut tous,
Mon programme a la structure suivante:
a=f1(x);
b=f2(x);
c=f3(x);
d=f4(x);
eq=f(a,b,c,d)=0
mon but est de résoudre l'équation "eq". J'ai pas su comment je dois procéder, En effet vu que x est
inconnu,la simulation s'arrête dés la première ligne.
emmatopiak
Messages postés149Date d'inscriptionmercredi 28 mars 2007StatutMembreDernière intervention17 mai 20072 7 mai 2007 à 14:15
Salut,
Tu es sûr que c'est la bonne syntaxe pour matlab ton truc là ?
Ca ressemble pas à ce que je connaissais
Pour résoudre des équations, tente de chercher de l'aide sur la commande SOLVE
noussa1983
Messages postés5Date d'inscriptionlundi 7 mai 2007StatutMembreDernière intervention11 mai 2007 7 mai 2007 à 17:33
Salut,
je pense que j'ai pas bien décrit la structure de mon programme, c'est pourquoi j'ai décidé de l'envoyer entièrement:
clear all;
r=1/3;%Rapport de réduction
Er=2.2;%Permittivité relative du matériau utilisé
a=1*(10^-3);%Largeur de la structure
n=1;%Numéro de mode
f=50*(10^9);
U0=4*pi*(10^-7);%perméablité dans le vide
E0=(1/36)*pi*(10^-9);%permittivité dans le vide
w=2*pi*f;
K0=sqrt(U0*E0*(w^2));%Constante de propagation dans le vide à la fréquencef
%%% L'inconnu est K
Omega0=sqrt((n*pi/a)^2+(K^2)-(K0^2));%
Omega1=sqrt((n*pi/a)^2+(K^2)-((K0^2)*Er));
YM0=Omega0/(i*w*U0);
YM1=Omega1/(i*w*U0);
eq=3*YM0*YM1*coth(Omega1*r*b)+2*(YM1^2)*coth(Omega0*(1-2*r)*b)*((coth(Omega1*r*b))^2)+(YM0^2)*coth(Omega0*(1-2*r)*b);
%%%Je veux chercher le K qui annule eq
emmatopiak
Messages postés149Date d'inscriptionmercredi 28 mars 2007StatutMembreDernière intervention17 mai 20072 7 mai 2007 à 19:06
Salut,
(ah c'est déjà plus ressemblant)
Pour Omega0 j'ai un doute déjà, je pense qu'il faut écrire Omega0 comme une fonction
quelque chose du genre (je ne connais pas la syntaxe )
Omega0(K) = sqrt(...);
Puis pareil pour eq
Et ensuite il doit y avoir une commande du genre
solve(eq(K)==0, {K})
cherche dans l'aide de matlab pour (1) fonctions et (2) système d'équations
(j'utilisais pas matlab mais mathematica et ça se ressemblait un peu, et c'est comme ça qu'il fallait faire)
sinon ça va prendre Omega0 comme une constante
@+++
Une autruche ne se cuit pas aux petits lardons.
Vous n’avez pas trouvé la réponse que vous recherchez ?
emmatopiak
Messages postés149Date d'inscriptionmercredi 28 mars 2007StatutMembreDernière intervention17 mai 20072 8 mai 2007 à 10:12
Salut,
Il faut que tu arrives à résoudre ce problème de déclaration de fonctions avant de pouvoir débloquer l'autre. Tu utilises le matlab complet ou tu passes par la fonction eval d'un autre langage ? Es-tu sûr que c'est la bonne syntaxe ?
noussa1983
Messages postés5Date d'inscriptionlundi 7 mai 2007StatutMembreDernière intervention11 mai 2007 8 mai 2007 à 16:31
Salut [auteurdetail.aspx?ID=1018277 emmatopiak] ,
ça y est je suis arrivée à résoudre le problème de fonctions, il me reste maintenant le problème de résolution de l'équation.
noussa1983
Messages postés5Date d'inscriptionlundi 7 mai 2007StatutMembreDernière intervention11 mai 2007 11 mai 2007 à 17:55
Salut,
voilà mon programme (j'ai pas ajouté grande chose):
function dispersion=fonc(k)
clear all;
r=1/3;%Rapport de réduction
Er=2.2;%Permittivité relative du matériau utilisé
b=1.5*(10^-3);%Longueur de la structure
a=1*(10^-3);%Largeur de la structure
n=1;%Numéro de mode
f=5*(10^9);%Fréquence
U0=4*pi*(10^-7);%perméablité dans le vide
E0=(1/36)*pi*(10^-9);%permittivité dans le vide
w=2*pi*f;
c=3*(10^8);%vitesse de la lumière
K0=w/c;%Constante de propagation dans le vide
%K est un nombre complexe K=p1+j*p2
Omega0=sqrt(((n*pi/a)^2)-(K^2)-(K0^2));%Omegua0
Omega1=sqrt((n*pi/a)^2-(K^2)-((K0^2)*Er));%Omegua1
Com0=tanh(Omega0*b*(1-2*r));
Com1=tanh(Omega1*b*r);
%cas1 deux plus milfou9
dispersion=3*Omega0*Omega1*Com1+2*(Omega1^2)*(Com1^2)*Com0+(Omega0^2)*Com0;
Mon but est la recherche de K qui correspond à fonc(K)=0.
En utlisant fsolve, j'obtiens tjrs des erreurs.
SVP aidez moi c'est urgent