rendered paste body> 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
>