Solving a System of 2 ODES with Interval conditions

Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
1 reply · 2K views
Ketav
Messages
4
Reaction score
0

Homework Statement


I am trying to solve a system of 2 ordinary differential equations using matlab. However, I am not able to get numerical solutions from the code despite having keyed in all possible solutions.

Homework Equations


The equations I am given are:

dx/dt=A(x/t)+By
dy/dt=C(x/t^2)+D(y/t)

and the boundary conditions are:

y(1)=0; y(1.2)=-100E6

The Attempt at a Solution


Mod note: Added code tags.
My code so far:
Matlab:
%Mechanical Properties of Material
E=200e9;
nu=0.3;
P=100E6;
%Constants A,B,C,D in the Equations
a11= (1/E);
a12= (-nu/E);
a33= (1/E);
A= (a12)/(a11+a12);
B= ((a33)-((2*a12^2)/(a11+a12)));
C= (a11)/(a11^2-a12^2);
D= (2*a12+a11)/(a11+a12);
%Defining the System of 2ODES
syms x(t) y(t)
eqns = [diff(x,t)==A*(x/t)+B*y, diff(y,t)==-C*(x/t^2)-D*y];
cond = [y(1) == 0, y(1.2)==-P];
withSimplifications = dsolve(eqns, cond)
withoutSimplifications = dsolve(eqns, cond, 'IgnoreAnalyticConstraints', false)
[xSol(t), ySol(t)] = dsolve(eqns)

The answer is get is

Warning: Explicit solution could not be found.
> In dsolve (line 201)
In IsotropicThickWallCylinder (line 18)

xSol(t) =

[ empty sym ]ySol(t) =

[ empty sym ]
[

Would really appreciate some help.
 
Last edited by a moderator:
Ketav said:

Homework Statement


I am trying to solve a system of 2 ordinary differential equations using matlab. However, I am not able to get numerical solutions from the code despite having keyed in all possible solutions.

Homework Equations


The equations I am given are:

dx/dt=A(x/t)+By
dy/dt=C(x/t^2)+D(y/t)

and the boundary conditions are:

y(1)=0; y(1.2)=-100E6

The Attempt at a Solution


Mod note: Added code tags.
My code so far:
Matlab:
%Mechanical Properties of Material
E=200e9;
nu=0.3;
P=100E6;
%Constants A,B,C,D in the Equations
a11= (1/E);
a12= (-nu/E);
a33= (1/E);
A= (a12)/(a11+a12);
B= ((a33)-((2*a12^2)/(a11+a12)));
C= (a11)/(a11^2-a12^2);
D= (2*a12+a11)/(a11+a12);
%Defining the System of 2ODES
syms x(t) y(t)
eqns = [diff(x,t)==A*(x/t)+B*y, diff(y,t)==-C*(x/t^2)-D*y];
cond = [y(1) == 0, y(1.2)==-P];
withSimplifications = dsolve(eqns, cond)
withoutSimplifications = dsolve(eqns, cond, 'IgnoreAnalyticConstraints', false)
[xSol(t), ySol(t)] = dsolve(eqns)

The answer is get is

Warning: Explicit solution could not be found.
> In dsolve (line 201)
In IsotropicThickWallCylinder (line 18)

xSol(t) =

[ empty sym ]ySol(t) =

[ empty sym ]
[

Would really appreciate some help.
There's a discrepancy between the system of DEs you wrote at the top of your post, and what you're using in your MATLAB code.

At the top of your post you have this:
Ketav said:
dx/dt=A(x/t)+By
dy/dt=C(x/t^2)+D(y/t)
but in your code you have this:
Matlab:
eqns = [diff(x,t)==A*(x/t)+B*y, diff(y,t)==-C*(x/t^2)-D*y];
The equation for dx/dt is the same in both places, but the equations for dy/dt are different (different signs on the right side, and y/t in one place, but only y in the other).

Other than this, I don't see anything obviously wrong with your code. Presumably you have looked at the documentation for dsolve here: https://www.mathworks.com/help/symbolic/dsolve.html