[R] Solving 100th order equation

Gabor Grothendieck ggrothendieck at gmail.com
Sat May 24 14:42:36 CEST 2008


On Sat, May 24, 2008 at 8:31 AM, Peter Dalgaard
<p.dalgaard at biostat.ku.dk> wrote:
> Shubha Vishwanath Karanth wrote:
>>
>> To apply uniroot I don't even know the interval values... Does numerical
>> methods help me? Or any other method?
>>
>> Thanks and Regards,
>> Shubha
>>
>> -----Original Message-----
>> From: Duncan Murdoch [mailto:murdoch at stats.uwo.ca] Sent: Saturday, May 24,
>> 2008 5:08 PM
>> To: Shubha Vishwanath Karanth
>> Subject: Re: [R] Solving 100th order equation
>>
>> Shubha Vishwanath Karanth wrote:
>>
>>>
>>> Hi R,
>>>
>>>
>>> I have a 100th order equation for which I need to solve the value for x.
>>> Is there a package to do this?
>>>
>>>
>>> For example my equation is:
>>>
>>>
>>> (x^100 )- (2*x^99) +(10*x^50)+.............. +(6*x ) = 4000
>>>
>>>
>>> I have only one unknown value and that is x. How do I solve for this?
>>>
>>>
>>
>> uniroot() will find one root.  If you want all of them, I don't know what
>> is available.
>>
>> Duncan Murdoch
>>
>
> polyroot() is built for this, but it stops at 48th degree polynomials, at
> least as currently implemented. Not sure that it (or anything else) would be
> stable beyond that limit. YACAS perhaps?
>

Unfortunately yacas does not seem to be able to handle it:

> library(Ryacas)
> x <- Sym("x")
> Solve((x^100 )- (2*x^99) +(10*x^50)+(6*x ) - 4000 == 0, x)
[1] "Starting Yacas!"
expression(list())

Simpler one works ok:

> Solve(x^2 - 1, x)
expression(list(x == 1, x == -1))



More information about the R-help mailing list