Numerical Analysis 2020 - Fall - MEEN357 - Syllabus
Numerical Analysis 2020 - Fall - MEEN357 - Syllabus
1. General Information
Instructor: Prof. Pilwon Hur, Ph.D.
Phone: (979)862-4461
Email: [email protected]
Office: MEOB 222
Office Hours: TTh 11:00 – 11:30 am, 12:45 – 1:15 pm (via Zoom) or by appointment
Lecture: Synchronous via Zoom (check eCampus for the link)
TA:
1) HW2-4: Alaba Bamido ([email protected])
2) HW5-7: Sandipan Paul ([email protected])
3) HW8-10: Sencheng Yu ([email protected])
Python Help Desk:
1) Mazen Ali ([email protected]) Schedule with Zoom link (TBA)
2) Tray Ramirez ([email protected]) Schedule with Zoom link (TBA)
3) Maria Parison ([email protected]) Schedule with Zoom link (TBA)
4) Samuel Ortiz ([email protected]) Schedule with Zoom link (TBA)
5) Jiafei Wang ([email protected]) Schedule with Zoom link (TBA)
Textbook: J. Kiusalaas, Numerical Methods in Engineering with Python 3, Cambridge University
Press, Cambridge, 2013.
Other References:
1) R. M. Bowen, Lectures on Applied Mathematics, Part 1: Linear Algebra, available for
download on eCampus.
2) R. M. Bowen, Lectures on Applied Mathematics, Part 2: Numerical Analysis, Written
for Matlab and available for download on eCampus.
3) Python tutorials can be found at https://docs.python.org/3/tutorial/ and documentation
for Spyder at https://pythonhosted.org/spyder/.
4) Codecademy may also be useful: https://www.codecademy.com/.
5) Insightful and informative tutorials on linear algebra can be found at
https://m.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab
published by 3Blue1Brown.
Requirements:
1) A laptop (preferably), a desktop, or a like device that is network-enabled, webcam.
2) Install Python 3 and an IDE (integrated development environment) on your computer.
If you run Windows, install the Anaconda distribution of Python. You can download
and install it from https://anaconda.org/anaconda/python-editor. Anaconda comes with
Spyder, https://www.anaconda.com/products/individual, the IDE that we will use in
this class. Make sure that when you install Anaconda (or alternative) it is for version 3
of Python, not version 2.
Course Credits: Three (3-0)
Prerequisites: MATH 308 and ENGR 112; pre- or co-requisite: MEEN 210
MEEN 357 Syllabus Aug 19, 2020
Mid-Term Exam: Oct 13, 2020, 11:30am - 12:45pm via Zoom
Final Exam: Dec 1, 2020, 11:00am - 1:30pm via Zoom
2. Course Description
This course provides a practical foundation for the use of numerical methods to solve engineering
problems. The topics studied in this course are: solving systems of linear equations, curve fitting
and root finding, numerical integration and differentiation, initial value and two-point boundary
value problems, plus eigenvalues and optimization methods. We will study these techniques
mathematically, develop numerical approximations for them, and apply them to solve engineering
problems. Personal computers are used extensively in this course. Students are required to program
these numerical analysis techniques, which will be programmed from scratch, even if there exists
the implementation of these techniques in the extensive Python standard library,
https://docs.python.org/3/library/index.html or in the numerous third-party libraries, for example,
https://wiki.python.org/moin/UsefulModules.
Python is the programming language that we will use in this class. It is the fastest growing
programming language in the World today, and as of this year, is being taught in freshman
engineering. Spyder is the recommended IDE, and it is installed on the computers in the MEEN
Computer Lab. No previous knowledge of programming, in general, or of Python, in particular, is
required. Nevertheless, students are expected to become proficient in the use of this tool by the
end of the semester. This typically requires a great deal of self-learning on the student's part, which
is why self-help tutorials are so important.
3. Learning Outcomes
1) Gain programming confidence. Computers are the most widely used tool in engineering.
a) Basic programming (data structures, conditionals, loops, input checks)
b) Reporting (generating plots, tables)
c) Use of integrated development environments (IDE) like Spyder and advanced libraries
d) Overcome threshold of Python’s learning curve (preparation for future courses)
2) Develop a foundational understanding and experience in numerical analysis
a) Solving linear algebraic systems of equations
b) Curve fitting and roots of equations
c) Integration and differentiation
d) First- and second-order differential equations
e) Eigenvalues and optimization
3) Design programs and select appropriate method(s) to solve a given physical or engineering
problems while considering:
a) Finite precision (numerical error)
b) Finite memory (accuracy, convergence)
c) Finite processing speed (number of operations)
4) Practice proper programming techniques. You will seldom if ever be a ‘Lone-Ranger’ (sole-
developer, sole-user). To work in this collaborative arena, you will need to become
knowledgeable in the areas of:
a) Design of programs, algorithms and their interfaces
b) Construction of structures (data, subroutines, functions, testing routines)
c) Commenting, useful variable naming
Lecture: All lectures will be synchronous via Zoom. Please attend the lectures at the
designated time via Zoom. All lectures will be recorded and posted on eCampus.
Assessments: Your progress toward achieving the learning outcomes will be assessed in the
following ways. These pertain to ABET objectives (see below):
• Regular homework assignments (approximately one per each week) involving hand
calculations, programming and running code, and writing reports. Individual efforts.
• A mid-term exam assessing your grasp of the fundamentals of the methods taught.
Individual effort, closed book, but with a one-sided cheat sheet and a calculator. The
exam will be made available on eCampus. It will be done during the regular class hour
(11:30am-12:45pm). The exam will be proctored via a two-way system: you are
required to prepare a Zoom-enabled computer (with webcam) and a smartphone so that
the proctor can monitor you during the exam. You are required to prepare your own
blank papers for your solution. Once done, you need to scan (or take photos of) the
solution and post them on eCampus.
• Comprehensive final examination for the course, aimed primarily at assessing the
student’s understanding of the fundamentals. Individual effort, closed book, but with a
double-sided cheat sheet and a calculator. The exam will be made available on
eCampus. It will be done during the University-approved final exam date. The exam
will be proctored via a two-way system: you are required to prepare a Zoom-enabled
computer (with webcam) and a smartphone so that the proctor can monitor you during
the exam. You are required to prepare your own blank papers for your solution. Once
done, you need to scan (or take photos of) the solution and post them on eCampus.
4. General Expectations
What you can expect from us:
• To make sure that the homework and exams will be graded within two weeks
• To come prepared to class
• To treat you with respect
• To begin and end the class on time
• To admit to not knowing something, but to search for an answer promptly
• To make myself available to you for both course and career advice
• To maintain confidentiality concerning your performance
• To assign a grade that will reflect the quality of your work and nothing else
• To be honest with you
• To enforce the Aggie Honor Code
MEEN 357 Syllabus Aug 19, 2020
What we expect from you:
• To be willing to learn both numerical methods and their implementation into Python
code
• To treat everyone in the class with respect
• To do your work on time
• To accept that previous academic preparation (e.g., mathematics, lower engineering
courses) will affect your performance in this course
• To realize your perception of effort is not enough to justify a good grade
• To understand that a program which does not function properly is wrong, no matter
how small a mistake that causes the problem, even if it is only one keystroke
• To comply with the Aggie Honor Code
5. Topics Covered
The following is a tentative lecture schedule. The actual schedule may deviate from this posting
depending on class dynamics and how instruction progresses throughout the semester.
Lectures 01 (08/20) and 02 (08/25) Course overview: Introduction and Error analysis
Lectures 03 (08/27) and 04 (09/01) Programming basics: Spyder and Python (Chp. 1); HW 1 is
due
Lectures 05 (09/03) and 06 (09/08) Simultaneous linear algebraic equations: review of linear
algebra and Gauss elimination (Chp. 2); HW 2 is due
Lectures 07 (09/10) and 08 (09/15) Simultaneous linear algebraic equations, continued: LU and
Choleski matrix decomposition, pivoting and matrix
inversion (Chp. 2); HW 3 is due
Lectures 09 (09/17) and 10 (09/22) Curve fitting: interpolation, splines and regression (Chp. 3);
HW 4 is due
Lectures 11 (09/24) and 12 (09/29) Root finding: bisection, Ridder and Newton-Raphson
methods (Chp. 4); team adjustments; HW 5 is due
Lectures 13 (10/01) and 14 (10/06) Numerical differentiation: finite-difference methods,
Richardson extrapolation and derivatives of analytic
functions (Chp. 5 and handouts); HW 6 is due
No Class (10/08) Mid-term Exam
Mid-Term Exam (10/13)
Lectures 15 (10/15) and 16 (10/20) Numerical Integration: Newton-Cotes methods, Romberg,
Gaussian and Gauss-Kronrod integration methods (Chp. 6);
mid-term exam
Lectures 17 (10/22) and 18 (10/27) Numerical ODEs: Euler’s methods, Heun’s method, PECE
methods and Runge-Kutta methods (Chp. 7)
Lectures 19 (10/29) and 20 (11/03) Numerical ODEs, continued: error, stability and stiffness in
ODEs, and DIRK & IRKS implicit methods (Chp. 7); HW 7
is due
Lectures 21 (11/05) and 22 (11/10) Higher-Order ODEs: Methods of Newmark and Freed that
solve M!!x + C!x + Kx = f (t)
Boundary-Value Problems: the shooting method (handouts,
Chp. 8); HW 8 is due
Grade Disputes
Under rare circumstances, your professors will make mistakes in the performance of their duties.
We are, after all, human. It is also possible in programming that a very small mistake will cause a
very large error in your results. If you believe that the grade you received is an inaccurate reflection
of the credit you deserve, you may submit your assignment for reevaluation. (Effort does not
equate with grade expectation!) However, you must do this within ONE WEEK of when the
assignments were returned to you. Keep in mind, if the submitted code did not run on the
instructor's machine, you lose 100% of its value—this is not negotiable. The full grade dispute
procedure is outlined below.
Grade Dispute Procedure:
1) Create a cover sheet with the following information: your name, the current date, the
number/name of the homework/exam, the submission due date, the date it was originally
returned to you, your original score, and what you believe your score should have been. Below
this information, provide a concise, well-reasoned explanation for your claim. (We will use the
code you originally submitted for grading, if pertinent.)
2) Return the homework/exam along with this written explanation to the instructor via email. This
must be submitted to your professor within one week of it being returned. Later submissions
will not be accepted.
3) Re-grading: The instructor will re-grade the assignment and return it to you within two weeks.
4) Special note for final exam: Final exams will not be returned to you, obviously. If for some
reason you believe your final exam was graded incorrectly, you must see the instructor (in
person via Zoom) within one month of the exam date. No grade changes will be made after
this point, and the exams will be disposed of at this time.
University-Excused Absences
Work missed due to absences will only be excused for University-approved activities in
accordance with Texas A&M University Student Rules (see http://student-rules.tamu.edu/rule07).
Specific arrangements for make-up work in such instances will be handled on a case-by-case basis.
Please be aware that in this class any “injury or illness that is too severe or contagious for the
student to attend class” will require “a medical confirmation note from his or her medical provider”
even if the absence is for less than 3 days (see 7.1.6.2 Injury or illness less than three days).