从直方图到频率多边形 by Elen

从直方图到频率多边形 by Elen
几何画板及绘图内容加载中,请稍等……
2020-02-26 17:12
①本范例演示如何从直方图绘制频率多边形,并展示频率多边形围成的面积与总面积的关系;②涉及的核心数学概念包括直方图、频率多边形、函数、二维向量、一般四边形、图形、定积分;③作图要点提炼自构造摘要,用到了If、点、中点、CountIf、多边形、PolyLine、Sequence、文本框、线段、RotateText等GeoGebra命令/对象;④适合高中数学教学,用于概率统计和微积分初步教学。

GeoGebra 命令及参数

  1. If(C2 - A2 > 0, C2 - A2 + A3 - C2, 5) → k
  2. Point(Ray[(10 * k, 0), (10 * k, 1)]) → Q10
  3. Point(Ray[(9 * k, 0), (9 * k, 1)]) → Q9
  4. Midpoint(Q10, Q9) → M9
  5. Point(Ray[(8 * k, 0), (8 * k, 1)]) → Q8
  6. Midpoint(Q8, Q9) → M8
  7. Point(Ray[(7 * k, 0), (7 * k, 1)]) → Q7
  8. Midpoint(Q8, Q7) → M7
  9. Point(Ray[(6 * k, 0), (6 * k, 1)]) → Q6
  10. Midpoint(Q6, Q7) → M6
  11. Point(Ray[(5 * k, 0), (5 * k, 1)]) → Q5
  12. Midpoint(Q6, Q5) → M5
  13. Point(Ray[(4 * k, 0), (4 * k, 1)]) → Q4
  14. Midpoint(Q4, Q5) → M4
  15. Point(Ray[(3 * k, 0), (3 * k, 1)]) → Q3
  16. Midpoint(Q3, Q4) → M3
  17. Point(Ray[(2 * k, 0), (2 * k, 1)]) → Q2
  18. Midpoint(Q2, Q3) → M2
  19. Point(Ray[(k, 0), (k, 1)]) → Q1
  20. Midpoint(Q1, Q2) → M1
  21. CountIf(x ≠ " ", list7) → n
  22. Polygon((unitx, 0.3), (unitx, -0.3), (2.5 * unitx, -0.3), (2.5 * unitx, 0.3)) → poly1, a, b, c, d
  23. PolyLine((unitx, 0), (1.5 * unitx, h), (2 * unitx, -h), (2.5 * unitx, 0)) → e
  24. Sequence(Segment[(xmin + xint2 * i, ymax), (xmin + xint2 * i, ymin)], i, 1, (xmax - xmin) / xint2) → list3
  25. Sequence(Segment[(xmin, ymin + yint2 * i), (xmax, ymin + yint2 * i)], i, 1, (ymax - ymin) / yint2) → list4
  26. Sequence(Sequence[Segment[(xint2 * (j - 1) + xint1 * i, ymax), (xint2 * (j - 1) + xint1 * i, ymin)], i, 1, 4], j, 1, ceil(xmax / xint2)) → list5
  27. Sequence(Sequence[Segment[(xmin, (j - 1) * yint2 + yint1 * i), (xmax, (j - 1) * yint2 + yint1 * i)], i, 1, 4], j, 1, ceil(ymax / yint2)) → list6
  28. Sequence(Segment[(k * i + 0.5 * k, 0), (k * i + 0.5 * k, (-h) / 2.5)], i, 1, n - 1) → list9
  29. Sequence(Segment[(k * i, 0), (k * i, (-h) / 2.5)], i, 1, n) → list8
  30. Textfield(text23) → inputBox2
  31. Textfield(text24) → inputBox4
  32. Textfield(xint1') → inputBox3
  33. Sequence(Polygon[((i - 0.5) * k, 0), ((i + 0.5) * k, 0), ((i + 0.5) * k, Element[list1, i]), ((i - 0.5) * k, Element[list1, i])], i, 1, n) → list2
  34. Segment(Q1, Q2) → l1
  35. Segment(Q2, Q3) → l2
  36. Segment(Q3, Q4) → l3
  37. Segment(Q4, Q5) → l4
  38. Segment(Q5, Q6) → l5
  39. Segment(Q6, Q7) → l6
  40. Segment(Q7, Q8) → l7
  41. Segment(Q8, Q9) → l8
  42. Segment(Q9, Q10) → l9
  43. Sequence(If[y(Element[list10, i]) > y(Element[list11, i - 1]), Rotate[Polygon[Element[list10, i], Element[list11, i - 1], Element[list10, i] - (0.5 * k, 0)], t, Element[list11, i - 1]], Polygon[Element[list10, i], Element[list10, i] - (0.5 * k, 0), Element[list10, i]]], i, 2, n) → list2_3
  44. Sequence(If[y(Element[list10, i]) < y(Element[list11, i]), Polygon[Element[list10, i], Element[list10, i] - (0, y(Element[list10, i])), Element[list10, i] - (-0.5 * k, y(Element[list10, i])), Element[list10, i] + (0.5 * k, 0)], Polygon[Element[list10, i], Element[list11, i], Element[list11, i] - (0, y(Element[list11, i])), Element[list10, i] - (0, y(Element[list10, i]))]], i, 1, n - 1) → list2_2
  45. Sequence(If[y(Element[list11, i]) < y(Element[list10, i + 1]), Polygon[Element[list11, i], Element[list10, i + 1], Element[list10, i + 1] - (0, y(Element[list10, i + 1])), Element[list11, i] - (0, y(Element[list11, i]))], Polygon[Element[list10, i + 1], Element[list10, i + 1] - (k / 2, 0), Element[list10, i + 1] - (k / 2, y(Element[list10, i + 1])), Element[list10, i + 1] - (0, y(Element[list10, i + 1]))]], i, 1, n) → list2_1
  46. Sequence(If[y(Element[list10, i]) > y(Element[list11, i]), Rotate[Polygon[Element[list10, i], Element[list11, i], Element[list10, i] + (0.5 * k, 0)], -t, Element[list11, i]], Polygon[Element[list10, i], Element[list10, i] + (0.5 * k, 0), Element[list10, i]]], i, 1, n - 1) → list2_4
  47. Polygon(Q1, Q1 - (0.5 * k, 0), Q1 - (0.5 * k, y(Q1)), (x(Q1), 0)) → poly2, q1, f, i, j
  48. Polygon(Element[list10, n], (x(Element[list10, n]), 0), (x(Element[list10, n]) + 0.5 * k, 0), Element[list10, n] + (0.5 * k, 0)) → poly3, l, m, p, q
  49. RotateText("Frequency", 90*°) → text12