R: Elliptic functions

Ellint {gsl} | R Documentation

## Elliptic functions

### Description

Elliptic functions as per the Gnu Scientific Library, reference manual section 7.13 and AMS-55, chapter 17. These functions are declared in header file `gsl_sf_ellint.h`

### Usage

    ellint_Kcomp(k, mode=0, give=FALSE,strict=TRUE)
    ellint_Ecomp(k, mode=0, give=FALSE,strict=TRUE)
    ellint_F(phi,k, mode=0, give=FALSE,strict=TRUE)
    ellint_E(phi,k, mode=0, give=FALSE,strict=TRUE)
    ellint_P(phi,k,n, mode=0, give=FALSE,strict=TRUE)
    ellint_D(phi,k, mode=0, give=FALSE,strict=TRUE)
    ellint_RC(x, y, mode=0, give=FALSE,strict=TRUE)
    ellint_RD(x, y, z, mode=0, give=FALSE,strict=TRUE)
    ellint_RF(x, y, z, mode=0, give=FALSE,strict=TRUE)
    ellint_RJ(x, y, z, p, mode=0, give=FALSE,strict=TRUE)

### Arguments

`phi,k,n,p,x,y,z` | input: real values
`give` | Boolean, with default `FALSE` meaning to return just the answers, and `TRUE` meaning to return a status vector as well
`strict` | Boolean
`mode` | input: mode. For `GSL_PREC_DOUBLE`, `GSL_PREC_SINGLE`, `GSL_PREC_APPROX` use `0,1,2` respectively.

### Author(s)

Robin K. S. Hankin

### References

http://www.gnu.org/software/gsl

### Examples

    ellint_Kcomp(0.3)
    ellint_Ecomp(0.3)
    ellint_F(0.4,0.7)
    ellint_E(0.4,0.7)
    ellint_P(0.4,0.7,0.3)
    ellint_D(0.4,0.3)
    ellint_RC(0.5,0.6)
    ellint_RD(0.5,0.6,0.7)
    ellint_RF(0.5,0.6,0.7)
    ellint_RJ(0.5,0.6,0.7,0.1)

    x <- seq(from=0,to=0.5,by=0.01)
    col1 <- ellint_Kcomp(sqrt(x))
    col2 <- ellint_Kcomp(sqrt(1-x))
    col3 <- exp(-pi*col2/col1)
    cbind(x,col1,col2,col3)         #table 17.1, p608

    x <- 0:45
    col1 <- ellint_Kcomp(sin(pi/180*x))
    col2 <- ellint_Kcomp(sin(pi/2-pi/180*x))
    col3 <- exp(-pi*col2/col1)
    cbind(x,col1,col2,col3)       #table 17.2, p610

    x <- seq(from=0,to=90,by=2)
    f <- function(a){ellint_F(phi=a*pi/180,sin(x*pi/180))}
    g <- function(a){ellint_E(phi=a*pi/180,sin(x*pi/180))}
    h <- function(a,n){ellint_P(phi=a*pi/180,sin( a*15*pi/180),n)}
    i <- function(x){ellint_P(phi=x*pi/180, k=sin((0:6)*15*pi/180),  n= -0.6)}

    cbind(x,f(5),f(10),f(15),f(20),f(25),f(30))          #table 17.5, p613
    cbind(x,g(5),g(10),g(15),g(20),g(25),g(30))          #table 17.6, p616

    cbind(i(15),i(30),i(45),i(60),i(75),i(90))           #table 17.9,
                                                         #(BOTTOM OF p625)

[Package gsl version 2.1-6 Index]