Wolfram mathematica mathematica ndsolve:无限表达式1/0。遇到

Wolfram mathematica mathematica ndsolve:无限表达式1/0。遇到,wolfram-mathematica,differential-equations,Wolfram Mathematica,Differential Equations,我试图用ndsolve来计算液体表面以角速度w旋转时的形状(包括表面张力的影响),但在r=0时似乎存在奇点 \[Gamma]0 := 0.42541 \[Gamma]1 := 0.456 g := 9.81 \[Rho] := 1000.00 zInit := 1 r0 := 1 w := 2 sol = NDSolve[{\[Gamma]0*(z'[r]*(1 + (z'[r])^2) + r*z''[r]) == (r*(1 + (z'[r])^2)^(3/2))*(2*\[

我试图用ndsolve来计算液体表面以角速度w旋转时的形状(包括表面张力的影响),但在r=0时似乎存在奇点

\[Gamma]0 := 0.42541
\[Gamma]1 := 0.456
g := 9.81
\[Rho] := 1000.00
zInit := 1
r0 := 1
w := 2
sol = NDSolve[{\[Gamma]0*(z'[r]*(1 + (z'[r])^2) + 
       r*z''[r]) == (r*(1 + (z'[r])^2)^(3/2))*(2*\[Gamma]1/
         r0 + \[Rho] (g*(z[r] - zInit) - 1/4*w^2*(r0^2 - 2*r^2))), 
   z'[0] == 0, z'[r0] == Cos[140 Degree]}, z[r], {r, 0, r0}]
输出:

Power::infy: Infinite expression 1/0. encountered. >>
Infinity::indet: Indeterminate expression 0. ComplexInfinity encountered.
Power::infy: Infinite expression 1/0. encountered. >>
Infinity::indet: "Indeterminate expression 0.` ComplexInfinity encountered. 
NDSolve::ndnum: Encountered non-numerical value for a derivative at r == 0.`. 
我试着用一个像10^-4这样的小数字来替换0,但随后图表以10^40的顺序出现了可笑的结果。我尝试过将初始条件更改为(z[r0]==0,z'[r0]==Cos[140度]),也尝试过刚性切换和设置起点,但这些似乎都没有帮助(图如下图所示)。有什么帮助吗

一些失败的项目:

\[Rho] := 1000.00
zInit := 1
r0 := 1
w := 2
sol = NDSolve[{\[Gamma]0*(z'[r]*(1 + (z'[r])^2) + 
       r*z''[r]) == (r*(1 + (z'[r])^2)^(3/2))*(2*\[Gamma]1/
         r0 + \[Rho] (g*(z[r] - zInit) - 1/4*w^2*(r0^2 - 2*r^2))), 
   z[r0] == 0, z'[r0] == Cos[140 Degree]}, z[r], {r, 0, r0}, 
  Method -> "StiffnessSwitching"]