How do you stop getting complex result when raising negative numbers to the power of a fraction in vectors?

조회 수: 4 (최근 30일)
Hi there I'm trying to do a calulation which involves negative value being risen to the power of a fraction. If I just type the value into the command window it gives the correct result. -0.1544^0.8 = -0.22434... which is same result as wolfram alpha. But in the code it is stored in a vector A which then is raised to the power of 0.8.
If I just take the one element which is the same number -0.1544 of a variable and operate such as A(1).^0.8 it gives the result of -0.1815 + 0.1319i. The complex number is not what I am after and I think it happens with raising a negate number to a power in a vector/matrix. Somehow to do with the way it calcualtes it in the vector like how log(negative) = complex number or something.
I was wondering is there any way how I could change how it caluates these values so it calculates the real answer and not the complex one.
Also it even fails if I just set A = -0.1544 and then A^0.8 so its when it is stored as single variable aswell.
Thanks Jason

답변 (1개)

Walter Roberson
Walter Roberson 2012년 1월 12일
^ is binding more tightly than - here, so when you request
-0.1544^0.8
what you are actually requesting is
-(0.1544^0.8)
and when you use a variable you are requesting the equivalent of
(-0.1544)^0.8
You will have to do some fancy talking to convince me that -0.22434 is a valid solution for that power.
If you want to raise -0.1544 to a power and get -0.22434... as a result, try raising it to (.9477506930285967-0.08786279824413020i)
  댓글 수: 3
Nachum Lerner
Nachum Lerner 2014년 6월 8일
I have a similar problem, if t=-10 and y= t^(1/3) then y= -2.1544 but if t is a vector t=-10:0.01:10 then y will have complex values which shouldn't be there. Any suggestions? Thanks
John D'Errico
John D'Errico 2014년 6월 8일
Nachum - you should ask this as a question, as it is a completely different issue. However, nthroot may be of some service for you.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 MATLAB에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by