Evaluating a function with Matlab

1 Ansicht (letzte 30 Tage)
Danny Guana
Danny Guana am 18 Mai 2022
Kommentiert: Danny Guana am 18 Mai 2022
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 Kommentar
KSSV
KSSV am 18 Mai 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.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Stephen23
Stephen23 am 18 Mai 2022
Bearbeitet: Stephen23 am 18 Mai 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

Weitere Antworten (1)

Torsten
Torsten am 18 Mai 2022
Bearbeitet: Torsten am 18 Mai 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.

Kategorien

Mehr zu Graphics Performance finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by