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);