# Spring 2013 MATH 307: Mathematical computing with MathematicaBranko Ćurgus

Friday, June 7, 2013

• Yesterday I illustrated how to do probabilities in Mathematica, see Probabilities.nb. This is useful for Problem 3 on Assignment 3.
• Today we talked about Mathematica's Calendar package and how to use it to do Problem 1 on Assignment 3. The record of this is in 20130607.nb.
• In 20130607.nb there is some useful stuff on Problem 2 on Assignment 3, as well. In Problem 2 I ask you to reproduce several pictures from Wikipedia's website. A useful notebook for one of these pictures is Goldbach_Picture.nb.
• Today we also talked about fractals which you will explore in Problem 4 on Assignment 3. Two useful notebooks for this problem are vonKoch_curve.nb and PythagorasTree.nb.

Tuesday, June 4, 2013

• In Problem 1 on Assignment 3 you need to use the Calendar package: Needs["Calendar"]. This package contains several functions related to date arithmetic: DaysBetween[], DaysPlus[], DateQ[].
An important warning: Before you use the commands from the Calendar package you must load the Calendar package. If you by mistake try to use one of the Calendar package commands without having the package loaded, you will have to quit the kernel (Evaluation→Quit Kernel→Local) before loading the package.
• The commands Fit[] and FindFit[] are essential for Problem 2 (b-3) on Assignment 3.
• The file Probabilities.nb is dealing with a problem which is similar to questions in Problem 3 on Assignment 3.
• The file PythagorasTree.nb is a "guide" for the construction of fractals in Problem 4 on Assignment 3.
• In the first part of Problem 4 on Assignment 3 you are asked to create a function that would produce iterations of the quadratic type 2 curve. In the first picture below I show the 0th iteration in blue and the 1st iteration in red. I emphasize the points that are used. You do not need to do this on your plots. In the second picture below I show the 1st iteration in blue and the 2nd iteration in red. The large picture is the fourth iteration of the quadratic type 2 curve.
• In the second part of Problem 4 on Assignment 3 you are asked to create a function that would produce iterations of the Cesaro fractal which depends on angle $\alpha$. The four pictures below show the 0th, 1st, 2nd and the 3rd iteration of the Cesaro fractal with the small angle $\alpha = \pi/16$.

• Below is an animated gif file that cycles through the 1st, 2nd, 3rd, 4th, 5th and the 6th iteration of the Cesaro fractal and, within each of the iterations cycles through all the angles starting from $\pi$, proceeding towards $0$ and then back to $\pi$ in steps of $\pi/50$. The animation starts by the first iteration and cycles through angles from $\pi$ to $0$ and back to $\pi$. This is repeated for 2nd, 3rd, 4th 5th and 6th iteration. For each iteration there are 101 pictures.

• Place the cursor over the image to start the animation.

Thursday, May 30, 2013

• Today in 20130530.nb I illustrated how to use Interpolation[] to construct the inverse function of a given function. In this file I also give some hints how add tick marks on any line.
• Please have in mind that the most important part of ExpfTanl.nb is Subsection entitled "This is a very important side note: What if Mathematica could not find the inverse?" in Section "Response to Task 2". This is closely related to Problem 1 on Assignment 2.

Tuesday, May 28, 2013

• On Friday we did very important concept of Pure Function and how to use them in Select[]; please see 20130524.nb. In this file I also gave some hints how to do Problem 2 on Assignment 2. More hints on how to do Problem 2 can be found in an old file 20130301.nb.
• In the notebook containing Assignment 2 some cells with the code that produced the pictures are closed. To open those cells to see the code highlight the bracket above the picture go to the Cell menu item, click Cell Properties and check the box Open.
• Today I did a manipulation which should help with Problem 3 on Assignment 2, see 20130528.nb

Wednesday, May 22, 2013

• The second assignment has been posted yesterday.
• Very important tools in Mathematica are Module[] and Pure Function. I will illustrate these tools in class.
• Problem 1. This problem is quite similar to the problem solved in ExpfTanl.nb. In the notebook ExpfTanl.nb there are many hints on what to do in this problem.
• Problem 2 is an exploration of a surprising function. You should use what you learned in Calculus combined with the power of Mathematica. The function given in this problem has some surprising features that you need to discover. When you discover these features, formulate them in clear answers to my questions. Support your answers with calculations and illustrations. To explore the function use the functions D[] to find the derivative and FullSimplify[] to simplify it. To find special points you can use Solve[], Reduce[] or FindRoot[] where appropriate. However, Mathematica needs a lot of human help in this problem. It is a very good example of human-machine interaction.
• Problem 3.
• In the first part of this problem you need to unify, as explained in the problem, three animations given below.

Place the cursor over the image to start the animation.

Place the cursor over the image to start the animation.

Place the cursor over the image to start the animation.

• In the second part you need to reproduce two pictures from Wikipidia's Cardioid page I made an animation that unifying these two pictures. You should be able to produce something like this. If not you can present one animation and one picture.

Place the cursor over the image to start the animation.

• In the third part of Problem 3 you need to produce generalized cardioids. The animations below are large. On a slow internet connection it takes a while for them to load.
• Below is the cardioid generated by a wheel with radius 1/2 rolling on a circle with radius 1.

Place the cursor over the image to start the animation.

• Below is the cardioid generated by a wheel with radius 1/3 rolling on a circle with radius 1.

Place the cursor over the image to start the animation.

• Below is the cardioid generated by a wheel with radius 2 rolling on a circle with radius 1.

Place the cursor over the image to start the animation.

• Below is the cardioid generated by a wheel with radius 3/2 rolling on a circle with radius 1.

Place the cursor over the image to start the animation.

• I will comment on Problem 4 in class.

Friday, May 17, 2013

• Assignment 1 is due on Tuesday, May 21, 2013.
• Today, see 20130516.nb, I worked on an illustration of how to construct the circumscribed circle of a given triangle $ABC$. We figured out how to do it solving three equations in Mathematica. Then, inspired by Wikipidia's page Circumscribed circle page, we added (in blue) the perpendicular bisector for each side of the triangle. These three bisectors intersect at the center of the circumscribed circle. Understanding the details of this problem is helpful for Problem 4.

Thursday, May 16, 2013

• Assignment 1 is due on Tuesday, May 21, 2013.
• Problem 1. Today I showed how to define `any'' funny trigonometric function using Mod[], see 20130516.nb. You can read about that in More_on_Trig.nb. However, it is possible to define the functions SqSin, SqCos, LiSin, LiCos, TrapSin, TrapCos, RoSin, RoCos in Problem 1 by using compositions of Cos, Sin, Sign, ArcCos, ArcSin and modifications of resulting periods and amplitudes. If you use functions Mod, Floor, If and similar functions you might experience problems with Plot[]. These problems are caused by the plot option Exclusions->Automatic. Changing Exclusions->Automatic to Exclusions->None might fix the problem.
• For Problem 1 you will need to carefully read the file TheBeautyOfTrigonometry.nb. Please pay attention to tricks that I introduce in that file. Reading this file should be a learning experience.
• When you adopt the content of The beauty of trigonometry to your funny Cos, Sin it is essential to pay attention to the proper domains for the variables involved. Here proper means that there should be no overlap in the parametric plots. In 3-d parametric plots overlaps can slow down plotting considerably. Your notebook should evaluate in less than 60 seconds. If it is slower, then comment out the slow parts. That is enclose the slow parts in (*    *).
• Some useful stuff for Problem 2 is at Mathematica page, Section: Recursively defined functions. See also 20130513.nb.
• Some hints for Problem 3 are in 20130513.nb. Essentially it uses just three functions FullSimplify[], Sum[] and Table[].
• Tomorrow we will continue discussing a problem relevant to Problem 4: given three noncollinear points, find the center of the circle that passes through each of the given points. Mathematica easily solves this problem symbolically. Given points $P_1 = (a_1, b_1)$, $P_2 = (a_2, b_2)$, $P_3 = (a_3, b_3)$, we seek the point $C = (x,y)$ which is at the same distance, say $r$, from each of the points $P_1$, $P_2$, $P_3$. That is, we need to solve for $x, y, r$ the following system of equations: \begin{align*} \sqrt{(a_1 - x)^2 + (b_1-y)^2} & = r \\ \sqrt{(a_2 - x)^2 + (b_2-y)^2} & = r \\ \sqrt{(a_3 - x)^2 + (b_3-y)^2} & = r \end{align*} Mathematica is very efficient in solving this system. It finds: \begin{align*} x & = \frac{a_2^2 \left(b_3-b_1\right)+a_3^2 \left(b_1-b_2\right)+\left(b_2-b_3\right) \left(a_1^2+\left(b_1-b_2\right) \left(b_1-b_3\right)\right)} {2\left(a_3 \left(b_1-b_2\right)+ a_1\left(b_2-b_3\right)+ a_2 \left(b_3-b_1\right)\right)} \\[10pt] y & = \frac{ a_1\left(a_2^2-a_3^2+b_2^2-b_3^2\right) +a_3 \left(b_1^2-b_2^2\right) +a_2 \left(a_3^2-b_1^2+b_3^2\right) +\left(a_3-a_2\right) a_1^2 -a_2^2 a_3}{2\left(a_3 \left(b_1-b_2\right) +a_1\left(b_2-b_3\right) +a_2\left(b_3-b_1\right)\right)} \\[10pt] r & =\frac{1}{2} \sqrt{ \frac{\left(\left(a_1-a_2\right)^2+\left(b_1-b_2\right)^2\right) \left(\left(a_1-a_3\right)^2+\left(b_1-b_3\right)^2\right) \left(\left(a_2-a_3\right)^2+\left(b_2-b_3\right)^2\right)} {\left(a_3 \left(b_2-b_1\right)+a_2 \left(b_1-b_3\right)+a_1 \left(b_3-b_2\right)\right)^2}} \end{align*} With a little bit of human help these expressions can be brought to a more symmetric form: \begin{align*} x & =\phantom{-} \frac{\left(b_1-b_2\right) \left(b_1-b_3\right) \left(b_2-b_3\right) + a_1^2 \left(b_2-b_3\right)+a_3^2 \left(b_1-b_2\right)+a_2^2 \left(b_3-b_1\right)}{2 \bigl(\left(a_1-a_2\right) \left(b_2-b_3\right)-\left(a_2-a_3\right) \left(b_1-b_2\right)\bigr)} \\[10pt] y & = -\frac{\left(a_1-a_2\right) \left(a_1-a_3\right) \left(a_2-a_3\right)+b_1^2\left(a_2-a_3\right) + b_2^2 \left(a_3-a_1\right) + b_3^2 \left(a_1-a_2\right) }{2 \bigl(\left(a_1-a_2\right) \left(b_2-b_3\right)-\left(a_2-a_3\right) \left(b_1-b_2\right)\bigr)} \\[10pt] r & = \frac{\sqrt{ \left(\left(a_1-a_2\right)^2+\left(b_1-b_2\right)^2\right) \left(\left(a_1-a_3\right)^2+\left(b_1-b_3\right)^2\right) \left(\left(a_2-a_3\right)^2+\left(b_2-b_3\right)^2\right)}} {2\bigl| \left(a_1-a_2\right) \left(b_2-b_3\right)-\left(a_2-a_3\right) \left(b_1-b_2\right) \bigr|} \end{align*} This circle is known as the circumscribed circle of the triangle $P_1P_2P_3$.

Tuesday, May 7, 2013

• This webpage.
• My Mathematica page.
• Your Dropbox directory Dropbox\307_Files. Remember that the entire class has access to this directory. Please do not write anything in this directory and do not delete any files from there. You can copy them in your private directory. Only you and I have access to your Dropbox directory Dropbox\307_Yourlastname. This directory is exclusively for submitting your homework assignments.
• Directory Math\Curgus\307 on school's K-drive.
• Each class period I will use Mathematica for various demonstrations. I will save these files with the current date. For example, next Thursday's file will be 20130509.nb.

Tuesday, April 2, 2013

• Mathematica part of the class will start on Tuesday, May 7, 2013.
• The information sheet
• We will use
which is available in BH 215. This is the current version of this powerful computer algebra system.
• To get started with Mathematica see my Mathematica page. Please watch the videos that are on my Mathematica page before the first class.
• We also have
which is available on many more campus computers. This is an old, but still powerful, version of this software. These two versions are not compatible.