我正在尝试评估我分段定义的函数。我需要对一个变量进行积分,然后对另一个变量求导(变量是独立的)。但是,我定义函数的方式导致mathematica 抛出错误或无限求值。我相信导数函数不喜欢积分函数的输出格式,反之亦然,当我厌倦了颠倒步骤的顺序时。被积函数不是手动分析的,所以我需要将一个的输出通过管道传输到另一个。谁能告诉我出了什么问题?
\[Theta] = 30 Degree;
d = 50.8*10^-3 ;
reo = (150/2)*10^-3;
rei = ((reo/Tan[\[Theta]]) -
d) Tan[\[Theta]]
B = 24.4*10^-3;
\[CapitalGamma] = 10*10^-3;
l = .2*10^-3;
\[CurlyPhi] = 20 Degree;
Pe = 101325;
Ps = 1.1* Pe ;
\[Gamma] = (\[CurlyPhi]*Sin[\[Theta]])/(B*\[CapitalGamma]^3);
Pd[h_] :=
Sqrt[((Ps^2 + Pe^2*\[Gamma]*h^3*(l + h) +
Log[rei/reo])/(1 + \[Gamma]*h^3*(l + h) + Log[rei/reo]))]
rd = Sqrt[reo*rei]
P [r_, h_] :=
Piecewise[{{Sqrt[
Pd[h]^2 + .5*(Pe^2 - Pd[h]^2)*Log[rei/reo]*Log[rd/r]],
r > rd}, {Sqrt[
Pd[h]^2 + .5*(Pe^2 - Pd[h]^2)*Log[rei/reo]*Log[r/rd]], r < rd}}];
W[h_] := Integrate[2*Pi*r*P[r, h]/9.8, {r, rei, reo}]
S[h_] := D[W[h], h]
Plot[{P[r, 10*10^-6], P[r, 8*10^-6], P[r, 6*10^-6], P[r, 4*10^-6],
P[r, 2*10^-6], P[r, 1*10^-6]}, {r, rei, reo}]
Plot[W[h], {h, 1*10^-6, 10*10^-6}]
Plot[S[h], {h, 1*10^-6, 10*10^-6}]