Warning: this is an htmlized version!
The original is here, and
the conversion rules are here.
/*
 * This file:
 *   http://anggtwu.net/MAXIMA/2024-2-C3-P2.mac.html
 *   http://anggtwu.net/MAXIMA/2024-2-C3-P2.mac
 *          (find-angg "MAXIMA/2024-2-C3-P2.mac")
 * Author: Eduardo Ochs <eduardoochs@gmail.com>
 *
 * (defun e () (interactive) (find-angg "MAXIMA/2024-2-C3-P2.mac"))
 * See: (find-angg "MAXIMA/2024-2-C3-VR.mac")
*/

* (setq last-kbd-macro (kbd "C-a %M SPC C-a <down>"))
* (eepitch-maxima)
* (eepitch-kill)
* (eepitch-maxima)
load("/usr/share/emacs/site-lisp/maxima/emaxima.lisp")$
load("~/MAXIMA/barematrix1.mac")$
:lisp (setf (get '$display2d 'assign) nil)
display2d:'emaxima$

* (eepitch-maxima)
* (eepitch-kill)
* (eepitch-maxima)
** (find-myqdraw "myqdraw3.mac")
load_myqdraw();
** (find-fline "~/LATEX/2024-2-C3/" "P2_")
[topdf_a,topdf_b,topdf_c,topdf_n] : ["~/LATEX/", "2024-2-C3/", "P2", 0];
myqdrawp_to_screen (); myps(s):=ps(s);
myqdrawp_to_new_pdf(); myps(s):=ps(s/5);
myPopts          (colr) := [pc(colr),myps(2)];
myvopts          (colr) := [lc(colr),hl(0.15),ht(f)];
linel : 110;
linenum : 0;
*
* (eeks 0.2 0.2)
[xmin,xmax, ymin,ymax] : [-2,2, -2,2];
numsB(expr) :=
  apply(matrix,
        makelist(makelist(ev(expr), x,-2,2),
                 y, seqby(2,-2,-1)))$
F : x + y^2;
G : 2*x + y;
define(F(x,y), F);
define(G(x,y), G);

/* (a): 0.5 pts */
numsB(F);

/* (b): 0.5 pts */
numsB(G);

/* (c): 0.5 pts */
G_B : [myimp1(G=-2, lc(blue)),
       myimp1(G=-1, lc(forest_green)),
       myimp1(G=0,  lc(gold)),
       myimp1(G=1,  lc(orange)),
       myimp1(G=2,  lc(red))]$
myqdrawp(xyrange(), G_B);

/* (d): 0.5 pts */
D_B : [myimp1(G=-2, lc(gray))]$
myqdrawp(xyrange(), D_B);

/* (e): 0.5 pts */
/* (f): 0.5 pts */
F_B : [myimp1(F=-1, lc(blue)),
       myimp1(F=0,  lc(forest_green)),
       myimp1(F=1,  lc(orange)),
       myimp1(F=2,  lc(red))]$
myqdrawp(xyrange(), F_B);

/* (g): 1.0 pts */
F_ys(z) := block([ys],
  ys : solve([G=-2,F=z],[x,y]),
  [rhs(ys[1][2]), rhs(ys[2][2])]);
F_miny(z) := apply('min, F_ys(z));
F_maxy(z) := apply('max, F_ys(z));
F_C_z(z,color) := myapply_fl('imp1, F=z, x,-2,2, y,F_miny(z),F_maxy(z), lc(color));
F_C : [F_C_z(-1, blue),
       F_C_z( 0, forest_green),
       F_C_z( 1, orange),
       F_C_z( 2, red)];
myqdrawp(xyrange(), D_B, F_C);

/* (h): 1.0 pts */
[F(-1,0), F(2,-2), F(2,2)];

/* (i): 0.5 pts */
                       G=-2;
                 solve(G=-2, y);
                 solve(G=-2, y)[1];
             rhs(solve(G=-2, y)[1]);
define(d(x), rhs(solve(G=-2, y)[1]));
define(P(x), [x,d(x)]);
[a,b] : [-2,-2];

/* (j): 0.5 pts */
grad(F) := [diff(F,x), diff(F,y)]$
define(gradF (x,y), grad(F));
define(gradG (x,y), grad(G));
define(gradFP(x), apply('gradF, P(x)));
define(gradGP(x), apply('gradG, P(x)));

/* (k): 1.0 pts */
gradsP(x) := [myPv_c(P(x),gradGP(x)/3, blue),
              myPv_c(P(x),gradFP(x)/3, dark_violet)]$
gradsP_3  : [gradsP(-1.5), gradsP(-1), gradsP(-0.5)]$
myqdrawp(xyrange(), D_B, F_C, gradsP_3);

/* (l): 1.0 pts */
eq1 : 2*gradFP(x)    = gradGP(x);
eq2 : 2*gradFP(x)[2] = gradGP(x)[2];
         solve(eq2, x);
         solve(eq2, x)[1];
xm : rhs(solve(eq2, x)[1]);  /*  -9/8  */
ym : d(xm);                  /*   1/4  */
Fm : F(xm,ym);               /* -17/16 */

/* (m): 1.0 pts */
gradsP_xm : [gradsP(xm)]$
myqdrawp(xyrange(), D_B, F_C, gradsP_xm);

/* (n): 1.0 pts */
Fnw : F(-2,d(-2));
Fsw : F(0,d(0));
Fne : F(2,2);
Fse : F(2,-2);
     [Fm, Fnw, Fsw];
FD : [Fm, max(Fnw, Fsw)];
FC : [Fm, max(Fnw, Fsw, Fne, Fse)];

*
** (find-myqdraw "myqdraw3.mac" "myPv")