Vous êtes sur la page 1sur 19

Université de jijel

Faculté des sciences et de la technologie


Département de génie civil et hydraulique

RAPPORT TP MATH 06
(MN)

ETABLIR PAR  :
Zineddine riad

GROUPE :
12

Introduction :

1
La résolution d’une équation est de trouver les solutions d’une équation de la forme
de f(x)=0, avec f est continue sur l’intervalle de résolution. Si on ne connait pas une
formule directe qui donne la réponse, comme le cas des équations linéaire, ou si les
solutions sont compliquées, on peut chercher des suites récurrentes dont les limites
donnent des solutions approchées. Il existe plusieurs méthodes, comme :

 Méthode de dichotomie (bissection)


 Méthode du point fixe
 Méthode de Newton

Lorsque l’ordre d’un système algébrique est très grand on utiliser des méthodes
itératives ou indirecte. Pour résoudre ses systèmes il existe plusieurs méthode :

 Méthode de Jacobi
 Méthode de Gauss-seidel

TP N:01
BUT DE TP :

Ce TP est de but de calculer la racine réel de f(x) par la méthode de dichotomie.


A. La fonction fplot  :

2
1. Trace de la fonction : y=sin(x) dans l’intervalle [0 2π]

0.8

0.6

0.4

0.2

-0.2

-0.4

-0.6

-0.8

-1
0 1 2 3 4 5 6

Figure(A.1)

2. Trace de la fonction y =e 2 x−1 et y = x2+3 dans l’intervalle [0 2] sur même figure :

>> fplot('[exp(2*x-1),x.^2+3]',[0 2])

25

20

15

10

0
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

Figure (A.2)

B. La fonction plot :

V(t) = 12sin (ωt+π/6) et i(t)= 5cos(ωt+π/3) avec ω=2πf et f= 50 hz.

1. Trace du signal v(t) sur la période de temps 0/20ms (le pas= 2ms)

3
>> t=[0:2*10^-3:20*10^-3];

>> w= 2*pi*50;

>> v=12*sin(w*t+pi/6);

>> plot(t,v)

>> grid on

15

10

-5

-10

-15
0 0.002 0.004 0.006 0.008 0.01 0.012 0.014 0.016 0.018 0.02

Figure(B.1)

 On remarque que ce graphe et discrète et le graphe de la figure (a.1) continue


 Le graphe et discrète car le pas et très grand.
2. Trace du signal v(t) sur la période de temps 0/20ms (le pas= 0.1ms)

>> t=[0:0.1*10^-3:20*10^-3];

>> w= 2*pi*50;

>> v=12*sin(w*t+pi/6);

>> plot(t,v)

>> grid on

4
15

10

-5

-10

-15
0 0.002 0.004 0.006 0.008 0.01 0.012 0.014 0.016 0.018 0.02

Figure (B.2)

3. Trace du signal i(t) sur la période de temps 0/20ms (le pas= 0.1ms)

>> t=[0:0.1*10^-3:20*10^-3];

>> w= 2*pi*50;

>> i=5*cos(w*t+pi/3);

>> plot(t,i)

>> grid on

-1

-2

-3

-4

-5
0 0.002 0.004 0.006 0.008 0.01 0.012 0.014 0.016 0.018 0.02

Figure(B.3)

4. Trace des deux signaux v(t) et i(t) sur la même figure (on utilise hold on) :

>> t=[0:0.1*10^-3:20*10^-3];

5
>> v=12*sin(w*t+pi/6);

>> i=5*cos(w*t+pi/3);

>> plot(t,v)

>> hold on

>> plot (t,i,'r')

>> grid on

15

10
i(t)
v(t)
5

-5

-10

-15
0 0.002 0.004 0.006 0.008 0.01 0.012 0.014 0.016 0.018 0.02

Figure (B.4)

5. Le titre et et des noms aux deux axes :

>> Title ('singaux v(t)et i(t)')

>> xlabel('t=10^-3s')

>> ylabel('y(t)')

6
singaux v(t)et i(t)
15

10

5
y (t)

-5

-10

-15
0 0.002 0.004 0.006 0.008 0.01 0.012 0.014 0.016 0.018 0.02
t=10- 3s

Figure(B.5)

>> subplot(2,2,1)

>>plot(t,v)

>>xlabel('t=10^-3')

>>ylabel('y=v(t)')

>>title('trace du signal v(t)')

>>grid on

>> subplot(2,2,2)

>>plot(t,i)

>>xlabel('t=10^-3')

>>ylabel('y=i(t)')

>>title('trace du signal i(t)')

>> grid on

trace du signal v(t) trace du signal i(t)


20 5

10
y = v (t)

y = i(t)

0 0

-10

-20 -5
0 0.005 0.01 0.015 0.02 0 0.005 0.01 0.015 0.02
t=10- 3s t=10- 3s

7
Figure(B.7)

C. f(x) =0.1-xe− x définir sur R


1. dans un fichier script
function y= f(x)
y= 0.1-x.*exp(-x);

2. trace du graphe de f(x) dans l’intervalle [-1,5] a l’aide de la comande fplot

>> fplot('f',[-1 5])


>> grid on

2.5

1.5

0.5

-0.5
-1 0 1 2 3 4 5

Figure(C.1)
3. localisation à l’aide du graphe les passages par zéro (racine) de f(x)

r1[0,1] , r2[ 3,4]

4. la première racine de f(x) proche zéro est :

>> fzero('f',0)

ans =

0.1118

>> fzero('f',4)

ans =

3.5772

5. utilisation du la commande inline :

8
>> f = inline ('0.1-x.*exp (-x)')

f=

Inline function:

f(x) = 0.1-x.*exp(-x)

>> fplot('f',[-1 5])

>> grid on

2.5

1.5

0.5

-0.5
-1 0 1 2 3 4 5

Figure (C.2)

6. command feval :
 avec l’utilisation de la command feval
>> y=feval('f',[-1,5])
y=
2.8183 0.0663

 sans l’utilisation de la command feval


>> y=f(-1)
y=
2.8183
>> y=f(5)
y=
0.0663

9
TP N:02
BUT DE TP :

Ce TP est de but de calculer la racine réel de f(x) par la méthode de dichotomie.

La méthode de dichotomie est un algorithme de recherche d'un zéro d'une


fonction qui consiste à répéter des partages d’un intervalle en deux parties puis à
sélectionner le sous-intervalle dans lequel existe un zéro de la fonction.
f(x) = (5-x) ex-3 définir sur R
1. dans un script :

function y=f(x)
y =(5-x).*exp(x)-3;
2.
 trace du graphe de f(x) sur l’intervalle [-2,6] :

>> fplot('f',[-2 6])

>> grid on

100

-100

-200

-300

-400

-500
-2 -1 0 1 2 3 4 5 6

Figure (1)

 Après le graphe les racines de f(x):

α- = 0.6 α+ = 5

3. La racine positive de cette fonction est :

>> fzero('f',-2)

ans =

-0.6294

10
>> fzero('f',6)

ans =

4.9794

Donc la racine positive est :

α+ = 4.9794

4. Vérification de si f(a).f(b) <0 :

On a α+ ∈ [4.5,5.5]

Donc

>> f(4.5)*f(5.5)

ans =

-5.2656e+003

f(4.5).f(5.5) < 0

5. Le programme matlabe qui permettant de calculer la racine positive approché de f(x) = 0


par la méthode de DICHOTOMIE avec :

Le nombre d’itérations maximum (itermax=50)

Dans un script :

clear
a=4.5;
b=5.5;
epsilon= 10^-6;
f = inline('(5-x).*exp(x)-3');
iter = 0;
while ( abs(a-b)/2) > epsilon && iter < 50
iter = iter + 1;
m = ((a+b)/2) ;
y = f(a)* f(m);
if y==0
r=m
break
elseif y > 0
a=m;
else
b = m;
end

end
r=m
Afin d’exécution on obtient

α = 4.9794.

11
avec iter = 50 iteration

 La commande qui permet de calculer le nombre d’itérations maximal N :

>> N=(log(5.5-4.5)-log(10^-6))/log(2)

N=

19.9316

TP N :03
BUT DE TP :

Ce TP est de but de calculer la racine réel de f(x) par la méthode de point fixe.

La méthode de point fixe cette méthode consiste à écrire l’équation f(x)=0 sous
la forme équivalente à x=g(x) ; ceci revient à construire la suite suivante :
x n+1=g ( x n).

1. Calcule numériquement f(1.5) et f’2) :


f=inline('2*sin(x)-x')

f=
Inline function:
f(x) = 2*sin(x)-x

>> f(1.5)
ans =
0.4950
>> f(2)

ans =
-0.1814

2. trace de graphe de f(x) :


>> x= 1.5:0.1:2;
>> y=f(x)
y=
0.4950 0.3991 0.2833 0.1477 -0.0074 -0.1814

>> plot(x,y)

>> grid on

La racine de f(x) est : 1.895

12
0.5

0.4

0.3

0.2

0.1

-0.1

-0.2
1.5 1.55 1.6 1.65 1.7 1.75 1.8 1.85 1.9 1.95 2

Figure (1)
3. trace sur le même graphe y1 (x) et g (x) :
>> y1=inline('x');

>> g=inline('2*sin(x)');

>> y1=f1(x);

>> f1=y1(x) ;

>> f2=g(x);

>> plot(x,f1)

>> hold on

>> plot (x, f2)

>> grid on

13
2

1.95

1.9

1.85

1.8

1.75

1.7

1.65

1.6

1.55

1.5
1.5 1.55 1.6 1.65 1.7 1.75 1.8 1.85 1.9 1.95 2

Figure (2)

4. trace de g’(x) :

>> dg=inline('2*cos(x)');

>>f3=dg(x);

>>plot(x, f3);

>>grid on

14
0.4

0.2

-0.2

-0.4

-0.6

-0.8

-1
1.5 1.55 1.6 1.65 1.7 1.75 1.8 1.85 1.9 1.95 2

Figure (3)

 deduct de k:

k= │-0.8323 │= 0.8323.

>> k=max ([abs(dg(1.5)) abs(dg(2))])

k=

0.8323

5. la stabilities de g(x):
6. le programme :
clear
x0=0.5;
epsilon= 10^-6;
g1 = inline('2*sin(x)');
x= g1(x0)
iter = 0;
while ( abs(x-x0) > epsilon )
iter = iter + 1;
x0=x ;
x=g1(x0);
end
r=x
x =
0.9589

15
r =1.8955

TP N:04
BUT DE TP :

Ce TP est de but de calculer la racine réel de f(x) par la méthode de newton.

La méthode de Newton est un algorithme efficace pour trouver numériquement


une approximation précise d'un zéro d'une fonction réelle d'une variable réelle.

1)le programme qui trace f et f’ :


function y=f1(x)
figure(1)
fplot('x/2-sin(x)+pi/6-sqrt(3)/2',[-pi/2 pi]);
grid on
figure(2)
fplot('1/2-cos(x)',[-pi/2 pi],'r');
grid on
1.5

0.5

-0.5

-1
-1.5 -1 -0.5 0 0.5 1 1.5 2 2.5 3

Fig. (1)

16
1.5

0.5

-0.5
-1.5 -1 -0.5 0 0.5 1 1.5 2 2.5 3

Fig. (2)

2) oui on peut prendre x0 = π. Car f(π) = 1.2284≠ 0 et f’(π)= 1.5≠0.

3) le programme de newton :
clc
clear all
x0=pi;
epsilon=10^-10;
fx = inline('x/2-sin(x)+pi/6-sqrt(3)/2');
dfx= inline('1/2-cos(x)');
x(1)= x0;
i=1;err=10;
while (err>epsilon)
x(i+1)=x(i)-(fx(x(i))/(dfx(x(i))));
err=(abs(x(i+1)-x(i)));
i=i+1;
end
r=x
k=i
Les resultants:

r = 3.1416 2.3227 2.2479 2.2460 2.2460 2.2460

k =6

17
TP N:05

BUT DE TP :

Ce TP est de but de calculer la racine réel de f(x) par la méthode de dichotomie.

1) method de Jacobi:
a) la form algebrique :
Clc
Clear all
epsii= 10^-6;
x0=[0 0 0]';
k=0;
A=[10 -2 1 ; -2 10 -2; -2 -5 10];
b=[5;26;-7];
D=diag(diag(A));
L=tril(A,-1);
U=triu(A,1);
J=-inv(D)*(L+U);
C=inv(D)*b;
err=100;
while (err>epsii)
x=J*x0+C; err=max(abs(x-x0));
k=k+1;
x0=x;

end

X=x
K=k
Resultants:

X=

1.0000

3.0000

1.0000

K=

16

18
b) la form matricielle:
clc
clear all
err=1;
eps=10^-6;
x0=[0 0 0];
a=[10 -2 1;-2 10 -2;-2 -5 10];
b=[5;26;-7];
while err>eps
for i=1:3;
s=0;
for j=1:3;
if j~=i;
s=s+a(i,j)*x0(j);
end
end
x(i)=1/a(i,i)*(b(i)-s);
end
err=max(abs(x-x0));
x0=x;
end
x

1) method de gauss-seidel:
clc
clear all
epsii= 10^-6;
x0=[0 0 0]';
k=0;
A=[10 -2 1 ; -2 10 -2; -2 -5 10];
b=[5;26;-7];
D=diag(diag(A));
L=tril(A,-1);
U=triu(A,1);
G=-inv(D+L)*U*x0;
C=inv(D+L)*b;
err=100;
while (err>epsii)
x=G.*x0+C; err=max(abs(x-x0));
k=k+1;
x0=x;
end
X=x
K=k

19

Vous aimerez peut-être aussi