Discretising尺寸分布函数和曲线下的面积

7视图(30天)
我有一些参数对一些数据,我策划一个大小分布函数。我使用的概率函数如下所示:
目前我有下面的代码块的功能:
清晰的
clc
关闭所有
μ= 0.015;%的几何平均半径
σ= 1.6;%几何标准差
Ntot = 850;%浓度总数
nbins = 200;%的箱子数量
rMin =(μ/(10 *σ));%确定最小半径
征求=(μ* 10 *σ);%确定最大半径
rs = logspace (log10 (rMin) log10(征求)nbins + 1);%向量包含rs
i = 1:长度(rs)
sizedist = Ntot /(√(2 *π))*日志(σ))* exp(-(日志(rs. /μ)。^ 2)。/(2 *日志(σ^ 2)));
结束
%绘制尺寸分布函数
sizedist semilogx (rs,“线宽”2);
xlim((10的军医e1));
包含(“粒子半径,\妈妈”);
ylabel (的数量浓度,厘米^ 3 ');
第一个问题我在这里发生。曲线下的面积不应该等于指定的浓度总数?这似乎并不如此。
我为模型编码有必要气溶胶人口discretised到垃圾箱。
现在假设我想discretise这个函数进入垃圾箱,目前向量rs是本边缘。我想知道如何找到数量浓度在每一本,但如上所述曲线下的面积Ntot似乎并不平等。谁能看到我是否做错了什么?
我想要做的是确定数量浓度在每一本,当加在一起应该总Ntot的价值。
希望有人可以帮助! ! !

答案(2)

艾伦·史蒂文斯
艾伦·史蒂文斯 2021年2月26日
  1. 你应该有日志(σ)^ 2,没有日志(σ^ 2)。
  2. 的时候,可别忘了“dx”部分积分曲线。
μ= 0.015;%的几何平均半径
σ= 1.6;%几何标准差
Ntot = 850;%浓度总数
nbins = 200;%的箱子数量
rMin =(μ/(10 *σ));%确定最小半径
征求=(μ* 10 *σ);%确定最大半径
rs = logspace (log10 (rMin) log10(征求)nbins + 1);%向量包含rs
dx =(日志(征求)日志(rMin)) / nbins;
sizedist = Ntot /(√(2 *π)*日志(σ))* exp(日志(rs. /亩)。^ 2. /(2 *日志(σ)^ 2));
disp (sum (sizedist) * dx)%这应该显示曲线下的面积
%绘制尺寸分布函数
sizedist semilogx (rs,“线宽”2);
xlim((10的军医e1));
包含(“粒子半径,\妈妈”);
ylabel (的数量浓度,厘米^ 3 ');
4评论
艾伦·史蒂文斯
艾伦·史蒂文斯 2021年2月27日
编辑:艾伦·史蒂文斯 2021年2月27日
你可以做以下
μ= 0.015;%的几何平均半径
σ= 1.6;%几何标准差
Ntot = 850;%浓度总数
nbins = 200;%的箱子数量
rMin =(μ/(10 *σ));%确定最小半径
征求=(μ* 10 *σ);%确定最大半径
rs = logspace (log10 (rMin) log10(征求)nbins + 1);%向量包含rs
dx =(日志(征求)日志(rMin)) / nbins;
sizedist = Ntot /(√(2 *π)*日志(σ))* exp(日志(rs. /亩)。^ 2. /(2 *日志(σ)^ 2));
disp (sum (sizedist) * dx)%这应该显示曲线下的面积
nbins2 = 21;
卢比= logspace (log10 (rMin) log10(征求)nbins2 + 1);%向量包含平日
sizedist2 = Ntot /(√(2 *π)*日志(σ))* exp(日志(rs2. /亩)。^ 2. /(2 *日志(σ)^ 2));
x = [];y = [];bw卢比(1)/ 2 =;
我= 1:nbins2
卢比(i) x = [x平日卢比(i + 1)(我)卢比(i + 1)];
各种= (sizedist2 (i + 1) + sizedist2(我))/ 2;
[y y = 0各种各种0];
结束
%绘制尺寸分布函数
sizedist semilogx (rs,“线宽”2);
持有
semilogx (x, y)
包含(“粒子半径,\妈妈”);
ylabel (的数量浓度,厘米^ 3 ');
生产

登录置评。


利亚姆Holbeche-Smith
利亚姆Holbeche-Smith 2021年2月28日
作为一个更新后一些试验和错误和阅读在这个问题上我已经想出了一些代码,创建正确的阴谋并返回正确的向量:
μ= 0.015;%这是几何平均半径
σ= 1.6;%这是几何标准差
Ntot = 850;%这是气溶胶的浓度总数
nr = 200;%这是半径被跟踪的数量
rMin =(μ/(10 *σ));%最低干半径
征求=(μ* 10 *σ);%最大干燥半径
rvec = logspace (log10 (rMin) log10(征求),nr + 1);%这是本边缘
一个= rvec (1: end-1);在每本%下界
b = rvec(2:结束);在每本%上界
pdfa = (Ntot / (√(2.0 * pi) *日志(σ))/ a)。* exp(日志(a /亩)。^ 2. /(2 *日志(σ)^ 2));
pdfb = (Ntot / (√(2.0 * pi) *日志(σ))/ b)。* exp(日志(b /亩)。^ 2. /(2 *日志(σ)^ 2));
Nconcs = 0.5 * (b)。* (pdfa + pdfb);%浓度在每一本
rds =√。* b);%半径值在每一本的中心
Nconcs semilogx (rds,“k”);%画出气溶胶人口
xlim((10的军医e1));
包含(“气溶胶干半径,\妈妈”);
ylabel (气溶胶数浓度,厘米^ 3 ');
持有;
区(rds, Nconcs“Facecolor”,“# CC0066”);
传奇(“Aerosol1”,“字形大小”12);
假设我有另一个气溶胶人口我希望绘制在同一图,用不同的特点。如果我做了μ、σNtot和nr成数组有办法实现吗?作为一个例子让我开始数组说:
亩= (0.015 - 0.85);
(= (1.6 - 1.2);
Ntots = 850 [10];
nr = 40 [200];
我想使用一个for循环是最好的,我很新MATLAB所以我不确定如果计算的复杂性将使这个太难实现。
再一次,谢谢你的帮助
3评论

登录置评。

s manbetx 845


释放

R2019b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!