0% found this document useful (0 votes)
214 views114 pages

M2016-Scientific Computing With MATLAB-Paul Gribble-Math Eng Chap01 G Chap02

This chapter discusses fundamentals of MATLAB programming. It covers topics such as variables and constants, data structures, basic MATLAB structures, colon expressions, sub-matrix extraction, and fundamental mathematical calculations including algebraic operations, logic operations, and relationship operations of matrices. It provides examples to illustrate various MATLAB commands and functions.

Uploaded by

hieuhuech
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
214 views114 pages

M2016-Scientific Computing With MATLAB-Paul Gribble-Math Eng Chap01 G Chap02

This chapter discusses fundamentals of MATLAB programming. It covers topics such as variables and constants, data structures, basic MATLAB structures, colon expressions, sub-matrix extraction, and fundamental mathematical calculations including algebraic operations, logic operations, and relationship operations of matrices. It provides examples to illustrate various MATLAB commands and functions.

Uploaded by

hieuhuech
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 114

Chapter 2

Fundamentals of MATLAB
Programming
Scientific Computing with
MATLAB, 2nd Edition
CRC/Taylor & Francis Press
Chinese version by Tsinghua University Press
PPT by Wenbin Dong and Jun Peng, Northeastern University, PRC
Proofread by Dingyu Xue & YangQuan Chen

18/5/19 Dingyü Xue and YangQuan C 1/114


hen. Scientific Computing with
Chapter 2 Fundamentals of
MATLAB Programming
□ Fundamentals of MATLAB Programming
□ Fundamental Mathematical Calculations
□ Flow Control Structures of MATLAB Language
□ Writing and Debugging MATLAB Functions
□ Two-, Three- Four-dimensional Graphics

18/5/19 Dingyü Xue and YangQuan C 2/114


hen. Scientific Computing with
Advantages of MATLAB
□ MATLAB has the following advantages:
Clarity and high efficiency
Scientific computation, covers almost all the useful
topics in math and engineering
Graphics facilities
Comprehensive toolboxes and block-sets, designed
by experts of almost all disciplines
Powerful simulation facilities, unite the sub-
systems of different domains together
18/5/19 Dingyü Xue and YangQuan C 3/114
hen. Scientific Computing with
2.1 Fundamentals of MATLAB
Programming
□ Variables and constants in MATLAB
□ Data structures
□ Basic structure of MATLAB
□ Colon expressions and sub-matrices extraction

18/5/19 Dingyü Xue and YangQuan C 4/114


hen. Scientific Computing with
2.1.1 Variables and Constants
in MATLAB
□ Variables in MATLAB
Starting with a letter followed by other characters:
Case-sensitive: Abc ≠ABc
Valid names: MYvar12, MY_Var12 and MyVar12_
Invalid variable names: 12MyVar, _MyVar12
□ Constants in MATLAB:
 eps, i, j, pi, NaN, Inf, i=sqrt(-1)
 lastwarn, lasterr

18/5/19 Dingyü Xue and YangQuan C 5/114


hen. Scientific Computing with
2.1.2 Data structures

□ Double-precision data type


□ Symbolic data type
□ Other data types

18/5/19 Dingyü Xue and YangQuan C 6/114


hen. Scientific Computing with
Double-precision Data Types
□ IEEE standard, 64 bits (8 bytes)
11 bits for exponential
52 bits for numerical
1 sign bit.
□ Use double() to convert other types to double.
□ Data range: 15 decimal digits

□ Other data types:


 int8(), int16(), int32(), uint16(), uint32()

18/5/19 Dingyü Xue and YangQuan C 7/114


hen. Scientific Computing with
Symbolic Data Type
□ Usually used in formula derivations and
analytical solutions
variable declaration

Data type conversion


display the symbolic variables in any precision

The default value: 32 decimal digits.

18/5/19 Dingyü Xue and YangQuan C 8/114


hen. Scientific Computing with
More on Symbolic Variables

□ More data types: integer


□ Conditions specification
assume function

assumeAlso function

18/5/19 Dingyü Xue and YangQuan C 9/114


hen. Scientific Computing with
Example 2.1 Symbolic Variables

□ Please declare a positive symbolic integer k


such that it is a multiple of 13, and it does
not exceed 3000
Not possible in earlier versions
How to declare 3000/13 ≈ 230.7

18/5/19 Dingyü Xue and YangQuan C 10/114


hen. Scientific Computing with
Example 2.2 Value of 
□ Display the first 300 digits of .
□ MATLAB command

□ One may further increase the number of digits


to display.
□ For extremely large number of digits, process
may be slow
18/5/19 Dingyü Xue and YangQuan C 11/114
hen. Scientific Computing with
Other Data Types
□ Strings: used to store messages. Single quotes
□ Multi-dimensional arrays:
a direct extension of matrices with multiple indices.
□ Cell arrays:
to put a set of data of different types under a single
variable, expressed by { }.
□ Classes and objects:
used in Object-Oriented Programming.

18/5/19 Dingyü Xue and YangQuan C 12/114


hen. Scientific Computing with
2.1.3 Basic Structures of
MATLAB
□ Direct assignment
The basic structure of this type of statement is

A semicolon can prevent the results from display.


Reserved variable: ans, store the result of the lat
est statements without left-hand-variable
□ Function call, returns many arguments
18/5/19 Dingyü Xue and YangQuan C 13/114
hen. Scientific Computing with
Example 2.3 Matrix Input
□ Enter matrix into MATLAB

□ Commands

□ Other commands

18/5/19 Dingyü Xue and YangQuan C 14/114


hen. Scientific Computing with
Example 2.4 Complex Matrix
□ Enter complex matrix into MATLAB

□ MATLAB commands

□ Things to avoid:

18/5/19 Dingyü Xue and YangQuan C 15/114


hen. Scientific Computing with
Function Call Statements
□ Function call statement

□ Function call examples

□ One function may be called in different ways


Built-in functions, *.m functions,
Anonymous functions, inline functions
Overload functions
18/5/19 Dingyü Xue and YangQuan C 16/114
hen. Scientific Computing with
2.1.4 Colon Expressions and
Sub-matrices Extraction
□ Colon expression is an effective way in
defining row vectors.

□ Start value s1, increment s2 and final value s3


default increment: 1, when s2 is missing
Value of s3 not necessarily included in v
18/5/19 Dingyü Xue and YangQuan C 17/114
hen. Scientific Computing with
Example 2.5 Make Vectors

□ For different increments, establish vectors


for

□ To include 

18/5/19 Dingyü Xue and YangQuan C 18/114


hen. Scientific Computing with
Sub-matrix Extraction

□ Basic format

□ Arguments
v1 numbers of the rows
v2 numbers of the columns
:, all the columns or rows, depending on the
position of it
Key word end
18/5/19 Dingyü Xue and YangQuan C 19/114
hen. Scientific Computing with
Example 2.6 Sub Matrices
□ Different sub-matrices can be extracted from
the given matrix

□ MATLAB command

18/5/19 Dingyü Xue and YangQuan C 20/114


hen. Scientific Computing with
2.2 Fundamental Mathematical
Calculations
□ Algebraic operations of matrices
□ Logic operations of matrices
□ Relationship operations of matrices
□ Simplifications and presentations of analytical
results
□ Basic number theory computations

18/5/19 Dingyü Xue and YangQuan C 21/114


hen. Scientific Computing with
2.2.1 Algebraic operations
of matrices
□ Matrix transpose
□ Matrix addition and subtraction
□ Matrix multiplications
□ Matrix divisions
□ Matrix flip and rotations
□ Matrix power
□ Matrix dot operations
18/5/19 Dingyü Xue and YangQuan C 22/114
hen. Scientific Computing with
Matrix transpose
□ Matrix representation:
Matrix A, n rows and m columns, is referred to as a
n n×m matrix
□ Hermitian transpose

□ Simple transpose

18/5/19 Dingyü Xue and YangQuan C 23/114


hen. Scientific Computing with
Matrix Addition and
Subtraction
□ Mathematical representations

□ Difficult to program under C, like A*B


□ MATLAB implementation

□ Note: either variable can be a scalar


□ If not compatible, error messages given
18/5/19 Dingyü Xue and YangQuan C 24/114
hen. Scientific Computing with
Matrix Multiplication
□ Math expression

□ MATLAB expression

□ Note: compatibility auto-checked


Applies to complex and others

18/5/19 Dingyü Xue and YangQuan C 25/114


hen. Scientific Computing with
Matrix Division
□ Matrix left division
Solve the linear equations:

MATLAB solution:

Least squares solution


If A is a non-singular square matrix. Then,

18/5/19 Dingyü Xue and YangQuan C 26/114


hen. Scientific Computing with
Matrix Right Division
□ Mathematical expression XA=B
MATLAB solution

Least squares solution


If A is a nonsingular square matrix. Then,

More precisely,

18/5/19 Dingyü Xue and YangQuan C 27/114


hen. Scientific Computing with
Matrix Flips and Rotations
□ left-right flip

□ up-down flip

□ Rotate 90o , counterclockwise

□ How to rotate 180o , 270o ?

18/5/19 Dingyü Xue and YangQuan C 28/114


hen. Scientific Computing with
Matrix Power
□ A must be a square matrix
□ Matrix A to the power x.
Math description

MATLAB command

Rotations needed

18/5/19 Dingyü Xue and YangQuan C 29/114


hen. Scientific Computing with
Example 2.7 Cubic Roots
□ Given matrix A

□ MATLAB code

□ Other two roots

18/5/19 Dingyü Xue and YangQuan C 30/114


hen. Scientific Computing with
Matrix Dot Operations
□ Element-by-element operation
Dot product
Dot power

Curve of a function

18/5/19 Dingyü Xue and YangQuan C 31/114


hen. Scientific Computing with
2.2.2 Logic Operations
□ Logical variables
For new version of MATLAB
Non-zero means logic 1
□ Logical operations (element-by-element)
“And” operation
“Or” operation
“Not” operation
Exclusive Or
18/5/19 Dingyü Xue and YangQuan C 32/114
hen. Scientific Computing with
2.2.3 Relationship Operations
of Matrices
□ Allowed comparisons:
>, >=, <, <=, ==,~=, find(), all(), any()
□ Examples:

18/5/19 Dingyü Xue and YangQuan C 33/114


hen. Scientific Computing with
2.2.4 Simplifications and
Conversions
□ Function simple() can be used to simplify mat
hematical formula – old version:

In new versions, use simplify()


□ Other commonly used simplification functions
numden(), collect(), expand(), factor()

18/5/19 Dingyü Xue and YangQuan C 34/114


hen. Scientific Computing with
Example 2.8 Polynomial
□ Find the simplest form of the polynomial

□ Process it with various functions

In old versions

□ Simplify the polynomial

18/5/19 Dingyü Xue and YangQuan C 35/114


hen. Scientific Computing with
Variable Substitution
□ Two commands to use

□ It is run on the dot operation basis


□ Convert to LATEX expression

18/5/19 Dingyü Xue and YangQuan C 36/114


hen. Scientific Computing with
Example 2.9 Math Display
□ Function

□ Use taylor() to evaluate its Taylor expression a


nd convert the results in LATEX

18/5/19 Dingyü Xue and YangQuan C 37/114


hen. Scientific Computing with
□ By MATLAB
\cos \left( b \right) -\sin \left( b \right) a
t+ \left( -1/2\,\cos \left( b \right) {a}^{2}
+cd \right) {t}^{2}+1/6\,\sin \left( b \righ
t) {a}^{3}{t}^{3}+ \left( 1/24\,\cos \left( b
\right) {a}^{4}-1/6\,c{d}^{3}-1/6\,{c}^{3}d \
right) {t}^{4}-{\frac {1}{120}}\,\sin \left(
b \right) {a}^{5}{t}^{5}
□ By LaTeX

18/5/19 Dingyü Xue and YangQuan C 38/114


hen. Scientific Computing with
2.2.5 Basic Discrete Mathematics
Computations

18/5/19 Dingyü Xue and YangQuan C 39/114


hen. Scientific Computing with
Example 2.10 Finding Integers
□ Data set
-0.2765, 0.5772,1.4597, 2.1091, 1.191,-1.6187
□ Observe the results from different rounding
functions.

18/5/19 Dingyü Xue and YangQuan C 40/114


hen. Scientific Computing with
Example 2.11 Rationalization
□ 3x3 Hilbert matrix can be specified with the
statement A = hilb(3), perform the rational
transformation.

□ result

18/5/19 Dingyü Xue and YangQuan C 41/114


hen. Scientific Computing with
Example 2.12 GCD/LCM
□ Two numbers 1856120 , 1483720
get the GCD (greatest common divisor)
LCM (least common multiple)
prime factor decomposition to the least common
multiplier
□ Better to use symbolic form

18/5/19 Dingyü Xue and YangQuan C 42/114


hen. Scientific Computing with
Example 2.13 Prime Numbers
□ Prime numbers in 1-1000

Two statements. Recall C programming


□ The prime numbers obtained

18/5/19 Dingyü Xue and YangQuan C 43/114


hen. Scientific Computing with
2.3 Flow Control Structures of
MATLAB Language
□ With Control structures, complicated and
sophisticated programs can be written
Loop control structures
Conditional control structures
Switch structure
Trial structure
18/5/19 Dingyü Xue and YangQuan C 44/114
hen. Scientific Computing with
2.3.1 Loop Control Structures
□ The for loop structures

Every term in v is taken


□ If v is a matrix, i pick up one column at a time

18/5/19 Dingyü Xue and YangQuan C 45/114


hen. Scientific Computing with
While Loops
□ The while loop structures

□ Loops can be nested


Different structures have different characteristics
Loops can be broken with break command

18/5/19 Dingyü Xue and YangQuan C 46/114


hen. Scientific Computing with
Example 2.14 Sum of Sequence

□ Compute the sum of using loop structures.

□ the simplest statement

18/5/19 Dingyü Xue and YangQuan C 47/114


hen. Scientific Computing with
Example 2.15 How Many Terms
□ Find the minimum value of m such that

□ Only while can be used

□ For structure cannot act alone for the problem


18/5/19 Dingyü Xue and YangQuan C 48/114
hen. Scientific Computing with
Example 2.16 Loops or Vectorizatio
n
□ Evaluate the sum of the series

□ MATLAB loop code, and vectorized code

18/5/19 Dingyü Xue and YangQuan C 49/114


hen. Scientific Computing with
2.3.2 Conditional Control Structures

18/5/19 Dingyü Xue and YangQuan C 50/114


hen. Scientific Computing with
Example 2.17 Another Way
□ Using for and if statements to determine the
minimum m

□ It is more complicated than the while structure.

18/5/19 Dingyü Xue and YangQuan C 51/114


hen. Scientific Computing with
2.3.3 Switch Structure

18/5/19 Dingyü Xue and YangQuan C 52/114


hen. Scientific Computing with
2.3.4 Trial Structure
□ This is a brand new structure

□ Advantages:
An error trap
More efficient algorithm implementation

18/5/19 Dingyü Xue and YangQuan C 53/114


hen. Scientific Computing with
2.4 Writing and Debugging
MATLAB Functions
□ Basic structure of MATLAB functions
□ Programming of functions with variable
inputs/outputs
□ Inline functions and anonymous functions

18/5/19 Dingyü Xue and YangQuan C 54/114


hen. Scientific Computing with
2.4.1 Basic Structure of
MATLAB Functions
□ Function structures

□ Important functions
 nargin, nargout, varargin, varargout

18/5/19 Dingyü Xue and YangQuan C 55/114


hen. Scientific Computing with
Example 2.18 Why Functions
are Needed?
□ Problem

□ M-script can be written and saved as an M-file.


If 10000 is changed to other values, the M-file
should be modified
□ A new file format (function) is needed

18/5/19 Dingyü Xue and YangQuan C 56/114


hen. Scientific Computing with
Example 2.19 M-Function
Implementation
□ Write an M-function for Example 2.18
□ M-function

□ Example

□ Advantages: no need to modify for N


18/5/19 Dingyü Xue and YangQuan C 57/114
hen. Scientific Computing with
Example 2.20 Hilbert
Matrix Generation
□ Write an M-function for n×m Hilbert matrix

□ Requirements
If only 1 input argument given, generate a square
matrix
Write suitable help information
Check the numbers of inputs and outputs
18/5/19 Dingyü Xue and YangQuan C 58/114
hen. Scientific Computing with
□ MATLAB function

18/5/19 Dingyü Xue and YangQuan C 59/114


hen. Scientific Computing with
□ On-line help commands

□ Generate Hilbert matrices

□ Limitations: cannot generate symbolic matrix


Modify kernel statements

18/5/19 Dingyü Xue and YangQuan C 60/114


hen. Scientific Computing with
Example 2.21 Recursive
Implementation of Factorials
□ Recursive relations
□ Recursive function implementation

18/5/19 Dingyü Xue and YangQuan C 61/114


hen. Scientific Computing with
Factorial Calculations
□ Calculate 11!

□ Other functions

□ Symbolic computation

18/5/19 Dingyü Xue and YangQuan C 62/114


hen. Scientific Computing with
Example 2.22 Not Suitable for
Recursive Implementation
□ Implement Fibonacci sequence
Fibonacci sequence

Recursive implementation in MATLAB

18/5/19 Dingyü Xue and YangQuan C 63/114


hen. Scientific Computing with
□ The 25th term (takes 3 seconds)

□ With for loop, 1000th term can be obtained

□ Note: not suitable to use recursive structures


□ Symbolic computation

18/5/19 Dingyü Xue and YangQuan C 64/114


hen. Scientific Computing with
2.4.2 Handling Variable Input
and Returned Arguments
□ Functions with variable numbers of arguments
In/out arguments: varargin, varargout
□ Extracting actual input arguments
varargin{1}, varargin{2},…, varargin{n}
□ Storage and transfer of the arguments

varargin{1} varargin{2} varargin{n}


18/5/19 Dingyü Xue and YangQuan C 65/114
hen. Scientific Computing with
Example 2.22 Handling Arbitrary
Number of Input Arguments
□ conv(): calculate product of 2 polynomials
□ Handle arbitrary number of polynomials
□ MATLAB programming
Extract 1 term from varargin at a time

18/5/19 Dingyü Xue and YangQuan C 66/114


hen. Scientific Computing with
2.4.3 Inline and Anonymous
Functions
□ inline function (not recommended)
No need to create an M-file

□ For MATLAB7.0+, recommend anonymous


Direct use of variables in MATLAB workspace

□ Other types of functions – private, overload


18/5/19 Dingyü Xue and YangQuan C 67/114
hen. Scientific Computing with
2.4.4 Pseudo Code and
Source Code Protection
□ Why pseudo code?
Increase execution speed
Protect source code: ASCII file to binary file
□ Creating pseudo code

□ Must reserve source code in safe place


□ .p files not reversible
18/5/19 Dingyü Xue and YangQuan C 68/114
hen. Scientific Computing with
2.5 Two-dimensional Graphics
□ Scientific visualization is important in scienti
fic research. Convert data into graphs
Basic statements in 2D graphics
Plots with multiple vertical axes
Other 2D graphics facilities
Plotting implicit functions
Access data in files (*.txt or *.xls)

18/5/19 Dingyü Xue and YangQuan C 69/114


hen. Scientific Computing with
2.5.1 Basic Statements in
2D Plots
□ Two sequences

Construct vectors

□ Use the data to draw plots

18/5/19 Dingyü Xue and YangQuan C 70/114


hen. Scientific Computing with
Example 2.24 Function Plotting
and Validations
□ Draw plot for function

□ MATLAB code

□ Problem: how to validate curves?


Select different step sizes
18/5/19 Dingyü Xue and YangQuan C 71/114
hen. Scientific Computing with
Variable Step-size Vectors
□ Use different step-sizes
Use the same small step-size

□ Use variable step-size, small around ±/2

18/5/19 Dingyü Xue and YangQuan C 72/114


hen. Scientific Computing with
Example 2.25 Piecewise Functions
□ Draw saturation function

□ MATLAB draw (mutual exclusive conditions)


互斥

□ Simpler statement: draw poly-lines

18/5/19 Dingyü Xue and YangQuan C 73/114


hen. Scientific Computing with
Other Syntaxes
□ t is vector, while y is a matrix, e.g.,

□ t and y are matrices, size of t and y the same


□ More pairs of vectors or matrices

18/5/19 Dingyü Xue and YangQuan C 74/114


hen. Scientific Computing with
A More General Syntax
□ Change the properties directly

18/5/19 Dingyü Xue and YangQuan C 75/114


hen. Scientific Computing with
Object Properties Extraction
and Settings
□ Figure window, curve, axes are objects
□ Object properties can be assigned with set()
□ Properties can be extracted with get()

□ Object properties can be set with menus

18/5/19 Dingyü Xue and YangQuan C 76/114


hen. Scientific Computing with
2.5.2 Plots with Multiple
Vertical Axes
□ Sometimes the differences in the two plots are
huge, plotyy() function should be used
□ Example 2-26: Draw the two functions

□ More plotting functions for more axes


plotyyy(), plot4y(), plotxx() functions
Downloadable from MATLAB File Exchange
18/5/19 Dingyü Xue and YangQuan C 77/114
hen. Scientific Computing with
2.5.3 Drawing Other Forms of
2D Graphics
□ Different functions to use

18/5/19 Dingyü Xue and YangQuan C 78/114


hen. Scientific Computing with
Example 2.27 Polar Plots
□ Draw polar function curves

□ Drawing curves

Incomplete – find the period

18/5/19 Dingyü Xue and YangQuan C 79/114


hen. Scientific Computing with
Drawing plots as Subplots
□ Divide graphics window into several parts

n and m are rows and columns


k is the serial number of the portion of window
□ Also setting with menu items
Add an axis
Drag mouse button to adjust axis size

18/5/19 Dingyü Xue and YangQuan C 80/114


hen. Scientific Computing with
Example 2.27 Different 2D
Plots as Subplots in Windows
□ Sinusoidal function is used as an example
□ Divide graph window as 2x2
□ Draw in different portions

18/5/19 Dingyü Xue and YangQuan C 81/114


hen. Scientific Computing with
2.5.4 Drawing Implicit
Functions
□ Example of an implicit function

□ Drawing implicit functions

Represent implicit functions as strings


Default region is [-2,2]
□ Other syntaxes

18/5/19 Dingyü Xue and YangQuan C 82/114


hen. Scientific Computing with
Example 2.29 Implicit Function
□ Please draw

□ MATLAB statements -- handles

□ Over a large region

18/5/19 Dingyü Xue and YangQuan C 83/114


hen. Scientific Computing with
2.5.5 Decoration of Plots
□ Direct use of toolbar
□ Text decorations
Special symbols
Subscript and superscripts, with ^ and _

 advantages. Better to use overpic package


□ New functions since MATLAB 7.0
18/5/19 Dingyü Xue and YangQuan C 84/114
hen. Scientific Computing with
2.5.6 Access Data Files
□ Commands save and load

□ Exchange between MATLAB & Excel

Write file: xlswrite()


18/5/19 Dingyü Xue and YangQuan C 85/114
hen. Scientific Computing with
Example 2-30 Access Excel File
□ Known Excel file: census.xls – population
Open file
Rows 5-67 stores data
B column stores year, C columns, population
□ Read into MATLAB, the plotting

□ Simpler method: Copy & Paste


18/5/19 Dingyü Xue and YangQuan C 86/114
hen. Scientific Computing with
2.6 Three-dimensional Graphics
□ Difficult to obtain with other computer
languages, easy to obtain with MATLAB
□ Main topics in the section
3D curves
3D surfaces
View-point setting
3D implicit function plots
Rotating 3D graphs
18/5/19 Dingyü Xue and YangQuan C 87/114
hen. Scientific Computing with
2.6.1 3D Curves
□ Plotting 3D curves

□ Other 3D plotting functions


stem3, fill3, bar3
Draw trajectory dynamically: comet3

18/5/19 Dingyü Xue and YangQuan C 88/114


hen. Scientific Computing with
Example 2.31 Position of a
Particle in 3D Space
□ 3D parametric equation

Position of a particle (change with time)


where,
□ MATLAB plotting (dot calculation)

18/5/19 Dingyü Xue and YangQuan C 89/114


hen. Scientific Computing with
Other 3D Plots
□ With function stem3()

□ Dynamic trajectory

□ Toolbar usages
View point adjustment in 3D plots
Read coordinate, zooming facilities
18/5/19 Dingyü Xue and YangQuan C 90/114
hen. Scientific Computing with
2.6.2 3D Surface Plots
□ Draw surfaces

□ Other functions
surfl(), surfc()
□ Contour plots
contour(), contours()
18/5/19 Dingyü Xue and YangQuan C 91/114
hen. Scientific Computing with
Example 2.32 3D Surface
□ Given function with 2 variables

□ MATLAB plot

□ Surface plot

18/5/19 Dingyü Xue and YangQuan C 92/114


hen. Scientific Computing with
Example 2.33 Another Function
□ Two-variable function

□ Draw 3D surface

18/5/19 Dingyü Xue and YangQuan C 93/114


hen. Scientific Computing with
Step-size Selection
□ With variable step-sizes

□ Singular point, to be discussed in Ch5


18/5/19 Dingyü Xue and YangQuan C 94/114
hen. Scientific Computing with
Example 2.34 Handling
Piecewise Functions
□ Draw surface for piecewise function

Evaluation of piecewise functions


Mutually exclusive relations, dot operations
Loops, rather complicated

18/5/19 Dingyü Xue and YangQuan C 95/114


hen. Scientific Computing with
Drawing Piecewise Surfaces
□ Math form

□ MATLAB plotting
Generate mesh grid, evaluate then plot

18/5/19 Dingyü Xue and YangQuan C 96/114


hen. Scientific Computing with
2.6.3 Contour Plots
□ Various of contour plots
Direct draw
Contours with labels

3D contours

18/5/19 Dingyü Xue and YangQuan C 97/114


hen. Scientific Computing with
Example 2-35 Contours
□ Example 2-34, piecewise function
Generate data, draw contours

□ 3D contours

18/5/19 Dingyü Xue and YangQuan C 98/114


hen. Scientific Computing with
2.6.4 Plots of 3D Implicit
Functions
□ 3D implicit function
□ Download ezimplot3() from File Exchange

Default region [-2,2]


□ Fun can be of
Implicit function strings
Anonymous functions
M-functions
18/5/19 Dingyü Xue and YangQuan C 99/114
hen. Scientific Computing with
Example 2-36 3D Implicit
Function Plots
□ Given 3D implicit functions

□ Drawing statements

18/5/19 Dingyü Xue and YangQuan C 100/114


hen. Scientific Computing with
2.6.5 View-point Specifications
□ Two ways of setting view points
Direct use of toolbar
Command view()

Read current view points


□  is azimuth angle,  is elevation angle
□ Uniquely define the view-point
18/5/19 Dingyü Xue and YangQuan C 101/114
hen. Scientific Computing with
Definition of View-points
□ Settings

18/5/19 Dingyü Xue and YangQuan C 102/114


hen. Scientific Computing with
Example 2.37 Orthographic Views
of 3D Plots 三视图
□ Given function

□ Default angle extraction


□ 3D surface plot

18/5/19 Dingyü Xue and YangQuan C 103/114


hen. Scientific Computing with
2.6.6 Rotations of 3D Surfaces
□ Rotating function

where
Handles of 3D plot h
Rotate baseline by vector v
Angle is 
Example: rotate along positive direction of x
axis, v = [1,0,0]
18/5/19 Dingyü Xue and YangQuan C 104/114
hen. Scientific Computing with
Example 2-38 Rotating 3D Plots
□ Rotate the piecewise plot

□ Rotate along x axis, baseline v=[1,0,0]

□ Rotate along baseline v =[1 1 1]

18/5/19 Dingyü Xue and YangQuan C 105/114


hen. Scientific Computing with
Animation of Rotations
□ Rotate along x axis for 360 degrees
Rotate 1 degree per step (0.01s pause)
Loop structure needed

18/5/19 Dingyü Xue and YangQuan C 106/114


hen. Scientific Computing with
2.7 Drawing 4D Plots
□ 4D plots
Time-driven 3D animation 体视化
Slice view of 3D plots: volume visualization
Examples
CT images, temperature or density of a 3D solid
Slices are needed to view inside
Flow rate and concentration of liquid
MATLAB function

18/5/19 Dingyü Xue and YangQuan C 107/114


hen. Scientific Computing with
Example 2-39 Slice Views of
3D Solid Objects
□ Function

Ordinary slices
Generate 3D mesh grids
Calculate function values in the grids (dot operation)
Plotting

18/5/19 Dingyü Xue and YangQuan C 108/114


hen. Scientific Computing with
Special Slices
□ Construct a plane at z = 1
□ Rotate 45o the plane along x axis
□ Slice with the plane

18/5/19 Dingyü Xue and YangQuan C 109/114


hen. Scientific Computing with
A Volume Visualization
Interface
□ A volume visualization interface is
developed vol_visual4d()
□ Syntax
Generate volume data
Call the function

Freely setting different slices

18/5/19 Dingyü Xue and YangQuan C 110/114


hen. Scientific Computing with
Example 2-40 Use the Volume
Visualization Interface
□ Function

□ Slice plotting
Use scrollbars to adjust the slices
Select whether a slice is shown

18/5/19 Dingyü Xue and YangQuan C 111/114


hen. Scientific Computing with
Chapter Summary
□ Fundamentals of MATLAB programming
Constants and variables
Data types and statement structures
Colon expression and sub-matrix extraction
□ Matrix computation
Algebraic, logic and relational operations
Expression simplification and conversion
Some discrete math computation
18/5/19 Dingyü Xue and YangQuan C 112/114
hen. Scientific Computing with
□ Control flow structures
Two kinds of loops, conditional and switch
Trial structure in MATLAB
□ Main stream programming -- functions
Standard function structures
Examming input and output arguments
With arbitrary number of in/out arguments
Recursive structures
Pseudo-code manipulations

18/5/19 Dingyü Xue and YangQuan C 113/114


hen. Scientific Computing with
□ Two-dimensional graphics
Descartes, polar, logarithmic and bars
Implicit function plotting
Decorations of plots
View point setting
□ Three-dimensional plots and surfaces
3D implicit functions
Rotations of plots
□ Four-dimensional volume visualization
An easy-to-use GUI

18/5/19 Dingyü Xue and YangQuan C 114/114


hen. Scientific Computing with

You might also like