A Maple egy fejlett matematikai problémamegoldó és programozói szoftver.
  • xDJCx
    #478
    A Riemann integrálközelítő összegekre egy megoldás:

    Az f függvény integrálját a..b intervallumban n db téglalap területének összegével közelíti, az opcióban a közelítés módja adható meg itt: "bal", "jobb" vagy "közép" , azaz a részintervallumok bal, jobb vagy középső pontjában veszi a függvényértéket a téglalapok magasságához.
    Az f függvény függvény vagy procedure formában adható meg, azaz pl.
    f:=x->sin(x)+1;

    Riemann:=proc(f::procedure,a::realcons,b::realcons,n::posint,opcio::string)
    local S,d,teglalapok;
    description"f függvény Riemann integrálközelító összegének számítása a..b tartományban";

    uses plots,plottools;

    if a>=b then return "Hibás tartomány!": end if;

    S:=0;d:=(b-a)/n;
    if opcio="bal" then
    S:=evalf(add(f(a+(i-1)*d)*d,i=1..n));
    teglalapok:=seq(rectangle([a+(i-1)*d, 0], [a+i*d, f(a+(i-1)*d)], color = blue),i=1..n):

    elif opcio="jobb" then
    S:=evalf(add(f(a+i*d)*d,i=1..n));
    teglalapok:=seq(rectangle([a+(i-1)*d, 0], [a+i*d, f(a+i*d)], color = blue),i=1..n):

    elif opcio="közép" then
    S:=evalf(add(f(a+(i-1)*d+d/2)*d,i=1..n));
    teglalapok:=seq(rectangle([a+(i-1)*d, 0], [a+i*d, f(a+(i-1)*d+d/2)], color = blue),i=1..n):

    else return "Hibás opció!":
    end if;
    display(plot(f(x),x=a..b,color=red),teglalapok,title=cat(" Riemann integrál közelítõ összeg : ",convert(S,'string')));

    end proc;


    # pl.
    f:=x->sin(x)+1;


    Riemann(f,0,3,10,"bal");

    Riemann(f,0,3,10,"jobb");

    Riemann(f,0,3,10,"közép");

    #Összevethető a Student csomag megfelelő parancsaival:

    Student[Calculus1][RiemannSum](f(x), x = 0 .. 3, method = left, output = plot);


    Student[Calculus1][RiemannSum](f(x), x = 0 .. 3, method = right, output = plot);


    Student[Calculus1][RiemannSum](f(x), x = 0 .. 3, method = midpoint, output = plot);