Evaluating a function with Matlab

6 vues (au cours des 30 derniers jours)
Danny Guana
Danny Guana le 18 Mai 2022
Commenté : Danny Guana le 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 commentaire
KSSV
KSSV le 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.

Connectez-vous pour commenter.

Réponse acceptée

Stephen23
Stephen23 le 18 Mai 2022
Modifié(e) : Stephen23 le 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
  1 commentaire
Danny Guana
Danny Guana le 18 Mai 2022
Many thanks, I understood

Connectez-vous pour commenter.

Plus de réponses (1)

Torsten
Torsten le 18 Mai 2022
Modifié(e) : Torsten le 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.
  1 commentaire
Danny Guana
Danny Guana le 18 Mai 2022
Thanks a lot Torsten

Connectez-vous pour commenter.

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by