Skip to main content
Sign in
Snippets Groups Projects
Select Git revision
  • master
  • dependabot/nuget/paket-8.0.3
  • dependabot/nuget/FsUnit-5.6.1
  • dependabot/nuget/NUnit-4.0.1
  • dependabot/nuget/NUnit3TestAdapter-4.5.0
  • dependabot/nuget/NUnitLite-and-NUnit-4.0.1
  • gh-pages
  • alternative-valuetype
  • r0.18
  • visual
  • v0.24.0
  • v0.23.0
  • v0.22.0
  • v0.21.0
  • v0.20.0
  • v0.19.0
  • v0.18.1
  • v0.18.0
  • v0.17.0
  • v0.16.0
  • v0.15.0
  • v0.14.0
  • v0.13.0
  • v0.12.0
  • v0.11.0
  • v0.10.1
  • v0.10.0
  • v0.9.0
  • v0.8.0
  • v0.7.1
30 results

mathnet-symbolics

  • Open with
  • Download source code
  • Your workspaces

      A workspace is a virtual sandbox environment for your code in GitLab.

      No agents available to create workspaces. Please consult Workspaces documentation for troubleshooting.

  • user avatar
    Christoph Ruegg authored and GitHub committed
    Bump NUnit3TestAdapter from 4.4.2 to 4.5.0
    49bc5d43
    History

    Math.NET Symbolics

    Math.NET Symbolics is a basic open source computer algebra library for .NET, Silverlight and Mono written entirely in F#.

    This project does not aim to become a full computer algebra system. If you need such a system, have a look at Axiom or Maxima instead, or for proprietary commercial solutions Maple, Mathematica or Wolfram Alpha.

    You'll find a large set of expression and algebraic operator examples in the Unit Tests (yes, they're actually very readable). A few examples:

    • (3Q + 2)*4/610/3.
    • (a/b/(c*a))*(c*d/a)/d1/(a*b)
    • (a+b)/(b+a)**21/(a + b)
    • Algebraic.expand ((a+b)**3)a^3 + 3*a^2*b + 3*a*b^2 + b^3
    • Exponential.expand (exp(2*x+y))exp(x)^2*exp(y)
    • Exponential.contract (exp(x)*(exp(x) + exp(y)))exp(2*x) + exp(x + y)
    • Exponential.simplify (1/(exp(x)*(exp(y)+exp(-x))) - (exp(x+y)-1)/((exp(x+y))**2-1))0
    • Trigonometric.expand (sin(2*x))2*sin(x)*cos(x)
    • Trigonometric.contract (sin(x)**2*cos(x)**2)1/8 - (1/8)*cos(4*x)
    • Trigonometric.simplify ((cos(x)+sin(x))**4 + (cos(x)-sin(x))**4 + cos(4*x) - 3)0
    • Polynomial.polynomialDivision x (x**3 - 2*x**2 - 4) (x-3)(3 + x + x^2, 5)
    • Polynomial.polynomialExpansion x y (x**5 + 11*x**4 + 51*x**3 + 124*x**2 + 159*x + 86) (x**2 + 4*x + 5)1 + x + (2 + x)*y + (3 + x)*y^2
    • Polynomial.gcd x (x**7 - 4*x**5 - x**2 + 4) (x**5 - 4*x**3 - x**2 + 4)4 - 4*x - x^2 + x^3
    • Rational.rationalize (1+1/(1+1/x))(1 + 2*x)/(1 + x)
    • Rational.simplify x ((x**2-1)/(x+1))-1 + x
    let taylor (k:int) symbol x a =
        let rec impl n nf acc dxn =
            if n = k then acc else
            impl (n+1) (nf*(n+1)) (acc + (dxn |> Structure.substitute symbol a)/nf*(symbol-a)**n) (Calculus.differentiate symbol dxn)
        impl 0 1 zero x |> Algebraic.expand
    
    taylor 3 x (1/(1-x)) 0Q        1 + x + x^2
    taylor 3 x (1/x) 1Q            3 - 3*x + x^2
    taylor 3 x (ln(x)) 1Q          -3/2 + 2*x - (1/2)*x^2
    taylor 4 x (ln(x)) 1Q          -11/6 + 3*x - (3/2)*x^2 + (1/3)*x^3
    taylor 4 x (sin(x)+cos(x)) 0Q  1 + x - (1/2)*x^2 - (1/6)*x^3

    Literature

    • Computer Algebra and Symbolic Computation - Elementary Algorithms, Joel. S. Cohen
    • Computer Algebra and Symbolic Computation - Mathematical Methods, Joel. S. Cohen
    • Modern Computer Algebra, Second Edition, Joachim von zur Gathen, Jürgen Gerhard
    • Symbolic Integration I - Transcendental Functions, Second Edition, Manuel Bronstein
    • Concrete Mathematics, Second Edition, Graham, Knuth, Patashnik
    • ... and of course the fundamental theory by Euclid, Newton, Gauss, Fermat and Hilbert.

    Project

    Windows (.NET): AppVeyor build status

    Maintained by Christoph Rüegg and part of the Math.NET initiative (see also Math.NET Numerics). It is covered under the terms of the MIT/X11 open source license. See also the license file in the root folder. We accept contributions!