Numerical Methods
Course Outline
â€‹
his course explores various numerical methods commonly used in computer science and engineering, focusing on their principles, implementation, and analysis. Emphasis is placed on practical applications and the understanding of the strengths and limitations of various methods.
â€‹
Introduction to Numerical Methods

Definitions and applications of numerical methods

Basics of computer arithmetic, number systems

Errors in numerical computation: absolute, relative and roundoff errors
Nonlinear Equations

The Bisection method, Fixedpoint iteration

Newton's method, Secant method

Convergence of methods
Linear Systems of Equations

Direct methods: Gaussian elimination, LU decomposition

Iterative methods: Jacobi, GaussSeidel, Successive overrelaxation (SOR)
Interpolation and Polynomial Approximation

Newton and Lagrange interpolating polynomials

Cubic splines

Least squares fitting
Midterm Examination
Numerical Differentiation and Integration

Finite difference approximations

Composite numerical integration: Trapezoidal and Simpson’s rules

Gaussian quadrature
Ordinary Differential Equations (ODEs)

Initialvalue problems: Euler's method, Improved Euler's method, RungeKutta methods

Boundaryvalue problems: Finite difference method, Shooting method
Partial Differential Equations (PDEs)

Parabolic equations: Explicit and implicit methods

Elliptic equations: Finite difference method

Hyperbolic equations: Method of characteristics
Textbooks and Reference Materials:

"Numerical Analysis" by Richard L. Burden and J. Douglas Faires

"Numerical Methods for Engineers" by Steven C. Chapra and Raymond P. Canale
Course Introduction
â€‹
Welcome to CS 350: Numerical Methods in Computer Science. This course will equip you with the knowledge and practical skills necessary to implement and apply various numerical methods, which are pivotal tools in the realm of computational mathematics. These methods enable us to solve mathematical problems that are too complex to handle with traditional mathematical tools alone.
â€‹
Numerical methods form the backbone of countless areas in computer science and engineering disciplines. For example, in graphics rendering, numerical methods are used to calculate realistic lighting and shadows. In machine learning, they're employed to optimize complex models. In physical simulations, they help calculate the future state of a system based on current conditions. Whenever a mathematical problem is too intricate to solve analytically, or when an exact solution doesn't exist or isn't necessary, numerical methods offer a way to find approximate solutions that are often sufficient for practical purposes.
â€‹
Throughout this course, you'll be immersed in a handson learning environment, implementing these methods in code and solving realworld problems. For example, we'll explore Newton's method for finding the roots of an equation and apply it to find the internal rate of return in a financial problem. Similarly, we'll learn about the RungeKutta method for solving ordinary differential equations and use it to model a predatorprey system in ecology.
â€‹
We'll begin with fundamental concepts like computer arithmetic and error analysis, laying a solid foundation for understanding why and when numerical errors occur. Next, we'll delve into solving both linear and nonlinear equations, learning about techniques like the bisection method and Gaussian elimination. Following this, we'll study interpolation and polynomial approximation, which can be used for tasks like designing curves in computer graphics or fitting a model to data in machine learning.
We'll also explore numerical differentiation and integration techniques, allowing us to approximate the rate of change in systems or calculate areas under curves when analytical methods are not feasible. This will lead us to the study of ordinary and partial differential equations, fundamental to understanding natural phenomena, from the motion of planets to the spread of diseases.
â€‹
By the end of this course, you should not only be familiar with a range of numerical methods but also understand when and why a particular numerical method is the most appropriate choice. You should also be capable of analyzing its accuracy, stability, and performance. In other words, you'll not only have a wellequipped toolbox of numerical methods but also the understanding needed to use these tools effectively and responsibly.