I have forgotten

• https://me.yahoo.com
COST (GBP)
0.75
0.00
0

# taylor

Computes the first and second derivatives of a function using the Taylor formula.
Controller: CodeCogs

C++

## Overview

This module computes the first or second numerical derivatives of a function at a particular point using the Taylor formula. The advantage is that the interval used in computing the numerical derivative need not be symmetrical around the given point.

## References:

Mihai Postolache - "Metode Numerice", Editura Sirius

### Authors

Lucian Bentea (September 2006)

## Taylor1

 doubletaylor1( double (*f)(double)[function pointer] double x double h double gamma = 1.0 )[inline]
Consider a function  that is three times differentiable on its domain, and three abscissas  such that

where  are real positive constants. Then the approximate value of the first derivative  at the abscissa  is given by:



or



In the case  we have an error bound of:

while in the case when  the error is given by:

where  and . The error estimate for  comes from the Taylor formula applied to the given function  at point .

On account of the above relations you may notice that the error approaches zero as  approaches zero for , and as  approaches zero for .

### Example 1

Below we give an example of how to compute the first numerical derivative of  at point , considering  (equally spaced abscissas). The absolute error from the actual value of the derivative at that point is also displayed.
#include <codecogs/maths/calculus/diff/taylor.h>
#include <stdio.h>
#include <math.h>

// precision constant
#define H 0.001

// function to differentiate
double f(double x)
{
return cos(x);
}

// the derivative of the function, to estimate errors
double df(double x)
{
return -sin(x);
}

int main()
{
// display precision
printf("         h = %.3lf\n\n", H);

// compute the numerical derivative
double fh = Maths::Calculus::Diff::taylor1(f, 1, H);

// display the result and error estimate
printf("      f(x) = cos(x)\n");
printf("     f(1) = %.15lf\n", fh);
printf("real value = %.15lf\n", df(1));
printf("     error = %.15lf\n\n", fabs(fh - df(1)));

return 0;
}
Output
h = 0.001

f(x) = cos(x)
f(1) = -0.841470844562695
real value = -0.841470984807897
error = 0.000000140245202

### Parameters

 f the function to differentiate x the abscissa at which you want to compute the first derivative h the value of the precision constant h gamma Default value = 1.0

### Returns

The first numerical derivative of the given function at the x abscissa.
##### Source Code

Source code is available when you buy a Commercial licence.

Not a member, then Register with CodeCogs. Already a Member, then Login.

## Taylor2

 doubletaylor2( double (*f)(double)[function pointer] double x double h double gamma = 1.0 )[inline]
Consider a function  that is four times differentiable on its domain, and three abscissas  such that

where  are real positive constants. Then the approximate value of the second derivative  at the abscissa  is given by:



or



In the case  we have an error bound of:

while in the case when  the error is given by:

where  and . The error estimate for  comes from the Taylor formula applied to the given function  at point .

On account of the above relations you may notice that the error approaches zero as  approaches zero for , and as  approaches zero for .

### Example 2

Below we give an example of how to compute the second numerical derivative of  at , considering  (equally spaced abscissas). The absolute error from the actual value of the derivative at that point is also displayed.
#include <codecogs/maths/calculus/diff/taylor.h>
#include <stdio.h>
#include <math.h>

// precision constant
#define H 0.0001

// function to differentiate
double f(double x)
{
return cos(x);
}

// the second derivative of the function, to estimate errors
double d2f(double x)
{
return -cos(x);
}

int main()
{
// display precision
printf("         h = %.4lf\n\n", H);

// compute the numerical derivative
double fh = Maths::Calculus::Diff::taylor2(f, 1, H);

// display the result and error estimate
printf("      f(x) = cos(x)\n");
printf("    f(1) = %.15lf\n", fh);
printf("real value = %.15lf\n", d2f(1));
printf("     error = %.15lf\n\n", fabs(fh - d2f(1)));

return 0;
}
Output
h = 0.0001

f(x) = cos(x)
f(1) = -0.540302319866019
real value = -0.540302305868140
error = 0.000000013997879

### Parameters

 f the function to differentiate x the abscissa at which you want to compute the second derivative h the value of the precision constant h gamma Default value = 1.0

### Returns

The second numerical derivative of the given function at the x abscissa.
##### Source Code

Source code is available when you buy a Commercial licence.

Not a member, then Register with CodeCogs. Already a Member, then Login.