# Introduction to Matlab Programming with Applications

Location: Room 108, 德田館
Time: 1900 ~ 2200, Wednesday and Saturday

All science is dominated by the idea of approximation.''
-- Bertrand Russell (1872-1970)

## Goal

This short course is designed for the students who want to learn Matlab programming without any experiences before. The students will be introduced to Matlab features and syntaxes. Besides, the fundamentals of programming concepts are delivered with elegant algorithms. You are expected to be capable to implement programs with Matlab independently after this class. Moreover, I expect that you could feel more confident of learning more programming languages and dealing with advanced topics in the future.

## Prerequisites

• Logic
• High school math

• No textbook.

## References

### Data mining and machine learning

• Roger Jang, Data Clustering and Pattern Recognition, Department of Computer Science & Information Engineering, National Taiwan University
• Piyush Rai, Machine Learning CS771A, Department of Computer Science & Engineering, Indian Institute of Technology Kanpur, 2016fa
• Tony Jebara, Machine Learning, Computer Science Department, Columbia University, 2015sp
• Tommi Jaakkola, Machine Learning, The Computer Science and Artificial Intelligence Laboratory, Massachusetts Institute of Technology, 2004
• Andrew Zisserman, C19 Machine Learning, Information Engineering, Department of Engineering Science, Oxford university, 2015

## Overview

The major topics covered in the short course, if time permitting, are listed below for your reference.

#### Essentials

• Variables, data types, and operators
• Simple data structures: arrays, cell, structures
• Control structures: if-else, for loop, while loop, switch-case, try-catch
• Analysis of algorithms and vectorization
• Built-in and user-defined functions
• 2D and 3D plotting
• User-controlled input and output
• Matrix computation and numerical linear algebra
• Graphic user interfaces
• Tutorial: Simulink, symbolic programming, MCC/MEX

#### Applications

• Numerical methods (root-finding, curve fitting, finite difference, numerical integration, ODEs, PDEs)
• Optimizations
• Computational statistics and Monte Carlo simulation
• Digital image processing
• Time series analysis
• Financial engineering
• Machine learning and data mining
• Neural networks and deep learning
• Note that some of these topics are introduced as examples in Essentials.

## Schedule [ 236, 237, 238, 242, 244, 245, 247, 249, 251, 252, 253, 254, 256, 258, 260, 261, 262, 263, 264, 265, 266, 268, 272, 273, 275, 277, 279 ]

Date Summary
2017.1.4 program, cpu, memory, memory hierarchy, programming languages (machine code, high-level language), computational solution, algorithm, binary system, data types (integers/floating points), numerical errors, variables, scalars, arrays;
2017.1.7 cells, structures, rational operators, logical operators, selection (if-elseif-else, switch-case-otherwise), error and error handling (try-catch), for loops;
2017.1.11 while loops, jump statements (break, continue), nested loops;
2017.1.14 analysis of algorithm, vectorization, profiling;
2017.1.18 functions, call stack, scope of variable, primary/subfunction, anonymous function, recursion;
2017.1.21 2D plots, PROJECT: European call option prices (BlackScholesModel.m, EuroCall_MonteCarloSimulation.m, option pricer, Black–Scholes formula);
2017.1.25 graphics objects, get/set methods, 3D plots, interpolations, file I/O, matrix computation, system of linear equations, Gauss elimination, 2D Laplace PDE boundary value problem by finite difference, least square error method; feedback sheet;
2017.2.8 [exercises];
2017.2.11 polynomials, polynomial fitting, overfitting, eigenvalue problems (see The World’s Largest Eigenvalue Problem), singular value decomposition (Image compression by SVD, svd_image_compression.m, Applications of the SVD), gui design, Simulink tutorial, PROJECT: Blurring and edge detection by using FFT (Lecture 10: Discrete Fourier Transform, imageProcessing_LowHighPass.m);
2017.2.15 final project demo; feedback sheet; PROJECT: Implied volatility from the market data (TXO.xlsx, Newton's method, ImpliedVolatilityCalculator.m), The SVM classifier, PROJECT: Support Vector Machine (SVM) (LIBSVM), [data];