> with(student): > trapezoid (exp(x),x=1..2,n); /n - 1 \ |----- | | \ | exp(1) + 2 | ) exp(1 + i/n)| + exp(2) | / | |----- | \i = 1 / 1/2 ---------------------------------------- n > simpson (exp(x),x=1..2,n); / /1/2 n \ | |----- | | | \ 2 i - 1 | 1/3 |exp(1) + exp(2) + 4 | ) exp(1 + -------)| | | / n | | |----- | \ \i = 1 / /1/2 n - 1 \\ | ----- || | \ 2 i || + 2 | ) exp(1 + ---)||/n | / n || | ----- || \ i = 1 // > Iex:=int(exp(x),x=1..2); Iex := exp(2) - exp(1) > errortrap:=n->evalf(abs(Iex-trapezoid(exp(x),x=1..2,n))); errortrap := n -> evalf(| Iex - trapezoid(exp(x), x = 1 .. 2, n) |) > errortrap(10); .003891662 > errortrap(4); > .024301644 > errorsimp:=n->evalf(abs(Iex-simpson(exp(x),x=1..2,n))); errorsimp := n -> evalf(| Iex - simpson(exp(x), x = 1 .. 2, n) |) > errorsimp(4); .0001006115 > traplist:=[seq([2*n,errortrap(2*n)],n=1..10)]; traplist := [[2, .096904746], [4, .024301644], [6, .010806975], [8, .006080153], [10, .003891662], [12, .002702682], [14, .001985706], [16, .001520335], [18, .001201269], [20, .000973037]] > plot(traplist); > simpslist:=[seq([2*n,errorsimp(2*n)],n=1..10)]; simpslist := [[2, .001574764], [4, .0001006115], [6, .000019955], -5 -5 -5 [8, .6325 10 ], [10, .2590 10 ], [12, .1250 10 ], -6 -6 -6 [14, .675 10 ], [16, .395 10 ], [18, .248 10 ], -6 [20, .163 10 ]] > plot(simpslist); > plot({traplist,simpslist},x=0..20,y=0..0.02); > traplistlog:=[seq([2*n,-log(errortrap(2*n))],n=1..10)]; traplistlog := [[2, 2.334026783], [4, 3.717211277], [6, 4.527563520], [8, 5.102725419], [10, 5.548918963], [12, 5.913510666], [14, 6.221780761], [16, 6.488824574], [18, 6.724376781], [20, 6.935088450]] > simpslistlog:=[seq([2*n,-log(errorsimp(2*n))],n=1..10)]; simpslistlog := [[2, 6.453649859], [4, 9.204243993], [6, 10.82203082], [8, 11.97100052], [10, 12.86385268], [12, 13.59236701], [14, 14.20855315], [16, 14.74438007], [18, 15.21387750], [20, 15.62951564]] > plot({traplistlog,simpslistlog}); > Iexa:=int(2+3*x,x=1..2); Iexa := 13/2 > errortrap:=n->value(abs(Iexa-trapezoid(2+3*x,x=1..2,n))); errortrap := n -> value(| Iexa - trapezoid(2 + 3 x, x = 1 .. 2, n) |) > errortrap(4); 0 > Iexb:=int(x^2,x=1..2); Iexb := 7/3 > errortrap:=n->value(abs(Iexb-trapezoid(x^2,x=1..2,n))); 2 errortrap := n -> value(| Iexb - trapezoid(x , x = 1 .. 2, n) |) > errortrap(4); 1/96 >