MA2552 Introduction to Computing

编写一个函数,将整数m作为输入,并输出一个平方矩阵D将系数[α0,…,αm,β1,…,βm]映射到系数[γ0,……,γm,η1,……ηm]。编写一个函数,给定函数处理程序f和常数ak,求解O.D.E.(1)。请注意,有些系统可能有无限多个解决方案。在里面在这种情况下,您的职能部门应该能够识别此类情况。10.u(x)=cos(sin(x))是f(x)=sin(x) +1),其中a2=1,a0=−1,否则ak=0。绘制m=1,2,…的数值解和u(x)之间的p=2误差。。使用对数刻度作为y轴。以什么速度你的数值解会收敛到精确解吗?11.显示您选择的不同f(x)和不同ak的数值解。

MA2552 Introduction to Computing (DLI) 2023/24

Computational ProjectAims and Intended Learning OutcomesProject 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.

wechat codinghelp

  • 18
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值