Could I have a thorough explanation of the concepts of all the parts of problems 2 and 3 especially with saving iterations and plotting??

Recitation Problems ? Week 9

440:127 ? Spring 2016 ? M. Gruteser and S. Khan

Please do the following problems during your recitation session, including any additional problems given to you

by your TA. Within 72hrs of your recitation session, you must upload the complete solutions to these problems to

Sakai, so that your TAs can evaluate them in a timely fashion. Collaborative problems can be worked on in teams

of up to 5 people, as long as each team member individually executes all steps in MATLAB, uploads the solution as

part of their own Sakai submission, and lists the names of all collaborators in the Sakai submission. Collaboration

and discussion of solutions is not permitted for questions labeled as individual problems.

Please provide your MATLAB script for every question and all its subquestions (e.g. a, b, c, ).

NEW: To receive full credit, any submitted MATLAB code must contain detailed comments that

clearly explain why and how the submitted solution works. These comments must be in your own

words, even for collaborative problems.

1. [Collaborative] It is desired to solve the equation, x ex = 1. An equivalent equation is:

x = exp(?x)

(1)

a. Solve Eq. (1) iteratively by replacing it by the following iteration, initialized at some arbitrary value, such

as, x1 = 1:

xk+1 = exp(?xk ) , k = 1, 2, 3, . . .

(2)

Implement this iteration using a forever while-loop that exits when two successive iterates become closer to

each other than some speci?ed error tolerance such as, tol = 10?10 , that is, the iteration terminates when,

|xk+1 ? xk | < tol.

Determine the number of iterations N that were required for convergence. The last value x(N ) is the required

solution of Eq. (1). Save the iterates into a MATLAB array x(k) and plot it versus the iteration index k.

Make a plot like the one at the end.

b. Implement the iteration of Eq. (2) using a conventional while-loop. Verify that this method produces the

identical array x(k) as method (a).

c. Solve Eq. (1) directly by using the built-in function fzero. Using trial-and-error determine an appropriate

value for the error tolerance, tol, of part (a) such that the iterative and the fzero solutions agree in at least

12 decimal places.

d. The solution of Eq. (1) lies at the intersection of the two curves:

y=x

and y = exp(?x)

Plot both curves on the same graph over the range 0 ? x ? 2 and place the solution point on the graph.

Figures for Problem 1

iterative solution

1

graphical solution

2

x(k)

x = 0.5671432904

0.9

y=x

y=e-x

sol

x=e

0.8

-x

1.5

y

x(k)

0.7

0.6

1

0.5

0.4

0.5

0.3

0.2

0

0

10

20

30

40

0

iterations, k

0.5

1

x

1

1.5

2

2. [INDIVIDUAL] The acceleration of a car is given by the following formula that includes an acceleration term

A due to the engine torque and an air drag term that is proportional to the square of the velocity:

dv

= A ? C ? v2

dt

It is desired to measure the 0?60 mph performance of the car, as well as its braking performance from 60?0

mph. To this end, the driver ?rst applies maximum torque until the car reaches 60 mph and measures the

corresponding time, say, t60 , and then, she applies the brakes until the car stops, and measures the stopping

time, tstop .

Let us discretize the time as, tn = (n ? 1)T , where n = 1, 2, 3, . . . , and T = 0.001 sec is a small time step. Then,

the above di?erential equation may be replaced by the following di?erence equation:

v(n + 1) = v(n) + T ? [A(n) ? C ? v 2 (n)]

(3)

where v(n) is in units of mph, the drag constant is chosen as C = 0.008, and the initial acceleration and

subsequent braking action can be modeled by:

A(n) =

30 ,

if tn ? t60

?2 ,

if t60 < tn ? tstop

a. Using a forever while-loop and starting with zero initial velocity, iterate equation (3) until v(n) reaches 60

mph, and determine the iteration index, say, n60 when the loop exits, and the corresponding 0?60 mph time,

t60 = (n60 ? 1)T . As you iterate equation (3) in part (a), save the computed velocity and time, v(n), t(n),

into arrays.

b. Then, continue with another forever while-loop that starts at n = n60 , and iterates until the velocity is

reduced to zero. Determine the index upon exit from the loop, say, nstop , and the total stopping time,

tstop = (nstop ? 1)T . Append the new arrays v(n), t(n) into the arrays of part (a) and make a plot exactly

as the one shown below.

80

v(t)

t60 = 4.68 sec

70

tstop = 15.06 sec

60

v (mph)

50

40

30

20

10

0

0

2

4

6

8

10

12

14

16

t (sec)

3. [Collaborative] Recall the 3D question from Recitation 8. The input ?le ?Animal.pcd? contains a point cloud,

a list of points described as 3-dimensional vectors.

a. Skip the header lines (lines with text) at the beginning of the ?le and save the x, y, z coordinates into vectors

named x, y and z.

b. Create a function with name rotation that takes x, y coordinates and an angle as input and calculates the

rotated values for that coordinates. Syntax should be like: function output = rotation(x,y,angle). You can

?nd the rotation matrix in slide 18 of Lecture 9 notes.

2

c. Translate the new coordinates into the range [0; 400] and convert to uint16.

d. Create an image as in the previous recitation.

e. Repeat with 100 di?erent angles of theta in the range [0 2pi] in equal increments to generate 100 images.

f. Combine the images into a video using the VideoWriter, im2frame, and writeVideo functions.

g. [Optional] Play your video using implay function.

4. [INDIVIDUAL] Consider the linear system:

4×1 + 2×2 + x3 = 11

? x1 + 2×2 = 3

2×1 + x2 + 4×3 = 16

Cast it in the matrix form Ax = b and solve it.

3