Solving a System of 2 ODES with Interval conditions

AI Thread Summary
The discussion revolves around solving a system of two ordinary differential equations (ODEs) using MATLAB, but the user is encountering issues obtaining numerical solutions. The equations presented involve variables x and y with specific boundary conditions. A key point raised is a discrepancy between the ODEs stated at the beginning and those implemented in the MATLAB code, particularly regarding the signs and terms in the dy/dt equation. Despite attempts to use the dsolve function, the user receives warnings indicating that an explicit solution could not be found. Clarifying the equations and ensuring consistency in the code is essential for resolving the issue.
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
 

Similar threads

Back
Top