I am having a problem with with NDSolve
.
Background
There is a fast-moving rope in closed path. The variables are:
T is tension.
a is angle beetwen rope and gorizontal plane.
s is curvelinear coordinates [0,1] (0 - the beggining of the rope, 1 - the ending of the rope).
Dr is drag coefficient.
W is weight coefficient.
My model gives the following differential equations for T, a and s:
D[T[s] Sin[a[s]], s] == W + Dr Sin[a[s]],
D[T[s] Cos[a[s]], s] == Dr Cos[a[s]],
Moreover, boundary conditions comes from equation for beginning and ending of the rope. x[0] = x[1] = 0, y[0] = y[1] = 0
, where x[s]
, y[s]are coordinates of point on the rope with curve distance for the beginning
s`. It means, that ending and beginning of the rope are in the same place.
Differential equations for coodinates x[s], y[s]
are quite easy.
(Tan[a[s]])/Sqrt[1 + Tan[a[s]]^2] == D[y[s], s],
1/Sqrt[1 + Tan[a[s]]^2] == D[x[s], s],
x[0] == 0,
y[0] == 0,
x[1] == ?,
y[1] == ?
Problem
I've solved it, but solution is unreal and contradicts the boundary conditions.
Mathematica's solution plotted with ParametricPlot
looks like this:
Fig.1 Obtained soltion
The rope should be closed, but it's not. And it should look like this:
Fig.2 Shape of rope in dependence of Dr/W
Please, help. The final code is: ``` x[s] =. y[s] =. NumSol = Block[{? = $MachineEpsilon}, With[{Dr = 9.9, W = 8}, NDSolve[ {D[T[s] Sin[a[s]], s] == W + Dr Sin[a[s]], D[T[s] Cos[a[s]], s] == Dr Cos[a[s]], (Tan[a[s]])/Sqrt[1 + Tan[a[s]]^2] == D[y[s], s], 1/Sqrt[1 + Tan[a[s]]^2] == D[x[s], s], x[?] == 0, y[?] == 0, x[1 - ?] == ?, y[1 - ?] == ?}, {T, a, x, y}, {s, ?, 1 - ?}, Method -> {"StiffnessSwitching", "NonstiffTest" -> False}]]]
ParametricPlot[{x[s], y[s]} /. NumSol // Evaluate, {s, 0, 1}, PlotRange -> Automatic, AspectRatio -> 1, AxesLabel -> {"x", "y"}] ```