Would you please tell me what do I have to fix in Binomial distribution code?

3 views (last 30 days)
for n = 2:30
for x=1:n;
p(x) = (factorial(n)/(factorial(x)* factorial(n-x)))*((10/230)^x)*(1-(10/230).^(n-x));
end
end
plot(p)
The graph should come out as one plot that is decreasing, but my graph now has several rising graphs. Would you tell me what do I have to change please?
  1 Comment
Paul
Paul on 13 Oct 2022
x should start at 0.
It looks like you're trying to get p for different vaues of n. But each time through the loop overwrites the previous computation of p. So you'll either need to put the plot(0:n,p) command (with a hold) inside the loop, save each p in some sort of data structure and the plot after the loop.
Also, might be interested in this function: nchoosek

Sign in to comment.

Accepted Answer

David Hill
David Hill on 13 Oct 2022
Note, factorial(30) will not be exact since it has more digits than floating point. The plot is constantly decreasing.
for n = 2:30
for x=1:n;
p(x) = (factorial(n)/(factorial(x)* factorial(n-x)))*((10/230)^x)*(1-(10/230).^(n-x));
end
end
diff(p)<0
ans = 1×29 logical array
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

More Answers (0)

Products

Community Treasure Hunt

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

Start Hunting!