Is an irrational root of a real number imaginary or real?

Click For Summary

Discussion Overview

The discussion revolves around the nature of roots of real numbers, particularly focusing on whether irrational roots yield real, imaginary, or complex results. Participants explore various cases, including positive and negative bases, and the implications of irrational exponents.

Discussion Character

  • Exploratory
  • Technical explanation
  • Debate/contested

Main Points Raised

  • Some participants note that the result of a root operation can depend on whether the degree of the root is odd or even, and raise the question of what occurs with irrational degrees.
  • One participant argues that for positive bases, irrational roots yield real results, while for negative bases, they may not be real, depending on the exponent.
  • Another participant corrects an earlier claim about the square root of a negative number, asserting that it was misrepresented and clarifying the notation used for imaginary numbers.
  • There is a discussion about the multivalued nature of logarithmic functions and how branches are chosen to define them, particularly in relation to complex numbers.
  • A participant shares code related to mathematical functions, indicating an interest in practical applications of the discussed concepts.

Areas of Agreement / Disagreement

Participants express differing views on the nature of roots for negative bases and irrational exponents, with no consensus reached on the implications of these cases. The discussion remains unresolved regarding the specific outcomes of irrational roots.

Contextual Notes

Some participants highlight the complexity of defining roots and logarithms, particularly for negative bases and irrational exponents, indicating that assumptions about the nature of these operations may vary.

hkBattousai
Messages
64
Reaction score
0
We can easily comment the result of a root operation just by the information if the degree of the root is odd or even.

But what if the degree of the root (or power) is irrational?

For example;
[itex]-64 ^ \frac{1}{2} \, = \, j8 \,\,\,\,\, (imaginary)[/itex]
[itex]-64 ^ \frac{1}{3} \, = \, -4 \,\,\,\,\, (real)[/itex]

But what about:
[itex]+7^{\pi - 3} \, = \, 7^{0.14159265...}[/itex]
Is it real, imaginary or complex?
 
Mathematics news on Phys.org
[tex]a^r=e^{r Log a}[/tex] is a root for this exponent and is real for all positive a. Hence 7^pi has a real root. For negative a however we have [tex]\log a = (2\pi k+\pi) i + Log |a|[/tex], so [tex]a^r=e^{r(2\pi k+\pi) i+r Log |a|}=|a|^re^{r(2\pi k+\pi) i}[/tex] which is real only when [tex]e^{r(2\pi k+\pi) i }[/tex] is real. There is a real solution whenever [tex]\sin((2\pi k+\pi)i) = 0[/tex] has a solution for an integer k, that is whenever r(2k+1) is an integer. Hence for negative a and irrational r you will get that a^r is not real.

Note that you cannot speak of "the" root. If r is an integer there are r roots of which only some may be real. For irrational r you will infinitely many roots, but if a is negative, all of them are non-real.
 
Last edited:
Every positive real number has the form e^r for some real number r. Thus for any positive real number a = e^r, and any real number x, we have a^x = (e^r)^x = e^(rx).

Moreover, there is a power series for computing any power of e, i.e.
e^y = 1 + y + y^2/2+ y^3/(2.3) +... Thus for any real number y, e^y is also real.

And thus for any positive real number a = e^r, and any real number x, then a^x = e^(rx), is also real.
 
hkBattousai said:
We can easily comment the result of a root operation just by the information if the degree of the root is odd or even.

But what if the degree of the root (or power) is irrational?

For example;
[itex]-64 ^ \frac{1}{2} \, = \, j8 \,\,\,\,\, (imaginary)[/itex]
[itex]-64 ^ \frac{1}{3} \, = \, -4 \,\,\,\,\, (real)[/itex]
Neither of the other responders noticed this, so I will comment on it. Your first equation is incorrect.
-641/2 = [itex]-\sqrt{64}[/itex] = -8, a real number.

What you no doubt meant but wrote incorrectly was (-64)1/2, which we math people write as 8i.
 
Mark44 said:
Neither of the other responders noticed this, so I will comment on it. Your first equation is incorrect.
-641/2 = [itex]-\sqrt{64}[/itex] = -8, a real number.

What you no doubt meant but wrote incorrectly was (-64)1/2, which we math people write as 8i.

He presumably meant (-64)^(1/2) and wrote j8 where j is the imaginary unit.
 
Thanks for the correction.
"j" is the imaginary unit for engineer people...
 
Oh, those engineers and their jmaginary numbers!
 
Jarle said:
[tex]a^r=e^{r Log a}[/tex] is a root for this exponent and is real for all positive a. Hence 7^pi has a real root. For negative a however we have [tex]\log a = (2\pi k+\pi) i + Log |a|[/tex], so [tex]a^r=e^{r(2\pi k+\pi) i+r Log |a|}=|a|^re^{r(2\pi k+\pi) i}[/tex] which is real only when [tex]e^{r(2\pi k+\pi) i }[/tex] is real. There is a real solution whenever [tex]\sin((2\pi k+\pi)i) = 0[/tex] has a solution for an integer k, that is whenever r(2k+1) is an integer. Hence for negative a and irrational r you will get that a^r is not real.

Note that you cannot speak of "the" root. If r is an integer there are r roots of which only some may be real. For irrational r you will infinitely many roots, but if a is negative, all of them are non-real.

Can I conclude the following equation from your text?

[itex]ln(z)\,=\,ln(re^{j\theta})\,=\,ln(r)\,+\,j(2\pi k\,+\,\theta)[/itex]
 
hkBattousai said:
Can I conclude the following equation from your text?

[itex]ln(z)\,=\,ln(re^{j\theta})\,=\,ln(r)\,+\,j(2\pi k\,+\,\theta)[/itex]

These are the values for the multivalued function ln(z). You would need a rule for choosing k i order to get a function out of this, and that is what we call branches for multivalued functions like log. We usually use the principal value http://en.wikipedia.org/wiki/Complex_logarithm#Definition_of_principal_value.
 
  • #10
Here is my code, looks like to be working fine for now:

These are working OK:
Code:
long double Math::exp(long double num)
{
	long double Ret = 0;
	//long double f, p;
	for (uint8_t i=0; i<=m_PRECISION_TAYLOR_FACTORIAL; i++)
	{
		Ret += UnsignedIntegerPower(num, i) / fact(i);
	}
	return Ret;
}

long double Math::ln(long double num)
{
	long double x_k = 1.0, x_k1;
	for (uint8_t i=0; i<m_PRECISION_NEWTON_QUADRATIC; i++)
	{
		x_k1 = x_k + num * exp(-x_k) - 1.0;
		if (abs(x_k1 - x_k) < m_PRECISION_EPSILON) break;
		x_k = x_k1;
	}
	return x_k1;
}

long double Math::pow(long double base, long double exponent)
{
	bool bNegateResult;
	if ((base < 0.0) && (IsInteger(exponent) == false))
	{			// complex result
		return 0.0;	// we are not dealing with it
	}			// use "ComplexNumber" class for it
	else if ((base < 0.0) && IsOdd(exponent))
	{
		bNegateResult = true;
	}
	else	// if (((base < 0) && IsEven(exponent)) || (base >= 0))
	{
		bNegateResult = false;
	}
	double long Ret = exp(exponent * ln(abs(base)));
	return bNegateResult ? -Ret : Ret;
}

long double Math::root(long double base, long double degree)
{
	return pow(base, static_cast<long double>(1.0) / degree);
}

I haven't test ComplexNumber methods yet:
Code:
ComplexNumber::ComplexNumber(	long double dbRealPartOrRadius/* = 0.0*/,
				long double dbImaginaryPartOrAngle/* = 0.0*/,
				bool bIsRadial/* = false*/)
{
	if (bIsRadial)
	{
		dbRealPartOrRadius = RadialToRealPart(dbRealPartOrRadius, dbImaginaryPartOrAngle);
		dbImaginaryPartOrAngle = RadialToImaginaryPart(dbRealPartOrRadius, dbImaginaryPartOrAngle);
	}
	else
	{
		m_dbRealPart = dbRealPartOrRadius;
		m_dbImaginaryPart = dbImaginaryPartOrAngle;
	}
}

ComplexNumber ComplexNumber::Power(ComplexNumber cn, long double dbDegree)
{
	//long double radius, theta;
	//radius = Math::pow(cn.GetRadius(), dbDegree);
	//theta = Math::GetRreferenceAngle(dbDegree * cn.GetAngle());
	ComplexNumber Ret(	Math::pow(cn.GetRadius(), dbDegree),
				Math::GetRreferenceAngle(dbDegree * cn.GetAngle()),
				true);
	return Ret;
}

std::vector<ComplexNumber> ComplexNumber::FindRoots(ComplexNumber cn, uint64_t nDegree)
{
	std::vector<ComplexNumber> Roots;
	ComplexNumber FirstRoot = Power(cn, 1.0 / static_cast<long double>(nDegree));
	long double radius, theta;
	radius = FirstRoot.GetRadius();
	theta = FirstRoot.GetAngle();
	for (uint64_t k = 0; k<nDegree; k++)
	{
		ComplexNumber ARoot(radius, theta + k * 2.0 * Math::PI / static_cast<long double>(nDegree));
		Roots.push_back(ARoot);
	}
	return Roots;
}
 

Similar threads

  • · Replies 9 ·
Replies
9
Views
2K
  • · Replies 9 ·
Replies
9
Views
12K
  • · Replies 4 ·
Replies
4
Views
4K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 3 ·
Replies
3
Views
1K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 7 ·
Replies
7
Views
3K
  • · Replies 0 ·
Replies
0
Views
3K
  • · Replies 44 ·
2
Replies
44
Views
5K