MATLAB: Power function give a complex number result

powerrosin-rammler

I have tried to create Rosin-Rammler function for own use with my code
function q = rosinrammler(x, x50, n)
q = 1 – exp((-x/x50)^n);
However, when I input the value for example x = 2e-9, x50 = 100e-9 and n = 0.1 the output show me the complex number such as
q = rosinrammler(2e-9, 100e-9, 0.1)
q =
-0.861067915307539 – 0.394670349292600i
Where I think the result shoud be real number such as 0.491476239432908. This results I mannually calculate from 1 – exp(-0.02^0.1). I have found that the complex numer is generated when I try to power (-x/x50)^n.
So if anyone can help me, please I am very appreciate
Thank you
Bundit

Best Answer

1 - exp(-0.02^0.1)
implies taking 0.02^0.1 and taking the negative of that, and taking exp() of the result; this would be the same as 1/exp(0.02^01)
However, that is not what is coded. What is coded is exp((-x/x50)^n) which is exp((-positive/positive)^n) which is exp((negative number)^n) . negative number raised to a non-integer power is going to give a complex result
Be careful with where you put the negative signs.