Vähimruutude meetod Excelis. Regressioonanalüüs. Kus kasutatakse vähimruutude meetodit?Ruumijoone vähimruutude meetodit

Vähimruutude meetod on selle tõttu üks levinumaid ja enim arenenud lineaarsete parameetrite hindamise meetodite lihtsus ja tõhusus. Samal ajal tuleks selle kasutamisel olla ettevaatlik, kuna selle abil konstrueeritud mudelid ei pruugi rahuldada mitmeid oma parameetrite kvaliteedinõudeid ja seetõttu ei kajasta need protsesside arendamise mustreid "hästi". piisav.

Vaatleme üksikasjalikumalt lineaarse ökonomeetrilise mudeli parameetrite hindamise protseduuri vähimruutude meetodil. Sellist mudelit saab üldiselt esitada võrrandiga (1.2):

y t = a 0 + a 1 x 1 t +...+ a n x nt + ε t.

Algandmed parameetrite a 0, a 1,..., a n hindamisel on sõltuva muutuja väärtuste vektor y= (y 1 , y 2 , ... , y T)" ja sõltumatute muutujate väärtuste maatriks

milles esimene veerg, mis koosneb ühtedest, vastab mudeli koefitsiendile.

Vähimruutude meetod sai oma nime põhimõttel, et selle alusel saadud parameetrite hinnangud peavad vastama: mudeli vea ruutude summa peaks olema minimaalne.

Näited ülesannete lahendamisest vähimruutude meetodil

Näide 2.1. Kaubandusettevõttel on 12 kauplusest koosnev võrgustik, mille tegevuse kohta on teavet tabelis. 2.1.

Ettevõtte juhtkond soovib teada, kuidas sõltub aastane summa kaupluse kaubanduspinnast.

Tabel 2.1

Kaupluse number

Aastakäive, miljon rubla.

Kaubanduspind, tuh m2

Vähimruutude lahendus. Tähistagem kaupluse aastakäivet, miljonit rubla; — kaupluse kaubanduspind, tuh m2.

Joonis 2.1. Näite 2.1 hajuvusdiagramm

Muutujate ja muutujate vahelise funktsionaalse seose vormi määramiseks koostame hajusdiagrammi (joonis 2.1).

Hajumisdiagrammi põhjal saame järeldada, et aastane käive on kaubanduspinnast positiivselt sõltuv (st y kasvab koos suurenemisega). Kõige sobivam funktsionaalse ühenduse vorm on lineaarne.

Teave edasiste arvutuste jaoks on esitatud tabelis. 2.2. Vähimruutude meetodit kasutades hindame lineaarse ühefaktorilise ökonomeetrilise mudeli parameetreid

Tabel 2.2

Seega

Seega, kui kaubanduspind suureneb 1 tuhande m2 võrra, kui muud asjaolud jäävad samaks, kasvab keskmine aastakäive 67,8871 miljoni rubla võrra.

Näide 2.2. Ettevõtte juhtkond märkas, et aastakäive ei sõltu ainult kaupluse müügipinnast (vt näide 2.1), vaid ka keskmisest külastajate arvust. Vastav teave on esitatud tabelis. 2.3.

Tabel 2.3

Lahendus. Tähistagem poe keskmist külastajate arvu päevas, tuhat inimest.

Muutujate ja muutujate vahelise funktsionaalse seose vormi määramiseks koostame hajusdiagrammi (joonis 2.2).

Hajumisdiagrammi põhjal võime järeldada, et aastakäive on positiivselt sõltuv keskmisest külastajate arvust päevas (st y kasvab kasvades ). Funktsionaalse sõltuvuse vorm on lineaarne.

Riis. 2.2. Näite 2.2 hajuvusdiagramm

Tabel 2.4

Üldjuhul on vaja määrata kahefaktorilise ökonomeetrilise mudeli parameetrid

y t = a 0 + a 1 x 1 t + a 2 x 2 t + ε t

Edasiste arvutuste jaoks vajalik teave on esitatud tabelis. 2.4.

Hindame lineaarse kahefaktorilise ökonomeetrilise mudeli parameetreid vähimruutude meetodil.

Seega

Koefitsiendi =61,6583 hinnang näitab, et muude asjaolude muutumisel kasvab kaubanduspindade 1 tuhande m 2 võrra aastane käive keskmiselt 61,6583 miljoni rubla võrra.

Näide.

Eksperimentaalsed andmed muutujate väärtuste kohta X Ja juures on toodud tabelis.

Nende joondamise tulemusena saadakse funktsioon

Kasutades vähima ruudu meetod, lähendage neid andmeid lineaarse sõltuvusega y=kirves+b(leidke parameetrid A Ja b). Uurige, kumb kahest reast paremini (vähimruutude meetodi mõttes) joondab katseandmeid. Tee joonistus.

Vähimruutude meetodi (LSM) olemus.

Ülesandeks on leida lineaarsed sõltuvuskoefitsiendid, mille juures kahe muutuja funktsioon A Ja b võtab väikseima väärtuse. See tähendab, et antud A Ja b katseandmete ruuduhälbete summa leitud sirgest on väikseim. See on kogu vähimruutude meetodi mõte.

Seega taandub näite lahendamine kahe muutuja funktsiooni ekstreemumi leidmisele.

Valemite tuletamine koefitsientide leidmiseks.

Koostatakse ja lahendatakse kahest võrrandist koosnev süsteem kahe tundmatuga. Funktsiooni osatuletiste leidmine muutujate suhtes A Ja b, võrdsustame need tuletised nulliga.

Lahendame saadud võrrandisüsteemi mis tahes meetodiga (näiteks asendusmeetodil või ) ja saada valemid koefitsientide leidmiseks vähimruutude meetodil (LSM).

Antud A Ja b funktsiooni võtab väikseima väärtuse. Selle fakti tõestus on esitatud.

See on kogu vähimruutude meetod. Valem parameetri leidmiseks a sisaldab summasid , , , ja parameetrit n- katseandmete hulk. Soovitame nende summade väärtused eraldi välja arvutada. Koefitsient b leitud pärast arvutamist a.

On aeg meenutada algset näidet.

Lahendus.

Meie näites n = 5. Nõutavate koefitsientide valemites sisalduvate summade arvutamise mugavuse huvides täidame tabeli.

Tabeli neljanda rea ​​väärtused saadakse, korrutades iga numbri 2. rea väärtused 3. rea väärtustega i.

Tabeli viienda rea ​​väärtused saadakse iga numbri 2. rea väärtuste ruudustamisel i.

Tabeli viimases veerus olevad väärtused on ridade väärtuste summad.

Koefitsientide leidmiseks kasutame vähimruutude meetodi valemeid A Ja b. Asendame neisse vastavad väärtused tabeli viimasest veerust:

Seega y = 0,165x+2,184- soovitud ligikaudne sirgjoon.

Jääb välja selgitada, milline ridadest y = 0,165x+2,184 või lähendab paremini algandmeid, st teeb hinnangu vähimruutude meetodil.

Vähimruutude meetodi vea hindamine.

Selleks peate arvutama nendest ridadest saadud algandmete ruuduhälbete summa Ja , vastab väiksem väärtus joonele, mis lähendab paremini algandmeid vähimruutude meetodi tähenduses.

Alates , siis otse y = 0,165x+2,184 lähendab paremini algandmeid.

Vähimruutude (LS) meetodi graafiline illustratsioon.

Graafikutelt on kõik selgelt näha. Punane joon on leitud sirgjoon y = 0,165x+2,184, sinine joon on , roosad täpid on algandmed.

Miks seda vaja on, milleks kõik need ligikaudsed hinnangud?

Mina isiklikult kasutan seda andmete silumise, interpoleerimise ja ekstrapoleerimise probleemide lahendamiseks (algses näites võidakse neil paluda leida vaadeldava väärtuse väärtus y juures x=3 või millal x=6 kasutades vähimruutude meetodit). Kuid me räägime sellest hiljem saidi teises jaotises.

Tõestus.

Nii et kui leitakse A Ja b funktsioon võtab väikseima väärtuse, siis on vajalik, et selles punktis funktsiooni teist järku diferentsiaali ruutkuju maatriks oli positiivne kindel. Näitame seda.

Regressioonifunktsiooni tüübi valimine, s.o. vaadeldava mudeli tüüp Y-st X-st (või X-st Y-st), näiteks lineaarne mudel y x =a+bx, on vaja kindlaks määrata mudeli koefitsientide konkreetsed väärtused.

A ja b erinevate väärtuste jaoks on võimalik konstrueerida lõpmatu arv sõltuvusi kujul y x = a + bx, st koordinaattasandil on lõpmatu arv sirgeid, kuid me vajame sõltuvust, mis oleks kõige parem vastab vaadeldud väärtustele. Seega taandub ülesanne parimate koefitsientide valimisele.

Otsime lineaarset funktsiooni a+bx ainult teatud arvu olemasolevate vaatluste põhjal. Vaadeldud väärtustega kõige paremini sobiva funktsiooni leidmiseks kasutame vähimruutude meetodit.

Tähistage: Y i - võrrandiga Y i =a+bx i arvutatud väärtus. y i - mõõdetud väärtus, ε i =y i -Y i - võrrandi abil mõõdetud ja arvutatud väärtuste erinevus, ε i =y i -a-bx i.

Vähimruutude meetod nõuab, et ε i, mõõdetud y i ja võrrandist arvutatud väärtuste Y i erinevus, oleks minimaalne. Seetõttu leiame koefitsiendid a ja b nii, et vaadeldud väärtuste ruutude kõrvalekallete summa sirge regressioonijoone väärtustest on väikseim:

Uurides seda argumentide a ja ekstreemumi funktsiooni tuletisi kasutades, saame tõestada, et funktsioon võtab minimaalse väärtuse, kui koefitsiendid a ja b on süsteemi lahendid:

(2)

Kui jagame normaalvõrrandi mõlemad pooled n-ga, saame:

Arvestades seda (3)

Saame , siit, asendades esimeses võrrandis a väärtuse, saame:

Sel juhul b nimetatakse regressioonikordajaks; a nimetatakse regressioonivõrrandi vabaks liikmeks ja see arvutatakse järgmise valemiga:

Saadud sirge on teoreetilise regressioonijoone hinnang. Meil on:

Niisiis, on lineaarse regressiooni võrrand.

Regressioon võib olla otsene (b>0) ja vastupidine (b Näide 1. X ja Y väärtuste mõõtmise tulemused on toodud tabelis:

x i -2 0 1 2 4
y i 0.5 1 1.5 2 3

Eeldades, et X ja Y vahel on lineaarne seos y=a+bx, määrake koefitsiendid a ja b vähimruutude meetodil.

Lahendus. Siin n=5
x i =-2+0+1+2+4=5;
x i 2 =4+0+1+4+16=25
x i y i =-2 0,5+0 1+1 1,5+2 2+4 3=16,5
y i =0,5+1+1,5+2+3=8

ja tavasüsteemil (2) on vorm

Selle süsteemi lahendades saame: b=0,425, a=1,175. Seega y=1,175+0,425x.

Näide 2. Valim koosneb 10 majandusnäitajate (X) ja (Y) vaatlusest.

x i 180 172 173 169 175 170 179 170 167 174
y i 186 180 176 171 182 166 182 172 169 177

Peate leidma Y-le X-le regressioonivõrrandi näidisvõrrandi. Koostage Y-le X-le regressioonivalik.

Lahendus. 1. Sorteerime andmed vastavalt väärtustele x i ja y i . Saame uue tabeli:

x i 167 169 170 170 172 173 174 175 179 180
y i 169 171 166 172 180 176 177 182 182 186

Arvutuste lihtsustamiseks koostame arvutustabeli, kuhu sisestame vajalikud arvväärtused.

x i y i x i 2 x i y i
167 169 27889 28223
169 171 28561 28899
170 166 28900 28220
170 172 28900 29240
172 180 29584 30960
173 176 29929 30448
174 177 30276 30798
175 182 30625 31850
179 182 32041 32578
180 186 32400 33480
∑x i =1729 ∑y i =1761 ∑x i 2 299105 ∑x i y i =304696
x = 172,9 y = 176,1 x i 2 = 29910,5 xy = 30469.6

Valemi (4) järgi arvutame regressioonikordaja

ja vastavalt valemile (5)

Seega on valimi regressioonivõrrand y=-59,34+1,3804x.
Joonistame punktid (x i ; y i) koordinaattasandile ja märgime regressioonisirge.


Joonis 4

Joonis 4 näitab, kuidas vaadeldud väärtused paiknevad regressioonijoone suhtes. Y i kõrvalekallete arvuliseks hindamiseks Y i-st, kus y i on täheldatud ja Y i on regressiooniga määratud väärtused, koostame tabeli:

x i y i Y i Y i -y i
167 169 168.055 -0.945
169 171 170.778 -0.222
170 166 172.140 6.140
170 172 172.140 0.140
172 180 174.863 -5.137
173 176 176.225 0.225
174 177 177.587 0.587
175 182 178.949 -3.051
179 182 184.395 2.395
180 186 185.757 -0.243

Yi väärtused arvutatakse regressioonivõrrandi järgi.

Mõnede täheldatud väärtuste märgatav kõrvalekalle regressioonijoonest on seletatav vaatluste väikese arvuga. Uurides Y lineaarse sõltuvuse astet X-st, võetakse arvesse vaatluste arvu. Sõltuvuse tugevuse määrab korrelatsioonikordaja väärtus.

Olen matemaatik ja programmeerija. Suurim hüpe, mille ma oma karjääri jooksul tegin, oli see, kui õppisin ütlema: "Ma ei saa millestki aru!" Nüüd ma ei häbene öelda teaduse valgustajale, et ta peab mulle loengut, et ma ei saa aru, mida tema, valgusti, mulle räägib. Ja see on väga raske. Jah, oma teadmatuse tunnistamine on raske ja piinlik. Kellele meeldib tunnistada, et ta ei tea millegi põhitõdesid? Ametist tulenevalt pean käima suurel hulgal ettekannetel ja loengutel, kus, tunnistan, tahan valdavas enamuses magada, sest ma ei saa millestki aru. Aga ma ei saa aru, sest teaduse praeguse olukorra suur probleem seisneb matemaatikas. See eeldab, et kõik kuulajad tunnevad absoluutselt kõiki matemaatika valdkondi (mis on absurdne). Tunnistada, et te ei tea, mis on tuletis (mis see on, räägime sellest veidi hiljem), on häbiväärne.

Aga ma olen õppinud ütlema, et ma ei tea, mis on korrutamine. Jah, ma ei tea, mis on alamgebra üle Lie algebra. Jah, ma ei tea, miks on ruutvõrrandid elus vaja. Muide, kui olete kindel, et teate, siis on meil millestki rääkida! Matemaatika on trikkide jada. Matemaatikud püüavad avalikkust segadusse ajada ja hirmutada; kus pole segadust, mainet ega autoriteeti. Jah, prestiižne on rääkida võimalikult abstraktses keeles, mis on täielik jama.

Kas sa tead, mis on tuletis? Tõenäoliselt räägite mulle erinevuse suhte piirist. Peterburi Riikliku Ülikooli matemaatika ja mehaanika esimesel kursusel rääkis mulle Viktor Petrovitš Khavin kindlaks määratud tuletis kui funktsiooni Taylori seeria esimese liikme koefitsient punktis (see oli eraldi võimlemine Taylori seeria määramiseks ilma tuletisi). Naersin selle määratluse üle kaua, kuni lõpuks sain aru, millega tegu. Tuletis pole midagi muud kui lihtne mõõt selle kohta, kui sarnane on eristatav funktsioon funktsiooniga y=x, y=x^2, y=x^3.

Nüüd on mul au pidada loenguid üliõpilastele, kes kardan matemaatika. Kui kardad matemaatikat, siis oleme samal teel. Niipea, kui proovite mõnda teksti lugeda ja teile tundub, et see on liiga keeruline, teadke, et see on halvasti kirjutatud. Ma väidan, et pole ühtegi matemaatika valdkonda, mida ei saaks arutada "näpuga" ilma täpsust kaotamata.

Lähituleviku ülesanne: andsin oma õpilastele ülesandeks mõista, mis on lineaarne ruutregulaator. Ärge olge häbelik, kulutage kolm minutit oma elust ja järgige linki. Kui te millestki aru ei saa, siis oleme samal teel. Ka mina (professionaalne matemaatik-programmeerija) ei saanud millestki aru. Ja ma kinnitan teile, et saate selle "näpuga" välja mõelda. Hetkel ma ei tea, mis see on, aga ma kinnitan teile, et saame selle välja mõelda.

Niisiis, esimene loeng, mille ma oma õpilastele pean pärast seda, kui nad õudusega minu juurde jooksevad ja ütlevad, et lineaar-ruutregulaator on kohutav asi, mida te kunagi oma elus ei valda. vähimruutude meetodid. Kas saate lahendada lineaarvõrrandeid? Kui sa seda teksti loed, siis suure tõenäosusega mitte.

Seega, kui on antud kaks punkti (x0, y0), (x1, y1), näiteks (1,1) ja (3,2), on ülesandeks leida neid kahte punkti läbiva sirge võrrand:

illustratsioon

Sellel real peaks olema järgmine võrrand:

Siin on alfa ja beeta meile tundmatud, kuid selle joone kaks punkti on teada:

Selle võrrandi saame kirjutada maatriksi kujul:

Siin tuleks teha lüüriline kõrvalepõik: mis on maatriks? Maatriks pole midagi muud kui kahemõõtmeline massiiv. See on andmete salvestamise viis, millele ei tohiks lisada täiendavaid tähendusi. See, kuidas teatud maatriksit täpselt tõlgendada, sõltub meist endist. Perioodiliselt tõlgendan seda lineaarse kaardistusena, perioodiliselt ruutvormina ja mõnikord lihtsalt vektorite kogumina. Seda kõike selgitatakse kontekstis.

Asendame betoonmaatriksid nende sümboolse esitusega:

Siis (alfa, beeta) saab hõlpsasti leida:

Täpsemalt meie varasemate andmete kohta:

Mis annab punkte (1,1) ja (3,2) läbiva sirge järgmise võrrandi:

Olgu, siin on kõik selge. Leiame läbiva sirge võrrandi kolm punktid: (x0,y0), (x1,y1) ja (x2,y2):

Oi-oi-oi, aga kahe tundmatu jaoks on meil kolm võrrandit! Tavaline matemaatik ütleb, et lahendust pole. Mida programmeerija ütleb? Ja kõigepealt kirjutab ta eelmise võrrandisüsteemi ümber järgmisel kujul:

Meie puhul on vektorid i, j, b kolmemõõtmelised, mistõttu (üldjuhul) sellele süsteemile lahendust ei ole. Iga vektor (alfa\*i + beeta\*j) asub vektorite (i, j) poolt katval tasapinnal. Kui b ei kuulu sellele tasapinnale, siis pole lahendust (võrrandis ei saa võrdsust saavutada). Mida teha? Otsime kompromissi. Tähistagem e (alfa, beeta) täpselt, kui kaugele me pole võrdsust saavutanud:

Ja me püüame seda viga minimeerida:

Miks ruut?

Me ei otsi lihtsalt normi miinimumi, vaid normi ruudu miinimumi. Miks? Miinimumpunkt ise langeb kokku ja ruut annab sujuva funktsiooni (argumentide ruutfunktsioon (alfa, beeta)), samas kui lihtsalt pikkus annab koonusekujulise funktsiooni, mis ei ole miinimumpunktis eristatav. Brr. Ruut on mugavam.

Ilmselt on viga minimeeritud, kui vektor e vektorite poolt hõlmatud tasapinnaga risti i Ja j.

Illustratsioon

Teisisõnu: otsime sirgjoont, mille kõigi punktide ja selle sirge kauguste ruudu pikkuste summa on minimaalne:

VÄRSKENDUS: Mul on siin probleem, kaugust sirgest tuleks mõõta vertikaalselt, mitte ortogonaalprojektsiooniga. Kommentaatoril on õigus.

Illustratsioon

Täiesti erinevate sõnadega (hoolsalt, halvasti vormistatud, kuid see peaks olema selge): võtame kõik võimalikud jooned kõigi punktipaaride vahel ja otsime kõigi vahelt keskmist joont:

Illustratsioon

Teine seletus on lihtne: kinnitame vedru kõigi andmepunktide (siin on kolm) ja otsitava sirgjoone vahele ning tasakaaluseisundi sirgjoon on täpselt see, mida otsime.

Minimaalne ruutvorm

Niisiis, arvestades seda vektorit b ja maatriksi veeruvektoritega hõlmatud tasapind A(antud juhul (x0,x1,x2) ja (1,1,1)), otsime vektorit e minimaalse ruudu pikkusega. Ilmselgelt on miinimum saavutatav ainult vektori puhul e, risti maatriksi veeruvektoritega kaetud tasapinnaga A:

Teisisõnu otsime vektorit x=(alfa, beeta), et:

Tuletan teile meelde, et see vektor x=(alfa, beeta) on ruutfunktsiooni ||e(alfa, beeta)||^2 miinimum:

Siinkohal oleks kasulik meeles pidada, et maatriksit saab tõlgendada ka ruutvormina, näiteks identiteedimaatriksit ((1,0),(0,1)) saab tõlgendada funktsioonina x^2 + y^ 2:

ruutvorm

Kogu see võimlemine on tuntud lineaarse regressiooni nime all.

Laplace'i võrrand Dirichlet' piirtingimusega

Nüüd kõige lihtsam tegelik ülesanne: on olemas teatud kolmnurkne pind, seda on vaja siluda. Näiteks laadime minu näo mudeli:

Algne kohustus on saadaval. Väliste sõltuvuste minimeerimiseks võtsin oma tarkvara renderdaja koodi, juba Habré peal. Lineaarse süsteemi lahendamiseks kasutan OpenNL-i, see on suurepärane lahendaja, mida on aga väga raske installida: pead kopeerima kaks faili (.h+.c) oma projektiga kausta. Kogu silumine toimub järgmise koodiga:

For (int d=0; d<3; d++) { nlNewContext(); nlSolverParameteri(NL_NB_VARIABLES, verts.size()); nlSolverParameteri(NL_LEAST_SQUARES, NL_TRUE); nlBegin(NL_SYSTEM); nlBegin(NL_MATRIX); for (int i=0; i<(int)verts.size(); i++) { nlBegin(NL_ROW); nlCoefficient(i, 1); nlRightHandSide(verts[i][d]); nlEnd(NL_ROW); } for (unsigned int i=0; i&face = näod[i]; jaoks (int j=0; j<3; j++) { nlBegin(NL_ROW); nlCoefficient(face[ j ], 1); nlCoefficient(face[(j+1)%3], -1); nlEnd(NL_ROW); } } nlEnd(NL_MATRIX); nlEnd(NL_SYSTEM); nlSolve(); for (int i=0; i<(int)verts.size(); i++) { verts[i][d] = nlGetVariable(i); } }

X, Y ja Z koordinaadid on eraldatavad, silun eraldi. See tähendab, et lahendan kolm lineaarvõrrandisüsteemi, millest igaühel on minu mudeli tippude arvuga võrdne muutujate arv. Maatriksi A esimesel n real on ainult üks 1 rea kohta ja vektori b esimesel n real on mudeli algsed koordinaadid. See tähendab, et seon tipu uue asukoha ja tipu vana asendi vahele vedru - uued ei tohiks vanadest liiga kaugele liikuda.

Kõigil järgnevatel maatriksi A ridadel (faces.size()*3 = kõigi võrgusilma kolmnurkade servade arv) on üks esinemine 1 ja üks esinemine -1, kusjuures vektoril b on nullkomponente. See tähendab, et panen meie kolmnurkse võrgu igale servale vedru: kõik servad püüavad saada sama tipu algus- ja lõpp-punktiga.

Veel kord: kõik tipud on muutujad ja nad ei saa oma algsest asukohast kaugele liikuda, kuid samal ajal püüavad nad muutuda üksteisega sarnaseks.

Siin on tulemus:

Kõik oleks hästi, mudel on tõesti silutud, kuid see on oma esialgsest servast eemaldunud. Muudame veidi koodi:

For (int i=0; i<(int)verts.size(); i++) { float scale = border[i] ? 1000: 1; nlBegin(NL_ROW); nlCoefficient(i, scale); nlRightHandSide(scale*verts[i][d]); nlEnd(NL_ROW); }

Meie maatriksis A serval olevate tippude jaoks ei lisa ma rida kategooriast v_i = verts[i][d], vaid 1000*v_i = 1000*verts[i][d]. Mida see muudab? Ja see muudab meie vea ruutlikku vormi. Nüüd maksab üks kõrvalekalle ülemisest servast mitte ühe ühiku, nagu varem, vaid 1000*1000 ühikut. See tähendab, et äärmiste tippude külge riputasime tugevama vedru, lahendus eelistab teisi tugevamalt venitada. Siin on tulemus:

Kahekordistame tippude vahelist vedru tugevust:
nlKoefitsient(nägu[ j ], 2); nlKoefitsient(nägu[(j+1)%3], -2);

On loogiline, et pind on muutunud siledamaks:

Ja nüüd isegi sada korda tugevam:

Mis see on? Kujutage ette, et oleme kastnud traatrõnga seebivette. Selle tulemusena püüab saadud seebikile olla võimalikult väike kumerus, puudutades piiri - meie traatrõngast. Täpselt selle saimegi, kui kinnitasime piirde ja palusime seest sileda pinna. Õnnitleme, lahendasime just Laplace'i võrrandi Dirichlet' piirtingimustega. Kõlab lahedalt? Kuid tegelikult peate lihtsalt lahendama ühe lineaarvõrrandisüsteemi.

Poissoni võrrand

Meenutagem veel üht lahedat nime.

Oletame, et mul on selline pilt:

Tundub kõigile hea, aga mulle see tool ei meeldi.

Ma lõikan pildi pooleks:



Ja ma valin oma kätega tooli:

Seejärel tõmban kõik, mis maskis on valge, pildi vasakusse serva ja samal ajal kogu pildi ulatuses ütlen, et kahe naaberpiksli vahe peaks olema võrdne kahe parema naaberpiksli vahega. pilt:

For (int i=0; i

Siin on tulemus:

Näide päris elust

Ma ei teinud meelega lakutud tulemusi, sest... Tahtsin lihtsalt näidata, kuidas täpselt saab rakendada vähimruutude meetodeid, see on koolituskood. Toon nüüd näite elust:

Mul on mitu fotot sellistest kanganäidistest:

Minu ülesandeks on teha sellise kvaliteediga fotodest sujuvaid tekstuure. Alustuseks otsin (automaatselt) korduvat mustrit:

Kui lõikan selle nelinurga otse välja, siis moonutuse tõttu servad kokku ei puutu, siin on näide neli korda korratud mustrist:

Peidetud tekst

Siin on fragment, kus õmblus on selgelt nähtav:

Seetõttu ma ei lõika mööda sirgjoont, siin on lõikejoon:

Peidetud tekst

Ja siin on muster, mida korratakse neli korda:

Peidetud tekst

Ja killuke sellest, et oleks selgem:

See on juba parem, lõige ei läinud sirgjooneliselt, vältides igasuguseid lokke, kuid originaalfoto ebaühtlase valgustuse tõttu on õmblus siiski nähtav. Siin tuleb appi Poissoni võrrandi vähimruutude meetod. Siin on lõpptulemus pärast valgustuse tasandamist:

Tekstuur tuli täiesti sujuv ja seda kõike automaatselt väga keskpärase kvaliteediga fotolt. Ärge kartke matemaatikat, otsige lihtsaid seletusi ja olete inseneriteaduses õnnelik.

Ülesandeks on leida lineaarsed sõltuvuskoefitsiendid, mille juures kahe muutuja funktsioon A Ja b võtab väikseima väärtuse. See tähendab, et antud A Ja b katseandmete ruuduhälbete summa leitud sirgest on väikseim. See on kogu vähimruutude meetodi mõte.

Seega taandub näite lahendamine kahe muutuja funktsiooni ekstreemumi leidmisele.

Valemite tuletamine koefitsientide leidmiseks. Koostatakse ja lahendatakse kahest võrrandist koosnev süsteem kahe tundmatuga. Funktsiooni osatuletiste leidmine muutujate järgi A Ja b, võrdsustame need tuletised nulliga.

Lahendame saadud võrrandisüsteemi mistahes meetodiga (näiteks asendusmeetod või Crameri meetod) ja saame valemid koefitsientide leidmiseks vähimruutude meetodil (LSM).

Antud A Ja b funktsiooni võtab väikseima väärtuse.

See on kogu vähimruutude meetod. Valem parameetri leidmiseks a sisaldab summasid , , , ja parameetrit n- katseandmete hulk. Soovitame nende summade väärtused eraldi välja arvutada. Koefitsient b leitud pärast arvutamist a.

Selliste polünoomide peamine rakendusvaldkond on eksperimentaalsete andmete töötlemine (empiiriliste valemite koostamine). Fakt on see, et katse käigus saadud funktsiooniväärtustest konstrueeritud interpolatsioonipolünoomi mõjutab tugevalt “katsemüra”, pealegi ei saa interpoleerimisel interpolatsioonisõlmi korrata, s.t. Samadel tingimustel korduvate katsete tulemusi ei saa kasutada. Ruutkeskmine polünoom tasandab müra ja võimaldab kasutada mitme katse tulemusi.

Numbriline integreerimine ja diferentseerimine. Näide.

Numbriline integreerimine– kindla integraali väärtuse arvutamine (tavaliselt ligikaudne). Numbrilise integreerimise all mõistetakse arvuliste meetodite kogumit teatud integraali väärtuse leidmiseks.

Numbriline eristamine– meetodite kogum diskreetselt määratletud funktsiooni tuletise väärtuse arvutamiseks.

Integratsioon

Probleemi sõnastamine.Ülesande matemaatiline sõnastus: vaja on leida kindla integraali väärtus

kus a, b on lõplikud, f(x) on pidev punktil [a, b].

Praktiliste ülesannete lahendamisel juhtub sageli, et integraali on ebamugav või võimatu analüütiliselt võtta: seda ei pruugita elementaarfunktsioonides väljendada, integrandi saab anda tabeli kujul jne. Sellistel juhtudel kasutatakse arvulise integreerimise meetodeid. kasutatud. Numbrilise integreerimise meetodid kasutavad kõvera trapetsi pindala asendamist lihtsamate geomeetriliste kujundite pindalade lõpliku summaga, mida saab täpselt arvutada. Selles mõttes räägitakse kvadratuurivalemite kasutamisest.

Enamik meetodeid kasutab integraali esitamist lõpliku summana (kvadratuurivalem):

Kvadratuurivalemid põhinevad ideel asendada integreerimissegmendi integrandi graafik lihtsama kujuga funktsioonidega, mida saab hõlpsasti analüütiliselt integreerida ja seega hõlpsasti arvutada. Kvadratuurivalemite konstrueerimise ülesanne on kõige lihtsamalt teostatav polünoomsete matemaatiliste mudelite puhul.

Eristada saab kolme meetodite rühma:

1. Meetod lõimimislõigu jagamisega võrdseteks intervallideks. Intervallideks jaotamine toimub eelnevalt, tavaliselt valitakse intervallid võrdseteks (et hõlbustada funktsiooni arvutamist intervalli otstes). Arvutage pindalad ja summeerige need (ristkülikute meetodid, trapets, Simpson).

2. Meetodid integreerimissegmendi jaotamiseks spetsiaalsete punktide abil (Gaussi meetod).

3. Integraalide arvutamine juhuslike arvude abil (Monte Carlo meetod).

Ristküliku meetod. Olgu, et funktsioon (joonis) tuleb lõigule numbriliselt integreerida. Jagame lõigu N võrdseks intervalliks. Iga N kõvera trapetsi pindala saab asendada ristküliku pindalaga.

Kõigi ristkülikute laius on sama ja võrdne:

Ristkülikute kõrguse valimiseks saate valida vasakpoolsel äärisel oleva funktsiooni väärtuse. Sel juhul on esimese ristküliku kõrgus f(a), teise - f(x 1),..., N-f(N-1).

Kui võtame ristküliku kõrguse valimiseks paremal äärel oleva funktsiooni väärtuse, siis sel juhul on esimese ristküliku kõrgus f(x 1), teise - f(x 2), ... , N - f(xN).

Nagu näete, annab üks valemitest sellisel juhul integraalile lähenduse koos liiaga ja teine ​​puudujäägiga. On veel üks võimalus - kasutada lähendamiseks funktsiooni väärtust integreerimissegmendi keskel:

Ristkülikumeetodi absoluutvea hinnang (keskmine)

Vasak- ja parempoolse ristküliku meetodi absoluutvea hindamine.

Näide. Arvutage kogu intervall ja jagage intervall neljaks osaks

Lahendus. Selle integraali analüütiline arvutus annab I=arctg(1)–arctg(0)=0,7853981634. Meie puhul:

1)h = 1; xo = 0; x1 = 1;

2) h = 0,25 (1/4); x0 = 0; x1 = 0,25; x2 = 0,5; x3 = 0,75; x4 = 1;

Arvutame vasakpoolse ristküliku meetodi abil:

Arvutame õige ristküliku meetodi abil:

Arvutame keskmise ristküliku meetodi abil:

Trapetsi meetod. Esimese astme polünoomi (läbi kahe punkti tõmmatud sirge) kasutamine tulemuste interpoleerimiseks trapetsikujulises valemis. Integratsioonisegmendi otsad võetakse interpolatsioonisõlmedena. Seega asendatakse kõverjooneline trapets tavalise trapetsiga, mille pindala võib leida poole aluste summa ja kõrguse korrutisena

Kõigi sõlmede N integreerimissegmendi korral, välja arvatud segmendi äärmised punktid, kaasatakse funktsiooni väärtus kogusummasse kaks korda (kuna külgnevatel trapetsidel on üks ühine külg)

Trapetsikujulise valemi saab, võttes poole ristkülikute valemite summast piki segmendi paremat ja vasakut serva:

Lahuse stabiilsuse kontrollimine. Reeglina on iga intervalli pikkus lühem, s.t. mida suurem on nende intervallide arv, seda väiksem on erinevus integraali ligikaudsete ja täpsete väärtuste vahel. See kehtib enamiku funktsioonide kohta. Trapetsimeetodil on integraali ϭ arvutamise viga ligikaudu võrdeline integreerimisastme ruuduga (ϭ ~ h 2) Seega on teatud funktsiooni integraali arvutamiseks a, b võrra vaja jaga lõik N 0 intervallideks ja leia trapetsi pindalade summa. Seejärel peate suurendama intervallide arvu N 1, arvutama uuesti trapetsi summa ja võrdlema saadud väärtust eelmise tulemusega. Seda tuleks korrata kuni (N i), kuni saavutatakse tulemuse määratud täpsus (konvergentsikriteerium).

Ristküliku ja trapetsi meetodi puhul suureneb intervallide arv tavaliselt igal iteratsiooniastmel 2 korda (N i +1 = 2N i).

Lähenemiskriteerium:

Trapetsikujulise reegli peamine eelis on selle lihtsus. Kui aga integraali arvutamisel on vaja suurt täpsust, võib see meetod nõuda liiga palju iteratsioone.

Trapetsikujulise meetodi absoluutne viga on hinnanguliselt
.

Näide. Arvutage trapetsikujulise valemi abil ligikaudu kindel integraal.

a) Integratsiooni segmendi jagamine 3 osaks.
b) Integratsiooni segmendi jagamine 5 osaks.

Lahendus:
a) Tingimuse järgi tuleb integratsioonisegment jagada 3 osaks, st.
Arvutame iga partitsioonisegmendi pikkuse: .

Seega vähendatakse trapetsi üldvalemit meeldiva suuruseni:

Lõpuks:

Tuletan meelde, et saadud väärtus on pindala ligikaudne väärtus.

b) Jagame integreerimislõigu 5 võrdseks osaks, st. Segmentide arvu suurendamisega suurendame arvutuste täpsust.

Kui , siis on trapetsikujuline valem järgmine:

Leiame partitsiooni etapi:
, see tähendab, et iga vahelõigu pikkus on 0,6.

Ülesande lõpetamisel on mugav vormistada kõik arvutused arvutustabeli abil:

Esimesele reale kirjutame "loendur"

Tulemusena:

Noh, täpsustus on tõesti olemas ja tõsine!
Kui 3 partitsioonisegmendi jaoks, siis 5 segmendi jaoks. Kui võtta veel suurem segment => see on veelgi täpsem.

Simpsoni valem. Trapetsivalem annab tulemuse, mis sõltub tugevalt sammu suurusest h, mis mõjutab kindla integraali arvutamise täpsust, eriti juhtudel, kui funktsioon on mittemonotoonne. Arvutuste täpsuse suurenemist võib eeldada, kui funktsiooni f(x) graafiku kõverjoonelisi fragmente asendavate sirgjoonte segmentide asemel kasutame näiteks graafiku kolme naaberpunkti kaudu antud paraboolide fragmente. . Sarnane geomeetriline tõlgendus on Simpsoni kindla integraali arvutamise meetodi aluseks. Kogu integreerimisintervall a,b on jagatud N segmendiks, lõigu pikkus võrdub samuti h=(b-a)/N.

Simpsoni valem näeb välja selline:

ülejäänud tähtaeg

Segmentide pikkuse kasvades valemi täpsus väheneb, mistõttu täpsuse suurendamiseks kasutatakse Simpsoni liitvalemit. Kogu integreerimisintervall jagatakse paarisarvuks identseteks lõikudeks N, lõigu pikkus on samuti võrdne h=(b-a)/N. Simpsoni liitvalem on:

Valemis tähistavad sulgudes olevad avaldised integrandi väärtuste summasid vastavalt paaritu ja paaris sisesegmendi lõpus.

Simpsoni valemi ülejäänud osa on võrdeline astme neljanda astmega:

Näide: Simpsoni reegli abil arvutage integraal. (Täpne lahendus – 0,2)

Gaussi meetod

Gaussi kvadratuurivalem. Teist tüüpi kvadratuurvalemite põhiprintsiip on näha jooniselt 1.12: punktid on vaja paigutada nii X 0 ja X 1 segmendi sees [ a;b], nii et "kolmnurkade" kogupindala on võrdne "segmendi" pindalaga. Gaussi valemi kasutamisel on algsegment [ a;b] vähendatakse muutujat muutes intervallile [-1;1] X peal

0.5∙(ba)∙t+ 0.5∙(b + a).

Siis , Kus .

See asendamine on võimalik, kui a Ja b on lõplikud ja funktsioon f(x) on pidev [ a;b]. Gaussi valem at n punktid x i, i=0,1,..,n-1 segmendi sees [ a;b]:

, (1.27)

Kus t i Ja A i erinevatele n on toodud teatmeteostes. Näiteks millal n=2 A 0 =A 1 = 1; juures n=3: t 0 =t 2 "0,775, t 1 =0, A 0 =A 2 "0,555, A 1 "0,889.

Gaussi kvadratuurivalem

saadud kaalufunktsiooniga, mis on võrdne ühega p(x)= 1 ja sõlmed x i, mis on Legendre polünoomide juured

Koefitsiendid A i kergesti arvutatav valemitega

i=0,1,2,...n.

Sõlmede ja koefitsientide väärtused n=2,3,4,5 korral on toodud tabelis

Telli Sõlmed Koefitsiendid
n=2 x 1=0 x 0 =-x 2=0.7745966692 A 1=8/9 A 0 = A 2=5/9
n=3 x 2 =-x 1=0.3399810436 x 3 =-x0=0.8611363116 A 1 = A 2=0.6521451549 A 0 = A 3=0.6521451549
n = 4 x 2 = 0 x 3 = -x 1 = 0.5384693101 x 4 =-x 0 =0.9061798459 A 0 =0.568888899 A 3 =A 1 =0.4786286705 A 0 =A 4 =0.2869268851
n=5 x 5 = -x 0 =0.9324695142 x 4 = -x 1 =0.6612093865 x 3 = -x 2 =0.2386191861 A 5 =A 0 =0.1713244924 A 4 =A 1 =0.3607615730 A 3 =A 2 =0.4679139346

Näide. Arvutage väärtus Gaussi valemi abil n=2:

Täpne väärtus: .

Integraali arvutamise algoritm Gaussi valemi abil ei hõlma mikrosegmentide arvu kahekordistamist, vaid ordinaatide arvu suurendamist 1 võrra ja integraali saadud väärtuste võrdlemist. Gaussi valemi eeliseks on selle kõrge täpsus suhteliselt väikese ordinaatide arvuga. Puudused: ebamugav käsitsi arvutamiseks; väärtused on vaja salvestada arvuti mällu t i, A i erinevatele n.

Gaussi kvadratuurivalemi viga lõigul on Ülejäänud liikme valem on ja koefitsient α N väheneb kasvuga kiiresti N. Siin

Gaussi valemid tagavad suure täpsuse isegi väikese arvu sõlmede korral (4 kuni 10).Sel juhul on praktilistes arvutustes sõlmede arv mitmesajast kuni mitme tuhandeni. Pange tähele ka seda, et Gaussi kvadratuuride kaalud on alati positiivsed, mis tagab summade arvutamise algoritmi stabiilsuse

Üles