Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mirsazzathossain/cse317-lab-numerical-methods

This repository includes the lab worksheets and assignments for the Numerical Methods Lab course at Independent University, Bangladesh.
https://github.com/mirsazzathossain/cse317-lab-numerical-methods

numerical-methods numpy python

Last synced: 12 days ago
JSON representation

This repository includes the lab worksheets and assignments for the Numerical Methods Lab course at Independent University, Bangladesh.

Awesome Lists containing this project

README

        

# Numerical Methods Lab

This repository includes the lab worksheets and assignments for the Numerical Methods Lab course at [Independent University, Bangladesh](http://iub.edu.bd/). [Amin Ahsan Ali](http://www.cse.iub.edu.bd/faculties/53) will teach the course during the Autumn 2022 semester. This course will teach students computational methodologies for dealing with problems in linear algebra, nonlinear equations, optimization, interpolation and approximation, numerical integration, and differential equations. The student will learn to use numerical approaches to solve engineering and scientific problems. Additionally, the course seeks to teach students how to incorporate numerical approaches into computer applications. This course will offer a basic foundation in numerical approaches to aid ongoing study in machine learning, data science, and other related topics.

# Course Objectives

- Learn to use python and numpy to solve numerical problems.
- Use python to solve problems like regression, interpolation, clustering and classification.
- Write efficient and well-documented code.
- Learn to present results in a clear and informative manner.

# Course Outline

- ## Introduction to Python and Numpy:

In lab 1, students will learn the basics of python and numpy. They will learn how to use python decare variables, use loops, and write functions. They will also learn how to use numpy to create arrays and perform basic operations on them. They will also learn how to use matplotlib to plot graphs and use pillow to read and write images.

- ## Taylor Series expansion and approximation:

In lab 2, students will learn how to use Taylor series to approximate functions. They will implement the Taylor series expansion and approximation in python and numpy. Additionally, they will learn how to use the Taylor series to approximate the value of a function at a point.

- ## Finding roots of a function:

In lab 3, students will learn how to use the Newton-Raphson method to find the roots of a function. They will implement the Newton-Raphson method in python and numpy. They learn to find derivatives of functions analytically as well as using the finite difference method. They will use both methods to find the roots of a function using the Newton-Raphson method and compare the results.

- ## Numerical Integration:

In lab 4, students will learn how to use the trapezoidal rule to approximate the value of an integral. They will implement the trapezoidal rule and composite trapezoidal rule to find the value of an integral using python and numpy.

- ## K Nearest Neighbors:

In lab 5, students will learn how to use the K Nearest Neighbors algorithm to classify data. They will implement the K Nearest Neighbors algorithm in python and numpy and apply it to a real-world PetImage dataset to classify images of cats and dogs. They will also learn how to use the scikit-learn library to implement the K Nearest Neighbors algorithm. They will leran about different matrics used to evaluate the performance of a classifier.

- ## Linear Regression:

In lab 6, students will learn how to use the linear regression algorithm to fit a line to a set of data. They will implement the linear regression algorithm in python and numpy and apply it to a real-world PetImage dataset to predict the price of a book based on its number of pages.

- ## Ordinary Least Square Regression:
In lab 7, students will learn how to use the ordinary least square regression algorithm to fit a line to a set of data. They will implement the ordinary least square regression algorithm in python and numpy and apply it to a real-world Admissions dataset to predict the chance of admission of a student based on his/her GRE score, TOEFL score, university rating, SOP, LOR, CGPA, and research experience.

# Prerequisites

Following are the prerequisites for this course:

- [MAT 104 : Calculus and Analytical Geometry](http://www.cse.iub.edu.bd/courses/27)
- [MAT 212 : Probability & Statistics for Science and Engineering](http://www.cse.iub.edu.bd/courses/29)
- [CEN 306 + Lab : Algorithms](http://www.cse.iub.edu.bd/courses/103)

# Evaluation

The evaluation of the course will be based on programming assignments and lab exams. Every two weeks, there will be assignments that will require you to solve problems using python and numpy. Unless explicitly mentioned, all assignments must be completed individually. This lab will contribute 25% of the grade for the "Numerical Methods" course.

# Environment Setup

We will use [Google Colab](https://colab.research.google.com/) for this course. Google Colab is a free cloud service that allows us to run python code in the cloud. We can use it to run python code without installing anything on our computer. We can also use it to run python code on a GPU. We will use Google Colab for all the labs and assignments in this course.

# Books

- [Introduction to Applied Linear Algebra: Vectors, Matrices, and Least Squares](https://web.stanford.edu/~boyd/vmls/) by Boyd and Vandenberghed
- [Linear Algebra and Its Applications, 4th Edition](https://www.amazon.com/Linear-Algebra-Its-Applications-4th/dp/0321385179) by David C. Lay
- [Numerical Methods for Engineers, 7th Edition](https://www.amazon.com/Numerical-Methods-Engineers-7-Ed/dp/9352602137) by Steven C. Chapra and Raymond P. Canale
- [Python Programming and Numerical Methods: A Guide for Engineers and Scientists, 1st Edition](https://www.amazon.com/dp/0128195495/ref=cm_sw_r_tw_dp_6816MC7GCQWVH8YD7YYV) by Qingkai Kong, Timmy Siauw and Alexandre Bayen

# Teaching Assistants

- [Mir Sazzat Hossain](https://github.com/mirsazzathossain), Research Assistant, [Center for Computational and Data Sciences (CCDS)](http://www.cse.iub.edu.bd/ccds/), [IUB](http://iub.edu.bd/)
- [Samin Bin Karim](https://github.com/ehtnamuh), Research Assistant, [Center for Computational and Data Sciences (CCDS)](http://www.cse.iub.edu.bd/ccds/), [IUB](http://iub.edu.bd/)
- [Nafis Saami Azad](#), Research Assistant, [Center for Industrial Automation Robotics & Internet of Things (RIoT)](https://sites.google.com/view/riotcenter), [IUB](http://iub.edu.bd/)