Working with numbers smaller tha 10^-308

Hi,
I would like to know if it is possible to use Matlab for very small numbers (smaller than 10^-308 ). It's very important for my application "statistical genetics". in this field, somes probabilities are smaller than 10^-500.
Thank you

4 commentaires

John Doe
John Doe le 9 Mai 2013
Modifié(e) : John Doe le 9 Mai 2013
I'm sorry, but I just have to ask: How can a probability of 10^-500 be of any relevance, ever? (I'm actually curious)
Sean de Wolski
Sean de Wolski le 9 Mai 2013
+1 @Robert's comment
sadoune sadoune
sadoune sadoune le 9 Mai 2013
Hi Robert,
You can imagine a vector length 500, each case represent a probability, and the probability i would like to compute is the product of all this probabilities (independance).
John Doe
John Doe le 9 Mai 2013
Ok, then I see where you get the number from, but if you are ending up with a probability that low, it is literally impossible for it to happen. Isn't OK to just let it be equal to 0?
I don't mean to be rude or condescending, I just don't get how it would make sense to keep working with numbers that low.
Anyhow, I hope someone can provide an answer for you, and good luck =)

Connectez-vous pour commenter.

Réponses (2)

Sean de Wolski
Sean de Wolski le 9 Mai 2013
Modifié(e) : Sean de Wolski le 9 Mai 2013
You can do this using vpa() in the Symbolic Math Toolbox:
v = vpa('3.14159^-5000')
And for more info:
You could also use exact symbolic arithmetic:
sym('3.1415^-34334')

3 commentaires

Thank you for your answer,
I tried vpa function with the following example:
for i=1:400
tab(i)=0.1;
end
v = vpa(prod(tab))
and the result was v =0.0 :(
That's because you're doing the computation as a double and then converting it to vpa(). Convert it to vpa before doing the computation:
for i=400:-1:1
tab(i)=vpa(0.1);
end
v = (prod(tab))
sadoune sadoune
sadoune sadoune le 10 Mai 2013
Thank you Wolski. it's OK now

Connectez-vous pour commenter.

Peter Perkins
Peter Perkins le 11 Mai 2013

1 vote

Quite often in statistics when one has very small probabilities, one works on the log scale. That's why one typically maximizes the LOG-likelihood, and not the likelihood.

Community Treasure Hunt

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

Start Hunting!

Translated by