# Introduction to Matlab Programming with Applications

Location: Room 108, 德田館
Time: 0930 ~ 1230, from Monday to Friday

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

### Wifi Connection

• SSID: CSIE_guest
• Account: JavaMatC
• PWD: 85W577WK

## 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
• Matrix computation and numerical linear algebra
• User-controlled input and output
• Graphic user interfaces
• Symbolic programming tutorial
• MCC/MEX tutorial
• Simulink, symbolic programming, and MCC/MEX are introduced by simple examples.

#### Applications

• Numerical methods (curve fitting, finite difference, numerical integration, ODE, PDE)
• Optimizations
• Computational statistics and Monte Carlo simulation
• Digital image processing
• Time series analysis
• Financial engineering
• Machine learning and data mining
• Note that some of these topcis 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 ]

Date Key points and memo
2016.8.22 program, cpu, memory, memory hierarchy, programming languages (machine code, high-levele language), computational solution, algorithm, binary system, data types(integers/floating points), numerical errors, variables, scalars, arrays, cells, structures, rational operators, logical operators;
2016.8.23 selection (if-elseif-else, switch-case-otherwise), error and error handling (try-catch), while loops, for loops;
2016.8.24 nested loops, analysis of algorithm, vectorization, profiling;
2016.8.25 functions, call stack, variable scope, recursion;
2016.8.26 2D/3D plots, interpolations; BlackScholesModel.m, EuroCall_MonteCarloSimulation.m, http://www.math.columbia.edu/~smirnov/options13.html, Black–Scholes formula;
2016.8.29 matrix computation (system of linear equations, 2D Laplace PDE boundary value problem), finite difference, least square error method;
2016.8.30 polynomial fitting, SVD application: Low-rank approximation for image compression (Applications of SVD: image compression, svd_image_compression.m), file I/O;
2016.8.31 PROJECT: implied volatility from the market data (TXO.xlsx, Newton's method, ImpliedVolatilityCalculator.m), gui design;
2016.9.1 Simulink tutorial, PROJECT: blurring and edge detection by FFT (Lecture 10: Discrete Fourier Transform, imageProcessing_LowHighPass.m), constrainedFminOnPeaks.m;
2016.9.2 final exam (sol.zip); feedback;