J'ai la fonction suivante sous Matlab. Ca marche très bien. Mon problème c'est la discrétisation, j'ai besoin qu'il fasse les calculs avec un pas plus petit pour r. En effet, à cause de la boucle "for", j'ai un pas de 1 et ça ne va pas du tout!!!
Pouvez-vous m'aider je vous en supplie.
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 function intensite=propagation(z) Rmax=73; intensite=zeros(1,Rmax); R=73; D=2*R; a=14; l0=0.351; n=1.5; k0=2*pi*n/l0; zr=k0*D^2/4; for r=1:Rmax A=0; for s=1:50 A=A+1+i*exp(i*(zr/(2*z))*(r^2+1))*(i*(-i)^s*(1/r)^s*bessel(s,zr*r/z))-1/(1+2*a*z/zr)*i*(-i)^s*((1+2*a*z/zr)*1/r)^s*bessel(s,zr*r/z); end intensite(r)=A; end
Partager