# [R] solving equations with several variables

Uwe Ligges ligges at statistik.uni-dortmund.de
Fri Feb 20 08:24:36 CET 2004

```Josh Schmidt wrote:

> I tried:
>
>>f<-function(b,x)-sum(cos(x1+2.33474-2*(atan(b*x2+b*x3))))
>>optim(c(0, 0), f, x1=x1, x2=x2, x3=x3)

Sorry, should have been:

f <- function(b, x1, x2, x3){
-sum(cos(x1+2.33474-2*(atan(b*x2+b*x3))))
}
optim(c(0, 0), f, x1=x1, x2=x2, x3=x3)

Uwe Ligges

> and got this error.
>
> Error in fn(par, ...) : unused argument(s) (x1 ...)
>
> I am trying to solve for the circular-linear regression equation in Fisher
> (1993).
>
>
>
>>===== Original Message From Uwe Ligges <ligges at statistik.uni-dortmund.de>
>
> =====
>
>>Josh Schmidt wrote:
>>
>>>I am relatively new to R, but I would like to use it find the values of b1
>
> and
>
>>>b2 that maximize the following equation:
>>>
>>>(sum(cos(x3+2.33474-2(atan(b1*x1+b2*x2)))))
>>>
>>>Any help would be greatly appreciated.
>>
>>
>>
>>Given b1 and b2 are scalars (we are minimizing f, hence maximizing -f):
>>
>>f <- function(b, x) -sum(cos(x3 + 2.33474 - 2*(atan(b*x1 +
>>b*x2))))
>>optim(c(0, 0), f, x1=x1, x2=x2, x3=x3)
>>
>>
>>Be careful: Do you know the solution is (a) unique and (b) without many
>>local extrema?
>>The function cos() is extremly dangerous for optimization!!! If you
>>REALLY need it *and* you know optimization makes sense, you might want
>>to give method "SANN" a try ...
>>
>>Uwe Ligges
>
>
> Josh Schmidt
> Department of Biology and Wildlife