Solving a System of 2 ODES with Interval conditions

Click For Summary
SUMMARY

The forum discussion centers on solving a system of two ordinary differential equations (ODEs) using MATLAB's symbolic toolbox. The user encounters issues obtaining numerical solutions despite correctly implementing the equations and boundary conditions. The equations are defined as dx/dt=A(x/t)+By and dy/dt=C(x/t^2)+D(y/t), with boundary conditions y(1)=0 and y(1.2)=-100E6. A critical discrepancy is identified between the equations stated and the code used, particularly in the formulation of dy/dt, which affects the solution process.

PREREQUISITES
  • Familiarity with MATLAB's symbolic toolbox
  • Understanding of ordinary differential equations (ODEs)
  • Knowledge of boundary value problems in differential equations
  • Basic concepts of mechanical properties relevant to the equations (e.g., Young's modulus, Poisson's ratio)
NEXT STEPS
  • Review MATLAB's dsolve function documentation for advanced usage
  • Learn about MATLAB's numerical solvers like ode45 for solving ODEs
  • Study the implications of boundary conditions on ODE solutions
  • Explore error handling and debugging techniques in MATLAB for symbolic computations
USEFUL FOR

Students and professionals in engineering and applied mathematics, particularly those working with differential equations and MATLAB for numerical analysis and simulations.

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

  • · Replies 13 ·
Replies
13
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 10 ·
Replies
10
Views
3K
  • · Replies 2 ·
Replies
2
Views
4K
  • · Replies 4 ·
Replies
4
Views
3K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 10 ·
Replies
10
Views
2K
Replies
3
Views
2K
  • · Replies 2 ·
Replies
2
Views
8K
  • · Replies 2 ·
Replies
2
Views
2K