S4 classes and methods to deal with fuzzy numbers. They allow for computing any arithmetic operations (e.g., by using the Zadeh extension principle), performing approximation of arbitrary fuzzy numbers by trapezoidal and piecewise linear ones, preparing plots for publications, computing possibility and necessity values for comparisons, etc.
** FuzzyNumbers Package NEWS **
0.4-6 /2019-02-05/
as.PiecewiseLinearFuzzyNumber
used to truncate the upper knots.0.4-5 /2019-01-15/
as.PiecewiseLinearFuzzyNumber
used to fail for some
TriangularFuzzyNumbers0.4-2 /2018-02-13/
0.4-1 /2015-02-26/
added possibility and necessity functions that represent comparison operators <=,<,>,>= (with tests and description in vignette)
added functions to determine minimum and maximum of two fuzzy numbers (description in vignette)
added operator ^ for calculation of integer power of PiecewiseLinearFuzzyNumber
added function arctan2 for calculation of atan2 with PiecewiseLinearFuzzyNumber arguments
0.3-5 /2014-10-01/
added proper import directives in NAMESPACE
piecewiseLinearApproximation: method="ApproximateNearestEuclidean" no longer accepted; use "NearestEuclidean" instead.
package vignette now in the vignettes/ directory.
0.3-3 /2014-01-03/
piecewiseLinearApproximation() now supports new method="SupportCorePreserving", see Coroianu L., Gagolewski M., Grzegorzewski P., Adabitabar Firozja M., Houlari T., Piecewise Linear Approximation of Fuzzy Numbers Preserving the Support and Core, 2014 (submitted for publication).
piecewiseLinearApproximation() now does not fail on exceptions thrown by integrate(); fallback=Newton-Cotes formula.
Removed Suggests
dependency: testthat tests now available for developers
via the FuzzyNumbers github repository.
Package manual has been corrected and extended.
Package vignette is now only available online at http://FuzzyNumbers.rexamine.com.
0.3-1 /2013-06-23/
piecewiseLinearApproximation() - general case (any knot.n) for method="NearestEuclidean" now available. Thus, method="ApproximateNearestEuclidean" is now deprecated.
New binary arithmetic operators, especially for PiecewiseLinearFuzzyNumbers: +, -, *, /
New method: fapply() - applies a function on a PLFN using the extension principle
New methods: as.character(); also used by show(). This function also allows to generate LaTeX code defining the FN (toLaTeX arg thanks to Jan Caha).
as.FuzzyNumber(), as.TriangularFuzzyNumber(), as.PowerFuzzyNumber(), and as.PiecewiseLinearFuzzyNumber() are now S4 methods, and can be called on objects of type numeric, as well as on various FNs
piecewiseLinearApproximation() and as.PiecewiseLinearFuzzyNumber()
argument knot.alpha
now defaults to equally distributed knots
(via given knot.n
). If knot.n
is missing, then it is guessed
from knot.alpha
.
PiecewiseLinearFuzzyNumber() now accepts missing a1
, a2
, a3
, a4
,
and knot.left
, knot.right
of length knot.n
+2. Moreover, if knot.n
is not given, then it is guessed from length(knot.left).
If knot.alpha
is missing, then the knots will be equally distributed
on the interval [0,1].
alphacut() now always returns a named two-column matrix. evaluate() returns a named vector.
New function: TriangularFuzzyNumber - returns a TrapezoidalFuzzyNumber.
Function renamed: convert.side to convertSide, convert.alpha to convertAlpha, approx.invert to approxInvert
Added a call to setGeneric("plot", function(x, y, ...) ... to avoid a warning on install
The FuzzyNumbers Tutorial has been properly included as the package's vignette
DiscontinuousFuzzyNumber class has been marked as EXPERIMENTAL in the manual
Man pages extensively updated
FuzzyNumbers devel repo moved to GitHub
0.2-1 /2012-12-27/
approx.invert(): a new function to find the numerical inverse of a given side/alpha-cut generating function (by default via Hermite monotonic spline interpolation)
convert.side(), convert.alpha(): new functions to convert sides and alpha cuts to side generating funs and alpha cut generators
FuzzyNumber class validity check for lower, upper, left, right:
Suggests testthat
Each object has been documented
First CRAN release
0.1-1 /2012-07-01/