Fabritseeritud lahendite meetod

Allikas: testwiki
Redaktsioon seisuga 22. september 2015, kell 14:13 kasutajalt imported>JJänes (Meetodi krirjeldus)
(erin) ←Vanem redaktsioon | Viimane redaktsiooni (erin) | Uuem redaktsioon→ (erin)
Mine navigeerimisribale Mine otsikasti

Mall:Vikinda 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.[1]

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.[2]

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.[1] 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=LQ,

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 uxx+uyy=0 lahendamisele Jacobi iteratsioonimeetodiga. Valime fabritseeritud lahendiks M(x,y)=2x4y3. Diferentsiaalvõrrandi operaatoriks on

L=xx+yy

seega

L[M(x,y)]=L[2x4y3]=24x26y.

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

uxx+uyy(24x26y)=0.

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

ui,j(k+1)=14(ui+1,j(k)+ui1,j(k)+ui,j+1(k)+ui,j1(k)),

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

ui,j(k+1)=14(ui+1,j(k)+ui1,j(k)+ui,j+1(k)+ui,j1(k)h2q(ih,jh)).

Fabritseeritud lahendiga testimisel seatakse jääkliikme väärtuseks q(x,y)=24x26y, algset ülesannet lahendades seevastu q(x,y)=0.

Viited

Mall:Viited

  1. 1,0 1,1 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.