You are on page 1of 29

Laboratory Exercise No.

2
SOLVING ORDINARY DIFFERENTIAL EQUATIONS USING MATLAB

1.Objective(s):
The activity aims to solve differential equations using matlab.

2.Intended Learning Outcomes (ILOs):


The students shall be able to:
2.1solve first order ordinary differential equations using matlab
2.2solve second order ordinary differential equations using matlab
2.3solve third order ordinary differential equations using matlab
2.4obtain general and particular solutions of first, second and third order ordinary differential equations
2.5solve systems of ordinary differential equations.

3.Discussion :
Ordinary differential equations tend to arise whenever you need to model changing quantities that depend on
the amount of other quantities around it. For example, in chemistry, the time rate of change of concentration (
dx/dt ) of a chemical solution often depends on the concetrations of other chemicals that surround it. In
biology, differential equations are often used in population dynamics, to model the evolution and/or extinction
of a particular species (like people, animals, bacteria, or even viruses like HIV) (eg., Volterra Equations).
In finance, the stock market is often modeled via sets of coupled differential equations (e.g., Black-Scholes
equation). In physics, dfq's are everywhere { we've seen them in Cosmology (e.g., Friedmann's Equations,
non-linear structure growth and perturbation theory), Classical Dynamics (e.g., the orbits of planets, stars,
and galaxies as specialized N-body problems, hydrodynamics),and Radioactive Transfer. Most differential
equations are too complicated to write down a solution by hand (an "analytical solution"), so one has to revert
to numerics to find any kind of solution at all.
Numerical methods are commonly used for solving mathematical problems that are formulated in
science and engineering where it is difficult or even impossible to obtain exact solutions. Only a limited
number of differential equations can be solved analytically. Numerical methods, on the other hand, can give an
approximate solution to (almost) any equation. An ordinary differential equation (ODE) is an equation that
contains an independent variable, a dependent variable and derivatives of the dependent variable.

The MATLAB ODE solvers are written to solve problems of the form dx/dt =

F(t,x)

The Matlab ODE solvers are accesses by calling a function of the form [X,T]

= ode** (@F, TimeSpan,Xo,Options,P1,P2,P3)

@F A handle to a function which returns a vector


of rates of change

Timespan A row vector of times at which the solution


is needed OR a vector of the form
[start,end]
Xo A vector of initial values

Options (if omitted or set to [], the A data structure which allows the user to
default settings are used set various options associated with the ode
solver
P1,P2,P3.. These are additional arguments which will
be passed to @F

F must have the following form

Function [dx_dt] = F(t,x,P1,P2,P3…)

dx_dt = …

return

There are several different ode solvers supplied with matlab.

Solver Implicit/Explicit Accuracy

ode45 Explicit 4th order, medium accuracy

ode23 Explicit 2nd/3rd order, low accuracy

ode113 Explicit Very accurate 913th order)

ode15s Implicit Anything from 1st-5th order

ode23s Implicit Low accuracy (but may be


more stable than ode15s)

ode23tb Implicit Low accuracy (but may be


more stable than ode15s)

ODE45 (an explicit Runge-Kutta method) is efficient, but can become unstable with stiff systems.
This will manifest itself by the solver taking shorter and shorter time steps to compensate. The
solution will either take a long time, or the time step will be reduced to the point where machine
precision causes the routine to fail.

The problems of solving an ODE are classified into initial-value problems (IVP) and
boundary value problems (BVP), depending on how the conditions at the endpoints of the domain
are specified. All the conditions of an initial-value problem are specified at the initial point. On the
other hand, the problem becomes a boundary-value problem if the conditions are needed for both
initial and final points. The ODE in the time domain are initial-value problems, so all the conditions
are specified at the initial time, such as t = 0 or x = 0. For notations, we use t or x as an
independent variable.Some literatures use t as time for independent variable.

4.Resources:
Matlab

5.Procedure:
1.Though Matlab is primarily a numeric package, it can solve straightforward differential equations
symbolically. Suppose, for example, we want to solve the first order differential equation y’ = xy where y’
= dy/dx =y’(x).

2.We can use Matlab’s built-in dsolve(). The input for solving this problem in Matlab is given below:

>>y = dsolve(‘Dy = y*x’,’x’) where y’(x) must be written as Dy. If it is y” (x), same as d 2 y/ x 2 ,it
must be written as D2y.If it is y’’’(x), same as d 3 y/ x3 , it must be written as D3y. It is 4y’(x), same
as 4dy/dx, it must be written as 4*Dy. All in Java command window. Press enter and record the
results.

3.Notice in particular that MATLAB uses capital D to indicate the derivative and requires that the entire
equation appear in single quotes. MATLAB takes t to be the independent variable by default, so here x
must be explicitly defined as the independent variable. Alternatively, if you are going to use the same
equation a number of times, you might choose to define it as a variable, say eqn 1.

>>eqn1 = ‘Dy=y*x’;

>>y = dsolve(eqn1,’x’)

Press enter and record the results.

4.To solve an initial value problem, say, y’(x)=xy with y(1)=1 use

>>y =dsolve (eqn1,’y(1)=1’,’x’)

Press enter and record the results.

5.To plot the solution to get a rough idea of its behavior.

>>x = linspace(0,1,20);

>>z= eval(vectorize(y));

>>plot(x,z)
Press enter and record the results.

6.Suppose we want to solve and plot the solution to the second order equation

y”(x) + 8y’(x) + 2y(x) = cos(x) ; y(0) = 0 , y’(0)=1

7.The following MATLAB code suffices:

>>eqn2 = ‘D2y + 8*Dy + 2*y = cos(x)’;

>>inits2 = ‘ y(0)=0, Dy(0) = 1’;

>>y = dsolve(eqn2,inits2,’x’)

Press enter and see the results. Record the results.

>>z = eval(vectorize(y));

>>plot(x,z)

Press enter and record the results.

8.Suppose we want to solve and plot the solutions to the system of three ordinary differential
equations

x’(t) = x(t) + 2y(t) –z(t)

y’(t) = x(t) + z(t)

z’(t) = 4x(t) – 4y(t) + 5z(t)

To find a general solution, each equation is now braced in its own pair of (single) quotation marks:

>> [x,y,z] = dsolve(‘Dx = x +2*y-z’,’Dy = x + z’,’Dz = 4*x – 4*y + 5*z’)

Press enter and record the results. Notice that since no independent variable is specified,
MATLAB used its default, t.

With conditions:

>> inits = ‘x(0)=1, y(0)= 2, z(0)=3’;

>> [x,y,z] = dsolve(‘Dx = x +2*y-z’,’Dy = x + z’,’Dz = 4*x – 4*y + 5*z’,inits)


9.Plotting this solution can be accomplished as follows:

>> t = linspace (0,0.5,25);

>> xx = eval(vectorize(x));

>> yy = eval(vectorize(y));

>> zz = eval(vectorize (z));

>> plot (t,xx,t,yy,t,zz)

Press enter and record the results.

10.To find numerical solutions, MATLAB has a number of tools for numerically solving ordinary
differential equations. Built-in functions ode23 and ode45, which implement versions of Runge-
Kutta 2nd/3rd order and Runge-Kutta 4th and 5th order, respectively. Numerically approximate the
solution of the first order differential equation

dy/dx = xy 2 + y ; y(0) =1 on the interval x ∈ [0,0.5]


For any differential equation in the form y’ = f(x,y), we begin by defining the function f(x,y). For
single equations, we can define f(x,y) as an inline function

>> f = inline(‘x*y^2 + y’)

Press enter and record the results.

11.The basic usage for MATLAB’s solver ode45 is ode45(function, domain, initial condition). That is ,
we use

>>[x,y] = ode45(f,[0,0.5],1)

Press enter and record the results.

12.To plot the values

>>plot(x,y)

Press enter and record the results.

13.Choosing the partition. In approximating this solution, the algorithm ode 45 has selected a certain
partition [0,0.5] and MATLAB has returned a value of y at each point in this partition. It is often the case
that we would like to specify the partition of values on which MATLAB returns an approximation. For
example, we might only want to approximate y(0.1),y(0.2)…… y(0.5).We can specify this by entering
the vector values [0,0.1,0.2,0.3,0.4,0.5] as the domain in ode45. That is, we
use

>>xvalues = 0:.1:.5

Press enter and see the results. Record the results.

>>[x,y]=ode45(f,xvalues,1) Press

enter and record the results.

14.Several options are available for MATLAB’s ode45 solver, giving the user limited control over the
algorithm.Two important options are relative and absolute tolerance, respectively RelTol and AbsTol in
y is the
MATLAB. At each step of the ode45 algorithm, an error is approximated for that step. If k
approximation of y(x ) at step k, and e is the approximate error at this step, then MATLAB
k k chooses its
partition to insure

ek ≤ max(RelTol *y , AbsTol)
k

where the default values are RelTol=.001 and AbsTol=.000001. As an example for when we might want
to change these values, observe that if yk becomes large, then the error ek will be allowed to grow quite
large. In this case, we increase the value of RelTol. For the equation y’ = xy2 + y, with y(0)=1, the values
of y get quite large as x near 1. In fact, with the default error tolerances, we find that the command

>> [x,y] = ode45(f,[0,1],1);

Leads to an error message,caused by the fact that the values of y are getting too large as x nears 1.In
order to fix this problem,we choose a smaller value for RelTol

>>options = odeset(‘RelTol’,1e-10);

>>[x,y]=ode45(f,[0,1],1,options);

>>max(y)

Press enter and record the results.

15.Alternatively, we can solve the same ODE by first defining f(x,y) as an M-file firstode.m

function yprime = firstode(x,y);

% FIRSTODE: Computes yprime =x*y^2 + y

yprime = x*y^2 + y;

In this case, we only require one change in the ode45 command: we must use a pointer @ to
indicate the m-file. That is, we use the following commands

>>xspan=[0,.5];

>>y0=1;

>.[x,y]=ode23(@firstode,xspan,y0);

>>x

Press enter and record the results.

16.Solving a system of ODE in MATLAB is quite similar to solving a single equation, though since a
system of equations cannot be defined as an inline function we must define it as an M-file. Solve the
system of Lorenz equations,

dy/dt = -σx + σy

dy/dt = ρx – y -xz

dy/dt = -βz + xy

where for the purposes of this example, we will take σ = 10, β = 8/3, and ρ=28, as well as x(0)=-8,

y(0)=8, and z(0)=27. The MATLAB M-file containing the Lorenz equations appears below

function xprime = Lorenz(t,x);

%LORENZ: Computes the derivatives involved in solving the Lorenz equations

sig = 10;

beta = 8/3;

rho=28;

xprime=[-sig*x(1) + sig*x(2);rho*x(1)-x(2)-x(1)*x(3);-beta*x(3) +x(1)*x(2)];

17.Observe that x is stored as x(1), y is stored as x(2) and z is stored as x(3).Additionally, xprime is a
column vector,as is evident from semicolon following appearance of x(2).In the command window,we
type

>>x0=[-8 8 27];

>>tspan=[0,20];

>>[t,x]= ode45(@lorenz,tspan,x0)
Press enter and record the results.

18.The matrix has been denoted x in the statement calling ode45, and in general any coordinate of the
matrix can be specified as x(m,n) where m denotes the row and n denotes the column.What we will be
most interested in is referring to the columns x, which correspond with values of the components of the
system. Along these lines, we can denote all row or all x by a colon : . For example, x(:,1) refers to all
rows in the first column of the matrix x; that is, it refers to all values of our original x component. Using
this information, we can easily plot the Lorenz strange attractor, which is a plot of z versus x:

>>plot(x(:,1),x(:,3))

Press enter and record the results.

19.We can also plot each component of the solution as a function of t

>>subplot(3,1,1)

>>plot(t,x(:,1))

>>subplot(3,1,2)

>>plot(t,x(:,2)

>>subplot(3,1,3)

>>plot(t,x(:,3)

20.In analyzing system of differential equations, we often want to experiment with different parameter
values. For example, in studying the Lorenz equations we might want to consider the behavior as a
function of the values of σ,β and ρ. Of course, one way to change this is to manually re-open the M-file
Lorenz.m each time we want to try new values, but not only is a slow way to do it, it’s unwieldy to
automate it. What we can do instead is pass parameter values directly to our M-file
through the ode45 call statement.Alter Lorenz.m into lorenz1.m, the latter of which accepts a vector of
parameters that we denote p.

Function xprime = lorenz1(t,x,p);

%LORENZ ; Computes the derivatives involved in solving the Lorenz equations.

sig=p(1);beta=p(2);rho=p(3);

xprime=[-sig*x(1) + sig*x(2);rho*x(1)-x(2)-x(1)*x(3);-beta*x(3) +x(1)*x(2)];


21.We can now send parameter values with ode45

>>p=[10 8/3 28];

>>[t,x]=ode45(@lorenz1,tspan,x0,[],p)

Press enter and record the results.

22.The first step in solving a second (or higher) order ordinary differential equation in MATLAB is to
write the equation as a first order system. For the equation

y”(x) + 8y’(x) + 2y(x) = cos(x) ; y(0) = 0 , y’(0)=1

Taking y (x) = y(x) and y (x) = y’(x)


1 2

y ‘(x) = y (x)
1 2

y ‘(x) = -8y (x) -2y (x) + cos(x)


2 2 1 Proceed as

in Procedure 16.

23.Another class of ODE’s that often arise in applications are boundary value problems (BVP’s).
Consider ,for example, the differential

y” – 3y’ + 2y = 0

y(0) = 0

y(1)=10

where our conditions y(0)=0 and y(1) = 10 are specified on the boundary of the interval of

interest

interest x ∈ [0,1]. The first step in solving this type of equation is to write it as a first order system

with y = 1 and y = y’, for which we have


1 2

y ‘=y
1 2

y ‘ = -2y + 3y
2 1 2

24.We record this system in the M-file bvpexample.m

Function yprime = bvpexample(t.y)

%BVPEXAMPLE : Differential equation for boundary value problem example


yprime=[y(2); -2*y(1) + 3*y(2)];

25.Next , we write the boundary conditions as the M-file bc.m, which records boundary residues

Function res = bc(y0,y1)

%BC: Evaluates the residue of the boundary condition

Res=[y0(1);y1(1)-10];

By residue, we mean the left-hand side of the boundary condition once it has been set to 0.In this
case, the second boundary condition is y(1)=10, so its residue is y(1)-10, which is recorded in the
second component of the vector that bc.m returns The variables y0 and y1 represent the solution at
x=0 and at x=1 respectively, while the 1 in the parenthesis indicates the first component of the vector.
In the event that the second boundary condition was y’(1) = 10, we would replace y1(1)-10 with y1(2)-
10.

26.We are now in a position to begin solving the boundary value problem. In the following code, we
first specify a grid of x values for MATLAB to solve on and an initial guess for the vector that would be
given for an initial value problem [y(0),y’(0)].We solve the boundary value problem with MATLAB’s
built-in solver bvp4c.

>>sol = bvpinit(linspace(0,1,25),[0 1]);

>>sol = bvp4c(@bvpexample,@bc,sol);

>>sol.x

Press enter and record the results.

27.We observe that in this case MATLAB returns the solution as a structure whose first component
sol.x simply contains the x values we specified.The second component of the structure sol is sol.y,
which is the matrix containing as its first row values of y(x) at the grid points we specified, and as its
second row the corresponding values of y’(x).

28.For the first order differential equation where the highest derivative of the function is one :

From calculus, we all know that the solution to this equation is y(t) = Ce-5t, where C is some
arbitrary constant. If we specified an initial condition (say, y(0)= 1.43), then our analytical solution
would be y(t) = 1.43 e-5t.

29.In Matlab, we can use numerical integration techniques to solve differential equations like this
one.For the differential equation in Procedure No. 28, you would make two .m files (one will be a
function file, and the other will be a script that calls the function file).Using Matlab editor, create the file
below and save it as ilovecats.m.

Function dy= ilovecats(t,y)

dy = zeros(1,1);

dy = -5 * y;

Now create another file and save it as happyscript.m.

[t,y]=ode45(‘ilovecats’,[0,10],1.43);

plot(t,y,’-‘)

xlabel(‘time’);

ylabel(‘y(t)’);

title(‘This plot dedicated to kitties everywhere’);

30.Type ‘help ode45’ at the prompt. As a general rule of thumb, ode45 is the best function to apply as a
first try for most problems.Ode 45 is an explicit (4,5) Runge-Kutta integrating technique.At Matlab
prompt, type happyscript.m. Press enter and record the results.

31.A 2nd order differential equation is one where the highest derivative term is of order 2:

To integrate this in Matlab, we have to rewrite this single equation into a set of 2 first order differential
equations. The reason behind this is because all Runge-Kutta solvers, including ode45, are built to only
integrate over equations of the type dy/dt = f(t,y).We can easily do this by hand, by setting:

dy / dt = y
1 2

dy /dt = - ω2 sin(y )
2 1

where y (t) represents θ(t), and y (t) represents dθ/dt.


1 2

32.Create an m file and save it as pendulumcats.m


function dy = pendulumcats(t,y) dy =

zeros(2,1);

omega = 1; dy(1) =

y(2);

dy(2) = -omega*omega*sin(y(1));

33.Create another m file and save it as pendulumcatscript.m.

[t,y] = ode45(‘pendulumcats’,[0,25],[1.0 1.0 ]);

plot(t,y(:,1),’-‘); xlabel

(‘time’); ylabel(‘y_{1}

(t)’);

title(‘\theta (t)’);

figure; plot(t,y(:,2),'-');
xlabel('time');
ylabel('y_{2}(t)');
title('d \theta / dt (t)');

figure;
plot(y(:,1),y(:,2),'-');
xlabel('\theta (t)'); ylabel('d \
theta / dt (t)');
title('Phase Plane Portrait for undamped pendulum');

34.The change in the function file, pendulumcats.m, is the initialization part in line two – dy = zeros(2,1);
This is because we now have two equations we are integrating over (y1(t) and y2(t), so Matlab will store
their data into a matrix with two columns.If you just type y at your Matlab prompt, you will get two
columns of data that display.The first column is the set of y(t) (or y1(t)), whose data points you can alone
access by typing y(:,1) at your prompt.The second column of y are the datapoints for y2(t), which you
can access by themselves by typing y(:,2) at your prompt.
35.Run the commands. Record the results.

36.Back in the day, scientists didn't know as much, and thought they could accurately predict the
weather once computers became more powerful. This is because weather people used many sets of
differential equations to model the weather, and it took a long time to integrate those equations (keep in
mind that awesome things like Matlab weren't around in the 50s and 60s { people still used slide rulers
and tables to calculate many things, and the computers that were available back in the day had very
little computing power, so integrating some ODEs, like those in the pendulum example, would take a
crazy long time for the computer to chug through!).
Edward Lorenz was a mathematician and weather forecaster for the US Army Air Corps, and
later an MIT professor. For many years, he was interested in solving a simple set of 3 coupled
differential equations just because he wanted to find out what the weather would be like during the next
week." These equations are called the Lorenz Equations, and were derived from simplified equations
of convection rolls rising in the atmosphere. They are pretty simple and can be expressed as:
dx/dt = -Px + Py
dy/dt = rx – y – xz
dz/dt = xy –bz
where P, r and b are all constants ( P represents the Prandtl number, and r is the ratio of Rayleigh
number to the critical Rayleigh number), and x, y and z are all functions of time. We can use Matlab to
look at trajectories (i.e. plots of x(t) vs time, y(t) vs. time and z(t) vs. time) or phase plane portraits (i.e.
x(t) vs y(t), x(t) vs z(t), and/or y(t) vs z(t) for this system.
37.The function file lorenz.m) should look like:

function dy = lorenz(t,y)

dy = zeros(3,1); P=10;

r=28;

b=8/3 dy(1)=P*(y(2)-

y(1));

dy(2)=-y(1)*y(3) + r*y(1) – y(2);

dy(3) = y(1)*y(2) – b*y(3);

38.The script file lorenzscript.m should look like:

[t,y] = ode45(‘lorenz’, [0 250], [1.0 1.0 1.0];

subplot(221)
plot (y(:,1),y(:,2),’-);

xlable(‘x(t)’);

ylabel(‘y(t)’);

title(‘ Phase Plane Portrait for Lorenz attractor – y(t) vs x(t)’);

subplot(222)

plot(y(:,1),y(:,3),’-‘);

xlabel(“x(t)”);

ylabel(‘ z(t)’);

title(‘Phase Plane Portrait for Lorenz attractor – z(t) vs x(t)’);

subplot(223)

plot(‘ y(:,2),y(:,3,)’-’);

xlabel(‘y(t)’);

ylabel(‘z(t)’);

title(‘Phase Plane Portrait for Lorenz attractor – z(t) vs y(t)’);

suplot(224)

plot(0,0,’.’);

xlabel(‘Edward Lorenz’);

ylabel(‘Kitties’); title(‘Kitties

vs Lorenz’);

39.Run the script.It should take a little while to run. Record the results.

40.To make a 3D plot ,add the following to the bottom of the script.
plot3(y(:,1),y(:,2),y(:,3),’-‘)

xlabel(‘x(t)’);

ylabel(‘y(t)’);

zlabel(‘z(t));

title(‘3D phase portrait of Lorenz Attractor’);

Run the script and record the results.

41.The Matlab code to solve dy/dx = y(x) with no initial conditions is shown below:

ODE1= ‘dy = y’

ODE1solved=dsolve(ODE1, ‘x’)

Record the results.

42.To specify initial conditions for the ODE is as follows :

initConds = ‘y(0) = 5’

ODE1solved = dsolve(ODE1, initConds,’x’)

Record the results.

43.Matlab makes plotting functions easy. To plot the function: x

= -5:0.01:5;

y_values = eval(vectorize(ODE1solved); plot(x,y_values)

Record the results.

44.The same ideas apply to higher ODEs. To solve a second-order ODE with initial values at y(0)
and
y’(0).Then plot the function in the range [-5,5] ODE2 =

‘3*D2y – Dy + 6*y = 6 *sin(t) + 2 *cos(t)’ initConds =

‘y(0)=1, Dy(0)=2’

ODE2solved = simplify)dissolve(ODE2,initConds));

pretty(ODE2solved)
t=-5 :0.01:5;

y_values=eval(vectorize(ODE2solved));

plot(t,y_values)

Record the results.

45.Systems of ODEs can be solved in a similar manner.One simply defines each equation as before. The
only thing that changes is the return of the dsolve function, which is now an array containing the explicit
solutions of each of the functions in the system

sysODE1 = ‘Dx = 2*x + 3*z’

sysODE2 = ‘Dy = 6*z – y’

sysODE3 = ‘Dz = 3*y – 12*x’

initConds = ‘x(1) = 5, y(2)=3, z(9) = 0’

[x,y,z] = dsolve(sysODE1,sysODE2,sysODE3,initConds)

Record the results

Course: Laboratory Exercise No.:


Group No.: Section:
Group Members: Date Performed:
Date Submitted:
Instructor:

6.Data and Results:

Procedure No. Matlab Result


2 y=
C4*exp(2*x^2)

3 eqn1 =
Dy=4*y*x

4 y=
exp(-2)*exp(2*x^2)
5

7 y=
exp(-x)/4 - (7*exp(-3*x))/20 + cos(x)/10 + sin(x)/5
8 Error using sym>convertExpression (line 1391)
Conversion to 'sym' returned the MuPAD error: Error: Character '–' is invalid. [line 1,
col 62]

Error in sym>convertChar (line 1302)


s = convertExpression(x);

Error in sym>convertCharWithOption (line 1285)


s = convertChar(x);

Error in sym>tomupad (line 999)


S = convertCharWithOption(x,a);

Error in sym (line 142)


S.s = tomupad(x,'');

Error in dsolve>mupadDsolve (line 327)


sys = [sys_sym sym(sys_str)];

Error in dsolve (line 189)


sol = mupadDsolve(args, options);

C12*exp(t) + C10*exp(2*t) + C11*exp(3*t)

CORRECT

x=
10*exp(2*t) - 4*exp(3*t) - 4*exp(t)

y=
4*exp(3*t) - 5*exp(2*t) + 4*exp(t)

z=
16*exp(3*t) - 20*exp(2*t) + 8*exp(t)

10 f=
Inline function:
f(x,y) = 2*x*y^2+ y
11 x=

0
0.0125
0.0250
0.0375
0.0500
0.0625
0.0750
0.0875
0.1000
0.1125
0.1250
0.1375
0.1500
0.1625
0.1750
0.1875
0.2000
0.2125
0.2250
0.2375
0.2500
0.2625
0.2750
0.2875
0.3000
0.3125
0.3250
0.3375
0.3500
0.3625
0.3750
0.3875
0.4000
0.4125
0.4250
0.4375
0.4500
0.4625
0.4750
0.4875
0.5000
y=

1.0000
1.0127
1.0260
1.0397
1.0540
1.0688
1.0843
1.1004
1.1171
1.1346
1.1527
1.1717
1.1915
1.2121
1.2337
1.2563
1.2800
1.3047
1.3307
1.3580
1.3866
1.4167
1.4484
1.4818
1.5170
1.5543
1.5937
1.6355
1.6798
1.7269
1.7771
1.8307
1.8879
12

13 xvalues =
0 0.1000 0.2000 0.3000 0.4000 0.5000
x=
0
0.1000
0.2000
0.3000
0.4000
0.5000
y=

1.0000
1.1171
1.2800
1.5170
1.8879
2.5415
14 ERROR
x=
0
0.249999750000000
0.499999500000000
0.749999250000000
y=
1.000000000000000
1.333333067684270
1.999997861816373
4.000188105612917

options = AbsTol: [] BDF: [] Events: [] 7 InitialStep: [] Jacobian: []


JConstant: [] JPattern: [] Mass: [] MassConstant: [] MassSingular: []
MaxOrder: [] MaxStep: [] NonNegative: [] NormControl: [] OutputFcn: []
OutputSel: [] Refine: [] RelTol: 1.000000000000000e-06 Stats: []
Vectorized: [] MStateDependence: [] MvPattern: [] InitialSlope: []
y=

8.5808 × 105
15 x=
0
0.0500
0.1000
0.1500
0.2000
0.2500
0.3000
0.3500
0.4000
0.4500
0.5000

17 t=
0
0.0028
0.0056
0.0084
0.0112
0.0251
0.0391
0.0530
0.0670
0.0854
0.1039
0.1223
0.1408
0.1565
0.1723
0.1880
0.2037
0.2224
1.6014
18

19
21 t=
0
0.0028
0.0056
0.0084
0.0112
0.0251
0.0391
0.0530
0.0670
0.0854
0.1039
0.1223
0.1408
0.1565
0.1723
0.1880
0.2037
0.2224
0.2410
0.2597
0.2784
0.3005
0.3226
0.3447
0.3668
0.3933
0.4198
0.4463
0.4728
0.5035
0.5342
0.5649
26 ans =

Columns 1 through 15

0 0.0417 0.0833 0.1250 0.1667 0.2083 0.2500 0.2917


0.3333 0.3750 0.4167 0.4583 0.5000 0.5417 0.5833

Columns 16 through 25

0.6250 0.6667 0.7083 0.7500 0.7917 0.8333 0.8750 0.9167 0.9583


1.0000
29

33

34
35

37-38
39

40
ODE1solved =

C9*exp(x)
41
ODE1solved =

5*exp(x)
42
43-44 ODE2solved =

cos((71^(1/2)*t)/6)*((3*cos(t - (71^(1/2)*t)/6))/5 + (3*cos(t + (71^(1/2)*t)/6))/5 + (4*sin(t


- (71^(1/2)*t)/6))/5 + (4*sin(t + (71^(1/2)*t)/6))/5 + (22*71^(1/2)*cos(t -
(71^(1/2)*t)/6))/355 - (22*71^(1/2)*cos(t + (71^(1/2)*t)/6))/355 + (21*71^(1/2)*sin(t -
(71^(1/2)*t)/6))/355 - (21*71^(1/2)*sin(t + (71^(1/2)*t)/6))/355) -
(exp(t/6)*cos((71^(1/2)*t)/6))/5 + sin((71^(1/2)*t)/6)*((4*cos(t - (71^(1/2)*t)/6))/5 -
(4*cos(t + (71^(1/2)*t)/6))/5 - (3*sin(t - (71^(1/2)*t)/6))/5 + (3*sin(t + (71^(1/2)*t)/6))/5 +
(21*71^(1/2)*cos(t - (71^(1/2)*t)/6))/355 + (21*71^(1/2)*cos(t + (71^(1/2)*t)/6))/355 -
(22*71^(1/2)*sin(t - (71^(1/2)*t)/6))/355 - (22*71^(1/2)*sin(t + (71^(1/2)*t)/6))/355) +
(13*71^(1/2)*exp(t/6)*sin((71^(1/2)*t)/6))/355

/ cos(t - #1) 3 cos(t + #1) 3 sin(t - #1) 4 sin(t + #1) 4 sqrt(71) cos(t - #1) 22
sqrt(71) cos(t + #1) 22
cos(#1) | ------------- + ------------- + ------------- + ------------- + ----------------------- -
-----------------------
\ 5 5 5 5 355 355

sqrt(71) sin(t - #1) 21 sqrt(71) sin(t + #1) 21 \ exp(t/6) cos(#1) / cos(t


- #1) 4 cos(t + #1) 4 sin(t - #1) 3
+ ----------------------- - ----------------------- | - ---------------- + sin(#1) | ------------- -
------------- - -------------
355 355 / 5 \ 5 5
5

sin(t + #1) 3 sqrt(71) cos(t - #1) 21 sqrt(71) cos(t + #1) 21 sqrt(71) sin(t -
#1) 22 sqrt(71) sin(t + #1) 22 \
+ ------------- + ----------------------- + ----------------------- - ----------------------- -
----------------------- |
5 355 355 355 355
/

sqrt(71) exp(t/6) sin(#1) 13


+ ----------------------------
355

where

sqrt(71) t
#1 == ----------
6

7.Conclusion:

8.Assessment (Rubric for Laboratory Performance):


T I P – V P A A –
0 5 4 D

TECHNOLOGIC

CRITERIA BEGINNER ACCEPTABLE PROFICIENT

1 2 3

I. Laboratory Skills

Manipulative
Members do not demonstrate Members Members always demonstrate
needed skills. needed skills.
Skills
occasionally demonstrate
needed skills.
Members are able to set-up
Members are unable to set-up Members are able to set-up
Experimental Set-up the material with minimum
the materials. the materials with supervision.
supervision.
Members
Member do not Members always
Process Skills
demonstrate targeted demonstrate targeted
occasionally demonstrate
process skills. process skills.
targeted process skills.
Members do not follow Members follow Members follow
Safety Precautions
safety precautions. safety safety
precautions most of the precautions at all times.
II. Work Habits

Time Members finish ahead of


Members do not finish on Members finish on time
Management / time with complete data
time with incomplete data. with incomplete data.
Conduct and time to revise data.

Members do not know Members have defined Members are on tasks


their tasks and have no responsibilities most of the and have defined
Cooperative
defined responsibilities. time. Group conflicts are responsibilities at all times.
cooperatively managed Group conflicts are
and Teamwork
Group conflicts have to be most of the time. cooperatively managed at
settled by the teacher. all times.
Clean and orderly Clean and orderly
Neatness Messy workplace during
workplace with occasional workplace at all times
and after the experiment.
mess during and after the during and after the
and Orderliness
experiment. experiment.
Ability to Members require Members require Members do not need to
do supervision by the teacher. occasional supervision by be supervised by the
independent work the teacher. teacher.

TOTAL SCORE
Other Comments / Observations:

TotalScore
24
RATING = ( )x
100%

Evaluated by:

Printed Name and Signature of Faculty Member Date: _

You might also like