Upload
vongoc
View
248
Download
0
Embed Size (px)
Citation preview
UNIVERSITÉ SAINT-JOSEPH Faculté d'ingénierie
Ecole supérieure d'ingénieurs de
Beyrouth
Projet d’analyse numérique
I- Théorème des cinq moments
II- Poutre sur sol élastique
Présenté par les étudiants de 1
ere année génie civil :
KARAM Elias
MAWAD Ass’ad
Encadré par:
Mr. Wassim RAPHAEL
2009
1 | P a g e
Remerciements
Nous exprimons notre profonde reconnaissance à Mr. Wassim
RAPHAEL, qui nous a bien encadrés durant toute la durée du projet.
Mais surtout qui par son expérience et sa compétence, nous a toujours
poussé plus loin et nous a incité à réfléchir vis-à-vis de l’amélioration de
notre programme. Il a fait en sorte qu’aucune de nos rencontres ne soit
passive, et nous a donné l’avant gout des problèmes auxquels nous
pourrons faire face durant notre carrière d’ingénieur civil : il nous a
initiés à une nouvelle manière de penser et de voir les choses.
Nous tenons aussi à remercier Mr. Fouad KADDAH qui nous a aidés à
concevoir la traduction algorithmique de nos « solutions ».
2 | P a g e
Sommaire
Introduction………………………………………………………………3
I-Théorème des cinq moments…………………………………………..4
Théorie………………………………………………………………….4
Equation des 5 moments………………………………………………5
Modèle Mathématique………………………………………………….9
Interface et compilation……………………………………………….10
Algorithme……………………….……………………………………12
Graphs…………………………………………………………………15
Limitations et améliorations………………………………………….16
II-Poutre continue sur sol élastique…………………………………….17
Théorie………………………………………………………………..17
Solution de l’équation différentielle…………………………………19
Interface et compilation……………………………………………….22
Graphs…………………………………………………………………25
III-Correction pour la poutre continue sur sol élastique……………..26
Observations et explication de l’erreur……………………………..26
Correction par annulation de K……………………………………..27
Algorithme de la correction…………………………………………28
Proposition de correction par ajout de force……………………….30
Améliorations………………………………………………………....30
Conclusion…………………………………………………………….31
Annexes……………………………………………………………….32
3 | P a g e
Introduction
Le calcul numérique est un domaine de recherche à lui seul. De ce fait, une question
vient à l’esprit : Que vient faire cette science au bon début de notre cursus d’ingénieur
civil ?
Comme dans de nombreux domaines, la pratique joue un rôle essentiel dans la
maitrise du sujet. On ne peut raisonnablement pas espérer assimiler les méthodes
(apprises dans le premier semestre de l’année) sans les manipuler sur des exemples
concrets et connus. C’est dans ce sens que nous sommes amenés à réfléchir.
Il est vrai que la programmation des méthodes numériques peut sembler assez
difficile, mais il ne faut pas se perdre et oublier qu’elle est pour nous qu’un outil.
Souvent nous avons tendance à vouloir tout réinventer et réécrire les méthodes
standards, c’est une perte de temps. Il est cependant nécessaire de s’investir dans ce
domaine pour pouvoir y optimiser les résultats.
Notre projet vise la problématique directement, il forme la démarche indispensable
pour l’apprentissage et complète le calcul manuel appris en début d’année.
C’est dans cette perspective que l’écriture algorithmique des méthodes
numériques se présente comme un outil au service de l’ingénieur civil.
Pour un ingénieur, il est essentiel de savoir garder l’équilibre entre sa réflexion (et ses
estimations logiques) et l’emploi des résolutions numériques. La modélisation peut
parfois induire à des résultats réellement inconcevables. Notre projet – comme vous le
verrez par la suite – forme un bon exemple. Il appui aussi le fait, que l’utilisateur est
le meilleur programmeur. Nous voulons dire par la, que l’ingénieur utilisateur-
programmeur saura tirer la meilleur forme, adéquate, et qui répond directement à ses
besoins.
Ce document contient deux parties majeures :
D’abord l’étude d’une poutre sur appui élastique – Théorème des cinq moments.
Ensuite l’étude d’une poutre sur sol élastique suivie d’un « correction ».
Nous présenterons pour chacune l’étude théorique suivie d’un exemple qui servira
d’expliquer le fonctionnement de notre programme. Pour la deuxième partie, une
correction (optimisation du résultat) sera présenter et élaborer à la suite du
programme « intuitif ».
Nous ne prétendrons pas donner les meilleurs algorithmes, bien au contraire,
l’amélioration du programme reste possible du point de vue méthode de calculs,
écriture de l’algorithme, temps de calculs… C’est ce que nous avons-nous même
expérimenté durant la progression du projet : l’algorithme évoluait constamment !
4 | P a g e
ii-1 i+1
I. Théorème des cinq moments :
La Théorie :
Les appuis élastiques G i sont caractérises par une constante k i :
v i = - k i R i
Avec v i = déplacement vertical de l’appui G i
R i = réaction verticale de l’appui G i
k i = coefficient de souplesse
Or,
R i = Vd
i – Vg
i
Avec Vg
i =
g
idx
d
+
il
M - M 1-ii
Vd
i =
d
idx
d
+
1
i1i M - M
il
Donc,
R i =
d
idx
d
-
g
idx
d
+
1
i1i M - M
il -
il
M - M 1-ii
Où,
d
idx
d
-
g
idx
d
représente la réaction isostatique r i
On obtient : R i = r i + 1
i1i M - M
il -
il
M - M 1-ii
5 | P a g e
Equation des cinq moments :
r i = somme des réactions d’appui en G i des travées isostatiques associées à G 1i G i
et G i G 1i
R i = réaction d’appui en G i pour la poutre continue
On a:
R i = r i + 1
i1i M - M
il -
il
M - M 1-ii
D’où :
v i = - k i R i = - k i [r i + 1
i1i M - M
il -
il
M - M 1-ii ]
De même :
v 1i = - k 1i R 1i = - k 1i [r 1i + il
M - M 1-ii -1
2-i1-i M - M
il]
v 1i = - k 1i R 1i = - k 1i [r 1i + 2
1i2i M - M
il -
1
i1i M - M
il]
Le théorème des trois moments s’écrit :
b i M 1i + (c i + a 1i )M i + b 1i M 1i = θ'
1i - θ"
i + 1
i1i v- v
il -
il
v- v 1-ii
Soit compte tenu des dénivellations d’appui :
b i M 1i + (c i + a 1i )M i + b 1i M 1i = θ'
1i - θ"
i - 1
1
il[ k 1i r 1i - k i r i + k 1i
2
1i2i M - M
il - (k 1i + k i )
1
i1i M - M
il + k i
il
M - M 1-ii ] + il
1[ k i r i - k 1i r 1i + k i
1
i1i M - M
il - (k i + k 1i )
il
M - M 1-ii + k 1i
1
2-i1-i M - M
il]
6 | P a g e
En regroupant les moments à gauche et à droite du signe =, il vient:
[1i
1-i k
ill] M 2i
+ [b i - 1i
i k
ill -
2
1-ii kk
il
-
1i
1-i k
ill] M 1i
+ [c i + a 1i + 2
1
1ii kk
il+
1i
i 2k
ill +
2
1-ii kk
il
] M i
+ [b 1i - 21
1ik
ii ll -
2
1
1ii kk
il -
1i
i k
ill] M 1i
+ [21
1ik
ii ll] M 2i
= θ'
1i - θ"
i - il
1ik r 1i + k i (1
1
il +
il
1) r i -
1
1ik
ilr 1i
D’où en ordonnant les termes entre crochets :
[1i
1-i k
ill] M 2i
+ [b i - i
i k
l(
1
1
il +
il
1) -
i
1-i k
l(
il
1 +
1
1
il)] M 1i
+ [c i + a 1i + 2
1i k
il
+ k i (il
1 +
1
1
il)
2 +
2
1
1i k
il] M i
+ [b 1i - 1
i k
il(
il
1 +
1
1
il) -
1
1i k
il(
1
1
il+
2
1
il)] M 1i
+ 21
1ik
ii llM 2i
= θ'
1i - θ"
i - il
1ik r 1i + k i (1
1
il +
il
1) r i -
1
1ik
ilr 1i
Pour simplifier les écritures nous posons :
α i = c i + a 1i + 2
1i k
il
+ k i (il
1 +
1
1
il)
2 +
2
1
1i k
il
β i = b i - i
1-i k
l(
il
1 +
1
1
il) -
i
i k
l(
1
1
il +
il
1)
γ i = 1i
i k
ill
Ω i = θ'
1i - θ"
i - il
1ik r 1i + k i (1
1
il +
il
1) r i -
1
1ik
ilr 1i
7 | P a g e
D’où l’expression du théorème des cinq moments :
γ 1i M 2i + β i M 1i + α i M i + β 1i M 1i + γ 1i M 2i = Ω i
Remarques :
1) Pour une poutre continue sur appuis fixes :
v i = - k i R i = 0
R i ≠ 0
Donc k i = 0 pour tout i
Les coefficients de l’équation des 5 moments deviennent :
α i = c i + a 1i
β i = b i
γ i = 0
Ω i = θ'
1i - θ"
i
D’où le théorème des 5 moments a pour équation :
b i M 1i + (c i + a 1i )M i + b 1i = θ'
1i - θ"
i
soit l’expression établie pour le théorème des 3 moments.
2) En appliquant la relation des 5 moments à chacun des appuis d’une poutre
continue à n appuis, on obtient un système linéaire de n équations à n
inconnues (M0, M1, … Mn-1, Mn)
Cas des abouts de poutre :
Pour les premières travées de la poutre
i = 0 α0M0 + β1M1 + α1M2 = Ω0
i = 1 β1M0 + α1M1 + β1M2 + γ2M3 = Ω1
i = 2 γ1M0 + β2M1 + α2M2 + β3M3 + γ3M4 = Ω2
Pour les dernières travées de la poutre
i = n – 2 γn-3Mn-4 + βn-2Mn-3 + αn-2Mn-2 + βn-1Mn-1 = Ωn-2
i = n – 1 γn-2Mn-3 + βn-1Mn-2 + αn-1Mn-1 + βnMn = Ωn-1
i = n γn-1Mn-2 + βnMn-1 + αnMn = Ωn
8 | P a g e
Encastrements élastiques sur appuis de rive – encastrement partiel
Pour i = 0, α i s’écrit :
α0 = c0 + a1 + 2
0
1 k
l
+ k 0 (0
1
l +
1
1
l)
2 +
2
1
1 k
l
Comme il n’y a pas de travée d’indice 0 :
α0 = c0 + a1 + 2
1
10 kk
l
En remarquant qu’un moment M0 appliqué à l’appui 0 peut être obtenu
en considérant une travée soumise à un moment sur l’appui de droite
valant M0 :
ω"
0 = θ"
0 + b0M-1 + c0M0
or, M-1 = 0 et θ"
0 = 0
ω"
0 = c0M0 = h0M0
c0 = h0
h0 étant la souplesse de l’encastrement partiel.
Pour i = n :
ω'
1n = θ'
1n - a 1n M n - b 1n M 1n
M 1n = 0
θ'
1n = 0
ω'
1n = - a 1n M n = - h n M n
a 1n = h n
Donc, les coefficients de la relation des 5 moments peuvent être
déterminés en faisant intervenir h0 et hn caractérisant les encastrements
élastiques sur appuis de rive :
Donc pour les premiers coefficients :
α0 = h0 + a1 + 2
1
10 kk
l
α1 = c1 + a2 + 2
1
0 k
l + k1(
1
1
l +
2
1
l)
2 +
2
2
2 k
l
β1 = b1 - 2
1
0 k
l -
1
1 k
l(
1
1
l +
2
1
l)
γ1 = 21
1 k
ll
Ω0 = θ'
1 + 1
0 k
lr0 -
1
1 k
lr1
9 | P a g e
Pour les derniers coefficients :
αn = cn + hn + 2
n1-n kk
nl
βn = bn - nl
k 1-n (1
1
nl +
nl
1) -
2
n k
nl
γn = nll 1-n
1-n k
Ωn = - θ"
n + n
1-n k
lrn-1 -
n
n k
lrn
NB : Vous trouverez en ANNEXE la définition de Ks, ainsi que le formulaire pour
une poutre sur deux appuis simples.
Le modèle mathématique :
Ainsi la matrice à résoudre devient :
0 0 0
0 0
1 1 0 0
1 0 2 0 0
3 2 2 1 1
2 1 1
1
0 0 0 0 0
0 0 0 0
0 0 0
0*
0
0 0 0
0 0 0 0
0 0 0 0 0
n n n n n
n n n n
n n
n n n
M
M
Donc le problème est rendu à un système linéaire de n équations à n inconnue.
Pour résoudre un tel problème on fait intervenir les méthodes numériques. Plusieurs
méthodes s’applique dessus (méthode de Gauss, Méthodes LS,…)
Dans la suite nous vous exposons l’algorithme de gauss que nous avons choisi dans
notre programme pour résoudre cette matrice. L’algorithme de Gauss étant le plus
facile et le plus rapide pour des matrices de petite dimension.
Les conditions aux limites du programmes seront indiquées par l’utilisateur, qui ne
représentent que les types d’appuis aux extrémités (console, encastrement, appuis
rotule). Dans notre cas on suppose que les appuis sont fixes (appuis rotules) et les
moments aux appuis (M0, Mn) sont nuls, par suite le système se ramène a n-2
équations à résoudre.
10 | P a g e
Interface et compilation du programme
Dans ce qui suit, nous allons expliquer l’utilisation
du programme et le fonctionnement de l’algorithme
utilisé.
Notre programme peut calculer au maximum un
problème de 10 travées.
Ce programme peut facilement être étendu à 100
travées en considérant des méthodes et des
algorithmes plus avancés que nous citerons dans la
partie amélioration.
Saisir les donnes :
1- Choisir les Conditions initiales (figure 1):
2- Les données du programme
(figure 2) :
3
5
4
1-2
Figure 1
1- L’unité de la force (KN
dans le SI)
2- L’unité de la longueur (m
dans le SI)
3- Le module de Young
4- Le nombre de travée
5- Le type des appuis aux
extrémités
1- Entrer la longueur et
l’inertie de chaque travée
2- Entrer le coefficient de
tassement de chaque
appuis
Figure 2
1
2
1
2
11 | P a g e
-100
-50
0
50
100
150
0 20 40 60 80 100 120 140 160 180
3-Les forces appliquées sur les travées (figure 3) :
Une visualisation de la travée, de la force repartie, de la force ponctuelle, et du couple
apparaissent sur un schéma dans l’interface.
Cliquer sur le bouton calcul des moments pour lancer le programme.
Vous pouvez à n’importe quel instant cliquer sur le bouton résultat pour aller à la
page des résultats, et le bouton graph pour voir les graphs demandés (après y avoir
cliqué sur calcul des moments). Le bouton reset est disponible à n’importe quel
instant pour remettre à zéro les valeurs du tableau.
1- Choisir le nombre de
chargement par travée
2- Le module de chargement(en
respectant les conventions de
la figure 4)
3- La travée sur laquelle le
chargement est appliqué et la
distance d’application de cette
charge par rapport à l’appui
gauche de la travée Figure 3
Figure 4
12 | P a g e
L’algorithme :
On a vu dans la partie théorique que le problème est rendu à une matrice de n
équations à n inconnues. La résolution d’un système AX=B se fait numériquement en
utilisant divers méthodes, dans notre algorithme nous utilisons la méthode de
GAUSS.
La méthode d’élimination de Gauss transforme le système à résoudre en un système
équivalent à matrice triangulaire supérieure dont la solution est facile à obtenir.
On élimine u1 des équations 2,3…n en se servant de la première équation ;
Puis on élimine u2 des équations 3,4,…n en se servant de la deuxième équation
modifiée…ainsi de suite, jusqu'à éliminer u(n-1) de l’équation n.
L’écriture algorithmique est la suivante :
‘Remplissage de la matrice :
mat(0, 0) = alpha(0) mat(0, 1) = beta(1) mat(0, 2) = gamma(1) mat(1, 0) = beta(1) mat(1, 1) = alpha(1) mat(1, 2) = beta(2) mat(1, 3) = gamma(2) For i = 2 To nbr - 2 mat(i, i - 2) = gamma(i - 1) mat(i, i - 1) = beta(i) mat(i, i) = alpha(i) mat(i, i + 1) = beta(i + 1) mat(i, i + 2) = gamma(i + 1) Next i mat(nbr, nbr) = alpha(nbr) mat(nbr, nbr - 1) = beta(nbr) mat(nbr, nbr - 2) = gamma(nbr - 1) mat(nbr - 1, nbr) = beta(nbr) mat(nbr - 1, nbr - 1) = alpha(nbr - 1) mat(nbr - 1, nbr - 2) = beta(nbr - 1) mat(nbr - 1, nbr - 3) = gamma(nbr - 2)
avec alpha(i), beta(i), gamma(i), sont les coefficients recherchés dans la partie théorique.
13 | P a g e
La matrice B est remplie par les seconds termes de l’inégalité : Omega(i) L’algorithme de gauss : Système de la forme AX=B ‘Aboutir a la matrice triangulaire supérieure :
For k = 1 To n - 1 For i = k + 1 To n Step 1 factor = a(i, k) / a(k, k) For j = k + 1 To n a(i, j) = a(i, j) - factor * a(k, j) Next j b(i) = b(i) - factor * b(k) Next i Next k ‘On remplace les équations par une marche
inverse :
x(n) = b(n) / a(n, n) For i = n - 1 To 1 Step -1 sum = 0 For j = n To i + 1 Step -1 'or j=i+1 to n sum = sum + a(i, j) * x(j) Next j x(i) = (b(i) - sum) / a(i, j) Next i
14 | P a g e
La résolution du système donne la matrice X qui n’est autre que la matrice solution des moments aux appuis de la travée. La feuille résultat indique tous les résultats finals de l’étude pour une poutre continue par le théorème des 5 moments.
Dans le tableau (figure 7) vous
trouvez le maximum et le
minimum des moments de flexion
et de l’effort tranchant avec leur
abscisse absolue sur les travées
ainsi qu’un tableau de résultats
qui donne pour différentes
abscisses le moment fléchissant
et l’effort tranchant.
Figure 5
Dans le tableau (figure 6) vous
trouvez
les moments sur les appuis dans la
2eme
ligne,
les réactions dans la 3eme
ligne,
les tassements dans la 4eme
ligne. Figure 6
Figure 7
15 | P a g e
Les Graphs:
Dans la section des graphs vous trouvez : un graph des travées avec leur chargement, un graph des moments fléchissant, un graph de l’effort tranchant, en signalant le maximum et le minimum sur le graph. De plus un tableau des valeurs maximal et minimal précédemment expliquer.
Vous pouvez à n’importe quel moment cliquer sur les boutons suivant :
Résultat pour revenir à la page résultat
Graph pour aller à la page Graph
Donnée pour aller à la page des Données
Reset pour remettre à Zéro.
De plus vous pouvez déterminer les
sollicitations(2) pour une abscisse
déterminée X (1)
2
X
Figure 9
Figure 8
16 | P a g e
Limites et Améliorations de la Méthode et de l’Algorithme :
La méthode :
A priori la méthode des cinq moments, qui n’est autre que dérivée de la méthode des trois moments, est la plus rapide pour le cas d’un système de travée continue. Mais cette méthode ce trouve inutile dans les problèmes de cadre, de torsion…
Limitations algorithmiques :
Signalons que notre programme peut être facilement élargit à un nombre très grand de travée mais les limitations de mémoire due au compilateur(Excel) s’avère grave, de plus une résolution d’une plus grande matrice devient plus lente avec l’algorithme de gauss. Pour cela on peut passer au compilateur C++ au détriment de la belle interface que présente Excel. Cela en effet dépend des demandes de l’utilisateur. Changer l’algorithme de gauss est aussi important pour des grandes matrices, plusieurs méthodes sont mises au point : Cours d’Analyse Numérique enseigne par Mr. Fouad KADDAH: A titre d’exemple : Méthode LS Méthode de Runge-Kutta
17 | P a g e
q(x)
r(x)
q(x)
v(x)
ligne moyenne
q(x)
v(x)
II- Poutre Continue sur Sol Elastique :
La Théorie :
Equation différentielle:
q(x) : charge appliquée
r(x) : réaction du point d’abscisse x
v(x) : flèche
r(x) = - k v(x)
D’autre part EI
M
dx
vd
2
2
Donc V = 3
3
dx
vdEI
dx
dM
Or dx
dV- p(x) = - (q(x) – r(x))
Equilibre des forces verticales sur un élément dx infiniment petit.
Donc p(x) = q(x) – r(x) = q(x) + k v(x)
18 | P a g e
Tout ceci implique :
4
4
dx
vd-
EI
xkvxq )()(
D’où , l’équation différentielle :
4
4
dx
vd + 4γ
4 v(x) =
EI
xq )(
Avec γ4 =
EI
k
4
On en déduit les sollicitations à partir de v(x) :
3
3
2
2
)(
)(
dx
vdEIxV
dx
vdEIxM
Rappels mathématiques:
On pose : φ(γx) = e
-γx [cos γx + sin γx]
Par dérivation : φ’(γx) = γe
-γx [- cos γx – sin γx – sin γx + cos γx]
On pose : φ’(γx) = - 2γ ξ(γx)
ξ(γx) = e-γx
sin γx
En dérivant une seconde fois :
ξ'(γx) = γe
-γx [– sin γx + cos γx]
On pose : ξ'(γx) = γ ψ(γx)
ψ (γx) = e-γx
[cos γx - sin γx]
En dérivant une troisième fois :
ψ'(γx) = γe
-γx [ - cos γx + sin γx - sin γx - cos γx]
On pose : ψ'(γx) = - 2γ θ(γx)
θ'(γx) = e
-γx cos γx
En dérivant une quatrième fois :
θ'(γx) = γe
-γx [- cos γx - sin γx]
On a donc : θ'(γx) = - γ φ(γx)
19 | P a g e
Solution de l’équation différentielle :
Solution générale
)(sincossincos)( xvxDexeCxBexAexv xxxx
)(xv Solution particulière de l’équation avec second membre qui dépend donc du
chargement q(x).
Poutre infinie soumise a une charge concentrée P
Le travail sera effectué en considérant le repère d’origine O en P (charge concentrée).
Par symétrie du chargement :
V(x) = V (-x)
V (0+ε) = - V (0-ε)
Or V (0+ε) = V (0-ε) – P
V (0+ε) = 2
P
V(0-ε)
V(0+ε)
v
P
20 | P a g e
La solution de l’équation différentielle (de la déformée) s’écrit :
q(x) = 0 )(xv 0
xDexeCxBexAexv xxxx sincossincos)(
A partir des conditions aux limites, nous allons pouvoir déterminer A, B, C, D :
0)(lim
xvx
A = B = 0 et xDexeCxv xx sincos)(
Par raison de symétrie :
0)0( xdx
dv (pente)
Comme ]cossinsincos[ xDxCxDxCedx
dv x
]sin)(cos)[( xCDxCDedx
dv x
On obtient :
0)()0( CDxdx
dv D = C et v(x) = C e
-γx [cos γx + sin γx]
Soit : v (x) = C φ (γx)
Par raison de symétrie :
2)0()0(
3
3 Px
dx
vdEIxV
v (x) = C φ (γx)
dx
dv = - 2 γ C ξ (γx)
2
2
dx
vd = - 2 γ
2 C ψ (γx)
3
3
dx
vd = 4 γ
3 C θ (γx)
21 | P a g e
Il vient : 2
]cos[4)0( )0(
3
3
3 PxeCEIx
dx
vdEI x
x
2
4 3 PCEI
38 EI
PC
D’autre part : EI
k
4
4 k
PC
2
Les expressions précédentes deviennent :
)(2
)( xk
Pxv
)(2
xk
P
dx
dv
EI 2
2
dx
vd = M = )(
4x
P
EI 3
3
dx
vd = V = )(
2x
P
Dans le cas où x<0, on utilisera :
)()(
)()(
)()(
)()(
xVxV
xMxM
xdx
dvx
dx
dv
xvxv
22 | P a g e
Interface et compilation
Dans ce qui suit nous allons
expliquer l’utilisation du
programme et le fonctionnement
de l’algorithme utilisé.
Notre programme compile les
valeurs réelles ou la solution de
l’équation trouvée dans la partie
théorique, ainsi que la résolution
de la matrice du maillage trouve
dans la partie précédente, ainsi
pour aller plus loin on propose
des valeurs correctives dont la
théorie est discutée
précédemment.
1- Position du Problème :
1-Choisir les unités
convenables
2-Entrer les données du
problème (longueur de la
poutre, Charge Applique, K,
E, I)
3-On discutera dans ce qui
suit le choix du nombre de
pas (on suggère le nombre
optimum des pas)
23 | P a g e
2- Boutons et fonctions :
L’algorithme :
‘Remplissage de la matrice B
matb(0) = -p * pas ^ 3 / e / ine ‘On divise par le pas
car on considère que la
force est repartie
‘Remplissage de la matrice A
mat(0, 0) = 6 + pas ^ 4 * 4 * g ^ 4
mat(0, 1) = -8
mat(0, 2) = 2
mat(1, 0) = -4
mat(1, 1) = 7 + pas ^ 4 * 4 * g ^ 4
mat(1, 2) = -4
mat(1, 3) = 1
Cliquer sur les boutons :
Calculer la flèche : Calcule
de la flèche réelle, par
discrétisation, Correction
Reset : remettre à zéro le
programme
Résultat : les résultats de
l’analyse
Graph : les graphiques de
l’analyse
24 | P a g e
For i = 2 To nbr - 2
mat(i, i - 2) = 1
mat(i, i - 1) = -4
mat(i, i) = 6 + pas ^ 4 * 4 * g ^ 4
mat(i, i + 1) = -4
mat(i, i + 2) = 1
Next i
mat(nbr, nbr - 2) = 2
mat(nbr, nbr - 1) = -8
mat(nbr, nbr) = 6 + pas ^ 4 * 4 * g ^ 4
mat(nbr - 1, nbr - 3) = 1
mat(nbr - 1, nbr - 2) = -4
mat(nbr - 1, nbr - 1) = 7 + pas ^ 4 * 4 * g ^ 4
mat(nbr - 1, nbr) = -4
Avec : Longueur de la poutre
Nbr de pasPas
4
4
Kg
EI
Pour résoudre ce système de la forme AX=B on applique la méthode de
Gauss déjà traite dans la 1ere
partie (Théorème des cinq moments)
La résolution du système donne la matrice X qui n’est autre que la
déformation en un point donné.
La feuille résultat indique tous les résultats finaux de l’étude d’une poutre
continue sur un sol élastique.
De même vous trouvez dans
cette feuille un tableau de
résultat pour différentes
abscisses :
les valeurs réelle,
de discrétisation,
et la correction,
un autre tableau affiche le
maximum et le minimum
des trois cas précédemment
cités avec leur abscisse.
25 | P a g e
Les graph:
Dans la section des graphs vous trouvez
deux graphes identiques à deux échelles
différentes :
Le 1er
graph amplifie la hauteur pour
mètre en évidence les oscillations du
système
Le 2nd
graph est forme de 3
courbes :
La déformée réelle
La déforme par
discrétisation
La déforme correcte
Ainsi qu’un tableau de
valeur maximale et
minimale pour chacun
des cas.
Vous pouvez à n’importe quel moment cliquer sur les boutons :
Résultat pour revenir a la page résultat
Graph pour aller a la page Graph
Donnée pour aller à la page des Donnée
Reset pour remettre a Zéro.
De plus vous pouvez déterminer les 3
types de déformations pour une abscisse
déterminée X (1)
26 | P a g e
III-Correction
Poutre Continue sur Sol Elastique :
Observations et explication de l’erreur : La poutre continue sur sol élastique, peut être modélisée par une poutre
appuyée sur des appuis ponctuels élastiques successifs (ou par une
succession de ressorts).
La poutre sur appui élastique continu…
…doit être modélisée sur des appuis ponctuels élastiques
Au début, avant tout chargement, l’analogie entre la poutre sur sol élastique et la poutre appuyée sur une succession de ressorts est respectée.
Quand on place le chargement, la poutre va se déformer suivant une sinusoïde qui diminue d’amplitude en s’éloignant du point d’application de la charge.
Dans le cas de la poutre sur les ressorts, la déformation va entraîner que les ressorts se trouvant sous la flèche négative soient comprimés, alors que les ressorts se trouvant sous la flèche positive soient tendus.
27 | P a g e
Nous aurons des réactions d’appui r(x) / r(x) = -kv(x) où k : constante de raideur du ressort. Dans le cas de la poutre continue, le sol sous la flèche négative est comprimée d’où on a la même réaction d’appui, mais sous la flèche positive, puisque le sol n’agit pas en traction, elle ne va pas remonter avec la poutre.
Correction par annulation de K:
La correction à laquelle nous avions eu recours est de « couper » les ressorts qui travaillent en traction. En d’autre terme, nous avons annulé K.
Ce qui mène au schéma suivant :
Pour y remédier numériquement, nous avons localisé l’endroit où il y a une flèche positive. A ces endroits là, nous avons annulé K.
Le programme est itératif, le même procédé est répété jusqu'à ce que la différence entre deux points consécutifs présentant des flèches positives soit nulle.
C’est ainsi que la correction est faite, la déformée observée est maintenant juste et logique.
Algorithme de la correction :
For aa = 0 To 500 'nbr d'iteration For i = 1 To nbr If v(i) > 0 Then mat(i, i) = 6 '+ pas ^ 4 * 4 * g ^ 4 'matb(i) = k * v(i) * pas ^ 4 / e / ine End If Next i
28 | P a g e
'Lecture de a et b For i = 1 To n For j = 1 To n a(i, j) = mat(i - 1, j - 1) Next j b(i) = matb(i - 1) Next i 'Elimination For k = 1 To n - 1 For i = k + 1 To n Step 1 factor = a(i, k) / a(k, k) For j = k + 1 To n a(i, j) = a(i, j) - factor * a(k, j) Next j b(i) = b(i) - factor * b(k) Next i Next k 'Substitution x(n) = b(n) / a(n, n) For i = n - 1 To 1 Step -1 Sum = 0 For j = n To i + 1 Step -1 'or j=i+1 to n Sum = Sum + a(i, j) * x(j) Next j x(i) = (b(i) - Sum) / a(i, j) Next i 'Output x For i = 1 To n ' Cells(19 + i, 10) = x(i) v(i - 1) = x(i) Next i Next aa
29 | P a g e
Proposition d’une autre correction:
Cette méthode consiste a ajouter une force qui éliminera l’effet de la réaction par traction du sol.
Dans notre modélisation, nous avons considéré une réaction d’appui partout sur la poutre, or en réalité, ceci n’est pas vrai alors l’analogie entre la poutre continue sur sol élastique et la poutre sur les ressorts n’est plus valable. Le sol ne fonctionne pas en traction.
Pour corriger cela numériquement, nous proposons :
Trouver l’endroit où il y a une flèche positive, ajouter à l’équation une force de norme égale à la réaction et de sens opposé pour annuler r. et on dessine la nouvelle figure qu’on obtient. Par itération, le programme répète le même calcul, jusqu’à ce que la différence entre 2 points consécutifs soit nulle.
De cette façon la déformée devient juste.
NB : Nous n’avons pas abouti à un bon résultat en résolvant le problème par
cette méthode. Cependant le raisonnement nous a semblé logique et nous voulions le mentionner.
30 | P a g e
Améliorations : Nos programmes étaient en constamment améliorés. Nous voulons dire
par amélioration : -Optimisation des résultats, c'est-à-dire, un rapprochement continuel des valeurs réelles. -Optimisation du temps de calculs, et cela en correspondant l’écriture
algorithmique la plus adaptée avec la méthode numérique la plus rapide. -Optimisation du pas de discrétisation : En effet, le choix du pas influence énormément les résultats. En menant nos recherches nous avons trouvé une méthode de calculer le maillage le plus adéquat. Le calcul se fait automatiquement comme suit : Exemple :
Largeur de la poutre en m 1,5
Hauteur en m 0.50
Longueur en m 12
Module E en kN/m2 20000000
k sol en kN/m2/m 10000
Résultat pour : L maillage en m
0.226
Résultat pour : Nbre optimum d'appuis 54
On s'aperçoit que la finesse de maillage varie en fonction de la rigidité de la poutre. Si la poutre se déforme localement le maillage doit être de plus en plus fin. Si la déformation est globale, le maillage peut être grossier. -Optimisation de la méthode de calcul : Pour le Theoreme des cinq moments: on peut facilement elargir notre programme à une nombre très grand de travée mais la résolution devient plus lente pour cela on utilise des méthodes plus efficaces pour la résolution: méthodes LS, Runge Kutta (cours analyse)... Pour la poutre: de même, nous pouvons employer des méthodes numériques (LS, Runge kutta) qui donneront une correction plus précise. -Optimisation du logiciel : A notre niveau, Excel permet de faire tous les calculs, les graphiques et présente une belle interface. Pour une plus grande mémoire, C++ -par exemple- s’avère plus performant…
31 | P a g e
Conclusion
Si nous avons commencé notre projet par une problématique qui peut
sembler de prime abord loin du contenu de ce document, ce n’est pas par
hasard !
Nous nous la reposons à la fin de ce dossier avec plus de certitude qu’elle
est bien une finalité en soit :
Que vient faire cette science (l’analyse numérique) au bon début de notre
cursus d’ingénieur civil ?
Nous répondons plus fermement, que si nos programmes peuvent être en
constante évolution, et si les méthodes peuvent être multiples pour
accomplir la même tache, l’initiation à cette science en début de cursus
est primordiale pour pouvoir optimiser nos résultats. En effet,
l’amélioration est toujours présente mais il faut cependant cibler la
finalité.
Profiter de cet essor dans le monde de la programmation est plus que
jamais indispensable dans ce nouveau monde très compétitif. La
connaissance dans la programmation des méthodes numériques n’est
plus un PLUS, c’est une nécessité puisque comprendre la base
aujourd’hui nous permettra de pouvoir manipuler et s’adapter aux
évolutions rapides dans la pratique de l’Ingénierie civil.
33 | P a g e
Annexe 1.Coefficients de réaction Ks des sols :
Définition : On appelle coefficient de réaction Ks le quotient de la
pression de contact en un point de l’interface d’une semelle par le
tassement considéré :
Ks= -σs/v (le sens de v est ascendant)
D’où le coefficient d’élasticité des appuis :
σs= R/(B.L) où BxL= dimension en plan de la semelle (B≤L)
V=-k.R
Donc, V=-R/(Ks.B.L) avec k=1/(Ks.B.L)
Nous distinguons de forme de Ks, l’une pour les sols sans cohésion et
l’autre pour les argiles consistantes.
Annexe 2.Matrice résolue pour la poutre continue sur sol
élastique :
4 4
34 4
0
4 4
4 4
4 4
4 4
4 4
6 4 8 2 0 0 0 0 0
4 7 4 4 1 0 0 0 0
1 4 6 4 4 1 0 0 0 0
0 1 4 6 4 4 1 0 0
*
0 0 1 4 6 4 4 1 0
0 0 0 0 1 4 7 4 4 0
0 0 0 0 0 2 8 6 4
n
x
P xVxEI
x
x
x
Vx
x
35 | P a g e
Annexe 4 - Etude d’une poutre sur deux appuis simple avec charge uniforme q :
Les réactions d'appuis se déterminent aisément en
formulant l'équilibre des moments autour de A une fois et
autour de B une deuxième fois :
donne
donne
Ensuite on coupe la poutre en la position x, on remplace la
partie coupée par les efforts intérieurs N, V et de M, les
appuis par les réactions d'appui et on formule l'équilibre :
N(x) = 0
ce qui donne, avec ,
Diagramme des efforts de cohésion
Les efforts normaux N(x) sont nuls tout le long de la poutre.
L'effort de cisaillement est maximal aux appuis :
, respectivement
. Entre ces deux valeurs, V(x) est linéaire,
avec .
Le moment M(x) décrit une fonction parabolique le long de la poutre. Sa
valeur est maximale en ou elle vaut
36 | P a g e
Annexe 5 - L’algorithme
Algorithme Théorème des 5 moments
Sub matrice() Sheets("calcul").Select Dim a(20) As Double Dim b(20) As Double Dim c(20) As Double Dim l(20) As Double Dim ine(20) As Double Dim k(20) As Double Dim alpha(20) As Double Dim beta(20) As Double Dim gamma(20) As Double Dim omega(20) As Double Dim mat(20, 20) As Double Dim moment(20) As Double Dim reaction(20) As Double Dim tassement(20) As Double Dim nbr As Integer Dim ss As Integer Sheets("Calcul").Select range("A20:N32000").Select Selection.ClearContents range("A1").Select nbr = range("B3") e = range("B1") For i = 1 To nbr l(i) = Cells(9, i + 3) ine(i) = Cells(10, i + 3) Next i For i = 0 To nbr k(i) = Cells(16, i + 3) Next i
37 | P a g e
For i = 1 To nbr a(i) = l(i) / (3 * e * ine(i)) b(i) = a(i) / 2 c(i) = a(i) Next i alpha(0) = a(1) + (k(0) + k(1)) / l(1) ^ 2 alpha(nbr) = c(nbr) + (k(nbr - 1) + k(nbr)) / l(nbr) ^ 2 beta(1) = b(1) - k(0) / l(1) ^ 2 - k(1) * (1 / l(1) + 1 / l(2)) ^ 2 beta(nbr) = b(nbr) - k(nbr - 1) * (1 / l(nbr - 1) + 1 / l(nbr)) / l(nbr) - k(nbr) / l(nbr) ^ 2 omega(0) = Cells(18, 4) + k(0) * Cells(17, 3) / l(1) - k(1) * Cells(17, 4) / l(1) omega(nbr) = -Cells(19, nbr + 3) - k(nbr - 1) * Cells(17, nbr + 2) / l(nbr) + k(nbr) * Cells(17, nbr + 3) / l(nbr) For i = 1 To nbr - 1 alpha(i) = c(i) + a(i + 1) + k(i - 1) / l(i) ^ 2 + k(i) * (1 / l(i) + 1 / l(i + 1)) ^ 2 + k(i + 1) / l(i + 1) ^ 2 gamma(i) = k(i) / l(i) / l(i + 1) omega(i) = Cells(18, i + 4) - Cells(19, i + 3) - Cells(16, i + 2) * Cells(17, i + 2) / Cells(9, i + 3) + Cells(16, i + 3) * (1 / Cells(9, i + 3) + 1 / Cells(9, i + 4)) - Cells(16, i + 4) * Cells(17, i + 4) / Cells(9, i + 4) Next i For i = 2 To nbr - 1 beta(i) = b(i) - k(i - 1) * (1 / l(i - 1) + 1 / l(i)) / l(i) - k(i) * (1 / l(i) + 1 / l(i + 1)) / l(i) Next i For i = 0 To nbr Cells(45, 2 + i) = alpha(i) Cells(46, 2 + i) = beta(i) Cells(47, 2 + i) = gamma(i) Cells(48, 2 + i) = omega(i) Next i mat(0, 0) = alpha(0) mat(0, 1) = beta(1) mat(0, 2) = gamma(1) mat(1, 0) = beta(1) mat(1, 1) = alpha(1) mat(1, 2) = beta(2) mat(1, 3) = gamma(2) For i = 2 To nbr - 2 mat(i, i - 2) = gamma(i - 1) mat(i, i - 1) = beta(i)
38 | P a g e
mat(i, i) = alpha(i) mat(i, i + 1) = beta(i + 1) mat(i, i + 2) = gamma(i + 1) Next i mat(nbr, nbr) = alpha(nbr) mat(nbr, nbr - 1) = beta(nbr) mat(nbr, nbr - 2) = gamma(nbr - 1) mat(nbr - 1, nbr) = beta(nbr) mat(nbr - 1, nbr - 1) = alpha(nbr - 1) mat(nbr - 1, nbr - 2) = beta(nbr - 1) mat(nbr - 1, nbr - 3) = gamma(nbr - 2) For i = 0 To nbr Cells(24, i + 2) = alpha(i) Cells(25, i + 2) = beta(i) Cells(26, i + 2) = gamma(i) Cells(27, i + 2) = omega(i) Next i For i = 0 To nbr For j = 0 To nbr Cells(i + 29, j + 1) = mat(i, j) Cells(i + 29, nbr + 3) = omega(i) Next j Next i Dim mata(20, 20) As Double, matb(20) As Double Dim factor As Double Dim x(20) As Double, sum As Double n = nbr - 1 'number of equations ‘Lecture a et b For i = 1 To n For j = 1 To n mata(i, j) = mat(i, j) Next j matb(i) = omega(i) Next i 'Forward Elimination For k1 = 1 To n - 1 For i = k1 + 1 To n Step 1 factor = mata(i, k1) / mata(k1, k1) For j = k1 + 1 To n mata(i, j) = mata(i, j) - factor * mata(k1, j) Next j
39 | P a g e
matb(i) = matb(i) - factor * matb(k1) Next i Next k1 'Back1 Substitution x(n) = matb(n) / mata(n, n) For i = n - 1 To 1 Step -1 sum = 0 For j = n To i + 1 Step -1 'or j=i+1 to n sum = sum + mata(i, j) * x(j) Next j x(i) = (matb(i) - sum) / mata(i, j) Next i 'Output x For i = 1 To n moment(i) = x(i) Next i moment(0) = 0 moment(nbr) = 0 reaction(0) = Cells(17, 3) + (moment(1) - moment(0)) / Cells(9, 4) - moment(0) / Cells(9, 4) tassement(0) = -Cells(16, 3) * reaction(0) reaction(nbr) = Cells(17, nbr + 3) - (moment(nbr) - moment(nbr - 1)) / Cells(9, nbr + 3) tassement(nbr) = -Cells(16, 3 + nbr) * reaction(nbr) For i = 1 To nbr - 1 reaction(i) = Cells(17, i + 3) + (moment(i + 1) - moment(i)) / Cells(9, i + 4) - (moment(i) - moment(i - 1)) / Cells(9, i + 3) tassement(i) = -Cells(16, i + 3) * reaction(i) Next i Cells(33 + nbr, 1) = "moment" Cells(34 + nbr, 1) = "reaction" Cells(35 + nbr, 1) = "tassement" For i = 0 To nbr Cells(32 + nbr, i + 2) = i Cells(33 + nbr, i + 2) = moment(i) Cells(34 + nbr, i + 2) = reaction(i) Cells(35 + nbr, i + 2) = tassement(i) Next i Sheets("Resultat").Select range("B1:L4").Select Selection.ClearContents range("A1").Select
40 | P a g e
For i = 0 To nbr Cells(1, i + 2) = i Cells(2, i + 2) = moment(i) Cells(3, i + 2) = reaction(i) Cells(4, i + 2) = tassement(i) Next i Call momentsub End Sub Sub momentsub() Dim mtotal(1000, 10) As Double Dim vtotal(1000, 10) As Double Dim x(1000) As Double Dim lpoutre(20) As Double Dim mponctuel(1000, 10) As Double Dim vponctuel(1000, 10) As Double Dim muniforme(1000, 10) As Double Dim vuniforme(1000, 10) As Double Dim mcouple(1000, 10) As Double Dim vcouple(1000, 10) As Double Dim moment(20) As Double Dim m(1000) Dim v(1000) Sheets("Calcul").Select range("A63:AX693").Select Selection.ClearContents range("A1").Select nbr = Cells(3, 2) about = Cells(11, nbr + 3) For i = 1 To nbr lpoutre(i) = Cells(9, i + 3) Next i For i = 0 To nbr moment(i) = Cells(33 + nbr, i + 2) Next i nbrcharge = range("q6") For j = 1 To nbr For i = 0 To nbrcharge If Cells(9 + i, 19) = j Then l = Cells(9 + i, 21)
41 | P a g e
p = -Cells(9 + i, 18) a = Cells(9 + i, 20) For k = 0 To l If k < a Then mponctuel(k, j) = mponctuel(k, j) + p * (l - a) * k / l vponctuel(k, j) = vponctuel(k, j) + p * (l - a) / l Else mponctuel(k, j) = mponctuel(k, j) + p * a * (1 - k / l) vponctuel(k, j) = vponctuel(k, j) - p * a / l End If Next k End If Next i Next j nbrcharge = range("q22") For j = 1 To nbr For i = 0 To nbrcharge If Cells(25 + i, 19) = j Then p = Cells(25 + i, 17) l = Cells(25 + i, 24) b = Cells(25 + i, 22) a = Cells(25 + i, 20) c = l - Cells(25 + i, 21) For k = 0 To a - 1 muniforme(k, j) = muniforme(k, j) - p * b * (b + 2 * c) * k / (2 * l) vuniforme(k, j) = vuniforme(k, j) - p * b * (b + 2 * c) / (2 * l) Next k For k = a To a + b muniforme(k, j) = muniforme(k, j) - p * b * (b + 2 * c) * k / (2 * l) + p * (k - a) ^ 2 / 2 vuniforme(k, j) = vuniforme(k, j) - p * b * (b + 2 * c) / (2 * l) + p * (k - a) Next k For k = a + b To c muniforme(k, j) = muniforme(k, j) - p * b * (2 * a + b) * (l - k) / (2 * l) vuniforme(k, j) = vuniforme(k, j) - p * b * (2 * a + b) / (2 * l) Next k End If Next i Next j nbrcharge = range("q38") For j = 1 To nbr For i = 0 To nbrcharge If Cells(41 + i, 18) = j Then
42 | P a g e
c = Cells(41 + i, 17) l = Cells(41 + i, 20) a = Cells(41 + i, 19) For k = 0 To l If k < a Then mcouple(k, j) = mcouple(k, j) + c * k / l vcouple(k, j) = vcouple(k, j) + c / l Else mcouple(k, j) = mcouple(k, j) - c * (l - k) / l vcouple(k, j) = vcouple(k, j) + c / l End If Next k End If Next i Next j For j = 1 To nbr l = lpoutre(j) For i = 0 To l mtotal(i, j) = mponctuel(i, j) + muniforme(i, j) + mcouple(i, j) + moment(j - 1) * (1 - i / l) + moment(j) * i / l vtotal(i, j) = vponctuel(i, j) + vuniforme(i, j) + vcouple(i, j) + (moment(j) - moment(j - 1)) / l Next i Next j mtotal(0, 1) = moment(0) + mcouple(0, 1) mtotal(about, nbr) = moment(nbr) + mcouple(about, nbr) 'vtotal(0, 1) = 0 k = 0 For j = 1 To nbr For i = 0 To lpoutre(j) m(k) = mtotal(i, j) + m(k) v(k) = v(k) - vtotal(i, j) k = k + 1 Next i Next j v(about + 1) = 0 m(0) = 0 m(about) = 0 For k = 0 To about x(k) = k Next k x(about + 1) = x(about) v(about + 1) = 0
43 | P a g e
m(0) = 0 m(about) = 0 m(about + 1) = 0 For i = 0 To about 'Cells(60 + i + nbr, 2) = m(i) 'Cells(60 + i + nbr, 3) = v(i) Next i Sheets("Resultat").Select range("B9:D32000").Select Selection.ClearContents range("A1").Select For i = 0 To about + 1 Cells(9 + i, 2) = x(i) Cells(9 + i, 3) = m(i) Cells(9 + i, 4) = v(i) Next i End Sub
44 | P a g e
Algorithme Sol élastique
Sub deforme() Dim mat(1000, 1000) As Double Dim matb(1000) As Double Dim a(1000, 1000) As Double Dim b(1000) As Double Dim v(1000) As Double Dim x(1000) As Double Dim q(1000) As Double Sheets("Calcul").Select l = Range("B1") p = Range("B2") k = Range("B3") g = Range("F1") nbr = Range("c6") pas = Range("B9") e = Range("B4") ine = Range("B5") 'g = (k / 4 / e / ine) ^ 0.25 matb(0) = -p * pas ^ 3 / e / ine mat(0, 0) = 6 + pas ^ 4 * 4 * g ^ 4 mat(0, 1) = -8 mat(0, 2) = 2 mat(1, 0) = -4 mat(1, 1) = 7 + pas ^ 4 * 4 * g ^ 4 mat(1, 2) = -4 mat(1, 3) = 1 For i = 2 To nbr - 2 mat(i, i - 2) = 1 mat(i, i - 1) = -4 mat(i, i) = 6 + pas ^ 4 * 4 * g ^ 4 mat(i, i + 1) = -4 mat(i, i + 2) = 1 Next i mat(nbr, nbr - 2) = 2 mat(nbr, nbr - 1) = -8 mat(nbr, nbr) = 6 + pas ^ 4 * 4 * g ^ 4 mat(nbr - 1, nbr - 3) = 1 mat(nbr - 1, nbr - 2) = -4
45 | P a g e
mat(nbr - 1, nbr - 1) = 7 + pas ^ 4 * 4 * g ^ 4 mat(nbr - 1, nbr) = -4 Sheets("Calcul").Select n = nbr 'number of equations 'For i = 1 To n 'For j = 1 To n 'Cells(19 + i, j) = mat(i - 1, j - 1) 'Next j 'Cells(19 + i, n + 2) = matb(i - 1) 'Next i 'Reading A and b For i = 1 To n For j = 1 To n a(i, j) = mat(i - 1, j - 1) Next j b(i) = matb(i - 1) Next i 'Forward Elimination For k = 1 To n - 1 For i = k + 1 To n Step 1 factor = a(i, k) / a(k, k) For j = k + 1 To n a(i, j) = a(i, j) - factor * a(k, j) Next j b(i) = b(i) - factor * b(k) Next i Next k 'Outputing A and b after forward elimination 'For i = 1 To n 'For j = 1 To n 'Cells(n + 1 + i, j).Value = a(i, j) 'Next j 'Cells(n + 1 + i, n + 1) = b(i) 'Next i 'Back Substitution x(n) = b(n) / a(n, n) For i = n - 1 To 1 Step -1 Sum = 0 For j = n To i + 1 Step -1 'or j=i+1 to n Sum = Sum + a(i, j) * x(j) Next j x(i) = (b(i) - Sum) / a(i, j)
46 | P a g e
Next i 'Output x For i = 1 To n ' Cells(19 + i, 10) = x(i) v(i - 1) = x(i) Next i Sheets("Resultat").Select j = 0 For i = l / 2 To 0 Step -pas Cells(2 + j, 3) = v(nbr - j) Cells(2 * nbr + 2 - j, 3) = v(nbr - j) j = j + 1 Next i If i > -pas Then Cells(2 + j, 3) = v(nbr - j) End If For aa = 0 To 500 For i = 1 To nbr 'matb(i) = 0 Next i test = 0 For i = 1 To nbr If v(i) > 0 Then mat(i, i) = 6 '+ pas ^ 4 * 4 * g ^ 4 'matb(i) = k * v(i) * pas ^ 4 / e / ine test = 1 End If Next i 'Reading A and b For i = 1 To n For j = 1 To n a(i, j) = mat(i - 1, j - 1) Next j b(i) = matb(i - 1) Next i 'Forward Elimination For k = 1 To n - 1 For i = k + 1 To n Step 1 factor = a(i, k) / a(k, k) For j = k + 1 To n
47 | P a g e
a(i, j) = a(i, j) - factor * a(k, j) Next j b(i) = b(i) - factor * b(k) Next i Next k 'Outputing A and b after forward elimination 'For i = 1 To n 'For j = 1 To n 'Cells(n + 1 + i, j).Value = a(i, j) 'Next j 'Cells(n + 1 + i, n + 1) = b(i) 'Next i 'Back Substitution x(n) = b(n) / a(n, n) For i = n - 1 To 1 Step -1 Sum = 0 For j = n To i + 1 Step -1 'or j=i+1 to n Sum = Sum + a(i, j) * x(j) Next j x(i) = (b(i) - Sum) / a(i, j) Next i 'Output x For i = 1 To n ' Cells(19 + i, 10) = x(i) v(i - 1) = x(i) Next i Next aa Sheets("Resultat").Select j = 0 For i = l / 2 To 0 Step -pas Cells(2 + j, 4) = v(nbr - j) Cells(2 * nbr + 2 - j, 4) = v(nbr - j) j = j + 1 Next i If i > -pas Then Cells(2 + j, 4) = v(nbr - j) End If End Sub Sub defomereelle()
48 | P a g e
Dim v(10000) As Double Dim x(10000) As Double Sheets("Calcul").Select l = Cells(1, 2) p = Cells(2, 2) k = Cells(3, 2) g = Range("f1") nbrm = Range("b6") pas = Range("B9") nbr = Range("C9") 'RoundUp(l / (2 * pas), 0) c = -p * g / (2 * k) j = 0 For i = 0 To l / 2 Step pas x(j) = i v(j) = c * Exp(-g * i) * (Cos(g * i) + Sin(g * i)) j = j + 1 Next i If i <> l / 2 Then x(j) = l / 2 v(j) = c * Exp(-g * l / 2) * (Cos(g * l / 2) + Sin(g * l / 2)) j = j + 1 End If v(j - 1) = 0 Sheets("Resultat").Select Range("A2:D32000").Select Selection.ClearContents Range("A1").Select j = 0 For i = l / 2 To 0 Step -pas Cells(2 + j, 2) = v(nbr - j) Cells(2 + j, 1) = -x(nbr - j) Cells(2 * nbr + 2 - j, 1) = x(nbr - j) Cells(2 * nbr + 2 - j, 2) = v(nbr - j) j = j + 1 Next i If i > -pas Then Cells(2 + j, 2) = v(nbr - j) Cells(2 + j, 1) = -x(nbr - j) End If Call deforme End Sub