Description
Please submit to CANVAS a .zip le that includes the following Matlab functions:
tridiag solver.m
AB3.m
solve ODE system.m
Exercise 1 Write a Matlab function that implements the Thomas algorithm to solve tridiagonal linear systems of equations in the form
-
2 a1
c1
0
.. .
6
e1
.a.2
.c.2
..
.
6
0
..
6
6
.. ..
.
an
1
6
.
6
6
6
0
0
en
1
4
0 |
3 |
2 |
x1 |
3 |
2 |
b1 |
3 |
||
0 |
7 |
x2 |
b2 |
||||||
0 |
6 |
.. |
7 |
= |
6 |
.. |
7 |
(1) |
|
7 |
. |
. |
|||||||
7 |
6 |
7 |
6 |
7 |
|||||
cn 1 |
7 6 |
xn 1 |
7 |
6 |
bn 1 |
7 |
|||
7 |
6 |
7 |
6 |
7 |
|||||
7 |
6 |
7 |
6 |
7 |
|||||
an |
7 |
6 |
xn |
7 |
6 |
bn |
7 |
||
7 |
6 |
7 |
6 |
7 |
|||||
5 |
4 |
5 |
4 |
5 |
The function should be in the form
function x = tridiag solver(e,a,c,b)
Input:
e=[e1 e2 en 1] a=[a1 a2 an] c=[c1 c2 cn 1] b=[b1 b2 bn]T
Output:
x: solution to the linear system (1) (column vector)
-
Exercise 2 Consider the system of nonlinear ordinary di erential equations
8
dt = f(y(t); t)
(2)
dy(t)
<
: y(0) = y0
where f : Rn [0; T ] ! Rn, y : [0; T ] ! Rn. Write a Matlab function that solves the system (2) by using the third-order Adams-Bashforth scheme. To start-up the scheme ( rst two steps) use the
Heun scheme. The function should be of the form
function [y,t] = AB3(fun,y0,T,DT,IOSTEP)
Input:
fun: function handle representing f(y; t)
y0: column vector representing the initial condition
T: period of integration
DT: time step
IOSTEP: Input/output step. The solution is saved in the output matrix y every IOSTEP steps.
Output:
y: n S matrix collecting the time snapshots of the solution to (2). Note that the total number of snapshots S (including the initial condition) is floor(T/(IOSTEP*DT))+1.
t: vector collecting the time instants at which the solution is saved in the output matrix y.
Exercise 3 Consider the following nonlinear dynamical system
>
-
8
dy1(t)
= y1(t) + y2(t)y3(t)
dt
>
dy2(t)
= y2(t) + (y3(t) 2)y1(t)
(3)
>
>
dt
>
>
<
>
>
>
dy3(t)
= 1 y1(t)y2(t)
dt
>
:
It is known that the solution to (3) is chaotic in time and it settles on a strange attractor. By using the function AB3.m you coded in Exercise 2, compute the numerical solution to (3). To this end, set NSTEPS=1000000, IOSTEP=50, DT= 1e-3, y0=[1 2 3]T , and write a function
function [y,t]=solve ODE system()
Output:
y: 3 S matrix collecting S time snapshots of the solution to (3). Here, S=floor(NSTEPS/IOSTEP)+1.
t: vector collecting the time instants at which the solution is saved in the output matrix y.
The function solve ODE system should also return the following items:
-
The plots of the trajectories y1(t), y2(t) and y3(t) versus time in figure(1).
-
A three-dimensional plot of the curve (y1(t); y2(t); y3(t)) in figure(2) (use the command plot3()).
2