Обговорення:Гіперкульовий сегмент

message: Рекурентний зв'язок для інтегральної частини \textstyle F(m,t)=\int\limits_{t}^{1} (1-x^2)^{\frac{m}{2}}dx:
Отримання, без використання спеціальних функцій:
 
1) взяти різницю \textstyle F(m,t)-F(m+2,t)=\int\limits_{t}^{1} x^2 (1-x^2)^{\frac{m}{2}}dx
2) виразити через інтегрування по частинах \textstyle F(m,t)=\int\limits_{t}^{1} x' (1-x^2)^{\frac{m}{2}}dx= -t (1-t^2)^{\frac{m}{2}}+m\int\limits_{t}^{1} x^2 (1-x^2)^{\frac{m-2}{2}}dx
3) узгодити показники m \to m+2 в другому виразі (2) та виключити інтегральну частину використовуючи перший (1)
або скористатись автоматизованими алгебраїчними пакетами:
(*Wolfram Language "Mathematica"*)
Clear[n, t, x, Fint]; dom = {-1 < t, t < 1, n >= -1};
(*визначення функції*)
Fint[n_, t_] := Integrate[(1 - x^2)^(n/2), {x, t, 1}, Assumptions -> dom];
(*кроки доведення*)
FullSimplify[Fint[n, t] - Fint[n + 2, t] == Integrate[x^2 (1 - x^2)^(n/2), {x, t, 1}, Assumptions -> dom]]
FullSimplify[Fint[n, t] == -t (1 - t^2)^(n/2) + n Integrate[x^2 (1 - x^2)^((n - 2)/2), {x, t, 1}, Assumptions -> dom]]
(*ітераційна частина*)
FullSimplify[Fint[n + 2, t] == (Fint[n, t] (n + 2) - t (1 - t^2)^((n + 2)/2))/(n + 3), Assumptions -> dom]
=== Об'єм ===
У символьному вигляді в математиці працює вираз для гіпергеометричної функції, тому для порівняння з другими, та зокрема виразами для інтегрування - точкова перевірка:
(*Wolfram Language "Mathematica"*)
Clear[a, t, r, h, n, x, Vsph, Vspi, Vsum, Vseh, Vseb, Vtet, Vint,Vina,Fsgi];
Vsph[r_, n_] := r^n \[Pi]^(n/2)/Gamma[n/2 + 1];
Vspi[r_, n_] := Module[{k, p, i, V}, p = Mod[n, 2]; k = (n - p)/2; V = If[p == 1, 2 r, 1];
   If[n <= 1, V, i = +p; While[i < n, V *= 2 \[Pi] r^2/(i + 2); i += 2]; V]];
Fsgi[n_, t_] := Module[{k, p, i, F}, p = Mod[n, 2]; k = (n - p)/2; F = If[p == 1, ArcCos[t], 1 - t];
   If[n <= 0, F, i = -p; While[i < n, F = ((i + 2) F - t (1 - t^2)^((i + 2)/2))/(i + 3); i += 2]; F]];
Vsum[r_, h_, n_] := Module[{t, k, p, i, a}, p = Mod[n, 2]; k = (n - p)/2; t = (r - h)/r;
   If[p == 1,
    \[Pi]^k r^(2 k + 1) (2^k/(2 k + 1)!! - 1/k! Sum[ ((-1)^i t^(2 i + 1))/(2 i + 1) Binomial[k, i], {i, 0, k}]),
    a = Array[0 &, k]; a[[k]] = 1/(2 k);
    For[i = k - 1, i >= 1, i--, a[[i]] = (Binomial[k, i] - a[[i + 1]] (2 i + 1))/(2 i)];
    \[Pi]^(k - 1) r^(2 k) (ArcCos[t]/k! - (2^k Sqrt[1 - t^2])/(2 k - 1)!! Sum[(-1)^i a[[i + 1]] t^(2 i + 1), {i, 0, k - 1}])]];
(*значення параметрів*)
n = 3; r = 7; h = r 1/3; t = (r - h)/r; Print["n = ", n, "\tr = ", r, "\th = ", h];
Print["ітерації"];
N[r Vspi[r, n - 1] Fsgi[n - 1, t]]
Print["суми"];
N[Vsum[r, h, n]]
Print["гіпергеометрична"];
Vseh = N[Vsph[r, n] (1/2 - (r - h)/r Gamma[n/2 + 1]/(Sqrt[\[Pi]] Gamma[(n + 1)/2])
       Hypergeometric2F1[1/2, (1 - n)/2, 3/2, ((h - r)/r)^2])]
Print["бета"];
Vseb = N[Vsph[r, n]/2 BetaRegularized[(h (2 r - h))/r^2, (n + 1)/2, 1/2]]
Print["інтегрування через кут"];
Vtet = N[r Vsph[r, n - 1] Integrate[Sin[x]^n, {x, 0, ArcCos[(r - h)/r]}]]
Print["інтегрування через висоту"];
Vint = N[Integrate[Vsph[Sqrt[r^2 - x^2], n - 1], {x, r - h, r}]]
Print["інтегрування через основу"]; Clear[R, H];
a = Sqrt[h (2 r - h)]; R[x_] := r (1 - ((a - x)/r)^2)^(1/2); H[x_] := R[x] - (r - h);
Vina = N[NIntegrate[Vsum[R[x], H[x], n - 1], {x, 0, 2 a}]]
Print["конкретні вимірності"];
If[n == 3, a = Sqrt[h (2 r - h)];
  (*висота та сферичний радіус*)
  Print[N[1/3 h^2 \[Pi] (3 r - h)]];
  (*висота та радіус основи*)
  Print[N[(\[Pi] h)/6 (3 a^2 + h^2)]]];
If[n == 2, a = Sqrt[h (2 r - h)];
  (*висота, сферичний радіус, радіус основи *)
  Print[N[r^2 ArcCos[(r - h)/r] - a (r - h)]]];
всі вирази для заданих параметрів видали значення 106,426
Асимптотика: erf, кривина та об'єднана оцінка.
(*Wolfram Language "Mathematica"*)
Clear[r, h, n, t, s, p, x, y, Vseh, Eh, En, Sn, df]; 
(*Визначення функцій*)
Vseh[r_, h_, n_] := Module[{t = (r - h)/r}, 
     (1/2 - t Gamma[n/2 + 1]/(Sqrt[\[Pi]] Gamma[(n + 1)/2]) Hypergeometric2F1[1/2, (1 - n)/2, 3/2, t^2])];
Eh[r_, h_, n_] := Module[{t = (r - h)/r}, 1/2 (1 - Erf[t Sqrt[n/2] ])];
En[r_, h_, n_] := Module[{d = Sqrt[\[Pi]/(2 n)], t = (r - h)/r}, If[-d < t < +d, 1/2 (1 - t/d), 
     (1 - Sign[t])/2 + Exp[-n t^2/2]/(Sqrt[2 \[Pi] n] t)]]; 
Sn[r_, h_, n_] := Module[{d = Sqrt[\[Pi]/(2 n)], t = (r - h)/r}, If[-d < t < +d, 1/2 (1 - t/d), 
     (1 - Sign[t])/2 + (1 - t^2)^(n/2)/(t Sqrt[2 \[Pi] n])]];
(*Параметри*)
n = 20; r = 1; h = 1/5 r;
(*Допоміжні вирази для кривини*)
p = FindRoot[(-(1 - t^2)^(n - 1) (1 + (-1 + 2 n) t^2) Gamma[1 + n/2]^2 + 
    \[Pi]  (-1 + (-2 + n) t^2) Gamma[(1 + n)/2]^2) == 0, {t, 1/2}][[1, 2]];
df = -(((1 - p^2)^(1/2 (-1 + n)) Gamma[1 + n/2])/(Sqrt[\[Pi]] Gamma[(1 + n)/2]));
R = (1 + (df)^2)^(3/2)/((n p (1 - p^2)^(1/2 (-3 + n)) Gamma[n/2])/(Sqrt[\[Pi]] Gamma[1/2 (-1 + n)])); 
x = 1 - p + R df/(1 + (df)^2)^(1/2); 
y = Vseh[r, r (1 - p), n] + R /(1 + (df)^2)^(1/2);
(*Подання*)
s = IntegerPart[n 1/4];
Plot[{Vseh[r, l, n], Eh[r, l, n], En[r, l, n]}, {l, 0, 2 r}, PlotRange -> All,
    PlotLegends -> {"Value", "Approximation" , "Estimation"}]
ListLinePlot[{
    Table[{i, Log[Vseh[r, h, i]]}, {i, s, n}], 
    Table[{i, Log[En[r, h, i]]}, {i, s, n}], 
    Table[{i, Log[Eh[r, h, i]]}, {i, s, n}]   
    }, PlotRange -> All, PlotLegends -> {"Value", "Approximation", "Estimation"}]
Plot[{Vseh[r, l, n], Sn[r, l, n]}, {l, 0, 2 r}, PlotRange -> All, PlotLegends-> {"Value", "Estimation"},
    Epilog -> {{PointSize[Large], Point[{1-p,0}], Point[{x,y}]}, Circle[{x,y}, R]}]
ListLinePlot[{
    Table[{i, Log[Vseh[r, h, i]]}, {i, s, n}], 
    Table[{i, Log[Sn[r, h, i]]}, {i, s, n}]
    }, PlotRange -> All, PlotLegends -> {"Value", "Estimation"}]
=== Площа ===
(*Wolfram Language "Mathematica"*)
Clear[r, h, n, Vsph, Vspi, Ssph, Sseh, Ssah, Sseb, Ssei, Ssum Fsei];
Vsph[r_, n_] := r^n \[Pi]^(n/2)/Gamma[n/2 + 1];
Ssph[r_, n_] := 2 r^(n - 1) \[Pi]^(n/2)/Gamma[n/2];
Sseh[r_, h_, n_] := Module[{t = (r - h)/r}, Ssph[r, n] (1/2 - t  Gamma[n/2]/(Sqrt[\[Pi]] Gamma[(n - 1)/2])
     Hypergeometric2F1[1/2, (3 - n)/2, 3/2, t^2])];
Ssah[r_, h_, n_] := Module[{a = Sqrt[h (2 r - h)]}, 
   Vsph[a, n - 1] Hypergeometric2F1[1/2, (n - 1)/2, (n + 1)/2, (a/r)^2]];
Sseb[r_, h_, n_] := Module[{s = (h (2 r - h))/r^2}, 
   1/2 Ssph[r, n] BetaRegularized[s, (n - 1)/2, 1/2]];
Vspi[r_, n_] := Module[{k, p, i, V}, p = Mod[n, 2]; k = 0; V = If[p == 1, 2 r, 1];
   If[n <= 1, V, i = +p; While[i < n, V *= 2 \[Pi] r^2/(i + 2); i += 2; k++]; Print["k(B)=", k]; V]];
Fsei[n_, t_] := Module[{k, p, i, F}, p = Mod[n, 2]; k = 0; F = If[p == 1, ArcCos[t], 1 - t];
   If[n <= 0, F, i = -p; While[i < n, F = ((i+2)F-t(1-t^2)^((i+2)/2))/(i+3); i+=2; k++]; Print["k(F)=", k]; F]];
Ssei[r_, h_, n_] := Module[{t = (r - h)/r}, (n - 1) Vspi[r, n - 1] Fsei[n - 3, t]];
Ssum[r_, h_, n_] :=   Module[{t = (r - h)/r, k, p, i, a}, p = Mod[n, 2]; k = (n - p - 2)/2;
   If[p == 1,
    2 \[Pi]^(k + 1) r^(2 (k + 1)) (2^k / (2 k + 1)!! - 1/k! Sum[ ((-1)^i t^(2 i + 1))/(2 i + 1) Binomial[k, i], {i, 0, k}]),
    If[k == 0, Return[2 r ArcCos[t]]]; a = Array[0 &, k]; a[[k]] = 1/(2 k);
    For[i = k - 1, i >= 1, i--, a[[i]] = (Binomial[k, i] - a[[i + 1]] (2 i + 1))/(2 i)];
    2 \[Pi]^k r^(2 k + 1) (ArcCos[t]/k! - (2^k Sqrt[1 - t^2])/(2 k - 1)!! Sum[(-1)^i a[[i + 1]] t^(2 i + 1), {i, 0, k - 1}])]];
n = 3; r = 7; h = 1/3 r;   Print["n = ", n, "\tr = ", r, "\th = ", h];
Print[N[Sseh[r, h, n] == Ssei[r, h, n]], "\t ітерації"];
Print[N[Sseh[r, h, n] == Ssum[r, h, n]], "\t сума"];
Print[N[Sseh[r, h, n] == Ssah[r, h, n]], "\t гіпергеометрична - через основу"];
Print[N[Sseh[r, h, n] == Sseb[r, h, n]], "\t бета"];
If[h == r || h == 2 r,
  Print[N[Sseh[r, h, n] == h/(2 r) Ssph[r, n]], "\t тотожність із сферою"]];
If[n == 3,
  Print[N[Sseh[r, h, n]], "\t гіпергеометрична"];
  Print[N[2 \[Pi]  r h], "\t висота та сферичний радіус"]];
--MashiraV (обговорення) 00:22, 30 квітня 2023 (UTC)
thread_title:  Перевірка формул: 

message: У символьному вигляді в математиці працює вираз для гіпергеометричної функції, тому для порівняння з другими, та зокрема виразами для інтегрування - точкова перевірка:
(*Wolfram Language "Mathematica"*)
Clear[a, t, r, h, n, x, Vsph, Vspi, Vsum, Vseh, Vseb, Vtet, Vint,Vina,Fsgi];
Vsph[r_, n_] := r^n \[Pi]^(n/2)/Gamma[n/2 + 1];
Vspi[r_, n_] := Module[{k, p, i, V}, p = Mod[n, 2]; k = (n - p)/2; V = If[p == 1, 2 r, 1];
   If[n <= 1, V, i = +p; While[i < n, V *= 2 \[Pi] r^2/(i + 2); i += 2]; V]];
Fsgi[n_, t_] := Module[{k, p, i, F}, p = Mod[n, 2]; k = (n - p)/2; F = If[p == 1, ArcCos[t], 1 - t];
   If[n <= 0, F, i = -p; While[i < n, F = ((i + 2) F - t (1 - t^2)^((i + 2)/2))/(i + 3); i += 2]; F]];
Vsum[r_, h_, n_] := Module[{t, k, p, i, a}, p = Mod[n, 2]; k = (n - p)/2; t = (r - h)/r;
   If[p == 1,
    \[Pi]^k r^(2 k + 1) (2^k/(2 k + 1)!! - 1/k! Sum[ ((-1)^i t^(2 i + 1))/(2 i + 1) Binomial[k, i], {i, 0, k}]),
    a = Array[0 &, k]; a[[k]] = 1/(2 k);
    For[i = k - 1, i >= 1, i--, a[[i]] = (Binomial[k, i] - a[[i + 1]] (2 i + 1))/(2 i)];
    \[Pi]^(k - 1) r^(2 k) (ArcCos[t]/k! - (2^k Sqrt[1 - t^2])/(2 k - 1)!! Sum[(-1)^i a[[i + 1]] t^(2 i + 1), {i, 0, k - 1}])]];
(*значення параметрів*)
n = 3; r = 7; h = r 1/3; t = (r - h)/r; Print["n = ", n, "\tr = ", r, "\th = ", h];
Print["ітерації"];
N[r Vspi[r, n - 1] Fsgi[n - 1, t]]
Print["суми"];
N[Vsum[r, h, n]]
Print["гіпергеометрична"];
Vseh = N[Vsph[r, n] (1/2 - (r - h)/r Gamma[n/2 + 1]/(Sqrt[\[Pi]] Gamma[(n + 1)/2])
       Hypergeometric2F1[1/2, (1 - n)/2, 3/2, ((h - r)/r)^2])]
Print["бета"];
Vseb = N[Vsph[r, n]/2 BetaRegularized[(h (2 r - h))/r^2, (n + 1)/2, 1/2]]
Print["інтегрування через кут"];
Vtet = N[r Vsph[r, n - 1] Integrate[Sin[x]^n, {x, 0, ArcCos[(r - h)/r]}]]
Print["інтегрування через висоту"];
Vint = N[Integrate[Vsph[Sqrt[r^2 - x^2], n - 1], {x, r - h, r}]]
Print["інтегрування через основу"]; Clear[R, H];
a = Sqrt[h (2 r - h)]; R[x_] := r (1 - ((a - x)/r)^2)^(1/2); H[x_] := R[x] - (r - h);
Vina = N[NIntegrate[Vsum[R[x], H[x], n - 1], {x, 0, 2 a}]]
Print["конкретні вимірності"];
If[n == 3, a = Sqrt[h (2 r - h)];
  (*висота та сферичний радіус*)
  Print[N[1/3 h^2 \[Pi] (3 r - h)]];
  (*висота та радіус основи*)
  Print[N[(\[Pi] h)/6 (3 a^2 + h^2)]]];
If[n == 2, a = Sqrt[h (2 r - h)];
  (*висота, сферичний радіус, радіус основи *)
  Print[N[r^2 ArcCos[(r - h)/r] - a (r - h)]]];
всі вирази для заданих параметрів видали значення 106,426
Асимптотика: erf, кривина та об'єднана оцінка.
(*Wolfram Language "Mathematica"*)
Clear[r, h, n, t, s, p, x, y, Vseh, Eh, En, Sn, df]; 
(*Визначення функцій*)
Vseh[r_, h_, n_] := Module[{t = (r - h)/r}, 
     (1/2 - t Gamma[n/2 + 1]/(Sqrt[\[Pi]] Gamma[(n + 1)/2]) Hypergeometric2F1[1/2, (1 - n)/2, 3/2, t^2])];
Eh[r_, h_, n_] := Module[{t = (r - h)/r}, 1/2 (1 - Erf[t Sqrt[n/2] ])];
En[r_, h_, n_] := Module[{d = Sqrt[\[Pi]/(2 n)], t = (r - h)/r}, If[-d < t < +d, 1/2 (1 - t/d), 
     (1 - Sign[t])/2 + Exp[-n t^2/2]/(Sqrt[2 \[Pi] n] t)]]; 
Sn[r_, h_, n_] := Module[{d = Sqrt[\[Pi]/(2 n)], t = (r - h)/r}, If[-d < t < +d, 1/2 (1 - t/d), 
     (1 - Sign[t])/2 + (1 - t^2)^(n/2)/(t Sqrt[2 \[Pi] n])]];
(*Параметри*)
n = 20; r = 1; h = 1/5 r;
(*Допоміжні вирази для кривини*)
p = FindRoot[(-(1 - t^2)^(n - 1) (1 + (-1 + 2 n) t^2) Gamma[1 + n/2]^2 + 
    \[Pi]  (-1 + (-2 + n) t^2) Gamma[(1 + n)/2]^2) == 0, {t, 1/2}][[1, 2]];
df = -(((1 - p^2)^(1/2 (-1 + n)) Gamma[1 + n/2])/(Sqrt[\[Pi]] Gamma[(1 + n)/2]));
R = (1 + (df)^2)^(3/2)/((n p (1 - p^2)^(1/2 (-3 + n)) Gamma[n/2])/(Sqrt[\[Pi]] Gamma[1/2 (-1 + n)])); 
x = 1 - p + R df/(1 + (df)^2)^(1/2); 
y = Vseh[r, r (1 - p), n] + R /(1 + (df)^2)^(1/2);
(*Подання*)
s = IntegerPart[n 1/4];
Plot[{Vseh[r, l, n], Eh[r, l, n], En[r, l, n]}, {l, 0, 2 r}, PlotRange -> All,
    PlotLegends -> {"Value", "Approximation" , "Estimation"}]
ListLinePlot[{
    Table[{i, Log[Vseh[r, h, i]]}, {i, s, n}], 
    Table[{i, Log[En[r, h, i]]}, {i, s, n}], 
    Table[{i, Log[Eh[r, h, i]]}, {i, s, n}]   
    }, PlotRange -> All, PlotLegends -> {"Value", "Approximation", "Estimation"}]
Plot[{Vseh[r, l, n], Sn[r, l, n]}, {l, 0, 2 r}, PlotRange -> All, PlotLegends-> {"Value", "Estimation"},
    Epilog -> {{PointSize[Large], Point[{1-p,0}], Point[{x,y}]}, Circle[{x,y}, R]}]
ListLinePlot[{
    Table[{i, Log[Vseh[r, h, i]]}, {i, s, n}], 
    Table[{i, Log[Sn[r, h, i]]}, {i, s, n}]
    }, PlotRange -> All, PlotLegends -> {"Value", "Estimation"}]
thread_title:  Об'єм 

message: (*Wolfram Language "Mathematica"*)
Clear[r, h, n, Vsph, Vspi, Ssph, Sseh, Ssah, Sseb, Ssei, Ssum Fsei];
Vsph[r_, n_] := r^n \[Pi]^(n/2)/Gamma[n/2 + 1];
Ssph[r_, n_] := 2 r^(n - 1) \[Pi]^(n/2)/Gamma[n/2];
Sseh[r_, h_, n_] := Module[{t = (r - h)/r}, Ssph[r, n] (1/2 - t  Gamma[n/2]/(Sqrt[\[Pi]] Gamma[(n - 1)/2])
     Hypergeometric2F1[1/2, (3 - n)/2, 3/2, t^2])];
Ssah[r_, h_, n_] := Module[{a = Sqrt[h (2 r - h)]}, 
   Vsph[a, n - 1] Hypergeometric2F1[1/2, (n - 1)/2, (n + 1)/2, (a/r)^2]];
Sseb[r_, h_, n_] := Module[{s = (h (2 r - h))/r^2}, 
   1/2 Ssph[r, n] BetaRegularized[s, (n - 1)/2, 1/2]];
Vspi[r_, n_] := Module[{k, p, i, V}, p = Mod[n, 2]; k = 0; V = If[p == 1, 2 r, 1];
   If[n <= 1, V, i = +p; While[i < n, V *= 2 \[Pi] r^2/(i + 2); i += 2; k++]; Print["k(B)=", k]; V]];
Fsei[n_, t_] := Module[{k, p, i, F}, p = Mod[n, 2]; k = 0; F = If[p == 1, ArcCos[t], 1 - t];
   If[n <= 0, F, i = -p; While[i < n, F = ((i+2)F-t(1-t^2)^((i+2)/2))/(i+3); i+=2; k++]; Print["k(F)=", k]; F]];
Ssei[r_, h_, n_] := Module[{t = (r - h)/r}, (n - 1) Vspi[r, n - 1] Fsei[n - 3, t]];
Ssum[r_, h_, n_] :=   Module[{t = (r - h)/r, k, p, i, a}, p = Mod[n, 2]; k = (n - p - 2)/2;
   If[p == 1,
    2 \[Pi]^(k + 1) r^(2 (k + 1)) (2^k / (2 k + 1)!! - 1/k! Sum[ ((-1)^i t^(2 i + 1))/(2 i + 1) Binomial[k, i], {i, 0, k}]),
    If[k == 0, Return[2 r ArcCos[t]]]; a = Array[0 &, k]; a[[k]] = 1/(2 k);
    For[i = k - 1, i >= 1, i--, a[[i]] = (Binomial[k, i] - a[[i + 1]] (2 i + 1))/(2 i)];
    2 \[Pi]^k r^(2 k + 1) (ArcCos[t]/k! - (2^k Sqrt[1 - t^2])/(2 k - 1)!! Sum[(-1)^i a[[i + 1]] t^(2 i + 1), {i, 0, k - 1}])]];
n = 3; r = 7; h = 1/3 r;   Print["n = ", n, "\tr = ", r, "\th = ", h];
Print[N[Sseh[r, h, n] == Ssei[r, h, n]], "\t ітерації"];
Print[N[Sseh[r, h, n] == Ssum[r, h, n]], "\t сума"];
Print[N[Sseh[r, h, n] == Ssah[r, h, n]], "\t гіпергеометрична - через основу"];
Print[N[Sseh[r, h, n] == Sseb[r, h, n]], "\t бета"];
If[h == r || h == 2 r,
  Print[N[Sseh[r, h, n] == h/(2 r) Ssph[r, n]], "\t тотожність із сферою"]];
If[n == 3,
  Print[N[Sseh[r, h, n]], "\t гіпергеометрична"];
  Print[N[2 \[Pi]  r h], "\t висота та сферичний радіус"]];
--MashiraV (обговорення) 00:22, 30 квітня 2023 (UTC)
thread_title:  Площа