# [R] How to solve following equation?

Hans W. Borchers hwborchers at gmail.com
Tue Dec 2 10:02:45 CET 2008

```> I need to solve a equation like this :
>
> a = b/(1+x) + c/(1+x)^2 + d/(1+x)^3
>
> where a,b,c,d are known constant. Is there any R-way to do that?

Multiplying this expression with (1+x)^3 leads to a polynomial equation.
I would certainly recommend the 'PolynomF' package here:

----
# install.packages("PolynomF")
library("PolynomF")

options(digits=16)

x <- polynom()

a <- b <- c <- d <- 1
p <- a*(1+x)^3 - b*(1+x)^2 - c*(1+x) - d
p
# -2 + 2*x^2 + x^3

solve(p)

#  -1.419643377607080-0.6062907292072i
#     -1.419643377607080+0.6062907292072i
#   0.839286755214161+0.0000000000000i
----

The solution x0 = 0.839286755214161 is correct up to the last digit, as can be
verified by using a computer algebra system. This also shows that Ryacas is

Hans Werner

Gabor Grothendieck <ggrothendieck <at> gmail.com> writes:
>
> Assume a = 1.  If not set b = b/a, etc.
> Now use (1) uniroot
>
> > f <- function(x) b + c/(1+x) + d/(1+x)^2 - 1 - x
> > uniroot(f, 0:1)
> \$root
>  0.8392679
>
> \$f.root
>  3.049818e-05
>
> \$iter
>  3
>
> \$estim.prec
>  6.103516e-05
>
> or multiply through by 1+x
> and subtract 1 from both sides giving
> x = b + c/(1+x) + d/(1+x)^2 - 1
> and iterate that.
>
> > a <- b <- c <- d <- 1
> > x <- 0
> > for(i in 1:25) {
> + x <- b + c/(1+x) + d/(1+x)^2 - 1
> + print(x)
> + }
>  2
>  0.4444444
>  1.171598
>  0.6725419
>  0.9553676
>  0.7729558
>  0.8821595
>  0.8135892
>  0.8554268
>  0.829437
>  0.8454056
>  0.835527
>  0.8416126
>  0.837854
>  0.8401717
>  0.838741
>  0.8396236
>  0.839079
>  0.839415
>  0.8392076
>  0.8393356
>  0.8392566
>  0.8393053
>  0.8392753
>  0.8392938
>
> On Mon, Dec 1, 2008 at 9:47 PM, RON70 <ron_michael70 <at> yahoo.com> wrote:
> >
> > I need to solve a equation like this :
> >
> > a = b/(1+x) + c/(1+x)^2 + d/(1+x)^3
> >
> > where a,b,c,d are known constant. Is there any R-way to do that?
> >
> > --
> > View this message in context:
http://www.nabble.com/How-to-solve-following-equation--tp20785063p20785063.html
> > Sent from the R help mailing list archive at Nabble.com.
> >
> > ______________________________________________
> > R-help <at> r-project.org mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-help
> > and provide commented, minimal, self-contained, reproducible code.
> >
>
> ______________________________________________
> R-help <at> r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help