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.
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
-----