Beginner Matlab ODE

Download as pdf or txt
Download as pdf or txt
You are on page 1of 27

MATLAB workshops II

Content
symbolic expression
Inline function
differential and integral

dsolve and ode45

Prologue

Your Petroleum E&P company just received TOC log data from
the laboratory (EX2.mat). Unfortunately, your boss seems to be unsatisfied
with a huge data table.
TASK

Graphically present your data with plot function. The first column
is TVD and the second one is TOC. Depth and TOC is in meter(m) and
%wt unit, respectively.
BEWARE: Examine your data carefully !!

Symbolic expression

variable_name = sym(variable_name)
>> x = sym(x)
x=
x

sym create a symbolic variable, matrix and expression.


MATLAB treats symbolic variable like constant value. Consider
the following example:

>> x = sym(x)
x=
x
>> 5*x + 3*x
ans =

8x

In general, this input gives an error message


because MATLAB doesnt recognize x.

Symbolic expression
sym can also convert pi, which MATLAB defines as a double
variable (i.e. 3.1416), to an irrational number 3.1415926...

>> cos(pi/2)
ans =
6.1232e-17
>> cos(sym(pi/2))
ans =

MATLAB calculates cos 1.5708 , which is


really close to cos / 2 .
To get an exact answer, simply convert
pi/2 to a symbolic expression.

syms x is a short command of x = sym(x)

inline function

function_name = inline (equation,variable)


>> f = inline(x^2+2x,x)
f=
Inline function
f(x) = x^2 + x
>> f(2)
ans =
6

We use inline to create self-defined real function.


inline can also create vector or complex function.

>> f = inline(x.^2,x)
f=
Inline function
f(x) = x.^2
>> f([1 2 3])
ans =
[1

9]

Define a vector function, f(x).

inline function
Exercise 2.1
x 1
f
x

e

If
and g x

1.
2.

f 2
f 1 g 5

3.

f og 4

4.

fog x

x 1 , evaluate the following items:


2x

Calculus with MATLAB


Given that

f :D

where

(i.e. real-value function)

f x 2 x 3 then

If

d
f x 2 x3 6 x 2
dx

>> syms x; diff(2*x^3)


ans =
3*x^2

d2
f x 2 2 x 3 12 x
dx

>> syms x; diff(2*x^3,2)


ans =
12*x

3 4
2 x dx 2 x c

>> syms x; int(2*x^3,x)


ans =
1.5*x^4

3
0 2 x dx 2
3

>> syms x; int(2*x^3,x,0,1)


ans =
1.5

Calculus with MATLAB

Differentiation
Indefinite Integral
Definite Integral from
a to b

Limit
Note: direction = left or right

diff(function,x,order)
int(function,x)
int(function,x,a,b)

limit(function,x,point,direction)

Calculus with MATLAB


Exercise 2.2: evaluate the following expression

d 2 x 1
e x

dx

2.
x 2 y y 1

yx
1.

3.

x
sin
e
dx
0
4 1

2
2
x

y
dx dy

4.

2 0

5.

1sin

r 2 dr d

2
x
4
6. lim
x 2 x 2

Solving Differential Equation

There are 2 ways to solve it.


-

Exact solution

Numerical Solution

dsolve
ode45, ode113,.

- ode45 can ONLY be use to solve FIRST-ORDER linear differential


equation

Solving Differential Equation


dsolve(ode,variable)

Solving the equation as a string

dsolve returns an exact solution to a differential equation


problem.

The integration constants are called C1, C2, C3, .

Differentiation in dsolve function must be written in this format:

Dvariable_name
* Note second-order differentiation is D2variable_name
- When you are trying to solve an equation you must use ==
instead of =.
- The following example solves y x y x 1 x

>> dsolve(Dy+y+1==x,x)
ans =
x + C2*exp(-x) -2

Solving Differential Equation


dsolve(ode,conds)
-

On the other hand, when solving the ODE without apostrophe


symbols, the differential of y respect to x must be represented as
diff(y,x)

The initial condition(s) of an ODE are separated by comma ,.

dx
xt 0
Example: Find the general solution and particular for
dt
with the initial condition x 0 1
>> syms x(t);
>> dsolve(diff(x,t) x*t==0)
ans =
C2*exp(t^2/2)

Define a symbolic function x(t)

>> dsolve(diff(x,t) x*t==0,x(0)==-1)


ans =
-1*exp(t^2/2)

Solve for the particular solution

Solve for the general solution

Solving Differential Equation


-

Solving high-order ODE is somehow complicated

For instant, second-order ODE has 2 initial conditions


and y x c2

To define the first order differentiation constant, we create an


additional symbolic function called Dy

Dy = diff(y,x)

y x c1

Solving Differential Equation


Example: Solve the equation of motion of a simple harmonic
2
motion

d x
2x 0
2
dt
with the initial conditions: x 0 5, x 0 0
>> syms x(t);
>> Dx = diff(x,t);
>> x(t) = dsolve(diff(x,t,2)+2*x==0,x(0)==5,Dx(0)==0)
x(t) =
5*cos(2^(1/2) * t)
>> t = [0:0.1:5];
>> plot(t,x(t))

Solving Differential Equation


Exercise 2.3: Solve the following differential equation:

d
y y 2e 5t
dt
2
d
q
2.
5q 0
2
dt
d 2q
3.
5q 0
2
dt
1.

4.

; y 0 1

q 0 5, q 0 0

x t 0.05 x t 2 x t 0

d3y
y
5.
3
dx
and plot the solution.

x 0 5, x 0 0

, y 0 1, y 0 1, y 0

Solving Differential Equation


Numerical solve ODE: ode 45

[t,y] = ode45(odefun,tspan,y0)

y t f t , y in the tspan range with

ode45 solve the equation


y0 initial condition.

ode45 returns an array of solutions [t, y].

Remind that ode45 can only be used to solve first order!!

y0 initial condition is the condition at the initial point of the


interval.
(e.g. If your tspan is [2 6], inputting [t, y] = ode45(., [2 6], -6)
means y 2 6 .

Solving Differential Equation


Modern define function method

function_name = @(variables) function


-

Previously, we define function with inline command, which


treat mathematical function as strings.

Recently, according to MATLAB official webpage, inline


command will be removed soon.

To define f
command

x, t 2 x t in a modern way, use the following

>> f = @(x,t) 2*x + t


f=
@(x,t) 2*x + t
>> f(2,1)
ans =
5

Solving Differential Equation


Numerical solve ODE: ode 45

[t,y] = ode45(odefun,tspan,y0)

y 2t 3 in a time interval of [0,1]


0

Example: Plot the solution of


with an initial condition y 0

>> tspan = [0 1];


y0 = 0;
[t,y] = ode45(@(t,y) 2*t-3, tspan, y0);
plot(y,t,x)

Solving Differential Equation

>> tspan = [0:0.1:1];


y0 = 0;
[t,y] = ode45(@(t,y) 2*t-3, tspan, y0);
plot(y,t,x)

automatic tspan
[0 1]

specific tspan
[0:0.1:1]
(i.e. [0 0.1 0.2 . 1])

Solving Differential Equation


Piecewise solutions

>> y0 = 0;
>> [t,y] = ode45(@(t,y) 2*t-3, [0 2 6], y0)
>> t =

0
2
6

y=
0
-2.0000
18.0000

Find the solutions at t = 0, 2, 6

Solving Differential Equation

d
Exercise 2.4: Numerically solve
y y 2e 5t in the time interval
dt
from 0 to 5 and the initial condition 0 = 1

a) Plot your solution


b) Find

y 1 , y 2

Problem (1)
1. A spring constant k attach to a block mass m , rested on the
frictionless floor. Suppose that the block size is very small so that air
resistance force is proportional to its velocities in the form

f bv
where b is a constant. The equation of motion of this system is
described as

d 2x
dx
m 2 b kx 0
dt
dt
where x is the block position at time
equilibrium point.

t . We define x 0 at the

TASK: Graph and the position and velocity of the block versus time
in 2 separated graphs under each scenarios:
a. m 1.00 kg, k =5.00 N/m, b 0.50 N s/m
b. m 1.00 kg, k =5.00 N/m, b 5.0 N s/m
The initial parameter for both conditions are x 0 5.00 m,

x 0 0

Problem (2)
2. (Force driven oscillation)The block in the problem 1 is undergoing
damp oscillation by the external force F t F0 cos t . Hence,
the equation of motion of the block is

m
d 2x
dx
F t
k
m 2 b kx F0 cos t
dt
dt
The general solution is x t xtransient xsteady state where

xtransient Atrans e t sin t h


A

F0 / m


2
0

b
2m

4 2 2

xsteady state A cos t

b
tan
2
k

k
0
m

Problem (2 con.)
By using MATLAB, answer the following questions under this
circumstance:

m 1.00 kg, k =5.00 N/m, b 0.50 N s/m, F0 10 N, 2.0 Hz


x 0 x0 5.0 m, v 0 v0 0

1. Calculate the steady state amplitude A and phase


Justify the answers with your scientific calculator.

2. What is the value of Atrans and .


Self-study : How to use simplify function.
Hint:

sin x / 4 cos x / 4
3. Plot the block position versus time from 0 20 s .
4. After a long time, shows that

xsteady state xtransient .

5. Suppose that we could vary , plot the steady state amplitude


versus in 0.1 4 s range.

Problem (3)
Differential Effective Medium (DEM)
In 1985, Norris derive a Differential equation for calculating the
Effective elastic modulus tensor of any Medium. Later, Berryman (1992)
simplifies Norriss equation for an isotropic linear elastic material as

where

d
*i
*
*

1 K Ki K P
d
d
*i
*
*

Q
i

d

K , G

K i , Gi

is the mediums porosity fraction (0 1).


are the effective bulk and shear modulus of the
composite medium as a function of porosity,
respectively.

are the bulk and shear modulus of the


inclusion, respectively.

Problem (3 con.)
In a specific case, if the inclusion is a sphere shape, the constant
*i
*i
P , Q are defined as

where

*i

Gm 9 K m 8Gm
4
Gm
K m Gm
6 K m 2Gm
*i
3

,Q
4
Gm 9 K m 8Gm
K i Gm
Gi
3
6 K m 2Gm

K m , Gm are the bulk and shear modulus of the matrix.

Questions: [Solve the ODE by ode45 function]


1. Calculate the effective bulk and shear modulus of the isotropic
sample composed of small-scattered spherical water inclusions
dissimilate in the quartz matrix. The volume fraction of water is 30%.
K Quartz 36GPa

Gquartz 44 GPa

K water 2.2GPa

Gwater 0GPa

2. Graph the effective bulk and shear modulus of the sample in


question 1 range from porosity fraction 0 1.

You might also like