Gaussi elimineerimine

Valige igas veerus juhtrida ning jälgige eliminatsiooni kulgu. Teise lähteülesande puhul määrab teie valik lõppvastuse. Kui valite juhtelemendiks üliväikese arvu, saate muutuja x väärtuseks 1 asemel 0.

Interaktiivse simulatsiooni laadimine...
Õppetund

Teooria — Gaussi elimineerimine232 sõna

Elimineerimine taandab süsteemi samaväärsele kolmnurkkujule, mille lahendi saab seejärel alt üles välja lugeda. Meetodi olulisus ei seisne pelgalt selle toimimises – toimivaid meetodeid on mitu. Otsustavaks saab hoopis see, mida selle rakendamine maksab, sest just arvutuskulukus määrab, millise algoritmi masin tegelikult valib.

Mida iga sümbol tähendab

n
tundmatute arv ja ühtlasi ainus tegur, millest arvutuskulukus sõltub.
pivot
kordaja, millega rida jagatakse. Algoritmi paika pandud tehete järjekord muudab protseduuri otsustevabaks; see aga, milline arv juhtelemendi kohale satub, tagab arvutuse töökindluse ujukomaarvudega töötamisel.
Eeldab
Eeldatakse ärakasutatava struktuurita tihedat süsteemi. Hõredate, lint- või sümmeetriliste süsteemide lahendamine on odavam ning õige spetsialiseeritud meetodi valik moodustabki arvutusliku lineaaralgebra põhiosa.
Ei kehti, kui
Arvutuskulu on kuupfunktsioon ja kuupfunktsioon on otsekui sein. n tundmatuga süsteemi elimineerimine nõuab ligikaudu n³/3 korrutamist ja sama palju liitmisi. Reaalsel elimineerimisel tehteid üle lugedes on juhul n = 100 tulemuseks 333 300 korrutamist hinnangulise 333 333 vastu. See astendaja toob endaga kaasa vääramatu karistuse süsteemi kasvu eest: tundmatute arvu kahekordistamine korrutab töömahu täpselt 8-ga. Seega vajab 100 tundmatut 333 300 korrutamist ja 200 tundmatut juba 2 666 600 korrutamist. Masin, mis lahendab tuhande tundmatuga süsteemi ühe sekundiga, vajab seega kahe tuhande jaoks kaheksat sekundit ning kahekümne tuhande tarvis ligikaudu kahte ja veerandit tundi. Selline see sein välja näebki. Just sel põhjusel ei ole arvutusliku lineaaralgebra kõige põnevam küsimus peaaegu kunagi selles, kuidas tihedat süsteemi lahendada, vaid hoopis selles, kuidas niisugusest süsteemist hoiduda.

Kaks tuttavat sammu järjestuses, mis eemaldab kõik valikud 🖖

Kahe võrrandi jaoks oli vaja üht sammu: lahutada ühe rea kordne teisest. Kolm võrrandit nõuavad seda sammu ja veel üht. Sammude loend nimetab mõlemat – reavahetust, et viia peaelemendiks sobiv arv, ja elimineerimist. Järjekord on paigas: nulli esimene veerg, seejärel teine, siis loe vastus alumiselt realt ja liigu ülespoole. Seda järgides ei pea kunagi nuputama, milline võrrand käsile võtta. See ongi erinevus mõistatuse ja protseduuri vahel, ning seepärast see skaleerubki: sama rutiini tuhande tundmatuga käitab endiselt iga inseneritarkvara maailmas, kuuskümmend aastat pärast seda, kui meetod endale nime sai.

Determinant on peaelementide korrutis 🖖

Jälgi elimineerimise käigus juhtelemente ja korruta need kõik omavahel. Iga reavahetuse järel muuda kordistise märki. See ongi determinant, mis ilmub välja juba niikuinii tehtud arvutustest. Enamik inimesi tutvub determinantidega hoopis algebraliste täiendite järgi arendamise kaudu. Tasub aga mõista, miks praktikas keegi neid sedasi ei arvuta. Kofaktorid nõuavad laias laastus n! tehet elimineerimise n³ vastu. 20 × 20 maatriksi puhul on see seega 2 × 10¹⁸ tehet 8000 vastu. Just see 10¹⁴-kordne erinevus määrab, kumba algoritmi arvuti päriselt jooksutab. Valem, mida õpilastele esimesena näidatakse, on täpselt see, mida ükski masin pole kunagi kasutanud.

Üksainus valik meetodis muudab vastust 🖖

Vajutage Peaelemendi valik välja. Juhtkordaja on 10⁻¹⁷. Algoritm jagab kuulekalt sellega ja annab x-i väärtuseks 0, kuigi tegelik vastus on 1. Midagi ei ole katki ja ühtegi reeglit pole rikutud. Väikese arvuga jagamine lihtsalt mitmekordistab iga varasemat ümardamisviga. Tagasiasenduse tipuks on viga õige vastuse täielikult alla neelanud. See on järsak, mitte nõlv. Kordajat kahandades annab 10⁻¹² veel neli õiget numbrikohta ja 10⁻¹⁵ kolm. Siis aga tagastab 10⁻¹⁶ väärtuse 2,22 ning 10⁻¹⁷ annab 0. Piir asub masinepsiloni juures. See on vahe arvu 1 ja järgmise arvu vahel, mida topelttäpsusega andmetüüp esitada suudab. Märkige see ruut. Nüüd jagab algoritm hoopis suurima saadaoleva arvuga ja iga selline olukord laheneb täpselt. Just seepärast ongi lehel jääkide kaart, mis asetab vastuse tagasi algsetesse võrranditesse. See on ainus viis eristada tegelikku lahendit pelgalt enesekindlast vastusest.

Ülesanded täielikult lahendatud

  1. 2x + y − z = 8 lahendamine ja selle kulu täpsuses 7 sammu

    Lahenda süsteem 2x + y − z = 8, −3x − y + 2z = −11, −2x + y + 2z = −3. Seejärel leia, millise lõivu nõudis elimineerimine täpsuselt.

    1. Kirjuta süsteem laiendatud maatriksina. Tähtedest pole siin mingit kasu. Jäta need ära ja säilita vaid veerud.

    2. Vali juhtelemendiks esimese veeru suurim liige. Selleks on teise rea −3, mis tuleb nüüd üles vahetada. Iga reavahetus pöörab determinandi märki. Pea nende üle arvet.

    3. Nulli ülejäänud esimene veerg. Selleks lahuta ridadest juhtelemendi rea kordsed.

    4. Korda sama protseduuri teise veeruga. Vaata seejärel alumist rida. Selles on järel vaid üks tundmatu ja selle väärtus.

    5. Tee tagasiasendusi alt üles. Viimane rida annab z-i. Keskmine annab seejärel y-i ja kõige ülemisest saad x-i.

    6. Determinandi saamiseks korruta juhtelemendid ja arvesta juurde kahe reavahetuse märk. Kontrolli lahendit algsete, mitte taandatud võrrandite kaudu.

    7. Jääk tuleb umbes 10⁻¹⁶, mis ei ole päris null. See on vältimatu ümardamisvea suurus. See ongi aus arv, mida näidata. Täielikku täpsust lubav vastus põhineb kas täisarvude aritmeetikal või pigistab lihtsalt silmad kinni. Muuda ilma juhtelemendi valikuta režiimis juhtkordaja väärtuseks 10⁻¹⁷. Seesama jääk saab kohe väärtuseks 1. See on nüüd juba täiest kõrist karjuv hoiatus.

    Vastus

    x = 2, y = 3, z = −1, determinant −1. Umbes 10⁻¹⁶ suurune jääk näitabki, et arvutus on just nii täpne, kui ujukomaarvutus lubab. Lülita halvasti skaleeritud süsteemis juhtelemendi valik välja ja just see number ütleb sulle, et vastus on vale.

  2. Determinant 0, kaks korda, tähendades kaht eri asja 7 sammu

    Sellel eelseadistusel pole lahendit ja järgmisel on neid lõpmata palju, ning mõlemad trükivad determinandiks 0. Leia, mis neid tegelikult eristab, ja otsusta, mida parema poole muutmine üldse osta suudaks.

    1. Osaline juhtelemendi valik vaatab esimeses veerus alla suurima kordaja järele. Ta leiab alumisest reast 3, seega on esimene käik reavahetus.

    2. Nulli veerg: lahuta teisest reast ⅔ uuest esimesest reast ja kolmandast ⅓ sellest.

    3. Teises veerus asub 4/3 juba 2/3 kohal, seega vahetada pole midagi. Lahuta kolmandast reast pool teisest reast.

    4. Kolmas rida on nüüd vasakul tühi ja paremal on −½, mis loeb 0 = −½. Maha pandi ainult kaks juhtelementi, 3 ja 4/3, samas kui kolm tundmatut nõuavad kolme, ja puuduv juhtelement teeb korrutise nulliks.

    5. Astak on see, mida determinant varjab. Kordajate maatriksil on kaks sõltumatut rida. Laiendatud maatriksil on neid kolm, sest see ülejäänud −½ on rida, mida miski taandada ei saa. Astak 2 astaku 3 vastu ongi see, mida „lahendit ei ole“ tähendab.

    6. Eelseadistus Üks võrrand kolm korda teeb sama aritmeetika ja ütleb midagi muud. Iga rida on esimese kordne, seega on mõlemad astakud 1 ja determinant on jälle 0. Lahendihulgal on 3 − 1 = 2 vaba suunda: kogu tasand x + y + z = 3. Tööriist ütleb „lõpmata palju“, ütlemata, mitmes suunas.

    7. Muuda üht arvu ja vaata, milline suurus liigub. Pane teise rea paremale poolele 7 asemel 6. Kordajate maatriks jääb puutumata, seega determinant ei võpata, kuid laiendatud astak langeb 2 peale ja vastuseks saab lahendite sirge, mitte lahendite puudumine.

    Vastus

    Determinant teatab ainult seda, kas kordajate maatriksil on täielik juhtelementide komplekt. Ta ei vaata kunagi paremale poolele, ja just seepärast ei suuda ta neid kahte eelseadistust eristada, kaks astakut aga suudavad: lahendit ei ole, kui nad lahknevad, ja lahendihulga mõõde on 3 − astak, kui nad kokku langevad. Kui determinant on juba 0, ei osta ükski parem pool sulle üht ainsat vastust — sa saad kas mitte ühtegi või terve pere, ja b otsustabki ainult nende kahe vahel. Jäägikaart kustub sama põhjuse pärast, mille jaoks ta olemas on: jäägi jaoks on vaja lahendit, mille saaks võrranditesse tagasi panna.

Õpitee

Tundmatu x leidmine miinusmärgist alates

Allikad (1)

Näiteülesanded

  • Lahenduv süsteem - Kaks reavahetust ja kolm elimineerimist annavad x = 2, y = 3, z = −1. Jääk on umbes 10⁻¹⁶, mis tähendab, et arvutus on täpselt nii täpne, kui arvuti seda võimaldab.
  • Ilma peaelemendita - Esimene kordaja on 10⁻¹⁷ ning peaelemendi valik on välja lülitatud, seega algoritm jagab sellega. Vastuseks tuleb x = 0, kuigi peaks olema 1, ja jääk on 0 asemel 1. Märgi ruut ning sama süsteem lahendub täpselt.
  • Üks võrrand kolm korda - Iga rida on esimese kordne. Pärast elimineerimist on kaks rida seega üleni nullid. Determinant on 0 ja süsteem ei määra enam punkti. See määrab hoopis tasandi.
  • Vastuoluline - Teine rida on esimesega vastuolus. Vasak pool on sama, aga parem pool erineb. Elimineerimise tulemuseks on 0 = 1 ja sellest ei päästa enam ükski arvutus.