MIE散射计算程序(米散射计算程序)

本人写的计算米散射的程序,一个是MATLAB程序,一个是用python写的打包好的软件,计算的内容是相同的。

打开方式为mie-dist-mie-mie.exe

当输入参数为上面四个时,计算的结果显示在右下角。

当输入参数为上面六个时,计算的结果会生成图形,显示在右面图中。

介质折射率不输入时默认为大气折射率为1。

此处下拉还可以修改要计算的参量。

注:输入的半径最小值、直径最小值、尺度参数最小值不能为0,可以写0.001。

经典米散射(MIE散射)的MATLAB程序,计算散射系数、吸收系数、消光系数、后向散射系数、不对称因子。_米散射matlab程序,米氏散射matlab程序-数据集文档类资源-CSDN下载

MIE散射米散射计算软件-其它文档类资源-CSDN下载

  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 32
    评论
Mie散射是指物体对电磁波的散射现象。Mie散射主要用于描述微级别的颗粒对于光的散射规律,例如空气中的尘埃、云朵、人造纳颗粒等。 下面是一个使用Matlab计算Mie散射程序示例: ```matlab % 计算Mie散射 % 输入参数: % n: 颗粒折射率 % d: 颗粒直径(单位:微) % lambda: 光波长(单位:微) % N: 计算点数 % 输出参数: % S1, S2: 散射系数 % Qext: 总散射截面 % Qsca: 散射截面 % Qabs: 吸收截面 function [S1, S2, Qext, Qsca, Qabs] = MieScat(n, d, lambda, N) x = 2 * pi * n * d / lambda; % Mie参数 m = 1:N; % 计算点数 y = m - 0.5; % 插值点 mu = cos(pi * y / N); % 角度 [S1, S2] = MieCoefficients(x, mu); % 计算系数 Qext = sum(2 * m + 1) * (abs(S1(1))^2 + abs(S2(1))^2) / (x^2); % 总散射截面 Qsca = sum(2 * m + 1) * (abs(S1(1))^2 + abs(S2(1))^2 - abs(S1 + S2).^2) / (x^2); % 散射截面 Qabs = Qext - Qsca; % 吸收截面 end % 计算Mie系数 function [S1, S2] = MieCoefficients(x, mu) nmax = ceil(x + 4 * x^(1/3) + 2); % 计算截断阶数 an = zeros(1, nmax); bn = zeros(1, nmax); [an, bn] = MieCoefficientsAB(x, nmax); % 计算an, bn系数 pi_n = LegendrePolynomial(nmax, mu); % 计算勒让德多项式 tau_n = pi_n .* (an + 1i * bn); % 计算tau_n S1 = zeros(size(mu)); S2 = zeros(size(mu)); for n = 1:nmax S1 = S1 + (2 * n + 1) * real(tau_n(n)) .* pi_n(n,:); S2 = S2 + (2 * n + 1) * imag(tau_n(n)) .* pi_n(n,:); end S1 = S1 * (x^2) / pi; S2 = S2 * (x^2) / pi; end % 计算Mie系数an, bn function [an, bn] = MieCoefficientsAB(x, nmax) an = zeros(1, nmax); bn = zeros(1, nmax); for n = 1:nmax [an(n), bn(n)] = MieCoefficientsABn(x, n); end end % 计算Mie系数an, bn(单个) function [an, bn] = MieCoefficientsABn(x, n) jn = sphbesselj(n, x); jn1 = sphbesselj(n-1, x); hn = sphhankel(n, x); hn1 = sphhankel(n-1, x); an = (jn * hn1 - hn * jn1) / (jn * hn1 + hn * jn1); bn = (jn1 * hn - hn1 * jn) / (jn * hn1 + hn * jn1); end % 计算勒让德多项式 function pi_n = LegendrePolynomial(nmax, mu) pi_n = zeros(nmax, length(mu)); pi_n(1,:) = 1; pi_n(2,:) = mu; for n = 2:nmax-1 pi_n(n+1,:) = ((2*n+1) * mu .* pi_n(n,:) - n * pi_n(n-1,:)) / (n+1); end end ``` 这个程序可以计算出颗粒对于某个波长的光的散射系数和各种截面。你可以调用这个函数,输入不同的颗粒参数和波长,来计算出不同情况下的Mie散射情况。
评论 32
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值