Fabritseeritud lahendite meetod

**Fabritseeritud lahendite meetod** (inglise keeles *Method of Manufactured Solutions*) on metodoloogia osatuletistega diferentsiaalvõrrandite süsteemi analüütiliste lahendite leidmiseks. Fabritseeritud lahendite meetodit kasutatakse diferentsiaalvõrrandite süsteeme lahendavate numbriliste algoritmide verifitseerimisel.

## Diferentsiaalvõrrandite numbriliste lahendajate verifitseerimine

Osatuletistega diferentsiaalvõrrandisüsteemide numbriline lahendamine arvutiprogrammide abil on tänapäevaste teadusarvutuste oluline osa. Sealjuures on oluline kontrollida, kas kasutatav numbriline algoritm on korrektselt implementeeritud. Viimane tegevus nõuab omakorda teadaolevalt korrektset, analüütilisel kujul lahendit. Selle leidmine praktikas esilekerkivate keerulisemate võrrandite, määramispiirkondade ning ääretingimuste korral ei pruugi võrrandit "toore jõuga" lahendades võimalikuks osutuda. Sümmeetrilistest erijuhtudest tuletatud analüütilised lahendid võivad sealjuures jätta tuvastamata olulisi koodis esinevaid vigu.

Fabritseeritud lahendite meetod lahendab "lahendi leidmise probleemi", fikseerides lahendi ning leides seejärel viimase jaoks sobiva, kuid algse ülesandega piisavalt sarnase diferentsiaalvõrrandi. Meetodi kasutamine reaalse arvutiprogrammi puhul võib seega nõuda väiksemaid muudatusi programmi koodis, tõstes seevastu oluliselt hinnangut koodi (matemaatilise) korrektsuse osas.

## Meetodi kirjeldus

Fabritseeritud lahendite meetodi idee võib esitada järgmiselt. Olgu meil diferentsiaalvõrrand kujul

: L[u(x,y,z,t]=0, \,

millele otsitakse numbriliselt korrektset, kuid mitte ilmtingimata sisulise (füüsikalise) tähendusega lahendit u=M(x,y,z,t). Selleks valime diferentsiaalvõrrandi operaatori L asemele viimasega sarnase operaatori L' nii, et eelnevalt valitud lahend oleks saadud diferentsiaalvõrrandi lahendiks:

: L'[u(x,y,x,t]=0. \,

Lihtsaim viis L' leidmiseks on teisendus:

: L'=L-Q, \,

kus Q=L[M].

Ääre- ja algtingimused määratakse fabritseeritud lahendi M pidevust arvestades.

## Näide lahendi fabritseerimisest difusioonivõrrandile

Näitena vaatleme meetodi rakendamist ajast sõltumatu kahemõõtmelise difusioonivõrrandi u_{xx}+u_{yy}=0 lahendamisele Jacobi iteratsioonimeetodiga. Valime fabritseeritud lahendiks M(x,y)=2x^{4}-y^{3}. Diferentsiaalvõrrandi operaatoriks on

: L=\partial_{xx}+\partial_{yy}

seega

: L\left[M(x,y)\right] = L\left[ 2x^{4}-y^{3} \right]= 24x^{2}-6y. \,

Seega on funktsioon M(x,y) järgmise diferentsiaalvõrrandi lahendiks. 

: u_{xx}+u_{yy} - \left(24x^{2}-6y\right) = 0.

Kui ruudukujulistest elementidest küljepikkusega h koosneval võrel Jacobi meetodiga algset diferentsiaalvõrrandit lahendav iteratsioonireegel on järgmine:

: u_{i,j}^{(k+1)} = \frac{1}{4}\left(u_{i+1,j}^{(k)}+u_{i-1,j}^{(k)}+u_{i,j+1}^{(k)}+u_{i,j-1}^{(k)}\right), \,

siis fabritseeritud lahendite meetodi kasutamiseks tuleb iteratsioonireeglisse lisada jääkliige q(x,y)

: u_{i,j}^{(k+1)} = \frac{1}{4}\left(u_{i+1,j}^{(k)}+u_{i-1,j}^{(k)}+u_{i,j+1}^{(k)}+u_{i,j-1}^{(k)}-h^{2}q(ih,jh)\right). \,

Fabritseeritud lahendiga testimisel seatakse jääkliikme väärtuseks q(x,y)=24x^{2}-6y, algset ülesannet lahendades seevastu q(x,y)=0.

## Viited