Evaluating a function with Matlab

1 view (last 30 days)
Hello friends,
Can anyone help me figure out why I am getting an imaginary number in the following code:
I am supposed to get 1.36. I have done the same calculation using my scientific calculator and symbolab and cannot find what the error is in my code.
  1 Comment
KSSV
KSSV on 18 May 2022
t = 10 ;
f = -((t-16.82)/5.604)^1.576
f = -0.3223 + 1.3241i
The result is clear, you are taking exponent of a negative number.

Sign in to comment.

Accepted Answer

Stephen23
Stephen23 on 18 May 2022
Edited: Stephen23 on 18 May 2022
"Can anyone help me figure out why I am getting an imaginary number in the following code:"
Because you are taking the power of a negative number.
"I am supposed to get 1.36."
The simple, effiicient, MATLAB approach is to use REALPOW:
t = 10 ;
f = realpow(-((t-16.82)/5.604),1.576)
f = 1.3627

More Answers (1)

Torsten
Torsten on 18 May 2022
Edited: Torsten on 18 May 2022
Then you have to program it as
t = 10;
f = sign(t-16.82).*abs((t-16.82)/5.604).^1.576
An expression
x^a
for x<0 is complex-valued.

Categories

Find more on Graphics Performance in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!