Théorie et implémentation sous MATLAB
Particule
Absorption
Diffusion
$$ I = I_0 \exp(-n\sigma_{ext}z) $$
avec \(\sigma_{ext} = \sigma_{abs} + \sigma_{diff} \)
$$ Q_{\star} = \frac{\sigma_{\star}}{\pi a^2} $$
Comment on calcule \(\sigma_{\star}\) ?
avec
- Particules de diazote de 2nm de rayon
- Particules d'eau 10µm de rayon
data = dlmread('./données/n2.csv');
wlgths = data(:,1);
n = data(:,2);
k = data(:,3);for lambda=lambda1:step:lambda2
% Interpolate the experimental refractive index of the particle...
npart = interp1q(wlgths,n,lambda) + 1i*interp1q(wlgths,k,lambda);
[e s a] = MieScattering(lambda,R,n_m,npart);
Qsca(count,1) = s/A;
Qext(count,1) = e/A;
Qabs(count,1) = a/A;
lambdas(count,1) = lambda*1e9;
count = count + 1
endfunction [Cext,Csca,Cabs]=MieScattering(lambda,R,n_m,npart)
% Beaucoup de code inutile
j=(1:N); % finite upper bond for the sum
% Ricatti-Bessel functions and their derivatives
fpsi = @(j,x) sqrt(pi*x/2)*(besselj(j+1/2,x));
deriv_psi = @(j,x) fpsi(j-1,x) - (j/x) * fpsi(j,x);
kzi = @(j,x) sqrt(pi*x/2)*(besselh(j+1/2,1,x));
deriv_kzi = @(j,x) kzi(j-1,x) - (j/x) * kzi(j,x);
% Definition of the coefficients
global a b;
a = @(j) (m*fpsi(j,w)*deriv_psi(j,v)-fpsi(j,v)*deriv_psi(j,w))/...
(m*fpsi(j,w)*deriv_kzi(j,v)-deriv_psi(j,w)*kzi(j,v));
b = @(j) (fpsi(j,w)*deriv_psi(j,v)-m*fpsi(j,v)*deriv_psi(j,w))/...
(fpsi(j,w)*deriv_kzi(j,v)-m*deriv_psi(j,w)*kzi(j,v));
% Definition of the coeffients of extinction, scattering and absorption respectively
Cext=(2*pi)/(k^2)*sum_sig_ext(j);
Csca=(2*pi)/(k^2)*sum_sig_sca(j);
Cabs=Cext-Csca;
end