圆上离散样本点的几何中位数/中心位置随测试点变化的研究
几何画板及绘图内容加载中,请稍等……
本范例演示了在圆周上给定若干离散样本点后,如何根据一个可移动的测试点位置,动态计算并显示几何中位数(几何中心)在圆上的位置变化。核心数学概念包括几何中位数(使到各样本点距离之和最小的点)、圆的参数方程、向量运算以及最优化问题。作图要点:利用GeoGebra的Circle、Point、Sequence等命令生成圆周上的样本点集,通过Sum、Vector、Length等命令计算距离和,并使用Slider或InputBox控制测试点位置,结合If、Sort、Element等命令筛选最优解,最终以Text或TableText展示结果。该范例适合高中或大学阶段学习解析几何、向量与最优化问题的学生,也可用于数学建模中关于中心位置与鲁棒统计的直观演示。
GeoGebra 命令及参数
Sum(Zip[sqrt(((R * cos(x)) - x(b))^(2) + ((R * sin(x)) - y(b))^(2)), b, lP]) → f0Circle(O, R) → gPoint(g) → p0Zip(Vector[UnitVector[a - p0]], a, lP) → l1Sum(Zip[Length[a - p0], a, lP]) → sumSum(Zip[Length[a - p0]^(2), a, lP]) → sum_qSum(Zip[Length[a - min_q0]^(2), a, lP]) → sum1_qSum(Zip[Length[a - max_q0]^(2), a, lP]) → sum2_qSegment(max_q0, min_q0) → hTextfield(na) → InputBox1Sequence((R; ((2 * π / na) * j)), j, 0, na) → ltest_2Zip((R; a), a, x(Extr_g)) → lZZsad'Vector(p0, p0 + UnitVector[Sum[l1]]) → l11Vector(p0, p0 + UnitVector[p0]) → l12Angle(l11, l12) → αZip(Vector[b, b + UnitVector[Sum[Zip[UnitVector[a - b], a, lP]]]], b, lZmax') → Wi_PmaxZip(Vector[b, b + UnitVector[Sum[Zip[UnitVector[a - b], a, lP]]]], b, lZmin') → Wi_PminZip(Vector[x0, x0 + UnitVector[x0]], x0, lZmax') → Wi_Pmax'Zip(Vector[x0, x0 + UnitVector[x0]], x0, lZmin') → Wi_Pmin'Zip(Angle[a, Vector[b]], Vector[a], Wi_Pmax, Vector[b], Wi_Pmax') → Wii_pmaxZip(Angle[a, Vector[b]], Vector[a], Wi_Pmin, Vector[b], Wi_Pmin') → Wii_pminZip(Segment[p0, a], a, lP) → l0Zip((a, f1(a)), a, x(lExtr')) → lExtrf'Length(lExtrf') → läSum(Zip[((R * cos(x)) - x(b))^(2) + ((R * sin(x)) - y(b))^(2), b, lP]) → f0_qZip((a, f1(a)), a, Zip[Angle[a], a, lZmin']) → lmin1Zip((a, f1(a)), a, Zip[Angle[a], a, lZmax']) → lmax1Zip((a, f1(a)), a, Zip[Angle[a], a, lZZsad']) → lsadVector(C, C + (0, 0.5)) → uVector(C_q, C_q + (0, 0.5)) → u_qTextfield(s) → InputBox2Textfield(s_q) → InputBox3TableText(Append["k", 1…Length[Wii_pmin]], Append["Δφ_k, grad", Wii_pmin], "v") → text23minTableText(Append["k", 1…Length[Wii_pmax]], Append["Δφ_k, grad", Wii_pmax], "v") → text23maxText("f(x)", (-0.1, f1(0) + 0.2)) → text6Text("f_q(x)", (-0.1, f1_q(0) + 0.2)) → text6bElement(lmax1, IndexOf[Max[y(lmax1)], y(lmax1)]) → D1Element(lmin1, IndexOf[Min[y(lmin1)], y(lmin1)]) → D2Zip(Point[a, 1], Vector[a], Wi_Pmax) → PmaxZip(Point[a, 1], Vector[a], Wi_Pmin) → PminZip(Point[a, 1], Vector[a], Wi_Pmax') → Pmax'Zip(Point[a, 1], Vector[a], Wi_Pmin') → Pmin'Point(l11, 1) → Tpoint1Point(l12, 1) → Tpoint2Zip(Text["c_" + (a) + "", b], a, 1…Length[lZmin'], b, lZmin' + (0.2, 0.2)) → txtminElement(lZmin', IndexOf[Min[y(lmin1)], y(lmin1)]) → AGlobalminElement(lZmax', IndexOf[Max[y(lmax1)], y(lmax1)]) → AGlobalmaxRotateText(txt, 90°) → txt1Sort(Flatten[x(lExtr')]) → xlExtr'Zip((abs(a - b) / a * 100), a, xlExtr', b, xlMaxmin) → ΔZip(ScientificText[a, 3], a, Δ) → Δ1TableText(Append["k", 1…lä], Append["δ=\frac{x_{Extr}-x_{iter}}{x_{Extr}}*100% ", Δ1], "v") → text23ΔIf(p0 ≟ min_q0 ∨ p0 ≟ max_q0, true, false) → bue1Zip(Text["c_" + (a) + "", b], a, 1…Length[lZmax'], b, lZmax' + (-0.2, 0.2)) → txtmaxZip(Text["\vec{c}_ " + (a) + "", b, true, true], a, 1…Length[lZmax'], b, Pmax' + (-0.35, 0.35)) → txtPmax'Zip(Text["\vec{c}_ " + (a) + "", b, true, true], a, 1…Length[lZmax'], b, Pmin' + (-0.35, 0.35)) → txtPmin'Zip(Text["\overrightarrow{f}_" + (a) + "", b, true, true], a, 1…Length[lZmax'], b, Pmax + (-0.4, 0.2)) → txtPmaxZip(Text["\overrightarrow{f}_" + (a) + "", b, true, true], a, 1…Length[lZmax'], b, Pmin + (-0.4, 0.1)) → txtPminUnitVector(Vector[p0, p0 - A]) → wAngle(w, l12) → βZip(Vector[x0, x0 + UnitVector[Vector[x0, x0 - (Length[lP] * x0) - Sum[lP]]]], x0, lZ_q) → wq_iZip(Vector[x0, x0 + UnitVector[x0]], x0, lZ_q) → wcq_iIf(b, "sum of distances", "sum of the squares of distances") → txtsumPoint(w, 1) → Tpoint2_qIf(a, "\fgcolor{#007FFF}{f(x)}", "\fgcolor{magenta}{f_q(x)}") → text22a
AI 绘图提示语参考
在圆上放置若干固定样本点,并设一个可动测试点沿圆周移动。绘制从测试点到各样本点的连线,并计算这些线段长度的总和,该总和随测试点位置变化。在圆周上标出使总距离最小和最大的两个特殊点,并用线段连接它们。同时,在测试点处画出指向样本点方向单位向量之和的箭头,以及指向圆心方向的箭头,并显示两箭头间的夹角。此外,在圆外绘制一条表示总距离随角度变化的曲线,并标出曲线上的全局最值点。
以上提示语为根据原始绘图命令整理而来,仅供参考。