PHP Class MathPHP\NumericalAnalysis\NumericalDifferentiation\FivePointFormula

In numerical analysis, the five point formula is used for approximating the derivative of a function at a point in its domain. We can either directly supply a set of inputs and their corresponding outputs for said function, or if we explicitly know the function, we can define it as a callback function and then generate a set of points by evaluating that function at 5 points between a start and end point.
Inheritance: extends NumericalDifferentiation
Exibir arquivo Open project: markrogoyski/math-php

Public Methods

Method Description
differentiate ( numbers $target, $source, $args ) : number Use the Five Point Formula to aproximate the derivative of a function at our $target. Our input can support either a set of arrays, or a callback function with arguments (to produce a set of arrays). Each array in our input contains two numbers which correspond to coordinates (x, y) or equivalently, (x, f(x)), of the function f(x) whose derivative we are approximating.

Method Details

differentiate() public static method

The Five Point Formula requires we supply 5 points that are evenly spaced apart, and that our target equals the x-components of one of our 5 points. Example: differentiation(2, function($x) {return $x**2;}, 0, 4 ,5) will produce a set of arrays by evaluating the callback at 5 evenly spaced points between 0 and 4. Then, this array will be used in our approximation. Five Point Formula: - If the 3rd point is our $target, use the Midpoint Formula: 1 h⁴ f′(x₀) = - [f(x₀-2h)-8f(x₀-h)+8f(x₀+h)-f(x₀+2h)] - - f⁽⁵⁾(ζ₁) 12h 30 where ζ₁ lies between x₀ - 2h and x₀ + 2h - If the 1st or 5th point is our $target, use the Endpoint Formula: - Note that when the 3rd point is our $target, we use a negative h. 1 h⁴ f′(x₀) = - [-25f(x₀)+48f(x₀+h)-36f(x₀+2h)+16f(x₀+3h)-3f(x₀+4h)] + - f⁽⁵⁾(ζ₀) 12h 5 where ζ₀ lies between x₀ and x₀ + 4h
public static differentiate ( numbers $target, $source, $args ) : number
$target numbers The value at which we are approximating the derivative
$source The source of our approximation. Should be either a callback function or a set of arrays. Each array (point) contains precisely two numbers, an x and y. Example array: [[1,2], [2,3], [3,4], [4,5], [5,6]]. Example callback: function($x) {return $x**2;}
return number The approximation of f'($target), i.e. the derivative of our input at our target point