Making the assumption to be the same as results

1 回表示 (過去 30 日間)
Kevin Isakayoga
Kevin Isakayoga 2020 年 10 月 26 日
コメント済み: KSSV 2020 年 10 月 26 日
Hi everyone! I dont know how to fit the parameter of b and n in my code to get the calculation of area equal 1. Could someone help me to modify it? I literally confuse how to fix this up. Thank you in advance before!
ro_init=0.2:0.1:100;
b=0.0517; % assume
n=1.0145; % assume
cdfVdp=(1-exp(-b*((2*ro_init).^n)));
pdfvdp=2*b*n*exp(-b*(2*ro_init).^n).*(2*ro_init).^(n-1);
area=trapz(ro_init,pdfvdp); %this results should be 1
  2 件のコメント
KSSV
KSSV 2020 年 10 月 26 日
Do you have range of values for b and n?
Kevin Isakayoga
Kevin Isakayoga 2020 年 10 月 26 日
b is from 0 to 0.1 n is from 0.8 to 2

サインインしてコメントする。

採用された回答

KSSV
KSSV 2020 年 10 月 26 日
編集済み: KSSV 2020 年 10 月 26 日
ro_init=0.2:0.1:100;
r = 200 ; c = 200 ; % Try increasing these values
B = linspace(0,0.1,r) ;
N = linspace(0.8,2,c) ;
[B,N] = meshgrid(B,N) ;
A = zeros(r,c) ;
for i = 1:r
for j = 1:c
b=B(i,j) ; % 0.0517; % assume
n=N(i,j) ; % 1.0145; % assume
% cdfVdp=(1-exp(-b*((2*ro_init).^n)));
pdfvdp=2*b*n*exp(-b*(2*ro_init).^n).*(2*ro_init).^(n-1);
area=trapz(ro_init,pdfvdp); %this results should be 1
A(i,j) = area ;
end
end
% GEt area equal to one
idx = abs(A-1)<10^-3 ;
[B(idx) N(idx)] % these are the values of b and n
  3 件のコメント
Kevin Isakayoga
Kevin Isakayoga 2020 年 10 月 26 日
編集済み: Kevin Isakayoga 2020 年 10 月 26 日
By the way ,could you help me to explain why are my codes still not working if i change the value? and also what should i change?
clc;clear;
n=1000; %number of trial
rlower=0.002;
rupper=130; % Assume the initial radius in micron meter
r_initial=rlower+(rupper-rlower).*rand(1,n);
r_initial=sort(r_initial);
%r_initial=0.2:0.1:100;
r = 500 ; c = 500 ; % Try increasing these values
B = linspace(0.01,0.09,r) ;
N = linspace(0.9,1.4,c) ;
[B,N] = meshgrid(B,N) ;
A = zeros(r,c) ;
for i = 1:r
for j = 1:c
b=B(i,j) ; % 0.0517; % assume
n=N(i,j) ; % 1.0145; % assume
% cdfVdp=(1-exp(-b*((2*ro_init).^n)));
pdfvdp=2*b*n*exp(-b*(2*r_initial).^n).*(2*r_initial).^(n-1);
area=trapz(r_initial,pdfvdp); %this results should be 1
A(i,j) = area ;
end
end
% GEt area equal to one
idx = abs(A-1)<10^-3 ;
[B(idx) N(idx)] % these are the values of b and n
the answer will be like this,
ans =
0×2 empty double matrix
Looking forward to hearing from you. Thank you!
KSSV
KSSV 2020 年 10 月 26 日
Try decreasing the tolerance value.
idx = abs(A-1)<10^-2 ;

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeNumerical Integration and Differentiation についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by