联系方式

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

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

日期:2023-12-14 09:30

MA2552 Introduction to Computing (DLI) 2023/24

Computational Project

Aims and Intended Learning Outcomes

The aims of the Project are to describe methods for solving given computational problems, develop and test Matlab code implementing the methods, and demonstrate application

of the code to solving a specific computational problem. In this Project, you be will be required to demonstrate

? ability to investigate a topic through guided independent research, using resources

available on the internet and/or in the library;

? understanding of the researched material;

? implementation of the described methods in Matlab;

? use of the implemented methods on test examples;

? ability to present the studied topic and your computations in a written Project Report.

Plagiarism and Declaration

? This report should be your independent work. You should not seek help from other

students or provide such help to other students. All sources you used in preparing your

report should be listed in the References section at the end of your report and referred

to as necessary throughout the report.

? Your Project Report must contain the following Declaration (after the title page):

DECLARATION

All sentences or passages quoted in this Project Report from other people’s work have

been specifically acknowledged by clear and specific cross referencing to author, work and

page(s), or website link. I understand that failure to do so amounts to plagiarism and

will be considered grounds for failure in this module and the degree as a whole.

Name:

Signed: (name, if submitted electronically)

Date:

Project Report

The report should be about 6-8 pages long, written in Word or Latex. Equations should

be properly formatted and cross-referenced, if necessary. All the code should be included in

the report. Copy and paste from MATLAB Editor or Command Window and choose ‘Courier

New’ or another fixed-width font. The Report should be submitted via Blackboard in a single

file (Word document or Adobe PDF) and contain answers to the following questions:

1

MA2552 Introduction to Computing (DLI) 2023/24

Part 0: Context

Let f(x) be a periodic function. The goal of this project is to implement a numerical method

for solving the following family of ordinary differential equations (O.D.E):

an

d

nu(x)

dxn

+ an?1

d

n?1u(x)

dxn?1

+ . . . + a0u(x) = f(x), (1)

where ak, k = 0, · · · , n, are real-valued constants. The differential equation is complemented

with periodic boundary conditions:

d

ku(?π)

dxk

=

d

ku(π)

dxk

for k = 0, · · · , n ? 1.

We aim to solve this problem using a trigonometric function expansion.

Part 1: Basis of trigonometric functions

Let u(x) be a periodic function with period 2π. There exist coefficients α0, α1, α2, . . ., and

β1, β2, . . . such that

u(x) = X∞

k=0

αk cos(kx) +X∞

1

βk sin(kx).

The coefficients αk and βk can be found using the following orthogonality properties:

Z π

cos(kx) sin(nx) dx = 0, for any k, n

Z π

cos(kx) cos(nx) dx =

?

??

??

0 if k ?= n

π if k = n ?= 0

2π if k = n = 0.

Z π

sin(kx) sin(nx) dx =

(

0 if k ?= n

π if k = n ?= 0.

1. Implement a function that takes as an input two function handles f and g, and an

array x, and outputs the integral

1

π

Z π

f(x)g(x) dx,

using your own implementation of the Simpson’s rule scheme. Corroborate numerically

the orthogonality properties above for different values of k and n.

2. Show that

αk =

(

1

π

R π

u(x) cos(kx) dx if k ?= 0

1

R π

u(x) dx if k = 0

βk =

1

π

Z π

π

u(x) sin(kx) dx.

2

MA2552 Introduction to Computing (DLI) 2023/24

3. Using question 1 and 2, write a function that given a function handle u and an integer

m, outputs the array [α0, α1 . . . , αm, β1, . . . , βm].

4. Write a function that given an array [α0, α1 . . . , αm, β1, . . . , βm], outputs (in the form

of an array) the truncated series

um(x) := Xm

k=0

αk cos(kx) +Xm

k=1

βk sin(kx), (2)

where x is a linspace array on the interval [?π, π].

5. Using the function from question 3, compute the truncated series um(x) of the following

functions:

? u(x) = sin3

(x)

? u(x) = |x|

? u(x) = (

x + π, for x ∈ [?π, 0]

x ? π, for x ∈ [0, π]

,

and using question 4, plot u(x) and um(x) for different values of m.

6. Carry out a study of the error between u(x) and um(x) for ∥u(x)?um(x)∥p with p = 2

and then with p = ∞. What do you observe?

Part 2: Solving the O.D.E

Any given periodic function u(x) can be well approximated by its truncate series expansion (2) if m is large enough. Thus, to solve the ordinary differential equation (1)

one can approximate u(x) by um(x):

u(x) ≈

Xm

k=0

αk cos(kx) +Xm

k=1

βk sin(kx),

Since um(x) is completely determined by its coefficients [α0, α1 . . . , αm, β1, . . . , βm],

to solve (1) numerically, one could build a system of equations for determining these

coefficients.

7. Explain why under the above approximation, the boundary conditions of (1) are automatically satisfied.

8. We have that

dum(x)

dx =

Xm

k=0

γk cos(kx) +Xm

k=1

ηk sin(kx)

Write a function that takes as input the integer m, and outputs a square matrix D that

maps the coefficients [α0, . . . , αm, β1, . . . , βm] to the coefficients [γ0, . . . , γm, η1, . . . , ηm].

3

MA2552 Introduction to Computing (DLI) 2023/24

9. Write a function that given a function handler f and the constants ak, solves the

O.D.E. (1). Note that some systems might have an infinite number of solutions. In

that case your function should be able identify such cases.

10. u(x) = cos(sin(x)) is the exact solution for f(x) = sin(x) sin(sin(x))?cos(sin(x)) (cos2

(x) + 1),

with a2 = 1, a0 = ?1 and ak = 0 otherwise. Plot the p = 2 error between your numerical solution and u(x) for m = 1, 2, . . .. Use a log-scale for the y-axis. At what rate

does your numerical solution converge to the exact solution?

11. Show your numerical solution for different f(x) and different ak of your choice.

4


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

python代写
微信客服:codinghelp