Ngayon ay tinitingnan natin ang pamamaraang Gauss para sa paglutas ng mga sistema ng mga linear algebraic equation. Maaari mong basahin ang tungkol sa kung ano ang mga system na ito sa nakaraang artikulo na nakatuon sa paglutas ng parehong mga SLAE gamit ang paraan ng Cramer. Ang pamamaraang Gauss ay hindi nangangailangan ng anumang tiyak na kaalaman, kailangan mo lamang ng pagkaasikaso at pagkakapare-pareho. Sa kabila ng katotohanan na, mula sa isang matematikal na punto ng view, ang pagsasanay sa paaralan ay sapat upang mailapat ito, ang mga mag-aaral ay kadalasang nahihirapang makabisado ang pamamaraang ito. Sa artikulong ito susubukan naming bawasan ang mga ito sa wala!

Pamamaraan ng Gauss

M Gaussian na pamamaraan– ang pinaka-unibersal na paraan para sa paglutas ng mga SLAE (maliban sa napakalaking sistema). Hindi tulad ng naunang napag-usapan Pamamaraan ni Cramer, ito ay angkop hindi lamang para sa mga system na may iisang solusyon, kundi pati na rin para sa mga system na may walang katapusang bilang ng mga solusyon. Mayroong tatlong posibleng pagpipilian dito.

  1. Ang sistema ay may natatanging solusyon (ang determinant ng pangunahing matrix ng system ay hindi katumbas ng zero);
  2. Ang sistema ay may walang katapusang bilang ng mga solusyon;
  3. Walang mga solusyon, ang sistema ay hindi tugma.

Kaya't mayroon tayong sistema (hayaan itong magkaroon ng isang solusyon) at lulutasin natin ito gamit ang Gaussian method. Paano ito gumagana?

Ang pamamaraang Gauss ay binubuo ng dalawang yugto - pasulong at kabaligtaran.

Direktang stroke ng pamamaraang Gaussian

Una, isulat natin ang pinalawig na matrix ng system. Upang gawin ito, magdagdag ng column ng mga libreng miyembro sa pangunahing matrix.

Ang buong diwa ng pamamaraang Gauss ay dalhin ang matrix na ito sa isang stepped (o, gaya ng sinasabi nila, triangular) na anyo sa pamamagitan ng elementarya na pagbabago. Sa form na ito, dapat mayroong mga zero lamang sa ilalim (o sa itaas) ng pangunahing dayagonal ng matrix.

Ang magagawa mo:

  1. Maaari mong muling ayusin ang mga hilera ng matrix;
  2. Kung mayroong pantay (o proporsyonal) na mga hilera sa isang matrix, maaari mong alisin ang lahat maliban sa isa sa mga ito;
  3. Maaari mong i-multiply o hatiin ang isang string sa anumang numero (maliban sa zero);
  4. Ang mga null row ay tinanggal;
  5. Maaari kang magdagdag ng string na pinarami ng numero maliban sa zero sa isang string.

Baliktarin ang pamamaraang Gaussian

Pagkatapos naming baguhin ang sistema sa ganitong paraan, hindi alam ang isa Xn nagiging kilala, at mahahanap mo ang lahat ng natitirang hindi alam sa reverse order, na pinapalitan ang mga kilalang x sa mga equation ng system, hanggang sa una.

Kapag ang Internet ay laging nasa kamay, maaari mong lutasin ang isang sistema ng mga equation gamit ang Gaussian method online. Kailangan mo lang ipasok ang mga coefficient sa online calculator. Ngunit dapat mong aminin, ito ay mas kaaya-aya upang mapagtanto na ang halimbawa ay nalutas hindi sa pamamagitan ng isang computer program, ngunit sa pamamagitan ng iyong sariling utak.

Isang halimbawa ng paglutas ng isang sistema ng mga equation gamit ang Gauss method

At ngayon - isang halimbawa upang ang lahat ay maging malinaw at nauunawaan. Hayaang magbigay ng isang sistema ng mga linear na equation, at kailangan mong lutasin ito gamit ang Gauss method:

Una naming isulat ang pinalawig na matrix:

Ngayon gawin natin ang mga pagbabago. Naaalala namin na kailangan naming makamit ang isang tatsulok na anyo ng matrix. I-multiply natin ang 1st line sa (3). I-multiply ang 2nd line sa (-1). Idagdag ang 2nd line sa 1st at makuha ang:

Pagkatapos ay i-multiply ang ika-3 linya sa (-1). Idagdag natin ang ika-3 linya sa ika-2:

I-multiply natin ang 1st line sa (6). I-multiply natin ang 2nd line sa (13). Idagdag natin ang 2nd line sa 1st:

Voila - ang sistema ay dinadala sa naaangkop na anyo. Ito ay nananatiling hanapin ang mga hindi alam:

Ang sistema sa halimbawang ito ay may natatanging solusyon. Isasaalang-alang namin ang paglutas ng mga system na may walang katapusang bilang ng mga solusyon sa isang hiwalay na artikulo. Marahil sa una ay hindi mo malalaman kung saan magsisimulang baguhin ang matrix, ngunit pagkatapos ng naaangkop na pagsasanay ay makukuha mo ito at mabibiyak ang mga SLAE gamit ang Gaussian na pamamaraan tulad ng mga mani. At kung bigla kang makatagpo ng isang SLAE na lumalabas na masyadong matigas para ma-crack, makipag-ugnayan sa aming mga may-akda! Maaari kang mag-order ng murang sanaysay sa pamamagitan ng pag-iwan ng kahilingan sa Correspondence Office. Sama-sama nating lutasin ang anumang problema!

Isang sistema ng linear algebraic equation (SLAE) na may mga hindi alam ay ibinigay. Kinakailangang lutasin ang sistemang ito: tukuyin kung gaano karaming mga solusyon ang mayroon ito (wala, isa o walang katapusang marami), at kung mayroon itong kahit isang solusyon, pagkatapos ay hanapin ang alinman sa mga ito.

Pormal Ang problema ay nakasaad tulad ng sumusunod: lutasin ang sistema:

nasaan ang mga coefficient at ay kilala at ang mga variable - ang ninanais na hindi alam.

Ang isang representasyon ng matrix ng problemang ito ay maginhawa:

kung saan ay isang matrix na binubuo ng mga coefficients, at mga column vectors ng taas.

Kapansin-pansin na ang SLAE ay maaaring hindi sa larangan ng totoong mga numero, ngunit sa larangan modulo anumang numero, i.e.:

— Gumagana rin ang Gaussian algorithm para sa mga ganoong sistema (ngunit ang kasong ito ay tatalakayin sa ibaba sa isang hiwalay na seksyon).

Gaussian algorithm

Sa mahigpit na pagsasalita, ang pamamaraang inilarawan sa ibaba ay tama na tinatawag na "Gauss-Jordan elimination" na pamamaraan, dahil ito ay isang pagkakaiba-iba ng pamamaraang Gauss na inilarawan ng surveyor na si Wilhelm Jordan noong 1887 (ito ay nagkakahalaga na tandaan na si Wilhelm Jordan ay hindi ang may-akda ng alinman sa Jordan theorem curves, o Jordan algebra - lahat ng ito ay tatlong magkakaibang mga siyentipiko na may parehong pangalan bilang karagdagan, tila, ang transkripsyon na "Jordan" ay mas tama, ngunit ang spelling na "Jordan" ay naitatag na sa panitikan ng Russia; Ito rin ay kagiliw-giliw na tandaan na kasabay ng Jordan (at ayon sa ilang data kahit na bago sa kanya), ang algorithm na ito ay naimbento ng B.-I.

Pangunahing pamamaraan

Sa madaling sabi, ang algorithm ay pare-parehong pagbubukod mga variable mula sa bawat equation hanggang sa isang variable na lang ang natitira sa bawat equation. Kung , maaari nating sabihin na ang Gauss-Jordan algorithm ay nagsusumikap na bawasan ang system matrix sa identity matrix - pagkatapos ng lahat, pagkatapos ang matrix ay naging identity matrix, ang solusyon sa system ay halata - ang solusyon ay natatangi at ibinigay sa pamamagitan ng mga resultang coefficients.

Sa kasong ito, ang algorithm ay batay sa dalawang simpleng katumbas na pagbabago ng system: una, dalawang equation ang maaaring palitan, at pangalawa, ang anumang equation ay maaaring mapalitan ng isang linear na kumbinasyon ng hilera na ito (na may non-zero coefficient) at iba pa. mga hilera (na may mga di-makatwirang coefficient).

Sa unang hakbang Hinahati ng Gauss-Jordan algorithm ang unang hilera sa pamamagitan ng isang koepisyent. Pagkatapos ay idinagdag ng algorithm ang unang hilera sa natitirang mga hilera na may ganitong mga coefficient na ang kanilang mga coefficient sa unang column ay nagiging zero - para dito, malinaw naman, kapag idinagdag ang unang hilera sa -ika, kailangan mong i-multiply ito ng . Para sa bawat operasyon na may isang matrix (paghahati sa isang numero, pagdaragdag ng isa pa sa isang hilera), ang mga kaukulang operasyon ay isinasagawa kasama ang vector; sa isang kahulugan, ito ay kumikilos na parang ito ang ika-kolum ng matrix.

Bilang resulta, sa dulo ng unang hakbang, ang unang column ng matrix ay magiging isa (ibig sabihin, maglalaman ito ng isa sa unang row at mga zero sa natitira).

Ang pangalawang hakbang ng algorithm ay ginaganap nang katulad, ngayon lamang ang pangalawang haligi at ang pangalawang hanay ay isinasaalang-alang: una, ang pangalawang hilera ay hinati ng , at pagkatapos ay ibawas mula sa lahat ng iba pang mga hilera na may tulad na mga coefficient upang i-reset ang pangalawang hanay ng matrix .

Pivoting na paghahanap

Siyempre, ang diagram na inilarawan sa itaas ay hindi kumpleto. Gumagana lamang ito kung sa bawat -ika hakbang ang elemento ay naiiba sa zero - kung hindi, hindi natin makakamit ang zeroing ng natitirang mga koepisyent sa kasalukuyang column sa pamamagitan ng pagdaragdag ng -th row sa kanila.

Upang gumana ang algorithm sa mga ganitong kaso, mayroong tiyak na proseso pagpili ng isang reference na elemento(sa Ingles ito ay tinatawag sa isang salitang "pivoting"). Binubuo ito sa muling pagsasaayos ng mga row at/o column ng matrix upang ang nais na elemento ay naglalaman ng hindi zero na numero.

Tandaan na ang muling pagsasaayos ng mga hilera ay mas madaling ipatupad sa isang computer kaysa sa muling pag-aayos ng mga haligi: pagkatapos ng lahat, kapag nagpapalitan ng dalawang hanay, kailangan mong tandaan na ang dalawang variable na ito ay nagpalit ng mga lugar, upang sa ibang pagkakataon, kapag ibinalik ang sagot, maibabalik mo nang tama kung aling sagot nabibilang sa aling variable . Kapag muling nag-aayos ng mga hilera, walang ganoong karagdagang mga pagkilos ang kailangang isagawa.

Sa kabutihang palad, para maging tama ang pamamaraan, sapat na ang mga palitan ng row lamang (ang tinatawag na "partial pivoting", kumpara sa "full pivoting", kapag ang parehong mga row at column ay ipinagpapalit). Ngunit aling string ang dapat mong piliin para sa palitan? At totoo ba na ang paghahanap para sa isang reference na elemento ay dapat gawin lamang kapag ang kasalukuyang elemento ay zero?

Walang pangkalahatang sagot sa tanong na ito. Mayroong iba't ibang heuristics, ngunit ang pinaka-epektibo sa kanila (sa mga tuntunin ng pagiging simple at epekto) ay ito heuristic: ang elementong may pinakamalaking modulus ay dapat kunin bilang reference na elemento, at kinakailangan na hanapin ang reference na elemento at makipagpalitan dito Laging, at hindi lamang kapag kinakailangan (i.e. hindi lamang kapag ).

Sa madaling salita, bago isagawa ang ika- bahagi ng Gauss-Jordan algorithm na may bahagyang pivoting heuristic, kailangang hanapin sa ika-kolum ang mga elementong may mga indeks mula sa maximum na modulo, at ipagpalit ang hilera sa elementong ito sa ika. hilera.

Una, ang heuristic na ito ay magbibigay-daan sa iyo upang malutas ang SLAE, kahit na sa panahon ng solusyon mangyari na ang elemento . Pangalawa, at lubos na mahalaga, ang heuristic na ito ay nagpapabuti katatagan ng numero Gauss-Jordan algorithm.

Kung wala ang heuristic na ito, kahit na ang sistema ay tulad na sa bawat yugto ay gagana ang Gauss-Jordan algorithm, ngunit sa huli ang naipon na error ay maaaring maging napakalaki na kahit na para sa mga matrice na sukat tungkol sa error ay lalampas sa sagot mismo .

Mga degenerate na kaso

Kaya, kung titigil tayo sa Gauss-Jordan algorithm na may bahagyang pag-pivoting, kung gayon, ito ay pinagtatalunan, kung ang system ay hindi degenerate (i.e. may non-zero determinant, na nangangahulugang mayroon itong natatanging solusyon), kung gayon ang algorithm na inilarawan sa itaas ay ganap na gagana at darating sa unit matrix (ang patunay nito, ibig sabihin, na palaging mayroong isang non-zero na elemento ng suporta, ay hindi ibinigay dito).

Isaalang-alang natin ngayon pangkalahatang kaso- kung kailan at hindi kinakailangang pantay. Ipagpalagay natin na ang elemento ng suporta ay hindi natagpuan sa ika-hakbang. Nangangahulugan ito na sa ika-kolum, lahat ng mga hilera simula sa kasalukuyang isa ay naglalaman ng mga zero. Ito ay argued na sa kasong ito ang ika variable ay hindi maaaring tukuyin, at ay malayang baryabol(maaaring kumuha ng anumang halaga). Upang maipagpatuloy ng Gauss-Jordan algorithm ang gawain nito para sa lahat ng kasunod na mga variable, sa ganoong sitwasyon kailangan mo lang laktawan ang kasalukuyang -th column nang hindi nadaragdagan ang bilang ng kasalukuyang hilera (masasabi nating halos inaalis natin ang - ika-column ng matrix).

Kaya, ang ilang mga variable sa panahon ng pagpapatakbo ng algorithm ay maaaring maging malaya. Ito ay malinaw na kapag ang bilang ng mga variable ay mas malaki kaysa sa bilang ng mga equation, at hindi bababa sa ang mga variable ay makikita na independyente.

Sa pangkalahatan, kung ang hindi bababa sa isang independiyenteng variable ay matatagpuan, pagkatapos ay maaari itong tumagal ng isang arbitrary na halaga, habang ang natitirang (umaasa) na mga variable ay ipahahayag sa pamamagitan nito. Nangangahulugan ito na kapag nagtatrabaho kami sa larangan ng mga tunay na numero, ang system ay maaaring magkaroon walang katapusang maraming solusyon(kung isasaalang-alang namin ang isang SLAE modulo, kung gayon ang bilang ng mga solusyon ay magiging katumbas ng modulus na ito sa kapangyarihan ng bilang ng mga independiyenteng variable). Gayunpaman, dapat mag-ingat: dapat tandaan na kahit na natuklasan ang mga independyenteng variable, gayunpaman ang SLAE maaaring walang mga solusyon sa lahat. Nangyayari ito kapag ang mga natitirang hindi naprosesong equation (yaong hindi naabot ng Gauss-Jordan algorithm, ibig sabihin, ito ay mga equation kung saan ang mga independyenteng variable lamang ang natitira) ay mayroong kahit isang non-zero na libreng termino.

Gayunpaman, mas madaling suriin ito sa pamamagitan ng tahasang pagpapalit sa nahanap na solusyon: magtalaga ng mga zero na halaga sa lahat ng mga independiyenteng variable, italaga ang mga nahanap na halaga sa mga dependent variable, at palitan ang solusyon na ito sa kasalukuyang SLAE.

Pagpapatupad

Dito ipinakita namin ang isang pagpapatupad ng Gauss-Jordan algorithm na may bahagyang pivoting heuristic (pagpili ng isang reference na elemento bilang maximum sa column).

Ang system matrix mismo ay ipinadala sa input ng function. Ang huling haligi ng matrix ay, sa aming lumang notasyon, ang haligi ng mga libreng coefficient (ginawa ito para sa kaginhawaan ng programming - dahil sa algorithm mismo, ang lahat ng mga operasyon na may libreng coefficients ay umuulit ng mga operasyon sa matrix).

Ibinabalik ng function ang bilang ng mga solusyon sa system (, o) (infinity ay ipinahiwatig sa code ng isang espesyal na pare-pareho, na maaaring itakda sa anumang malaking halaga). Kung mayroong kahit isang solusyon, ibabalik ito sa vector.

int gauss (vector< vector< double >> a, vector< double >& ans) ( int n = (int ) a.size (); int m = (int ) a[ 0 ] .size () - 1; vector< int >< m && row< n; ++ col) { int sel = row; for (int i= row; i< n; ++ i) if (abs (a[ i] [ col] ) >abs (a[ sel] [ col] ) ) sel = i; kung (abs (a[sel] [ col] )< EPS) continue ; for (int i= col; i<= m; ++ i) swap (a[ sel] [ i] , a[ row] [ i] ) ; where[ col] = row; for (int i= 0 ; i< n; ++ i) if (i ! = row) { double c = a[ i] [ col] / a[ row] [ col] ; for (int j= col; j<= m; ++ j) a[ i] [ j] - = a[ row] [ j] * c; } ++ row; } ans.assign (m, 0 ) ; for (int i= 0 ; i< m; ++ i) if (where[ i] ! = - 1 ) ans[ i] = a[ where[ i] ] [ m] / a[ where[ i] ] [ i] ; for (int i= 0 ; i< n; ++ i) { double sum = 0 ; for (int j= 0 ; j< m; ++ j) sum + = ans[ j] * a[ i] [ j] ; if (abs (sum - a[ i] [ m] ) >EPS) bumalik 0 ; ) para sa (int i= 0 ; i< m; ++ i) if (where[ i] == - 1 ) return INF; return 1 ; }

Sinusuportahan ng function ang dalawang pointer - sa kasalukuyang column at sa kasalukuyang row.

Ang isang vector ay nilikha din kung saan para sa bawat variable ito ay nakasulat sa kung aling row ito dapat lumitaw (sa madaling salita, para sa bawat column ang bilang ng row kung saan ang column na ito ay non-zero ay nakasulat). Ang vector na ito ay kinakailangan dahil ang ilang mga variable ay maaaring hindi "tinukoy" sa panahon ng solusyon (iyon ay, ito ay mga independiyenteng variable na maaaring italaga ng isang arbitrary na halaga - halimbawa, sa pagpapatupad sa itaas ito ay mga zero).

Ang pagpapatupad ay gumagamit ng bahagyang pivoting technique, naghahanap ng row na may pinakamataas na modulus element, at pagkatapos ay muling inaayos ang row na ito sa posisyon (bagaman ang tahasang pag-aayos ng row ay maaaring palitan sa pamamagitan ng pagpapalitan ng dalawang indeks sa ilang array, sa pagsasanay hindi ito magbibigay ng tunay na pakinabang. , dahil nasayang ang mga pagpapatakbo ng palitan).

Sa pagpapatupad, para sa kapakanan ng pagiging simple, ang kasalukuyang hilera ay hindi nahahati sa nangungunang elemento - upang bilang isang resulta, sa dulo ng algorithm, ang matrix ay nagiging dayagonal sa halip na yunit (gayunpaman, tila, hinahati ang hilera sa pamamagitan ng pinahihintulutan tayo ng nangungunang elemento na medyo bawasan ang mga resultang error).

Kapag nahanap na ang isang solusyon, ipinapasok ito pabalik sa matrix upang suriin kung ang system ay may kahit isang solusyon o wala. Kung matagumpay ang pag-verify ng nahanap na solusyon, babalik ang function o - depende sa kung mayroong kahit isang independent variable o wala.

Asymptotics

Tantyahin natin ang asymptotic na pag-uugali ng resultang algorithm. Ang algorithm ay binubuo ng mga yugto, kung saan ang bawat isa ay nangyayari:

Malinaw, ang unang punto ay may mas maliit na asymptotic na pag-uugali kaysa sa pangalawa. Tandaan din na ang pangalawang punto ay ginagawa nang hindi hihigit sa isang beses—kung gaano karaming beses na maaaring magkaroon ng mga dependent variable sa SLAE.

kaya, panghuling asymptotics ang algorithm ay tumatagal ng form.

Kapag naging .

Tandaan na kapag ang SLAE ay itinuturing na hindi sa larangan ng mga tunay na numero, ngunit sa patlang na modulo dalawa, kung gayon ang sistema ay maaaring malutas nang mas mabilis - tingnan ito sa ibaba sa seksyong "Paglutas ng SLAE modulo".

Mas tumpak na pagtatantya ng bilang ng mga pagkilos

Tulad ng alam na natin, ang oras ng pagpapatakbo ng buong algorithm ay talagang tinutukoy ng oras na ginugol sa pag-aalis ng kasalukuyang equation mula sa iba.

Ito ay maaaring mangyari sa bawat isa sa mga hakbang, na ang kasalukuyang equation ay idinaragdag sa lahat ng iba pa. Kapag nagdadagdag, ang gawain ay ginagawa lamang sa mga hanay, simula sa kasalukuyang isa. Kaya, ang kabuuan ay mga operasyon.

Mga add-on

Pagpapabilis ng algorithm: paghahati nito sa forward at reverse stroke

Makakamit mo ang dalawang beses na acceleration ng algorithm sa pamamagitan ng pagsasaalang-alang sa isa pang bersyon nito, isang mas klasikal, kapag ang algorithm ay nahahati sa forward at reverse phase.

Sa pangkalahatan, sa kaibahan sa algorithm na inilarawan sa itaas, posibleng bawasan ang matrix hindi sa diagonal na anyo, ngunit sa tatsulok na view- kapag ang lahat ng mga elemento na mahigpit na nasa ibaba ng pangunahing dayagonal ay katumbas ng zero.

Ang isang sistema na may isang tatsulok na matrix ay nalutas nang walang kabuluhan - una, ang halaga ng huling variable ay agad na matatagpuan mula sa huling equation, pagkatapos ang nahanap na halaga ay pinapalitan sa penultimate equation at ang halaga ng penultimate variable ay matatagpuan, at sa gayon sa. Ang prosesong ito ay tinatawag sa kabaligtaran Gaussian algorithm.

Straight stroke Ang Gaussian algorithm ay isang algorithm na katulad ng Gauss-Jordan algorithm na inilarawan sa itaas, na may isang pagbubukod: ang kasalukuyang variable ay hindi kasama sa lahat ng equation, ngunit mula lamang sa mga equation pagkatapos ng kasalukuyang isa. Ang resulta nito ay talagang hindi isang dayagonal, ngunit isang tatsulok na matrix.

Ang pagkakaiba ay gumagana ang forward stroke mas mabilis Gauss-Jordan algorithm - dahil sa karaniwan ay gumagawa ito ng kalahati ng maraming pagdaragdag ng isang equation sa isa pa. Gumagana ang reverse stroke sa , na sa anumang kaso ay asymptotically mas mabilis kaysa sa forward stroke.

Kaya, kung , kung gayon ang algorithm na ito ay magsasagawa na ng mga operasyon - na kalahati ng kasing dami ng Gauss-Jordan algorithm.

Solusyon ng SLAE modulo

Upang malutas ang mga modulo SLAE, maaari mong gamitin ang algorithm na inilarawan sa itaas;

Siyempre, ngayon ay hindi na kailangang gumamit ng anumang nakakalito na pamamaraan para sa pagpili ng isang reference na elemento - sapat na upang makahanap ng anumang hindi zero na elemento sa kasalukuyang column.

Kung ang module ay simple, kung gayon walang mga paghihirap na lumitaw - ang mga dibisyon na nagaganap sa panahon ng pagpapatakbo ng Gaussian algorithm ay hindi lumikha ng anumang mga espesyal na problema.

Kapansin-pansin lalo na modyul na katumbas ng dalawa: Para sa kanya, ang lahat ng mga operasyon na may matrix ay maaaring maisagawa nang napakahusay. Halimbawa, ang pagbabawas ng isang string mula sa isa pang modulo dalawa ay talagang ang kanilang simetriko na pagkakaiba ("xor"). Kaya, ang buong algorithm ay maaaring makabuluhang mapabilis sa pamamagitan ng pag-compress sa buong matrix sa mga bit mask at gumagana lamang sa kanila. Narito ang isang bagong pagpapatupad ng pangunahing bahagi ng Gauss-Jordan algorithm, gamit ang karaniwang C++ na "bitset" na lalagyan:

int gauss (vector< bitset< N>> a, int n, int m, bitset< N>& ans) (vector< int >kung saan (m, - 1); para sa (int col= 0 , row= 0 ; col< m && row< n; ++ col) { for (int i= row; i< n; ++ i) if (a[ i] [ col] ) { swap (a[ i] , a[ row] ) ; break ; } if (! a[ row] [ col] ) continue ; where[ col] = row; for (int i= 0 ; i< n; ++ i) if (i ! = row && a[ i] [ col] ) a[ i] ^ = a[ row] ; ++ row; }

Tulad ng nakikita mo, ang pagpapatupad ay naging mas maikli, sa kabila ng katotohanan na ito ay mas mabilis kaysa sa lumang pagpapatupad - ibig sabihin, ilang beses na mas mabilis dahil sa bit compression. Dapat ding tandaan na ang paglutas ng mga system modulo two sa pagsasanay ay gumagana nang napakabilis, dahil ang mga kaso kung kailan kinakailangan upang ibawas ang isa pa mula sa isang hilera ay bihirang mangyari (sa mga kalat-kalat na matrice, ang algorithm na ito ay maaaring gumana sa isang oras ng pagkakasunud-sunod ng parisukat ng ang laki kaysa sa kubo).

Kung ang modyul arbitraryo(hindi kinakailangang simple), kung gayon ang lahat ay nagiging mas kumplikado. Malinaw na gamit ang Chinese remainder theorem, binabawasan namin ang problema sa isang arbitrary na module sa mga module na may anyong "degree of prime". [tinago ang karagdagang text dahil Ito ay hindi na-verify na impormasyon - marahil ang maling paraan upang malutas ]

Sa wakas, tingnan natin ang tanong bilang ng mga solusyon ng SLAE modulo. Ang sagot dito ay medyo simple: ang bilang ng mga solusyon ay katumbas ng , kung saan ang modulus at ang bilang ng mga independiyenteng variable.

Kaunti tungkol sa iba't ibang paraan upang pumili ng elemento ng suporta

Tulad ng nabanggit sa itaas, walang malinaw na sagot sa tanong na ito.

Ang "partial pivoting" heuristic, na binubuo ng paghahanap ng maximum na elemento sa kasalukuyang column, ay gumagana nang maayos sa pagsasanay. Lumalabas din na nagbibigay ito ng halos kaparehong resulta gaya ng "full pivoting" - kapag hinanap ang pivot element sa mga elemento ng buong submatrix - simula sa kasalukuyang row at sa kasalukuyang column.

Ngunit kagiliw-giliw na tandaan na ang parehong max-element na heuristic na ito ay talagang nakadepende sa kung paano na-scale ang mga orihinal na equation. Halimbawa, kung ang isa sa mga equation ng system ay pinarami ng isang milyon, ang equation na ito ay halos tiyak na pipiliin bilang nangunguna sa unang hakbang. Ito ay tila medyo kakaiba, kaya lohikal na lumipat sa isang bahagyang mas kumplikadong heuristic - ang tinatawag na "implicit na pag-ikot".

Ang heuristic ng implicit na pag-pivoting ay ang mga elemento ng iba't ibang mga row ay inihambing na para bang ang parehong mga row ay na-normalize sa paraang ang maximum na elemento sa mga ito ay magiging katumbas ng isa. Upang maipatupad ang diskarteng ito, kailangan mo lamang na mapanatili ang kasalukuyang maximum sa bawat hilera (o panatilihin ang bawat hilera upang ang maximum sa loob nito ay katumbas ng isa sa ganap na halaga, ngunit ito ay maaaring humantong sa isang pagtaas sa naipon na error).

Pagpapabuti ng nahanap na sagot

Dahil, sa kabila ng iba't ibang heuristics, ang Gauss-Jordan algorithm ay maaari pa ring humantong sa malalaking error sa mga espesyal na matrice kahit na may sukat sa pagkakasunud-sunod ng - .

Kaugnay nito, ang sagot na nakuha ng Gauss-Jordan algorithm ay maaaring mapabuti sa pamamagitan ng paglalapat ng ilang simpleng numerical na paraan dito - halimbawa, ang simpleng paraan ng pag-ulit.

Kaya, ang solusyon ay nagiging isang dalawang-hakbang na isa: una ang Gauss-Jordan algorithm ay naisakatuparan, pagkatapos ay ang ilang numerical na pamamaraan ay ginanap, na kinuha ang solusyon na nakuha sa unang hakbang bilang paunang data.

Ang pamamaraan na ito ay nagbibigay-daan sa amin upang medyo palawakin ang hanay ng mga problema na nalutas ng Gauss-Jordan algorithm na may katanggap-tanggap na error.

Panitikan

  • William H. Press, Saul A. Teukolsky, William T. Vetterling, Brian P. Flannery. Mga Numerical Recipe: Ang Sining ng Scientific Computing
  • Anthony Ralston, Philip Rabinowitz. Isang unang kurso sa numerical analysis

Carl Friedrich Gauss - German mathematician, tagapagtatag ng paraan ng paglutas ng mga SLAE ng parehong pangalan

Si Carl Friedrich Gauss ay isang sikat na mahusay na dalub-agbilang at minsan ay kinilala siya bilang "Hari ng Matematika". Bagama't ang pangalang "Paraan ni Gauss" ay karaniwang tinatanggap, hindi si Gauss ang may-akda nito: Ang pamamaraan ni Gauss ay kilala na bago pa siya. Ang unang paglalarawan nito ay nasa Chinese treatise na "Mathematics in Nine Books," na pinagsama-sama sa pagitan ng ika-2 siglo. BC e. at ako siglo. n. e. at ito ay isang compilation ng mga naunang akdang isinulat noong ika-10 siglo. BC e.

– pare-parehong pagbubukod ng mga hindi alam. Ang pamamaraang ito ay ginagamit upang malutas ang mga quadratic system ng linear algebraic equation. Bagama't madaling malutas ang mga equation gamit ang Gauss method, kadalasan ay hindi mahanap ng mga mag-aaral ang tamang solusyon dahil nalilito sila tungkol sa mga palatandaan (mga plus at minus). Samakatuwid, kapag nilulutas ang mga SLAE, kailangan mong maging lubhang maingat at pagkatapos lamang ay madali, mabilis at wastong malutas ang kahit na ang pinakakumplikadong equation.

Ang mga sistema ng linear algebraic equation ay may ilang mga pakinabang: ang equation ay hindi kailangang maging pare-pareho nang maaga; posible na malutas ang mga sistema ng mga equation kung saan ang bilang ng mga equation ay hindi nag-tutugma sa bilang ng mga hindi kilalang variable o ang determinant ng pangunahing matrix ay katumbas ng zero; Posibleng gamitin ang pamamaraang Gaussian upang makamit ang mga resulta na may medyo maliit na bilang ng mga pagpapatakbo ng computational.

Tulad ng nabanggit na, ang pamamaraang Gaussian ay nagdudulot ng ilang kahirapan para sa mga mag-aaral. Gayunpaman, kung matutunan mo ang paraan at algorithm ng solusyon, mauunawaan mo kaagad ang mga intricacies ng solusyon.

Una, i-systematize natin ang kaalaman tungkol sa mga sistema ng linear equation.

Tandaan!

Depende sa mga elemento nito, ang isang SLAE ay maaaring magkaroon ng:

  1. Isang solusyon;
  2. maraming solusyon;
  3. wala man lang solusyon.

Sa unang dalawang kaso, ang SLAE ay tinatawag na compatible, at sa pangatlong kaso, ito ay tinatawag na incompatible. Kung ang isang sistema ay may isang solusyon, ito ay tinatawag na tiyak, at kung mayroong higit sa isang solusyon, kung gayon ang sistema ay tinatawag na hindi tiyak.

Gauss method - theorem, mga halimbawa ng solusyon na-update: Nobyembre 22, 2019 ni: Mga Artikulo sa Siyentipiko.Ru

Patuloy naming isinasaalang-alang ang mga sistema ng mga linear na equation. Ang araling ito ay ang pangatlo sa paksa. Kung mayroon kang isang hindi malinaw na ideya kung ano ang isang sistema ng mga linear na equation sa pangkalahatan, kung sa tingin mo ay tulad ng isang tsarera, pagkatapos ay inirerekumenda kong magsimula sa mga pangunahing kaalaman sa pahina Susunod, ito ay kapaki-pakinabang na pag-aralan ang aralin.

Ang Gaussian method ay madali! Bakit? Ang sikat na German mathematician na si Johann Carl Friedrich Gauss, noong nabubuhay pa siya, ay tumanggap ng pagkilala bilang pinakadakilang mathematician sa lahat ng panahon, isang henyo, at maging ang palayaw na "Hari ng Mathematics." At lahat ng mapanlikha, tulad ng alam mo, ay simple! Sa pamamagitan ng paraan, hindi lamang mga sucker ang nakakakuha ng pera, kundi pati na rin ang mga henyo - ang larawan ni Gauss ay nasa 10 Deutschmark banknote (bago ang pagpapakilala ng euro), at si Gauss ay nakangiti pa rin nang misteryoso sa mga Aleman mula sa mga ordinaryong selyo ng selyo.

Ang pamamaraan ng Gauss ay simple na ang KAALAMAN NG ISANG IKALIMANG BAITANG NA MAG-AARAL AY SAPAT na upang makabisado ito. Dapat marunong kang magdagdag at magparami! Ito ay hindi nagkataon na ang mga guro ay madalas na isinasaalang-alang ang paraan ng sunud-sunod na pagbubukod ng mga hindi alam sa mga elective sa matematika ng paaralan. Ito ay isang kabalintunaan, ngunit hinahanap ng mga mag-aaral ang pamamaraang Gaussian na pinakamahirap. Walang nakakagulat - lahat ito ay tungkol sa pamamaraan, at susubukan kong pag-usapan ang algorithm ng pamamaraan sa isang naa-access na form.

Una, i-systematize natin ang kaunting kaalaman tungkol sa mga sistema ng linear equation. Ang isang sistema ng mga linear na equation ay maaaring:

1) Magkaroon ng natatanging solusyon. 2) Magkaroon ng walang katapusang maraming solusyon. 3) Walang mga solusyon (maging hindi magkasanib).

Ang Gauss method ay ang pinakamakapangyarihan at unibersal na tool para sa paghahanap ng solusyon anuman sistema ng mga linear na equation. Sa pagkakaalala natin, Ang panuntunan at pamamaraan ng matrix ng Cramer ay hindi angkop sa mga kaso kung saan ang sistema ay may walang katapusang maraming solusyon o hindi pare-pareho. At ang paraan ng sunud-sunod na pag-aalis ng mga hindi alam Anyway hahantong tayo sa sagot! Sa araling ito, muli nating isasaalang-alang ang pamamaraang Gauss para sa kaso No. 1 (ang tanging solusyon sa sistema), ang isang artikulo ay nakatuon sa mga sitwasyon ng mga puntos No. 2-3. Tandaan ko na ang algorithm ng pamamaraan mismo ay gumagana nang pareho sa lahat ng tatlong mga kaso.

Bumalik tayo sa pinakasimpleng sistema mula sa aralin Paano malutas ang isang sistema ng mga linear na equation? at lutasin ito gamit ang Gaussian method.

Ang unang hakbang ay isulat pinahabang system matrix: . Sa palagay ko makikita ng lahat sa pamamagitan ng kung anong prinsipyo ang isinulat ng mga coefficient. Ang patayong linya sa loob ng matrix ay walang anumang mathematical na kahulugan - ito ay simpleng strikethrough para sa kadalian ng disenyo.

Sanggunian : Inirerekomenda kong tandaan mo mga tuntunin linear algebra. System Matrix ay isang matrix na binubuo lamang ng mga coefficient para sa mga hindi alam, sa halimbawang ito ang matrix ng system: . Pinalawak na System Matrix – ito ang parehong matrix ng system kasama ang isang column ng mga libreng termino, sa kasong ito: . Para sa kaiklian, alinman sa mga matrice ay maaaring tawaging isang matrix.

Matapos maisulat ang pinahabang system matrix, kinakailangan na magsagawa ng ilang mga aksyon kasama nito, na tinatawag ding mga pagbabagong elementarya.

Mayroong mga sumusunod na pagbabagong elementarya:

1) Mga string matrice Pwede muling ayusin sa ilang lugar. Halimbawa, sa matrix na isinasaalang-alang, maaari mong walang sakit na muling ayusin ang una at pangalawang hilera:

2) Kung mayroong (o lumitaw) na proporsyonal (bilang isang espesyal na kaso - magkapareho) na mga hilera sa matrix, dapat mong tanggalin Ang lahat ng mga row na ito ay mula sa matrix maliban sa isa. Isaalang-alang, halimbawa, ang matrix . Sa matrix na ito, ang huling tatlong hilera ay proporsyonal, kaya sapat na mag-iwan lamang ng isa sa mga ito: .

3) Kung ang isang zero na hilera ay lilitaw sa matrix sa panahon ng mga pagbabagong-anyo, dapat din ito tanggalin. Hindi ako gumuhit, siyempre, ang zero line ay ang linya kung saan lahat ng mga zero.

4) Ang matrix row ay maaaring multiply (divide) sa anumang numero hindi zero. Isaalang-alang, halimbawa, ang matrix . Dito ipinapayong hatiin ang unang linya sa -3, at i-multiply ang pangalawang linya ng 2: . Ang pagkilos na ito ay lubhang kapaki-pakinabang dahil pinapasimple nito ang mga karagdagang pagbabago ng matrix.

5) Ang pagbabagong ito ay nagdudulot ng pinakamaraming kahirapan, ngunit sa katunayan ay wala ring kumplikado. Sa isang hilera ng isang matrix maaari mong magdagdag ng isa pang string na pinarami ng isang numero, iba sa zero. Tingnan natin ang aming matrix mula sa isang praktikal na halimbawa: . Una, ilalarawan ko ang pagbabago nang detalyado. I-multiply ang unang linya sa –2: , At sa pangalawang linya idinaragdag namin ang unang linya na pinarami ng –2: . Ngayon ang unang linya ay maaaring hatiin "pabalik" sa pamamagitan ng –2: . Tulad ng nakikita mo, ang linya na ADDED LIhindi nagbago. Laging nagbabago ang linyang TO WHICH IS ADDED UT.

Sa pagsasagawa, siyempre, hindi nila ito isinulat nang detalyado, ngunit isulat ito nang maikli: Muli: sa pangalawang linya idinagdag ang unang linya na pinarami ng –2. Ang isang linya ay karaniwang pinararami nang pasalita o sa isang draft, kung saan ang proseso ng pagkalkula ng pag-iisip ay nangyayari tulad nito:

"Isinulat ko muli ang matrix at muling isinulat ang unang linya: »

“Unang column. Sa ibaba kailangan kong makakuha ng zero. Samakatuwid, pinarami ko ang isa sa itaas sa –2: , at idinagdag ang una sa pangalawang linya: 2 + (–2) = 0. Isinulat ko ang resulta sa pangalawang linya: »

“Ngayon ang pangalawang column. Sa itaas, pinaparami ko ang -1 sa -2: . Idinaragdag ko ang una sa pangalawang linya: 1 + 2 = 3. Isinulat ko ang resulta sa pangalawang linya: »

“At ang pangatlong column. Sa tuktok pinarami ko ang -5 sa -2: . Idinaragdag ko ang una sa pangalawang linya: –7 + 10 = 3. Isinulat ko ang resulta sa pangalawang linya: »

Mangyaring maingat na maunawaan ang halimbawang ito at unawain ang sunud-sunod na algorithm ng pagkalkula, kung naiintindihan mo ito, kung gayon ang Gaussian na pamamaraan ay halos nasa iyong bulsa. Ngunit, siyempre, gagawin pa rin natin ang pagbabagong ito.

Ang mga pagbabago sa elementarya ay hindi nagbabago sa solusyon ng sistema ng mga equation

! PANSIN: itinuturing na mga manipulasyon hindi maaaring gamitin, kung bibigyan ka ng isang gawain kung saan ang mga matrice ay ibinibigay "sa kanilang sarili." Halimbawa, sa "klasikal" mga operasyon na may mga matrice Sa anumang pagkakataon dapat mong muling ayusin ang anumang bagay sa loob ng mga matrice! Balik tayo sa ating sistema. Ito ay halos pinutol.

Isulat natin ang pinahabang matrix ng system at, gamit ang elementarya na pagbabago, bawasan ito sa stepped view:

(1) Ang unang linya ay idinagdag sa pangalawang linya, na pinarami ng –2. At muli: bakit natin i-multiply ang unang linya sa –2? Upang makakuha ng zero sa ibaba, na nangangahulugan ng pag-alis ng isang variable sa pangalawang linya.

(2) Hatiin ang pangalawang linya ng 3.

Ang layunin ng mga pagbabagong elementarya bawasan ang matrix sa stepwise form: . Sa disenyo ng gawain, minarkahan lamang nila ang "hagdan" gamit ang isang simpleng lapis, at bilugan din ang mga numero na matatagpuan sa "mga hakbang". Ang terminong "stepped view" mismo ay hindi ganap na teoretikal sa pang-agham at pang-edukasyon na panitikan ito ay madalas na tinatawag trapezoidal view o tatsulok na view.

Bilang resulta ng mga pagbabagong elementarya, nakuha namin katumbas orihinal na sistema ng mga equation:

Ngayon ang system ay kailangang "makawala" sa kabaligtaran na direksyon - mula sa ibaba hanggang sa itaas, ang prosesong ito ay tinatawag kabaligtaran ng pamamaraang Gaussian.

Sa mas mababang equation mayroon na tayong handa na resulta: .

Isaalang-alang natin ang unang equation ng system at palitan ang kilalang halaga ng "y" dito:

Isaalang-alang natin ang pinakakaraniwang sitwasyon, kapag ang pamamaraang Gaussian ay nangangailangan ng paglutas ng isang sistema ng tatlong linear equation na may tatlong hindi alam.

Halimbawa 1

Lutasin ang sistema ng mga equation gamit ang Gauss method:

Isulat natin ang pinahabang matrix ng system:

Ngayon ay agad kong iguguhit ang resulta na darating sa panahon ng solusyon: At inuulit ko, ang layunin namin ay dalhin ang matrix sa isang stepwise form gamit ang elementary transformations. Saan magsisimula?

Una, tingnan ang kaliwang itaas na numero: Dapat halos laging nandito yunit. Sa pangkalahatan, gagawin ang -1 (at kung minsan ay iba pang mga numero), ngunit sa paanuman ay tradisyonal na nangyari na ang isa ay karaniwang nakalagay doon. Paano ayusin ang isang yunit? Tinitingnan namin ang unang column - mayroon kaming natapos na unit! Transformation one: palitan ang una at ikatlong linya:

Ngayon ang unang linya ay mananatiling hindi nagbabago hanggang sa katapusan ng solusyon. Ngayon ayos na.

Nakaayos ang unit sa kaliwang sulok sa itaas. Ngayon ay kailangan mong makakuha ng mga zero sa mga lugar na ito:

Nakukuha namin ang mga zero gamit ang isang "mahirap" na pagbabago. Una, haharapin natin ang pangalawang linya (2, -1, 3, 13). Ano ang kailangang gawin upang makakuha ng zero sa unang posisyon? Kailangan sa pangalawang linya idagdag ang unang linya na pinarami ng –2. Sa isip o sa isang draft, i-multiply ang unang linya sa –2: (–2, –4, 2, –18). At palagi kaming nagsasagawa (muli sa isip o sa isang draft) karagdagan, sa pangalawang linya idinaragdag namin ang unang linya, na pinarami na ng –2:

Isinulat namin ang resulta sa pangalawang linya:

Haharapin namin ang ikatlong linya sa parehong paraan (3, 2, -5, -1). Upang makakuha ng zero sa unang posisyon, kailangan mo sa ikatlong linya idagdag ang unang linya na pinarami ng –3. Sa isip o sa isang draft, i-multiply ang unang linya sa –3: (–3, –6, 3, –27). AT sa ikatlong linya idinaragdag namin ang unang linya na pinarami ng –3:

Isinulat namin ang resulta sa ikatlong linya:

Sa pagsasagawa, ang mga pagkilos na ito ay karaniwang ginagawa nang pasalita at nakasulat sa isang hakbang:

Hindi na kailangang bilangin ang lahat nang sabay-sabay. Ang pagkakasunud-sunod ng mga kalkulasyon at "pagpasok" ng mga resulta pare-pareho at kadalasan ay ganito: una nating isusulat muli ang unang linya, at dahan-dahang ibinuga ang ating sarili - KONSISTENTO at MAPANSIN:
At napag-usapan ko na ang mental na proseso ng mga kalkulasyon mismo sa itaas.

Sa halimbawang ito, ito ay madaling gawin; hinahati namin ang pangalawang linya sa -5 (dahil ang lahat ng mga numero ay nahahati sa 5 nang walang natitira). Kasabay nito, hinahati namin ang ikatlong linya sa -2, dahil mas maliit ang mga numero, mas simple ang solusyon:

Sa huling yugto ng elementarya na pagbabago, kailangan mong makakuha ng isa pang zero dito:

Para dito sa ikatlong linya idinaragdag namin ang pangalawang linya na pinarami ng –2:
Subukang alamin ang aksyon na ito sa iyong sarili - i-multiply sa isip ang pangalawang linya sa -2 at gawin ang karagdagan.

Ang huling aksyon na ginawa ay ang hairstyle ng resulta, hatiin ang ikatlong linya ng 3.

Bilang resulta ng mga pagbabagong elementarya, nakuha ang isang katumbas na sistema ng mga linear na equation: Malamig.

Ngayon ang kabaligtaran ng pamamaraang Gaussian ay naglalaro. Ang mga equation ay "unwind" mula sa ibaba hanggang sa itaas.

Sa ikatlong equation mayroon na tayong handa na resulta:

Tingnan natin ang pangalawang equation: . Ang kahulugan ng "zet" ay kilala na, kaya:

At sa wakas, ang unang equation: . Ang "Igrek" at "zet" ay kilala, ito ay isang bagay lamang ng maliliit na bagay:

Sagot:

Tulad ng paulit-ulit na nabanggit, para sa anumang sistema ng mga equation posible at kinakailangan upang suriin ang solusyon na natagpuan, sa kabutihang palad, ito ay madali at mabilis.

Halimbawa 2

Ito ay isang halimbawa para sa isang independiyenteng solusyon, isang sample ng huling disenyo at isang sagot sa pagtatapos ng aralin.

Dapat tandaan na ang iyong progreso ng desisyon maaaring hindi tumutugma sa proseso ng aking desisyon, at ito ay isang tampok ng pamamaraang Gauss. Ngunit ang mga sagot ay dapat na pareho!

Halimbawa 3

Lutasin ang isang sistema ng mga linear equation gamit ang Gauss method

Tinitingnan namin ang itaas na kaliwang "hakbang". Dapat may unit tayo dun. Ang problema ay walang mga yunit sa unang hanay, kaya ang muling pagsasaayos ng mga hilera ay hindi malulutas ang anuman. Sa ganitong mga kaso, dapat ayusin ang yunit gamit ang elementarya na pagbabago. Ito ay karaniwang maaaring gawin sa maraming paraan. Ginawa ko ito: (1) Sa unang linya idinaragdag namin ang pangalawang linya, na pinarami ng -1. Iyon ay, pinarami namin sa isip ang pangalawang linya sa -1 at idinagdag ang una at pangalawang linya, habang ang pangalawang linya ay hindi nagbago.

Ngayon sa kaliwang tuktok ay mayroong "minus one", na angkop sa amin. Maaaring magsagawa ng karagdagang paggalaw ang sinumang gustong makakuha ng +1: i-multiply ang unang linya sa –1 (palitan ang sign nito).

(2) Ang unang linya na pinarami ng 5 ay idinagdag sa pangalawang linya Ang unang linya na pinarami ng 3 ay idinagdag sa ikatlong linya.

(3) Ang unang linya ay pinarami ng –1, sa prinsipyo, ito ay para sa kagandahan. Ang tanda ng ikatlong linya ay binago din at inilipat ito sa pangalawang lugar, upang sa pangalawang "hakbang" ay mayroon kaming kinakailangang yunit.

(4) Ang pangalawang linya ay idinagdag sa ikatlong linya, na pinarami ng 2.

(5) Ang ikatlong linya ay hinati ng 3.

Ang isang masamang palatandaan na nagpapahiwatig ng isang error sa mga kalkulasyon (mas bihira, isang typo) ay isang "masamang" ilalim na linya. Iyon ay, kung nakakuha tayo ng tulad ng , sa ibaba, at, nang naaayon, , pagkatapos ay may mataas na antas ng posibilidad na masasabi nating isang error ang ginawa sa panahon ng elementarya na pagbabago.

Sinisingil namin ang kabaligtaran, sa disenyo ng mga halimbawa ay madalas nilang hindi muling isinusulat ang system mismo, ngunit ang mga equation ay "direktang kinuha mula sa ibinigay na matrix." Ang reverse stroke, ipinaaalala ko sa iyo, ay gumagana mula sa ibaba hanggang sa itaas. Oo, narito ang isang regalo:

Sagot: .

Halimbawa 4

Lutasin ang isang sistema ng mga linear equation gamit ang Gauss method

Ito ay isang halimbawa para sa iyo upang malutas sa iyong sarili, ito ay medyo mas kumplikado. Okay lang kung may nalilito. Buong solusyon at sample na disenyo sa pagtatapos ng aralin. Maaaring iba ang iyong solusyon sa aking solusyon.

Sa huling bahagi ay titingnan natin ang ilang mga tampok ng Gaussian algorithm. Ang unang tampok ay kung minsan ang ilang mga variable ay nawawala mula sa mga equation ng system, halimbawa: Paano isulat nang tama ang pinalawig na matrix ng system? Napag-usapan ko na ang puntong ito sa klase. Ang panuntunan ni Cramer. Paraan ng matrix. Sa pinalawak na matrix ng system, inilalagay namin ang mga zero sa halip ng mga nawawalang variable: Sa pamamagitan ng paraan, ito ay isang medyo madaling halimbawa, dahil ang unang hanay ay mayroon nang isang zero, at mayroong mas kaunting mga pagbabagong elementarya na gagawin.

Ang pangalawang tampok ay ito. Sa lahat ng mga halimbawang isinasaalang-alang, inilagay namin ang alinman sa -1 o +1 sa "mga hakbang". Maaari bang mayroong iba pang mga numero doon? Sa ilang mga kaso kaya nila. Isaalang-alang ang sistema: .

Dito sa itaas na kaliwang "hakbang" mayroon kaming dalawa. Ngunit napansin namin ang katotohanan na ang lahat ng mga numero sa unang hanay ay nahahati sa 2 nang walang natitira - at ang isa ay dalawa at anim. At ang dalawa sa kaliwang itaas ay babagay sa atin! Sa unang hakbang, kailangan mong gawin ang mga sumusunod na pagbabagong-anyo: idagdag ang unang linya na pinarami ng –1 sa pangalawang linya; sa ikatlong linya idagdag ang unang linya na pinarami ng –3. Sa ganitong paraan makukuha natin ang mga kinakailangang zero sa unang column.

O isa pang karaniwang halimbawa: . Narito ang tatlo sa pangalawang "hakbang" ay nababagay din sa atin, dahil ang 12 (ang lugar kung saan kailangan nating makakuha ng zero) ay nahahati ng 3 nang walang natitira. Kinakailangan na isagawa ang sumusunod na pagbabagong-anyo: idagdag ang pangalawang linya sa ikatlong linya, na pinarami ng -4, bilang isang resulta kung saan ang zero na kailangan natin ay makukuha.

Ang pamamaraan ni Gauss ay pangkalahatan, ngunit mayroong isang kakaiba. Maaari mong kumpiyansa na matutunan upang malutas ang mga system gamit ang iba pang mga pamamaraan (paraan ng Cramer, pamamaraan ng matrix) nang literal sa unang pagkakataon - mayroon silang isang napakahigpit na algorithm. Ngunit upang makaramdam ng tiwala sa pamamaraang Gaussian, dapat mong "ipasok ang iyong mga ngipin" at lutasin ang hindi bababa sa 5-10 sampung sistema. Samakatuwid, sa una ay maaaring magkaroon ng pagkalito at mga pagkakamali sa mga kalkulasyon, at walang kakaiba o trahedya tungkol dito.

Maulan na panahon ng taglagas sa labas ng bintana.... Samakatuwid, para sa lahat na gustong malutas nang mag-isa ang isang mas kumplikadong halimbawa:

Halimbawa 5

Lutasin ang isang sistema ng 4 na linear equation na may apat na hindi alam gamit ang Gauss method.

Ang ganitong gawain ay hindi bihira sa pagsasanay. Sa tingin ko kahit na ang isang teapot na lubusang nag-aral sa page na ito ay mauunawaan ang algorithm para sa paglutas ng naturang sistema nang intuitively. Talaga lahat ay pareho - mayroon lamang higit pang mga aksyon.

Ang mga kaso kapag ang sistema ay walang mga solusyon (hindi naaayon) o may walang katapusang maraming solusyon ay tinatalakay sa aralin Mga hindi tugmang system at system na may karaniwang solusyon. Doon maaari mong ayusin ang isinasaalang-alang na algorithm ng pamamaraang Gaussian.

Nais kong tagumpay ka!

Mga solusyon at sagot:

Halimbawa 2: Solusyon : Isulat natin ang pinahabang matrix ng system at, gamit ang elementarya na pagbabago, dalhin ito sa isang stepwise form.
Ginawa ang mga pagbabagong elementarya: (1) Ang unang linya ay idinagdag sa pangalawang linya, na pinarami ng –2. Ang unang linya ay idinagdag sa ikatlong linya, na pinarami ng -1. Pansin! Dito maaari kang matukso na ibawas ang una mula sa pangatlong linya. I-fold mo lang! (2) Ang tanda ng pangalawang linya ay binago (multiplied sa –1). Ang pangalawa at pangatlong linya ay napalitan na. tala , na sa mga "hakbang" kami ay nasiyahan hindi lamang sa isa, kundi pati na rin sa -1, na mas maginhawa. (3) Ang pangalawang linya ay idinagdag sa ikatlong linya, na pinarami ng 5. (4) Ang tanda ng ikalawang linya ay binago (multiplied sa –1). Ang ikatlong linya ay hinati ng 14.

Reverse:

Sagot : .

Halimbawa 4: Solusyon : Isulat natin ang pinahabang matrix ng system at, gamit ang mga elementarya na pagbabago, dalhin ito sa sunud-sunod na anyo:

Ginawa ang mga conversion: (1) Ang pangalawang linya ay idinagdag sa unang linya. Kaya, ang nais na yunit ay nakaayos sa itaas na kaliwang "hakbang". (2) Ang unang linya na pinarami ng 7 ay idinagdag sa pangalawang linya Ang unang linya na pinarami ng 6 ay idinagdag sa ikatlong linya.

Sa pangalawang "hakbang" ang lahat ay lumalala , ang mga "kandidato" para dito ay ang mga numero 17 at 23, at kailangan namin ng alinman sa isa o -1. Ang mga pagbabagong-anyo (3) at (4) ay maglalayong makuha ang ninanais na yunit (3) Ang pangalawang linya ay idinagdag sa ikatlong linya, na pinarami ng –1. (4) Ang ikatlong linya ay idinagdag sa pangalawang linya, na pinarami ng –3. Natanggap na ang kinakailangang item sa ikalawang hakbang . (5) Ang pangalawang linya ay idinagdag sa ikatlong linya, na pinarami ng 6. (6) Ang pangalawang linya ay pinarami ng –1, ang ikatlong linya ay hinati sa -83.

Reverse:

Sagot :

Halimbawa 5: Solusyon : Isulat natin ang matrix ng system at, gamit ang mga elementarya na pagbabago, dalhin ito sa sunud-sunod na anyo:

Ginawa ang mga conversion: (1) Napalitan na ang una at pangalawang linya. (2) Ang unang linya ay idinagdag sa pangalawang linya, na pinarami ng –2. Ang unang linya ay idinagdag sa ikatlong linya, na pinarami ng –2. Ang unang linya ay idinagdag sa ikaapat na linya, na pinarami ng –3. (3) Ang pangalawang linya ay idinagdag sa ikatlong linya, pinarami ng 4. Ang pangalawang linya ay idinagdag sa ikaapat na linya, na pinarami ng –1. (4) Ang tanda ng ikalawang linya ay binago. Ang ikaapat na linya ay hinati ng 3 at inilagay sa lugar ng ikatlong linya. (5) Ang ikatlong linya ay idinagdag sa ikaapat na linya, na pinarami ng –5.

Reverse:

Sagot :

Ngayon ay tinitingnan natin ang pamamaraang Gauss para sa paglutas ng mga sistema ng mga linear algebraic equation. Maaari mong basahin ang tungkol sa kung ano ang mga system na ito sa nakaraang artikulo na nakatuon sa paglutas ng parehong mga SLAE gamit ang paraan ng Cramer. Ang pamamaraang Gauss ay hindi nangangailangan ng anumang tiyak na kaalaman, kailangan mo lamang ng pagkaasikaso at pagkakapare-pareho. Sa kabila ng katotohanan na, mula sa isang matematikal na punto ng view, ang pagsasanay sa paaralan ay sapat upang mailapat ito, ang mga mag-aaral ay kadalasang nahihirapang makabisado ang pamamaraang ito. Sa artikulong ito susubukan naming bawasan ang mga ito sa wala!

Pamamaraan ng Gauss

M Gaussian na pamamaraan– ang pinaka-unibersal na paraan para sa paglutas ng mga SLAE (maliban sa napakalaking sistema). Hindi tulad ng napag-usapan kanina, ito ay angkop hindi lamang para sa mga system na may isang solong solusyon, kundi pati na rin para sa mga system na may walang katapusang bilang ng mga solusyon. Mayroong tatlong posibleng pagpipilian dito.

  1. Ang sistema ay may natatanging solusyon (ang determinant ng pangunahing matrix ng system ay hindi katumbas ng zero);
  2. Ang sistema ay may walang katapusang bilang ng mga solusyon;
  3. Walang mga solusyon, ang sistema ay hindi tugma.

Kaya't mayroon tayong sistema (hayaan itong magkaroon ng isang solusyon) at lulutasin natin ito gamit ang Gaussian method. Paano ito gumagana?

Ang pamamaraang Gauss ay binubuo ng dalawang yugto - pasulong at kabaligtaran.

Direktang stroke ng pamamaraang Gaussian

Una, isulat natin ang pinalawig na matrix ng system. Upang gawin ito, magdagdag ng column ng mga libreng miyembro sa pangunahing matrix.

Ang buong diwa ng pamamaraang Gauss ay dalhin ang matrix na ito sa isang stepped (o, gaya ng sinasabi nila, triangular) na anyo sa pamamagitan ng elementarya na pagbabago. Sa form na ito, dapat mayroong mga zero lamang sa ilalim (o sa itaas) ng pangunahing dayagonal ng matrix.

Ang magagawa mo:

  1. Maaari mong muling ayusin ang mga hilera ng matrix;
  2. Kung mayroong pantay (o proporsyonal) na mga hilera sa isang matrix, maaari mong alisin ang lahat maliban sa isa sa mga ito;
  3. Maaari mong i-multiply o hatiin ang isang string sa anumang numero (maliban sa zero);
  4. Ang mga null row ay tinanggal;
  5. Maaari kang magdagdag ng string na pinarami ng numero maliban sa zero sa isang string.

Baliktarin ang pamamaraang Gaussian

Pagkatapos naming baguhin ang sistema sa ganitong paraan, hindi alam ang isa Xn nagiging kilala, at mahahanap mo ang lahat ng natitirang hindi alam sa reverse order, na pinapalitan ang mga kilalang x sa mga equation ng system, hanggang sa una.

Kapag ang Internet ay laging nasa kamay, maaari mong lutasin ang isang sistema ng mga equation gamit ang Gaussian method online. Kailangan mo lang ipasok ang mga coefficient sa online calculator. Ngunit dapat mong aminin, ito ay mas kaaya-aya upang mapagtanto na ang halimbawa ay nalutas hindi sa pamamagitan ng isang computer program, ngunit sa pamamagitan ng iyong sariling utak.

Isang halimbawa ng paglutas ng isang sistema ng mga equation gamit ang Gauss method

At ngayon - isang halimbawa upang ang lahat ay maging malinaw at nauunawaan. Hayaang magbigay ng isang sistema ng mga linear na equation, at kailangan mong lutasin ito gamit ang Gauss method:

Una naming isulat ang pinalawig na matrix:

Ngayon gawin natin ang mga pagbabago. Naaalala namin na kailangan naming makamit ang isang tatsulok na anyo ng matrix. I-multiply natin ang 1st line sa (3). I-multiply ang 2nd line sa (-1). Idagdag ang 2nd line sa 1st at makuha ang:

Pagkatapos ay i-multiply ang ika-3 linya sa (-1). Idagdag natin ang ika-3 linya sa ika-2:

I-multiply natin ang 1st line sa (6). I-multiply natin ang 2nd line sa (13). Idagdag natin ang 2nd line sa 1st:

Voila - ang sistema ay dinadala sa naaangkop na anyo. Ito ay nananatiling hanapin ang mga hindi alam:

Ang sistema sa halimbawang ito ay may natatanging solusyon. Isasaalang-alang namin ang paglutas ng mga system na may walang katapusang bilang ng mga solusyon sa isang hiwalay na artikulo. Marahil sa una ay hindi mo malalaman kung saan magsisimulang baguhin ang matrix, ngunit pagkatapos ng naaangkop na pagsasanay ay makukuha mo ito at mabibiyak ang mga SLAE gamit ang Gaussian na pamamaraan tulad ng mga mani. At kung bigla kang makatagpo ng isang SLAE na lumalabas na masyadong matigas para ma-crack, makipag-ugnayan sa aming mga may-akda! magagawa mo sa pamamagitan ng pag-iwan ng kahilingan sa Tanggapan ng Korespondensiya. Sama-sama nating lutasin ang anumang problema!


Isara