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 件のコメント

KSSV
KSSV 2022 年 5 月 18 日
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.

サインインしてコメントする。

 採用された回答

Stephen23
Stephen23 2022 年 5 月 18 日
編集済み: Stephen23 2022 年 5 月 18 日

0 投票

"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

1 件のコメント

Danny Guana
Danny Guana 2022 年 5 月 18 日
Many thanks, I understood

サインインしてコメントする。

その他の回答 (1 件)

Torsten
Torsten 2022 年 5 月 18 日
編集済み: Torsten 2022 年 5 月 18 日

1 投票

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.

1 件のコメント

Danny Guana
Danny Guana 2022 年 5 月 18 日
Thanks a lot Torsten

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeLoops and Conditional Statements についてさらに検索

質問済み:

2022 年 5 月 18 日

コメント済み:

2022 年 5 月 18 日

Community Treasure Hunt

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

Start Hunting!

Translated by