top of page

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 round-off errors

 

Non-linear Equations

  • The Bisection method, Fixed-point iteration

  • Newton's method, Secant method

  • Convergence of methods

 

Linear Systems of Equations

  • Direct methods: Gaussian elimination, LU decomposition

  • Iterative methods: Jacobi, Gauss-Seidel, Successive over-relaxation (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)

  • Initial-value problems: Euler's method, Improved Euler's method, Runge-Kutta methods

  • Boundary-value 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 hands-on learning environment, implementing these methods in code and solving real-world 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 Runge-Kutta method for solving ordinary differential equations and use it to model a predator-prey 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 non-linear 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 well-equipped toolbox of numerical methods but also the understanding needed to use these tools effectively and responsibly.

bottom of page