Bonjour,
J'ai programmé la méthode de la fausse position sous Octave, mais parfois, il me sort des NaN.
Je ne comprend absolument pas pourquoi.
Pourriez-vous m'éclairer sur ce point ?
Voici le code en question:
Cordialement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 n=300; a=8; b=10; Y=[]; while (e>10e-16) %Calcul de f(a) for i=1:n fa(i)=(((-1).^(i))./(factorial(i).^(2))).*(a./2).^(2.*i); endfor foa=(((-1).^(0))./(factorial(0).^(2))).*(a./2).^(2.*0); sa=foa+sum(fa); %Calcul de f(b) for i=1:n fb(i)=(((-1).^(i))./(factorial(i).^(2))).*(b./2).^(2.*i); endfor fob=(((-1).^(0))./(factorial(0).^(2))).*(b./2).^(2.*0); sb=fob+sum(fb); %Calcul de f(xm) xm=(a.*sb -b.*sa)./(sb-sa); for i=1:n fm(i)=(((-1).^(i))./(factorial(i).^(2))).*(xm./2).^(2.*i); endfor fom=(((-1).^(0))./(factorial(0).^(2))).*(xm./2).^(2.*0); sm=fom+sum(fm); %Recherche de la condition de remplacement. if (sm!=0) if ((sa.*sm)<0) b=xm; endif if ((sm.*sb)<0) a=xm; endif endif e=abs(sm-0); endwhile display("Le zéro correspondant à cette intervalle est:") xm display("Pour cette valeur, la série vaut:") sm display("L'erreur absolue est:") e
Partager