Two-Point Boundary Value Problem
显示 更早的评论
Hi there, I am currently trying to solve a two point boundary value problem for a system of 2 ordinary linear differential equation.
dx/dt=A(x/t)+By dy/dt=C(x/t^2)+D(y/t)
B.C y at 1=10 and y at 2=0
I have terrible matlab experience and knowledge.
This is my code so far (It doesnt work)
if true
% %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)
t=1;
eqns = [diff(x,t)==A*(x/t)+B*y, diff(y,t)==-C*(x/t^2)-D*y];
cond = [y(0) == 0, y(1.2)==-P];
withSimplifications = dsolve(eqns, cond)
withoutSimplifications = dsolve(eqns, cond, 'IgnoreAnalyticConstraints', false)
[xSol(t), ySol(t)] = dsolve(eqns, cond)
end
Would anyone be able to give me any solutions to this problem?
6 个评论
Torsten
2016-12-2
We already told you several times that your equations don't permit an analytical solution (so "dsolve" is not the appropriate tool) and that you should use a numerical integrator (bvp4c or bvp5c) instead.
Why don't you follow the advice ?
Best wishes
Torsten.
Ketav Majumdar
2016-12-2
Torsten
2016-12-2
Then I suggest you try "dsolve" for the resulting Cauchy-Euler equation for x (or y).
I think MATLAB (like me) does not recognize that your system leads to this equation form.
Best wishes
Torsten.
Torsten
2016-12-2
Maybe
helps.
Best wishes
Torsten.
Bill Greene
2016-12-3
Exactly what problem did you have solving these equations with bvp4c? Can you post your code using bvp4c? (I would have thought it could easily solve this system.) Beyond that, the description of your boundary conditions in the original post don't appear to be consistent with the cond variable you pass to dsolve. Can you clarify precisely the problem you are trying to solve?
Torsten
2016-12-5
with
U=2-D-A and V=-D+A*D-B*C
gives the solution for y.
Then
x = 1/C*t^2*dy/dt-D/C*t*y
gives the solution for x.
Best wishes
Torsten.
回答(1 个)
Tamir Suliman
2016-12-3
You will have to differneitate then solve Since
x'=A(x/t)+By --- differnetiate A(x/t)+By for y relative to t
Y' = A*(x *-1/t^2 +1/t*x' ) + BY'
at t= 1 Y =10 at t =2 y = 0
(1-B)*C(x/t^2) + D (y/t) = A*(x *-1/t^2 +1/t*x' )
sub y =10 then solve for t =1 again sub y = 0 then solve for t =2
then use diff and dsvolve with t = 1 and t =2
类别
在 帮助中心 和 File Exchange 中查找有关 Numeric Solvers 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!