• Stars
    star
    323
  • Rank 129,058 (Top 3 %)
  • Language
    Julia
  • License
    Other
  • Created over 10 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Taylor polynomial expansions in one and several independent variables.

TaylorSeries.jl

A Julia package for Taylor polynomial expansions in one or more independent variables.

CI Coverage Status

DOI DOI

Authors

  • Luis Benet, Instituto de Ciencias Físicas, Universidad Nacional Autónoma de México (UNAM)
  • David P. Sanders, Facultad de Ciencias, Universidad Nacional Autónoma de México (UNAM)

Comments, suggestions and improvements are welcome and appreciated.

Examples

Taylor series in one variable

julia> using TaylorSeries

julia> t = Taylor1(Float64, 5)
 1.0 t + 𝒪(t⁶)

julia> exp(t)
 1.0 + 1.0 t + 0.5+ 0.16666666666666666+ 0.041666666666666664 t⁴ + 0.008333333333333333 t⁵ + 𝒪(t⁶)
 
 julia> log(1 + t)
 1.0 t - 0.5+ 0.3333333333333333- 0.25 t⁴ + 0.2 t⁵ + 𝒪(t⁶)

Multivariate Taylor series

julia> x, y = set_variables("x y", order=2);

julia> exp(x + y)
1.0 + 1.0 x + 1.0 y + 0.5+ 1.0 x y + 0.5+ 𝒪(‖x‖³)

Differential and integral calculus on Taylor series:

julia> x, y = set_variables("x y", order=4);

julia> p = x^3 + 2x^2 * y - 7x + 2
 2.0 - 7.0 x + 1.0+ 2.0 x² y + 𝒪(‖x‖⁵)

julia> (p)
2-element Array{TaylorN{Float64},1}:
  - 7.0 + 3.0+ 4.0 x y + 𝒪(‖x‖⁵)
                    2.0+ 𝒪(‖x‖⁵)

julia> integrate(p, 1)
 2.0 x - 3.5+ 0.25 x⁴ + 0.6666666666666666 x³ y + 𝒪(‖x‖⁵)

julia> integrate(p, 2)
 2.0 y - 7.0 x y + 1.0 x³ y + 1.0 x² y² + 𝒪(‖x‖⁵)

For more details, please see the docs.

License

TaylorSeries is licensed under the MIT "Expat" license.

Installation

TaylorSeries can be installed simply with using Pkg; Pkg.add("TaylorSeries").

Contributing

There are many ways to contribute to this package:

  • Report an issue if you encounter some odd behavior, or if you have suggestions to improve the package.
  • Contribute with code addressing some open issues, that add new functionality or that improve the performance.
  • When contributing with code, add docstrings and comments, so others may understand the methods implemented.
  • Contribute by updating and improving the documentation.

References

  • W. Tucker, Validated numerics: A short introduction to rigorous computations, Princeton University Press (2011).
  • A. Haro, Automatic differentiation methods in computational dynamical systems: Invariant manifolds and normal forms of vector fields at fixed points, preprint.

Acknowledgments

This project began (using python) during a Masters' course in the postgraduate programs in Physics and in Mathematics at UNAM, during the second half of 2013. We thank the participants of the course for putting up with the half-baked material and contributing energy and ideas.

We acknowledge financial support from DGAPA-UNAM PAPIME grants PE-105911 and PE-107114, and DGAPA-PAPIIT grants IG-101113, IG-100616, and IG-100819. LB acknowledges support through a Cátedra Moshinsky (2013).

More Repositories

1

ForwardDiff.jl

Forward Mode Automatic Differentiation for Julia
Julia
867
star
2

BlueStyle

A Julia style guide that lives in a blue world
481
star
3

ChainRules.jl

forward and reverse mode automatic differentiation primitives for Julia Base + StdLibs
Julia
432
star
4

Diffractor.jl

Next-generation AD
Julia
431
star
5

ReverseDiff.jl

Reverse Mode Automatic Differentiation for Julia
Julia
343
star
6

FiniteDifferences.jl

High accuracy derivatives, estimated via numerical finite differences (formerly FDM.jl)
Julia
296
star
7

ChainRulesCore.jl

AD-backend agnostic system defining custom forward and reverse mode rules. This is the light weight core to allow you to define rules for your functions in your packages, without depending on any particular AD system.
Julia
251
star
8

FiniteDiff.jl

Fast non-allocating calculations of gradients, Jacobians, and Hessians with sparsity support
Julia
241
star
9

SparseDiffTools.jl

Fast jacobian computation through sparsity exploitation and matrix coloring
Julia
237
star
10

AbstractDifferentiation.jl

An abstract interface for automatic differentiation.
Julia
135
star
11

DualNumbers.jl

Julia package for representing dual numbers and for performing dual algebra
Julia
80
star
12

DiffRules.jl

A simple shared suite of common derivative definitions
Julia
74
star
13

TaylorDiff.jl

Taylor-mode automatic differentiation for higher-order derivatives
Julia
66
star
14

Capstan.jl

A Cassette-based automatic differentiation package for the Julia language
Julia
56
star
15

ChainRulesTestUtils.jl

Utilities for testing custom AD primitives.
Julia
50
star
16

HyperDualNumbers.jl

Julia implementation of HyperDualNumbers
Julia
42
star
17

DiffResults.jl

A package which provides an API for querying differentiation results at multiple orders simultaneously
Julia
35
star
18

PolyesterForwardDiff.jl

Julia
27
star
19

DiffTests.jl

A common suite of test functions for stressing the robustness of differentiation tools.
Julia
12
star
20

juliadiff.github.io

JavaScript
11
star
21

DocThemeIndigo.jl

The Documenter Theme for the ChainRules family of packages. But you can use it too
SCSS
8
star
22

ChainRulesOverloadGeneration.jl

Tools to help generate operator overloads based on ChainRules
Julia
4
star
23

ChainRulesDeclarationHelpers.jl

Helpers for declaring ChainRules
Julia
1
star