Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
/* * This file: * http://anggtwu.net/MAXIMA/2025-1-C3-P1-Q1.mac.html * http://anggtwu.net/MAXIMA/2025-1-C3-P1-Q1.mac * (find-angg "MAXIMA/2025-1-C3-P1-Q1.mac") * Author: Eduardo Ochs <eduardoochs@gmail.com> * See: (find-angg "GNUPLOT/2025-1-C3-P1.dem") * (c3m251p1p 1 "title") * (c3m251p1a "title") * * «.item-a» (to "item-a") * «.item-c» (to "item-c") * «.item-e» (to "item-e") * «.item-f» (to "item-f") * «.item-g» (to "item-g") * * (defun e () (interactive) (find-angg "MAXIMA/2025-1-C3-P1-Q1.mac")) * (find-myqdraw "myqdraw3.mac") * (find-angg "MAXIMA/2025-cases.mac") */ load_myqdraw(); load("~/myqdraw/mydraw3d.mac"); load("~/MAXIMA/2025-cases.mac"); [xmin,ymin, xmax,ymax] : [0,0, 10,6]; z_NW:2*x-4; z_NE:x; z_SW:x-2; z_SE:2*x-8; z_W:0; z_C:x+y-4; z_E:8; z_M : max(min(z_NW,z_NE,z_C),z_SW,z_SE); z_all : max(z_W,min(z_M,z_E)); define(F_NW(x,y), z_NW); define(F_NE(x,y), z_NE); define(F_SW(x,y), z_SW); define(F_SE(x,y), z_SE); define(F_W (x,y), z_W); define(F_E (x,y), z_E); define(F_C (x,y), z_C); define(F (x,y), z_all); M_b : matrix(['F_NW(x,y), "=", F_NW(x,y)], ['F_NE(x,y), "=", F_NE(x,y)], ['F_SW(x,y), "=", F_SW(x,y)], ['F_SE(x,y), "=", F_SE(x,y)], ['F_W (x,y), "=", F_W (x,y)], ['F_E (x,y), "=", F_E (x,y)], ['F_C (x,y), "=", F_C (x,y)]); item_b : M_b; /* «item-a» (to ".item-a") * (eepitch-maxima) * (eepitch-kill) * (eepitch-maxima) load("2025-1-C3-P1-Q1.mac"); linel : 110; numerozinhos([x,y]); numerozinhos(F(x,y)); mydraw3d_z(x,y) := F(x,y); mydraw3d(mydraw3d_squares(), noaxes(), prop(), view=[63,287])$ M_b; item_b; */ eqs : [z=F_C(x,y), z=F_NW(x,y), z=2*t]; eqs2 : solve(eqs, [x,y,z])[1]; subst(eqs2, [x,y,z]); define(P(t), subst(eqs2, [x,y,z])); item_c : apply('matrix, makelist([t,P(t)], t,-2,4)); item_d : P(t); /* «item-c» (to ".item-c") * (eepitch-maxima) * (eepitch-kill) * (eepitch-maxima) load("2025-1-C3-P1-Q1.mac"); item_c; item_d; [P(0), diff(P(t),t)]; P(0) + t * diff(P(t),t); */ /* «item-e» (to ".item-e") * (find-es "maxima" "2024.2-C3-P1-Q1" "gradz(x,y) :=") */ define(z(x,y), F(x,y)); eps : 1/4; z_xr (x,y) := (z(x+eps,y)-z(x,y))/ eps; z_xl (x,y) := (z(x-eps,y)-z(x,y))/-eps; z_yu (x,y) := (z(x,y+eps)-z(x,y))/ eps; z_yd (x,y) := (z(x,y-eps)-z(x,y))/-eps; gradz(x,y) := if (z_xr(x,y) = z_xl(x,y)) and (z_yu(x,y) = z_yd(x,y)) then [z_xr(x,y), z_yu(x,y)] else "X"; item_e : numerozinhos(gradz(x,y)); /* * (eepitch-maxima) * (eepitch-kill) * (eepitch-maxima) load("2025-1-C3-P1-Q1.mac"); linel : 110; numerozinhos(gradz(x,y)); */ Q_L(t) := [1,5] + t*[1,-2]; Q_R(t) := [5,2] + (t-3)*[2,1]; Q(t) := if t < 3 then Q_L(t) else Q_R(t); x(t) := Q(t)[1]; y(t) := Q(t)[2]; h(t) := F(x(t),y(t)); /* «item-f» (to ".item-f") ** (c3m251p1p 3 "questao-1f") ** (c3m251p1a "questao-1f") * (eepitch-maxima) * (eepitch-kill) * (eepitch-maxima) load("2025-1-C3-P1-Q1.mac"); [xmin,ymin, xmax,ymax] : [0,0, 6,8]; ts : seqby(0,6, 1/16); ts : seqby(0,6, 1/32); ts : seqby(1,2, 1/32); ts : seqby(0,3, 1/16); ptss : makelist([t,h(t)], t,ts); myqdraw(pts(ptss)); myqdraw(xyrange0(), pts(ptss)); myqdraw(xyrange(), pts(ptss)); */ hg(t) := a*t + b; gethn(t1,t2) := block([eqs,sol], eqs : [hg(t1)=h(t1), hg(t2)=h(t2)], sol : solve(eqs, [a,b]), subst(sol, hg(t))); intersect(f1,f2) := rhs(solve(f1(t)=f2(t),t)[1]); eps : 1/100; define(h1(t), gethn(1/2, 1/2 +eps)); define(h2(t), gethn(1, 1 +eps)); define(h3(t), gethn(14/10, 14/10-eps)); define(h4(t), gethn(2, 2 +eps)); define(h5(t), gethn(3, 3 +eps)); define(h6(t), gethn(4, 4 +eps)); define(h7(t), gethn(5, 5 +eps)); h12 : intersect(h1, h2); h23 : intersect(h2, h3); h34 : intersect(h3, h4); h45 : 3; h56 : intersect(h5, h6); h67 : intersect(h6, h7); myc : Cases([t<h12, t<h23, t<h34, t<h45, t<h56, t<h67, true], [h1(t), h2(t), h3(t), h4(t), h5(t), h6(t), h7(t)])$ item_g : myc@@matrix(); /* like h(t), but defined by cases */ define(hc(t), myc@@makeif()); /* «item-g» (to ".item-g") ** (c3m251p1p 3 "questao-1g") ** (c3m251p1a "questao-1g") * (eepitch-maxima) * (eepitch-kill) * (eepitch-maxima) load("2025-1-C3-P1-Q1.mac"); myc@@pairs(); myc@@matrix(); myc@@makeif(); item_g; [xmin,ymin, xmax,ymax] : [0,0, 6,8]; ts : seqby(0,6, 1/16); ts : seqby(0,6, 1/32); ts : seqby(1,2, 1/32); ts : seqby(0,3, 1/16); pts_h : makelist([t,h(t)], t,ts); pts_hc : makelist([t,hc(t)+1/10], t,ts); pts_all : [pts(pts_h), pts(pts_hc, pc(orange))]; myqdraw(pts_all); myqdraw(xyrange0(), pts_all); myqdraw(xyrange(), pts_all); */