近似计算漫游车行驶距离

近似计算漫游车行驶距离
几何画板及绘图内容加载中,请稍等……
2015-01-15 02:26
①本范例演示漫游车以递增速度行驶时,如何通过积分近似计算其行驶距离;②涉及的核心数学概念包括微积分中的定积分、速度变化与距离关系;③作图要点提炼自构造摘要,使用了 Append, Segment, Point, Polygon, Sequence, Element, LowerSum, Integral, UpperSum, If, Text, Midpoint, Semicircle, VerticalText, Line 等GeoGebra命令与对象;④适合高中及以上学生,用于理解定积分在物理应用中的近似计算方法,以及速度-时间图像与距离的关系。

GeoGebra 命令及参数

  1. Append(0, Sequence[(v((k * Δt)) * Δt), k, 0, n]) → changeindisests
  2. Segment((0, 0), (3, 0)) → timeline
  3. Point(timeline) → A
  4. Segment((0, 0), (1.6, 0)) → positionline
  5. Point({Integral[v, 0, x(A)], 0}) → B
  6. Polygon((x(B), 0.01), (x(B) - 0.05, 0.01), (x(B) - 0.05, 0.05), (x(B), 0.05)) → rover, rover_1, rover_2, rover_3, rover_4
  7. Segment((0, 0), (0, -0.01)) → startline
  8. Sequence(Integral[v, 0, k], k, 0, 3, Δt) → positions
  9. Sequence(Point[{Element[positions, k], 0}], k, 1, (3 / 2 * n) + 1) → positionpoints
  10. Element(positions, n + 1) → totaldistance
  11. LowerSum(v, 0, a, n) → overerrorsum
  12. Integral(v, 0, a) → whiteerrorintegral
  13. Polygon(A, ((ncounter * Δt), 0), ((ncounter * Δt), overvelocity), (t, overvelocity)) → lastoverrect, lastoverrect_1, lastoverrect_2, lastoverrect_3, lastoverrect_4
  14. Polygon(A, ((ncounter * Δt), 0), ((ncounter * Δt), v((ncounter * Δt))), (t, v((ncounter * Δt)))) → lastunderrect, lastunderrect_1, lastunderrect_2, lastunderrect_3, lastunderrect_4
  15. UpperSum(v, 0, (ncounter * Δt), ncounter) → partialover
  16. LowerSum(v, 0, (ncounter * Δt), ncounter) → partialunder
  17. If(t < Δt, (v(0) * t), partialunder + lastunderrect) → totalunderdistance
  18. Point({totalunderdistance, 0.2}) → E
  19. If(t < Δt, (t * v(Δt)), partialover + lastoverrect) → totaloverdistance
  20. Point({totaloverdistance, -0.2}) → F
  21. Polygon((x(E), 0.17), (x(E) - 0.05, 0.17), (x(E) - 0.05, 0.21), (x(E), 0.21)) → underrover, underrover_1, underrover_2, underrover_3, underrover_4
  22. Polygon((x(F), (-0.15)), (x(F) - 0.05, (-0.15)), (x(F) - 0.05, (-0.11)), (x(F), (-0.11))) → overrover, overrover_1, overrover_2, overrover_3, overrover_4
  23. Sequence(Sum[Sequence[Element[changeindisests, j], j, 1, k]], k, 1, n + 1) → underpositions
  24. Append(0, Sequence[Sum[Sequence[(v((j * Δt)) * Δt), j, 1, k]], k, 1, n]) → overpositions
  25. Sequence(Point[{((k - 1) * Δt) - (1 / 2 * Δt), Element[changeindisests, k]}], k, 2, ncounter + 1) → areadispts
  26. Sequence(Segment[(Element[underpositions, k] - Element[underpositions, 1], 0.14), (Element[underpositions, k + 1] - Element[underpositions, 1], 0.14)], k, 1, ncounter) → underdislines
  27. Sequence(Segment[(Element[overpositions, k] - Element[overpositions, 1], (-0.18)), (Element[overpositions, k + 1] - Element[overpositions, 1], (-0.18))], k, 1, ncounter) → overdislines
  28. Sequence(Midpoint[Element[underdislines, k]], k, 1, ncounter) → undermidpts
  29. Sequence(Midpoint[Element[overdislines, k]], k, 1, ncounter) → overmidpts
  30. Sequence(Text[Element[changeindisests, k], (x(Element[undermidpts, k - 1]) - 0.025, y(Element[undermidpts, k - 1]) - 0.03)], k, 2, ncounter + 1) → underdistext
  31. Sequence(Text[Element[changeindisests, k], (x(Element[overmidpts, k - 2]) - 0.025, y(Element[overmidpts, k - 2]) - 0.03)], k, 3, ncounter + 2) → overdistext
  32. Point({((ncounter * Δt) + x(A)) / 2, (1 / 2 * undervelocity)}) → lastareadispt
  33. Text(lastoverrect, (x(lastareadispt) - 0.06, y(lastareadispt))) → lastoverrecttext
  34. Text(lastunderrect, (x(lastareadispt) - 0.06, y(lastareadispt) - 0.05)) → lastunderrecttext
  35. Sequence(Segment[(Element[positions, k - 1], (-0.04)), (Element[positions, k], (-0.04))], k, 2, ncounter + 1) → distancelines
  36. Sequence(Segment[(Element[positions, k], 0.01), (Element[positions, k], (-0.07))], k, 1, ncounter + 1) → distancesegments
  37. Segment((Element[underpositions, ncounter + 1], 0.14), (totalunderdistance, 0.14)) → underendseg
  38. Segment((Element[overpositions, ncounter + 1], (-0.18)), (totaloverdistance, (-0.18))) → overendseg
  39. Midpoint(underendseg) → Midunderseg
  40. Midpoint(overendseg) → Midoverendseg
  41. Text(lastoverrect, (x(Midoverendseg) - 0.03, y(Midoverendseg) - 0.03)) → overendtext
  42. Text(lastunderrect, (x(Midunderseg) - 0.03, y(Midunderseg) - 0.03)) → underendtext
  43. Semicircle((x(B) - 0.06, 0.08), (x(B) - 0.08, 0.06)) → rover_6
  44. Segment((x(B) - 0.05, 0.05), (x(B) - 0.08, 0.08)) → rover_5
  45. Sequence(Polygon[(Element[positions, k], 0.01), (Element[positions, k] - 0.05, 0.01), (Element[positions, k] - 0.05, 0.05), (Element[positions, k], 0.05)], k, 1, ncounter + 1) → rovershawdows
  46. Sequence(Segment[(Element[positions, k] - 0.05, 0.05), (Element[positions, k] - 0.08, 0.08)], k, 1, ncounter + 1) → rovershawdowsline
  47. Sequence(Semicircle[(Element[positions, k] - 0.06, 0.08), (Element[positions, k] - 0.08, 0.06)], k, 1, ncounter + 1) → roverdishes
  48. Sequence({Point[{Element[positions, k] - 0.04, 0.01}], Point[{Element[positions, k] - 0.015, 0.01}]}, k, 1, ncounter + 1) → rovershadowwheels
  49. Semicircle((x(F) - 0.06, (-0.08)), (x(F) - 0.08, (-0.1))) → overrover_6
  50. Segment((x(F) - 0.05, (-0.11)), (x(F) - 0.08, (-0.08))) → overrover_5
  51. Segment((-10, -0.1575), (10, -0.1575)) → overroad
  52. Sequence(Segment[(Element[overpositions, k], (-0.22)), (Element[overpositions, k], (-0.15))], k, 1, ncounter + 1) → overdissegs
  53. Segment((-10, 0.16), (10, 0.16)) → underroad
  54. Sequence(Segment[(Element[underpositions, k], 0.17), (Element[underpositions, k], 0.1)], k, 1, ncounter + 1) → underdissegs
  55. Segment((x(E) - 0.05, 0.21), (x(E) - 0.08, 0.24)) → underrover_5
  56. Semicircle((x(E) - 0.06, 0.24), (x(E) - 0.08, 0.22)) → underrover_6
  57. UpperSum(v, 0, (ncounter * Δt), ncounter) → errorover
  58. Integral(v, 0, t) → errorintegral
  59. LowerSum(v, 0, (ncounter * Δt), ncounter) → underwhiteregion
  60. Polygon(A, ((ncounter * Δt), 0), ((ncounter * Δt), v((ncounter * Δt))), (t, v((ncounter * Δt)))) → lastunderrectwhite, lastunderrectw_1, lastunderrectw_2, lastunderrectw_3, lastunderrectw_4
  61. Polygon(A, ((ncounter * Δt), 0), ((ncounter * Δt), overvelocity), (t, overvelocity)) → lastoverrecterror, lastoverrecterror_1, lastoverrecterror_2, lastoverrecterror_3, lastoverrecterror_4
  62. Segment((-0.14, 0.33), (0.26, 0.33)) → timeline_2
  63. Point(timeline_2) → timept
  64. Segment((x(B), 0.17), (x(B), 0)) → undereseg
  65. Segment((totaloverdistance, 0.01), (totaloverdistance, (-0.18))) → overeseg
  66. Sequence(Text[Element[changeindisests, k], (x(Element[areadispts, k - 1]) - 0.075, y(Element[areadispts, k - 1]) - 0.04)], k, 2, ncounter + 1) → undertext
  67. Sequence(Text[Element[changeindisests, k], (x(Element[areadispts, k - 2]) - 0.075, y(Element[areadispts, k - 2] + 0.02))], k, 3, ncounter + 2) → overtext
  68. Sequence(v((k * Δt)), k, 0, ncounter) → velocities
  69. Sequence(Segment[(0, Element[velocities, k + 1]), ((k * Δt), Element[velocities, k + 1])], k, 1, ncounter) → overvelocitylines
  70. Sequence(Segment[(0, Element[velocities, k]), (((k - 1) * Δt), Element[velocities, k])], k, 1, ncounter) → undervelocitylines
  71. Sequence(Text[Element[velocities, k], ((-0.15), Element[velocities, k] - 0.02)], k, 1, ncounter) → velocitiesundertext
  72. Sequence(Text[Element[velocities, k], ((-0.15), Element[velocities, k] - 0.02)], k, 2, ncounter + 1) → velocitiesovertext
  73. UpperSum(v, 0, (ncounter * Δt), ncounter) → ebgraph
  74. Polygon((t, undervelocity), ((ncounter * Δt), undervelocity), ((ncounter * Δt), overvelocity), (t, overvelocity)) → lastebrect, lastebrect_1, lastebrect_2, lastebrect_3, lastebrect_4
  75. Segment((totaloverdistance, (-0.04)), (x(B), (-0.04))) → overeline
  76. Segment((totalunderdistance, 0.14), (x(B), 0.14)) → undereline
  77. Segment((totalunderdistance, 0.17), (totalunderdistance, 0.075)) → ebunderseg
  78. Segment((totalunderdistance, 0.1), (totaloverdistance, 0.1)) → ebline
  79. Sequence(Text[Element[velocities, k], (Element[positions, k] - 0.04, 0.02)], k, 2, ncounter + 1) → velocitiesovertext_2
  80. Sequence(Text[Element[velocities, k], (Element[positions, k] - 0.04, 0.02)], k, 1, ncounter) → velocitiesundertext_2
  81. Sequence(Segment[(((k * 0.4 / 2) * Δt) - 0.14, 0.35), (((k * 0.4 / 2) * Δt) - 0.14, 0.31)], k, 0, n) → list1
  82. Segment((-0.14, 0.33), timept) → timeline_3
  83. Segment((totalunderdistance, 0.17), (totalunderdistance, 0.1)) → underdislastseg
  84. Segment((totaloverdistance, (-0.22)), (totaloverdistance, (-0.15))) → overdislastseg
  85. VerticalText("velocity in miles per hour") → text26
  86. Segment((totaloverdistance, (-0.18)), (totaloverdistance, 0.13)) → eboverseg
  87. Segment((x(B), 0.01), (x(B), (-0.07))) → overeroverseg
  88. Segment(A, (t, v(t))) → graphvelocityline_1
  89. Segment((t, v(t)), (0, v(t))) → graphvelocityline_2
  90. Text(v(t), ((-0.15), v(t) - 0.015)) → velocitytext
  91. Line(C, D) → b