You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mathematica技术需求:多样本量H1(t)同图绘制及y=1网格线设红

多样本量下H1(t)曲线的同图绘制(Mathematica实现)

需要将样本量n=10、100、1000、2000对应的H1(t)曲线绘制在同一坐标系中,同时将y=1的网格线设置为红色。以下是实现方案:

1. 封装H1(t)生成函数

先把单样本量的H1(t)生成逻辑封装成工具函数,避免重复代码:

GenerateH1[n_] := Module[{m, eval, evec, h, imin, lambda2minlambda1, tn, h1Func},
  m = RandomVariate[GaussianOrthogonalMatrixDistribution[Sqrt[2]/Sqrt[n], n]];
  {eval, evec} = Eigensystem[m];
  h = evec[[All, 1]];
  imin = Ordering[eval, 1][[1]];
  lambda2minlambda1 = Sort[eval][[2]] - Sort[eval][[1]];
  tn = 1/(4*lambda2minlambda1);
  h1Func[t_] := Abs[h[[imin]]]*Exp[-2*eval[[imin]]*t]/Sqrt[Sum[h[[i]]^2*Exp[-4*eval[[i]]*t], {i, 1, n}]];
  {h1Func, tn}
]

2. 生成各样本量的函数与参数

调用函数生成不同n对应的H1(t)表达式和tn值:

(* 生成各样本量的H1(t)函数与tn *)
{n10Func, tn10} = GenerateH1[10];
{n100Func, tn100} = GenerateH1[100];
{n1000Func, tn1000} = GenerateH1[1000];
{n2000Func, tn2000} = GenerateH1[2000];

(* 确定统一的x轴范围,取最大tn的10倍 *)
maxTn = Max[tn10, tn100, tn1000, tn2000];
xRange = {0, 10*maxTn};

3. 同图绘制与样式设置

用Show组合多条曲线,同时指定网格线样式:

Show[
  Plot[n10Func[t], Evaluate[xRange], PlotStyle -> Red, PlotLegends -> {"n=10"}],
  Plot[n100Func[t], Evaluate[xRange], PlotStyle -> Blue, PlotLegends -> {"n=100"}],
  Plot[n1000Func[t], Evaluate[xRange], PlotStyle -> Green, PlotLegends -> {"n=1000"}],
  Plot[n2000Func[t], Evaluate[xRange], PlotStyle -> Orange, PlotLegends -> {"n=2000"}],
  GridLines -> {{tn10, tn100, tn1000, tn2000}, {1}},
  GridLinesStyle -> {Directive[Blue, Thickness[0.005]], Directive[Red, Thickness[0.008]]},
  PlotRange -> Full,
  AxesLabel -> {"t", "H1(t)"},
  PlotLabel -> "H1(t) Curves for Different Sample Sizes"
]

关键说明

  • 函数封装:将重复逻辑打包,只需传入n即可生成对应曲线,简化代码维护。
  • 统一坐标轴:基于最大tn设置x范围,确保所有曲线完整展示。
  • 网格线区分:通过GridLinesStyle分别指定x轴tn网格线(蓝色)和y=1网格线(红色),精准满足需求。
  • 图例区分:用不同颜色标记不同样本量的曲线,便于对比趋势。

内容的提问来源于stack exchange,提问作者oliver

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 20:55:10