SUNY Stony Brook

Office: 4-112 Mathematics Building

Phone: (516)-632-8274

Dept. Phone: (516)-632-8290

FAX: (516)-632-7631

TuTh 11:30-12:50 Math Tower S-235S (computer lab in basement)

Office hours 10-11:20, Tuesday and Thursday, and by appointment.

** No Final Exam **

If you are doing a third project, it is due
(at my office, 4-112 Math Tower) at the beginning of
the scheduled final exam time 11:15-1:45 Wednesday, December 19

This is a course in problem solving using MATLAB. This is
commercial software produced by the company Mathworks,
and is commonly used throughout academia and industry.
We may do a proof here and there, but the main focus
is on computing and experimenting. You will graded on
three basic skills: the ability to use MATLAB commands
we have discussed in class to perform a specific calculaion
and get the right answer;
the ability to take a written decription of
a formula or algorithm and turn it into code; and
the ability to clearly describe what your code does
using written English, embelished with tables, charts
and figures. The first catefory will be evaluated
by in class quizes and the latter two by homework
assignments and written projects (the projects are
very similar to homework assignments, except that they
are a little longer and you get to choose the topics
from a list I prepare).

Among the mathematical topic we may explore are (this list
is subject to deletions and substitutions):

Prime numbers

Graph theory, random graphs

Expander graphs

Random walks, harmonic measure

DLA (Diffusion Limited Aggregation)

Percolation

Root finding, Newton's method

The Mandelbrot set

Polynomial interpolation, Chebyshev nodes, Chebfun

Shift codes, Substitution codes

Letter frequency, digrams

One time pads, Venona

RSA

We will
start by going through most of Tobin Driscoll's short book
"Learning MATLAB"
for the first few weeks to learn the basic commands.
We will then do various topics in cryptography, probability,
graph theory,
approximation theory (and whatwever we can fit into the course) using
materials I put on the website. There is a lot of interesting
material in Cleve Moler's books
"Numerical Computing in MATLAB: revised reprint"
and "experiments in MATLAB", as well a few articles
and blog entries by Moler from the Mathworks site. Moler
is the original creator of
MATLAB. Moler's books can be purchased as
hard-copies, but there are also a free online versions
provided by MathWorks (the company the produces MATLAB);
you will need to create a MathWorks Account.

Learning MATLAB by Toby Driscoll. Amazon site for a very good, very short and inexpensive introduction to MATLAB, by a real expert.

SIAM site for buying of "Learning MATLAB" by Tobin Driscoll.

Numerical Computing in MATLAB: revised reprint by Cleve Moler. Chapters can be downloaded individually. There is also a collection of MATLAB code to download and that is used in the text. There are lots of good examples here, and this is an excellent introdcution to MATLAB by its creator, but we will not follow it closely in class.

SIAM site for buying hardcopy of "Numerical Computing in MATLAB: revised reprint by Cleve Moler.

Numerical Computing in MATLAB: revised reprint by Cleve Moler. Chapters can be downloaded individually. There is also a collection of MATLAB code to download and that is used in the text. There are lots of good examples here, and this is an excellent introdcution to MATLAB by its creator, but we will not follow it closely in class.

SIAM site for buying hardcopy of "Numerical Computing in MATLAB: revised reprint by Cleve Moler.

The university has a ** WRTD writing requirement ** that can
be fulfilled by submitting two of the projects
from this class. If you intend to fulfill the requirement
this way, you should register for the zero-credit course
MAT 459, and let me know you want to use your MAT 331
projects for this requirement. I will post possible
projects as the semester proceeds and we will discuss
a few in class two.

MATLAB is installed on machines in the SINC sites and is available from any computer via the virtual SINC site Virtual SINC site. .

Scripts and functions should be saved in your MySBFiles directory; other dirctories on the SINC site machines are erased after 48 hours. These MySBFiles can be accessed directly from any machine with an internet connection at MySBFiles .

The university license also allows you to download a copy to your home computer (if you are currently a student or faculty member): Information on downloading a copy of MATLAB This page also has instructions on how to create a MATHWORKS account,which you will need to access MATLAB programs and textbooks, even if you don't download a personal copy of MATLAB.

Grades will be based on (each counts equally):

(1) In-class quizzes. I provide practice quizzes to do at home.

(2) Homework. These will usually involving
writing a short report stating the problem, describing how
to solve it, giving the MATLAB code you used, and table or pictures
that illustrate your results.

(3) Projects: just like homework, but a little longer and
often involving some outside reading. I will make up
several of these and you will choose two to do. If you want to
improve your grade, you may choose to do a third project to replace
one of the first two.

->

Send the lecturer (C. Bishop) email at:

Link to history of mathematics There are a lot of iteresting articles here. If you know of other math related sites I should link to, let me know.

A link to MathSciNet (Online Mathematical Reviews). These gives access to reviews of about 3 million mathematical papers and links to some of the actual articles. You will need a NETID and password to access this.

A link to the Stony Brook virtual SINC site . You will need a NETID and password to access this.

The not too short introduction to LaTex

A link to the installer for TexMaker. on the SINC site machines. You can also download for use on the virtual SINC site. This is special editor for TeX files that incorporates several steps into one. You will need a NETID and password to access this.

Markup in MATLAB publish This gives some tips on how to write a MATLAB script to be pushished (how to create titles, insert bold or italics charactgers, how to insert LaTeX formulas,....

Projects are longer versions of the homework assigments, but I
will give several and you need to choose any three to hand in. If
you are enrolled in MAT 459, then two of these can be used to
satisfy the university WRDT requirement, as described above.

The first project is due November 8, and the second November 29.
If you want to do a third one, it will be due December 19 (at my office).
You may submit either a hardcopy
or electronic version (but I would prefer a hardcopy to make sure
it is printed just as you intend).

If you scored less than 80/100 on the first project, you may
hand in a revised version for a possibly higher grade (at most 80)
on or before November 29. The second project is still due on
November 29.

Each listed project has two components for you to look at.
The first is a one page description
of what I want you to do. This will often include an itemized list of
computations I want you to make, based on the reading the second
part. The second will usually be a some
notes written by myself, or a short recent paper by some mathematician
describing a calculation or algorithm. Usually there will be more material
here than you need to do the project; I generally only want you to do
and describe experiments that test the claims of the paper, and you generally
don't have to understand the proofs in the paper to do this.

Projects for Thursday, November 8 (you may hand this one in on Tuesday, Nov 13):

Project - The giant component ,

Bollabas paper on random graphs

Wikipedia page on Giant Component

Project - perfect matchings ,

Notes on Tutte's perfect matching criteria.

different notes on Tutte's perfect matching criteria

Project - Points of increase ,

Points of increase for random walks , by Yuval Peres, Microsoft Research

Project - fractal dimension ,

YouTube video explaining idea of fractals and dimension

Projects for Thursday, November 29. You may also do one of the projects listed above (a different one that you did for the first project). I will also consider alternative topics for projects, but you should first discuss the idea with me and get my approval before handing it in.

Project - random permuations of the alphabet , -----
Solving a random permutation substitution

Project - solving a random shift code , -----

Project - distinguishing authors , -----

Project - one time pads , -----
Breaking a re-used one time pad

Project - Mandelbrot set , -----
Estimate the area of the Mandelbrot set using random sampling

The write-up is supposed to be a short report that
explains what the problem is and how you solved it,
including any samples of code or output (such as tables
or plots). Think of it like an essay for an English or
History class except that it is written about a math problem,
instead of about Jane Austin or the French revolution. There
should be an introduction that describes the problem, a
main body that gives the details of your solution and a
conclusion the briefly summarizes your results.

Some good things to do include:

Put titles on your plots

Insert comments into code saying what role
named arrays play and what loops are doing

supress intermediate calculations and
display a single table of results at end

when comparing two or more arrays, present
them as columns of a single table/array

when plotting an approximation to a function,
also plot the function so we can see how close they are. Also
consider plotting (separately) the difference of the two.

** Tuesday, August 28 ** Introduction

Cleve's Corner - The origin of MATLAB ,

** Topics covered:**

course administration, the class webpage,

how to access the virtual SINC site,

how to open MATLAB, open documentation,

format long, pi

basic arithmetic, digits, vpa

sqrt, sin, ex, char, strfind

vectors and matrices, zeros, ones, colon operator, sum

** Thursday, August 30 ** More basic MATLAB

Scripts for Aug 30

On Tuesday, plotting did not work correctly. This is supposed to be fixed now on the SINC site computers, but if not, then
after starting MATLAB, type the command
** opengl('save','software') **. It might be necessary to restart
MATLAB.

** Topics covered: **

MySBSFiles, creating a directory, subdirectories

save, load

plot, scatter, scatter3, figure, hist, hold on, grid on, title, legend

Practice Quiz 1
and
Solutions for practice Quiz 1

** Tuesday, September 4 ** Quiz 1 during last 30 minutes of class

Solutions for Practice Quiz 1

Scripts for Sept 4

** Topics covered: **

find, logical indexing

** Thursday, September 6 **

Scripts for Sept 6

Homework 0 (PDF) -- sample homework

Homework 0 solution using MATLAB script -- sample solution in recommended format

Homework 0 (TEX) -- LaTex file used to
create hw0.pdf

** Tuesday, September 11 **

Scripts for Sept 11

** Topics covered: **

tic, toc, profiling, pre-allocation of memory

random n-vectors, normal distribution, rand, randn, randi

polynomials in MATLAB, polyval, polyder, roots

Newton's method

anonymous functions, ezplot, fzero

** Thursday, September 13 ** Homework 1 due

Scripts for Sept 13

Homework 1 - volumes of n-balls

Wikipedia - volumes of n-balls

Practice Quiz 2

Solutions for Practice Quiz 2

** Topics covered: **

arrays: size,length

matrix multiplication, solving, det, eigs

basic linear algebra

** Tuesday, September 18 ** Quiz 2, last 30 minutes of class

Solutions for Quiz 2

No new material today.

** Thursday, September 20 **

Scripts for Sept 20

** Topics covered: ** images, imread, imshow, uint8, rgb2gray

** Tuesday, September 25 **

Scripts for Sept 25

Homework 2 due date moved to Oct 2.

Johnson-Lindenstrauss lemma, Wikipedia

An Elementary proof of the Johnson-Lindenstrauss lemma ,
by Sanjoy Dasgupta, and Anupam Gupta.

Dimension reduction ,
by Nick Harvey.

** Thursday, September 27 **

Gauss Prize Citation for David Donoho ,

Compressive Sensing: from blackboard to beside ,
Donoho's Gauss prize lecture at the International Congress of
Mathematicians. His lecture is recap (with additional comments)
of presentation he made to members of Congress and staffers
about how mathematical research effects peoples lives.

From Blackboard toBedside: how high dimensional geometry is
transforming the MRI industry ,
Written summary of Donoho's presentation.

Mathematicians helping art historians and art conservators
,
Public lecture by Ingrid Debauchies on applications of math
to art history. Introduction is in Portuguese; lecture is in
English, starting at time 2:25. Prof Debauchies is one of
world's leading experts on wavelets and image processing.

** Tuesday, October 2 **

Homework 2 due date moved to from Sept 25.
Homework 2 - Image compression

Scripts for Oct 2

** Topics covered: ** basic graph theory, vertex, edge,
degree, adjacency
matrix, connected graphs, connected components,
shortest paths, spanning trees, bi-partite graphs,
four-color theorem

** Thursday, October 4 **

practice quiz 3,
solutions. For the practice quiz
use the graphs found in graphs.mat which is save in the list of Scripts
for Oct 4. The actual quiz will use a different collection of graphs; a
link will be given below under October 11.

Scripts for Oct 4

** Topics covered: **
degree,
matrix, connected graphs, connected components,
shortest paths, spanning trees

** Tuesday, October 9 ** Fall Break, No class

** Thursday, October 11 **
Quiz 3 (last 30 minutes of class)

solutions

graphs_quiz3.mat
20 adjacency matrices for use in Quiz 3.

Scripts for Oct 11

** Tuesday, October 16 **

** Topics covered: random graphs, giant component **

Bollabas paper on random graphs

photo of Bollabas and myself at 2018 ICM.

Wikipedia page on Giant Component

Tutte's perfect matching criteria

Tutte's perfect matching criteria, 2nd version

** Thursday, October 18 **

Practice Quiz 4,
Solutions.
Real Quiz, Thursday Oct 25

Scripts for Oct 18, Cryptology

ASCII code

Project Gutenberg

National Cryptologic Museum

Wikipedia - Ultra (World war II)

Wikipedia - VENONA (Soviet spying in US)

** Tuesday, October 23 ** More on cryptology, go over
practice quiz 4

** Topics covered:**

simplify_text.m = drop non-letters, convert letter to uppercase

caesar0.m = apply caesar code to typed input

caesar2.m = apply caesar code to named input file

count_common_words.m = count number of words in file from short list of common words

pair_freq.m = count 2-grams in a given text

count_pairs.m = score text for English using 2-gram counts created by pair-freq

Google n-gram viewer, counts how often a word or phrase has occured in published work since 1800.

The scripts prob4, prob5, prob6 written in class have been saved in
Crypt folder.

** Thursday, October 25 ** Quiz today, last 30 minutes of class,
quiz solutions.

** Tuesday, October 30 **

Identifying English with digrams, break_caesar2.m, count_pairs.m

Solving random substitution codes with letter counts

** Thursday, November 1 **

Letter frequencies to breaks random permutation
substitutions.

** Tuesday, November 6 **

Questions about projects.

** Thursday, November 8 **

RSA (Rivest, Shamir, Adleman)

Some scripts relevant to RSA

RSA cryptosystem - Wikipedia

RSA factoring challenge - Wikipedia

One-time pad - Wikipedia

VENONA project - Wikipedia

Enigma machine - Wikipedia

Ultra - Wikipedia

** Tuesday, November 13 ** Project I due

Iteration scripts

** Topics covered:**

Newton's method, rational iterations, Mandelbrot set, Julia set

Benoit Mandelbrot

Gaston Julia

Pierre Fatou

Dennis Sullivan

John Milnor

** Thursday, November 15 **

Histogram for Project 1

Histogram for approximate course totals (average of hohomework percent, quiz percent and project percent)

the Julia set

the Mandelbrot set

** Tuesday, November 20 ** no class

** Thursday, November 22 ** Thanksgiving, no class

** Tuesday, November 27 ** Finish Mandelbrot, start random walks

scripts related to random walks

Wikipedia - Random walks

Wikipedia - the central limit theorem

Wikipedia - the error function

Wikipedia - physical Brownian motion

Wikipedia - Albert Einstein

Wikipedia - Norbert Weiner

Fractals in Probability and Analysis

by Bishop and Peres.

** Thursday, November 29 **

** Tuesday, December 4 **

** Thursday, December 6 ** Last class

** Wednesday, December 19 ** Optional thrird project due,
11:15am, at my office. 4-112 Math Tower.

Stephen Wolfram blog on Ramanujan

** Technology Support: **
Student Technology Services.
TLT provides academic technology support to all students. If you require assistance with Blackboard or other academic technologies, please contact TLT at: helpme@stonybrook.edu; Phone: 631.632.9602; Chat; http://www.stonybrook.edu/helpme or visit a SINC Site.

Students who need assistance with their personal devices can contact DoIT's service desk at: 631.632.9800, submit an online request, or visit the Walk In Center on the 5th floor of the Melville Library (West Campus), Room S-5410. For more information, visit: https://it.stonybrook.edu/students

**
The University Senate Undergraduate and Graduate Councils
have authorized that the following required statements
appear in all teaching syllabi (graduate and undergraduate
courses) on the Stony Brook Campus.
**

** DISABILITY SUPPORT SERVICES (DSS) STATEMENT: **
If you have a physical, psychological, medical, or learning
disability that may impact your course work, please contact
Disability Support Services at (631) 632-6748 or
http://studentaffairs.stonybrook.edu/dss/.
They will determine with
you what accommodations are necessary and appropriate. All
information and documentation is confidential.

**ACADEMIC INTEGRITY STATEMENT: **
Each student must pursue his or her academic goals
honestly and be personally accountable for all submitted work.
Representing another person's work as your own is always wrong. Facultyare required to report any suspected instances of academic dishonesty to the Academic Judiciary. Faculty in the Health Sciences Center (School of Health Technology and Management, Nursing, Social Welfare, Dental
Medicine) and School of Medicine are required to follow their school-specific procedures. For more comprehensive information on academic integrity, including categories of academic dishonesty, please
refer to the academic judiciary website at
http://www.stonybrook.edu/uaa/academicjudiciary/

** CRITICAL INCIDENT MANAGEMENT: **
Stony Brook University expects students to respect the rights,
privileges, and property of other people. Faculty are required
to report to the Office of Judicial Affairs any disruptive
behavior that interrupts their ability to teach, compromises
the safety of the learning environment, or inhibits students'
ability to learn. Faculty in the HSC Schools and the School of Medicine are required to follow their school-specific procedures.