method of lines

45
MATH 212 NE 217 Douglas Wilhelm Harder Department of Electrical and Computer Engineering University of Waterloo Waterloo, Ontario, Canada Copyright © 2011 by Douglas Wilhelm Harder. All rights reserved. Advanced Calculus 2 for Electrical Engineering Advanced Calculus 2 for Nanotechnology Engineering Method of Lines

Upload: erma

Post on 08-Jan-2016

42 views

Category:

Documents


0 download

DESCRIPTION

Method of Lines. Outline. This topic introduces the method of lines Used for solving heat-conduction/diffusion and wave equations Finite differences discretizes both time and space Discretize only space Use a high-quality ODE solver to find the solution over time. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Method of Lines

MATH 212NE 217

Douglas Wilhelm Harder

Department of Electrical and Computer Engineering

University of Waterloo

Waterloo, Ontario, Canada

Copyright © 2011 by Douglas Wilhelm Harder. All rights reserved.

Advanced Calculus 2 for Electrical EngineeringAdvanced Calculus 2 for Nanotechnology Engineering

Method of Lines

Page 2: Method of Lines

Method of Lines

2

Outline

This topic introduces the method of lines– Used for solving heat-conduction/diffusion and wave equations

– Finite differences discretizes both time and space

– Discretize only space

– Use a high-quality ODE solver to find the solution over time

Page 3: Method of Lines

Method of Lines

3

Outcomes Based Learning Objectives

By the end of this laboratory, you will:– You will understand the method of lines

– You will be able to implement it using the Matlab functions implemented in previous terms

Page 4: Method of Lines

Method of Lines

4

Integration-by-Parts in Higher Dimensions

Up to this point, we have discretized both the space and time dimensions– We will look at another approach that discretizes only the space

dimensions

Page 5: Method of Lines

Method of Lines

5

Discretizing in Space

Consider the heat-conduction/diffusion equation

Discretizing the space component in one dimension gives:

We will demonstrate this only in one dimension; however, the generalization to 2 and 3 dimensions is obvious…

21 uu

t

2, , 2 , ,u x t u x h t u x t u x h t

t h

Page 6: Method of Lines

Method of Lines

6

Discretizing in Time

With finite differences, we divided time into discrete steps, as well:

which allowed us to find

2

, ,, 2 , ,

u x t h u x tu x h t u x t u x h t

t h

2, , , 2 , ,

tu x t h u x t u x h t u x t u x h t

h

Page 7: Method of Lines

Method of Lines

7

Review of Finite Differences

We are given the initial state of the system by uinit(x)

Divide the space interval into n points with n – 1 intervals

Page 8: Method of Lines

Method of Lines

8

Review of Finite Differences

We evaluate the initial state at each of the n points

Page 9: Method of Lines

Method of Lines

9

Review of Finite Differences

Next, given these initial values, we take the finite-difference equation to approximate the state at the next time t2 = t1 + t equatio

– The boundary values are defined by functions a(t) and b(t)

Page 10: Method of Lines

Method of Lines

10

Review of Finite Differences

Now, with this approximation, we approximate the values at timest3, t4, etc.

Page 11: Method of Lines

Method of Lines

11

Method of Lines

As an alternative approach, associate with each spatial point an unknown function uk(t)

– Two exceptions: u1(t) = a(t)

un(t) = b(t)

This approach was popularized by the chemical engineer William E. Schiesser in his 1991 text The Numerical Method of Lines

Page 12: Method of Lines

Method of Lines

12

Method of Lines

In order to substitute uk(t) into our mixed partial-/finite-difference equation,

we note that the solution at location x – h is uk – 1(t) and the solution at x + h is uk + 1(t):

We also have the initial condition:

uk(tinitial) = uinit(xk)

1 122k k k k

du t u t u t u t

dt h

2, , 2 , ,u x t u x h t u x t u x h t

t h

Page 13: Method of Lines

Method of Lines

13

Systems of IVPs

Therefore, we have a system of n – 2 initial-value problems but with n unknown functions:

2 1 2 3 2 initial init 22

3 2 3 4 3 initial init 32

7 6 7 8 7 initial init 72

8 7 8 9 8 initial init 82

2

2

2

2

du t u t u t u t u t u x

dt hd

u t u t u t u t u t u xdt h

du t u t u t u t u t u x

dt hd

u t u t u t u t u t u xdt h

Page 14: Method of Lines

Method of Lines

14

Systems of IVPs

There are two unknown functions, however, these are given by our boundary conditions:

2 1 2 3 2 initial init 22

3 2 3 4 3 initial init 32

7 6 7 8 7 initial init 72

8 7 8 9 8 initial init 82

2

2

2

2

du t u t u t u t u t u x

dt hd

u t u t u t u t u t u xdt h

du t u t u t u t u t u x

dt hd

u t u t u t u t u t u xdt h

Page 15: Method of Lines

Method of Lines

15

Systems of IVPs

We therefore have a system of n – 2 initial-value problems– With n = 9:

2 2 3 2 initial init 22

3 2 3 4 3 initial init 32

7 6 7 8 7 initial init 72

8 7 8 8 initial init 82

2

2

2

2

du t a t u t u t u t u x

dt hd

u t u t u t u t u t u xdt h

du t u t u t u t u t u x

dt hd

u t u t u t b t u t u xdt h

Page 16: Method of Lines

Method of Lines

16

Systems of IVPs

Note that we can rewrite the differential equations:

Thus,

2

3

7

8

u t

u t

t

u t

u t

u

12

13

1

17

18

u t

u td

t tdt

u t

u t

u u

Page 17: Method of Lines

Method of Lines

17

Systems of IVPs

We can therefore write this as:

where

.

.

.

1

2

2 1

01 2 1

, 1 2

01

1 2

a t

t t t th

b t

u f u u

.

.

.

2

2 1

01 2 1

, 01 2

01

1 2

def

a t

th

b t

f u u

Page 18: Method of Lines

Method of Lines

18

IVP Solvers from Previous Courses

From MATH 211, you implemented the functionfunction [ ts, ys ] = dp45n( f, t_int, y1, h, eps_step)

where tint = [tinitial, tfinal] that uses the adaptive Dormand-Prince method to approximate a solution to a system of initial-value problems

where we allow a maximum error of step where we start with an initial step size in time of h starting at tinitial and going to tfinal

1

0 1

,t t t

t

y f y

y y

Page 19: Method of Lines

Method of Lines

19

IVP Solvers from Previous Courses

We can write the function

function du = f( t, u ) M = diag( -2*ones( n - 2, 1 ) ) + ... diag( ones( n - 3, 1 ), 1 ) + ... diag( ones( n - 3, 1 ), -1 );

du = (kappa/h^2)*(M*u + [a(t); zeros( n – 4, 1 ); b(t)]);end

.

.

.

2

2 1

01 2 1

, 01 2

01

1 2

a t

th

b t

f u u

Page 20: Method of Lines

Method of Lines

20

Example: Dirichlet Conditions

To give a specific example, consider the following heat-conduction/diffusion problem:

that is, = 0.2, on [0, 1] with

with n = 9 points

init 1

0 1

2 1

1 2

0 2

def

def

def

u x

ta t

t

tb t

t

21

0.2

uu

t

Page 21: Method of Lines

Method of Lines

21

Example: Dirichlet Conditions

To give this a description:– A bar is initial uniform at 1

– For the first second, the left-hand side is placedin contact with a heat sink at 0, after which itis switched with a heat source of 2

– For the first two seconds, the right-hand sideis in contact with a body also at 1, after whichit is switched with a heat sink at 0

init 1

0 1

2 1

1 2

0 2

def

def

def

u x

ta t

t

tb t

t

Page 22: Method of Lines

Method of Lines

22

Example: Dirichlet Conditions

Thus, we have:function du = f111( t, u ) n = 9; M = diag( -2*ones( n - 2, 1 ) ) + ... diag( ones( n - 3, 1 ), 1 ) + ... diag( ones( n - 3, 1 ), -1 ); kappa = 0.2; h = 1/8; a = @(t)(2*(t > 1)); b = @(t)(t < 2); du = (kappa/h^2)*(M*u + [a(t); zeros( n - 4, 1 ); b(t)]);

end

Page 23: Method of Lines

Method of Lines

23

Example: Dirichlet Conditions

This can be driven by: u_init = @(x)(x*0 + 1); a = @(t)(2*(t > 1)); b = @(t)(t < 2);

n = 9; xs = linspace( 0, 1, n )';

[ts, us] = dp45( @f111, [0, 3], u_init( xs(2:end - 1) ), 1, 0.0001);

us = [a(ts); us; b(ts)]; mesh( ts, xs, us );

Page 24: Method of Lines

Method of Lines

24

Example: Dirichlet Conditions

With two orientations, the output is the plot:

Page 25: Method of Lines

Method of Lines

25

Example: Dirichlet Conditions

Note that t is larger while the system converges but becomes smaller at the discontinuities

Page 26: Method of Lines

Method of Lines

26

Example: Insulated Conditions

To give a specific example, consider the following heat-conduction/diffusion problem:

that is, = 0.2, on [0, 1] with

and an insulated right-hand boundary with n = 9 points

init 1

0 1

1 1

def

def

u x

ta t

t

21

0.2

uu

t

Page 27: Method of Lines

Method of Lines

27

Example: Insulated Conditions

Using the 2nd-order divided difference approximation of the derivative:

and substituting our approximations for u(b, t), u(b – h, t), andu(b – 2h, t) equate this to zero, we have:

or

3 , 4 , 2 ,,

2

u x t u x h t u x h tu t x

x h

1 23 40

2n n nu t u t u t

h

1 24

3n n

n

u t u tu t

Page 28: Method of Lines

Method of Lines

28

Example: Insulated Conditions

We could then substitute

into the last equation

to get

1 24

3n n

n

u t u tu t

1 2 122n n n n

du t u t u t u t

dt h

1 21 2 12

2 12

42

3

2 2

3 3

n nn n n

n n

u t u tdu t u t u t

dt h

u t u th

Page 29: Method of Lines

Method of Lines

29

Example: Insulated Conditions

Thus, we have:function du = f112( t, u ) n = 9; M = diag( -2*ones( n - 2, 1 ) ) + ... diag( ones( n - 3, 1 ), 1 ) + ... diag( ones( n - 3, 1 ), -1 ); M(n - 2, n - 2) = -2/3; M(n - 2, n - 3) = 2/3;

kappa = 0.2; h = 1/8; a = @(t)(t > 1); du = (kappa/h^2)*(M*u + [a(t); zeros( n - 4, 1 ); 0]);end

0 1

1 1

def ta t

t

Recall:

Page 30: Method of Lines

Method of Lines

30

Example: Insulated Conditions

This can be driven by: u_init = @(x)(x*0 + 1); a = @(t)(t > 1); n = 9; xs = linspace( 0, 1, n )';

[ts, us] = dp45( @f111, [0, 3], u_init( xs(2:end - 1) ), 1, 0.0001);

us = [a(ts); us; (4*us(end,:) - us(end - 1,:))/3]; mesh( ts, xs, us ); 1 24

3n n

n

u t u tu t

Page 31: Method of Lines

Method of Lines

31

Example: Insulated Conditions

With two orientations, the output is the plot:

Page 32: Method of Lines

Method of Lines

32

Example: Neumann Conditions

Suppose that the right-hand side is a more general Neumann condition:

Again, use the approximation

and substituting our approximations for u(b, t), u(b – h, t), andu(b – 2h, t) equate this to zero, we have:

or

3 , 4 , 2 ,,

2

u x t u x h t u x h tu t x

x h

1 23 4

2n n n

b

u t u t u tu t

h

, bu t b u tx

1 24 2

3n n b

n

u t u t h u tu t

Page 33: Method of Lines

Method of Lines

33

The Wave Equation

We can also have an initial-value problem for the wave equation:

This can, of course, be generalized to two and three dimensions:– There is one unknown function for each point

, , 1, 1, , 1 , 12

, initial init

4j k j k j k j k j k j k

jj k

k

du t u t u t u t u t u t

dt h

xu t u

y

2 2

1 12 2

initial init

1initial init

4k k k k

k k

k k

d cu t u t u t u t

dt hu t u x

u t u x

Page 34: Method of Lines

Method of Lines

34

The Wave Equation

Recall that our function dp45.m only works with a 1st-order differential equation– We must therefore convert the 2nd-order ODE into a 1st-order ODE

2 1

12

k k

k k

w t u t

w t u t

Page 35: Method of Lines

Method of Lines

35

The Wave Equation

We therefore have a system of 2(n – 2) initial-value problems– With n = 9:

2 2 2 initial init 2

3 3 3 initial init 3

2 2 2 2 initial init 2

1 2 1 1 initial init 1

2

2 2 3 2 initial init 22

2

3 22

2

2

n

n

n n n n

n n n n

n n

n

dw t w t w t u x

dtd

w t w t w t u xdt

dw t w t w t u x

dtd

w t w t w t u xdt

d cw t a t w t w t w t u x

dt h

d cw t w t w

dt h

3 4 3 initial init 3

2

2 2 3 2 1 2 1 initial init 22

2

2 12 2 1 2 1 initial init 12

2

2

n

n n n n n n

n n n n n

t w t w t u x

d cw t w t w t w t w t u x

dt h

d cw t w t w t b t w t u x

dt h

Page 36: Method of Lines

Method of Lines

36

The Wave Equation

Note that we can rewrite the differential equations:

22

33

22

11

122

13 3

12 2 2

12 1

1

nn

nn

n

n

n n

nn

u tw tu tw t

u tw tu tw t

t u tw t

w t u t

w t u tw t u t

w

Page 37: Method of Lines

Method of Lines

37

The Wave Equation

We can therefore write this with :

1

00 1

00 1

00 1

00 1

00 1,

2 0

02 0

02 0

02 0

2 0

t t t tra tr r

r r r

r r r

r

r r

ra br r

w f w w

2

2

cr

h

Page 38: Method of Lines

Method of Lines

38

The Wave Equation

Where the function f is defined as:

0 1

0 1 0

0 1 0

0 1 0

0 1,

2 0 0

2 0 0

2 0 0

2 0 0

2 0 0

def

ra t

ra bt

r r

r r r

r r r

r

r r

r r

f w w

Page 39: Method of Lines

Method of Lines

39

The Wave Equation

Thus, we have:function [dw] = f113( t, w ) n = 17; c = 1; h = 1/8; r = (c/h)^2; Id = ones( n - 2, 1 ); Id_off = ones( n - 3, 1 ); Z = zeros( n - 2, n - 2 ); M = diag( -2*r*Id ) + diag( r*Id_off, 1 ) + diag( r*Id_off, -1

); M = [Z eye( n - 2, n - 2 ); M Z]; v = zeros( 2*n - 4, 1 ); a = @(t)(sin(3*t)); b = @(t)(0*t); v(n - 1) = r*a(t); v(end) = r*b(t); dw = M*w + v;end

Page 40: Method of Lines

Method of Lines

40

The Wave Equation

This can be driven by:u_init = @(x)(x*0);du_init = @(x)(x*0);a = @(t)(sin(3*t));b = @(t)(0*t); n = 17;xs = linspace( 0, 1, n )'; U_init = [u_init( xs(2:end - 1) ); du_init( xs(2:end - 1) )]; [ts, us] = dp45( @f113, 0, 10, U_init, 1, 0.0001);size( us )u = [a(ts); us(1:(n - 2), :); b(ts)];mesh( ts, xs, u );du = [cos(3*ts); us((n - 1):end, :); 0*ts]; % Plot the derivative...mesh( ts, xs, du );

Page 41: Method of Lines

Method of Lines

41

The Wave Equation

The plot of the solution and the derivative are here:

Page 42: Method of Lines

Method of Lines

42

Finite Element Methods

It will also work equally effectively for finite element methods:– The elements define the relationship between a function defined at a

point and its neighbouring functions

Page 43: Method of Lines

Method of Lines

43

Summary

In this topic, we have covered the method of lines:– We discretize only the space component

– This creates a system of initial-value problems

– This may be solved using a high-accuracy adaptive ODE solver

Page 44: Method of Lines

Method of Lines

44

References

[1] Schiesser, W. E., The Numerical Method of Lines, Academic Press, 1991.

Page 45: Method of Lines

Method of Lines

45

Usage Notes

• These slides are made publicly available on the web for anyone to use

• If you choose to use them, or a part thereof, for a course at another institution, I ask only three things:

– that you inform me that you are using the slides,– that you acknowledge my work, and– that you alert me of any mistakes which I made or changes which you make, and

allow me the option of incorporating such changes (with an acknowledgment) in my set of slides

Sincerely,

Douglas Wilhelm Harder, MMath

[email protected]