check_curve: Checks a curve and decides for its convexity type

View source: R/check_curve.R

check_curveR Documentation

Checks a curve and decides for its convexity type

Description

Given a planar curve with discrete (xi,yi) points this function can find if it is convex, concave or for the sigmoid case if it is convex/concave or concave/convex.

Usage

check_curve(x, y)

Arguments

x

The numeric vector of x-abscissas

y

The numeric vector of y-abscissas

Details

It uses the function findipl which provides us with a consistent estimator for the surfaces left and right that are used here, see [1],[2] for more details.

Value

A list with members:

  1. ctype, the convexity type of the curve

  2. index, the index that can be used from other functions to identify the inflection point

Note

If we do not have a visual inspection of our data, then this function is useful because it can automate the usage of all other functions that compute the inflection point.

Author(s)

Demetris T. Christopoulos

References

[1]Demetris T. Christopoulos (2014). Developing methods for identifying the inflection point of a convex/concave curve. arXiv:1206.5478v2 [math.NA]. https://arxiv.org/pdf/1206.5478v2.pdf

[2]Demetris T. Christopoulos (2016). On the efficient identification of an inflection point.International Journal of Mathematics and Scientific Computing, (ISSN: 2231-5330), vol. 6(1). https://veltech.edu.in/wp-content/uploads/2016/04/Paper-04-2016.pdf

[3]Bardsley, W. G. & Childs, R. E. Sigmoid curves, non-linear double-reciprocal plots and allosterism Biochemical Journal, Portland Press Limited, 1975, 149, 313-328

See Also

findipl, ese, ede, bese, bede .

Examples

## Lets create a really hard data set, an exxample of a "2:2 function" taken from [3]
## This function for x>0 has an inflectrion point at 
## x = -1/8+(1/24)*sqrt(381) = 0.6883008876 ~0.69
## We want to see ,if function 'check_curve()' will proper classify it,
## given that we used [0.2,4] as definition range.
f=function(x){(1/8*x+1/2*x^2)/(1+1/8*x+1/2*x^2)}
x=seq(0.2,4,0.05)
y=f(x)
plot(x,y,pch=19,cex=0.5)
cc=check_curve(x,y)
cc
## $ctype
## [1] "convex_concave"
## 
## $index
## [1] 0
##
## Yes it found it.

inflection documentation built on June 15, 2022, 5:07 p.m.