bonjour
voila j'ai écris deux programme
je calcul la solution d'un système de 4 équations avec 4 variables avec deux méthodes
1ere méthode celle de cramer dont le code
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
 
function d=determinant(a,b,n)
e=a;
s=b;
for i=1:4
    e(i,n)=s(i);
end
d=det(e);
end
function v=cramer(a,b)
if det(a)~=0
 for i=1:4
     m(i)=determinant(a,b,i)/det(a);
 end
 else
      erreur('division par zero');
end
 v=m;
 end
2ème méthode methode de gauss pivot dont le code
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
function v=methpiv(a,b)
if a(1,1)=0
    for i=2:4
		if a(i,1)~=0
			for j=1:4
				va=a(i,j);
				a(i,j)=a(1,j);
				a(1,j)=va
end
i=5;
end
end
end

e=zeros(4);
r=a;
f=b;
for i=1:4
    e(1,i)=r(1,i);
end
for i=1:4
    e(2,i)=r(2,i)-(r(2,1)/r(1,1))*r(1,i);
    e(3,i)=r(3,i)-(r(3,1)/r(1,1))*r(1,i);
    e(4,i)=r(4,i)-(r(4,1)/r(1,1))*r(1,i);
end
f(2)=f(2)-(r(2,1)/r(1,1)*f(1));
f(3)=f(3)-(r(3,1)/r(1,1)*f(1));
f(4)=f(4)-(r(4,1)/r(1,1)*f(1));
h=zeros(4);
for i=1:2
    for j=1:4
        h(i,j)=e(i,j);
    end
end
for i=2:4
    h(3,i)=e(3,i)-(e(3,2)/e(2,2))*e(2,i);
    h(4,i)=e(4,i)-(e(4,2)/e(2,2))*e(2,i);
end
g(1)=f(1);
g(2)=f(2);
g(3)=f(3)-(e(3,2)/e(2,2))*f(2);
g(4)=f(4)-(e(4,2)/e(2,2))*f(2);
s=zeros(4);
for i=1:3
    for j=1:4
        s(i,j)=h(i,j);
    end
end
for i=3:4
    s(4,i)=h(4,i)-(h(4,3)/h(3,3))*h(3,i);
end
p(1)=g(1);
p(2)=g(2);
p(3)=g(3);
p(4)=g(4)-(h(4,3)/h(3,3))*g(3);
v(4)=p(4)/s(4,4);
v(3)=(p(3)-s(3,4)*v(4))/s(3,3);
v(2)=(p(2)-s(2,3)*v(3)-s(2,4)*v(4))/s(2,2);
v(1)=(p(1)-s(1,2)*v(2)-s(1,3)*v(3)-s(1,4)*v(4))/s(1,1);
end
voila je vais ajouter le fait que l'utilisateur s'il entre 1 le système se résous par la méthode de cramer ,2 se résous par la méthode gauss
j'ai pensé a ajouter une variable dans les arguments de chaque fonction mais comment faire
je voudrais que vous me vérifier si le code en rouge qui vérifie si le pivot est nul et cherche le pivot non nul dans la premiere colonne puis échange avec cette ligne est juste ou non

merci d'avance