Lab 6 Inline Functions and Function M-Files in Matlab

Problem #1:

(a.)  Calculate the unique solution to the initial value problem using dsolve.

(b.)  Let’s pretty-up the solution by entering:

> y=sym(‘(exp(2*x) – exp(2))/x’)

> z=simplify(y)

> pretty(z)

Note that the simplify command isn’t that simple! In fact, the simple command executes a number of

Matlab commands that simplify symbolic expressions, and returns the simplest form. The pretty function

prints symbolic output in a format similar to typeset.

Problem #2: Consider an object thrown in the air obeys the initial value problem

where y is the height in meters of the object above ground level after t seconds. Use the Matlab function

dsolve to solve the linear equation and show that

Problem #3: Verify the solution to the differential equation by showing that          , using

the definition of y(t).

2 Function M-Files

By programming a function M-file, we will be able to predict the height of the ball at t = 5 and for any

value of t. Open a new function M-file in the MATALB editor, and enter

function y=height(t)

y=-(49/5)t + (649/5)(1 – exp(-t));

end

and save it as height.m. To find the height at t = 5 seconds, we simply enter

> y=height(5)

Problem #4: Predict the height of the ball after 5 seconds, using a function M-file.

Note: If your search path does not include the directory that height.m is saved in, you will get an error

that says your function is undefined. You will need to add your working directory into the search path.

Writing Subfunctions. We can combine more than one function into a file, by using sub-functions.

Subfunctions are a relatively new addition to Matlab. For practice, we’ll plot the function, height, using a

subfunction. Open a new function M-file in the MATALB editor, and enter

function plotheight

close all

t = linspace(0,15,200);

y = height(t);

plot(t,y)

grid on

xlabel(‘time in seconds’)

ylabel(‘height in meters’)

title(‘Solution of y”” = -9.8 – y”,y(0)=0,y”(0) = 120’)

end

function y=height(t)

y = -(49/5)*t + (649/5) *(1 – exp(-t));