matrice et pivot de gauss en pascal:HELP
matrice et pivot de gauss en pascal:HELP
Bonjour et bienvenue sur le forum.
Je t'invite à consulter les règles du forum : http://club.developpez.com/regles
Sache que chaque membre est bénévole et que personne n'est là pour effectuer le travail à ta place.
Par conséquent effectue un minimum de recherches avant de poser une question dans cette rubrique.
En ce qui concerne les matrices, tu peux les représenter, en pascal, comme des tableaux à deux dimensions définis de la façon suivante:
En ce qui concerne le pivot de gauss entre deux lignes d'une matriceUne matrice carrée 2x2 :
tMatriceDim2 = array[1..2,1..2] of real;
Une matrice rectangulaire de dimension n,p
tMatriceDimNP = array[1..n,1..p] of real;
Cordialemententre ces deux lignes d'une matrice
a1 b1 c1 ...
a2 b2 c2 ...
la seconde ligne (a2 ; b2 ; c2 ...) sera remplacée par
(a2*a1-a1*a2 ; a2*b1-a1*b2 ; a2*c1-a1*c2 ....)
Pensez à utiliser les tags dans le titre.
Avant de poser une question reportez-vous à la FAQ Delphi
Respectez les règles du forum.
Connais tu au moins l'algorithme ?Envoyé par Loopingus
En supposant que tu as une matrice carrée m*m, le principe est de remplir par des zéros les (m-j) lignes (les j premières lignes sont modifiées par suite de combinaison linéaire) de la colonne j (j=1..m). Ainsi, on aura une seule variable à la dernière ligne et en remontant on résoud l'équation.
Il existe plusieurs versions de cet algorithme par exemple la variante de Gauss-Jordan mais dans tous les cas, le problème se résume à la triangularisation de la matrice initiale et la solution devient triviale.
Cherche d'abord l'algorithme (en utilisant google par exemple) puis si tu as des problèmes pour l'implémenter en Pascal, revient ici
A+
Comment rejoindre la rédaction de www.developpez.com ?
Améliorer vos posts en faisant une correction orthographique
"Tu as tort d'abuser de ma patience" Sokar
juste une petite question , Le pivot de Gauss permet seulement de résoudre des systèmes de n équations à n inconnues indépendantes?
Moi je l'ai codé en pascal pour mon tpe qui concerne l'interpolation polynomiale.
On donne des couples de points et il nous résoud la fonction de degré n-1 qui passe par tous ces points.
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113 procedure saisie_pts(var Tx,Ty:vecteur;dim:integer); var i : integer; begin {saisie des points} for i:=1 to dim do begin writeln('absisse et ordonnée du point ',i); readln(Tx[i]); readln(Ty[i]); end; end; procedure creer_matrice(tx:vecteur;var ty:vecteur;var matt:matrice ;dim:integer); var i,j,k:integer; begin for i:=1 to dim do begin for j:=1 to dim do begin matt[i,j]:=1; for k:=dim downto j+1 do begin matt[i,j]:= matt[i,j] * Tx[i]; end; end; end; end; procedure pivot(var mat1:matrice;var v1 :vecteur;dim:integer); var i,j,k:integer; begin for k:=1 to dim-1 do begin for i:=k to dim-1 do begin v1[i+1] := mat1[i+1,k]* v1[k] - v1[i+1] * mat1[k,k] ; for j:=k to dim-1 do begin mat1[i+1,1+j]:= mat1[i+1,k]* mat1[k,j+1] - mat1[i+1,j+1] * mat1[k,k] ; end; mat1[i+1,k]:=0; end; end; end; procedure resultats(mat1:matrice;v1:vecteur;var v2 : vecteur;dim:integer); var i,j,k:integer; begin for i:=1 to dim+1 do begin v2[i] :=0; end; j:=dim ; i:=1; for i:=1 to dim do begin for k:=1 to i-1 do begin v2[j]:= v2[j] - v2[j+k] * mat1[j,j+k]; end; v2[j]:= (v2[j]+v1[j]) / mat1[j,j] ; j:=j-1; end; end; procedure afficher_vecteur(v1:vecteur;dim:integer); var i:integer; begin for i:=1 to dim do begin write('|'); write(v1[i]:3:3); writeln('|'); end; end;
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager