Visualizing Functions of Two Variables by Roman Chijner

Visualizing Functions of Two Variables by Roman Chijner
Loading the math board and drawing, please wait…
2016-12-26 01:27
This example demonstrates the visualization of functions of two variables. It involves key mathematical concepts such as functions and implicit curves. Using GeoGebra commands like If, ImplicitCurve, and others, complex geometric shapes can be constructed. Suitable for high school and above students or teachers.

GeoGebra Commands & Parameters

  1. If(b_a, Nx_a, 1) → Nx1_a
  2. Polygon((x_{max}, y_{max}), (x_{min}, y_{max}), (x_{min}, y_{min}), (x_{max}, y_{min})) → VV, j, t, c, d
  3. PointIn(VV) → E_φ
  4. PointIn(VV) → PTest
  5. 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
  6. ImplicitCurve(f(x, y) - f(x(C), y(C))) → ICurve_2
  7. IntersectPath(plane0, f(x, y)) → ICurve_3
  8. Point(ICurve_2) → R0
  9. Length(lr2) → llr2
  10. Sequence((x(Element[lr2, i]), y(Element[lr2, i]), f(x(Element[lr2, i]), y(Element[lr2, i]))), i, 1, llr2) → lllPmin01
  11. If(Length[lllPmin01] ≟ 0, false, true) → bwllPmin01
  12. Length(lr1) → llr1
  13. Sequence((x(Element[lr1, i]), y(Element[lr1, i]), f(x(Element[lr1, i]), y(Element[lr1, i]))), i, 1, llr1) → lllPmax01
  14. If(Length[lllPmax01] ≟ 0, false, true) → bwllPmax01
  15. If(bwllPmax01, Max[z(lllPmax01)], 1000) → Maxz0
  16. If(bwllPmax01, IndexOf[Maxz0, Sequence[z(Element[lllPmax01, i]), i, 1, Length[lllPmax01]]], 1000) → Indexmaxz0
  17. If(b, true, false) → h
  18. If(h, Nx, 1) → Nx1
  19. Length(lr3) → llr3
  20. Point(Segment[(0, 0), (6.28319, 0)]) → Af
  21. Point(Segment[Px2, Px1]) → Ax
  22. Point(Segment[Py2, Py1]) → Ay
  23. Textfield(N_{V1}) → inputBox1
  24. Textfield(x_{min}) → inputBox2
  25. Textfield(x_{max}) → inputBox3
  26. Textfield(y_{min}) → inputBox4
  27. Textfield(y_{max}) → inputBox5
  28. Textfield(f) → inputBox6
  29. Textfield(z_{min}) → inputBox7
  30. Textfield(z_{max}) → inputBox8
  31. Point(Segment[Pz2, Pz1]) → Az
  32. If(zzii < 0, 0, If[zzii > 1, 1, cos(((0.9 * zzii) * 10^(ω_c)))]) → Ra01
  33. If(zzii < 0, 0, If[zzii > 1, 0, sin(((0.5 * zzii) * 10^(ω_c)))]) → Ga01
  34. If(zzii < 0, 0, If[zzii > 1, 0, cos(((0.7 * zzii) * 10^(ω_c)))]) → Ba01
  35. Sequence((x(Element[Extrx0, i]), yi3_e), i, 1, Length[Extrx0]) → Extrx2
  36. Sequence((xi3_e, x(Element[Extry0, i])), i, 1, Length[Extry0]) → Extry2
  37. Textfield(ω_c) → inputBox9
  38. Textfield(vt) → inputBox10
  39. Sum(Sequence[If[f(x(PTest), y(PTest)) - f(x(Element[lr01, i]), y(Element[lr01, i])) > 0, 1, 0], i, 1, n]) → ext1
  40. RotateText("z_{min}=" + z_{min} + "", 90°) → Text2
  41. RotateText("z_{max}=" + z_{max} + "", 90°) → Text6
  42. Sequence(Segment[Element[l0maxmin2, k], Element[l0maxmin2, k + 1]], k, 1, Length[l0maxmin2]) → linelmaxmin2
  43. Sequence(Element[lr1, i], i, 1, llr1) → lPmax
  44. Sequence(Element[lr2, i], i, 1, llr2) → lPmin
  45. Sequence(Element[lr3, i], i, 1, llr3) → lPsad
  46. If(bwllPmin01, Min[z(lllPmin01)], 1000) → Minz0
  47. If(bwllPmin01, IndexOf[Minz0, Sequence[z(Element[lllPmin01, i]), i, 1, Length[lllPmin01]]], 1000) → Indexminz0
  48. Element(lr2, Indexminz0) → P_{min0}
  49. If(bwllPmin01, Element[lllPmin01, Indexminz0], (1000, 1000, 1000)) → zmin2
  50. Point(Liste1) → C111a
  51. Locus(C1110a, C111a) → loc
  52. Sequence(If[abs(Element[Ffarbe, i]) > 1, 0, cos((((e * 0.9) * Element[Ffarbe, i]) * 10^(ω_c)))], i, 1, Nx1) → Lvalue
  53. Sequence(If[Element[Ffarbe, i] < 0.14, 0, Element[Ffarbe, i]], i, 1, Nx1) → Lhue
  54. Sequence(If[Element[Ffarbe, i] < 0.14, 0, 1], i, 1, Nx1) → Lsat
  55. PolyLine(l0maxmin1) → linelmaxmin11
  56. If(bwllPmax01, Element[lllPmax01, Indexmaxz0], (1000, 1000, 1000)) → zmax2
  57. RemoveUndefined(Sequence[If[f(x(PTest), y(PTest)) - f(x(Element[lr01, i]), y(Element[lr01, i])) > 0, i, NaN], i, 1, n]) → lr04
  58. 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
  59. Sequence((x(Element[lr01, i]), y(Element[lr01, i]), f(x(Element[lr01, i]), y(Element[lr01, i]))), i, 1, n) → lr013
  60. Sequence((x(Element[lr02, i]), y(Element[lr02, i]), f(x(Element[lr02, i]), y(Element[lr02, i]))), i, 1, n) → lr023
  61. 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
  62. 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
  63. 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
  64. Textfield(zoom_{3D}) → InputBox1
  65. Element(lr1, rmax - 1) → Pzmax
  66. Element(lr2, rmin - 1) → Pzmin
  67. Element(lr3, rsad - 1) → Pzsad
  68. Text("( x , y , z )") → TextR01
  69. Join({{TextR01}, lllPmax01}) → llPmax01
  70. Element(lr1, Indexmaxz0) → P_{max0}
  71. Sequence((x(Element[lr3, i]), y(Element[lr3, i]), f(x(Element[lr3, i]), y(Element[lr3, i]))), i, 1, llr3) → lllPsp
  72. Join({{TextR01}, lllPmin01}) → llPmin01
  73. Join({{TextR01}, lllPsp}) → llPsad01
  74. Element(lllPsp, rsad - 1) → Pzsad_{3D}
  75. Element(lllPmax01, rmax - 1) → Pzmax_{3D}
  76. Element(lllPmin01, rmin - 1) → Pzmin_{3D}
  77. Sequence(If[Element[Ffarbe_a, i] < 0.14, 0, Element[Ffarbe_a, i]], i, 1, Nx1_a) → Lhue_a
  78. Sequence(If[abs(Element[Ffarbe_a, i]) > 1, 0, cos((((e * 0.9) * Element[Ffarbe_a, i]) * 10^(ω0_c)))], i, 1, Nx1_a) → Lvalue_a
  79. Sequence(If[Element[Ffarbe_a, i] < 0.14, 0, 1], i, 1, Nx1_a) → Lsat_a
  80. Circle(PTest, R) → s
  81. Textfield(A) → InputBox2
  82. RemoveUndefined(Sequence[If[f(x(PTest), y(PTest)) - f(x(Element[lr01, i]), y(Element[lr01, i])) > 0, i, (-i)], i, 1, n]) → lr04c
  83. Append(lr04c, Element[lr04c, 1]) → lr04cc
  84. Sum(Sequence[If[(Element[lr04cc, i] * Element[lr04cc, i + 1]) < 0, 1, 0], i, 1, n + 1]) → lr04ccc
  85. Line(A, RoR) → i
  86. ImplicitCurve(f(x, y) - zi) → list3
  87. If(dzir < 0.01, 0, dzir) → Lhuez
  88. ImplicitCurve(f(x, y) - zii) → list4
  89. If(dziir < 0.01, 0, dziir) → Lhuezii
  90. Circle(E_φ, R + 0.2) → sz
  91. Vector(R0, R41) → w_11
  92. Vector(R0, R0 + R11) → u_11
  93. SlopeField(f1', n_c, a_c, x_{min}, y_{min}, x_{max}, y_{max}) → SF
  94. Textfield(ω0_c) → InputBox3
  95. Textfield(R) → InputBox4
  96. Textfield(r_a) → InputBox5
  97. Point(c) → G
  98. Point(j) → H
  99. Point(w_11, 1) → I
  100. Vector(F, I_{3D}) → v
  101. If(ext1 ≟ n, 1, If[ext1 ≟ 0, 2, If[(lr04ccc > 2) ∧ (lr04ccc ≤ 4), 3, 4]]) → roo
  102. Textfield(n_c) → InputBox6
  103. Textfield(a_c) → InputBox7
  104. Textfield(r_{lc}) → InputBox8