Computational Solutions to Wave Equations - Project on Integral Equations

As part of the course Computational Solutions to Wave Equations, you will complete two projects. The project linked to part 2 of this course will be on time domain boundary integral equations. You can find the description of the project here:

Project Assignment

To get you started, two building blocks are provided:

The function lgwt can be used to calculate the Gauss nodes and weights. The syntax is:

[x,w] = lgwt(N,a,b).

Here N is the number of Gauss nodes and a and b are the upper and lower limit of the integration interval. After execution, the array x contains the abscis values and the array w the corresponding weights. If f is the array that contains the function values of the integrandum in the abscis values x the integral can be calculated by means of the command

sum( w .* f ).

The function fourierTransform allows you to do the Fourier Transform of a function. If the array f contains the samples of a function in equidistant abscis values $t_j = j \Delta t, j = 0,...,N_T-1$, the Fourier Transform can by calculated with

[v,F] = fourierTransform(delta_t,f,dim).

with dim the dimension along which the Fourier transform should be taken. So, if you want to take the Fourier transform along the rows of an array, you set dim to 2, while if you wish to transform along the columns you set dim to 1. If you leave out the argument, the transformation will be along the rows by default, which may lead to weird results if you work with column vectors. After execution v contains the frequencies at which the Fourier Transform is known and F is the array with the value of the Fourier Transform at these frequencies. To obtain accurate results, you must take $\Delta t$ smaller than the Nyquist sample interval, the signal must be zero for $t = 0$ and sufficiently damped out for $t = ( N_T - 1 ) \Delta t$.