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
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: 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. Lahendus: 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: Ü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! 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∙(b– a)∙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 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 stabiilsuseNä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:
.
b) Integratsiooni segmendi jagamine 5 osaks.
a) Tingimuse järgi tuleb integratsioonisegment jagada 3 osaks, st.
Arvutame iga partitsioonisegmendi pikkuse: .
, see tähendab, et iga vahelõigu pikkus on 0,6.
Kui 3 partitsioonisegmendi jaoks, siis 5 segmendi jaoks. Kui võtta veel suurem segment => see on veelgi täpsem.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