Uploaded by Len Memet

00.1 introduction

advertisement
3340 Numerical Methods
Introduction
Goals and Expectations
• Understand fundamentals of numerical methods
• Experience in implementation (C++ and Matlab/Python)
• My goals:
1) provide a set of fundamental numerical tools
2) provide practical experience implementing and using these tools
3) When you encounter a numerical problem – I want you to know how to
find the best (fastest, most accurate, etc.) solution
• This class is about:
̶ translating engineering mathematics into algorithms
̶ implementing algorithms with constraints imposed by digital computers
• Grades should be predictable: rubrics are provided for all assignments
Textbooks
• Numerical Methods in Practice: A Programming Guide to Numerical Computing
Using C and Python
̶ An open-access textbook written specifically for this class – available on the website
https://stim.ee.uh.edu/education/ece-3340-numerical-methods/
Other Alternatives
• R.W. Hamming, Numerical Methods for Scientists and Engineers
̶ Mathematical basis for numerical methods
̶ Short and precise explanations for different aspects of numerical methods
̶ ≈$14.00 on Amazon.com
• W.H. Press, et al., Numerical Recipes: The Art of Scientific Computing
̶ Detailed discussions and code for more in-depth understanding of a given topic
•
•
•
•
Advanced random number generation
Evaluating complex functions (ex. Bessel and Hankel functions)
Searching/Sorting
Spectral Analysis, Fourier Transforms
Prerequisites
• MATH 3321 – Engineering Mathematics
̶ Linear Algebra, Calculus, and Differential Equations
• ECE 3331 – Programming Applications in ECE
̶ C/C++
̶ Matlab (you may also use Python)
• See chapters 1 and 2 of the textbook as a refresher for the necessary
mathematics and programming background
Grading
• Assignments
̶ 5% Homework – reflects material on exams
̶ 15% Mid-Term 1 – first exam, set expectations
̶ 25% Mid-Term 2 – comprehensive exam
̶ 25% Mid-Term 3 – comprehensive exam
̶ 30% Final Exam OR Programming Project – independent work
Homework Assignments
• 5% of your final grade – primarily practice for the exams
• grade based on written homework
̶ taken from class lectures and textbook
̶ you may work together, but don’t hand in copied work
̶ I will review for completion and as a benchmark for class performance
̶ submission: Canvas, submit as PDF or image (cellphone photo is fine)
• I will only review assigned homework, however there are other
practice problems in the textbook
̶ please ask questions on Teams
̶ you may help classmates
̶ (be helpful – don’t just give out the answer, the exam won’t be identical)
Exams
• Exams are comprehensive – previous material is fair game
̶ 15%, 25%, 25%, 30% (or programming assignment)
̶ the first exam reflects my expectations and is before the final drop date
• Exam questions rely on material from:
̶ homework assignments
̶ lectures
̶ reading material (textbook)
̶ programming questions
Programming Project (Optional)
• 30% of your grade – work independently
• Code MUST compile on the department server:
̶ tuxedo.egr.e.uh.edu – request an ECC_Unix account at the ECC front desk
̶ I cannot effectively grade assignments that don’t compile, so test it
• If your code doesn’t work, output what you DID complete
̶ the code must still compile
̶ comment everything – the more I know the more I can grade
• Comment code – 1 comment / 2 lines of code, explain “why” not “what”
• All programming assignments are tested for plagiarism and I am good at
finding it
Why numerical methods?
• Implementation depends on requirements and constraints
̶ high-level applications can use Matlab, external libraries
̶ low-level applications are under pressure – memory, speed, architecture
• Most low-level implementations are simple
̶ algorithms are well known
̶ implementation is still a challenge
̶ constrained by: architecture, memory, precision, speed, discretization errors
• Examples of algorithms that are challenging for computers:
̶ subtraction
̶ evaluating non-polynomial functions (sine, cosine, 𝑒𝑒 𝑥𝑥 , logarithms)
̶ integration and differentiation
̶ optimization (finding function minima and maxima)
Topics
1. Mathematics – notation that will help us communicate
2. Programming – translating from math to a computer (via C)
3. Discrete Math – theory for evaluating algorithms
4. Errors – how and where do computers make mistakes?
5. Numbers – how they are stored and manipulated in digital systems
6. Catastrophic Cancellation – yea, it can be pretty bad
Exam 1
7. Solving Equations – (when you can’t solve them by hand)
8. Linear Systems – easy math that takes a long time
Exam 2
Topics
9. matrix properties – more advanced matrix math
10. random numbers – probability and RNG
11. differentiation – calculus in computers
12. integration – more calculus in computers
Exam 3
13. regression – building functions from samples
14. differential equations – bringing all the calculus together
15. Fourier transforms – projections and transformations
Final Exam (or programming project)
Resources
• Website:
http://stim.ee.uh.edu/education/ece-3340-numerical-methods/
• Teams forum – please ask questions:
̶ homework, textbook problems, and lecture slides
̶ exam questions AFTER the exams have been graded
̶ conceptual questions about programming assignments – DON’T post blocks of code
̶ messages can be sent to me privately via Teams
• Lecture slides – PowerPoint slides will be available on Teams
• Textbook – this is a work in progress, so let me know if anything is vague or
could use better explanation
Research Interests
Immunohistochemistry
Large Scale Microscopy
0.5mm
40μm
20µm
100µm
High Performance Computing
About Me
• B.S. Computer Science – SWOSU (Oklahoma)
• Ph.D. Computer Science – Texas A&M University
• Beckman Fellowship – University of Illinois
• Background
̶ Computer Graphics, Visualization
̶ Biomedical Imaging, Microscopy, Spectroscopy
̶ High-Performance Computing, GPU Computing
• Personal
̶ video games, fencing
Download