Expressing a root of a cubic polynomial as a series

  • #1
250
0
Is there a good way to do this?

I have an equation, say x^3 - 4*x^2 + 2, so a=1, b=-4, c=0, d=2.

Is there an easy way to express the largest root of such an equation? In this case, the roots are:

3.8661982625090223
-0.65544238154983
0.7892441190408067

But I am trying to find an easier way to extract that 3.866 root in such a way that I can express it in terms of as many digits as I want (incrementally, so as to not waste computer memory doing crazy float math). I've tried looking at the wiki entries for cubic functions and Taylor expansions but I feel like I'm hitting a brick wall.

Apologies if my question is not clear.
 

Answers and Replies

  • #2
250
0
And yes, I'm aware of Newton's Method, but the problem is that it requires me to divide a function by its derivative, which ultimately results in a decimal of infinite length (meaning I have to truncate it and lose information).
 
  • #3
2,087
461
And yes, I'm aware of Newton's Method, but the problem is that it requires me to divide a function by its derivative, which ultimately results in a decimal of infinite length (meaning I have to truncate it and lose information).
How about the bisection method? Of course there are also limitations (as with every other numerical method) but it is not as worse as with Newton.
 
  • #5
I like Serena
Homework Helper
6,577
176
Just of the top of my head:

You could calculate the extrema (set derivative to zero).
Pick a point to the left of the leftmost extrema, calculate the tangent line and intersect it with the x-axis.
There! A lower bracket.

If there are no extrema, search left and right with some step, until your signs are different.
There! A bracket.
 
  • #6
250
0
My problem isn't finding roots -- it's returning arbitrarily long decimal expansions
 
  • #7
I like Serena
Homework Helper
6,577
176
Ah sorry, my bad.

Well, you could simply calculate all roots and pick the biggest.

The solution of [itex]x^3+ax^2+bx+c = 0[/itex] is:

[itex]Q={a^2-3b \over 9}[/itex]

[itex]R={2a^3-9ab +27c \over 54}[/itex]

if [itex]R^2 < Q^3[/itex] then

[itex]\theta=\arccos(R / \sqrt{Q^3})[/itex]

[itex]x_1=-2\sqrt Q \cos({\theta \over 3}) - {a \over 3}[/itex]

[itex]x_2=-2\sqrt Q \cos({\theta + 2\pi \over 3}) - {a \over 3}[/itex]

[itex]x_3=-2\sqrt Q \cos({\theta - 2\pi \over 3}) - {a \over 3}[/itex]​

else

[itex]A=-sgn(R)\left[|R| + \sqrt{R^2-Q^3}\right]^{1 \over 3}[/itex]

[itex]B=(Q/A) \text{ if } (A \ne 0) \text{ or 0 otherwise}[/itex]

[itex]x_1=(A+B) - {a \over 3}[/itex]​

fi
 
  • #8
250
0
Right, but I mean how do I then take that sort of formulation and then spit out, say, N digits, where I'm dealing with each digit as a standalone entity?

ex:

for N in range (1, 100):
return Nth digit of cubic root
 
  • #9
I like Serena
Homework Helper
6,577
176
Sorry, I finally understand what you're asking, but I've got no clue. :frown:
 

Related Threads on Expressing a root of a cubic polynomial as a series

Replies
2
Views
3K
Replies
4
Views
845
Replies
2
Views
2K
Replies
16
Views
3K
  • Last Post
Replies
4
Views
3K
Replies
4
Views
1K
  • Last Post
Replies
10
Views
6K
Replies
4
Views
2K
  • Last Post
Replies
12
Views
5K
  • Last Post
Replies
1
Views
2K
Top