Generate random variable with known PDF expression in MATLAB
I know the probability density function (PDF) expression of random variable r as 2r/R^2 where 0<=r<=R. Then, its CDF is r^2/R^2.
Can someone help me to generate random variable r in MATLAB following above distribution?
matlab random probability-density inverse-transform
add a comment |
I know the probability density function (PDF) expression of random variable r as 2r/R^2 where 0<=r<=R. Then, its CDF is r^2/R^2.
Can someone help me to generate random variable r in MATLAB following above distribution?
matlab random probability-density inverse-transform
Possible duplicate of Generate random numbers according to distributions
– Gelliant
Jun 4 '18 at 8:30
2
I thinksz = [1 1e6]; R = 5; x = sqrt(rand(sz))*R; histogram(x)
does what you want
– Luis Mendo
Jun 4 '18 at 8:42
add a comment |
I know the probability density function (PDF) expression of random variable r as 2r/R^2 where 0<=r<=R. Then, its CDF is r^2/R^2.
Can someone help me to generate random variable r in MATLAB following above distribution?
matlab random probability-density inverse-transform
I know the probability density function (PDF) expression of random variable r as 2r/R^2 where 0<=r<=R. Then, its CDF is r^2/R^2.
Can someone help me to generate random variable r in MATLAB following above distribution?
matlab random probability-density inverse-transform
matlab random probability-density inverse-transform
edited Nov 10 '18 at 22:56
SecretAgentMan
591313
591313
asked Jun 4 '18 at 6:23
FreyFrey
203311
203311
Possible duplicate of Generate random numbers according to distributions
– Gelliant
Jun 4 '18 at 8:30
2
I thinksz = [1 1e6]; R = 5; x = sqrt(rand(sz))*R; histogram(x)
does what you want
– Luis Mendo
Jun 4 '18 at 8:42
add a comment |
Possible duplicate of Generate random numbers according to distributions
– Gelliant
Jun 4 '18 at 8:30
2
I thinksz = [1 1e6]; R = 5; x = sqrt(rand(sz))*R; histogram(x)
does what you want
– Luis Mendo
Jun 4 '18 at 8:42
Possible duplicate of Generate random numbers according to distributions
– Gelliant
Jun 4 '18 at 8:30
Possible duplicate of Generate random numbers according to distributions
– Gelliant
Jun 4 '18 at 8:30
2
2
I think
sz = [1 1e6]; R = 5; x = sqrt(rand(sz))*R; histogram(x)
does what you want– Luis Mendo
Jun 4 '18 at 8:42
I think
sz = [1 1e6]; R = 5; x = sqrt(rand(sz))*R; histogram(x)
does what you want– Luis Mendo
Jun 4 '18 at 8:42
add a comment |
1 Answer
1
active
oldest
votes
https://blogs.sas.com/content/iml/2013/07/22/the-inverse-cdf-method.html
I use the same variables as they use
f(x) = 2x/R^2
F(x) = x^2/R^2
solving for x in the equation F(x) = u
u*R^2 = x^2
x = sqrt(u * R^2) v -sqrt(u * R^2)
in Matlab:
N=1E5;
R=1;
u = rand(1,N);
x = sqrt(u*R^2);
histogram(x)
Your distribution is not entirely correct as he has defined it from 0 to R, (thus the 2 in the PDF). So the negative part of the squareroot should be "ignored".
– Nicky Mattsson
Jun 4 '18 at 9:15
Thanks, I will correct it.
– Gelliant
Jun 4 '18 at 11:56
You are welcome - but please remove the incorrect code rather than commenting it out.
– Nicky Mattsson
Jun 5 '18 at 13:57
More on the Inverse Transform at stats.stackexchange.com/questions/184325/… and here.
– SecretAgentMan
Nov 10 '18 at 4:07
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f50674437%2fgenerate-random-variable-with-known-pdf-expression-in-matlab%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
https://blogs.sas.com/content/iml/2013/07/22/the-inverse-cdf-method.html
I use the same variables as they use
f(x) = 2x/R^2
F(x) = x^2/R^2
solving for x in the equation F(x) = u
u*R^2 = x^2
x = sqrt(u * R^2) v -sqrt(u * R^2)
in Matlab:
N=1E5;
R=1;
u = rand(1,N);
x = sqrt(u*R^2);
histogram(x)
Your distribution is not entirely correct as he has defined it from 0 to R, (thus the 2 in the PDF). So the negative part of the squareroot should be "ignored".
– Nicky Mattsson
Jun 4 '18 at 9:15
Thanks, I will correct it.
– Gelliant
Jun 4 '18 at 11:56
You are welcome - but please remove the incorrect code rather than commenting it out.
– Nicky Mattsson
Jun 5 '18 at 13:57
More on the Inverse Transform at stats.stackexchange.com/questions/184325/… and here.
– SecretAgentMan
Nov 10 '18 at 4:07
add a comment |
https://blogs.sas.com/content/iml/2013/07/22/the-inverse-cdf-method.html
I use the same variables as they use
f(x) = 2x/R^2
F(x) = x^2/R^2
solving for x in the equation F(x) = u
u*R^2 = x^2
x = sqrt(u * R^2) v -sqrt(u * R^2)
in Matlab:
N=1E5;
R=1;
u = rand(1,N);
x = sqrt(u*R^2);
histogram(x)
Your distribution is not entirely correct as he has defined it from 0 to R, (thus the 2 in the PDF). So the negative part of the squareroot should be "ignored".
– Nicky Mattsson
Jun 4 '18 at 9:15
Thanks, I will correct it.
– Gelliant
Jun 4 '18 at 11:56
You are welcome - but please remove the incorrect code rather than commenting it out.
– Nicky Mattsson
Jun 5 '18 at 13:57
More on the Inverse Transform at stats.stackexchange.com/questions/184325/… and here.
– SecretAgentMan
Nov 10 '18 at 4:07
add a comment |
https://blogs.sas.com/content/iml/2013/07/22/the-inverse-cdf-method.html
I use the same variables as they use
f(x) = 2x/R^2
F(x) = x^2/R^2
solving for x in the equation F(x) = u
u*R^2 = x^2
x = sqrt(u * R^2) v -sqrt(u * R^2)
in Matlab:
N=1E5;
R=1;
u = rand(1,N);
x = sqrt(u*R^2);
histogram(x)
https://blogs.sas.com/content/iml/2013/07/22/the-inverse-cdf-method.html
I use the same variables as they use
f(x) = 2x/R^2
F(x) = x^2/R^2
solving for x in the equation F(x) = u
u*R^2 = x^2
x = sqrt(u * R^2) v -sqrt(u * R^2)
in Matlab:
N=1E5;
R=1;
u = rand(1,N);
x = sqrt(u*R^2);
histogram(x)
edited Jun 5 '18 at 14:47
answered Jun 4 '18 at 8:40
GelliantGelliant
1,5731419
1,5731419
Your distribution is not entirely correct as he has defined it from 0 to R, (thus the 2 in the PDF). So the negative part of the squareroot should be "ignored".
– Nicky Mattsson
Jun 4 '18 at 9:15
Thanks, I will correct it.
– Gelliant
Jun 4 '18 at 11:56
You are welcome - but please remove the incorrect code rather than commenting it out.
– Nicky Mattsson
Jun 5 '18 at 13:57
More on the Inverse Transform at stats.stackexchange.com/questions/184325/… and here.
– SecretAgentMan
Nov 10 '18 at 4:07
add a comment |
Your distribution is not entirely correct as he has defined it from 0 to R, (thus the 2 in the PDF). So the negative part of the squareroot should be "ignored".
– Nicky Mattsson
Jun 4 '18 at 9:15
Thanks, I will correct it.
– Gelliant
Jun 4 '18 at 11:56
You are welcome - but please remove the incorrect code rather than commenting it out.
– Nicky Mattsson
Jun 5 '18 at 13:57
More on the Inverse Transform at stats.stackexchange.com/questions/184325/… and here.
– SecretAgentMan
Nov 10 '18 at 4:07
Your distribution is not entirely correct as he has defined it from 0 to R, (thus the 2 in the PDF). So the negative part of the squareroot should be "ignored".
– Nicky Mattsson
Jun 4 '18 at 9:15
Your distribution is not entirely correct as he has defined it from 0 to R, (thus the 2 in the PDF). So the negative part of the squareroot should be "ignored".
– Nicky Mattsson
Jun 4 '18 at 9:15
Thanks, I will correct it.
– Gelliant
Jun 4 '18 at 11:56
Thanks, I will correct it.
– Gelliant
Jun 4 '18 at 11:56
You are welcome - but please remove the incorrect code rather than commenting it out.
– Nicky Mattsson
Jun 5 '18 at 13:57
You are welcome - but please remove the incorrect code rather than commenting it out.
– Nicky Mattsson
Jun 5 '18 at 13:57
More on the Inverse Transform at stats.stackexchange.com/questions/184325/… and here.
– SecretAgentMan
Nov 10 '18 at 4:07
More on the Inverse Transform at stats.stackexchange.com/questions/184325/… and here.
– SecretAgentMan
Nov 10 '18 at 4:07
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f50674437%2fgenerate-random-variable-with-known-pdf-expression-in-matlab%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Possible duplicate of Generate random numbers according to distributions
– Gelliant
Jun 4 '18 at 8:30
2
I think
sz = [1 1e6]; R = 5; x = sqrt(rand(sz))*R; histogram(x)
does what you want– Luis Mendo
Jun 4 '18 at 8:42