# [R] finding value for a parameter in an equation

Frede Aakmann Tøgersen frtog at vestas.com
Wed Apr 23 11:04:09 CEST 2014

```Sorry I made a copy and paste error. To get all the details of the curves between 0 and I had to use:

E <- seq(0,10, len = 2000)

Sorry for the inconvenience.

Yours sincerely / Med venlig hilsen

Frede Aakmann Tøgersen
Specialist, M.Sc., Ph.D.
Plant Performance & Modeling

Technology & Service Solutions
T +45 9730 5135
M +45 2547 6050
frtog at vestas.com
http://www.vestas.com

Company reg. name: Vestas Wind Systems A/S
This e-mail is subject to our e-mail disclaimer statement.

> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org]
> On Behalf Of Frede Aakmann Tøgersen
> Sent: 23. april 2014 10:54
> To: Andras Farkas; r-help at r-project.org
> Subject: Re: [R] finding value for a parameter in an equation
>
> Hi Andras
>
> I suppose you want to find the real root of your equation if such exists for
> the particular settings of the parameters. For that you can use uniroot().
>
> So define a function based on your equation like this:
>
> f <- function(E, D1, D2, IC501, IC502, ECON, ALPHA, M1, M2){
>     1 - D1/(IC501*((E/(ECON-E))^(1/M1)))+D2/(IC502*((E/(ECON-E))^(1/M2)))
> +
>         (ALPHA*D1*D2)/(IC501*IC502*((E/(ECON-E))^(0.5/M1+0.5/M2)))
> }
>
> Now do some plotting to see how the functions behaves:
>
> ## Parameters
> D1 <-c(0.2,0.6,0.8)
> D2 <-c(114,190,304)
> IC501 <-0.62
> IC502 <-137.8
> ECON <-5.95
> ALPHA <-0.00005
> M1 <-0.84
> M2 <-0.96
>
> # vector for E
> E <- seq(1,15, len = 100)
>
> ## three curves for each set of values of D1 and D2
> plot(E, f(E, D1, D2, IC501, IC502, ECON, ALPHA, M1, M2), type = "l", col =
> "red")
> lines(E, f(E, D1, D2, IC501, IC502, ECON, ALPHA, M1, M2), type = "l", col
> = "green")
> lines(E, f(E, D1, D2, IC501, IC502, ECON, ALPHA, M1, M2), type = "l", col
> = "blue")
>
> f() is only defined on the open interval (0;6).
>
> Attached figure shows that there is real roots for the 3 values of  D1 and D2
> somewhere between 0 and 1.
>
> And those can be found as
>
> > uniroot(f, c(0.0001,1), D1=D1, D2=D2, IC501=IC501, IC502=IC502,
> ECON=ECON, ALPHA=ALPHA, M1=M1, M2=M2)
> \$root
>  0.0003440589
>
> \$f.root
>  21.33889
>
> \$iter
>  14
>
> \$init.it
>  NA
>
> \$estim.prec
>  6.103516e-05
>
> > uniroot(f, c(0.0001,1), D1=D1, D2=D2, IC501=IC501, IC502=IC502,
> ECON=ECON, ALPHA=ALPHA, M1=M1, M2=M2)
> \$root
>  0.3840484
>
> \$f.root
>  -9.45929e-05
>
> \$iter
>  9
>
> \$init.it
>  NA
>
> \$estim.prec
>  6.103516e-05
>
> > uniroot(f, c(0.0001,1), D1=D1, D2=D2, IC501=IC501, IC502=IC502,
> ECON=ECON, ALPHA=ALPHA, M1=M1, M2=M2)
> \$root
>  0.1476688
>
> \$f.root
>  -0.001927616
>
> \$iter
>  9
>
> \$init.it
>  NA
>
> \$estim.prec
>  6.103516e-05
>
> >
>
>
> > uniroot(f, c(0.0001,1), D1=D1, D2=D2, IC501=IC501, IC502=IC502,
> ECON=ECON, ALPHA=ALPHA, M1=M1, M2=M2)
> \$root
>  0.3840484
>
> \$f.root
>  -9.45929e-05
>
> \$iter
>  9
>
> \$init.it
>  NA
>
> \$estim.prec
>  6.103516e-05
>
> But
>
>
>
>
> Yours sincerely / Med venlig hilsen
>
>
> Frede Aakmann Tøgersen
> Specialist, M.Sc., Ph.D.
> Plant Performance & Modeling
>
> Technology & Service Solutions
> T +45 9730 5135
> M +45 2547 6050
> frtog at vestas.com
> http://www.vestas.com
>
> Company reg. name: Vestas Wind Systems A/S
> This e-mail is subject to our e-mail disclaimer statement.
>
>
> > -----Original Message-----
> > From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-
> project.org]
> > On Behalf Of Andras Farkas
> > Sent: 22. april 2014 21:33
> > To: r-help at r-project.org
> > Subject: [R] finding value for a parameter in an equation
> >
> > Dear All,
> >
> > please provide some insights for the following:
> >
> > we have:
> >
> > D1 <-c(0.2,0.6,0.8)
> > D2 <-c(114,190,304)
> > IC501 <-0.62
> > IC502 <-137.8
> > ECON <-5.95
> > ALPHA <-0.00005
> > M1 <-0.84
> > M2 <-0.96
> >
> > and the equation:
> >
> > 1 = D1/(IC501*((E/(ECON-E))^(1/M1)))+D2/(IC502*((E/(ECON-
> > E))^(1/M2)))+(ALPHA*D1*D2)/(IC501*IC502*((E/(ECON-
> > E))^(0.5/M1+0.5/M2)))
> >
> > In this equation the value for parameter "E" is what I am trying to calculate
> > (all other parameters are known) for each pairs of D1 and D2 (ie: input
> D1
> > and D2 and the rest of the parameters first then substitute D1 and
> > D2, then substitute D1 and D2). It seems as if the equation can not
> > be re-arranged so that "E" could be directly calculated, so looking to see if
> > you could help me perhaps with a thought on how this could be solved with
> > R,
> >
> > thanks as always,
> >
> > Andras
> > 	[[alternative HTML version deleted]]

```