联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-23:00
  • 微信:codinghelp

您当前位置:首页 >> Python编程Python编程

日期:2020-12-08 11:36

School of Computing, University of Leeds

COMP2421: Numerical Computation

Coursework Seven: Derivatives and Differential Equations (Summative)

These exercises are intended to give you more practice at sketching derivatives and solving

ordinary differential equations: they are intended to reinforce the material that was covered

in lectures. Your solutions should be submitted on Gradescope by 10:00AM on Friday

11th December 2020. This coursework is summative and is worth 20% of the final grade

in this module.

Gradescope instructions:

1) Where numerical answers are requested, short answers will be set up on Gradescope and

the questions below list the answers you will need to provide. For all such answers, please

a) Use decimal notation only.

b) Use either exact answers or round to 4 significant figures.

c) Use numerical answers only – Do not use LaTeX. Do not use letters or symbols, e.g.

to denote recurring decimals or powers.

2) All other answers will require you to upload your answer in pdf format. There is no need

to upload code.

1. [16 marks]

For each of the four graphs on the attached pages plot sketches of the function which

is their derivative at every point. (Please sketch on top of the original graph and hand

these in as your solution to this question.)

2. [9 marks]

The decay of a radio-active material can be modelled by the following differential

equation,

q

(t) = ?k × q(t) ,

where q(t) is the quantity of the material (in grams, say) that is present at time t.

Assuming that k = 2.0 and that at t = t0 = 0 we know that q(t0) = 10.0, take four

steps of Euler’s method (with dt = 0.25) to estimate q(1) (i.e. q(t) when t = 1.0).

Answer: q(t1) = , t1 =

q(t2) = , t2 =

q(t3) = , t3 =

q(t4) = , t4 =

3. [7 marks]

Let y(t) satisfy the following differential equation and initial condition:

y

(t) = y

3 + t

2

; y(1) = ?1 .

Take three steps of Euler’s method (with dt =

1

3

) to estimate y(2) (i.e. the solution

when t = 2.0).

1

Answer: y(t1) = , t1 =

y(t2) = , t2 =

y(t3) = , t3 =

4. [8 marks]

Use two steps of the midpoint rule, with dt = 0.5, to estimate the solution of the

problem in the previous question (i.e. the same equation and initial condition) at

t = 2.0.

Answer: k = , temp = in step 1

y(t1) = , t1 =

k = , temp = in step 2

y(t2) = , t2 =

5. [10 marks] As shown in lectures, the Euler algorithm applies even in the case of vector

equations (as does the midpoint rule but this is not considered in this question): we can apply Euler’s method with:

f(t, y) = Ay .

This gives the following implementation of Euler’s method at each step:

Writing this in component form, and using Python notation, this gives the following

at each step:

y1[k + 1] = y1[k] + dt × (?2 × y1[k] + y2[k])

y2[k + 1] = y2[k] + dt × (y1[k] ? 4 × y2[k])

t[k + 1] = t[k] + dt .

Hence take two steps of Euler’s method, with dt = 0.5, to approximate y(1) (i.e. the

solution at t = 1.0).

Answer: y1(t1) = , and

y2(t1) = , t1 =

y1(t2) = , and

y2(t2) = , t2 =

2

6. [20 marks]

For this question, you may wish to submit figures with your graphical analysis in

addition to your written answers to the questions.

Let y(t) = 4e

t?1 ? t

2 ? 2t ? 2 (where e, the base of the natural logarithm, is a constant

equal to 2.7182818284. . .). The function y(t) satisfies the differential equation:

It is easy to see that for t = 1, y(1) = ?1. We will use this as our initial condition.

(a) Write a Python script, using the Euler method function provided to you for numerical

integration, to numerically integrate this differential equation over 10 seconds,

to a final time of t = 11. Extend your code to include an error analysis. Note that you

will need to make some judgements in writing the code (in particular, choosing a time

step and which errors might be expedient to compute.)

Hints:

(i) Use the formula given for y(t) to calculate errors.

(ii) Write your code to conveniently compare different choices of dt.

(iii) You might wish to include graphical analysis of the numerical errors, plotting the

relevant errors as a function of time (note for Python, you would need to import matplotlib

to generate the figures. Alternatively, you might prefer to export the errors and

plot them with your favourite plotting tool). This is not required, but will help you to

answer the following questions.

(b) Based on your analysis, describe the behaviour of the errors after a long integration

time (t ? dt and in this case t ? 2). How do the errors obtained with different choices

of dt compare?

(c) Specifying dt to one significant figure only, determine the most efficient choice of

dt that should provide an error of at most 1% at t = 11.

The following optional questions are for extension only, and carry no marks.

(d) Optional: How does the behaviour of the absolute and relative errors change for

t < 2, t = 2 and t > 2 and why?

(e) Optional: Discuss the implicatons of the choice of dt you made in item (c).

Consider the following points: (i) The criterion used: this was an accuracy requirement

on the solution at t = 11; (ii) The computational cost. How would you expect this

cost to change if you halved the time step? What if you doubled the time step? How

does the error scale at times t < 2, t = 11?

(f) Optional: Based on your experience above, provide advice for choosing an appropriate

value of dt (for a given differential equation and integration scheme).

(g) Optional: Repeat your analysis with a different integration scheme (midpoint

scheme or the Runge Kutta, RK4 scheme) and compare the results. How do the

choices of dt change? How does the error behave after a long time with this new choice

of integration scheme?


版权所有:留学生编程辅导网 2020 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp