15.11.2014 Views

Chapter 4: Programming in Matlab - College of the Redwoods

Chapter 4: Programming in Matlab - College of the Redwoods

Chapter 4: Programming in Matlab - College of the Redwoods

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

320 <strong>Chapter</strong> 4 <strong>Programm<strong>in</strong>g</strong> <strong>in</strong> <strong>Matlab</strong><br />

It is certa<strong>in</strong>ly remarkable, if not somewhat implausible, that one can sum a series<br />

<strong>of</strong> s<strong>in</strong>usoidal function and get <strong>the</strong> result<strong>in</strong>g square wave picture <strong>in</strong> Figure 4.8.<br />

We will generate and plot <strong>the</strong> first five terms <strong>of</strong> <strong>the</strong> series (4.4), sav<strong>in</strong>g each<br />

term <strong>in</strong> a row <strong>of</strong> matrix A for later use. First, we <strong>in</strong>itialize <strong>the</strong> time and <strong>the</strong><br />

number <strong>of</strong> terms <strong>of</strong> <strong>the</strong> series that we will use, <strong>the</strong>n we allocate appropriate space<br />

for matrix A. Note how we wisely save <strong>the</strong> number <strong>of</strong> po<strong>in</strong>ts and <strong>the</strong> number <strong>of</strong><br />

terms <strong>in</strong> variables, so that if we later decide to change <strong>the</strong>se values, we won’t have<br />

to scan every l<strong>in</strong>e <strong>of</strong> our program mak<strong>in</strong>g changes.<br />

N=500;<br />

numterms=5;<br />

t=l<strong>in</strong>space(0,6,N);<br />

A=zeros(numterms,N);<br />

Next, we use a for loop to compute each <strong>of</strong> <strong>the</strong> first 5 terms (numterms) <strong>of</strong><br />

series (4.4), stor<strong>in</strong>g each term <strong>in</strong> a row <strong>of</strong> matrix A, <strong>the</strong>n plott<strong>in</strong>g <strong>the</strong> s<strong>in</strong>usoid <strong>in</strong><br />

three space, where we use <strong>the</strong> angular frequency as <strong>the</strong> third dimension.<br />

for n=0:numterms-1<br />

y=4/((2*n+1)*pi)*s<strong>in</strong>((2*n+1)*pi*t);<br />

A(n+1,:)=y;<br />

l<strong>in</strong>e((2*n+1)*pi*ones(size(t)),t,y)<br />

end<br />

We orient <strong>the</strong> 3D-view, add a box for depth, turn on <strong>the</strong> grid, and annotate each<br />

axis to produce <strong>the</strong> image shown <strong>in</strong> Figure 4.9(a).<br />

view(20,20)<br />

box on<br />

grid on<br />

xlabel(’Angular Frequency’)<br />

ylabel(’t-axis’)<br />

zlabel(’y-axis’)<br />

As one would expect, after exam<strong>in</strong><strong>in</strong>g <strong>the</strong> terms <strong>of</strong> series (4.4), each each consecutive<br />

term <strong>of</strong> <strong>the</strong> series is a s<strong>in</strong>usoid with <strong>in</strong>creas<strong>in</strong>g angular frequency and decreas<strong>in</strong>g<br />

amplitude. This is evident with <strong>the</strong> sequence <strong>of</strong> terms shown <strong>in</strong> Figure 4.9(a).

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!