# Homework 6 Solution

\$30.00

Category:

## 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:

1. The plots of the trajectories y1(t), y2(t) and y3(t) versus time in figure(1).

1. A three-dimensional plot of the curve (y1(t); y2(t); y3(t)) in figure(2) (use the command plot3()).

2

error: Content is protected !!