MathWorks > Matlab

How do I solve two Ordinary Differential equations using Matlab

(1/1)

**kimsel**:

I want to solve a series of ordinary differential equations (ODE). Both are first order.

Here are the two differential equations:

dx/dt = 5.18(1-x)/T -->Equation - 1

dT/dt = 3.165(1-x)+0.4(300-T) -->Equation - 2

I want to solve them using Matlab.

Thank you.

**pitney1**:

In the Matlab editor write the following code:

--- Code: ---function yp = programs(t,y)

xx=y(1);

tt=y(2);

yp1=5.18*(1-xx)/tt;

yp2=3.165*(1-xx)+0.4*(300-tt);

yp=[yp1;yp2];

--- End code ---

Save this file as programs.m

Then add it to the path by clicking the run button.

Now to solve the equations type the following code in the workspace window:

[t,y]=ode45(@programs,[0 5], [0,20])

[0 5] is the initial and final value of time (assuming that you are differentiating with respect to time). [0,20] is the initial values of the variables: x and T.

To plot the results, you can use the plot function. Type the following code in the workspace window:

plotyy(t,y(:,1),t,y(:,2));

**vuminhky**:

Now, i am needing to solve equations system:

1.05*x" + 1.155*x' + 133.333*x + 0.043*y" = 0

0.86*x" + y" + 0.254*y' + 161.333*y = 0

With conditions: x(0) = 0.015; x'(0) = 0;

I has used commands as:

>> a = 1.05;

>> b = 1.155;

>> c = 133.333;

>> d = 0.043;

>> e = 0.86;

>> f = 1;

>> g= 0.254;

>> h = 161.333;

>> syms x y t;

>> [x,y] = dsolve('a*D2x + b*Dx + c*x + d*D2y = 0, e*D2x + f*D2y + g*Dy + h*y = 0' , 'x(0) = 0.015,Dx(0)=0' , 't')

but error, i don't know why, i hope that everyone can help me. Thank you so much

Navigation

[0] Message Index

Go to full version