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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Section 4.5 Subfunctions <strong>in</strong> <strong>Matlab</strong> 385<br />

we replace <strong>the</strong> driv<strong>in</strong>g script file with a function M-file, this primary function can<br />

conta<strong>in</strong> as many subfunctions as needed to complete <strong>the</strong> programm<strong>in</strong>g task. In<br />

this way, <strong>the</strong> program is self conta<strong>in</strong>ed. One file conta<strong>in</strong>s everyth<strong>in</strong>g needed by<br />

<strong>the</strong> program to perform <strong>the</strong> task for which it was designed.<br />

Add<strong>in</strong>g Functionality to our Program<br />

In this section, we will write subfunctions that will reduce a fraction to lowest<br />

terms. This corresponds to <strong>the</strong> first choice on <strong>the</strong> menu <strong>of</strong> choices produced by<br />

<strong>the</strong> subfunction rationalMenu.<br />

How to proceed? We reduce a fraction to lowest terms <strong>in</strong> two steps. First, we<br />

f<strong>in</strong>d a greatest common divisor for both numerator and denom<strong>in</strong>ator, <strong>the</strong>n divide<br />

both numerator and denom<strong>in</strong>ator by this greatest common denom<strong>in</strong>ator.<br />

For example, to reduce <strong>the</strong> rational number 336/60 to lowest terms, we proceed<br />

as follows.<br />

1. F<strong>in</strong>d <strong>the</strong> greatest common divisior <strong>of</strong> 336 and 60, which is gcd(336, 60) = 12.<br />

2. Divide numerator and denom<strong>in</strong>ator by <strong>the</strong> greatest common divisor.<br />

336<br />

60<br />

336 ÷ 12<br />

=<br />

60 ÷ 12 = 28<br />

5<br />

Two tasks call for two subfunctions, one to f<strong>in</strong>d <strong>the</strong> gcd and a second to do<br />

<strong>the</strong> actual reduction.<br />

The Euclidean Algorithm. Early <strong>in</strong> our ma<strong>the</strong>matical education we learn<br />

that if you take an nonegative <strong>in</strong>teger a and divide it by a positive <strong>in</strong>teger b, <strong>the</strong>re<br />

is an <strong>in</strong>teger quotient q and rema<strong>in</strong>der r such that<br />

a = bq + r, 0 ≤ r < b.<br />

We can use this Euclidean Algorithm to f<strong>in</strong>d <strong>the</strong> greatest common divisor <strong>of</strong> 336<br />

and 60. We proceed as follows.<br />

1. When 376 is divided by 60, <strong>the</strong> quotient is 5 and <strong>the</strong> rema<strong>in</strong>der is 36. That is,<br />

336 = 5 · 60 + 36.<br />

2. When 60 is divided by 36, <strong>the</strong> quotient is 1 and <strong>the</strong> rema<strong>in</strong>der is 24. That is,<br />

60 = 1 · 36 + 24.<br />

3. When 36 is divided by 24, <strong>the</strong> quotient is 1 and <strong>the</strong> rema<strong>in</strong>der is 12. That is,<br />

36 = 1 · 24 + 12.

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

Saved successfully!

Ooh no, something went wrong!