联系方式

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

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

日期:2020-11-30 11:15

A5 - Jupyter Notebook 2020/11/20, 12:07 PM

Before you turn this problem in, make sure everything runs as expected. First,

restart the kernel (in the menubar, select Kernel Restart) and then run all cells (in

the menubar, select Cell Run All). Or, alternatively, Restart & Run All.

Make sure you fill in any place that says YOUR CODE HERE or "YOUR ANSWER

HERE".

You can always add additional cells to the notebook to experiment, to test your

answers, or to provide additional support for your answers.

You should not need to install new packages to complete an assignment. If you use

any packages not available via the MATH405 Project.toml then your

assignment will likely not be graded correctly.

Submissions are only accepted via CANVAS!

Late submissions: within 24h I will reduce the grade to 70%. I will not accept

submissions after 24h. Please manage your time well and complete the assignments

with plenty of buffer time.

By entering your name below you confirm that you have completed this assignment

on your own and without (direct) help from your colleagues. Plagiarism / copying will

be checked by comparing assignments and by by testing understanding in

workshops and the oral exam (final). I reserve the option to downgrade an

assignment at any point.

In [ ]:

MATH 405/607

Numerical Methods for Differential

Equations

Assignment 5: Spectral Methods

Notes

Due date: Wed Dec 2, 2020, 1200 noon

This assignment will be worth 10% of the overall grade.

Answer only question 3 or question 4 but not both.

1 NAME = ""

A5 - Jupyter Notebook 2020/11/20, 12:07 PM

http://localhost:8888/notebooks/Desktop/math405_2020W/A5/A5.ipynb#q3 Page 2 of 7

Question 1 : Approximation vs Regularity

Question 2 : Trapezoidal Rule

Question 3 : Fourth order bvp

Question 4 : Advection Problem

Question 5 : Eigenvalue Problem

In [ ]: include("math405.jl")

# Here are the codes you need to construct and evaluate trigonometric interpolants

using FFTW

"construct a real-space grid - use FFT convention"

xgrid(N) = range(0.0, stop=2π-2π/2N, length=2N)

"construct the reciprocal space grid assumed by `fft` - carefully use FFT convention"

kgrid(N) = [0:N; -N+1:-1]

"compute the fourier coefficients of I_N"

fouriercoeffs(f::Function, N) = fouriercoeffs(f.(xgrid(N)))

fouriercoeffs(F::Vector) = fft(F) / length(F)

"evaluate a trigonometric polynomial"

eval_trig(F::Function, N, Z) = eval_trig(fouriercoeffs(F, N), Z)

eval_trig(F?::Vector, Z) = real(sum( f?k * exp.((im * k)*Z) for (f?k

# To evaluate the trigonometric interpolant of a function F

# at several points Zs::AbstractVector use the following function

eval_trig(F::Function, N::Integer, Zs::AbstractVector) = eval_trig

1

A5 - Jupyter Notebook 2020/11/20, 12:07 PM

http://localhost:8888/notebooks/Desktop/math405_2020W/A5/A5.ipynb#q3 Page 3 of 7

Question 1: Approximation vs Regularity [15]

Let be continuous and -periodic and let denote its degree

trigonometric interpolant.

In class we have proven (mostly) that if is analytic and bounded, , in the strip

then

Similarly, the Jackson Theorem(s) state that, if is -periodic, times continuously

differentiable and the th derivative is -H?lder continuous, , i.e.

then

The prototype of an -H?lder continuous function is . A piecewise smooth function

with finitely many singularities is also -H"{o}lder continuous in the sense defined

above.

The factor is a technicality, very difficult to see numerically (if it is indeed sharp),

and should simply be ignored for this Question.

Following the Model solution, produce figures demonstrating the algebraic or exponential

convergence rates stated in the above estimates. As in the model solution in addition to

plotting the convergence, also print your predicted rate of convergence.

A5 - Jupyter Notebook 2020/11/20, 12:07 PM

http://localhost:8888/notebooks/Desktop/math405_2020W/A5/A5.ipynb#q3 Page 4 of 7

Question 2: Periodic Trapezoidal Rule [3 + 5 + 3 + 4]

Let be continuous and -periodic, then we can represent it in terms of its

Fourier series,

We are interested in approximating the integral

by the trapezoidal rule

In the following tasks you may interchange limits freely without rigorous justification, in

particular summation and integration.

(a) Prove that .

(b) Prove that

and use this to deduce that

REMARK: means that for some integer .

(c) Deduce from (a, b) that

(d) Suppose that (i) ; or (ii) . In each case deduce from (c)

a sharp (up to constants) estimate on the error .

HINT: If is non-negative and monotonically decreasing then

otherwise.

YOUR ANSWER HERE

Solve either Q.3 (theoretical) or Q.4 (computational).

A5 - Jupyter Notebook 2020/11/20, 12:07 PM

http://localhost:8888/notebooks/Desktop/math405_2020W/A5/A5.ipynb#q3 Page 5 of 7

Question 3: Fourth-order BVP [5 + 5 + 5]

Consider the periodic boundary value problem for the differential equation

(a) Prove that, if solves the above DE, then

where .

*[HINT: multiply the DE by , then integrate over , integrate by parts, then use the

Cauchy-Schwarz inequality on the right-hand side.]*

(b) Derive the canonical Fourier spectral method for this problem, providing both the realspace

formulation as well as the fully discrete formulation in reciprocal space. Briefly

specify all your terms.

(c) Suppose that is analytic and bounded in the strip , prove that

where denotes the solution to the Fourier-spectral method from (a) and the exact

solution of the DE.

YOUR ANSWER HERE

BONUS [NO CREDIT]

Q3(d) Employing the method of manufactured solutions, confirm your prediction Question

3a-c.

In [ ]:

Question 4: transport equation [5+5+5]

Consider the advector equation with periodic boundary conditions and non-constant

advection speed, which is analytic and -periodic:

(a) Discretise in space using a Fourier spectral method and write down the resulting ODE

for the Fourier coefficients, in terms of the following operators:

: discrete Fourier transform

: inverse discrete Fourier transform

: trigonometric interpolant

1 # YOUR CODE HERE

A5 - Jupyter Notebook 2020/11/20, 12:07 PM

http://localhost:8888/notebooks/Desktop/math405_2020W/A5/A5.ipynb#q3 Page 6 of 7

YOUR ANSWER HERE

(b) Implement a practical scheme (you will need to discretise in time by implementing a

suitable time-stepping yourself or using a suitable solver from OrdinaryDiffEq.jl )

and compute the solution at time to within five digits absolute real-space

accuracy in the max-norm. Store it as

Uhat1 = ...

where Uhat1::Vector should be a vector containing the Fourier coefficients of the

solution at time .

HINT: If you are unsure about the correctness of your implementation, you could try

first. In this case you can compare against an exact solution.

? = 1.0

? = 1.0

? = const

In [ ]:

In [ ]:

In [ ]:

(c) Demonstrate the convergence rate of your scheme by comparing a sequence of

numerical solutions against another numerical solution computed to very high accuracy.

cfun = x -> 3 * (1 + sin(x)^2)

u0fun = x -> 1 + sin(x)

# YOUR CODE HERE

;

# To check correctness of your code you can check the convergence rate in

# part (c) but an addtional consistency check is the following:

# You can modify this code block to create an animatino of your solution

# You can check whether the solution is sensible?

# Note that larger values of c lead to faster advection, while smaller values

# lead to slower advection.

# xp = range(0, 2*pi, length=200)

# c_xp = cfun.(xp) / 3

# @gif for t = 0.0:0.01:1.0

# ? = ... # get the solution at time t

# u = eval_trig.(Ref(?), xp)

# plot(xp, c_xp, lw=2, c=2, label = "c/3")

# plot!(xp, u, lw=2, c=1, label = "t = $t", size = (400, 250), ylims = (0.0, 4.0))

A5 - Jupyter Notebook 2020/11/20, 12:07 PM

http://localhost:8888/notebooks/Desktop/math405_2020W/A5/A5.ipynb#q3 Page 7 of 7

In [ ]:

Question 5: Eigenvalue problem [10]

Find all eigenpairs , , smooth and -periodic, satisfying

and such that . Plot them in a scatter plot and store them (unordered) in a

variable

Lambda = ...

where Lambda::AbstractVector containing precisely the required set of

eigenvalues.

HINT: The code required to complete this problem is only about 5 lines.

If you wish you may add any additional comments or notes in this box:

In [ ]:

In [ ]:

# YOUR CODE HERE

# YOUR CODE HERE


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

python代写
微信客服:codinghelp