L/numint3.mws, esimerkkejä

V2 17.4.02 HA

Alustukset

> restart:

Warning, the name changecoords has been redefined

> #read("c:\\opetus\\maple\\v202.mpl"):

> #read("/p/edu/mat-1.414/maple/v202.mpl"):

> read("/home/apiola/opetus/peruskurssi/v2-3/maple/v202.mpl"):

> with(plots):

Kartion massakeskip. Gaussilla

>

> x:=r*cos(Theta): y:=r*sin(Theta):

> plot3d([x,y,r],r=0..2,Theta=0..2*Pi,axes=box);

[Maple Plot]

> x:='x': y:='y':

> a2:=x->-sqrt(4-x^2); b2:=-a2;

a2 := proc (x) options operator, arrow; -sqrt(4-x^2...

b2 := -a2

> a3:=(x,y)->sqrt(x^2+y^2); b3:=(x,y)->2;

a3 := proc (x, y) options operator, arrow; sqrt(x^2...

b3 := 2

> Int(Int(Int(sqrt(x^2+y^2),z=a3(x,y)..2),y=a2(x)..b2(x)),x=-2..2);

Int(Int(Int(sqrt(x^2+y^2),z = sqrt(x^2+y^2) .. 2),y...

> #evalf(%);

Warning, computation interrupted

> # %=evalf(value(%)); # kestää liian kauan.

> Digits:=12:gtaulu:=gausstaulukko(5):

> f:=(x,y,z)->sqrt(x^2+y^2);

f := proc (x, y, z) options operator, arrow; sqrt(x...

> Gaussxyz(gtaulu,gtaulu,gtaulu,f,-2,2,a2,b2,a3,b3);

7.67299433082

> gtaulu:=gausstaulukko(10):

> 10^3;

1000

> Gaussxyz(gtaulu,gtaulu,gtaulu,f,-2,2,a2,b2,a3,b3);

8.40641891246

> 15^3;

3375

> gtaulu:=gausstaulukko(15):

> Gaussxyz(gtaulu,gtaulu,gtaulu,f,-2,2,a2,b2,a3,b3);

8.34698542685

> gtaulu:=gausstaulukko(20):

> 20^3;

8000

> Gaussxyz(gtaulu,gtaulu,gtaulu,f,-2,2,a2,b2,a3,b3);

8.38144399872

Lasketaan sylinerikoord:

> Int(Int(Int(r*r,z=r..2),r=0..2),Theta=0..2*Pi);

Int(Int(Int(r^2,z = r .. 2),r = 0 .. 2),Theta = 0 ....

> value(%);

8/3*Pi

> evalf(%);

8.37758040958

> gtaulu:=gausstaulukko(5): 5^3;

125

> Gaussxyz(gtaulu,gtaulu,gtaulu,(Theta,r,z)->r^2,0,2*Pi,0,2,(Theta,r)->r,2);

8.37758040962

Huom! Gaussxyz:n parametrilistassa olevissa funktiomäärityksissä argumenttien on oltava samassa järjestyksessä

kuin yllä integraalissa (eli 1. muuttuja vastaa 1. rajoja (a1,b1), jne.)

Huomataan, että siirtyminen lieriökoordinaatteihin paransi numeerisen laskennan tarkkuutta olennaisella tavalla.

Voidaan jatkaa tästä laskemalla momentit. Ehkäpä harjoitustehtäväksi jatko.

> #?Int[numerical]

> eint:=evalf@Int;

eint := `@`(evalf,Int)

> eint(Int(x*y,x=0..1),y=0..1);

.250000000000

> Gaussxy(gtaulu,gtaulu,(x,y)->x*y,0,1,0,1);

.250000000001

>

>