What’s New in Mathematical Computation?

Devendra Kapadia
Wolfram Research

#WolframTechConf

Plan for the Talk

I will discuss new developments related to the following areas:

Algebra

Matrix Computation

Special Functions

Calculus

PDE Modeling

Documentation

Books and Courses

Noncommutative Algebra

14.3 included support for basic operations in Noncommutative Algebra.

For example,

NonCommutativeExpand[(GeneralizedPower[NonCommutativeMultiply, (a+b), 2, **])]

Version 15.0 will include support for algebras with relations.

This functionality is used in the following new named special algebras:

Clifford Algebra

Grassmann Algebra

Weyl Algebra

Clifford Algebras

Define the Clifford algebra Cl(1,3):

dirac=CliffordAlgebra[{{(Superscript[Γ, 0])},{(Superscript[Γ, 1]),(Superscript[Γ, 2]),(Superscript[Γ, 3])}}]

Verify the defining relations for the generators:

NonCommutativeExpand[{(Superscript[Γ, 0])**(Superscript[Γ, 0]),(Superscript[Γ, 1])**(Superscript[Γ, 1]),(Superscript[Γ, 2])**(Superscript[Γ, 2]),(Superscript[Γ, 3])**(Superscript[Γ, 3])},dirac]

Define a timelike–positive Minkowski metric (Subscript[η, μ,ν]):

Table[(Subscript[η, μ,ν])=(1/2) NonCommutativeExpand[(Anticommutator3[(Superscript[Γ, μ]), (Superscript[Γ, ν]), dirac]),dirac],{μ,0,3},{ν,0,3}]//MatrixForm

Verify that  (∑_(μ=0)^3)(Subscript[η, μ,μ])(Superscript[Γ, μ])(Superscript[Γ, μ])==4:

NonCommutativeExpand[(∑_(μ=0)^3)(Subscript[η, μ,μ]) (Superscript[Γ, μ])**(Superscript[Γ, μ]),dirac]

This algebra can be represented using gamma matrices.

The gamma matrices appear in the famous Dirac equation:

Partial Fractions

PartialFractions computes partial fraction decompositions in 15.0.

For example:

PartialFractions[((25+19 x+6 (x^2)+(x^3))/((2+x) (3+x))),x]

The decomposition has a polynomial part and a fractional part:

PartialFractions[((25+19 x+6 (x^2)+(x^3))/((2+x) (3+x))),x,"PolynomialPart"]

PartialFractions[((25+19 x+6 (x^2)+(x^3))/((2+x) (3+x))),x,"FractionalPart"]

Unlike Apart, PartialFractions returns a complete decomposition:

Apart[(1/((x^2)+1)),x]

PartialFractions[(1/((x^2)+1)),x]

PartialFractions also includes the Extension option for flexibility.

Matrix Computation

There are  15 new or updated functions for Matrix Computation in 15.0.

The following examples illustrate the new functionality.

Compute the Bunch-Kaufman decomposition of a symmetric matrix:

mat0=RandomComplex[{-10-10 I,10+10 I},{500,500}];
sym=mat0+Transpose[mat0];
Timing[BunchKaufmanDecomposition[sym]]

The following input returns a result with LeafCount 2.5*(10^9) in 14.3:

mat=(({{0, 0, 0, -2, -2, 0, 2, -1}, {0, -2, 4, 2, -2, 2, 5, 2}, {4, 0, 0, 2, 4, -3, -2, 6}, {-2, -2, 2, -2, -1, -4, 0, 2}, {0, -2, 2, -1, 0, 2, -2, -2}, {0, -4, 1, 2, -2, 2, -4, 0}, {0, 1, 0, 0, 2, 0, -4, 0}, {-1, 0, -2, 4, -2, 4, -4, -2}}));
Timing[mexp1=MatrixFunction[Exp,mat];]

LeafCount[mexp1]

We plan to continue working on dense and sparse matrices in the future.

Multiple Zeta and Related Functions

The Riemann zeta function was introduced in Version 1.0 (1988).

This function is defined by an infinite sum:

Sum[(1/(n^s)),{n,1,∞},GenerateConditions->True]

Many special values of Zeta are known:

Table[Zeta[s],{s,-1,5}]

Version 15.0 includes the MultipleZeta function.

It also includes many generalizations of PolyLog and HarmonicNumber.

Examples for MultipleZeta

MultipleZeta is defined by a multiple sum:

(∑_(n1=1)^∞)(∑_(n2=1)^(n1-1))(∑_(n3=1)^(n2-1))(∑_(n4=1)^(n3-1))(1/((n1^6) (n2^8) (n3^2) (n4^3)))

Many special values of this function are known:

TraditionalForm[Table[MultipleZeta[{n,1}],{n,2,6}]]

MultipleZeta[{8,2}]//TraditionalForm

Evaluate a high-weight Euler sum using MultipleZeta:

(∑_(n=1)^∞)(((HarmonicNumber[n])^8)/(n^2))//TraditionalForm

This feature was  motivated by number theory and particle physics.

Neural Networks and Differential Equations

DSolve includes a neural-network method for ODEs in 15.0.

This method gives new or improved solutions for many 1st order ODEs.

For example, this input gave a complicated solution in 14.3:

ode=-(x (Sqrt[((1-x)/(x+1))]) (x+1) ArcSech[x] f'[x] (E^(((f[x])/(ArcSech[x]))+(E^((f[x])/(ArcSech[x]))))))-f[x] (E^(((f[x])/(ArcSech[x]))+(E^((f[x])/(ArcSech[x])))))+2 x (x+1) (Sqrt[((1-x)/(x+1))]) ((ArcSech[x])^2)==0;

DSolve[ode,f[x],x]

This example gives an elegant answer in 15.0:

DSolve[ode,f[x],x]

ComplexPlot3D[ArcSech[x] Log[Log[2 x+1]],{x,-3-I,3+I}]

All answers are checked to avoid hallucinations:

FullSimplify[ode/. f->Function[{x},ArcSech[x] Log[Log[2 x+(C[1])]]]]

We hope to use neural networks for other problems in symbolics.

Hilbert Transforms

In Version 14.3, we introduced HilbertTransform.

This transform applies a 90-degree phase shift to a signal:

HilbertTransform[Sin[t],t,t]

Plot[{Sin[t],- Cos[t]},{t,-π,π},]

15.0 includes the discrete version of the above transform:

x=Sin[17 2 π Range[0,1,0.001]]+RandomVariate[NormalDistribution[0,0.05],1001];

dhtx=DiscreteHilbertTransform[x];

ListLinePlot[{x,dhtx},]

DiscreteHilbertTransform has many practical applications.

PDE Modeling

Version 15.0 includes several new features for PDE Modeling.

These include support for non-cartesian coordinates and swirl flows.

The following example illustrates a swirl flow in a beaker and a mixer .

Specify the geometry:

(Ω=Polygon[])//Region

Use NDSolve to solve for the velocity:

{ufun,vfun,wfun}=NDSolveValue[{Activate[FluidFlowPDEComponent[{{u[r,z],v[r,z],w[r,z],p[r,z]},{r,θ,z}},Association["DynamicViscosity"->(1/(10^3)),"MassDensity"->(10^3),"CoordinateChart"->"Cylindrical"]]]=={0,0,0,0},},{u,v,w},{r,z}∈Ω,Method->];

Visualize the magnitude of the velocity:

velMag=FunctionInterpolation[Sqrt[ufun[r,z]^2+vfun[r,z]^2+wfun[r,z]^2],{r,z}∈Ω];

Show[]

Documentation

100 ref pages for Special Functions will have updated Details in 15.0.

Also, there will be a new monograph on Plasticity.

Finally, a popular blog post on “Boiling an Egg” was published recently.

Wolfram U Courses

An online course on Special Functions went live recently.

A course on PDEs  will go live soon.

We are working on courses for Game Theory and Symbolic Computation.

Wolfram Media Books

A textbook of Complex Analysis will be published soon.

This will be followed by a textbook on Laplace Transforms.

Future topics will include Probability, Linear Algebra, etc.

Thank you!