|
DeepSeek 给的完整 Mathematica 代码:
- (* 定义系数 c_n *)
- c[0] = 1.0;
- c[1] = (1/2)^2;
- c[n_] := (Binomial[2n-3, n-2] / (2^(2n-2) * n) )^2 /; n>=2;
- (* 定义 G(λ) 为截断级数,nmax=2000 *)
- G[λ_, nmax_] := Sum[c[n] * λ^(2n), {n, 0, nmax}];
- (* 设置截断项数和离散点集 *)
- nmax = 2000;
- lambdas = Join[Range[0.01, 0.99, 0.01], {0.999, 0.9999, 0.99999}];
- (* 预计算 G(λ) 在离散点上的值 *)
- gVals = Table[{λ, G[λ, nmax]}, {λ, lambdas}];
- (* 定义 F(λ,a) *)
- k = 22/(7*Pi) - 1;
- F[λ_, a_] := (1 + (3 λ^2)/(10 + Sqrt[4 - 3 λ^2])) * (1 + k * ((2λ)/(1+λ))^a);
- (* 定义最大绝对误差函数 *)
- maxError[a_?NumericQ] := Module[{errList},
- errList = Table[
- With[{λval = gVals[[i, 1]], gVal = gVals[[i, 2]]},
- Abs[F[λval, a] - gVal]
- ],
- {i, Length[gVals]}];
- Max[errList]
- ];
- (* 最小化最大绝对误差,搜索区间 a ∈ [17,19] *)
- result = NMinimize[{maxError[a], 17 <= a <= 19}, a, Method -> "NelderMead"];
- (* 输出结果:最优 a 和对应的最大误差 *)
- Print["最优 a = ", a /. Last[result]];
- Print["最大绝对误差 = ", First[result]];
复制代码 |
|