• Aucun résultat trouvé

Exemples et comparaison avec la routine de r´esolution du logiciel Scilab

4.4 Un sch´ema implicite centr´e

5.1.2 Exemples et comparaison avec la routine de r´esolution du logiciel Scilab

Le probl`eme d’optimisation quadratique (5.1) est assez classique. Il existe quelques routines de r´esolution de ce type de probl`eme, mais tr`es peu d’entre elles sont d’acc`es libre. On peut consulter [8, 55] qui pr´esente la m´ethode des points int´erieurs, qui peut ˆetre consid´er´ee comme une m´ethode de r´esolution concurrente de QPB. Dans ce paragraphe, on compare la routine QPB avec la m´ethode de r´esolution du logiciel Scilab. La routine issue de Scilab utilise une m´ethode d’activation de contraintes. En fait, la routine issue de Scilab est une routine g´en´erale, qui peut aussi r´esoudre des probl`emes avec contraintes lin´eaires quelconques, pour des matrices pouvant ˆetre semi-d´efinies positives et mˆemes ind´efinies. Toutefois, elle ne tire pas avantage de la structure simple des contraintes de bornes de (5.1), comme cela apparaˆıtra dans les r´esultats. En particulier, l’approche utilis´ee n’a pas d’´etapes de projection. On compare, sur le tableau 5.2, les temps de calcul CPU entre les deux m´ethodes sur des exemples de matrices pleines comprenant, en g´en´eral, des donn´ees al´eatoires. La comparaison est faite pour diff´erentes tailles de probl`emes. Pour une mˆeme taille de probl`eme, il peut y avoir plusieurs exemples diff´erents.

Taille du pb Scilab 1 Scilab 2 QPB Erreur relative

(contraintes (contraintes QPB / Scilab 1

de bornes) lin´eaires) 8 0.00999999978 0.00999999978 < 10−16 1.5 10−17 114 0.0899999999 0.100000005 0.00999999978 7.8 10−16 200 0.499999993 0.539999977 0.00999999978 4.9 10−13 200 0.869999975 0.949999943 0.0600000024 4.2 10−11 470 12.6199998 13.0599996 0.109999994 2.1 10−16 1000 77.670003 81.5500033 1.05000004 1.8 10−10 1000 74.4500025 78.5100006 1.06 6.3 10−09 1000 53.3100011 56.8999991 3.57999988 3.0 10−10 1000 128.379999 134.880007 5.83000014 5.9 10−12 1000 97.3999982 101.300001 11.0200004 1.2 10−13 1382 241.240004 245.339998 17.9299992 1.3 10−11

Fig.5.2 – Comparaison du temps de calcul entre Scilab - QPB

La colonne “erreur relative” repr´esente l’erreur relative entre la solution calcul´ee par QPB et celle issue de Scilab. Elle ne nous sert qu’`a v´erifier que les deux programmes ont bien calcul´e la mˆeme solution. Les solutions obtenues par Scilab sont identiques, que ce soit avec contraintes de bornes ou avec contraintes lin´eaires. La routine de QPB est nettement plus rapide dans tous les cas. On remarque que la routine Scilab est l´eg`erement plus rapide pour un calcul avec contraintes de bornes x≥ lb que pour un calcul sans contrainte de bornes, mais avec une contrainte lin´eaire du type Cx≥ d. De plus, la routine Scilab est plus rapide lorsqu’un point initial est donn´e.

Sur les figures 5.4 et 5.5, on pr´esente une comparaison du temps de r´esolution CPU des deux routines pour une matrice correspondant au type de probl`emes que nous cherchons `a r´esoudre (issu de la simulation de la prise en compte de conditions aux limites de contact unilat´eral sur la fissure) donn´e en fonction du nombre de variables du probl`eme. Cet exemple correspond au calcul du saut de d´eplacement sur une fissure droite diagonale, en pr´esence de contact unilat´eral, en un instant donn´e, identique pour chaque discr´etisation. Un exemple semblable est pr´esent´e dans la section 6.3.3. Le rapport entre les deux pas de maillage H/h est constant : il vaut H/h = 1.1, c’est-`a-dire que pour 100 ´el´ements sur la fissure (la taille du probl`eme d’optimisation est n = 198), on consid`ere ni= nj = 250 points pour le maillage volumique. Les r´esultats de la comparaison apparaissent dans le tableau 5.3.

Exemples et comparaison avec la routine de r´esolution du logiciel Scilab

Nb de variables Scilab QPB Erreur relative

Contraintes de bornes entre les 2 solutions

18 < 10−16 < 10−16 1.5 10−15 (%) 38 0.00999999791 < 10−16 2.3 10−15 (%) 98 0.0599999987 0.00999999978 1.5 10−15 (%) 198 0.479999989 0.0199999996 2.5 10−15 (%) 398 4.64000005 0.0599999968 2.1 10−15 (%) 798 48.2900015 0.340000002 2.8 10−15 (%) 958 84.7100012 0.559999961 2.8 10−15 (%)

Fig.5.3 – Comparaison Scilab- QPB sur une it´eration du probl`eme physique

On peut voir que la r´esolution est nettement plus rapide en utilisant QPB que Scilab. Sur la figure 5.5, on peut calculer la pente des courbes montrant le temps CPU en fonction du nombre de degr´es de libert´e sur la fissure. On obtient ' 3.2 pour Scilab et ' 1.8 pour QPB.

0 200 400 600 800 1000 0 10 20 30 40 50 60 70 80 90 Nb de ddl Temps CPU

Temps CPU en fonction du nb de ddl

Scilab QPB

Fig. 5.4 – Comparaison entre Scilab et QPB. Echelle lin´eaire pour le temps CPU

2 3 4 5 6 7 −5 −4 −3 −2 −1 0 1 2 3 4 5 Nb de ddl Temps CPU

Temps CPU en fonction du nb de ddl. Courbe loglog

Scilab QPB

Fig.5.5 – Comparaison entre Scilab et QPB. Courbe loglog

Sur la figure 5.7, on pr´esente une comparaison du temps de calcul entre la routine de r´esolution Scilab et QPB, pour une simulation num´erique enti`ere. L’exemple consid´er´e est celui d’une fissure diagonale pour laquelle on consid`ere une condition de contact unilat´eral sans frottement (pour un exemple semblable, voir 6.3.3). On impose une condition initiale donn´ee sur le domaine. La comparai-son est faite d´esormais en unit´es de temps r´eel et non plus en temps CPU. Le rapport entre le pas H de la fissure et le pas h du maillage r´egulier est constant et vaut 1.1. Les donn´ees sont les mˆemes que celles du tableau 5.6, ni repr´esente le nombre d’inconnues du maillage r´egulier, n repr´esente le nombre de degr´es de libert´e sur la fissure.

En conclusion, la routine de r´esolution QPB est plus rapide que celle de Scilab, qui peut r´esoudre d’autres probl`emes mais qui ne semble pas ˆetre efficace pour des probl`emes du type (5.1). On a constat´e ´egalement que QPB est plus robuste, car la routine de Scilab donne des r´esultats erron

’es si les donn´ees contiennent des valeurs petites, de l’ordre de 1. 10−16. La routine QPB est plus robuste si les variables d’arrˆet sont convenablement fix´ees.

Remarque 5.2 La m´ethode de r´esolution de QPB peut r´esoudre les probl`emes de compl´ementarit´e (classiques en m´ecanique du contact) dont la matrice est sym´etrique d´efinie positive. Par contre, elle n’est pas adapt´ee aux probl`emes de compl´ementarit´e dont la matrice est sym´etrique, semi-d´efinie positive.

n ni Nb d’it´er. en temps Temps Scilab (sec) Temps QPB (sec) 10 25 44 2.480000 12.63900 20 50 89 4.630000 28.76800 50 125 221 33.40000 83.88900 100 250 443 297.3050 267.0660 200 500 885 3685.687 1397.698 400 1000 1771 54298.64 10940.82 480 1200 2125 120058.4 18919.00

Fig. 5.6 – Tableau comparant les temps de r´esolution Scilab - QPB. Exemple d’une fissure diagonale

0 50 100 150 200 250 300 350 400 450 500 0 2 4 6 8 10 12 14x 10 4 Nb de d.d.l sur la fissure

Temps total de calcul en sec

Comparaison des temps de calcul Scilab−QPB

Scilab QPB

Fig. 5.7 – Comparaison entre Scilab et QPB. Echelle lin´eaire pour le temps en secondes.

Documents relatifs