绝对值方程的根
几何画板及绘图内容加载中,请稍等……
①本范例演示了绝对值方程的根的几何表示与求解过程;②涉及的核心数学概念包括绝对值函数、方程求解、几何作图;③作图要点——从下方『构造摘要』提炼用到了 Ray(射线)、Slope(斜率)、Mirror(镜像)、Intersect(相交)、Segment(线段)、Point(点)、Line(直线)、RemoveUndefined(移除未定义对象)、Element(元素)、If(条件)、Polygon(多边形)、Unique(唯一)、LaTeX(公式显示)等 GeoGebra 命令/对象;④适合高中数学学习,用于理解绝对值方程的解法及其几何意义。
GeoGebra 命令及参数
Ray(C, C') → RayC'Slope(RayC') → minSlopeMirror(C', x = x(C)) → C''Ray(C, C'') → RayC''Intersect(RayC'', Line[topRight, yAxis]) → maxRightSlope(RayC'') → maxSlopeSegment((vbRight, vbBottom), (vbRight, vbTop)) → vSliderRightPoint(vSliderRight) → BIntersect(RayC', Line[bottomLeft, yAxis]) → maxLeftSegment((vbLeft, vbBottom), (vbLeft, vbTop)) → vSliderLeftPoint(vSliderLeft) → ALine(B, A) → LineARemoveUndefined(Union[{Intersect[LineA, RayC']}, {Intersect[LineA, RayC'']}]) → IntersectionPointsAElement(IntersectionPointsA, 1) → firstIntPtIf(xInterceptVal > 0, Line[B, Line[C, C']], Line[A, Line[C, C'']]) → LineBRemoveUndefined(Union[{Intersect[LineB, RayC']}, {Intersect[LineB, RayC'']}]) → IntersectionPointsBPolygon({(vbRight, vbTop), (vbRight, vbBottom), (vbLeft, vbBottom), (vbLeft, vbTop)}) → viewboxRemoveUndefined(Zip[If[IsInRegion[A, viewbox], A], A, IntersectionPointsB]) → IntPointsBInViewboxIf(fixedSlope, Slope[LineB] ≟ maxSlope ∧ Distance[Element[IntersectionPointsB, 1], C] < pointTolerance, Distance[B, maxRight] < pointTolerance ∧ abs(Slope[LineA] - maxSlope) < slopeTolerance) → infiniteSolutionsC''If(fixedSlope, Distance[Element[IntersectionPointsB, 1], C] < pointTolerance ∧ Slope[LineB] ≟ minSlope, Distance[maxLeft, A] < pointTolerance ∧ abs(Slope[LineA] - minSlope) < slopeTolerance) → infiniteSolutionsC'Unique(Zip[If[Distance[A, firstIntPt] < pointTolerance, firstIntPt, A], A, IntersectionPointsA]) → IntPtsWithToleranceARemoveUndefined(Zip[If[IsInRegion[A, viewbox], A], A, IntPtsWithToleranceA]) → IntPointsInViewboxLaTeX("y=\left\vert ax+b \right\vert") → lblFIf(fixedSlope, If[Defined[IntersectionPointsB], Length[IntersectionPointsB], 0], If[Defined[IntPtsWithToleranceA], Length[IntPtsWithToleranceA], 0]) → numIntersectionPointsLaTeX("y=px+q") → lblGIntersect(If[fixedSlope, LineB, LineA], x = 3) → LblptLaTeX("\text{\textbf{Instructions: }Move points \(A\) and \(B\) up and down to change \(y=px+q\).\\Click `Lock slope' to match the slope of \(px+q\) with the slope of one branch of \(\left\vert ax+b\right\vert\). \\Click `Try Another' to change \(\left\vert ax+b \right\vert\).}") → SpecInstrucLaTeX("\text{\textbf{Note: } The number of roots of \(\left\vert ax+b\right\vert = px+q\) is equal to\\the number of intersection points of \(y=\left\vert ax + b \right\vert \) and \(y=px + q\).}") → txtInfoRay(C, C'') → RayC''InfiniteLaTeX(If[nonVisiblePoints, "Note: one or more of the intersection \\points is not visible in the viewing window.", ""]) → fbNotVisibleRay(C, C') → RayC'InfiniteLaTeX((((("\text{There " * If[infiniteSolutions, "are an infinite number \\of intersection points.", If[numIntersectionPoints ≟ 0, "are NO intersection points.", If[numIntersectionPoints ≟ 1, "is one intersection point.", "are two intersection points."]]]) * "\\") * fbNotVisible) * "}")) → txtNumIntersectionPtsLaTeX("\text{\textbf{Question: }How many roots can equations of the form \(\left\vert ax+b \right\vert = px+q\) have?}") → MainInstrucSegment(Element[legendAnchors, 2], Element[legendAnchors, 2] + (3, 0)) → lineLegendSegment(Element[legendAnchors, 1], Element[legendAnchors, 1] + (3, 0)) → fxLegend