R: Polynomial Approximation

polyApprox {pracma} | R Documentation

## Polynomial Approximation

### Description

Generate a polynomial approximation.

### Usage

    polyApprox(f, a, b, n, ...)

### Arguments

`f` | function to be approximated.
`a, b` | end points of the interval.
`n` | degree of the polynomial.
`...` | further variables for function `f`.

### Details

Uses the Chebyshev coefficients to derive polynomial coefficients.

### Value

List with four components:

`p` | the approximating polynomial.
`f` | a function evaluating this polynomial.
`cheb.coeff` | the Chebyshev coefficients.
`estim.prec` | the estimated precision over the given interval.

### Note

The Chebyshev approximation is optimal in the sense of the L^1 norm, but not as a solution of the minimax problem; for this, an application of the Remez algorithm is needed.

### References

Carothers, N. L. (1998). A Short Course on Approximation Theory. Bowling Green State University, URL: http://personal.bgsu.edu/~carother/Approx.html.

### See Also

`chebApprox`, `polyfit`

### Examples

    ##  Example
    #   Polynomial approximation for sin
    polyApprox(sin, -pi, pi, 9)
    # $p
    #  [1]  2.197296e-06  0.000000e+00 -1.937495e-04  0.000000e+00  8.317144e-03
    #  [6]  0.000000e+00 -1.666468e-01  0.000000e+00  9.999961e-01  0.000000e+00
    #
    # $f
    # function (x)
    # polyval(p, x)
    #
    # $cheb.coeff
    #  [1]  0.06549943  0.00000000 -0.58518036  0.00000000  2.54520983  0.00000000
    #  [7] -5.16709776  0.00000000  3.14158037  0.00000000
    #
    # $estim.prec
    # [1] 1.151207e-05

    ## Not run:
    f <- polyApprox(sin, -pi, pi, 9)$f
    x <- seq(-pi, pi, length.out = 100)
    y <- sin(x) - f(x)
    plot(x, y, type = "l", col = "blue")
    grid()
    ## End(Not run)

[Package pracma version 2.0.4 Index]