Sale!

# COMPUTER SCIENCE 349A ASSIGNMENT #1

\$30.00

Category:

COMPUTER SCIENCE 349A
ASSIGNMENT #1

This is a really large class and the logistics of grading assignments are challenging. Me
and the markers require your help in making this process go smoothly. Please ensure that
your assignments conform to the following requirements – any violation will result in getting
a zero for the particular assignment.
• All assignments should be submitted electronically through the ConneX course website
and shoud be SINGLE PDF FILES. No other formats will be accepted.. Handwritten answers are ok but they will need to be scanned and merged into a single pdf file
together with any code examples and associated plots.
• The assignment number, student name and student number should be clearly visible
on the top of every page of your assignment submission.
• PLEASE DO NOT COPY THE ASSIGNMENT DESCRIPTION IN YOUR
SUBMISSION
• The asnwers to the questions should be in the same order as in the assignment specification.
• Some of the questions of the assignments are recycled from previous years but typically
with small changes in either the description or the numbers. Any submission that
contains numbers from previous years in any questions will be immediately graded
with zero.
• Any assignment related email questions should have a subject line of the form CSC349A
Assignment X, where X is the number of the corresponding assignment.
1
A MATLAB function M-file for Euler’s method (as described in class and on pages 17-19
of the textbook) for solving the differential equation
dv
dt = g −
c
m
v
(this is (1.9) on page 14) is given below. As discussed in class, this numerical method
is obtained by approximating dv
dt at time ti by v(ti+1)−v(ti)
ti+1−ti
, which results in the computed
approximation
v(tt+1) = v(ti) + h
g −
c
m
v(ti)
i
(ti+1 − ti).
To create a MATLAB function M-file, either type edit in the Command Window or
select HOME → New → Script or select HOME → New → Function (the latter gives
you a template for creating a function).
Each of these options will open a new window (an Editor window) in which to type in
the MATLAB statements for Euler’s method. Enter the following. Statements starting with
% are comments, documenting the MATLAB code.
function Euler(m,c,g,t0,v0,tn,n)
% print headings and initial conditions
fprintf(’values of t approximations v(t)\n’)
fprintf(’%8.3f’,t0),fprintf(’%19.4f\n’,v0)
% compute step size h
h=(tn-t0)/n;
% set t,v to the initial values
t=t0;
v=v0;
% compute v(t) over n time steps using Euler’s method
for i=1:n
v=v+(g-c/m*v)*h;
t=t+h;
fprintf(’%8.3f’,t),fprintf(’%19.4f\n’,v)
end
EDITOR → Save → Save As…
At the top of this window, it should say
File name: Euler.m
Save as type: MATLAB files (*.m)
Select
Save
to save your file, and close the Editor window.
In order to use the above function, you must specify values for the 7 local parameters in
the function Euler:
2
m is the mass of the falling object
c is the drag coefficient
g is the gravity constant
t0 is the initial time, v0 is the initial velocity
tn is the final time at which the velocity is to be computed
n is the number of time steps into which [t0, tn] is divided
Thus, in the function Euler, the step size h = (tn − t0)/n is computed, and Euler’s method
is used to compute an approximation to the solution v(t) of the differential equation at the
n points (values of time)
t0 + h, t0 + 2h, t0 + 3h, t0 + 4h, . . . , t0 + nh = tn.
For example, in order to use Euler to solve the problem given in Example 1.2 on page 17
and to save your results in a file for printing, you could enter the following (in the MATLAB
Command Window):
diary filename
Euler ( 68.1 , 12.5 , 9.81, 0 , 0 , 12 , 6 )
{the desired results should appear here}
diary off
There are three questions and each subquestion (for example Q1b) is worth 2 points.
The total number of points for this assignment is 20.
Question #1. – 8 marks
(a) Create a working copy of the MATLAB function Euler in your installation of MATLAB.
DELIVERABLES: A copy of the M-FILE in your pdf.
(b) Use Euler to solve the differential equation using m = 86.2, c = 12.5 and initial
conditions v(0) = 0 on the time interval [0, 12] using 15 time steps and g = 9.81.
DELIVERABLES: Your answer should include the function call to Euler and the
resulting output.
(c) Use Euler for a falling parachutist with the same parameters as Q1b but with a gravitational constant of 3.71 (as would be the case if the parachutist was falling on Mars).
DELIVERABLES: Your answer should include the function call to Euler and the
resulting output.
3
(d) Use MATLAB to compute the relative error |εt
| in the computed approximation at
time t = 12, using the constants from Q1b. To do this, use the true (exact) solution:
v(t) = gm
c
(1 − e
− ct
m ) (1)
DELIVERABLES: A copy of the commands and output.
Note that in MATLAB e
x
is computed as exp(x) and |x| as abs(x).
Question #2 – 6 Marks.
In our mathematical model of a falling parachutist, instead of assuming that air resistance
is linearly proportional to velocity (that is, FU = −cv), you might choose to model the
upward force on the parachutist as a second-order relationship,
FU = −kv2
where k is a second-order drag coefficient. This leads to the following differential equation
dv
dt = g −
k
m
v
2
(a) Modify the MATLAB function Euler in Question 1 so that it will use Eulers method
to solve this differential equation. Use the function header
Euler2(m , k , g, t0 , v0 , tn , n)
DELIVERABLES: A copy of the M-FILE in your pdf.
(b) Use Euler2 to compute a numerical approximation to the above differential equation
using m = 73.5, k = 0.234 and initial condition v(0) = 0 on the time interval [0, 18]
using 72 time steps.
DELIVERABLES: The function call to Euler2 and the resulting output.
(c) Use the fact the exact analytic solution of this problem is
v(t) = r
gm
k
tanh r
gk
m
t
!
to compute (either in MATLAB or using your calculator) the relative error in the
computed solution at t = 18.
Question #3 – 4 Marks
The function e
−x
can be approximated by its McLaurin series expansion as follows (note
the alternating + and −):
e
−x ≈ 1 − x +
x
2
2! −
x
3
3! + . . . ±
x
n
n!
4
Alternatively, note that e
−x =
1
e
x . Thus, e
−x
can also be apporximated by 1 over the
McLaurin series expansion of e
x
. That is,
e
−x ≈
1
1 + x +
x2
2! +
x3
3! + . . . +
xn
n!
Approximate e
−2 using both approaches above for n = 1, 2, 3, 4 and 5. Note, n is the
degree of the polynomial not the number of terms. So here you use 2 terms, then 3 terms,
…, and finally 6 terms. Compare each approximation to the true value of e
−2 = 0.135335…,
using the true relative error. What conclusions can you make about the two approaches?
5

## Reviews

There are no reviews yet.