Hypergeometric series appeared in the mid-seventeenth century; since then, they have played an important role in the development of mathematical and physical theories. Most of the elementary and special functions are members of the large hypergeometric class.

Hypergeometric functions have been a part of Wolfram Language since Version 1.0. The following plot shows the implementation timeline of different hypergeometric functions during the evolution of our system:

The Gauss hypergeometric _{2}*F*_{1}, Kummer hypergeometric _{1}*F*_{1} and confluent hypergeometric _{0}*F*_{1} functions were implemented in Wolfram Language Version 1.0, and in Versions 3.0, 4.0 and 7.0, powerful updates were made that implemented four very general functions: the generalized hypergeometric _{p}*F*_{q} function, the “monster” superfunction `MeijerG`, the `AppellF1` function and the so-called *q*-hypergeometric function, implemented as `QHypergeometricPFQ`. All these general functions significantly increased the integration, summation and other symbolic manipulation capabilities of Wolfram Language.

During the last three years, we have made a strong effort to implement the remaining computable hypergeometric functions. Three Appell functions (`AppellF2`, `AppellF3` and `AppellF4`) were implemented in Version 13.3; further generalization of `MeijerG`—the `FoxH` function—was implemented a little earlier, in Version 12.3; and, finally, for Version 14.0, we’re presenting the doubly infinite hypergeometric function of one variable—the so-called bilateral hypergeometric function—as `BilateralHypergeometricPFQ`.

The term “hypergeometric series” appears to have first been used by John Wallis in his 1655 book *Arithmetica Infinitorum*, and then these hypergeometric series were treated by Leonhard Euler.

Starting from the works of Carl Gauss and continuing with Ernst Kummer, Bernhard Riemann, Paul Appell and other great scholars, these functions were systematically studied, along with the differential equations they satisfy and their vast applications in different engineering, physical and other applications.

A hypergeometric series is a power series , where the ratio of successive coefficients is a rational function of *n* (, where *A*(*n*) and *B*(*n*) are polynomials in *n*).

Let’s take a look at the Taylor series of the exponential function:

Calculate the ratio of successive coefficients (this can be done via `DiscreteRatio`):

This ratio is obviously a rational function of *n*, and for this case *A*(*n*) = 1, *B*(*n*) = *n* + 1, hence the Taylor series of `Exp` is hypergeometric.

In fact, various well-known series are hypergeometric, so having a comprehensive theory of such series-based functions is interesting as well as very useful in different areas of science. So let’s switch to the class of hypergeometric functions and start with the leading one—the generalized hypergeometric function _{p}*F*_{q}—and then move on to the well-known Kummer _{1}*F*_{1} and Gauss _{2}*F*_{1} hypergeometric functions that frequently arise in different physical and mathematical applications.

The main function of the hypergeometric class is the generalized hypergeometric function _{p}*F*_{q}, which is defined by the following series:

where (*a _{i}*)

The ratio of successive terms of _{p}*F*_{q} is obviously rational:

The generalized hypergeometric function _{p}*F*_{q} is implemented in Wolfram Language as `HypergeometricPFQ``[a;b;z]`. Here, the number of parameters in the *a* and *b* lists is not fixed; they might even be empty lists.

The *q*-analog of _{p}*F*_{q} is the basic hypergeometric function _{r}*Φ*_{s}, which has the series expansion

where (*a*;*q*)_{n} is the *q*-Pochhammer symbol. The basic hypergeometric function _{r}*Φ*_{s}, implemented in Wolfram Language as `QHypergeometricPFQ`, becomes the generalized hypergeometric function _{p}*F*_{q} in the limit *q* → 1.

_{p}*F*_{q} plays an important role in the theory of differential equations. A large set of ordinary differential equations (ODEs) can be solved in terms of _{p}*F*_{q} functions (we refer to such equations as hypergeometric ODEs). Following, we present such an ODE that is solved in terms of _{p}*F*_{q} functions:

_{p}*F*_{q} has a well-developed theory and various fundamental applications in science (one might take a look at the Applications section of the `HypergeometricPFQ` reference page).

Another remarkable application example is the trinomial equation *x ^{n}* –

The trinomial equation has *n* roots. Let’s generate one of them for, say, *n* = 5 and *t* = 2:

Now we generate a table of five solutions and check that they really solve the trinomial equation:

_{p}*F*_{q} is extensively used for integration and summation as well as for symbolic expression simplification. For example, here is a seemingly simple integration example:

And here is an example of an infinite sum:

Other hypergeometric functions can be written in terms of `HypergeometricPFQ`:

The following table shows some special cases of _{p}*F*_{q}:

Although _{p}*F*_{q} is a very general and important function, its special cases are even more popular. They significantly affected mathematical and physical theories of the nineteenth and twentieth centuries. Two of the most famous special cases are the Gauss hypergeometric function _{2}*F*_{1} and the Kummer confluent hypergeometric function _{1}*F*_{1}.

The well-known _{2}*F*_{1} function is defined by the following series:

It is a solution of the Gauss differential equation, which is a singular second-order linear ODE:

`ComplexPlot3D` demonstrates the pole of _{2}*F*_{1} at the singular point 1:

Why is this function of fundamental importance? Because every second-order linear ODE with three regular singular points can be transformed to it, hence the Gauss differential equation is the “basic” ODE with three singular points.

Second-order linear ODEs with a low number of singularities (the majority of ODEs that describe some physical phenomenon) can often be treated as special or limiting cases of the Gauss hypergeometric equation. This means that the powerful _{2}*F*_{1} incorporates most of the known special functions as special cases, including the famous Bessel functions, Legendre polynomials and others.

More information about the second-order linear ODEs, their solutions and their singularities is available in the author’s earlier blog post, titled “From Sine to Heun,” as well as a comprehensive tutorial on Wolfram Language’s `DSolve` function.

Aside from its mathematical importance, the Gauss hypergeometric function has various applications in physics, statistics and other areas of science. The twentieth-century quantum mechanical potentials can typically be solved in terms of hypergeometric functions.

Some of the applications are presented on the reference page of `Hypergeometric2F1`.

The confluent hypergeometric function _{1}*F*_{1} is defined by the following series:

It is a solution of the Kummer confluent differential equation *x**y*"(*x*) + (*b* – *x*)*y*'(*x*) – *a**y*(*x*) = 0. This differential equation can be obtained from the Gauss differential equation for _{2}*F*_{1} via the complex procedure of merging two regular singularities (coalescence).

The radial wavefunction for the continuous spectrum for the hydrogen atom is written in terms of the _{1}*F*_{1} function:

Here is a plot of the solution:

Plotting the solution in 3D gives more insight about the behavior of the radial wavefunction for the hydrogen atom:

Finally, here is a differential equation that can be solved in terms of _{1}*F*_{1}:

So far, we’ve talked about hypergeometric functions of one variable. _{p}*F*_{q} is a very general function with an unlimited number of parameters, but it has only one argument. What if we turn to hypergeometric functions of two or more arguments? Does that make sense?

The answer is yes. Further extensions to two or more variables are possible and yes, they open some new possibilities.

The first class is the Appell hypergeometric functions of two variables, named after French mathematician Paul Émile Appell.

Appell was a remarkable French mathematician who contributed to various fields of mathematics (projective geometry, algebraic functions, differential equations, complex analysis, etc.). Appell polynomials and Appell’s equations of motion in mechanics are named after him. Appell hypergeometric functions were introduced by him in 1880, and in 1926 he authored a treatise on these functions with another famous French mathematician, Joseph Kampé de Fériet:

There are four Appell functions. These functions have the following double series definitions around the origin (presented here with their convergence regions):

Appell functions reduce to `Hypergeometric2F1` when *x* = 0 or *y* = 0.

As noted earlier, `AppellF1` was introduced in Wolfram Language 4.0 back in 1999, while we’ve implemented the `AppellF2`, `AppellF3` and `AppellF4` functions only in 2023 in Wolfram Language 13.3.

Here are plots of a family of `AppellF2` functions:

The series expansions of Appell functions can be written in `Hypergeometric2F1` functions:

As with `HypergeometricPFQ`, we use `AppellF1` for integration:

And here is another general example of a whole class of integrands:

All four Appell functions solve the corresponding Horn PDEs with polynomial coefficients (we might think about these PDEs as a generalization of Gauss hypergeometric ODEs). This is the PDE that `AppellF3` solves:

And as for `HypergeometricPFQ`, many elementary and special functions are to be considered as special cases of the Appell functions:

The Appell functions are the first four functions in the set of 34 Horn hypergeometric functions of two variables.

The Appell functions are special cases of the Kampé de Fériet function, which is the general hypergeometric function of two variables. The Kampé de Fériet function can be used to represent the derivatives of _{p}*F*_{q} with respect to parameters and multiple integrals of the Meijer G-function.

Further hypergeometric generalizations to *n* dimensions include the Lauricella functions, which are very general and very complex. For *n* = 2, they reduce to the Appell *F*_{1}–*F*_{4} functions, while for *n* = 1 we get the _{2}*F*_{1} Gauss hypergeometric function.

Another generalization of the hypergeometric _{p}*F*_{q} function is the doubly infinite hypergeometric function (the bilateral hypergeometric function). It is written as

with a very similar definition to _{p}*F*_{q} except that for the bilateral series, the sum is computed from negative infinity to infinity. This function is available in Wolfram Language 14.0 as `BilateralHypergeomtricPFQ`.

There are two completely different subcases of the bilateral hypergeometric function: the “good” case when

*p* = *q* (i.e. _{2}*H*_{2}) and the “bad” case when *p* ≠ *q*.

For the first case, we can think about the bilateral function as a sum of two ordinary generalized hypergeometric functions. For example:

In the following, we calculate the value of _{2}*H*_{2} (1/2, 3/4; 1/4, 1/3; 5.4) and plot this function:

And for this “good” case of `BilateralHypergeometricPFQ`, simplifications are possible:

For the second case, where *p* ≠ *q*, the bilateral hypergeometric series is divergent. Usually for the calculation of such sums, various regularization methods are used. The blog post “The ABCD of Divergent Series” gives comprehensive information about this topic.

For calculation of the bilateral hypergeometric function, we use the Borel regularization technique:

Following is the series expansion for `BilateralHypergemoetricPFQ` at the origin:

The bilateral hypergeometric series has its unique and important role: it can be used for summing doubly infinite series:

So to sum a doubly infinite series, we internally first sum it to `BilateralHypergeometricPFQ` (as in the previous example) and then, where possible, simplify it—as in the following example:

The use of `BilateralHypergeometricPFQ` gives a huge speedup in the summation of doubly infinite hypergeometric series. As an example, the summation of the previous series in Wolfram Language 13.3 (without using `BilateralHypergeometricPFQ`) took more than 46 seconds, but now we’re able to reduce the calculation time by a factor of 1,000!

Hypergeometric functions have been at the core of Wolfram Language since the first version was launched more than 35 years ago. We constantly improve them, along with implementing new ones.

Version 14.0 contains the whole set of hypergeometric functions of one variable; the four Appell functions; the bilateral hypergeometric function and related ones (the monster superfunctions `MeijerG`/`FoxH` and others); and the *q*-analog of _{p}*F*_{q}—the basic hypergeometric function _{r}*Φ*_{s}.

It seems that we now have an almost complete “hypergeometric” infrastructure needed by researchers. This infrastructure includes powerful symbolic and numeric computational abilities as well as documentation that is being updated in almost every new version of Wolfram Language.

To close this blog post, we would like to thank all the Wolfram Research developers that contributed to this huge project.

]]>

In days past, life sciences was reserved for those who had access to the proper equipment to observe and experiment with the organisms of the physical world. For today’s scientist, exploration doesn’t end with access to physical encounters. Whether you’re classifying an animal for the first time or using a protein visualizer to develop medication, Wolfram Language holds the tools and power to support your computational life science endeavors. The following is a collection of biology resources, projects and functions in Wolfram Language for any skill level.

The fields of life science cover a lot of ground—understandably so, given how expansive life itself is. Begin your computational biology journey with basic educational tools and virtual experiments.

Stephen Wolfram’s Science & Technology Q&A for Kids & Others is a weekly stream where Wolfram answers questions in hopes of breaking down the complexities of science and technology in an approachable way for those unfamiliar.

Each stream is an impromptu discussion that is not bound to a particular topic, but often finds common themes as the discussions unfold. Episode 120 features an in-depth look into DNA, genetic engineering and neurology. In episode 121, Wolfram looks into synthetic biology and the future of biotechnology. Have a question? You can submit your own questions to be answered in a future stream.

Wolfram|Alpha’s searchable database gives budding computational scientists the tools to find reliable information and calculations to support just about any field of work—including biology and life sciences. Example queries for biology are available to instantly learn about anatomy, taxonomy and genomics.

The Wolfram Demonstrations Project offers more than thirteen thousand interactive Wolfram Language Demonstrations in varying fields, including nearly two hundred biology Demonstrations. Set unique conditions and watch experiments unfold from Demonstrations like the following.

**The Cell Cycle**By: Rachel Lian and Stacy Hu

This Demonstration shows a visual model of the phases of mitosis.

**DNA Replication**By: Priyanka Multani

Multani’s Demonstration shows how the DNA helix unwinds and uses the old DNA strand as a template to create two daughter helices.

**3D Skeletal Anatomy of the Arm**By: Stewart Dickson

Dickson’s Demonstration offers an interactive skeletal model of the human arm—complete with rotating views and highlighting of different bones for easy identification.

**Predator-Prey Dynamics with Type-Two Functional Response**By: Wilfried Gabriel

Gabriel’s Demonstration uses simplified Lotka–Volterra equations to demonstrate simple predator-prey cycles. You can adjust the model by altering each part of the equation from predator competition to prey death rates.

When you’re ready to start creating your own computational life science experiments, Wolfram Language’s biology functions give you the power to build an interactive stage for exploration and experimentation. The most recent published entities include:

`"TaxonomicSpecies"`—This feature offers detailed information for the taxa

`AnatomicalStructure`—This feature offers detailed information for more than ninety thousand human anatomical parts.

The Wolfram Function Repository offers an ever-expanding collection of Wolfram Language functions developed by both Wolfram teams and users. With over 2,500 functions available, there are plenty of biology tools to go around for the computational biologist.

`DNAAlignmentPlot`creates a colorful visual for DNA sequences.`TaxonomicNearest`generates taxa`FoodWeb`generates graphs displaying predator-prey relationships for a given animal.`TaxonomyGraph`displays a taxonomy graph for a given species.

Wolfram System Modeler is an interactive modeling lab that gives you the chance to run dynamic simulations for varying environments. The Bio Chem library offers modeling, simulation and visualization of biological and biochemical systems. You can learn about how the Bio Chem library is used for safe drug research and development with FDA-approved models.

Computational biology in Wolfram Language doesn’t stop with informational entities and projects. The following resources show applications for using Wolfram technologies to complete life science experiments and research.

The Wolfram|Alpha biology team walks through its more advanced content and features in livestreams, Wolfram Technology Conference talks and blog posts.

**Video Walkthroughs**

- New Biology Content in the Wolfram Language
- Computational Taxonomy (Biology)
- Representing Biological Sequence Data in the Wolfram Language

**Wolfram Research Blog**

- “Brain, Neurons, Cognition: Computational Neuroscience”
- “Visualizing Anatomy”
- “Dissecting the New Anatomy Content in the Wolfram Language”

The Wolfram Function Repository also offers more advanced functions to keep you progressing with your computational biology work, including utilizing the Global Biodiversity Information Facility’s data.

From Pictures of Animals, Try to Reconstruct the Tree of Life (Wolfram High School Summer Research Program 2022)

By: Maya Viswanathan

The Wolfram High School Summer Research Program is an opportunity for high-school students to participate in their own research projects with mentors from the Wolfram team and Stephen Wolfram.

Viswanathan’s research project used Wolfram Language’s image-processing capabilities to make a taxonomical tree of life. The diagrams are used to organize different organisms into different classifications, including taxonomy and evolution. Viswanathan’s diagrams build trees solely off of how Wolfram Language interpreted images of different organisms, resulting in an impressive and colorful display.

Water and Heat Exchanges in Mammalian Lungs

By: Benoit Haut

Haut’s project uses a mathematical model that evaluates how varying mammalian lungs use water and heat to self-regulate temperature. Haut spares no effort in creating visually stunning models for easy reading.

Computational Anatomy Visualizations, Animations, Web-Deployment

By: Martijn Froeling

Froeling is an assistant professor specializing in quantitative neuromuscular MRI techniques to better understand muscle functions and diseases. He found himself in a project that required many images of anatomical models of lower-extremity muscles. He decided to use Wolfram Language to generate interactive models to use in his project rather than taking the time to search the web for the exact angles needed.

In 2023, Froeling was awarded a Wolfram Innovation Award for his paclet QMRITools. This paclet was developed as a toolkit for experimental design, data analysis and teaching. The paclet has been credited as a tool in over 50 scientific papers and currently offers more than 450 functions. QMRITools has helped to simplify quantitative MRI analysis.

Wolfram technology is currently being used in a variety of advanced research projects that push the current understanding of life sciences further and further. Combining Wolfram and the life sciences at a higher level offers an affordable and quicker way to test hypotheses and conduct analyses.

Mathematica in Cell Biology: Image Segmentation and Analysis of 3D Tumor Spheroids

Sabine Fischer discusses the work of the physical biology group at Goethe University Frankfurt in cell biology—particularly its work in image segmentation and assessing tumor spheroids.

Bioinformatics in the Wolfram Language

John Cassel discusses the Wolfram|Alpha Scientific Group’s work on computational bioinformatics in Wolfram Language and different applications to the life sciences.

*Mathematical Models in the Biosciences 1*

By: Michael Frame

Frame’s *Mathematical Models in the Biosciences 1 *offers a look into using Wolfram Language to aid in the mathematical foundations of biosciences, including chemotherapy, predator-prey relations, nerve impulses and more.

Introducing the Wolfram ProteinVisualization Paclet!

By: Soutick Saha

Saha’s ProteinVisualization paclet is designed to create intricate, colorful, 3D visualizations of biomolecules, including proteins, nucleic acids and their complexes. The paclet also allows for computing elements such as contact maps, graphs and dihedral angles.

The Wolfram Language Paclet Repository offers additional tools to be used within Wolfram Language. Check out the current available biology paclets to bolster your computational biology work, including CompartmentalModeling and StickyDBSCAN. You can help build the Repository by submitting your own paclets.

Wolfram has always been committed to pushing boundaries in pursuit of the idea of computational X, or the coming together of technology and the rest of the world. The Wolfram Language we know and love today was founded on the basis of supporting Stephen Wolfram’s passion for physics. This idea of pushing boundaries in different fields is carried through by the efforts of Wolfram developers, who strive to make exciting breakthroughs with every new version, and the users, who share their own projects and discoveries.

Looking for more great resources to find your computational X? Check out our collection of courses at Wolfram U and varying events and workshops to learn more about Wolfram Language and its different application areas. If you’re currently working on a project, be sure to share it to Wolfram Community, or contact us for the chance to be featured in an upcoming blog post.

]]>*“There is every reason to expect that the various social sciences will serve as incentives for the development of great new branches of mathematics and that some day the theoretical social scientist will have to know more mathematics than the physicist needs to know today.”*

—John G. Kemeny, first author of the original textbook on finite mathematics and co-inventor of the BASIC programming language

Finite mathematics gives students a mathematical toolkit used in fields as diverse as business, economics, sociology and biology while covering techniques that are logically distinct from calculus.

I am glad to announce the launch of Introduction to Finite Mathematics, a free interactive course that will help open the world of finite mathematics to students from any background. Topics are chosen to align with college courses on finite mathematics and are presented so that you can learn how to use either Wolfram Language or pen and paper to perform calculations.

Click the following to begin your exploration of the interactive course.

The course introduces a range of topics, including matrices, linear systems, linear optimization, the mathematics of finance, probability, Markov chains and game theory. The presentation of these topics will give students a solid foundation for applying the math that they know to real problems that arise in business and decision making.

Here is a sneak peek of what the course contents look like:

This course on finite mathematics has 30 lessons. You can watch the video component of the course in under seven hours; however, I recommend you spend approximately twice this long reading the full lesson text, attempting the ungraded exercises and trying the quiz questions to build your understanding of the material.

This course is designed on the assumption that most students will have some background in elementary algebra. However, the design also assumes these students may want a refresher or at least a fresh take on those topics before proceeding. New topics are presented in a way that builds on the foundational skills but also shows how Wolfram Language functions can be used to perform specialized calculations without needing to think about each algebraic step.

Let’s dive deeper into the structure of the course.

The course is organized into 30 lessons, each with a video recording of the content. Each lesson also has a notebook version containing the full lesson text. The downloadable notebook for each lesson will sometimes have additional explanations and examples that were cut from the video recordings to keep them concise. The lesson text also has helpful sections for overview, as well as key terms that summarize the key results of each lesson.

Since the lessons are written in Wolfram Notebooks, important concepts can be easily visualized and explored computationally.

See the Nash equilibrium when choice of strategies is not strictly determined:

Illustrate Bayes’s theorem as applied to screening tests:

Show the distribution vector associated with a discrete Markov process evolving over time:

Visualize the simplex method as a search algorithm:

Aside from the worked examples you will find in the lessons, each lesson also has a set of ungraded exercises along with solutions. The ungraded exercises are a great way for you to solidify your understanding of the material and gain confidence for the assessments.

Each exercise is designed so that it can be solved using pen and paper for students who need that as a learning outcome, but each can also be solved by writing and running code in the Wolfram Cloud.

Each section of the course ends with a multiple-choice quiz of 10 questions. These questions are a way for students to check that they understand the concepts from the lessons. Students who have completed the ungraded exercises with confidence will be well prepared to pass the quizzes:

Quiz question responses receive instant feedback, and any question can be solved either by hand or with assistance from Wolfram Language.

Completing the course, including all 30 video lessons and eight quizzes, will allow the student to receive a certificate of completion. This certificate represents that a student has studied the fundamental concepts in finite mathematics, and makes a great addition to either social media profiles or résumés:

In addition to the certificate of completion, students can take an optional final exam. Students who can confidently answer the quiz questions and who have studied the lesson materials will be in a good position to pass the final exam. Students who do pass this exam will receive an additional certificate indicating their proficiency in the course material.

Wolfram U offered a preview version of the course to Daily Study Group participants in November, and we received some valuable feedback. Here is what participants said:

- “I really like that this course shows important applications.”
- “The lectures on finance-related concepts were very useful.”
- “By far, the Wolfram courses have been the smoothest and most timely experiences I’ve had (and I take courses for fun quite a lot). Don’t change a thing!”
- “Very good course.”
- “The main lecturer is pedagogically quite gifted as a presenter! Perhaps the best I have experienced—certainly in mathematics.”
- “Previously, I thought game theory would be boring, but I found the patterns intriguing. In particular, I enjoyed seeing graphs employed in Markov chains and would like to delve deeper into that. Thank you for sparking my interest! And thank you for the reasonable length of the final. REALLY, THANKS!”

*“Such experience in writing and debugging their own computer programs both provides students with greater mathematical power and helps to reinforce the understanding of fundamental concepts.”*

— John G. Kemeny, from the preface to the third edition of his original *Introduction to Finite Mathematics*

Students often wonder how the mathematics they are learning can be applied to real situations. This can be particularly true of students in business, economics and the social sciences. Kemeny identified this as a unique educational challenge. Finite mathematics was conceived to provide a foundation for mathematical analysis of problems that arise in everyday decisions. Introduction to Finite Mathematics will provide students with an overview of important methods and the foundation they need to pursue future courses of mathematical study.

This course is the result of the work of the Wolfram U, Algorithms R&D and Academic Innovation teams. I would like to thank Devendra Kapadia, Mads Bahrami, Anisha Basil, Abrita Chakravarty, Cassidy Hinkle, Jamie Peterson, Joyce Tracewell, Laura Crawford, Bob Owens, Matt Coleman, Ryan Domier, Luke Titus and Mariah Laugesen for all the work they put into getting this course up and running.

Register for one of Wolfram U’s Daily Study Groups. |

With seven newly published titles and deals penned for translations into 13 languages, 2023 has been Wolfram Media’s most productive year yet. As our list continues to grow, we are proud to cover more and more Wolfram Language functionality in conceptual and practical ways for our readers. As we near the end of the year, we’d like to sum up our publishing accomplishments and maybe even give you a few holiday gift ideas for any readers on your list.

Published early this year on March 9, 2023, *What Is ChatGPT Doing … and Why Does It Work?* by Stephen Wolfram answered the questions we were all asking when ChatGPT burst onto the scene. “This is the best explanation of what ChatGPT is doing that I’ve seen,” said Sam Altman, CEO of OpenAI (creator of ChatGPT), and our readers seemed to agree. The timeliness of the topic combined with Stephen Wolfram’s unique and clear explanation quickly elevated this book to the position of Wolfram Media’s best seller since *A New Kind of Science* in 2002. We have also partnered with foreign rights agent DropCap to license translations into 13 different languages. You can find the translations listed on our website, where we will add more as they are released.

With ChatGPT and other LLMs quickly becoming part of everyday life and business, we highly suggest you check out this concise explanation if you haven’t already. You can grab a copy of the English version on Amazon.

Our newest book, published October 3, 2023, comes from expert Wolfram Language user Seth J. Chandler. If you’ve been a Wolfram user for a while, chances are you’ve already seen some of his work on the Wolfram Demonstrations Project and Wolfram Community, or maybe you recognize the name from his Wolfram Innovator Award win in 2011. In *Query: Getting Information from Data with the Wolfram Language*, Chandler uses all that experience to show readers how to organize and analyze data. It is a book that transcends field of study: no matter what scientific discipline, area of the humanities or hobby you find yourself using Wolfram for, chances are you need to start with data. And data in the wild can be messy; maybe you’re discovering just how important clean data is as you begin working with LLMs. Chandler provides easy-to-follow “recipes” and examples for straightening up your data and putting it to work for you.

This is also a great book for anyone coming to Wolfram from another programming language. Chandler draws comparisons and then shows how Wolfram exceeds other options in terms of power and ease of use when it comes to data processing. He also includes a full chapter on importing and exporting data from the most common file types. To read more or buy your copy, check out the book’s page on Amazon.

Those who follow Stephen Wolfram and his work are familiar with his passion for diving into scientific topics, taking a deep look at the history and existing research and then pushing beyond with new breakthroughs of his own. That’s what he’s done here for the longstanding but perhaps never fully settled second law of thermodynamics. This is a must-read for physicists wishing to get the full story on this foundational principle, but it’s also an enjoyable choice for anyone interested in scientific history, as it is richly illustrated with historical documents and colored with the author’s 50-year history with the topic, beginning when he was just 12 years old.

First released in 2022 as part of the A New Kind of Science 20th Anniversary Limited Edition Boxed Set, *Twenty Years of A New Kind of Science* made its debut as an individually sold item on March 15, 2023. Whether you’ve been following Stephen Wolfram’s work since the release of *A New Kind of Science* or you’re just dipping into his content now, this book will provide you with the backstory of the science, the writing process and the publication of Wolfram’s magnum opus 20 years down the road. It also goes on to explore what’s been done with the science since then, and it concludes with a beautiful gallery of art inspired by NKS and Wolfram’s work with cellular automata.

This year also saw the release of the third edition of Wolfram’s popular *An Elementary Introduction to the Wolfram Language*. As it always has been, this is THE book for anyone just getting started with Wolfram Language—and, yes, that includes kids. Wolfram intentionally wrote the book at a level suitable for middle-school kids through adults. New in this edition is a section on audio and video processing. Aside from that, the majority of the existing sections have been updated and appended with new examples to bring the text in line with Version 13 of Wolfram Language.

This second installment of Gerald H. Thomas’s *A Field Theory of Games* was published on March 22, 2023. It picks up where volume 1 left off, providing a new take on game theory and using Wolfram Language to automate the tedious process of solving linear programming problems and partial differential equations. Volume 2 also builds on the extensive online toolkit of Wolfram Language code first established in volume 1. Readers can experience both volumes in Kindle format.

Wolfram Media partnered with authors Fei Du, Davis Mo and Kelvin Mischo this past June to publish their new work in notebook format on the Wolfram Store. It not only teaches readers how to apply modern computation to business analytics, it also lets readers actually do just that within the framework of the interactive notebooks. Readers can expect short “computational recipes” with Wolfram Language code and graphical user interfaces (GUIs) for real-time, live computation in each chapter. If you’re looking for more info on this book, check out this blog by one of its authors.

The year 2023 has been exciting for the Wolfram Media team, and we look forward to bringing you more new titles next year. We love meeting innovative Wolfram Language users who are looking to share their expertise with the wider community by authoring a book. If that sounds like you or someone you know, contact us at publishing@wolfram.com. While we may not be able to publish every submission, we are also happy to work with authors to find homes for their high-quality Wolfram Language book concepts with other publishers. You can also check out the Author Resources tab on our website to find a downloadable palette of tools for authoring a book in Wolfram Notebooks and more. In the meantime, if you’re thinking of doing some holiday shopping, check out our website to see our entire backlist with links to purchase.

Check out more books featuring Wolfram Language and other Wolfram technologies on the Wolfram Books page, or contact Wolfram Media with your own publishing ideas. |

When I attended the 2019 Wolfram Data Science Boot Camp as an instructor, I had the pleasure of meeting Professor Fei Du and Davis Mo, the youngest Boot Camp alum to date. I don’t think any of us expected our conversations from the camp to grow into our collaboration on the book *Creative Data Analytics: Computational Recipes to Gain Insights into Business*.

Fast forward to this fall, and Professor Du is using *Creative Data Analytics* as the primary textbook in a new business data and innovation course in the Gies College of Business at the University of Illinois Urbana-Champaign. This ebook has a project-based format with embedded apps for live computation and equivalent coding examples that require no prior coding experience.

During Wolfram’s Data Science Boot Camp, each attendee is encouraged to choose a project that acts as a running theme for the 10-day camp. This often leads to more useful, specific discussions on how to apply computation to each person’s individual interests.

*Creative Data Analytics* leans into that idea even further. Professor Du describes the spirit of the embedded apps perfectly when she says, “Want to make something irresistible? Get to the fun part quickly.”

In each chapter, the fun part is posing a question to be answered through data analytics. Readers then use an embedded app to immediately start calculating results. This could be analysis of text, images, video or spreadsheet data.

For example, does McDonald’s use different website imagery for their different markets in the United States, Brazil and Indonesia? Chapter 2 has a mouse-driven application to get an immediate feel for these types of trends:

This interactivity is a primary reason the book is only available as an ebook. Each chapter is delivered in EnterpriseCDF, so these embedded apps run in the free Wolfram Player, Mathematica or Wolfram|One.

The mouse-driven apps are only the beginning of the journey. After exploring data through this specific lens, each chapter then outlines a computational recipe in Wolfram Language for that type of data analysis. Readers learn the building blocks in Wolfram Language to create their own unique analyses:

Those of you familiar with Wolfram Language know that you can arrive at very useful results with minimal coding, which is obviously helpful in the context of this book as well. The computational recipes are meant for novices to Wolfram Language or novices to coding in general.

Wolfram Language has a large scope, ranging from calculus to control theory to cryptography. *Creative Data Analytics* focuses on the areas of Wolfram Language most relevant for data analysis. While the projects focus on themes in business and accounting, the computational recipes can be used for data analysis across many fields and disciplines.

Professor Fei Du attended the 2019 Data Science Boot Camp with Davis Mo, who ended up being the camp’s youngest alum to date. Davis’s interest in math and computer science, as well as his being local to Urbana-Champaign, first led the two of them to the camp.

I’ve been lucky enough to collaborate with both of them on this project, as well as the intermediate steps between the camp and publication of the book, spanning from July 2019 to March 2023. These steps included writing code, organizing these code segments into computational recipes, creating graphical user interfaces (GUIs) and refining the language for the business applications:

When Professor Du first considered finding a publisher for the book, we talked about my experiences with Wolfram Media as a coauthor of the *Hands-on Start* books. It didn’t take us long to decide Wolfram Media would be a good publisher for *Creative Data Analytics* as well. In fact, Wolfram Media is an even better fit for *Creative Data Analytics*, which might have readers who are generally curious about what’s possible using modern computer language and who may initially read the book using Wolfram Player.

For those of you who are interested in the process of taking regular notebooks and turning them into an ebook, or obtaining a reviewer copy of *Creative Data Analytics*, please feel free to reach out to me at kelvin_mischo@wolfram.com. I’d be happy to share more about our experiences.

I hope this book helps you get more students, colleagues or friends interested in computation, or helps spark your own book ideas.

Find Creative Data Analytics: Computational Recipes to Gain Insights into Business and other Wolfram Language books from Wolfram Media. |

*“The spread of computers and the internet will put jobs in two categories. People who tell computers what to do, and people who are told by computers what to do.”*

— Marc Andreessen, inventor of the Netscape browser

How is data organized in databases? Why are some computer programs faster than others? How can algorithms be mathematically proven? The answers to these questions require an understanding of discrete mathematics, which focuses on the mathematics behind computing and, more generally, integers. In fact, an understanding of discrete mathematics is required for professionals in a large number of fields, such as data science, software engineering and development, computer science, economics, biology and linguistics.

I am glad to announce the launch of Introduction to Discrete Mathematics, a free interactive course that aims to explore the world of integers and information. This course investigates the mathematical foundations of computation and information theory. It is designed to be compact and efficient, minimizing the number of redundant examples and amount of potentially distracting background material. Topics follow what you would see in an entry-level computer science mathematics course, but this course also takes advantage of Wolfram Language to do calculations and simulations to illustrate important concepts with concrete demonstrations.

Clicking the following will take you directly to the course, where you can instantly venture into the beautiful world of integers.

Mathematics began with discrete units—only integers were used. Throughout history, the foundations of mathematics were attributed to logic, set theory, group theory or Peano arithmetic, all of which are part of discrete mathematics. As such, the foundations of continuous mathematics are discrete.

Despite the fact that mathematicians have historically focused more on continuous mathematics and have regarded it as more general, many important mathematical problems require a purely discrete approach, which is truer today than ever. Indeed, modern computation devices of all kinds are distinctly discrete. As these technologies advance, the importance of discrete mathematics increases analogously. Here is a gallery of distinguished mathematicians and computer scientists who have made significant contributions to discrete mathematics:

This course explores many important branches of mathematics and gives a number of opportunities to deepen your understanding of the subject. The branches explored are logic, discrete structures, combinatorics, algorithms, proofs, recurrences and graphs. These various subjects will allow students to model, compute and analyze information.

Here is a bit of a sneak peak of the lesson contents:

This course has 25 short video lessons. The order of lessons is only a suggestion, as each section can be studied independently. You will be able to watch all of the videos and complete the seven short quizzes in four hours, but I recommend attempting all exercises and reading their solutions to cement your knowledge, which may take you an additional three hours.

This course does not have any mathematical requirement. Anyone having minimal knowledge of Wolfram Language can excel. This course is aimed at beginners in both computer science and mathematics: it provides the prior knowledge needed for many other courses in these subjects.

Now for a more detailed explanation of the course.

This course is built around a collection of 25 lessons that aim to build the student’s capacity to formulate discrete problems and solutions mathematically and computationally. Discrete problems can often be unintuitive; therefore, formulating them correctly is often as hard as solving them.

Here is a glimpse of Lesson 1, “What Is Discrete Mathematics?”:

The full lesson notebook used in the video is also included, so you will have the code to try out problems and interactive demonstrations for yourself. Any code in these notebooks can be copied with a simple click, and that code can be pasted into (and edited within) the scratch notebook area at the bottom of the screen.

Videos for each lesson are around eight minutes long, but length may vary depending on the requirements of the material—the video on permutations and combinations, for example, is the longest video at 12 minutes, but it details important combinatorial problems that are known to be the most difficult for beginners. The longer exploration of such topics aims to facilitate understanding through practice.

Additionally, each lesson has a separate set of 10 exercises. Exercises 1 through 9 are of similar difficulty, giving you many examples on which to apply the concepts seen in the corresponding lesson. All exercises also have solutions included. It is recommended to do exercises until the concepts are familiar to you:

Exercise 10 is special in that it is more difficult and it can require knowledge from other sections in the course. You may want to come back to it once you have the required knowledge:

Every lesson ends with a Resources section. This is meant for students who want to go beyond the course material. If the provided exercises are insufficient, many textbooks are given to provide more practice and deepen your understanding. For advanced computer science students or pure and applied mathematics students, this section provides useful comments and resources regarding the formal correctness of the concepts in the section:

Each of the seven sections in the course ends with a short, six-question, multiple-choice quiz. Quiz questions are not as difficult as the exercises and aim to test your general understanding of the section. Anyone who does a few exercises and reviews their solutions will likely pass the quiz without difficulty:

Students receive instant feedback upon submitting their responses to the quiz questions, and they can use any reasonable method to arrive at the correct answer.

Students who wish to take advantage of everything this course has to offer will, by the time they complete it, have watched all 25 lessons and passed the seven quizzes. At this point, students can—and should!—request a certificate of completion showing their knowledge in the field of discrete mathematics. This certificate can easily be added to your résumé or social media profile!

This course also has an optional final exam that you can take after completing all of the material. This final exam has more questions and a slightly higher difficulty than the quizzes, and if you pass, you will receive a more advanced Level 1 Certification.

Wolfram U offered a glimpse of the course lessons and quizzes to Daily Study Group participants earlier this October, and we received some valuable feedback. Here is what participants said:

- “As a software engineer, this certainly made me relate the maths and programming for me to be a better programmer.”
- “The visualizations and simulations in the presentation slides are amazing.”
- “The exercises were very interesting and instructive.”
- “For non-computer specialists, the conductor has taken simple but very clever examples to teach us the importance of the subject.”
- “So much has changed in discrete math in the last 10 years so I learned a great deal more than before.”
- “Thank you very much for putting so much efforts in this course, it was very interesting and useful.”

The applicability of the concepts in this course reach far beyond the domains mentioned, but the greatest strength of discrete mathematics lies in its role in modern computation. If studied seriously, this Introduction to Discrete Mathematics course will provide you with the knowledge and intuition necessary for success in whatever computational field you choose to pursue.

*“Continuity connotes unity; discreteness, plurality.”*

— John Lane Bell

This course is the result of the work of the Wolfram U team and the Algorithms R&D team. I would like to thank Devendra Kapadia, Anisha Basil, Joyce Tracewell, Abrita Chakravarty, Matt Coleman, Mariah Laugesen and Laura Crawford for all the work they put into getting this course up and running.

Register for one of Wolfram U’s Daily Study Groups. |

With another Wolfram Technology Conference comes the latest round of the annual One-Liner Competition. Participants are challenged to show off their Wolfram Language skills in this contest of brevity and creativity by using only 140 or fewer characters to share the most incredible and original output.

This year also featured the second-ever Get Visual Competition, where users flex their artistic flair to create a piece of computational art without a character restriction.

In both competitions, entries from conference participants were judged anonymously by Wolfram staff. Judging criteria were based on aesthetics, understanding of the output and original use of Wolfram Language.

The One-Liner Competition tests a user’s ability to create a unique and exciting output in 140 or fewer characters without using 2D typesetting constructs or pulling in linked data.

Oliver Knill: *Graph Counter *(133 characters)

Oliver Knill, also a winner of this year’s Innovator Awards, submitted a function that counts the number of complete subgraphs within a graph and returns it in a polynomial function form. Knill submitted his 133-character line as a function and included an example of the function in use. The judges appreciated his originality and use of recursive function definition as well as the challenge of deciphering the short code:

Dashel Myers: *Animating a Contour Plot *(137 characters)

Dashel Myers created a stunning visual in just 137 characters with his animated contour plot. Judges enjoyed the kaleidoscope-like output and found the boxy visual to be amusing:

Catalin Popescu: *LLM Zoo *(140 characters)

Catalin Popescu, who received an honorable mention in 2020’s One-Liner Competition, was this year’s first-place winner with *LLM Zoo*. At exactly 140 characters, this one-liner utilizes one of the new LLM functions to select six random animals and combine them two at a time. Judges found this submission extremely amusing and had a lot of fun running it over and over to see the wacky combinations it produced:

Guenther Gsaller: *Atrium*

Guenther Gsaller is no stranger to uniting Wolfram Language and the visual arts. Gsaller’s submission to the Get Visual Competition featured his hand at architecture with an atrium developed in Wolfram and then rendered in Blender, a 3D graphics software. He has been recognized as a featured contributor on Wolfram Community many times for his series of posts on animating Wolfram surfaces with Blender and on the Wolfram Blog.

Congratulations to the winners and all who participated in this year’s competitions! We look forward to seeing next year’s submissions. Until then, we encourage you to share your own one-liners and computational art at Wolfram Community.

Visit Wolfram Community or the Wolfram Function Repository to embark on your own computational adventures! |

Statistical analysis is an important tool in food science. It can uncover patterns and relationships in food and nutrition data, leading to advances in food manufacturing, nutrition counseling, food safety and new product development. Wolfram Language offers built-in functions for all standard statistical distributions. Here, we’ll use some of these functions to evaluate relationships between nutrients and visualize the data distributions with informative plots and histograms.

Use `Interpreter` to gather and group the entities for the foods you want to explore. The “yellow box” entities contain the nutritional data for each food type:

A *t*-test is a statistical tool used to answer the question “Is the difference in the averages (means) of two groups statistically significant, or are the means different due to random chance?” Let’s use the `TTest` function to determine if the zinc and folate in berries are significantly different from the zinc and folate in green vegetables.

Berries and green vegetables are not significant sources of zinc, but we can use statistics to evaluate and compare trace amounts of this vital nutrient. Start with the null hypothesis that there’s no meaningful difference between berries and green vegetables in terms of their zinc content. Next, obtain the zinc amounts for each of the food types in both groups. The *t*-test does not require the sample lengths to be equal. Get only the values, not the units, using the `QuantityMagnitude` function:

What is the average (mean) zinc content for each group?

The *t*-test does require normal distribution of the data. The `TTest` function automatically tests for normal distribution, but you can check it yourself using the `DistributionFitTest` function. This function will return a *p*-value, which is the probability that the data satisfies a given null hypothesis. The default null hypothesis for `DistributionFitTest` is that the data comes from a normal distribution:

We will use the common significance level α of 0.05, or 5%, to determine whether to reject or fail to reject the null hypothesis. Because both of these *p*-values from `DistributionFitTest` are greater than 0.05, we fail to reject the null hypothesis and conclude that zinc data for berries and green vegetables is normally distributed. Therefore, we know that the *t*-test is appropriate to use:

The *p*-value from the *t*-test is less than 0.05. Therefore, we can reject the null hypothesis and conclude that there is a significant difference in the average zinc content of berries versus green vegetables. Easily visualize this difference using `PairedSmoothHistogram`:

Next, we examine the difference in average folate content:

Like zinc, the *t*-test result below 0.05 confirms that we can reject the null hypothesis because the folate difference between berries and green vegetables is statistically significant. Wolfram Language provides both full and shortened conclusions of the test:

A paired histogram illustrates this difference in the two datasets:

There are multiple ways to visualize the distribution of datasets. A number line plot is a compact way to compare the distribution of two datasets:

Scatter plots and bar charts are also effective visuals, with multiple options to customize the charts:

A related plot is a box-and-whisker chart. The box represents the middle 50% of the data values; the white line in the box represents the median. The vertical lines are the whiskers, which show the range of values, excluding any outliers (there is an option to include the outliers in the chart):

Let’s evaluate the average iron difference for berries versus green vegetables by first checking for normal distribution:

The green vegetables iron data has a *p*-value below 0.05 and, therefore, is not normally distributed. When the sample data is skewed rather than normally distributed, you can use the Mann–Whitney *U* test to determine whether two population distributions have roughly the same shape and location. It is called a nonparametric test and does not require a normal distribution like the *t*-test does:

The resulting *p*-value is slightly greater than our chosen significance level α of 5%. Therefore, we must fail to reject the null hypothesis and conclude that there is no statistically significant difference in the average iron content of berries versus green vegetables. A smooth histogram is a good way to view the overlap between the two datasets:

Use the `TrimmedMean` function to remove data outliers that may be skewing a result. In this example, we trim the outlying 10% of data from both ends and obtain a new mean:

Analysis of variance (ANOVA) compares the means of three or more groups to determine if there are statistically significant differences among them. Let’s load the Analysis of Variance package and analyze the means for iron content in berries, meats and fish:

This ANOVA test is called a one-way analysis of variance because there is one categorical variable in the data. We have already defined `berriesIron`. We need iron content for meats and fish:

Like other parametric tests, ANOVA requires a normal distribution of the data:

The ANOVA table includes the means of the samples and the overall mean (grand mean) of all the data. In the following example, the *p*-value of less than 0.05 indicates that we can reject the null hypothesis and conclude that there is a significant difference among the means for iron content in berries, meats and fish:

ANOVA does not specify which group means are significantly different. After ANOVA, you can use *post hoc* tests to make pairwise comparisons and determine which groups are statistically different from each other.

Linear correlation is the statistical relationship between two variables in which changes in one variable are associated with proportional changes in another variable. A positive correlation suggests that as one variable increases, the other variable tends to also increase. A negative correlation implies that as one variable increases, the other variable tends to decrease.

Let’s examine the correlation between fat and calories in meats. First, obtain the quantitative data:

Use the `Transpose` function to pair the fat and calorie values for each type of meat, and then plot the pairs:

Because the plot points generally slope upward, we can conclude that the fat and calories in meats are positively correlated. As total fat increases, so do calories. If the line slopes generally downward, the variables are negatively correlated. If the points are scattered, with no upward or downward trend, the variables are uncorrelated.

The positive correlation between fat and calories is not surprising, but this process can be replicated to explore a wide range of nutrients. Vitamin C and potassium are vital nutrients in citrus fruits, but are they correlated? They generally are not associated with one another. Is there a hidden statistical correlation?

The list plot confirms there is no correlation between the amounts of vitamin C and potassium in citrus fruits.

Linear regression is another way of modeling relationships between quantitative variables. The goal of linear regression is to find the best-fitting straight line that represents the relationship between the two variables. Let’s use linear regression to model the relationship between saturated fat and monounsaturated fat in meats:

The following input uses the `LinearModelFit` function to model the relationship using a straight line:

Use the `Correlation` function to get the correlation coefficient, which indicates the strength and direction of the linear relationship between two variables. The coefficient is a number between –1 and 1, where 1 indicates perfect positive correlation and –1 indicates perfect negative correlation. A general guideline is that correlation above 0.5 or below –0.5 is strong correlation, and –0.5 to 0.5 is weak correlation or no correlation:

The correlation coefficient of 0.9 indicates a strong positive correlation between the amount of saturated fat and monounsaturated fat in meats. Easily visualize this relationship with `SmoothHistogram3D`:

Not all correlations are positive. We can reasonably assume that the correlation between sugar and fiber in breakfast cereals is a negative one—as sugar goes up, fiber goes down. Let’s test if our assumption is correct. First, use `Interpreter` to get the implicit entity (“yellow box”) for the food type `"breakfast cereal"`. The implicit entity is a compilation of the nutrition data for the 230+ specific breakfast cereals that make up the entity:

Next, request the `EntityList` of the 230+ breakfast cereals attached to the yellow box. We use the semicolon after `EntityList` so that the actual (very long) list will be suppressed:

As we did in the previous examples, we get the relative sugar and fiber values for each of the 230+ breakfast cereals, then transform those values into a list of pairs:

Test the correlation:

The correlation coefficient of –0.4 confirms a negative correlation, although it’s somewhat weak. The linear regression “best-fit” model illustrates the intercept (0.12) and slope (–0.17) of the line:

To learn more about statistical analysis with Wolfram Language, visit Wolfram U to choose from the free, self-paced Wolfram Language statistics courses on basic (elementary algebra) to more advanced (statistical distributions) topics. Other related online courses include:

- Introduction to Probability
- Introduction to Statistics
- Hypothesis Testing
- Model Fitting and Analysis
- Modeling with Statistical Distributions
- Statistical Analysis with Wolfram Language

Begin your own culinary adventures with full access to the latest Wolfram Language functionality with a Mathematica or Wolfram|One trial. |