Visualizing Functions of Two Variables

Visualizing Functions of Two Variables
Loading the math board and drawing, please wait…
2017-01-06 19:42
This example demonstrates the visualization of functions of two variables. Key mathematical concepts include functions, derivatives, and geometric construction. It uses commands like Polygon, ImplicitCurve, IntersectPath, etc. Suitable for high school and above students or teachers.

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

AI Drawing Prompt Reference

Draw a 3D function graph with the function expression f(x, y), where x ranges from x_{min} to x_{max} and y ranges from y_{min} to y_{max}. First, draw a quadrilateral as the base. Then, draw the surface of the function between z_{min} and z_{max}. Next, draw the intersection lines of the function with the planes at z_{min} and z_{max}, and find the highest and lowest points on these lines. Finally, draw the lines connecting these points.
The prompt above was compiled from the original drawing commands and is for reference only.