Day 3 Slides

Download Report

Transcript Day 3 Slides

Scientific Computing
Introduction to
Matlab Programming
Today
• We will introduce the programming
environment for our course:
Matlab
• We will cover:
– Basic Operations, Functions, Plotting
– Vectors, Looping
– Creating a new Function in a M-file
Why Matlab?
• Programming Language is relatively easy.
• You have access to it in the CS computer lab.
• Free, similar software is available (GFreeMat,
GNU Octave).
• Most people in scientific and engineering
disciplines use Matlab.
Matlab Basics
• Arithmetic operations:
Math
Matlab
1+2
1+2
1–2
1–2
1x2
1*2
1⌯2
1/2
22
2^2
• Built-in Functions like sqrt, log, exp, sin etc.
• Built-in constants like pi
Golden Ratio
Golden Ratio - Numerical
• Matlab: (Note the use of parentheses!)
phi = (1 + sqrt(5))/2
This produces
phi =
1.6180
Let's see more digits.
format long
phi
phi =
1.61803398874989
Golden Ratio – Solution to Polynomial
• Second calculation: Equating ratios in Golden
rectangle gives:
• So, phi is a (positve)solution of
Golden Ratio – Solution to Polynomial
• You can use MATLAB to get the roots of a
polynomial.
• MATLAB represents a polynomial by the
vector of its coefficients, in descending order.
p = [1 -1 -1]
r=roots(p)
r=
-0.61803398874989
1.61803398874989
Golden Ratio – Zeroes of function
• The number phi is also a zero of the function
f(x) = 1/x – (x-1) (Verify)
• The inline function is a quick way to create
functions from character strings.
f = inline('1/x - (x-1)')
Golden Ratio – Zeroes of function
• A graph of f(x) over the interval 0 ≤ x ≤ 4 is
obtained with
ezplot(f,0,4)
Golden Ratio – Zeroes of function
• To get the root of f(x) around 1 you can use
the following command:
phi=fzero(f,1)
• You can plot this
point on the top of
the ezplot graph:
ezplot(f,0,4)
hold on
plot(phi,0,'o')
Vectors and Looping
• Matlab was designed to be an environment for doing
Matrix and Vector calculations.
• Almost all of Matlab's basic commands revolve
around the use of vectors.
• A vector is defined by placing a sequence of numbers
within square braces:
v = [3 1]
produces:
v=
3 1
Vectors and Looping
• Note that Matlab printed out a copy of the
vector after you hit the enter key. If you do
not want to print out the result put a semicolon at the end of the line:
v = [3 1];
produces no output
Vectors and Looping
• Matlab can define a vector as a set of
numbers with a common increment:
v = [1:8]
produces
v=
12345678
Vectors and Looping
• If you wish to use an increment other than 1
that you define the start number, the value of
the increment, and the last number.
• For example, to define a vector that starts
with 2 and ends in 4 with steps of .25 :
v = [2:.25:4] produces
Vectors and Looping
• You can view individual entries in a vector. For
example to view the first entry in the vector
from the last slide, type:
v(1)
produces
ans =
2
Vectors and Looping
• We can add or subtract vectors:
v = [0:2:8]
u = [0:-1:-4]
u+v
produces
ans =
01234
Vectors and Looping
• We can multiply or divide vectors term by
term:
u.*v
produces
ans =
0 -2 -8 -18 -32
Vectors and Looping
• We can generate a column vector of zeroes by:
zeros(5,1)
produces
u=
0
0
0
0
0
Fibonacci Numbers
• Consider the following program:
function f = fibonacci(n)
% FIBONACCI Fibonacci sequence1.2. Fibonacci Numbers 9
% f = FIBONACCI(n) generates the first n Fibonacci numbers.
f = zeros(n,1);
f(1) = 1;
f(2) = 2;
for k = 3:n
f(k) = f(k-1) + f(k-2);
end
Matlab Function files
• The first line defines this program as a special
Matlab function M-file. The remainder of the
first line says this particular function produces
one output result, f, and takes one input
argument, n.
function f = fibonacci(n)
Matlab Function files
• These lines are comments:
% FIBONACCI Fibonacci sequence1.2. Fibonacci Numbers 9
% f = FIBONACCI(n) generates the first n Fibonacci numbers.
• The next two lines initialize the first two values of f
f(1) = 1;
f(2) = 2;
• The next three define a loop that will iterate through
the vector 3:n
for k = 3:n
f(k) = f(k-1) + f(k-2);
end
Matlab Function files
• To create an M-file, we go to the File menu
and select New -> Function M-file. An editor
window will pop up. We can type our code
into this window and then click the “Run”
button in the toolbar.
• We will be asked to save the file. We must
save it with the same name as the function,
here as “fibonacci.m”
Matlab Function files
• Then, we can use this function in the main
Matlab (script) window:
fibonacci(5)
ans =
1
2
3
5
8
Matlab Function files
• We can measure how much time it takes for this function to
complete using the Matlab commands tic and toc:
tic, fibonacci(24), toc
ans =
1
2
3
5
(terms omitted to save space)
10946
46368
75025
Elapsed time is 0.000701 seconds.
Matlab Function files
• Class Exercise: Triangular numbers are numbers of
the form n*(n+1)/2, with n a positive integer.
– Write a Matlab M-file function to find the triangular
numbers up to n=20.
– Try to do this in as few of lines of code as possible.
• Friday: In Computer Lab, First Lab Project