MAS115辅导、辅导Python语言、讲解Python编程设计、辅导SAM MARSH

- 首页 >> Python编程

MAS115: GROUP PROJECT 1

SAM MARSH AND ALEX FLETCHER

1. The task

Below you will find some discussion of recurrence relations. In your groups,

your task is to investigate this area and create a website that presents your

findings, using Python as imaginatively as you can and analyzing the data

that your programs produce.

You will find suggestions on what to investigate. You are free to investigate

things that have not been suggested, and you do not need to cover all of the

things that have been.

Your write-up could involve some background material to the area, but

you must ensure this isn’t plagiarised from other sources and is genuinely

your own work. Any material that relies on other sources must be properly

referenced and credited to them. It will be assumed that you attended the

Week 11 lecture where plagiarism was covered.

You should aim to create a self-contained account of the subject that your

peers who aren’t taking MAS115 would be interested in reading.

Submission

The submission of the project comes in two parts:

(1) a short, individual submission in mid-January;

(2) your group’s final submission in late January.

Both of these submissions will be uploaded via the upload system on the

course webpage.

An individual submission must be completed by each student. For this,

you must create a short webpage covering the ‘Individual Tasks’ found in

Section 2. This should feature working Python programs embedded in the

page or available as .py files for download. The deadline for uploading

the individual submission is midnight at the end of Friday 11th

January. This submission will not be marked, but failure to complete it

will result in a penalty being applied to that student’s overall mark.

There is no minimum or maximum length for the final submission. As

a guide, we expect approximately four times the length and depth of the

average mini-project. You may have just one webpage or a series of linked

pages (that is, a website). You may link to or embed Python programs,

external sites or any other appropriate material. The title on the index page

should be ‘Recurrence relations: Group Project (Group x)’. The deadline

for uploading the final group submission is midnight at the end of

Friday 25th January.

1

2 SAM MARSH AND ALEX FLETCHER

You may use any of the CSS files which appear on the course webpage. You

are also free to create one of your own. However, you may be criticised if

your CSS file makes your site hard to read.

You will receive a mark out of 100 for the project, which will contribute

20% of your final grade. In all but exceptional circumstances, all members

of the group will receive the same mark (subject to individual penalties as

above). We are aware that contributions are likely to be unequal, but as a

group you will take joint responsibility for your output. There will be an

opportunity to comment on exceptional cases at the end of the project.

January computer labs

There will be one or two computer labs in January, which you should use

to work on and finalize the project in your groups. We will email details of

these closer to the time.

Late work and plagiarism

Late work. It is important that work is submitted on time. Any work

submitted after the deadline may be subject to a penalty and could be

given a mark of zero. Anybody with circumstances affecting their ability to

hand in the work must contact Dr Marsh in advance of the hand-in date.

Plagiarism. The project must be your own group’s work. You should

collaborate with your other group members to identify the work to be done

and solve problems. You should not share material with other groups except

via the MAS115 discussion board (see below). Please also ensure you have

understood the material on plagiarism from the Week 11 lecture. If we judge

that work has been plagiarised from another source, there is a possibility of

a mark of zero being awarded for those projects. Please bear this in mind!

Final comments

Here are some final bits of advice on how to do a good project.

? Make sure the project is a coherent whole, not just unrelated pages.

? The first-person (‘I wrote a program’) is not appropriate in group work.

Read other people’s contributions and check for any mistakes.

Reference everything! Look out for strangely good work: could it be

plagiarised?

Always make Python code downloadable, or embed with repl.it or

trinket.io.

Make your site easy to browse by keeping the structure simple.

Don’t use capital letters or spaces in filenames.

Use the MAS115 discussion board if you’re stuck as a group.

Remember: you must participate satisfactorily in all three group projects

to pass the module.

MAS115: GROUP PROJECT 1 3

2. Recurrence relations

A recurrence relation for a sequence x1, x2, x3, . . . is

an equation which, for each i past a certain threshhold, relates xi to

earlier terms in the sequence, along with

a specification of initial values.

For example, the sequence 1, 2, 4, 8, . . . has a recurrence relation given by

xi = 2 xi?1 for i ≥ 2, with initial value x1 = 1. Other simple examples

include arithmetic and geometric progressions, the sequence of factorials

(1, 2, 6, 24, . . .), and the Fibonacci sequence.

Individual submission. The individual submission looks at some simple

examples of recurrence relations.

Individual task. Write Python code to return the nth term

of some interesting sequences generated by recurrence relations,

starting with some of the examples mentioned above

and looking at other interesting cases you can find.

Sequences with recurrence relations can be used to generate interesting numbers,

usually roots of equations, as you may have seen at A-level.

Individual task. What is the behaviour of the recurrence

relation with equation What

happens as you vary the value of x1? Give a good account of

the ideas behind using recurrence relations in this way, and

use Python to illustrate what’s going on as best you can.

There’s an interesting recurrence relation with equation xi = r(1?xi?1)xi1

for i ≥ 2, often called the logistic map. By varying the choice of parameter

r, the behaviour of the sequences it generates changes dramatically.

Individual task. For starting values 0 < x1 < 1, see what

happens using the logistic map with the following choices of

parameter r, using Python, and summarising your findings:

(a) r = 2.4; (b) r = 3.5; (c) r = 3.55; (d) r = 3.82.

Write up your individual submission as a basic webpage, with embedded or

downloadable Python programs, and upload your page to the upload system

by midnight at the end of Friday 11th January.

The purpose of the individual submission is to enable group members to form

a common understanding of the methods needed to investigate the group

project below. Material from the individual task can and should feature in

the group project by pooling the findings from the group’s members.

Group project. You should now, as a group, investigate recurrence relations

further, using Python imaginatively where it is useful. Below are

some suggested areas you could choose to investigate. Note that we will be

more impressed by fewer areas explored in more depth than by many areas

considered superficially.

4 SAM MARSH AND ALEX FLETCHER

More on the logistic map. The bifurcation diagram for the logistic map is a

striking visual image which represents interesting dynamics occurring within

a simple-looking recurrence relation.

Figure 1. The bifurcation diagram for the logistic map.

(Picture from Wikipedia, public domain.)

You could investigate the logistic map further, giving a good account of what

the bifurcation diagram shows, and use Python to investigate and explain

what’s going on.

Cobwebbing. You could investigate how cobwebbing, a graphical technique,

can be used to help understand the behaviour of recurrence relations of the

form xi = f(xi?1), for nonlinear functions f other than the logistic map.

The Mandelbrot set. The Mandelbrot set for complex numbers comes as the

result of an iterative procedure using ideas similar to those outlined above.

What can you find out about this and how it relates to Julia sets?

Generalised Fibonacci sequences. You could investigate generalising the Fibonacci

sequence, looking at recurrence relations of the form xi = c1xi1 +

c2xi2 + . . . + cnxin or similar. What can you find out about these, and

can you find anything interesting to demonstrate using Python?

Real-world applications. Recurrence relations (also called difference equations)

have been used to model a variety of processes, from sunflower seed

spirals to fisheries management to tumour cell growth. You could investigate

one or more examples where recurrence relations have been applied to

real-world phenomena.

You have freedom to explore, write about and impress us with your Python

abilities on any related area. We look forward to seeing what you come up

with!


站长地图