Message Boards Message Boards

0
|
5710 Views
|
22 Replies
|
7 Total Likes
View groups...
Share
Share this post:

How can Wolfram|Alpha get all 5 solutions?

The equation
x^5-3x^(2+0.3i)-32=0
has 5 solutions.
How can Wolfram get all 5 solutions?

POSTED BY: Sergey Berezin
22 Replies

I gather you are seeking a way to handle such equations using different branches of the logarithm. That can be done by defining your own power function, parametrized by integers.

myPower[x_, y_, n_Integer] := Exp[y*(Log[x] + 2*Pi*I*n)]

For example:

x^5 - 3*myPower[x, 2 + .3*I, 1] - 32 /. 
 x -> -1.5940218425876456 - 1.2172363174830494*I

(*Out[10]= -4.26326*10^-14 - 1.86517*10^-14 I *)

This is likely to be the simplest way to go about working with such expressions.

As for built in Power, I can guarantee that behavior will not be changed.

POSTED BY: Daniel Lichtblau

Thanks Daniel Lichtblau

POSTED BY: Sergey Berezin

Thanks for the clear answer. It turns out that mathematics depends on programmers for all resources. I know of only 2 resources that are oriented in branching after the complex logarithm. But their programmers can't work with big numbers. They use number type = number. It has an accuracy of only 2^52. And Wolfram's accuracy is unlimited. For the sake of mathematicians who need it, ask your programmers to work with ramifications after the complex logarithm.

It is not difficult to create this order. It is enough to focus on the value of the value "n" in the complex logarithm formula. They can use the existing experience of these resources. Everything is simple there. Each root, each branch on its shelf. The shelf shows who was received and how, and this is enough to know with whom and how to work. I'm attaching to this post a research report on ultra-radical function. See how easy it is to navigate through different roots, different branches. Any student will understand this.

Attachments:
POSTED BY: Sergey Berezin

Daniel Lichtblau. Understand that not only your branch is eligible to apply. Here is one solution to this equation. How will you use it if you don't know what branch it is from?!!! (-1.5940218425876456 -1.2172363174830494i)^(2+0.3i) 0,07430109274278866+1,2867625442131887i, n=0 0,48935160069992917+8,474697847462767i, n=-1 0,011281566004640335+0,19537662285926974, n=1 (X+xi)^(Y+yi)=e^((Y+yi)*Ln(X+xi)) Ln(X+xi)=ln((X^2+x^2)^(1/2))+i(f+2Pn), tg(f)=x/X, n=0,1,2... It's pointless. The branch must be specified. Otherwise, you will not know what to do with this decision.

How will you use it if you don't know what branch it is from?!!!

POSTED BY: Sergey Berezin

(And yet again,...) that value is not a solution to the original equation. It might be a solution to a related equation, one that uses a different branch of the complex logarithm in defining the power function. But it is not an approximate solution to the equation.

As a related note, if you expect x^(2+.3*I) to have multiple values, you will need to use different software to support that. In the Wolfram Language Power is uniquely defined.

POSTED BY: Daniel Lichtblau

@Daniel Lichtblau. The problem is visible due to the lack of a link to the branch. I will give you the root x= -1.5940218425876456 -1.2172363174830494i But I won't tell you what branch it is from. Then you won't be able to use it. The number of branches is infinite. For example, you want to know if x^5-3x^(2+0.3i)-32=0 is equal or not. You need to find a branch like a needle in a haystack. And if I tell another person that the branch is from n=0 He gets it right the first time. (X+xi)^(Y+yi)=e^((Y+yi)(ln((X^2+x^2)^(1/2))+i(arctg(x/X)+2Pn)))

What's the use of knowing this solution if you don't know which branch it's from? At such roots, a branch must be indicated. I attached an example where you can see how short, but it is clear which branch has which roots. Without such a signature, the roots of the unknown branch are meaningless.

Attachments:
POSTED BY: Sergey Berezin

Again, the logarithm Log in Mathematica/Wolfram Language is defined using the principal branch. The Power function is defined as a^b == Exp[Log[a]*b]. There is no issue of what branch is being used: It's the principal branch by definition, so -Pi<Arg[Log[a]]<=Pi. All roots of the transcendental equation in question are based on this definition.

POSTED BY: Daniel Lichtblau

@NeilSinger Not much I can add. The five solutions all validate just fine. The claim that two are incorrect is just wrong. Mathematica uses the (standard) principal branch of the logarithm, and this is then used in the definition of powers. So possibly there is just a misunderstanding on the part of the original poster about the definition of x^(2+.3*I).

I will note that FindRoot replicates the two in question (given suitable starting points). So there is general agreement between different methodologies.

POSTED BY: Daniel Lichtblau

Sergei,

Every time I’ve seen discrepancies like this it usually stems from a definition or branch cut in a function (probably related to the issue Gianluca pointed out). You have surpassed my knowledge of mathematics on this one! I would ask someone with deeper understanding of mathematics and Mathematica such as @Daniel Lichtblau. He may have some insight and suggestions for you.

Regards

Neil

POSTED BY: Neil Singer

Dear Gianluca Gorni. You're right. We are the problem with this. Prudent calculators suggest choosing what n is equal to. To know how to process it later and why such a result. When not chosen, by default, n=0, so that different researchers who solve the same problem with different methods do not get disappointed in each other. We need Wolfram to do the same. It is rarely important, but when it is important, it is very important.

POSTED BY: Sergey Berezin

Sorry, I meant

generalLogI = Solve[E^x == I, x][[1]]
threeSampleValuesForLogI = 
 generalLogI /. {{C[1] -> 0}, {C[1] -> 1}, {C[1] -> -1}}
E^(I x) /. threeSampleValuesForLogI
POSTED BY: Gianluca Gorni

Raising a complex number to another complex number is an operation fraught with trouble. It has infinitely many different values. Take for example I^I. Mathematica assumes that this means Exp[I Log[I]], where Log[I] is the principal value of the Logarithm, which is an arbitrary choice. Other values for the Log give different results for I^I:

generalLogI = Solve[E^x == I, x][[1]]
threeSampleValuesForLogI = 
 logI /. {{C[1] -> 0}, {C[1] -> 1}, {C[1] -> -1}}
E^(I x) /. threeSampleValuesForLogI

I am not sure, but the disagreement of the results may stem from different choices for the complex logarithm.

POSTED BY: Gianluca Gorni

Dear Neil Singer? спасибо за ваше исследования. To understand who is wrong, look at your calculator for what it is (-1,46272237563773 - 1,44560206980216 i)^(2+0.3i)

A: =-1.74483229995554 + 8.41151553899432*i

OR B: = -0,2649280115795637 + 1,2771692076895944 i

From the point of view of the operation of raising to a complex power, a complex number, they are both correct. But from the point of view of the equation, there are only 5 solutions. One method produces some solutions, and the other method gives different solutions. So which one is correct? How the calculator should raise to a complex power: (X+xi)^(Y+yi)=e^((Y+yi)*Ln(X+xi)) Ln(X+xi)=ln((X^2+x^2)^(1/2))+i(f+2Pn), tg(f)=x/X, n=0,1,2... My calculator takes n=0 Your calculator takes n=-1. Both your calculator and mine do not violate the rule of raising to a complex power, but they give different consequences. So that the consequences do not contradict, we must take n=0. Why does your calculator take n=-1? If he doesn't take n=0, then let him take n=-5, +27... How to be in this situation? Whose calculator is set up correctly? Only in fairness, not in favor of authority, with a strange choice of n=-1

Equation solutions x^5-3x^(2+0,3i)-32 Total 5. My calculator showed some roots, yours others. Who to believe?

POSTED BY: Sergey Berezin

As you saw above, I separately verified the roots are correct by substituting them back into the original equation. It seems highly improbable that Solve would get the answer wrong and then Mathematica would suddenly be unable to compute a polynomial numerically (and in a way that happens to exactly match an error in the Solve routine). It seems most likely that your reference has an error since it appears to have been derived manually (or there was a typographical error). For completeness, I tried this expression in an independent complex number calculator and I do not get your answer.

x≈-1.46272237563773 - 1.44560206980216 i x^5-3x^(2+0.3i)-32=-4,439712865010737 + 21,40303899299964 I

I get 0.

POSTED BY: Neil Singer

You can set the precision to at least 100 digits. But these 2 solutions when x≈-1.46272237563773 - 1.44560206980216 i x^5-3x^(2+0.3i)-32=-4,439712865010737 + 21,40303899299964 i

when x≈0.41631317642439 - 1.80284912785277 i x^5-3x^(2+0.3i)-32=-10,468522626439754 - 7,7696708390686755 i

they will never give 0. These decisions are false. True solutions and a graph with points in the complex plane are shown in the book on the ultraradical. Take a look and see for yourself. I am attaching these graphs and a table of true solutions to this post.

Attachments:
POSTED BY: Sergey Berezin
S = Solve[x^5 - 3 x^(2 + 3/10* I) - 32 == 0 && -10 < Re[x] < 10 && -10 < Im[x] < 10, x]
x^5 - 3 x^(2 + 3/10* I) - 32 == 0 /. S // FullSimplify

(*{True, True, True, True, True}*)

Exact solution.

POSTED BY: Mariusz Iwaniuk

x ≈ 0.4163131764243939365848417988905193285865 - 1.802849127852765001086475519941363599262 i when (X+xi)^(Y+yi)=e^((Y+yi)*Ln(X+xi)) Ln(X+xi)=ln((X^2+x^2)^(1/2))+i(f+2Pn), tg(f)=x/X, n=-1

POSTED BY: Sergey Berezin
x^5 - 3 x^(2 + 3/10*I) - 32 == 0 /. 
 x -> 0.4163131764243939365848417988905193285865 - 
   I*1.802849127852765001086475519941363599262
(*True*)
POSTED BY: Mariusz Iwaniuk

Yes. if n=-1 when x^(2+3i/10) (X+xi)^(Y+yi)=e^((Y+yi)*Ln(X+xi)) Ln(X+xi)=ln((X^2+x^2)^(1/2))+i(f+2Pn), tg(f)=x/X, n=0,1,2...

POSTED BY: Sergey Berezin

Sergey,

Michael's answer seems correct to me to machine precision. You get a warning about machine precision and an answer. The warning is that you are only getting answers to machine precision and no better. You can get better precision if you use 3/10 instead of 0.3 and you can them specify any precision you want. For example:

In[22]:= ans = 
 Solve[x^5 - 3 x^(2 + 3 I/10) - 32 == 0 && -10 < Re[x] < 10 && -10 < 
    Im[x] < 10, x, WorkingPrecision -> 50]

Out[22]= {{x -> -1.6109463314351326392988566553712692531598610618242 \
+ 1.2464743105597007675161723821942332067829191674769 I}, {x -> \
-1.4627223756377303297165335908679364247281052953771 - 
    1.4456020698021564339153511956933357083440670693014 I}, {x -> 
   0.4163131764243939365848417988905193285864645894657 - 
    1.8028491278527650010864755199413635992617259467944 I}, {x -> 
   0.5487474851393810132123387637492439707377603539200 + 
    1.8272260736037174136816701325357997471978574779219 I}, {x -> 
   2.1448022395172964092246332752422095752340324284946 + 
    0.0334120451626065251059523893164733974520934509475 I}}

You can confirm your answer with:

In[23]:= x^5 - 3 x^(2 + 3 I/10) - 32 /. ans

Out[23]= {0.*10^-48 + 0.*10^-48 I, 0.*10^-48 + 0.*10^-48 I, 
 0.*10^-48 + 0.*10^-48 I, 0.*10^-48 + 0.*10^-48 I, 
 0.*10^-48 + 0.*10^-48 I}

So you are getting close to 50 digits of precision here.

Michael's answer was correct to machine precision (15 digits on my machine) with is usually all anyone ever needs.

Regards,

Neil

POSTED BY: Neil Singer

Dear Michael Rogers. You gave 2 false solutions. It costs someone a fortune. Therefore, false solutions cannot be given. Let Wolfram check his decisions himself.

when x≈-1.61094633143513 + 1.24647431055970 i x^5-3x^(2+0.3i)-32=-2.2382096176443156e-13 - 1.1102230246251565e-13 i

when x≈-1.46272237563773 - 1.44560206980216 i x^5-3x^(2+0.3i)-32=-4,439712865010737 + 21,40303899299964 i

when x≈0.41631317642439 - 1.80284912785277 i x^5-3x^(2+0.3i)-32=-10,468522626439754 - 7,7696708390686755 i

when x≈0.54874748513938 + 1.82722607360372 i x^5-3x^(2+0.3i)-32=1.5631940186722204e-13 + 1.3011813848606835e-13 i

when x≈2.14480223951730 + 0.03341204516261 i x^5-3x^(2+0.3i)-32=3.410605131648481e-13 + 3.3173463975799677e-13 i

I ask again. How can Wolfram get all 5 solutions of the equation x^5-3x^(2+0.3i)-32=0. But be sure not to make false decisions. Only true solutions are required.

POSTED BY: Sergey Berezin

I don't know which Wolfram product you wish to use but this Alpha query shows five solutions.

This WL command does too:

Solve[x^5 - 3 x^(2 + 0.3 I) - 32 == 0 && 
  -10 < Re[x] < 10 && -10 < Im[x] < 10, x]

For a transcendental equation (which this is because of x^(2 + 0.3 i)), one often needs to specify a bounded domain.

POSTED BY: Michael Rogers
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract