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
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).