exo2.mw

Exercice 2

> restart:Digits:=30:with(plots):with(plottools):

> fI:=t->4/(1+t^2):aI:=0:bI:=1:NI:=20:

> fJ:=t->exp(-t*t):aJ:=-10:bJ:=10:NJ:=20:

>

Question a)

> Rectangle_g:=proc(f,a,b,N)
local i,S;

S:=0;

for i from 0 to N-1 do

S:=S+f(a+i*(b-a)/N);

od;

S:=S*(b-a)/N;

end:

>

> Question b)

Calcul approché de I avec 20 Rectangles

> I=Int(fI(t),t=aI..bI);

I = Int(4/(1+t^2), t = 0 .. 1)

> I_(approché):=evalf(Rectangle_g(fI,aI,bI,NI));

I_(approché) := 3.19117598695412846344704074009

> erreur:=evalf(abs(I_(approché)-Pi));

erreur := 0.4958333336433522498439735681e-1

>

Calcul approché de J avec 20 Rectangles

> J=(Int(fJ(t),t=aJ..bJ))**2;

J = (Int(exp(-t^2), t = -10 .. 10))^2

> J_(approché):=evalf((Rectangle_g(fJ,aJ,bJ,NJ))**2);

J_(approché) := 3.14224265993564633914314598537

> erreur:=evalf(abs(J_(approché)-Pi));

erreur := 0.65000634585310068050260209e-3

>

> Question c)

> Points_Rg:=proc(f,a,b,N)
local i,S;

S:=NULL;

for i from 1 to N do S:=S,[i/N,Rectangle_g(f,a,b,i)]; od;

[S];

end;

>

Points_Rg := proc (f, a, b, N) local i, S; S := NULL; for i to N do S := S, [i/N, Rectangle_g(f, a, b, i)] end do; [S] end proc

> plot(Points_Rg(fI,aI,bI,50)); Tracé des points obtenus pour le calcul approché de I

[Plot]

> plot(Points_Rg(fJ,aJ,bJ,50)); Tracé des points obtenus pour le calcul approché de J

[Plot]

>

> Question d)

> Suite_Rg:=proc(f,a,b,N)
local i,S,suite,delta;

delta:=(b-a)/N;S:=NULL;

for i from 0 to N-1 do

S:=S,polygon([[a+i*delta,0],[a+(i+1)*delta,0],[a+(i+1)*delta,f(a+i*delta)],[a+i*delta,f(a+i*delta)]],color=red,thickness=2);

od;

S;

end:

>

Tracé des rectangels correspondant à l'intégrale I

> RgI:=Suite_Rg(fI,aI,bI,NI):GI:=plot(fI,aI..bI,color=black,thickness=3):

> plots[display](RgI,GI);

[Plot]

Tracé des rectangels correspondant à l'intégrale J

> RgJ:=Suite_Rg(fJ,aJ,bJ,NJ):GJ:=plot(fJ,aJ..bJ,color=black,thickness=3):

> plots[display](RgJ,GJ);

[Plot]

>

Une petite animation

>

> Anim_Rg:=proc(t) plots[display](GI,Suite_Rg(fI,aI,bI,trunc(t))); end:

> animate(Anim_Rg,[t],t=1..NI, frames=50);

[Plot]

>

>