How can I simplify numerical calculations in symbolic math toolbox?

Hi there,
When I write this:
fR == simplify((Alpha/uR)*((y/uR)^(Alpha-1))*exp(-(uS/y)^k))
I get something like this:
fR =
(12153*exp(-(10/y)^(601/100))*(y/20)^(11153/1000))/20000
Could you tell me please how to simplify the numerical calculations?! I mean I want the term "(11153/1000))/20000" be printed as "0.000557".
Thanks

 Accepted Answer

Use the vpa function. (If you want to solve an equation and avoid fractions, use the vpasolve function.)

3 Comments

Thanks for your response. It makes the results better but doesn't completely solve the issue. I get the following when I use vpa:
fR =
0.60765*exp(-1.0*(10.0/y)^(601/100))*(0.05*y)^(11153/1000)
So, if this is limited to (11153/1000) that would be fine of course! But do you know if other calculations are always done when you use vpa? Thanks
Actually, that’s essentially what you want. It’s just expressing the decimal fractions literally instead of as decimals. However, I’m not quite certain why it’s rendering, for instance, (11153/1000) as a fraction and not as 11.153. Maybe close enough is good enough for vpa. (I get the same result as you do.)
Exponents are not converted to floating point because a floating point exponent means something different than a rational exponent. With rational exponents you need to worry about multiple roots and principle roots, but with floating point exponent the operation x^(a/b) is defined strictly in terms of exp(a/b * log(x)) which is a single value that is complex in cases where algebraic x^(a/b) might be real-valued.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!