Vous êtes sur la page 1sur 49

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 1ere année génie civil :


KARAM Elias
MAWAD Ass’ad

Encadré par:
Mr. Wassim RAPHAEL

2009
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 ».

1|Page
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

2|Page
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 !

3|Page
I. Théorème des cinq moments :

La Théorie :

i-1 i i+1

Les appuis élastiques G i sont caractérises par une constante k i :

vi = - ki Ri

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 = V id – V ig

 d 
g
M - M i-1
Avec V = g
i  + i
 dx  i li
 d 
d
M - Mi
V =  + i 1
d
i
 dx  i l i 1

Donc,
 d   d 
d g
M - Mi M - M i -1
Ri =   -  + i 1 - i
 dx  i  dx  i l i 1 li

 d   d 
d g

Où,   -  représente la réaction isostatique r i


 dx  i  dx  i

M i 1 - M i M - M i -1
On obtient : Ri = ri + - i
l i 1 li

4|Page
Equation des cinq moments :

r i = somme des réactions d’appui en G i des travées isostatiques associées à G i 1 G i


et G i G i 1

R i = réaction d’appui en G i pour la poutre continue

On a:
M i 1 - M i M - M i -1
Ri = ri + - i
l i 1 li

D’où :
M i 1 - M i M i - M i -1
v i = - k i R i = - k i [r i + - ]
l i 1 li

De même :

M i - M i -1 M i-1 - M i-2
v i 1 = - k i 1 R i 1 = - k i 1 [r i 1 + - ]
li l i 1
M - M i 1 M i 1 - M i
v i 1 = - k i 1 R i 1 = - k i 1 [r i 1 + i2 - ]
li  2 l i 1

Le théorème des trois moments s’écrit :

v i 1 - v i v -v
b i M i 1 + (c i + a i 1 )M i + b i 1 M i 1 = θ i' 1 - θ "i + - i i -1
li 1 li

Soit compte tenu des dénivellations d’appui :

1
b i M i 1 + (c i + a i 1 )M i + b i 1 M i 1 = θ i' 1 - θ "i - [ k i 1 r i 1 - k i r i + k i 1
li 1
M i  2 - M i 1 M - Mi M - M i -1 1
- (k i 1 + k i ) i 1 + ki i ] + [ k i r i - k i 1 r i 1 + k i
li  2 l i 1 li li
M i 1 - M i M - M i -1 M - M i-2
- (k i + k i 1 ) i + k i 1 i-1 ]
l i 1 li l i 1

5|Page
En regroupant les moments à gauche et à droite du signe =, il vient:
k
[ i -1 ] M i  2
l i l i 1
k k k k
+ [b i - i - i 2 i-1 - i -1 ] M i 1
l i l i 1 li l i l i 1
k i  k i 1 2k i k k
+ [c i + a i 1 + 2
+ + i 2 i-1 ] M i
li 1 l i l i 1 li
k i 1 k k k
+ [b i 1 - - i 2i 1 - i ] M i 1
l i 1l i  2 li 1 l i l i 1
k i 1
+[ ] M i2
l i 1l i  2
k 1 1 k
= θ i' 1 - θ "i - i 1 r i 1 + k i ( + ) r i - i 1 r i 1
li li 1 li l i 1

D’où en ordonnant les termes entre crochets :


k
[ i -1 ] M i  2
l i l i 1
k 1 1 k 1 1
+ [b i - i ( + ) - i-1 ( + )] M i 1
l i li 1 li l i li li 1
k i 1 1 1 2 k i 1
+ [c i + a i 1 + 2
+ ki ( + ) + 2 ] Mi
li li li 1 li 1
k 1 1 k 1 1
+ [b i 1 - i ( + ) - i 1 ( + )] M i 1
l i 1 li li 1 l i 1 li 1 l i  2
k i 1
+ M i2
l i 1l i  2
k 1 1 k
= θ i' 1 - θ "i - i 1 r i 1 + k i ( + ) r i - i 1 r i 1
li li 1 li l i 1

Pour simplifier les écritures nous posons :

k i 1 1 1 2 k i 1
α i = c i + a i 1 + 2
+ ki ( + ) + 2
li li li 1 li 1
k i-1 1 1 k 1 1
βi = bi - ( + )- i ( + )
li li li 1 l i li 1 li
ki
γi =
l i l i 1
k i 1 1 1 k
Ω i = θ i' 1 - θ "i - r i 1 + k i ( + ) r i - i 1 r i 1
li li 1 li l i 1

6|Page
D’où l’expression du théorème des cinq moments :

γ i 1 M i  2 + β i M i 1 + α i M i + β i 1 M i 1 + γ i 1 M i  2 = Ω i

Remarques :

1) Pour une poutre continue sur appuis fixes :


vi = - ki R i = 0
Ri ≠ 0
Donc k i = 0 pour tout i

Les coefficients de l’équation des 5 moments deviennent :


α i = c i + a i 1
βi = bi
γi = 0
Ω i = θ i' 1 - θ "i

D’où le théorème des 5 moments a pour équation :


b i M i 1 + (c i + a i 1 )M i + b i 1 = θ i' 1 - θ "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

7|Page
 Encastrements élastiques sur appuis de rive – encastrement partiel
Pour i = 0, α i s’écrit :

k 1 1 1 k
α0 = c0 + a1 +
2
+ k 0 ( + ) 2 + 12
l0 l 0 l1 l1
Comme il n’y a pas de travée d’indice 0 :

k 0  k1
α0 = c0 + a1 +
l12
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 :
ω 'n1 = θ 'n1 - a n 1 M n - b n 1 M n 1
M n 1 = 0
θ 'n1 = 0
 ω 'n1 = - a n 1 M n = - h n M n
 a n 1 = 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 :


k  k1
α0 = h0 + a1 + 0
l12
k 1 1 k
α1 = c1 + a2 + 02 + k1( + ) 2 + 22
l1 l1 l 2 l2
k k 1 1
β1 = b1 - 02 - 1 ( + )
l1 l1 l1 l 2
k
γ1 = 1
l1l 2
k k
Ω0 = θ 1' + 0 r0 - 1 r1
l1 l1

8|Page
Pour les derniers coefficients :
k  kn
αn = cn + hn + n -1
l n2
k 1 1 k
βn = bn - n -1 ( + ) - n2
ln l n 1 l n ln
k
γn = n -1
l n -1l n
k k
Ωn = - θ "n + n -1 rn-1 - n rn
ln ln

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 0 0 0
M 0 0
1 1  0 0 0 0 0 0
 
1 0 2 0 0 0 0 0
 
0       
*   
       0
 
0 0 0  n  3 n  2 n  2 n 1  n 1
 
0 0 0 0  n  2 n 1 n 1 n
Mn n
0 0 0 0 0  n 1 n n

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.

9|Page
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):
1-2

1- L’unité de la force (KN


dans le SI)
2- L’unité de la longueur (m 4
dans le SI)
3- Le module de Young
3
4- Le nombre de travée
5- Le type des appuis aux
extrémités 5 Figure 1

2- Les données du programme


(figure 2) :
1

1- Entrer la longueur et
l’inertie de chaque travée
2- Entrer le coefficient de
tassement de chaque
appuis

Figure 2
2

10 | P a g e
3-Les forces appliquées sur les travées (figure 3) :

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

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.
150

100

50

-50 0 20 40 60 80 100 120 140 160 180

-100

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.

11 | 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.

12 | 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

13 | 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.

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

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 7

14 | 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.

Figure 8

X
De plus vous pouvez déterminer les
sollicitations(2) pour une abscisse
déterminée X (1)

2
Figure 9

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.

15 | 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

16 | P a g e
II- Poutre Continue sur Sol Elastique :

La Théorie :
Equation différentielle:

q(x)
v(x) q(x)

ligne moyenne
q(x)
v(x)
r(x)

q(x) : charge appliquée


r(x) : réaction du point d’abscisse x
v(x) : flèche

r(x) = - k v(x)

d 2v M
D’autre part 
dx 2 EI

dM d 3v
Donc V=  EI 3
dx dx

dV
Or  - p(x) = - (q(x) – r(x))
dx
Equilibre des forces verticales sur un élément dx infiniment petit.

Donc p(x) = q(x) – r(x) = q(x) + k v(x)

17 | P a g e
Tout ceci implique :
d 4v q( x)  kv( x)
 -
dx 4 EI

D’où , l’équation différentielle :

d 4v  q ( x)
4
+ 4γ4 v(x) =
dx EI
k
Avec γ4 =
4 EI

On en déduit les sollicitations à partir de v(x) :


d 2v
M ( x)  EI 2
dx
d 3v
V ( x)  EI 3
dx

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)

18 | P a g e
Solution de l’équation différentielle :

Solution générale

v( x)  Ae x cosx  Be x sin x  C e x cosx  De x sin x  v( x)

v(x)  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

V(0-ε)
V(0+ε)

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

P
 V (0+ε) =
2

19 | P a g e
La solution de l’équation différentielle (de la déformée) s’écrit :

q(x) = 0  v(x)  0

v( x)  Ae x cosx  Be x sin x  C e x cosx  De x sin x

A partir des conditions aux limites, nous allons pouvoir déterminer A, B, C, D :

 x  x
 lim v( x)  0  A = B = 0 et v( x)  C e cosx  De sin x
x 

 Par raison de symétrie :

dv
( x  0)  0 (pente)
dx

dv
Comme  e x [C cosx  D sin x  C sin x  D cosx]
dx
dv
 e x [( D  C ) cosx  ( D  C ) sin x]
dx
On obtient :

dv
( x  0)   ( D  C )  0  D = C et v(x) = C e-γx [cos γx + sin γx]
dx

Soit : v (x) = C φ (γx)

 Par raison de symétrie :

d 3v P
V ( x  0  )  EI 3
( x  0) 
dx 2

v (x) = C φ (γx)

dv
= - 2 γ C ξ (γx)
dx
d 2v
2
= - 2 γ2 C ψ (γx)
dx
d 3v
3
= 4 γ3 C θ (γx)
dx

20 | P a g e
d 3v P
Il vient : EI 3
( x  0)  4EI 3C[e x cosx]( x 0) 
dx 2
P P
4EI 3C  C
2 8EI 3

k  P
D’autre part :  4  C
4 EI 2k

Les expressions précédentes deviennent :

 P
v( x)   (x)
2k
dv P 2
  (x)
dx k
2
d v P
EI =M=  (x)
dx 2
4
d 3v P
EI 3 = V =   (x)
dx 2

Dans le cas où x<0, on utilisera :

v( x)  v( x)
dv dv
( x)   ( x)
dx dx
M ( x)  M ( x)
V ( x)  V ( x)

21 | 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)

22 | P a g e
2- Boutons et fonctions :

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

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

23 | 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
Pas 
Nbr de pas
K
g 4
4EI

Pour résoudre ce système de la forme AX=B on applique la méthode de


Gauss déjà traite dans la 1 ere 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.

24 | 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


De plus vous pouvez déterminer les 3 valeur maximale et
types de déformations pour une abscisse minimale pour chacun
déterminée X (1) 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.

25 | 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.

26 | 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

27 | 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

28 | 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.

29 | 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…

30 | 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.

31 | P a g e
ANNEXES

32 | 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 :

6  4 4 x 4 8 2 0 0 0 0 0
4 7  4 4 x 4 4 1 0 0 0 0 V0 P x 3
EI
1 4 6  4 4 x 4 4 1 0 0 0  0
0 1 4 6  4 4 x 4 4 1 0 0  
        *   
         
0 0 1 4 6  4 4 x 4 4 1 0  
0 0 0 0 1 4 7  4 4 x 4 4 Vn 0
0 0 0 0 0 2 8 6  4 4 x 4

33 | P a g e
34 | 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

35 | 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

36 | 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)

37 | 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

38 | 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

39 | 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)

40 | 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

41 | 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

42 | 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

43 | 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

44 | 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)

45 | 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

46 | 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()

47 | 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

48 | P a g e

Vous aimerez peut-être aussi