Programme en c resoudre sys d'equations

Discutez d'informatique ici !
enemiem
Messages: 2
Enregistré le: 31 Déc 2010, 21:14

programme en c resoudre sys d'equations

par enemiem » 31 Déc 2010, 21:24

salut à tout le monde je vous souhaite une bonne nouvelle année pleine de joie , je suis etudiant en geii j'ai un probleme en informatique , je veux le resoudre avec votre aide , je veux faire un programme en language C qui permet de resoudre le systeme d'equations suivantes:
en utilisant la methode du Gauss

3x1-2x2+x3=-2
X1+4x2-2x3=7
-x1+x2+3x3=-2 ( x1, x2, x3 sont des variables )

avec :

Epsilon1= x1i-x1(i-1) <= 0.001

Epsilon2=X2i –x2(i-1) <= 0.001

Epsilon3= x3i-x3(i-1) <= 0.001

il me faut faire ce programme aujourd'hui s'il vous plait aidez moi mes amis :cry:



bentaarito
Membre Rationnel
Messages: 603
Enregistré le: 30 Oct 2009, 02:58

par bentaarito » 31 Déc 2010, 21:44

VOILA LA FONCTION GAUSS


function A = gauss(T)
A=T;
n=size(A,1);


for j=1:n-1
if A(j,j)==0
for q=1:n+1
z(1,q)=A(j,q);
end
c=j;
while A(c,j)==0
c=c+1;
end
for s=1:n+1
A(j,s)=A(c,s);
A(c,s)=z(1,s);
end
end

for i=j+1:n
w=A(i,j)/A(j,j);
for k=j:n+1
A(i,k)=A(i,k)-w*A(j,k);
end
end
end


et la résolution c

function x = resolution(A,B)
x=size(A,1);
y=size(B);
n=size(B,1);

if det(A)==0
error('la matrice n'est pas inversible')
end
if y~=1
error('la matrice B n`est pas un vecteur')
end
if x~=y
error('A et B ne sont pas compatible')
end

for i=1:x
for j=1:x
Q(i,j)=A(i,j);
end
Q(i,i+1)=B(i,1);
end
Q=gauss(Q);
for i=1:x
for j=1:x
A(i,j)=Q(i,j);
end
B(i,1)=Q(i,i+1);
end
x=trisup(A,B);

enemiem
Messages: 2
Enregistré le: 31 Déc 2010, 21:14

par enemiem » 31 Déc 2010, 21:48

merci nabila moi je veux faire le programme avec le compilateur code block donc en language C j'aime bien si tu peux le traduire ,, je suis plutot débutant en programmation merci a l'avance

Sve@r
Membre Transcendant
Messages: 5441
Enregistré le: 13 Avr 2008, 12:00

par Sve@r » 31 Déc 2010, 22:20

enemiem a écrit:merci nabila moi je veux faire le programme avec le compilateur code block donc en language C j'aime bien si tu peux le traduire ,, je suis plutot débutant en programmation merci a l'avance

Salut

Ici c'est un forum de maths, pas d'informatique. Et même s'il y a une rubrique dédiée à cette matière, les intervenants ne sont pas sensés connaitre le langage C et surtout ne sont pas sensés te faire tes devoirs.

Je te suggère d'aller sur http://www.developpez.net/forums. Tu y trouveras des développeurs de talent mais ce sera la même chose question "faire tes devoirs"...

bentaarito a écrit:et la résolution c

function x = resolution(A,B)
x=size(A,1);
y=size(B);
n=size(B,1);

if det(A)==0
error('la matrice n'est pas inversible')
end
if y~=1
error('la matrice B n`est pas un vecteur')
end
if x~=y
error('A et B ne sont pas compatible')
end

for i=1:x
for j=1:x
Q(i,j)=A(i,j);
end
Q(i,i+1)=B(i,1);
end
Q=gauss(Q);
for i=1:x
for j=1:x
A(i,j)=Q(i,j);
end
B(i,1)=Q(i,i+1);
end
x=trisup(A,B);

Ca c'est pas du C !!!

Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 13:00

par fatal_error » 31 Déc 2010, 23:07

yo,

de toute façon, je crois pas que c'est le bon algo. L'algo que t'as filé bentaarito, c'est l'inversion d'une matrice par pivot de gauss.

Or ya de la précision qui est demandée, donc a moins de se péter les burnes à coder son algo pour s'assurer que les précisions soient respectées, l'idée est pe plus de faire une approche par convergence, typiquement, Gauss-Seidel.

Mais jpeux me tromper :D
la vie est une fête :)

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 5 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite