# piecewiseLinearApproximation-methods: Piecewise Linear Approximation of a Fuzzy Number In FuzzyNumbers: Tools to Deal with Fuzzy Numbers

## Description

This method finds a piecewise linear approximation P(A) of a given fuzzy number A by using the algorithm specified by the `method` parameter.

## Usage

 ```1 2 3 4 5 6``` ```## S4 method for signature 'FuzzyNumber' piecewiseLinearApproximation(object, method=c("NearestEuclidean", "SupportCorePreserving", "Naive"), knot.n=1, knot.alpha=seq(0, 1, length.out=knot.n+2)[-c(1,knot.n+2)], ..., verbose=FALSE) ```

## Arguments

 `object` a fuzzy number `...` further arguments passed to `integrateAlpha` [only `"NearestEuclidean"` and `"SupportCorePreserving"`] `method` character; one of: `"NearestEuclidean"` (default), `"SupportCorePreserving"`, or `"Naive"` `knot.n` desired number of knots (if missing, then calculated from given `knot.alpha`) `knot.alpha` alpha-cuts at which knots will be positioned (defaults to equally distributed knots) `verbose` logical; should some technical details on the computations being performed be printed? [only `"NearestEuclidean"`]

## Details

'`method`' may be one of:

1. `NearestEuclidean`: see (Coroianu, Gagolewski, Grzegorzewski, 2013 and 2014a); uses numerical integration, see `integrateAlpha`. Slow for large `knot.n`.

2. `SupportCorePreserving`: This method was proposed in (Coroianu et al., 2014b) and is currently only available for `knot.n==1`. It is the L2-nearest piecewise linear approximation with constraints core(A)==core(P(A)) and supp(A)==supp(P(A)); uses numerical integration.

3. `Naive`: We have core(A)==core(P(A)) and supp(A)==supp(P(A)) and the knots are taken directly from the specified alpha cuts (linear interpolation).

## Value

Returns a `PiecewiseLinearFuzzyNumber` object.

## References

Coroianu L., Gagolewski M., Grzegorzewski P. (2013), Nearest Piecewise Linear Approximation of Fuzzy Numbers, Fuzzy Sets and Systems 233, pp. 26-51.

Coroianu L., Gagolewski M., Grzegorzewski P., Adabitabar Firozja M., Houlari T. (2014a), Piecewise linear approximation of fuzzy numbers preserving the support and core, In: Laurent A. et al. (Eds.), Information Processing and Management of Uncertainty in Knowledge-Based Systems, Part II (CCIS 443), Springer, pp. 244-254.

Coroianu L., Gagolewski M., Grzegorzewski P. (2014b), Nearest Piecewise Linear Approximation of Fuzzy Numbers - General Case, submitted for publication.

Other approximation: `trapezoidalApproximation()`
Other FuzzyNumber-method: `Arithmetic`, `Extract`, `FuzzyNumber-class`, `FuzzyNumber`, `alphaInterval()`, `alphacut()`, `ambiguity()`, `as.FuzzyNumber()`, `as.PiecewiseLinearFuzzyNumber()`, `as.PowerFuzzyNumber()`, `as.TrapezoidalFuzzyNumber()`, `as.character()`, `core()`, `distance()`, `evaluate()`, `expectedInterval()`, `expectedValue()`, `integrateAlpha()`, `plot()`, `show()`, `supp()`, `trapezoidalApproximation()`, `value()`, `weightedExpectedValue()`, `width()`
 ```1 2 3 4``` ```(A <- FuzzyNumber(-1, 0, 1, 3, lower=function(x) sqrt(x),upper=function(x) 1-sqrt(x))) (PA <- piecewiseLinearApproximation(A, "NearestEuclidean", knot.n=1, knot.alpha=0.2)) ```