<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://patrius.cnes.fr/index.php?action=history&amp;feed=atom&amp;title=User_Manual_4.13_Numerical_differentiation_and_integration</id>
	<title>User Manual 4.13 Numerical differentiation and integration - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://patrius.cnes.fr/index.php?action=history&amp;feed=atom&amp;title=User_Manual_4.13_Numerical_differentiation_and_integration"/>
	<link rel="alternate" type="text/html" href="https://patrius.cnes.fr/index.php?title=User_Manual_4.13_Numerical_differentiation_and_integration&amp;action=history"/>
	<updated>2026-04-05T20:01:28Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://patrius.cnes.fr/index.php?title=User_Manual_4.13_Numerical_differentiation_and_integration&amp;diff=3577&amp;oldid=prev</id>
		<title>Admin : Page créée avec « __NOTOC__ == Introduction == === Scope === This section détails numerical differentialtion and integration (not to be misunderstood with numerical integration of ODE). A... »</title>
		<link rel="alternate" type="text/html" href="https://patrius.cnes.fr/index.php?title=User_Manual_4.13_Numerical_differentiation_and_integration&amp;diff=3577&amp;oldid=prev"/>
		<updated>2023-12-19T13:52:47Z</updated>

		<summary type="html">&lt;p&gt;Page créée avec « __NOTOC__ == Introduction == === Scope === This section détails numerical differentialtion and integration (not to be misunderstood with numerical integration of ODE). A... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;__NOTOC__&lt;br /&gt;
== Introduction ==&lt;br /&gt;
=== Scope ===&lt;br /&gt;
This section détails numerical differentialtion and integration (not to be misunderstood with numerical integration of ODE). A focus is realised on:&lt;br /&gt;
* differentiation methods of real univariate functions: Ridders and finite difference.&lt;br /&gt;
* integration methods of real univariate functions : Trapezoidal and Simpson.&lt;br /&gt;
&lt;br /&gt;
=== Javadoc ===&lt;br /&gt;
The numerical differentiator objects are available in the package &amp;lt;code&amp;gt;fr.cnes.sirius.patrius.math.analysis.differentiation&amp;lt;/code&amp;gt;.&lt;br /&gt;
The numerical integrator objects are available in the package &amp;lt;code&amp;gt;fr.cnes.sirius.patrius.math.analysis.integration&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Library&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Javadoc&lt;br /&gt;
|-&lt;br /&gt;
|Patrius&lt;br /&gt;
|[{{JavaDoc4.13}}/fr/cnes/sirius/patrius/math/analysis/differentiation/package-summary.html Package fr.cnes.sirius.patrius.math.analysis.differentiation]&lt;br /&gt;
|-&lt;br /&gt;
|Patrius&lt;br /&gt;
|[{{JavaDoc4.13}}/fr/cnes/sirius/patrius/math/analysis/integration/package-summary.html Package fr.cnes.sirius.patrius.math.analysis.integration]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
Links to the implemented integration methods :&lt;br /&gt;
&lt;br /&gt;
http://mathworld.wolfram.com/TrapezoidalRule.html&lt;br /&gt;
&lt;br /&gt;
http://mathworld.wolfram.com/SimpsonsRule.html&lt;br /&gt;
&lt;br /&gt;
=== Useful Documents ===&lt;br /&gt;
None as of now.&lt;br /&gt;
&lt;br /&gt;
=== Package Overview ===&lt;br /&gt;
The numerical differentiation conception is described hereafter : &lt;br /&gt;
&lt;br /&gt;
[[File:differentiators.png|center]]&lt;br /&gt;
&lt;br /&gt;
Accuracy of integration method (all examples are based on sinus function):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Default setting&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Value&lt;br /&gt;
|-&lt;br /&gt;
|Maximum absolute error&lt;br /&gt;
|1.0e-15&lt;br /&gt;
|-&lt;br /&gt;
|Maximum relative error&lt;br /&gt;
|1.0e-6&lt;br /&gt;
|-&lt;br /&gt;
|Maximum number of iterations&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
|Minimum number of iterations&lt;br /&gt;
|3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note : the accuracy of the results and the computing time are directly dependent on the value of maximum relative error.&lt;br /&gt;
&lt;br /&gt;
== Features Description ==&lt;br /&gt;
&lt;br /&gt;
=== Numerical differentiation ===&lt;br /&gt;
&lt;br /&gt;
==== Finite difference ====&lt;br /&gt;
Finite difference is the discrete analog of the derivative. The user can choose the number of points to use and the step size (the gap between each point).&lt;br /&gt;
&lt;br /&gt;
==== Ridders algorithm ====&lt;br /&gt;
The derivative of a function at a point x is computed using the Ridders method of polynomial extrapolation.&lt;br /&gt;
&lt;br /&gt;
=== Numerical Integration ===&lt;br /&gt;
=== Trapezoidal method ===&lt;br /&gt;
The trapezoidal rule works by approximating the region under the graph of the function as a trapezoid and calculating its area.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
UnivariateFunction f = new SinFunction();&lt;br /&gt;
UnivariateIntegrator integrator = new TrapezoidIntegrator();&lt;br /&gt;
double r = integrator.integrate(10000, f, 0, FastMath.PI);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Result : r = 1.9999996078171345 (exact result = 2)&lt;br /&gt;
&lt;br /&gt;
And :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
integrator = new TrapezoidIntegrator(1.e-12, 1.0e-15, 3, 64);&lt;br /&gt;
r = integrator.integrate(10000000, f, 0, FastMath.PI);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Result : r = 1.9999999999904077&lt;br /&gt;
&lt;br /&gt;
But :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;integrator = new TrapezoidIntegrator(1.e-13, 1.0e-15, 3, 64);&lt;br /&gt;
r = integrator.integrate(10000000, f, 0, FastMath.PI);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Result : r = no result (infinite time !)&lt;br /&gt;
&lt;br /&gt;
=== Simpson method ===&lt;br /&gt;
Simpson&amp;#039;s rule is a Newton-Cotes formula for approximating the integral of a function using quadratic polynomials (i.e., parabolic arcs instead of the straight line segments used in the trapezoidal rule).&lt;br /&gt;
In general, this method has faster convergence than the trapezoidal rule for functions which are twice continuously differentiable, though not in all specific cases.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
UnivariateFunction f = new SinFunction();&lt;br /&gt;
UnivariateIntegrator integrator = new SimpsonIntegrator();&lt;br /&gt;
double r = integrator.integrate(10000, f, 0, FastMath.PI);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Result : r = 2.000000064530001 (exact result = 2)&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
{{specialInclusion prefix=$theme_sub section=&amp;quot;GettingStarted&amp;quot;/}}&lt;br /&gt;
&lt;br /&gt;
== Contents ==&lt;br /&gt;
=== Interfaces ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Interface&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Summary&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Javadoc&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;UnivariateFunctionDifferentiator&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|This interface represents a generic numerical differentiator.&lt;br /&gt;
|[{{JavaDoc4.13}}/fr/cnes/sirius/patrius/math/analysis/differentiation/UnivariateFunctionDifferentiator.html ...]&lt;br /&gt;
|-&lt;br /&gt;
|UnivariateIntegrator&lt;br /&gt;
|Interface for univariate integration algorithms.&lt;br /&gt;
|[{{JavaDoc4.13}}/fr/cnes/sirius/patrius/math/analysis/integration/UnivariateIntegrator.html ...]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Classes ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Class&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Summary&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Javadoc&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;FiniteDifferencesDifferentiator&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Apply the finite difference method to differentiate a function.&lt;br /&gt;
|[{{JavaDoc4.13}}/fr/cnes/sirius/patrius/math/analysis/differentiation/FiniteDifferencesDifferentiator.html ...]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;RiddersDifferentiator&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Apply the Ridders algorithm to differentiate a function.&lt;br /&gt;
|[{{JavaDoc4.13}}/fr/cnes/sirius/patrius/math/analysis/differentiation/RiddersDifferentiator.html ...]&lt;br /&gt;
|-&lt;br /&gt;
|TrapezoidIntegrator&lt;br /&gt;
|The class implements the Trapezoidal rule&lt;br /&gt;
|[{{JavaDoc4.13}}/fr/cnes/sirius/patrius/math/analysis/integration/TrapezoidIntegrator.html ...]&lt;br /&gt;
|-&lt;br /&gt;
|SimpsonIntegrator&lt;br /&gt;
|The class implements the Simpson rule&lt;br /&gt;
|[{{JavaDoc4.13}}/fr/cnes/sirius/patrius/math/analysis/integration/SimpsonIntegrator.html ...]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:User_Manual_4.13_Mathematics]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>