Exercice 1Question a) M\351thode it\351rative iteration:=proc(a,b,n) local s,an,bn,temp,k; an:=a;bn:=b; initialisation des valeurs de la suite an et bn repr\351sentent ici a0 et bo for k from 1 to n do on utilise des variables temporaires atemp et btemp pour ne pas interferer dans le calcul du nouveau an et bn en fonction des anciens temp:=sqrt(an*bn);bn:=(an+bn)/2; an:=temp; les anciennes valeurs de an et bn deviennent ici les nouvelles od: [an,bn]; end:iteration(0.5,1,25); Calcul de [a(25),b(25)] pour a0=0.5 et b0=1NiM3JCQiK2NeJlJHKCEjNUYkM\351thode r\351cursiveiteration:=proc(a,b,n) option remember; local s,u; if n=0 then s:=[a,b] la recursion doit pouvoir s'arr\352ter pour donner une valeur effective ici [a0,b0] else u:=iteration(a,b,n-1); on fait appel \340 notre propre proc\351dure pour connaitre les valeurs a(n-1) et b(n-1) s:=[sqrt(u[1]*u[2]),(u[1]+u[2])/2]; on en d\351duit an et bn fi: s; end: iteration(0.5,1,25); Calcul de [a(25),b(25)] pour a0=0.5 et b0=1NiM3JCQiK2NeJlJHKCEjNUYkQuestion bCalcul d'une limite approch\351eM\351thode naivelimite:=proc(a,b,epsilon) local an,bn,u,n; an:=a;bn:=b;n:=0; while is(abs(an-bn)>epsilon) do tant que la distance s\351parant an, bn (suites adjacentes) d\351passe epsilon, le calcul continue n:=n+1:u:=iteration(a,b,n);an:=u[1];bn:=u[2]; od; ['an'=an,'n'=n]; end:limite(0.5,3,1/1000000); limite approch\351e \340 10^(-6) pr\350s avec a0=0.5 et b0=3NiM3JC9JI2FuRzYiJCIrclZtdjkhIiovSSJuR0YmIiIlM\351thode it\351rativelimite:=proc(a,b,epsilon) local s,an,bn,temp,n; an:=a;bn:=b; n:=0; while is(abs(an-bn)>epsilon) do n:=n+1:temp:=sqrt(an*bn);bn:=(an+bn)/2; an:=temp; od: ['an'=an,'n'=n]; end:limite(0.5,3,1/1000000); limite approch\351e \340 10^(-6) pr\350s avec a0=0.5 et b0=3NiM3JC9JI2FuRzYiJCIrclZtdjkhIiovSSJuR0YmIiIlM\351thode r\351cursivelimite:=proc(a,b,epsilon) option remember; local s,u; if is(abs(a-b)<=epsilon) then s:=[a,b,0]; la recursion doit pouvoir s'arr\352ter pour donner une valeur effective ici [a0,b0] else s:=limite(sqrt(a*b),(a+b)/2,epsilon); on en d\351duit an et bn s:=[s[1],s[2],s[3]+1]; fi: s; end:limite(0.5,3,1/1000000); limite approch\351e \340 10^(-6) pr\350s avec a0=0.5 et b0=3NiM3JSQiK3JWbXY5ISIqJCIrc1ZtdjlGJiIiJQ==Question cM\351thode na\357veerreur:=proc(a,b,n) local souvenir,i,un; souvenir:=b-a; for i from 1 to n do un:=iteration(a,b,i);souvenir:=souvenir,un[2]-un[1]; od; [sol]; end: evalf(erreur(1,3,5));NiM3KCQiIiMiIiEkIiojPlx6RSEiKiQiKCdvOltGKSQiJWI6RikkISIiRikkRiZGJg==M\351thode it\351rativeerreur:=proc(a,b,n) local s,an,bn,temp,k,souvenir; an:=a;bn:=b; souvenir:=bn-an; for k from 1 to n do temp:=sqrt(an*bn);bn:=(an+bn)/2; an:=temp; souvenir:=souvenir,bn-an; od: [souvenir]; end:evalf(erreur(1,3,5));NiM3KCQiIiMiIiEkIiojPlx6RSEiKiQiKCdvOltGKSQiJWI6RikkISIiRikkRiZGJg==M\351thode r\351cursiveval_suite:=proc(a,b,n) option remember; local s,u; if n=0 then s:= [[a,b]] la recursion doit pouvoir s'arr\352ter pour donner une valeur effective ici [a0,b0] else u:=val_suite(a,b,n-1); on fait appel \340 notre propre proc\351dure pour connaitre les valeurs a(n-1) et b(n-1) s:=[op(u),[sqrt(u[n][1]*u[n][2]),(u[n][1]+u[n][2])/2]]; on en d\351duit an et bn fi: s; end:val_suite(a,b,2);NiM3JTckSSJhRzYiSSJiR0YmNyQqJComRiUiIiJGJ0YrI0YrIiIjLCZGJUYsRidGLDckKiQqJkYqRixGLkYrRiwsKEYpRixGJSNGKyIiJUYnRjM=erreur:=proc(a,b,n) local suite,k,sol,suiten; suite:=val_suite(a,b,n); sol:=NULL; for k from 1 to n+1 do suiten:=suite[k]; sol:=sol,suiten[2]-suiten[1]; od: [sol]; end:evalf(erreur(1,3,5));NiM3KCQiIiMiIiEkIiojPlx6RSEiKiQiKCdvOltGKSQiJWI6RikkISIiRikkRiZGJg==Commentons ces valeurs, il apparait des choses \351tranges comme la valeur n\351agtive pour b4-a4 alors que celle-ci devrait \352tre positive (suites adjacentes) Par ailleurs la diff\351rence b5-a5 est suspecte car on imagine mal la suite devenir stationnaire comme nous le montre le calcul des valeurs suivantesevalf(erreur(1,3,15));NiM3MiQiIiMiIiEkIiojPlx6RSEiKiQiKCdvOltGKSQiJWI6RikkISIiRikkRiZGJkYwRjBGMEYwRjBGMEYwJCIiIkYpRjFGLg==En fait les choses deviennent plus claires lorsque l'on change la pr\351cision des calculsDigits:=50;NiM+SSdEaWdpdHNHNiIiI10=evalf(erreur(1,3,5));NiM3KCQiIiMiIiEkIlInKj1ZWj5kSWpGVFxlT2Jza3FBNlYjPlx6RSEjXCQiUCtidlQqKm96K29reXdjRyIpKVslUi1lJm86W0YpJCJNXyJmRDhwRTE8IVFQX19RJmVwQ28pXGI6RikkIkZBaTtZdUxpO2YvYFt0UlwuSGkiRikkIjglcD9cKDNlaEgtbXciRik=La convergence \351tant si rapide et les expressions si complexes que les r\351sultats approch\351s sont tr\350s sensibles \340 la pr\351cision qu'on se fixe.