incomplete gamma function calculation

Hi,
I have this equation:
gamma(5,x) = 2
how I can find the value of x?
Thanks

2 commentaires

José-Luis
José-Luis le 24 Mai 2013
Matlab's gamma function only accepts one input argument.
Jamal Ahmad
Jamal Ahmad le 24 Mai 2013
this is incomplete gamma function, in matlab we can write as the following:
gammainc(a,x)
a = 5 and the result of the above function is 2 I need the value of x.

Connectez-vous pour commenter.

 Réponse acceptée

Sean de Wolski
Sean de Wolski le 24 Mai 2013
Modifié(e) : Sean de Wolski le 24 Mai 2013
I don't believe that's possible:
gammainc(5,0)
gammainc(5,1000);
it never goes near two.
More
options = optimoptions(@fminunc,'tolfun',10^-10,'tolx',10^-12);
xv = fminunc(@(x)(gammainc(5,x)-(10^-4)).^2,4,options)
%xv =15.6926
gammainc(5,xv)
% ans =
% 1.0004e-04

7 commentaires

Jamal Ahmad
Jamal Ahmad le 24 Mai 2013
you are right, I tried to write the equation simply. the actual value is 10^-4
thanks again.
Sean de Wolski
Sean de Wolski le 24 Mai 2013
see More
Jamal Ahmad
Jamal Ahmad le 24 Mai 2013
I receive this error:
Undefined function 'optimoptions' for input arguments of type 'function_handle'.
Error in Untitled2 (line 2) options = optimoptions(@fminunc,'tolfun',10^-10,'tolx',10^-12);
Walter Roberson
Walter Roberson le 24 Mai 2013
There are different meanings for "incomplete gamma function". The more obvious one has to do with upper or lower tail, but MATLAB also defines the upper-tail version differently than some other systems such as Maple do. Where MATLAB defines the upper tail as 1 - gammainc(a,x), MAPLE uses gamma(a) in place of 1, creating the "complementary upper gamma function". And in that usage of "incomplete gamma" there is a solution, at approximately 8.307413412
Sean de Wolski
Sean de Wolski le 24 Mai 2013
optimoptions is new in R2013a. If you're using an older release, use optimset which has a slightly different syntax.
Jamal Ahmad
Jamal Ahmad le 24 Mai 2013
Thank you very much. I use R2012a. Now it works.
options = optimset('tolfun',10^-10,'tolx',10^-12); xv = fminunc(@(x)(gammainc(5,x)-(10^-4)).^2,4,options) gammainc(5,xv)
Jamal Ahmad
Jamal Ahmad le 24 Mai 2013
now I have this warning:
Warning: Gradient must be provided for trust-region algorithm; using line-search algorithm instead. > In fminunc at 367 In test_2 at 12

Connectez-vous pour commenter.

Plus de réponses (2)

Walter Roberson
Walter Roberson le 24 Mai 2013

0 votes

It appears to me that you will need to proceed numerically.
Matt J
Matt J le 24 Mai 2013
xv = fzero(@(z) gammainc(5,z.^2)- 2 , sqrt(xguess)).^2;

Catégories

Community Treasure Hunt

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

Start Hunting!

Translated by