Esența metodei cele mai mici pătrate este în găsirea parametrilor unui model de tendință care descrie cel mai bine tendința de dezvoltare a oricărui fenomen aleator în timp sau spațiu (o tendință este o linie care caracterizează tendința acestei dezvoltări). Sarcina metodei celor mai mici pătrate (LSM) se rezumă nu doar la găsirea unui model de tendință, ci la găsirea celui mai bun sau optim model. Acest model va fi optim dacă suma abaterilor pătrate dintre valorile reale observate și valorile de tendință calculate corespunzătoare este minimă (cea mai mică):

Unde - deviație standardîntre valoarea reală observată

și valoarea de tendință calculată corespunzătoare,

Valoarea reală (observată) a fenomenului studiat,

Valoarea calculată a modelului de tendință,

Numărul de observații ale fenomenului studiat.

MNC este folosit destul de rar pe cont propriu. De regulă, cel mai adesea este folosit doar ca tehnică tehnică necesară în studiile de corelare. Trebuie amintit că baza de informații a unui MNC poate fi doar de încredere serii statistice, iar numărul de observații nu trebuie să fie mai mic de 4, altfel procedurile de netezire OLS pot pierde bunul simț.

Setul de instrumente MNC se rezumă la următoarele proceduri:

Prima procedură. Se dovedește dacă există vreo tendință de a schimba atributul rezultat atunci când factorul-argument selectat se schimbă sau, cu alte cuvinte, există o legătură între „ la " Și " X ».

A doua procedură. Se stabilește care linie (traiectorie) poate descrie sau caracteriza cel mai bine această tendință.

A treia procedură.

Exemplu. Să presupunem că avem informații despre randamentul mediu de floarea-soarelui pentru ferma studiată (Tabelul 9.1).

Tabelul 9.1

Numărul de observație

Productivitate, c/ha

Întrucât nivelul tehnologiei în producția de floarea soarelui în țara noastră a rămas practic neschimbat în ultimii 10 ani, înseamnă că, aparent, fluctuațiile de producție în perioada analizată au fost foarte dependente de fluctuațiile condițiilor meteo și climatice. Este asta cu adevărat adevărat?

Prima procedură OLS. Este testată ipoteza privind existența unei tendințe de modificare a randamentului de floarea-soarelui în funcție de modificările condițiilor meteo și climatice pe parcursul celor 10 ani analizați.

ÎN în acest exemplu in spate " y " este recomandabil să se ia randamentul de floarea soarelui, iar pentru " X » – numărul anului observat în perioada analizată. Testarea ipotezei despre existența oricărei relații între " X " Și " y » se poate face în două moduri: manual și folosind programe de calculator. Desigur, dacă este disponibil echipamente informatice această problemă se rezolvă singur. Dar pentru a înțelege mai bine instrumentele MNC, este indicat să testați ipoteza despre existența unei relații între „ X " Și " y » manual, când sunt la îndemână doar un pix și un calculator obișnuit. În astfel de cazuri, ipoteza despre existența unei tendințe este cel mai bine verificată vizual prin locația imaginii grafice a seriei de dinamică analizată - câmpul de corelație:

Câmpul de corelație din exemplul nostru este situat în jurul unei linii care crește încet. Acest lucru în sine indică existența unei anumite tendințe de modificare a recoltelor de floarea soarelui. Este imposibil să vorbim despre prezența oricărei tendințe doar atunci când câmpul de corelare arată ca un cerc, un cerc, un nor strict vertical sau strict orizontal sau este format din puncte împrăștiate haotic. În toate celelalte cazuri, ipoteza despre existența unei relații între „ X " Și " y „, și continuă cercetările.

A doua procedură OLS. Se stabilește care linie (traiectorie) poate descrie sau caracteriza cel mai bine tendința de modificări ale producției de floarea soarelui în perioada analizată.

Dacă aveți tehnologie informatică, selectarea tendinței optime are loc automat. În procesarea „manuală”, selectarea funcției optime se realizează, de regulă, vizual - prin locația câmpului de corelare. Adică, pe baza tipului de grafic, este selectată ecuația dreptei care se potrivește cel mai bine tendinței empirice (traiectoria reală).

După cum se știe, în natură există o mare varietate de dependențe funcționale, deci este extrem de dificil să analizezi vizual chiar și o mică parte din ele. Din fericire, în practica economică reală, majoritatea relațiilor pot fi descrise destul de precis fie printr-o parabolă, fie printr-o hiperbolă, fie printr-o linie dreaptă. În acest sens, cu opțiunea „manuală” de selectare a celei mai bune funcții, vă puteți limita doar la aceste trei modele.

Hiperbolă:

Parabola de ordinul doi: :

Este ușor de observat că, în exemplul nostru, tendința de modificare a producției de floarea-soarelui pe parcursul celor 10 ani analizați este cel mai bine caracterizată printr-o linie dreaptă, astfel încât ecuația de regresie va fi ecuația unei linii drepte.

A treia procedură. Parametrii sunt calculati ecuația de regresie care caracterizează o linie dată sau, cu alte cuvinte, se determină o formulă analitică care descrie cel mai bun model tendinţă.

Găsirea valorilor parametrilor ecuației de regresie, în cazul nostru parametrii și , este nucleul MOL. Acest proces se reduce la rezolvarea unui sistem de ecuații normale.

(9.2)

Acest sistem de ecuații poate fi rezolvat destul de ușor prin metoda Gauss. Să ne amintim că, ca urmare a soluției, în exemplul nostru, se găsesc valorile parametrilor și. Astfel, ecuația de regresie găsită va avea următoarea vedere:

Exemplu.

Date experimentale despre valorile variabilelor XȘi la sunt date în tabel.

Ca urmare a alinierii lor, se obține funcția

Folosind metoda celor mai mici pătrate, aproximați aceste date printr-o dependență liniară y=ax+b(găsiți parametri AȘi b). Aflați care dintre cele două linii (în sensul metodei celor mai mici pătrate) aliniază mai bine datele experimentale. Faceți un desen.

Esența metodei celor mai mici pătrate (LSM).

Sarcina este de a găsi coeficienții de dependență liniară la care funcția a două variabile AȘi b acceptă cea mai mică valoare. Adică dat AȘi b suma abaterilor pătrate a datelor experimentale de la linia dreaptă găsită va fi cea mai mică. Acesta este punctul întreg al metodei celor mai mici pătrate.

Astfel, rezolvarea exemplului se reduce la găsirea extremului unei funcții a două variabile.

Derivarea formulelor pentru găsirea coeficienților.

Se compilează și se rezolvă un sistem de două ecuații cu două necunoscute. Găsirea derivatelor parțiale ale unei funcții în raport cu variabile AȘi b, echivalăm aceste derivate cu zero.

Rezolvăm sistemul de ecuații rezultat folosind orice metodă (de exemplu prin metoda substitutiei sau ) și obțineți formule pentru găsirea coeficienților folosind metoda celor mai mici pătrate (LSM).

Dat AȘi b funcţie ia cea mai mică valoare. Dovada acestui fapt este dată.

Aceasta este întreaga metodă a celor mai mici pătrate. Formula pentru găsirea parametrului A conține sumele , , și parametrul n- cantitatea de date experimentale. Vă recomandăm să calculați separat valorile acestor sume. Coeficient b găsit după calcul A.

Este timpul să ne amintim de exemplul original.

Soluţie.

În exemplul nostru n=5. Completam tabelul pentru confortul calculării sumelor care sunt incluse în formulele coeficienților necesari.

Valorile din al patrulea rând al tabelului se obțin prin înmulțirea valorilor celui de-al 2-lea rând cu valorile celui de-al 3-lea rând pentru fiecare număr i.

Valorile din al cincilea rând al tabelului se obțin prin pătratul valorilor din al doilea rând pentru fiecare număr i.

Valorile din ultima coloană a tabelului sunt sumele valorilor de pe rânduri.

Folosim formulele metodei celor mai mici pătrate pentru a găsi coeficienții AȘi b. Înlocuim valorile corespunzătoare din ultima coloană a tabelului în ele:

Prin urmare, y = 0,165x+2,184- linia dreaptă de aproximare dorită.

Rămâne să aflăm care dintre rânduri y = 0,165x+2,184 sau aproximează mai bine datele originale, adică face o estimare folosind metoda celor mai mici pătrate.

Estimarea erorilor metodei celor mai mici pătrate.

Pentru a face acest lucru, trebuie să calculați suma abaterilor pătrate ale datelor originale din aceste linii Și , o valoare mai mică corespunde unei linii care aproximează mai bine datele originale în sensul metodei celor mai mici pătrate.

De la , apoi drept y = 0,165x+2,184 aproximează mai bine datele originale.

Ilustrare grafică a metodei celor mai mici pătrate (LS).

Totul este clar vizibil pe grafice. Linia roșie este linia dreaptă găsită y = 0,165x+2,184, linia albastră este , punctele roz sunt datele originale.

De ce este nevoie de acest lucru, de ce toate aceste aproximări?

Eu personal îl folosesc pentru a rezolva probleme de netezire a datelor, probleme de interpolare și extrapolare (în exemplul original li se poate cere să găsească valoarea unei valori observate y la x=3 sau când x=6 folosind metoda celor mai mici pătrate). Dar vom vorbi mai multe despre asta mai târziu într-o altă secțiune a site-ului.

Dovada.

Așa că atunci când este găsit AȘi b funcția ia cea mai mică valoare, este necesar ca în acest moment matricea formei pătratice a diferenţialului de ordinul doi pentru funcţie a fost pozitiv definit. Să o arătăm.

Metoda celor mai mici pătrate utilizat pentru estimarea parametrilor ecuației de regresie.
Numărul de linii (date sursa)

Una dintre metodele de studiu a relațiilor stocastice dintre caracteristici este analiza de regresie.
Analiza regresiei este derivarea unei ecuații de regresie, cu ajutorul căreia se găsește valoarea medie a unei variabile aleatoare (atribut rezultat) dacă se cunoaște valoarea altei (sau a altor) variabile (atribute-factor). Acesta include următorii pași:

  1. selectarea formei de conectare (tipul ecuației de regresie analitică);
  2. estimarea parametrilor ecuației;
  3. evaluarea calității ecuației de regresie analitică.
Cel mai adesea, o formă liniară este folosită pentru a descrie relația statistică a caracteristicilor. Accentul pus pe relațiile liniare se explică prin interpretarea economică clară a parametrilor săi, variația limitată a variabilelor și faptul că, în majoritatea cazurilor, formele neliniare de relații sunt convertite (prin logaritm sau înlocuirea variabilelor) într-o formă liniară pentru a efectua calcule. .
În cazul unei relații liniare pe perechi, ecuația de regresie va lua forma: y i =a+b·x i +u i . Opțiuni ecuația dată a și b sunt estimate din date observatie statistica x și y. Rezultatul unei astfel de evaluări este ecuația: , unde , sunt estimări ale parametrilor a și b , este valoarea atributului (variabilă) rezultat obținut din ecuația de regresie (valoarea calculată).

Cel mai adesea folosit pentru estimarea parametrilor metoda celor mai mici pătrate (LSM).
Metoda celor mai mici pătrate oferă cele mai bune estimări (consistente, eficiente și nepărtinitoare) ale parametrilor ecuației de regresie. Dar numai dacă sunt îndeplinite anumite ipoteze privind termenul aleator (u) și variabila independentă (x) (vezi ipotezele MCO).

Problema estimării parametrilor unei ecuații de perechi liniare folosind metoda celor mai mici pătrate este după cum urmează: pentru a obține astfel de estimări ale parametrilor , , la care suma abaterilor pătrate a valorilor reale ale caracteristicii rezultante - y i din valorile calculate - este minimă.
Oficial criteriul OLS se poate scrie asa: .

Metode de clasificare a celor mai mici pătrate

  1. Metoda celor mai mici pătrate.
  2. Metoda maximei probabilități (pentru un model de regresie liniară clasică normală, se postulează normalitatea reziduurilor de regresie).
  3. Metoda MOL a celor mai mici pătrate generalizate este utilizată în cazul autocorelării erorilor și în cazul heteroscedasticității.
  4. Metoda celor mai mici pătrate ponderate ( caz special MCO cu reziduuri heteroscedastice).

Să ilustrăm ideea metoda clasică a celor mai mici pătrate grafic. Pentru a face acest lucru, vom construi un grafic de împrăștiere pe baza datelor observaționale (x i, y i, i=1;n) într-un sistem de coordonate dreptunghiular (un astfel de diagramă de împrăștiere se numește câmp de corelație). Să încercăm să selectăm o linie dreaptă care este cea mai apropiată de punctele câmpului de corelație. Conform metodei celor mai mici pătrate, linia este selectată astfel încât suma pătratelor distanțelor verticale dintre punctele câmpului de corelație și această linie să fie minimă.

Notație matematică pentru această problemă: .
Valorile lui y i și x i =1...n ne sunt cunoscute; acestea sunt date observaționale. În funcția S ele reprezintă constante. Variabilele din această funcție sunt estimările necesare ale parametrilor - , . Pentru a găsi minimul unei funcții de două variabile, este necesar să se calculeze derivatele parțiale ale acestei funcții pentru fiecare dintre parametri și să le echivaleze cu zero, i.e. .
Ca rezultat, obținem un sistem de 2 normale ecuatii lineare:
Rezolvând acest sistem, găsim estimările parametrilor necesari:

Corectitudinea calculului parametrilor ecuației de regresie poate fi verificată prin compararea sumelor (poate exista unele discrepanțe din cauza rotunjirii calculelor).
Pentru a calcula estimările parametrilor, puteți construi Tabelul 1.
Semnul coeficientului de regresie b indică direcția relației (dacă b >0, relația este directă, dacă b<0, то связь обратная). Величина b показывает на сколько единиц изменится в среднем признак-результат -y при изменении признака-фактора - х на 1 единицу своего измерения.
În mod formal, valoarea parametrului a este valoarea medie a lui y cu x egal cu zero. Dacă factorul-atribut nu are și nu poate avea o valoare zero, atunci interpretarea de mai sus a parametrului a nu are sens.

Evaluarea gradului de apropiere a relației dintre caracteristici efectuată folosind coeficientul de corelație liniară pereche - r x,y. Poate fi calculat folosind formula: . În plus, coeficientul de corelație liniară a perechii poate fi determinat prin coeficientul de regresie b: .
Intervalul valorilor acceptabile ale coeficientului de corelație al perechii liniare este de la –1 la +1. Semnul coeficientului de corelație indică direcția relației. Dacă r x, y >0, atunci conexiunea este directă; dacă r x, y<0, то связь обратная.
Dacă acest coeficient este aproape de unitate în mărime, atunci relația dintre caracteristici poate fi interpretată ca una liniară destul de apropiată. Dacă modulul său este egal cu un ê r x , y ê =1, atunci relația dintre caracteristici este liniară funcțională. Dacă caracteristicile x și y sunt liniar independente, atunci r x,y este aproape de 0.
Pentru a calcula r x,y, puteți utiliza și Tabelul 1.

tabelul 1

N observațiix iy eux i ∙y i
1 x 1y 1x 1 y 1
2 x 2y 2x 2 y 2
...
nx ny nx n y n
Coloana Sumă∑x∑y∑xy
Valoarea medie
Pentru a evalua calitatea ecuației de regresie rezultată, calculați coeficientul teoretic de determinare - R 2 yx:

,
unde d 2 este varianța lui y explicată prin ecuația de regresie;
e 2 - varianța reziduală (neexplicată prin ecuația de regresie) a lui y;
s 2 y - variația totală (totală) a lui y.
Coeficientul de determinare caracterizează proporția de variație (dispersie) a atributului rezultat y explicată prin regresie (și, în consecință, factorul x) în variația totală (dispersia) y. Coeficientul de determinare R 2 yx ia valori de la 0 la 1. În consecință, valoarea 1-R 2 yx caracterizează proporția de varianță y cauzată de influența altor factori neluați în considerare în erorile de model și de specificație.
Cu regresie liniară pereche, R 2 yx =r 2 yx.
  • Tutorial

Introducere

Sunt matematician și programator. Cel mai mare salt pe care l-am făcut în cariera mea a fost când am învățat să spun: "Eu nu înțeleg nimic!" Acum nu mi-e rușine să-i spun luminatorului științei că el îmi ține o prelegere, că nu înțeleg ce îmi spune el, luminatorul. Și este foarte greu. Da, a-ți recunoaște ignoranța este dificil și jenant. Cui îi place să recunoască că nu știe elementele de bază ale ceva? Din cauza profesiei mele, trebuie să asist la un număr mare de prezentări și prelegeri, unde, recunosc, în marea majoritate a cazurilor îmi doresc să dorm pentru că nu înțeleg nimic. Dar nu înțeleg pentru că problema uriașă a situației actuale în știință constă în matematică. Se presupune că toți ascultătorii sunt familiarizați cu absolut toate domeniile matematicii (ceea ce este absurd). A recunoaște că nu știi ce este un derivat (vom vorbi despre ce este acesta puțin mai târziu) este rușinos.

Dar am învățat să spun că nu știu ce este înmulțirea. Da, nu știu ce este o subalgebră peste o algebră Lie. Da, nu știu de ce sunt necesare ecuații patratice în viață. Apropo, dacă ești sigur că știi, atunci avem despre ce să vorbim! Matematica este o serie de trucuri. Matematicienii încearcă să încurce și să intimideze publicul; unde nu există confuzie, nu există reputație, nici autoritate. Da, este prestigios să vorbești într-o limbă cât mai abstractă, ceea ce este o totală prostie.

Știți ce este un derivat? Cel mai probabil îmi veți spune despre limita raportului de diferență. În primul an de matematică și mecanică la Universitatea de Stat din Sankt Petersburg, mi-a spus Viktor Petrovici Khavin determinat derivată ca coeficient al primului termen al seriei Taylor al funcției la un punct (aceasta a fost o gimnastică separată pentru a determina seria Taylor fără derivate). Am râs de această definiție mult timp până am înțeles în sfârșit despre ce este vorba. Derivata nu este altceva decât o simplă măsură a cât de asemănătoare este funcția pe care o diferențiem cu funcția y=x, y=x^2, y=x^3.

Acum am onoarea de a ține prelegeri studenților care frică matematică. Dacă ți-e frică de matematică, suntem pe aceeași cale. De îndată ce încerci să citești ceva text și ți se pare că este prea complicat, atunci știi că este prost scris. Afirm că nu există o singură zonă a matematicii care să nu poată fi discutată „pe degete” fără a pierde acuratețea.

Temă pentru viitorul apropiat: le-am încredințat studenților să înțeleagă ce este un regulator liniar pătratic. Nu fi timid, petrece trei minute din viața ta și urmărește linkul. Dacă nu înțelegi nimic, atunci suntem pe aceeași cale. Nici eu (matematician-programator profesionist) nu am inteles nimic. Și vă asigur că vă puteți da seama de asta „pe degetele tale”. Momentan nu stiu ce este, dar va asigur ca vom reusi sa ne dam seama.

Așadar, prima prelegere pe care o voi ține studenților mei după ce vor veni în fugă la mine îngroziți și vor spune că un regulator liniar-quadratic este un lucru groaznic pe care nu îl vei stăpâni niciodată în viața ta este metodele celor mai mici pătrate. Puteți rezolva ecuații liniare? Dacă citiți acest text, atunci cel mai probabil nu.

Deci, având în vedere două puncte (x0, y0), (x1, y1), de exemplu, (1,1) și (3,2), sarcina este de a găsi ecuația dreptei care trece prin aceste două puncte:

ilustrare

Această linie ar trebui să aibă o ecuație ca următoarea:

Aici alfa și beta ne sunt necunoscute, dar două puncte ale acestei linii sunt cunoscute:

Putem scrie această ecuație sub formă de matrice:

Aici ar trebui să facem o digresiune lirică: ce este o matrice? O matrice nu este nimic mai mult decât o matrice bidimensională. Acesta este un mod de stocare a datelor; nu ar trebui să i se atașeze alte semnificații. Depinde de noi exact cum să interpretăm o anumită matrice. Periodic o voi interpreta ca o mapare liniară, periodic ca o formă pătratică și uneori pur și simplu ca un set de vectori. Toate acestea vor fi clarificate în context.

Să înlocuim matricele concrete cu reprezentarea lor simbolică:

Apoi (alfa, beta) pot fi găsite cu ușurință:

Mai precis pentru datele noastre anterioare:

Ceea ce duce la următoarea ecuație a dreptei care trece prin punctele (1,1) și (3,2):

Bine, totul este clar aici. Să găsim ecuația dreptei care trece prin Trei puncte: (x0,y0), (x1,y1) și (x2,y2):

Oh-oh-oh, dar avem trei ecuații pentru două necunoscute! Un matematician standard va spune că nu există o soluție. Ce va spune programatorul? Și mai întâi va rescrie sistemul anterior de ecuații în următoarea formă:

În cazul nostru, vectorii i, j, b sunt tridimensionali, prin urmare (în cazul general) nu există o soluție pentru acest sistem. Orice vector (alfa\*i + beta\*j) se află în planul acoperit de vectorii (i, j). Dacă b nu aparține acestui plan, atunci nu există soluție (egalitatea nu poate fi obținută în ecuație). Ce să fac? Să căutăm un compromis. Să notăm prin e(alfa, beta) exact cât de departe nu am atins egalitatea:

Și vom încerca să minimizăm această eroare:

De ce pătrat?

Căutăm nu doar minimul normei, ci și minimul pătratului normei. De ce? Punctul minim în sine coincide, iar pătratul dă o funcție netedă (o funcție pătratică a argumentelor (alfa, beta)), în timp ce pur și simplu lungimea dă o funcție în formă de con, nediferențiabilă la punctul minim. Brr. Un pătrat este mai convenabil.

Evident, eroarea este minimizată atunci când vectorul e ortogonală cu planul acoperit de vectori iȘi j.

Ilustrare

Cu alte cuvinte: căutăm o linie dreaptă astfel încât suma pătratelor lungimii distanțelor de la toate punctele la această dreaptă să fie minimă:

UPDATE: Am o problemă aici, distanța până la linia dreaptă ar trebui măsurată vertical, și nu prin proiecție ortogonală. Acest comentator are dreptate.

Ilustrare

Cu cuvinte complet diferite (atenție, prost formalizate, dar ar trebui să fie clar): luăm toate liniile posibile între toate perechile de puncte și căutăm linia medie între toate:

Ilustrare

O altă explicație este simplă: atașăm un arc între toate punctele de date (aici avem trei) și linia dreaptă pe care o căutăm, iar linia dreaptă a stării de echilibru este exact ceea ce căutăm.

Forma pătratică minimă

Deci, având în vedere acest vector bși un plan acoperit de vectorii coloană ai matricei A(în acest caz (x0,x1,x2) și (1,1,1)), căutăm vectorul e cu un pătrat minim de lungime. Evident, minimul este realizabil doar pentru vector e, ortogonal la planul acoperit de vectorii coloană ai matricei A:

Cu alte cuvinte, căutăm un vector x=(alfa, beta) astfel încât:

Permiteți-mi să vă reamintesc că acest vector x=(alfa, beta) este minimul funcției pătratice ||e(alfa, beta)||^2:

Aici ar fi util să ne amintim că matricea poate fi interpretată și ca o formă pătratică, de exemplu, matricea de identitate ((1,0),(0,1)) poate fi interpretată ca o funcție x^2 + y^ 2:

formă pătratică

Toată această gimnastică este cunoscută sub denumirea de regresie liniară.

Ecuația lui Laplace cu condiția la limită Dirichlet

Acum, cea mai simplă sarcină reală: există o anumită suprafață triangulată, este necesar să o neteziți. De exemplu, să încărcăm un model al feței mele:

Commit-ul original este disponibil. Pentru a minimiza dependențele externe, am luat codul programului meu de redare software, deja pe Habré. Pentru a rezolva un sistem liniar, folosesc OpenNL, acesta este un solutor excelent, care, totuși, este foarte greu de instalat: trebuie să copiați două fișiere (.h+.c) în folderul cu proiectul dvs. Toată netezirea se face cu următorul cod:

Pentru (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 = fețe[i]; pentru (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); } }

Coordonatele X, Y și Z sunt separabile, le netezesc separat. Adică rezolv trei sisteme de ecuații liniare, fiecare cu un număr de variabile egal cu numărul de vârfuri din modelul meu. Primele n rânduri ale matricei A au doar un 1 pe rând, iar primele n rânduri ale vectorului b au coordonatele modelului original. Adică leg un arc între noua poziție a vârfului și vechea poziție a vârfului - cele noi nu trebuie să se îndepărteze prea mult de cele vechi.

Toate rândurile ulterioare ale matricei A (faces.size()*3 = numărul de muchii ale tuturor triunghiurilor din plasă) au o apariție de 1 și o apariție de -1, cu vectorul b având componente zero opuse. Aceasta înseamnă că am pus un arc pe fiecare margine a rețelei noastre triunghiulare: toate marginile încearcă să obțină același vârf ca punctul lor de început și de sfârșit.

Încă o dată: toate nodurile sunt variabile și nu se pot deplasa departe de poziția lor inițială, dar în același timp încearcă să devină asemănătoare între ele.

Iată rezultatul:

Totul ar fi bine, modelul este cu adevărat netezit, dar s-a îndepărtat de marginea inițială. Hai sa schimbam putin codul:

Pentru (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); }

În matricea noastră A, pentru vârfurile care sunt pe margine, nu adaug un rând din categoria v_i = verts[i][d], ci 1000*v_i = 1000*verts[i][d]. Ce se schimbă? Și asta ne schimbă forma pătratică de eroare. Acum, o singură abatere de la partea de sus la margine va costa nu o unitate, ca înainte, ci 1000*1000 de unități. Adică am atârnat un arc mai puternic pe vârfurile extreme, soluția va prefera să le întindă pe celelalte mai puternic. Iată rezultatul:

Să dublăm puterea arcului dintre vârfuri:
nlCoeficient(față[ j ], 2); nlCoeficient(față[(j+1)%3], -2);

Este logic că suprafața a devenit mai netedă:

Și acum chiar de o sută de ori mai puternic:

Ce este asta? Imaginează-ți că am scufundat un inel de sârmă în apă cu săpun. Drept urmare, filmul de săpun rezultat va încerca să aibă cea mai mică curbură posibil, atingând granița - inelul nostru de sârmă. Este exact ceea ce am obținut fixând chenarul și cerând o suprafață netedă în interior. Felicitări, tocmai am rezolvat ecuația lui Laplace cu condițiile la limită Dirichlet. Suna bine? Dar, în realitate, trebuie doar să rezolvi un sistem de ecuații liniare.

ecuația lui Poisson

Să ne amintim un alt nume grozav.

Să zicem că am o imagine ca aceasta:

Arată bine tuturor, dar nu-mi place scaunul.

Voi tăia poza în jumătate:



Și voi alege un scaun cu mâinile mele:

Apoi voi trage tot ce este alb în mască în partea stângă a imaginii și, în același timp, pe parcursul imaginii, voi spune că diferența dintre doi pixeli vecini ar trebui să fie egală cu diferența dintre doi pixeli vecini din dreapta. imagine:

Pentru (int i=0; i

Iată rezultatul:

Cod si poze disponibile

Care găsește cea mai largă aplicație în diverse domenii ale științei și activității practice. Aceasta ar putea fi fizică, chimie, biologie, economie, sociologie, psihologie și așa mai departe. Prin voința sorții, de multe ori trebuie să mă ocup de economie și, prin urmare, astăzi vă voi aranja o excursie într-o țară uimitoare numită Econometrie=) ...Cum sa nu-l vrei?! Este foarte bine acolo – trebuie doar să vă hotărâți! ...Dar ceea ce probabil că vrei cu siguranță este să înveți cum să rezolvi problemele metoda celor mai mici pătrate. Și mai ales cititorii harnici vor învăța să le rezolve nu doar cu acuratețe, ci și FOARTE RAPID ;-) Dar mai întâi expunerea generală a problemei+ exemplu însoțitor:

Să studiem indicatorii dintr-un anumit domeniu care au o expresie cantitativă. În același timp, există toate motivele să credem că indicatorul depinde de indicator. Această ipoteză poate fi fie o ipoteză științifică, fie bazată pe bunul simț de bază. Să lăsăm totuși știința deoparte și să explorăm zone mai apetisante - și anume, magazinele alimentare. Să notăm prin:

– suprafata comerciala a unui magazin alimentar, mp,
– cifra de afaceri anuală a unui magazin alimentar, milioane de ruble.

Este absolut clar că, cu cât suprafața magazinului este mai mare, cu atât va fi mai mare în majoritatea cazurilor cifra de afaceri a acestuia.

Sa presupunem ca dupa efectuarea observatiilor/experimentelor/calculelor/dansurilor cu tamburina avem la dispozitie date numerice:

Cu magazinele alimentare, cred că totul este clar: - aceasta este zona primului magazin, - cifra de afaceri anuală a acestuia, - zona celui de-al doilea magazin, - cifra de afaceri anuală etc. Apropo, nu este deloc necesar să aveți acces la materiale clasificate - o evaluare destul de precisă a cifrei de afaceri comerciale poate fi obținută prin intermediul statistici matematice. Totuși, să nu ne distragem, cursul de spionaj comercial este deja plătit =)

Datele tabelare pot fi, de asemenea, scrise sub formă de puncte și descrise în forma familiară Sistemul cartezian .

Să răspundem la o întrebare importantă: Câte puncte sunt necesare pentru un studiu calitativ?

Cu cât mai mare cu atât mai bine. Setul minim acceptabil este format din 5-6 puncte. În plus, atunci când cantitatea de date este mică, rezultatele „anomale” nu pot fi incluse în eșantion. Deci, de exemplu, un mic magazin de elită poate câștiga ordine de mărime mai mult decât „colegii săi”, distorsionând astfel modelul general pe care trebuie să îl găsiți!

Pentru a spune foarte simplu, trebuie să selectăm o funcție, programa care trece cât mai aproape de puncte . Această funcție este numită aproximând (aproximare - aproximare) sau functie teoretica . În general, aici apare imediat un „concurent” evident - un polinom de grad înalt, al cărui grafic trece prin TOATE punctele. Dar această opțiune este complicată și adesea pur și simplu incorectă. (deoarece graficul se va „încerca” tot timpul și reflectă slab tendința principală).

Astfel, funcția căutată trebuie să fie destul de simplă și, în același timp, să reflecte adecvat dependența. După cum ați putea ghici, una dintre metodele pentru găsirea unor astfel de funcții este numită metoda celor mai mici pătrate. În primul rând, să ne uităm la esența sa în termeni generali. Lasă o anumită funcție să aproximeze datele experimentale:


Cum se evaluează acuratețea acestei aproximări? Să calculăm și diferențele (abaterile) dintre valorile experimentale și cele funcționale (studiam desenul). Primul gând care îmi vine în minte este de a estima cât de mare este suma, dar problema este că diferențele pot fi negative (De exemplu, ) iar abaterile ca urmare a unei astfel de însumări se vor anula reciproc. Prin urmare, ca o estimare a preciziei aproximării, se cere să se ia suma module abateri:

sau prăbușit: (în cazul în care cineva nu știe: – aceasta este pictograma sumă și – o variabilă „contor” auxiliară, care ia valori de la 1 la ).

Prin aproximarea punctelor experimentale cu diferite funcții, vom obține valori diferite și, evident, acolo unde această sumă este mai mică, acea funcție este mai precisă.

O astfel de metodă există și se numește metoda modulului minim. Cu toate acestea, în practică a devenit mult mai răspândită metoda celor mai mici pătrate, în care posibilele valori negative sunt eliminate nu de modul, ci prin pătrarea abaterilor:

, după care eforturile sunt îndreptate spre selectarea unei funcții astfel încât suma abaterilor pătrate era cât se poate de mică. De fapt, de aici provine numele metodei.

Și acum revenim la un alt punct important: după cum sa menționat mai sus, funcția selectată ar trebui să fie destul de simplă - dar există și multe astfel de funcții: liniar , hiperbolic, exponenţială, logaritmică, pătratică etc. Și, desigur, aici aș dori imediat să „reduc domeniul de activitate”. Ce clasă de funcții ar trebui să aleg pentru cercetare? O tehnică primitivă, dar eficientă:

– Cel mai simplu mod este să descrii puncte pe desen și analizați locația acestora. Dacă au tendința de a alerga în linie dreaptă, atunci ar trebui să cauți ecuația unei linii cu valori optime și . Cu alte cuvinte, sarcina este de a găsi ACEPTĂ coeficienți astfel încât suma abaterilor pătrate să fie cea mai mică.

Dacă punctele sunt situate, de exemplu, de-a lungul hiperbolă, atunci este evident clar că funcția liniară va da o aproximare slabă. În acest caz, căutăm cei mai „favorabili” coeficienți pentru ecuația hiperbolei – cele care dau suma minimă de pătrate .

Acum rețineți că în ambele cazuri vorbim funcţiile a două variabile, ale căror argumente sunt parametrii de dependență căutați:

Și, în esență, trebuie să rezolvăm o problemă standard - găsiți funcţie minimă a două variabile.

Să ne amintim exemplul nostru: să presupunem că punctele „de depozit” tind să fie situate în linie dreaptă și există toate motivele să credem că dependență liniară cifra de afaceri din spațiul comercial. Să găsim astfel de coeficienți „a” și „fi” astfel încât suma abaterilor pătrate a fost cel mai mic. Totul este ca de obicei - mai întâi Derivate parțiale de ordinul I. Conform regula liniarității Puteți diferenția chiar sub pictograma sumă:

Dacă doriți să folosiți aceste informații pentru un eseu sau un referat, vă voi fi foarte recunoscător pentru linkul din lista de surse; veți găsi astfel de calcule detaliate în câteva locuri:

Să creăm un sistem standard:

Reducem fiecare ecuație cu „două” și, în plus, „despărțim” sumele:

Notă : analizați în mod independent de ce „a” și „fi” pot fi scoase dincolo de pictograma sumei. Apropo, formal acest lucru se poate face cu suma

Să rescriem sistemul în formă „aplicată”:

după care începe să apară algoritmul pentru rezolvarea problemei noastre:

Cunoaștem coordonatele punctelor? Noi stim. Sume il putem gasi? Uşor. Să facem cel mai simplu sistem de două ecuații liniare în două necunoscute(„a” și „fi”). Rezolvăm sistemul, de exemplu, metoda lui Cramer, în urma căruia obținem un punct staționar. Control condiție suficientă pentru un extremum, putem verifica că în acest moment funcția ajunge exact minim. Verificarea presupune calcule suplimentare și, prin urmare, o vom lăsa în culise (dacă este necesar, cadrul lipsă poate fi vizualizat). Tragem concluzia finală:

Funcţie cel mai bun mod (cel puțin în comparație cu orice altă funcție liniară) apropie punctele experimentale . În linii mari, graficul său trece cât mai aproape de aceste puncte. In traditie econometrie funcţia de aproximare rezultată se mai numeşte ecuația de regresie liniară pereche .

Problema luată în considerare este de mare importanță practică. În situația noastră exemplu, Ec. vă permite să preziceți ce cifră de afaceri comercială ("Igrec") magazinul va avea la una sau alta valoare a zonei de vânzare (unul sau altul sens al lui „x”). Da, prognoza rezultată va fi doar o prognoză, dar în multe cazuri se va dovedi a fi destul de precisă.

Voi analiza doar o problemă cu numerele „reale”, deoarece nu există dificultăți în ea - toate calculele sunt la nivelul curriculum-ului școlar de clasa a VII-a-8. În 95 la sută din cazuri, vi se va cere să găsiți doar o funcție liniară, dar la sfârșitul articolului voi arăta că nu este mai dificil să găsiți ecuațiile hiperbolei optime, ale exponențiale și ale altor funcții.

De fapt, tot ce rămâne este să distribuiți bunătățile promise - astfel încât să puteți învăța să rezolvați astfel de exemple nu numai cu acuratețe, ci și rapid. Studiem cu atenție standardul:

Sarcină

În urma studierii relației dintre doi indicatori, s-au obținut următoarele perechi de numere:

Folosind metoda celor mai mici pătrate, găsiți funcția liniară care aproximează cel mai bine empiric (cu experienta) date. Realizați un desen pe care să construiți puncte experimentale și un grafic al funcției de aproximare într-un sistem de coordonate dreptunghiular cartezian . Aflați suma abaterilor pătrate dintre valorile empirice și teoretice. Aflați dacă funcția ar fi mai bună (din punct de vedere al metodei celor mai mici pătrate) apropie punctele experimentale.

Vă rugăm să rețineți că semnificațiile „x” sunt naturale, iar aceasta are un sens caracteristic caracteristic, despre care voi vorbi puțin mai târziu; dar ele, desigur, pot fi și fracționate. În plus, în funcție de conținutul unei anumite sarcini, atât valorile „X” cât și „joc” pot fi complet sau parțial negative. Ei bine, ni s-a dat o sarcină „fără chip” și o începem soluţie:

Găsim coeficienții funcției optime ca soluție a sistemului:

În scopul unei înregistrări mai compacte, variabila „contor” poate fi omisă, deoarece este deja clar că însumarea se realizează de la 1 la .

Este mai convenabil să calculați sumele necesare în formă tabelară:


Calculele pot fi efectuate pe un microcalculator, dar este mult mai bine să utilizați Excel - atât mai rapid, cât și fără erori; vezi un scurt video:

Astfel, obținem următoarele sistem:

Aici puteți înmulți a doua ecuație cu 3 și scădeți al 2-lea din prima ecuație termen cu termen. Dar acesta este noroc - în practică, sistemele nu sunt adesea un cadou și, în astfel de cazuri, economisesc metoda lui Cramer:
, ceea ce înseamnă că sistemul are o soluție unică.

Sa verificam. Înțeleg că nu vrei, dar de ce să sari peste erorile în care nu pot fi ratate? Să înlocuim soluția găsită în partea stângă a fiecărei ecuații a sistemului:

Se obțin părțile din dreapta ecuațiilor corespunzătoare, ceea ce înseamnă că sistemul este rezolvat corect.

Astfel, funcția de aproximare dorită: – de la toate funcțiile liniare Ea este cea care aproximează cel mai bine datele experimentale.

Spre deosebire de Drept dependenţa cifrei de afaceri a magazinului de suprafaţa acestuia, dependenţa constatată este verso (principiul „cu cât mai mult, cu atât mai puțin”), iar acest fapt este imediat relevat de negativ pantă. Funcţie ne spune că cu o creștere a unui anumit indicator cu 1 unitate, valoarea indicatorului dependent scade in medie cu 0,65 unități. După cum se spune, cu cât prețul hrișcii este mai mare, cu atât se vinde mai puțin.

Pentru a reprezenta graficul funcției de aproximare, găsim cele două valori ale acesteia:

și executați desenul:


Linia dreaptă construită se numește linie de tendință (și anume, o linie de tendință liniară, adică, în cazul general, o tendință nu este neapărat o linie dreaptă). Toată lumea este familiarizată cu expresia „a fi în tendință” și cred că acest termen nu are nevoie de comentarii suplimentare.

Să calculăm suma abaterilor pătrate între valorile empirice şi cele teoretice. Geometric, aceasta este suma pătratelor lungimii segmentelor „zmeură”. (dintre care două sunt atât de mici încât nici măcar nu sunt vizibile).

Să rezumam calculele într-un tabel:


Din nou, pot fi făcute manual; pentru orice eventualitate, voi da un exemplu pentru primul punct:

dar este mult mai eficient să o faci în modul deja cunoscut:

Repetăm ​​încă o dată: Care este semnificația rezultatului obținut? Din toate funcțiile liniare funcția y indicatorul este cel mai mic, adică din familia sa este cea mai bună aproximare. Și aici, apropo, întrebarea finală a problemei nu este întâmplătoare: ce se întâmplă dacă funcția exponențială propusă ar fi mai bine să apropii punctele experimentale?

Să găsim suma corespunzătoare a abaterilor pătrate - pentru a distinge, le voi desemna cu litera „epsilon”. Tehnica este exact aceeași:


Și din nou, pentru orice eventualitate, calculele pentru primul punct:

În Excel folosim funcția standard EXP (sintaxa poate fi găsită în Ajutor Excel).

Concluzie: , ceea ce înseamnă că funcția exponențială aproximează punctele experimentale mai rău decât o dreaptă .

Dar aici trebuie remarcat că „mai rău” este nu înseamnă încă, Ce s-a întâmplat. Acum am construit un grafic al acestei funcții exponențiale - și trece, de asemenea, aproape de puncte - atât de mult încât fără cercetare analitică este greu de spus care funcție este mai precisă.

Aceasta încheie soluția și revin la întrebarea valorilor naturale ale argumentului. În diverse studii, de obicei economice sau sociologice, „X”-urile naturale sunt folosite pentru a număra luni, ani sau alte intervale de timp egale. Luați în considerare, de exemplu, următoarea problemă.