How to solve a system of third order non-linear differential equations [SOLVED]

12 次查看(过去 30 天)
Hi to everyone,
I'm dealing with a system of third order non-linear differential equations that governs the equilibrium of a circular plate under large displacements hypotesis.
The system is composed by the following equations:
So do anyone have some suggestion on how to solve numerically these equations?
I know that Matlab have the ODE tool, with ode45 or ode113, to solve numerically system of differential equations, but i don't know how to fit the solution used for that problem into my actual problem. I have tried to look in similar solutions, but also in that case i can't find anything that fit well in my case.
If you have any suggestion, you are welcomed!
EDIT: It seems that i was not too much clear before, so i have to specify that all the derivatives are about the radius 'r' and they are not derivatives of time 't'. So also the 'r' in the equations is a variable, not a datum. The solution have to be found on the radius of the plate, not in time domaine. So the solution span have to be something like:
r_span = [0:R];
Better if the integration step is smaller like R/100 or R/1000. Thanks!
EDIT2: I also have the problem to set different boundary conditions on different point of the plate, so i didn't have an unique 'initial condition' because i can express bcs on the edge, where u=w=u'=w'=0, and in the center of the plate where w''=w'''=0. How can i handle this situation of mixed points on where to apply bcs?

回答(1 个)

Stephan
Stephan 2019-6-22
编辑:Stephan 2019-6-22
% create a 1.order system and a function handle
syms u(t) w(t) r h nue
eq(1) = diff(u,t,2) == -1/r*diff(u,t)+u/r-(1-nue)/2*r*(diff(w,t))^2-diff(w,t)*diff(w,t,2);
eq(2) = diff(w,t,3) == -1/r*diff(w,t,2)+1/r^2*w+12/h^2*diff(w,t)*(diff(u,t)+nue*u/r+1/2*(diff(w,t))^2);
[Eqs,Vars] = odeToVectorField(eq);
fun = matlabFunction(Eqs,'Vars',{'t','Y','r','h','nue'});
% calculate numerical
r = 4;
h = 2.5;
nue = 0.3;
tspan = [0 10];
initial_values = [0 0 1 0 1];
[tsol,ysol] = ode45(@(t,Y)fun(t,Y,r,h,nue),tspan,initial_values);
plot(tsol, ysol)
  40 个评论
Alessandro Olivieri
编辑:Alessandro Olivieri 2019-6-29
Exactly it is fixed for t=0! Ok maybe the drop is not the best example, but c'mon guys in physics there are plenty of situation where you could put condition on the boundary for the n-th order derivative of an n-th order differential equation! Almost all differential equation allow that. Motion, wave, elasticity, etc. It have no physical sense to be unable to set a bc on the n-th order derivatives! And neither a mathematical sense, since the problem stay well posed!
Are you coder or mathematicians/physicist? That are basic things of the first year of university (at least basic physics, just little more advanced maths).
Bjorn Gustavsson
Bjorn Gustavsson 2019-7-1
Alessandro, show me one example, laid out properly where this is done, and not due to symmetry (in your circular geometry) or "material change". I cannot recall seeing that in any of the problems I've encountered. For the heat-equation I've seen fixed boundary temperature, fixed gradiend and fixed heat-flux, but never anything about fixed .

请先登录,再进行评论。

产品


版本

R2018b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by