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

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

{\displaystyle L'[u(x,y,x,t]=0.\,}
Lihtsaim viis {\displaystyle L'} leidmiseks on teisendus:

{\displaystyle L'=L-Q,\,}
kus {\displaystyle Q=L[M]}.

Ääre- ja algtingimused määratakse fabritseeritud lahendi {\displaystyle M} pidevust arvestades.

Näide lahendi fabritseerimisest difusioonivõrrandile
----------------------------------------------------

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

{\displaystyle L=\partial \_{xx}+\partial \_{yy}}
seega

{\displaystyle L\left[M(x,y)\right]=L\left[2x^{4}-y^{3}\right]=24x^{2}-6y.\,}
Seega on funktsioon {\displaystyle M(x,y)} järgmise diferentsiaalvõrrandi lahendiks. 

{\displaystyle u\_{xx}+u\_{yy}-\left(24x^{2}-6y\right)=0.}
Kui ruudukujulistest elementidest küljepikkusega {\displaystyle h} koosneval võrel Jacobi meetodiga algset diferentsiaalvõrrandit lahendav iteratsioonireegel on järgmine:

{\displaystyle 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 {\displaystyle q(x,y)}

{\displaystyle 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 {\displaystyle q(x,y)=24x^{2}-6y}, algset ülesannet lahendades seevastu {\displaystyle q(x,y)=0}.

Viited
------

1. 1 2  Patrick J. Roache. Building PDE Codes to be Verifiable and Validatable. Computing in Science and Engineering, vol. 6, no. 5, pp. 30-38, Sep./Oct. 2004, doi:10.1109/MCSE.2004.33
2. ↑  Kambiz Salari and Patrick Knupp. Code Verification by the Method of Manufactured Solutions. Technical report. Sandia National Laboratories, June 2000.