1 function [chaine]=test_oscillation(x0)
\r
2 % calcule les itérés de Newton de la valeur t issue de l'étude de la
\r
3 % question 1 du tp4I.
\r
6 % x0 représente la solution de l'équation F(1,t)=0 qui devrait fournir
\r
7 % une suite d'itérés de Newton oscillante.
\r
10 % annonce ce qui s'est passé effectivement lors du calcul
\r
12 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\r
13 % Fonctions connexes appelées
\r
15 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\r
16 % tests à compléter éventuellement
\r
18 error('Nombre des arguments incorrect');
\r
22 % définitions de constantes modifiables par l'utilisateur
\r
28 % test complémentaire. On peut passer val_omega comme champ pour détourner
\r
29 % cette fonction de sa seule application au cas omega=1.
\r
30 val_omega=1; % valeur non nulle, attention!
\r
31 if (x0<=0)|(x0>=2*pi/val_omega)
\r
32 error('Le champ x0 est incorrect. Voir test complémentaire');
\r
37 v=zeros(1,iter_max+1);
\r
39 v(1)=x0;v(2)=v(1)+cos(v(1))/sin(v(1));x1=v(2);
\r
43 while nb_iter<iter_max
\r
45 v(nb_iter+1)=v(nb_iter)+cos(v(nb_iter))/sin(v(nb_iter));
\r
48 switch mod(nb_iter,2)
\r
50 normal=(abs(v(nb_iter+1)-x0)<nul_seuil);
\r
52 normal=(abs(v(nb_iter+1)-x1)<nul_seuil);
\r
60 % annonce de la situation
\r
62 chaine='Tout s''est passé comme prévu';
\r
65 ['Le phénomène d''oscillation s''est produit jusqu''au terme ' ...
\r
71 xlabel('numéro matlab des itérés');ylabel('Valeurs prises');
\r
72 title('Evolution des termes de la suite de Newton du tp4I');
\r
73 legend(['au sens d''un écart de : ' num2str(nul_seuil)],0);
\r