At the Wolfram Technology Conference (WTC) 2020. Stephen Wolfram spoke about “computational thinking” and Conrad Wolfram about Computer-Based Maths initiative. With respect to that, I would like to draw attention to our recent 3-volume book below. We also address the problem of development of computational thinking through the study of analysis with the aid of Mathematica at the University of Warsaw. This might be interesting to people working as mathematics educators. Some more information can be found below in the embedded notebook from the WTC talk. Please also take a look at the front and back cover and a sample page of our book.
ABSTRACT: In this post we would like to share our experience in teaching analysis course using Mathematica at the University of Warsaw. This post is done jointly with Dr Andrzej Kozłowski. We have been teaching the course of analysis for computer science students and mathematics students for several years and augmented the standard course with computations in Mathematica, especially for computer science students. Students can use any recommended book on real analysis and are only required to know the basics of the Wolfram Programming Language (the computer science students learn this language in fact very fast).
We try to choose problems for our classes in which Mathematica could be genuinely useful. This means that students do not only apply some standard algorithm or plot a graph, but they are required to think and come up with some mathematical idea. Sometimes this idea is a guess inspired by a Mathematica calculation or a visual representation of the problem. Sometimes Mathematica can only verify this guess in special cases and sometimes it can prove its correctness in full generality. In all such cases we normally still want to obtain a rigorous mathematical proof. When using a computer program as an aid in mathematics it is important to understand what such programs are well suited to and what they are not, and also what kind of problems (including incorrect answers) one can run into.
In this post we give examples of problems where Mathematica can be used effectively as an aid in solving mathematical problems or at least to inspire the idea of a solution. CITATION (original book): Galina Filipuk and Andrzej Kozlowski | Berlin, Boston: De Gruyter, 2019. Analysis with Mathematica®: Volume 1: Single Variable Calculus, ISBN: 978-3110590135. https://doi.org/10.1515/9783110590142.
Analysis with Mathematica®: Volume 2: Multi-variable Calculus, ISBN: 978-3110660388. https://doi.org/10.1515/9783110660395
Analysis with Mathematica®: Volume 3: Differential Geometry, Differential Equations, and Special Functions, ISBN: 978-3110774542. https://doi.org/10.1515/9783110774641
AMAZON V1: https://www.amazon.com/Analysis-Mathematica-Gruyter-Textbook-Filipuk/dp/3110590131
AMAZON V2: https://www.amazon.com/Analysis-Mathematica%C2%AE-Multi-variable-Calculus-Textbook/dp/3110660385
AMAZON V3: https://www.amazon.com/Differential-Geometry-Equations-Functions-Textbook/dp/3110774542
We try to choose problems for our classes in which Mathematica could be genuinely useful. This means that students do not only apply some standard algorithm or plot a graph, but they are required to think and come up with some mathematical idea. Sometimes this idea is a guess inspired by a Mathematica calculation or a visual representation of the problem. Sometimes Mathematica can only verify this guess in special cases and sometimes it can prove its correctness in full generality. In all such cases we normally still want to obtain a rigorous mathematical proof. When using a computer program as an aid in mathematics it is important to understand what such programs are well suited to and what they are not, and also what kind of problems (including incorrect answers) one can run into.
In this post we give examples of problems where Mathematica can be used effectively as an aid in solving mathematical problems or at least to inspire the idea of a solution. CITATION (original book): Galina Filipuk and Andrzej Kozlowski | Berlin, Boston: De Gruyter, 2019. Analysis with Mathematica®: Volume 1: Single Variable Calculus, ISBN: 978-3110590135. https://doi.org/10.1515/9783110590142.
Analysis with Mathematica®: Volume 2: Multi-variable Calculus, ISBN: 978-3110660388. https://doi.org/10.1515/9783110660395
Analysis with Mathematica®: Volume 3: Differential Geometry, Differential Equations, and Special Functions, ISBN: 978-3110774542. https://doi.org/10.1515/9783110774641
AMAZON V1: https://www.amazon.com/Analysis-Mathematica-Gruyter-Textbook-Filipuk/dp/3110590131
AMAZON V2: https://www.amazon.com/Analysis-Mathematica%C2%AE-Multi-variable-Calculus-Textbook/dp/3110660385
AMAZON V3: https://www.amazon.com/Differential-Geometry-Equations-Functions-Textbook/dp/3110774542
Introduction
Introduction
Due to COVID-19 almost all teaching in many countries has gone online. What will the future of education look like?
Mathematica, combined with videoconferencing software such as Google Meet, Zoom or Skype, which allows one to share one’s screen, is a perfect replacement for the blackboard.
When we teach online, we can write, show pictures and give more additional material (for instance demonstrations in Mathematica) to students, which is very convenient. The students can see the screen of the lecturer and also experiment later on their own.
Mathematica, combined with videoconferencing software such as Google Meet, Zoom or Skype, which allows one to share one’s screen, is a perfect replacement for the blackboard.
When we teach online, we can write, show pictures and give more additional material (for instance demonstrations in Mathematica) to students, which is very convenient. The students can see the screen of the lecturer and also experiment later on their own.
In this post we would like to share our experience in teaching analysis course using Mathematica at the University of Warsaw. This post is done jointly with Dr Andrzej Kozłowski. We have been teaching the course of analysis for computer science students and mathematics students for several years and augmented the standard courses with computations in Mathematica. A typical mathematics course at the University of Warsaw consists of lectures at which the theory is taught and of accompanying problem classes. The course is usually aimed for first year students. Students can use any recommended book on real analysis or lecture notes (e.g., [1]) and are only required to know the basics of the Wolfram Programming Language (the computer science students learn this language in fact very fast).
We try to choose problems for our classes in which Mathematica could be genuinely useful. This means that students do not only apply some standard algorithm or plot a graph, but they are required to think and come up with some mathematical idea. Sometimes this idea is a guess inspired by a Mathematica calculation or a visual representation of the problem. Sometimes Mathematica can only verify this guess in special cases and sometimes it can prove its correctness in full generality. In all such cases we normally still want to obtain a rigorous mathematical proof. When using a computer program as an aid in mathematics it is important to understand what such programs are well suited to and what they are not, and also what kind of problems (including incorrect answers) one can run into.
In this post we shall give examples of problems from [2], [3] where Mathematica can be used effectively as an aid in solving mathematical problems or at least to inspire the idea of a solution. We believe that skills (e.g., computational thinking) acquired during this course can be applied to solving more complicated mathematical or research problems later on.
We try to choose problems for our classes in which Mathematica could be genuinely useful. This means that students do not only apply some standard algorithm or plot a graph, but they are required to think and come up with some mathematical idea. Sometimes this idea is a guess inspired by a Mathematica calculation or a visual representation of the problem. Sometimes Mathematica can only verify this guess in special cases and sometimes it can prove its correctness in full generality. In all such cases we normally still want to obtain a rigorous mathematical proof. When using a computer program as an aid in mathematics it is important to understand what such programs are well suited to and what they are not, and also what kind of problems (including incorrect answers) one can run into.
In this post we shall give examples of problems from [2], [3] where Mathematica can be used effectively as an aid in solving mathematical problems or at least to inspire the idea of a solution. We believe that skills (e.g., computational thinking) acquired during this course can be applied to solving more complicated mathematical or research problems later on.
Example 1: the inverse function of the hyperbolic sine
Example 1: the inverse function of the hyperbolic sine
Let us consider the following example. We will consider the hyperbolic trigonometric functions, which in Mathematica are defined as Sinh and Cosh. Since in this example we do not want to use Mathematica's built-in knowledge about these functions we will define our own versions:
In[]:=
sinh[x_]:=
Exp[x]-Exp[-x]
2
In[]:=
cosh[x_]:=
Exp[x]+Exp[-x]
2
Unfortunately in this example the function InverseFunction does not work correctly in Mathematica 12.1:
In[]:=
InverseFunction[sinh][x]
Out[]=
Logx-
1+
2
x
As we will see below Mathematica chooses incorrect branch of the function. We can clearly see that this function does not take real values. It is a pity that this version of Mathematica does not allow to specify the domain over which InverseFunction should be considered. We will obtain correct answer below.
We will now show that the function sinh is invertible and compute the derivatives of its inverse. Our first approach is simply to find the inverse function.
To show that the function sinh is invertible we need to show that the equation sinh(x)=y has at most one solution. In fact we will show that it has exactly one solution for every real
y:
In[]:=
x/.Solve[y==sinh[x],x,Reals]
Out[]=
Logy+
1+
2
y
This equation is easy to solve by hand (just use the substitution exp(x) = t and solve the resulting quadratic equation).
This means that the inverse function of sinh is . We can now find its derivative directly:
xlog+1+x
2
x
In[]:=
Simplify[D[Log[Sqrt[x^2+1]+x],x]]
Out[]=
1
1+
2
x
The weakness of this approach is that it requires explicitly solving the equation for x. In general this can be very hard to do or even impossible in an explicit form. However, we do not need to solve the equation to prove the existence of an inverse or even to find a formula for it. Since the function is defined on an interval, we only need to show that it is strictly monotone:
f(x)=y
In[]:=
D[sinh[x],x]
Out[]=
1
2
-x
x
Note also that the image of sinh is the whole of , since
In[]:=
FunctionRange[sinh[x],x,y]
Out[]=
True
The answer True means that every real number belongs to the range.
Since the derivative is positive everywhere, the function sinh has an inverse function defined on . We can find the derivative using the formula
In[]:=
Derivative[1][InverseFunction[f]][x]
Out[]=
1
′
f
(-1)
f
Since the derivative of sinh is clearly cosh, this can be written as
1
cosh((x))
(-1)
sinh
This is indeed a solution of the problem, but as it is not given in a convenient form, we now make use of the (easy to prove) identity
2
cosh(x)
2
sinh(x)
and obtain
In[]:=
1
2
sinh
-1
sinh
1
1+
2
x
Out[]=
True
(Since cosh takes only positive values we take the positive square root).
We can now check that this is exactly the answer we get by differentiating Mathematica's built-in function ArcSinh
In[]:=
D[ArcSinh[x],x]
Out[]=
1
1+
2
x
Example 2: properties of sets in 3
Example 2: properties of sets in
3
Determine whether the following set is bounded or not.
{(x,y,z)∈:sin(sin(cos(xy)))ysin(sin(x+y)),x≥-1,y≤1}
3
Note that since there is no restriction on , the set is unbounded unless it is empty. So we need to find just one solution to prove that it is not. We can use FindInstance
z
In[]:=
FindInstance[{Sin[Sin[Cos[xy]]]Sin[Sin[x+y]]*y,x≥-1,y≤1},{x,y}]//FullSimplify
Out[]=
x,y-818
FinInstance found a rather complicated root, but that is all we need. Using the method of guessing we can actually find a simpler one
In[]:=
Sin[Sin[Cos[xy]]]Sin[Sin[x+y]]*y/.{x0,y1}
Out[]=
True
Example 3: local extrema
Example 3: local extrema
Find the local extrema of the function
f:
3
In[]:=
f[x_,y_,z_]:=-3-2-z^2-2xz+yz
4
x
2
y
First, we find the critical points
In[]:=
critrules=Solve[D[f[x,y,z],{{x,y,z}}]0,{x,y,z},Reals];
In[]:=
crits={x,y,z}/.critrules
Out[]=
{0,0,0},-,,,,-,-
2
21
4
7
21
16
7
21
2
21
4
7
21
16
7
21
We next compute the Hessian matrices:
In[]:=
hess=D[f[x,y,z],{{x,y,z},2}]/.critrules
Out[]=
{{0,0,-2},{0,-4,1},{-2,1,-2}},-,0,-2,{0,-4,1},{-2,1,-2},-,0,-2,{0,-4,1},{-2,1,-2}
48
7
48
7
We can compute the eigenvalues of these Hessian matrices by means of the function Eigenvalues, but Mathematica has the function PositiveDefiniteMatrixQ which makes everything even simpler:
In[]:=
PositiveDefiniteMatrixQ/@hess
Out[]=
{False,False,False}
In[]:=
NegativeDefiniteMatrixQ/@hess
Out[]=
{False,True,True}
This tells us that the second and third points are local maxima, but the first case has to be decided separately. Let us have a look at the eigenvalues:
In[]:=
Eigenvalues[hess[[1]]]//N
Out[]=
{-4.58423,-2.70572,1.28995}
There are one positive and two negative eigenvalues so the critical point is neither a local minimum nor a local maximum. We could also have checked this by
In[]:=
IndefiniteMatrixQ[hess[[1]]]
Out[]=
True
References
References
[1] Moszyński M. Analiza matematyczna dla informatyków. Wykłady dla pierwszego roku informatyki na Wydziale Matematyki, Informatyki i Mechaniki Uniwersytetu Warszawskiego, 2010 (in Polish). Available at
https://www.mimuw.edu.pl/~mmoszyns/Analiza-dla-Informatykow-2017-18/SKRYPT
https://www.mimuw.edu.pl/~mmoszyns/Analiza-dla-Informatykow-2017-18/SKRYPT
[2] Filipuk G, Kozłowksi A. Analysis with Mathematica. Volume 1: Single Variable Calculus. De Gruyter Textbook, de Gruyter, 2019.
https://www.degruyter.com/view/title/537084?rskey=CikgJQ&result=1
https://www.amazon.com/Analysis-Mathematica®-Variable-Calculus-Textbook-ebook/dp/B085XC8MVX/ref=sr_ 1_ 2?dchild=1&keywords=filipuk&qid=1595332767&s=books&sr=1-2
https://www.degruyter.com/view/title/537084?rskey=CikgJQ&result=1
https://www.amazon.com/Analysis-Mathematica®-Variable-Calculus-Textbook-ebook/dp/B085XC8MVX/ref=sr_ 1_ 2?dchild=1&keywords=filipuk&qid=1595332767&s=books&sr=1-2
[3] Filipuk G, Kozłowksi A. Analysis with Mathematica. Volume 2: Multi-variable calculus. De Gruyter Textbook, de Gruyter, to appear.
https://www.degruyter.com/view/title/558068?rskey=CikgJQ&result=2
https://www.amazon.com/Analysis-Mathematica % C2 % AE-Multi-variable-Calculus-Textbook/dp/3110660385/ref=sr_ 1_ 2?dchild=1&keywords=filipuk&qid=1600473298&s=books&sr=1-2
https://www.degruyter.com/view/title/558068?rskey=CikgJQ&result=2
https://www.amazon.com/Analysis-Mathematica % C2 % AE-Multi-variable-Calculus-Textbook/dp/3110660385/ref=sr_ 1_ 2?dchild=1&keywords=filipuk&qid=1600473298&s=books&sr=1-2
CITE THIS NOTEBOOK
CITE THIS NOTEBOOK
Book & Course: Analysis with Mathematica
by Galina Filipuk and Andrzej Kozłowski
Wolfram Community, STAFF PICKS, 2021
https://community.wolfram.com/groups/-/m/t/2090703
by Galina Filipuk and Andrzej Kozłowski
Wolfram Community, STAFF PICKS, 2021
https://community.wolfram.com/groups/-/m/t/2090703
