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;