Aligning Mathematica with the Calculus Sequence and Beyond

Itai Seggev, Wolfram Research

(RowDefault[, (Spacer1), , (Spacer1), ])  #WolframTechConf

ABSTRACT

Mathematica has always been a powerful tool for doing calculus and other computations of lower-division college mathematics.  While powerful, certain design choices were made that reflected the point of view of the mathematical expert and not the point of view of the student or the introductory mathematics classroom.  Over the last several versions we have revisited some of these choices to better align Mathematica with the classroom.  For example, Limit now computes two-sided limits by default, Integrate can return “constants” of integration, and there are dedicated functions for determining function monotonicity and convexity.  The documentation has been greatly expanded, including examples based on problems that might appear in an introductory course.  This allows students to connect the functions they are using in Mathematica with the content of their courses.  In this talk, we will survey these changes and show how Mathematica is a better tool than ever for introductory mathematics.

Introduction

In recent versions, we have worked to make Mathematica more student friendly while making it more powerful

Changes include

enhancements to existing functions

new functions

improved documentation

This talk will survey these changes, with a focus on the calculus sequence

Differential Calculus

Limits, Take 1

This is a somewhat questionable answer:

Limit[(1/x),x->0]

In newer versions, can input in the expected way and get expected answer:

{(Underscript[\[Limit], x->0])(1/x),(Underscript[\[Limit], x->(SuperPlus[0])])(1/x),(Underscript[\[Limit], x->(SuperMinus[0])])(1/x)}

In older version, the specifying the direction could be confusing:

Limit[(1/x),x->0,Direction->"???"]

Even in InputForm, the direction names are now easier:

Limit[(1/x),x->0,Direction->#]& /@{"FromAbove","FromBelow",Complexes}

D Documentation

Student-relevant examples on ref/D, especially in Applications.

Function Properties

FunctionSign

Determine the sign of a function:

{FunctionSign[x,x],FunctionSign[x^2,x]}

Determine the sign in part of the domain:

{FunctionSign[{Sin[x],0<=x<=Pi},x],FunctionSign[{Sin[π x],x∈(Integers)},x]}

Be picky about positive versus nonnegative:

{FunctionSign[x^2,x,StrictInequalities->True],FunctionSign[x^2+1,x,StrictInequalities->True]}

FunctionMonotonicity

Determine the monotonicity of a function:

{FunctionMonotonicity[x,x],FunctionMonotonicity[x^2,x]}

Determine the sign in part of the domain:

{FunctionMonotonicity[{Sin[x],-(π/2)<=x<=(π/2)},x],FunctionMonotonicity[{(1/x),x>0},x]}

Be picky about increasing versus nondecreasing:

{FunctionMonotonicity[UnitStep[x],x,StrictInequalities->True],FunctionMonotonicity[ArcTan[x],x,StrictInequalities->True]}

FunctionConvexity

Determine the convexity of a function:

{FunctionConvexity[x^2,x],FunctionConvexity[x^3,x]}

Determine the sign in part of the domain:

{FunctionConvexity[{Sin[x],0<=x<=π},x],FunctionConvexity[{(1/x),x>0},x]}

Be picky about convex versus affine:

{FunctionConvexity[x,x,StrictInequalities->True],FunctionConvexity[x^2,x,StrictInequalities->True]}

Note

Some may find this answer surprising:

FunctionSign[(1/(x^2)),x]

However, it is correct!

Function must be defined before it can have a sign:

FunctionSign[{(1/(x^2)),x!=0},x]

Equivalently:

FunctionSign[{(1/(x^2)),FunctionDomain[(1/(x^2)),x]},x]

This is really a mathematics issue, not a Mathematica issue.

Integral Calculus

Constants of Integration

A common question: how do I get the “plus c”?

Integrate[x,x]

Now we have an answer:

Integrate[x,x,GeneratedParameters->C]

Of course, the parameters are only constant if doing single integrals!

Integrate[x,x,x,GeneratedParameters->C]

Integrate[x,x,y,GeneratedParameters->C]

D[%,x,y]

Integrate Documentation

Student-relevant examples on ref/Integrate, especially in Applications.

Limits, Take 2

The following limit is correct:

(Underscript[\[Limit], k->∞])(((-1))^(2 k))

But perhaps what you really wanted was this limit:

(Underscript[\[Limit], k(Underscript[->, (Integers)])∞])(((-1))^(2 k))

In previous versions, there was no documented, consistent way to compute limits of sequences.  Now there is a dedicate function: DiscreteLimit.

DiscreteLimit[Sin[k π],k->∞]

It can handle functions that are only define on integers, like Prime:

{(Underscript[\[Limit], n->∞])((Prime[n])/(n Log[n])),(Underscript[\[Limit], n(Underscript[->, (Integers)])∞])((Prime[n])/(n Log[n]))}

Linear Algebra

Adjugate (adjoint / adjunct matrix)

Adjugate[{{a,b},{c,d}}]

%.{{a,b},{c,d}}

Documentation updates

Identified roughly 50 pages representing core linear algebra functions

Pages have many new examples, with a focus on

consistent style for similar / related functions

teasing out issues where there may be differences between “traditional” linear algebra and computer systems

examples relevant for students

Examples

Dot

Eigensystem

JordanDecomposition

Wrapping up

Other improvements:

new visualizations (ReImPlot, ComplexPlot3D)

Plot enhancements (infinite domains, automatic singularity detection)

Additional function properties

set theoretic (FunctionInjective, FunctionSurjective, FunctionBijective)

topological (FunctionContinuous, FunctionAnalytic, FunctionMeromorphic)

Improved documentation examples for mathematical functions

illustrate the above and more

More than 250 pages, covering both familiar (Sin) and unfamiliar (MinkowskiQuestionMark) functions

A set of changes that together make Mathematica much more student-friendly!

Thanks…