Visualizing Functions of Two Variables by Roman Chijner (2)

Visualizing Functions of Two Variables by Roman Chijner (2)
Loading the math board and drawing, please wait…
2017-01-07 02:44
This example demonstrates how to visualize functions of two variables using GeoGebra. Core math concepts include functions, vectors, polygons, and coordinate geometry. Key constructions involve commands like Polygon, ImplicitCurve, Locus, and Vector to plot function graphs, vector fields, and trajectories; Sequence and Sum for generating sequences and summations; and Textfield, RotateText for dynamic text display. Suitable for high school and above, aiding in understanding the geometric representation of multivariate functions and vector analysis.

GeoGebra Commands & Parameters

  1. Polygon((x_{max}, y_{max}), (x_{min}, y_{max}), (x_{min}, y_{min}), (x_{max}, y_{min})) → VV, j, t, c, d
  2. If(b_a, Nx_a, 1) → Nx1_a
  3. Polygon((x((ro; α)), y((ro; α)), z_{min}) + PTest, (x((ro; α + 180°)), y((ro; α + 180°)), z_{min}) + PTest, (x((ro; α + 180°)), y((ro; α + 180°)), z_{max}) + PTest, (x((ro; α)), y((ro; α)), z_{max}) + PTest) → poly1, k, l, m, p
  4. ImplicitCurve(f(x, y) - f(x(C), y(C))) → ICurve_2
  5. IntersectPath(plane0, f(x, y)) → ICurve_3
  6. Point(ICurve_2) → R0
  7. Length(lr2) → llr2
  8. Sequence((x(Element[lr2, i]), y(Element[lr2, i]), f(x(Element[lr2, i]), y(Element[lr2, i]))), i, 1, llr2) → lllPmin01
  9. If(Length[lllPmin01] ≟ 0, false, true) → bwllPmin01
  10. Length(lr1) → llr1
  11. Sequence((x(Element[lr1, i]), y(Element[lr1, i]), f(x(Element[lr1, i]), y(Element[lr1, i]))), i, 1, llr1) → lllPmax01
  12. If(Length[lllPmax01] ≟ 0, false, true) → bwllPmax01
  13. If(bwllPmax01, Max[z(lllPmax01)], 1000) → Maxz0
  14. If(bwllPmax01, IndexOf[Maxz0, Sequence[z(Element[lllPmax01, i]), i, 1, Length[lllPmax01]]], 1000) → Indexmaxz0
  15. If(b, true, false) → h
  16. If(h, Nx, 1) → Nx1
  17. Length(lr3) → llr3
  18. Point(Segment[(0, 0), (6.28319, 0)]) → Af
  19. Point(Segment[Px2, Px1]) → Ax
  20. Point(Segment[Py2, Py1]) → Ay
  21. Textfield(N_{V1}) → inputBox1
  22. Textfield(x_{min}) → inputBox2
  23. Textfield(x_{max}) → inputBox3
  24. Textfield(y_{min}) → inputBox4
  25. Textfield(y_{max}) → inputBox5
  26. Textfield(f) → inputBox6
  27. Textfield(z_{min}) → inputBox7
  28. Textfield(z_{max}) → inputBox8
  29. Point(Segment[Pz2, Pz1]) → Az
  30. Textfield(ω_c) → inputBox9
  31. Textfield(vt) → inputBox10
  32. Sum(Sequence[If[f(x(PTest), y(PTest)) - f(x(Element[lr01, i]), y(Element[lr01, i])) > 0, 1, 0], i, 1, n]) → ext1
  33. RotateText("z_{min}=" + z_{min} + "", 90°) → Text2
  34. RotateText("z_{max}=" + z_{max} + "", 90°) → Text6
  35. Sequence(Segment[Element[l0maxmin2, k], Element[l0maxmin2, k + 1]], k, 1, Length[l0maxmin2]) → linelmaxmin2
  36. Sequence(Element[lr1, i], i, 1, llr1) → lPmax
  37. Sequence(Element[lr2, i], i, 1, llr2) → lPmin
  38. Sequence(Element[lr3, i], i, 1, llr3) → lPsad
  39. If(bwllPmin01, Min[z(lllPmin01)], 1000) → Minz0
  40. If(bwllPmin01, IndexOf[Minz0, Sequence[z(Element[lllPmin01, i]), i, 1, Length[lllPmin01]]], 1000) → Indexminz0
  41. Element(lr2, Indexminz0) → P_{min0}
  42. If(bwllPmin01, Element[lllPmin01, Indexminz0], (1000, 1000, 1000)) → zmin2
  43. Point(Liste1) → C111a
  44. Locus(C1110a, C111a) → loc
  45. PolyLine(l0maxmin1) → linelmaxmin11
  46. If(bwllPmax01, Element[lllPmax01, Indexmaxz0], (1000, 1000, 1000)) → zmax2
  47. RemoveUndefined(Sequence[If[f(x(PTest), y(PTest)) - f(x(Element[lr01, i]), y(Element[lr01, i])) > 0, i, NaN], i, 1, n]) → lr04
  48. Zip(Vector[b, a], a, Sequence[Element[lr01, Element[lr04, i]], i, 1, Length[lr04]], b, Sequence[Element[lr02, Element[lr04, i]], i, 1, Length[lr04]]) → lr06
  49. Sequence((x(Element[lr01, i]), y(Element[lr01, i]), f(x(Element[lr01, i]), y(Element[lr01, i]))), i, 1, n) → lr013
  50. Sequence((x(Element[lr02, i]), y(Element[lr02, i]), f(x(Element[lr02, i]), y(Element[lr02, i]))), i, 1, n) → lr023
  51. Zip(Vector[b, a], a, Sequence[Element[lr013, Element[lr04, i]], i, 1, Length[lr04]], b, Sequence[Element[lr023, Element[lr04, i]], i, 1, Length[lr04]]) → lr063
  52. Zip(Vector[a, b], a, Sequence[Element[lr01, Element[lr05, i]], i, 1, Length[lr05]], b, Sequence[Element[lr02, Element[lr05, i]], i, 1, Length[lr05]]) → lr07
  53. Zip(Vector[a, b], a, Sequence[Element[lr013, Element[lr05, i]], i, 1, Length[lr05]], b, Sequence[Element[lr023, Element[lr05, i]], i, 1, Length[lr05]]) → lr073
  54. Textfield(zoom_{3D}) → InputBox1
  55. Element(lr1, rmax - 1) → Pzmax
  56. Element(lr2, rmin - 1) → Pzmin
  57. Element(lr3, rsad - 1) → Pzsad
  58. Text("( x , y , z )") → TextR01
  59. Join({{TextR01}, lllPmax01}) → llPmax01
  60. Element(lr1, Indexmaxz0) → P_{max0}
  61. Sequence((x(Element[lr3, i]), y(Element[lr3, i]), f(x(Element[lr3, i]), y(Element[lr3, i]))), i, 1, llr3) → lllPsp
  62. Join({{TextR01}, lllPmin01}) → llPmin01
  63. Join({{TextR01}, lllPsp}) → llPsad01
  64. Element(lllPsp, rsad - 1) → Pzsad_{3D}
  65. Element(lllPmax01, rmax - 1) → Pzmax_{3D}
  66. Element(lllPmin01, rmin - 1) → Pzmin_{3D}
  67. Textfield(A) → InputBox2
  68. RemoveUndefined(Sequence[If[f(x(PTest), y(PTest)) - f(x(Element[lr01, i]), y(Element[lr01, i])) > 0, i, (-i)], i, 1, n]) → lr04c
  69. Append(lr04c, Element[lr04c, 1]) → lr04cc
  70. Sum(Sequence[If[(Element[lr04cc, i] * Element[lr04cc, i + 1]) < 0, 1, 0], i, 1, n + 1]) → lr04ccc
  71. Line(A, RoR) → i
  72. ImplicitCurve(f(x, y) - zi) → list3
  73. ImplicitCurve(f(x, y) - zii) → list4
  74. Vector(R0, R41) → w_11
  75. Vector(R0, R0 + R11) → u_11
  76. Textfield(ω0_c) → InputBox3
  77. Textfield(r_a) → InputBox5
  78. Point(c) → G
  79. Point(j) → H
  80. Point(w_11, 1) → I
  81. Vector(F, I_{3D}) → v
  82. If(ext1 ≟ n, 1, If[ext1 ≟ 0, 2, If[(lr04ccc > 2) ∧ (lr04ccc ≤ 4), 3, 4]]) → roo
  83. Textfield(n_c) → InputBox6
  84. Textfield(a_c) → InputBox7
  85. Textfield(r_{lc}) → InputBox8
  86. Textfield(vt) → InputBox9
  87. PolyLine(Bl) → Bly
  88. PolyLine(Gr) → Gry
  89. PolyLine(Ro) → Roy
  90. Textfield(Nx) → Resolution
  91. Textfield(r) → InputBox11
  92. Textfield(v_{m4}) → InputBox4
  93. Textfield(Nz) → InputBox10
  94. Textfield(n) → InputBox12
  95. Textfield(rr) → InputBox13
  96. Textfield(r_{ext}) → InputBox14
  97. Textfield(v_{zi}) → InputBox15
  98. Textfield(d_1) → InputBox16
  99. Textfield(f_1) → InputBox17