
代码:
(*常数*)c = 22/(7 \[Pi]) - 1;
(*函数*)
G[\[Lambda]_] = Hypergeometric2F1[-1/2, -1/2, 1, \[Lambda]^2];
F[\[Lambda]_,
a_] = (1 + (3 \[Lambda]^2)/(10 + Sqrt[4 - 3 \[Lambda]^2]))*(1 +
c*(2 \[Lambda]/(1 + \[Lambda]))^a);
(*离散化 \[Lambda] 区间*)
\[Lambda]Grid =
Subdivide[0.001, 0.999, 1000];(*避开端点 0 和 1*)(*最大绝对误差(离散版)*)
maxError[a_?NumericQ] := Max[Abs[F[#, a] - G[#]] & /@ \[Lambda]Grid];
(*最小化最大误差*)
{minMaxError, bestA} =
NMinimize[{maxError[a], 0 < a < 100}, a,
Method -> "DifferentialEvolution"];
(*结果*)
bestAValue = a /. bestA;
Print["最小化最大误差的最佳 a \[TildeTilde] ", bestAValue,
", 最大误差 \[TildeTilde] ", minMaxError];
(*验证*)
Plot[{G[\[Lambda]], F[\[Lambda], bestAValue]}, {\[Lambda], 0, 1},
PlotStyle -> {Blue, {Red, Dashed}},
PlotLegends -> {"G(\[Lambda])", "F(\[Lambda], a)"},
PlotLabel -> "最小化最大误差下的逼近效果"]









