A Maple egy fejlett matematikai problémamegoldó és programozói szoftver.
-
xDJCx #534
Egyik gond, hogy a tan és cot argumentumát nem pontosan a kívánt alakban írja, azaz 2*Pi/4-et Pi/2-vé egyszerűsíti a Maple. Ebben nehéz megakadályozni. Van rá trükk pl. az alábbi forma:
tan(2*x+ 2 * ``(Pi/4));
Ez a munkalapon működik, a megjelenítés megfelelő, de valamiért a mathcontainer-ben nem szépen jeleníti meg.
Ábra feliratként (pl. legend) viszont szépen megjeleníti a typeset alak használatával (lásd alább.) Így akár felesleges is a Mathcontainer-es kiíratása a képletnek.
Továbbá mivel Mathcontainer-ben és ábra feliratként nem kell a képlettel tovább számolni, ezért akár tg is írható a tan helyett ( és ctg cot helyett. Ekkor nem ismert függvényként a Maple nem alakítja át pl. cot-tá. Így felesleges az ajánlott applyrule-átalakítás.
Az ábra rácsozathoz érdemes megpróbálni a gridlines opciót.
A fentiek szerint átírtam a programot.
Do(%Plot1=plots:-pointplot([NULL]));
Do(%MathContainer1=0);
Do(%MathContainer2=0);
plots:-setoptions(thickness=2,labels=["x","y"],tickmarks = [spacing(Pi/4), default],gridlines=true);
f1:='f1';
f2:='f2';
a1:=0;a2:=0;
if Do(%CheckBox1)then
phi1:=Do(%Slider3)*Pi/4;
a1:=Do(%Slider1);
o1:=Do(%Slider2);
f1:=a1*tan(o1*x+phi1);
m1:=a1*tg(o1*x+phi1);
Do(%MathContainer1=m1);
end if;
if Do(%CheckBox2)then
phi2:=Do(%Slider6)*Pi/4;
a2:=Do(%Slider4);
o2:=Do(%Slider5);
f2:=a2*cot(o2*x+phi2);
m2:=a2*ctg(o2*x+phi2);
Do(%MathContainer2=m2);
end if;
ymax:=10;
gtan:=plot(f1,x=-2*Pi..2*Pi,y=-ymax..ymax,color="Blue",discont=true,gridlines=true,legend=typeset(a1*tg(o1*x+phi1/(Pi/4)* ``(Pi/4))));
gcot:=plot(f2,x=-2*Pi..2*Pi,y=-ymax..ymax,color="IndianRed",discont=true,gridlines=true,legend=typeset(a2*ctg(o2*x+phi2/(Pi/4)* ``(Pi/4))));
Do(%Plot1=plots:-display(gtan,gcot));
end use;