Was ist neu in Mathematica 12.1?

Mathematica 12.1 erweitert die Fähigkeiten der Wolfram Language um 182 neue Funktionen und viele Erweiterungen bestehender Funktionen in den Bereichen Visualisierung, Audio- und Bildverarbeitung, maschinelles Lernen und neuronale Netzwerke, Datenzugriff-/speicherung und führt neue Systeme für die Videoverarbeitung und das Paclet-Management ein. Ein weiterer Schwerpunkt lag in der Erweiterung von Mathematica als Workflowsystem für technisch wissenschaftliches Arbeiten. Jetzt lässt sich R-/Julia-/Python-Code direkt in die Notebooks eingeben und  es ist möglich Videos in Notebooks einzubetten um z.B. Kursunterlagen zu erstellen. Der neue Wolfram|Alpha-Mode eröffnet die Option Projekte in alltäglichem Englisch zu integrieren.

Zusätzlich stehen mehr als eintausend von der Community erzeugte Funktionen in Version 12.1 zur Verfügung mitsamt zahlreichen Datensätzen oder neuronalen Netzen, die einfach in Projekten eingesetzt werden können. Version 12.1 unterstützt darüber hinaus Displays mit sehr hoher Auflösung (sehr viele Details für riesige Computermonitore). Generell wächst damit Mathematica in alle Richtungen - Programmierung, Mathematik, Data Science, Digital Humanities, Deep Learning und allen Bereichen bei denen Berechnungen eine wichtiges Element sind.

ADDITIVE steht Ihnen zur Seite bei den ersten Schritten in Mathematica. Gerne zeigen wir Ihnen auch Spezielles per Webvorführung.
Software Vertrieb : ++49 - (0) 6172 - 5905 - 134 ( oder 30)	E-Mail: mathematica@additive - net.de
Software Supporthotline : ++49 - (0) 6172 - 5905 - 20	E-Mail: support@additive - net.de
ADDITIVE Webseiten zu Wolfram Research und Mathematica   http://www.additive-net.de/mathematica

New in 12.1 specific examples

System wide support for very-high-resolution displays

Here’s a comparison on a REALLY big monitor as an extreme example; but Windows feels nicer even on modest-sized monitors

TableView for spreadsheet-like editing of data

Import a TXT file (or any type of spreadsheet file)

dat=Import["https://www.handsonstart.com/ExampleDataScores.txt", "Data"]

TableView displays the data like a spreadsheet, and allows scrubbing the data - press Shift-Enter to evaluate the new values

TableView[dat]

The newly scrubbed data can then be easily used for analysis

scrubbedData=Normal[%]
ListPlot[scrubbedData[[All,3]]]

Video embedding or analysis of video

Create a (RefLink[VideoStream, paclet:ref/VideoStream]) object linking to a local video file:

stream=VideoStream["ExampleData/Caminandes.mp4"]

The video can be displayed and played or paused at the language level for customized players/views

Dynamic[stream["CurrentFrame"]]

VideoPlay[stream]

VideoPause[stream]

Analyze a video to find transitions from one scene to another:

v=Video["ExampleData/Caminandes.mp4"];

ts=VideoTimeSeries[ImageDistance@@#&,v,2,1]

Plot the result, showing times with significant scene change:

ListLinePlot[ts,PlotRange->All]

Speech to text is also possible for large videos

If your computer has a camera try the following. First we open the device, at the end don’t forget to close.

dev=DeviceOpen["Camera"]

image=CurrentImage[]

If it is you infront of the computer, try to detect a face.

box=FindFaces[image];
HighlightImage[image,box]

EdgeDetect[image]

Manipulate[ImageRecolor[ColorQuantize[image,q],Red->c],{{q,32},4,64,1},{c,Green}]

Or a kind of ongoing film

Dynamic[CurrentImage[]]

DeviceClose[dev]

Additional languages supported now with External Language Input

Added support for R, Julia, and Ruby -- in addition to Python and NodeJS which are already supported

Requires third party language to be set up on the machine
https://reference.wolfram.com/language/workflow/ConfigurePythonForExternalEvaluate.html

[2,3,4,5,6][2]

Machine learning / deep learning

Leveraging deep learning in chemistry

Take an image of a molecule, and identify it -- turn an image into an expression with knowledge behind it

m=MoleculeRecognize[]

Once identified, Wolfram Language curated data can be used to gain more insights

m["Properties"]

Create a list plot of the bonded atom indices

m["BondProperties"][[1]]//ListPlot

Create a 3D molecule plot (so ultimately going from a 2D image to a 3D rotatable expression)

MoleculePlot3D[m]

Big talking point- support for GAN -- Generative Adversarial Networks (GANs)

Create a (RefLink[NetGANOperator, paclet:ref/NetGANOperator]) that embeds the generator and the discriminator to train them in an adversarial manner:

gan=NetGANOperator[{NetChain[{100,Ramp,LinearLayer[{}]}],NetChain[{100,Ramp,30,Ramp,LinearLayer[{}],LogisticSigmoid}]},"Latent"->"Real"]

trained=NetTrain[gan,Function[<|"Sample"->RandomVariate[NormalDistribution[],256],"Latent"->RandomReal[{-1,1},256]|>],BatchSize->256,TrainingUpdateSchedule->{"Generator","Discriminator"}]

What are Generative Adversarial Networks (GANs) used for so far?
https://machinelearningmastery.com/impressive-applications-of-generative-adversarial-networks/

Leverage deep learning and audio processing

Compare two voices to see if they are identical. Both are sample datas.
(Note: Hover over the Sound-object (output).. the name of the file....also click the up-/down-arrows....when-down-arrow is press start the audio)

fem=ExampleData[{"Audio","FemaleVoice"}]

mal= ExampleData[{"Audio","MaleVoice"}]

SpeechRecognize[mal]

SpeakerMatchQ[ExampleData[{"Audio","FemaleVoice"}],ExampleData[{"Audio","MaleVoice"}]]

?Speaker

Now a tricky experiment.
  For a “man” you would need to speak “right then perfect timeing” into your mircophone, then we try the  SpeakerMatchQ, for me sometimes it matches.
  For a “lady” you would need to speak “Hello    hello ” into your mircophone, then try the  SpeakerMatchQ, ..sorry I am a man.

mal2=AudioCapture[AudioInputDevice->"Built-in Microphone"]//Normal

fem2=AudioCapture[AudioInputDevice->"Built-in Microphone"]//Normal

SpeakerMatchQ[mal,mal2]

SpeakerMatchQ[fem,mal2]

Big talking point to plug in Wolfram Language into production projects in deep learning where an org is using a mix of languages

Import/export models to ONNX (Open Neural Network Exchange), which is an open format and potentially more friendly for deployment.

Import["ExampleData/onnx_example.onnx"]

Data structures

Define a data structure to match a particular concept in literature, or a data structure optimized for some task in production code

$DataStructures

ds=CreateDataStructure["LinkedList"]

Do[ds["Append",RandomInteger[]],10^6]//AbsoluteTiming

Visualization of the data structure, which is useful for Computer Science courses

ds["Visualization"]

Mean[N[Normal[ds]]]

Graphics improvements across the language

Engineering application; plot a contour map of a real function of a complex variable:

ComplexContourPlot[Abs[z],{z,-3-3I,3+3I}]

Here we' re getting two sets of contours—from the Abs and the Arg of a complex function :

ComplexContourPlot[AbsArg[(z^2-I)/(z^3+I)],{z,-3-3 I,3+3 I},Contours->30]

Plot ozone data associated with geo locations:

GeoDensityPlot[GeoPosition[]->]

Uncertainty is extended to more areas of the language, including 3D list plots:

zvar=Table[Around[Sin[x] Cos[y],1],{x,-4,4},{y,-4,4}];

ListPointPlot3D[zvar]

New ways to style a filling for graphics:

Plot[{Sin[x],Cos[x]},{x,0,10},Filling->Axis,FillingStyle->HatchFilling[]]

A space-filling curve:

motif=Graphics[{HilbertCurve[4]}]

That custom filling can be used in a graphics primitives input:

Graphics[{PatternFilling[motif],EdgeForm[Black],Annulus[]}]

Use a colored toon shading to show a knot:

Graphics3D[{ToonShading[Red],KnotData["SolomonSeal","ImageData"]},Lighting->"Accent"]

Improved symbolic differential equation solving

This is important in engineering. Will solve anything in literature or any handbook. Remember Python and MatLab are not strong in this, competitive advantage.

“Symbolic solutions can give you insights in a program that numerical solutions don’t.”

DSolveValue[(d+c x+b x^2) y[x]+a x y'[x]+(-1+x^2) y''[x]==0,y[x],x]

Wolfram|Alpha-Mode Notebooks

Version 12.1 includes File -> New -> Wolfram|Alpha-Mode Notebooks
  • this does everything that Wolfram|Alpha Notebook Edition can do w/ slightly different branding
  • for individuals at colleges or companies who want to do computation, but find the syntax too much, this is an entry point to Wolfram that didn’t exist prior to 12.1
  • for  running the examples just “RETURN” is needed instead of “Shift-Return”

People might not have realized what’s in 12.0, 11.3, 11.2...

Neural Net Repository now has 93 neural nets -- https://resources.wolframcloud.com/NeuralNetRepository/all/
Function Repository now has 1100 functions -- https://resources.wolframcloud.com/FunctionRepository/all
Data Repository now has 735 data sets -- https://datarepository.wolframcloud.com/all/

Medicine / Life Sciences - https://www.wolfram.com/language/12/image-computation-for-microscopy/3d-reconstruction-via-focus-stacking.html?product=mathematica

Engineering / Manufacturing - https://www.wolfram.com/language/12/probability-and-statistics/modeling-bathtub-failure-rates-with-hjorth-distribution.html?product=mathematica

And many more .... https://www.wolfram.com/mathematica/new-in-12/

Weblinks: Full list 12.1 - Stephen Blog - Systemrequirements

Full list of what’s new in 12.1
   • for power users who will just want to read all the new functions
Post-release:  https://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn121.html

Stephen’s Blog
https://writings.stephenwolfram.com/2020/03/in-less-than-a-year-so-much-new-launching-version-12-1-of-wolfram-language-mathematica/


System Requirements:
Post-release:  https://www.wolfram.com/mathematica/system-requirements.html

ADDITIVE Ihr Mathematica Partner

ADDITIVE steht Ihnen zur Seite bei den ersten Schritten in Mathematica. Gerne zeigen wir Ihnen auch Spezielles per Webvorführung.
Software Vertrieb : ++49 - (0) 6172 - 5905 - 134 ( oder 30)	E-Mail: mathematica@additive - net.de
Software Supporthotline : ++49 - (0) 6172 - 5905 - 20	E-Mail: support@additive - net.de
ADDITIVE Webseiten zu Wolfram Research und Mathematica   http://www.additive-net.de/mathematica