Metoda najmniejszych kwadratów w Excelu. Analiza regresji. Gdzie stosowana jest metoda najmniejszych kwadratów Metoda najmniejszych kwadratów dla linii prostej w przestrzeni

Metoda najmniejszych kwadratów jest jedną z najpowszechniejszych i najbardziej rozwiniętych ze względu na swoje możliwości prostota i efektywność metod estymacji parametrów liniowych. Jednocześnie należy zachować pewną ostrożność przy jego stosowaniu, gdyż budowane przy jego pomocy modele mogą nie spełniać szeregu wymagań co do jakości swoich parametrów i w efekcie nie „dobrze” odzwierciedlać wzorce rozwoju procesów.

Rozważmy bardziej szczegółowo procedurę szacowania parametrów liniowego modelu ekonometrycznego metodą najmniejszych kwadratów. Model taki w ogólnej postaci można przedstawić za pomocą równania (1.2):

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

Dane początkowe przy estymacji parametrów a 0 , a 1 ,..., a n są wektorem wartości zmiennej zależnej y= (y 1 , y 2 , ... , y T)” i macierz wartości zmiennych niezależnych

w którym pierwsza kolumna składająca się z jedynek odpowiada współczynnikowi modelu .

Metoda najmniejszych kwadratów wzięła swoją nazwę od podstawowej zasady, że otrzymane na jej podstawie estymatory parametrów powinny spełniać: suma kwadratów błędu modelu powinna być minimalna.

Przykłady rozwiązywania problemów metodą najmniejszych kwadratów

Przykład 2.1. Przedsiębiorstwo handlowe posiada sieć składającą się z 12 sklepów, których informacje o działalności przedstawiono w tabeli. 2.1.

Kierownictwo firmy chciałoby wiedzieć, jak wielkość rocznika zależy od powierzchni sprzedażowej sklepu.

Tabela 2.1

Numer sklepu

Roczny obrót, miliony rubli

Powierzchnia handlowa, tys. m 2

Rozwiązanie metodą najmniejszych kwadratów. Wyznaczmy - roczny obrót -tego sklepu, milion rubli; - powierzchnia sprzedaży -tego sklepu, tys. m 2.

Ryc.2.1. Wykres rozrzutu dla przykładu 2.1

Wyznaczenie postaci zależności funkcjonalnej pomiędzy zmiennymi i skonstruowanie wykresu rozrzutu (ryc. 2.1).

Na podstawie diagramu punktowego możemy stwierdzić, że roczny obrót jest dodatnio zależny od obszaru sprzedaży (tzn. y będzie wzrastać wraz ze wzrostem ). Najbardziej odpowiednią formą połączenia funkcjonalnego jest − liniowy.

Informacje do dalszych obliczeń przedstawiono w tabeli. 2.2. Metodą najmniejszych kwadratów szacujemy parametry liniowego jednoczynnikowego modelu ekonometrycznego

Tabela 2.2

Zatem,

Zatem wraz ze wzrostem powierzchni handlowej o 1 tys. m 2, przy innych czynnikach niezmienionych, średni roczny obrót wzrasta o 67,8871 mln rubli.

Przykład 2.2. Kierownictwo przedsiębiorstwa zauważyło, że roczny obrót zależy nie tylko od powierzchni sprzedażowej sklepu (patrz przykład 2.1), ale także od średniej liczby odwiedzających. Odpowiednie informacje przedstawiono w tabeli. 2.3.

Tabela 2.3

Rozwiązanie. Oznacz - średnia liczba odwiedzających sklep dziennie, tys. osób.

Wyznaczenie postaci zależności funkcjonalnej pomiędzy zmiennymi i skonstruowanie wykresu rozrzutu (ryc. 2.2).

Na podstawie diagramu punktowego możemy stwierdzić, że roczny obrót jest dodatnio powiązany ze średnią liczbą odwiedzających dziennie (tj. y będzie rosło wraz ze wzrostem ). Forma zależności funkcjonalnej jest liniowa.

Ryż. 2.2. Wykres rozrzutu na przykład 2.2

Tabela 2.4

Generalnie konieczne jest określenie parametrów dwuczynnikowego modelu ekonometrycznego

y t \u003d za 0 + za 1 x 1 t + za 2 x 2 t + ε t

Informacje potrzebne do dalszych obliczeń przedstawiono w tabeli. 2.4.

Oszacujmy parametry liniowego dwuczynnikowego modelu ekonometrycznego metodą najmniejszych kwadratów.

Zatem,

Ocena współczynnika = 61,6583 pokazuje, że przy niezmienionych innych warunkach, wraz ze wzrostem powierzchni handlowej o 1 tys. m 2, roczny obrót wzrośnie średnio o 61,6583 mln rubli.

Przykład.

Dane eksperymentalne dotyczące wartości zmiennych X I Na podano w tabeli.

W wyniku ich wyrównania powstaje funkcja

Za pomocą metoda najmniejszych kwadratów, aproksymuj te dane za pomocą zależności liniowej y=topór+b(znajdź parametry A I B). Dowiedz się, która z dwóch linii lepiej (w sensie metody najmniejszych kwadratów) wyrównuje dane eksperymentalne. Narysuj coś.

Istota metody najmniejszych kwadratów (LSM).

Problem polega na znalezieniu współczynników zależności liniowej dla których spełnia się funkcja dwóch zmiennych A I B przyjmuje najmniejszą wartość. To znaczy, biorąc pod uwagę dane A I B suma kwadratów odchyleń danych eksperymentalnych od znalezionej prostej będzie najmniejsza. Na tym polega cały sens metody najmniejszych kwadratów.

Zatem rozwiązanie przykładu sprowadza się do znalezienia ekstremum funkcji dwóch zmiennych.

Wyprowadzenie wzorów na znalezienie współczynników.

Układ dwóch równań z dwiema niewiadomymi jest kompilowany i rozwiązywany. Znajdowanie pochodnych cząstkowych funkcji po zmiennych A I B, przyrównujemy te pochodne do zera.

Powstały układ równań rozwiązujemy dowolną metodą (np metoda substytucyjna lub ) i uzyskać wzory na znalezienie współczynników metodą najmniejszych kwadratów (LSM).

Z danymi A I B funkcjonować przyjmuje najmniejszą wartość. Podano dowód tego faktu.

To cała metoda najmniejszych kwadratów. Wzór na znalezienie parametru A zawiera sumy , , i parametr N- ilość danych eksperymentalnych. Wartości tych sum zaleca się obliczać osobno. Współczynnik B znalezione po obliczeniach A.

Czas przypomnieć sobie oryginalny przykład.

Rozwiązanie.

W naszym przykładzie n=5. Wypełniamy tabelę dla wygody obliczenia kwot zawartych we wzorach wymaganych współczynników.

Wartości w czwartym wierszu tabeli uzyskuje się poprzez pomnożenie wartości drugiego wiersza przez wartości trzeciego wiersza dla każdej liczby I.

Wartości w piątym wierszu tabeli uzyskuje się przez podniesienie do kwadratu wartości z drugiego wiersza dla każdej liczby I.

Wartości ostatniej kolumny tabeli są sumami wartości w wierszach.

Do znalezienia współczynników używamy wzorów metody najmniejszych kwadratów A I B. Podstawiamy w nich odpowiednie wartości z ostatniej kolumny tabeli:

Stąd, y=0,165x+2,184 jest pożądaną przybliżoną linią prostą.

Pozostaje dowiedzieć się, która z linii y=0,165x+2,184 Lub lepiej przybliża dane oryginalne, czyli dokonuje oszacowania metodą najmniejszych kwadratów.

Oszacowanie błędu metody najmniejszych kwadratów.

Aby to zrobić, musisz obliczyć sumę kwadratów odchyleń oryginalnych danych od tych linii I , mniejsza wartość odpowiada linii, która lepiej przybliża oryginalne dane metodą najmniejszych kwadratów.

Od , następnie linia y=0,165x+2,184 lepiej przybliża oryginalne dane.

Graficzna ilustracja metody najmniejszych kwadratów (LSM).

Na wykresach wszystko wygląda świetnie. Czerwona linia to znaleziona linia y=0,165x+2,184, niebieska linia to , różowe kropki to oryginalne dane.

Po co to wszystko, po co te wszystkie przybliżenia?

Osobiście używam do rozwiązywania problemów związanych z wygładzaniem danych, interpolacją i ekstrapolacją (w oryginalnym przykładzie można zostać poproszony o znalezienie wartości obserwowanej wartości y Na x=3 albo kiedy x=6 według metody MNC). Ale porozmawiamy o tym więcej później w innej części witryny.

Dowód.

Tak więc, gdy zostanie znaleziony A I B funkcja przyjmuje najmniejszą wartość, konieczne jest, aby w tym miejscu macierz postaci kwadratowej różniczki drugiego rzędu dla funkcji był dodatnio określony. Pokażmy to.

Wybór rodzaju funkcji regresji, tj. rodzaj rozważanego modelu zależności Y od X (lub X od Y), np. model liniowy y x = a + bx, konieczne jest określenie konkretnych wartości współczynników modelu.

Dla różnych wartości a i b można skonstruować nieskończoną liczbę zależności postaci y x =a+bx, czyli na płaszczyźnie współrzędnych istnieje nieskończona liczba prostych, ale potrzebujemy takiej zależności, że najlepiej odpowiada obserwowanym wartościom. Zatem problem sprowadza się do wyboru najlepszych współczynników.

Szukamy funkcji liniowej a + bx, bazując tylko na pewnej liczbie dostępnych obserwacji. Aby znaleźć funkcję najlepiej dopasowaną do obserwowanych wartości, stosujemy metodę najmniejszych kwadratów.

Oznacz: Y i - wartość obliczona z równania Y i =a+bx i . y i - wartość zmierzona, ε i =y i -Y i - różnica pomiędzy wartością zmierzoną i obliczoną, ε i =y i -a-bx i .

Metoda najmniejszych kwadratów wymaga, aby ε i, różnica między zmierzonym y i a wartościami Y i obliczonymi z równania, była minimalna. Dlatego znajdujemy współczynniki aib tak, aby suma kwadratów odchyleń zaobserwowanych wartości od wartości na prostej linii regresji była najmniejsza:

Badając tę ​​funkcję argumentów a i za pomocą pochodnych do ekstremum można wykazać, że funkcja ta przyjmuje wartość minimalną, jeśli współczynniki a i b są rozwiązaniami układu:

(2)

Jeśli podzielimy obie strony równań normalnych przez n, otrzymamy:

Jeśli się uwzględni (3)

Dostawać stąd, zastępując wartość a w pierwszym równaniu, otrzymujemy:

W tym przypadku b nazywa się współczynnikiem regresji; a nazywa się wolnym członkiem równania regresji i oblicza się według wzoru:

Powstała linia prosta jest oszacowaniem teoretycznej linii regresji. Mamy:

Więc, jest równaniem regresji liniowej.

Regresja może być bezpośrednia (b>0) i odwrotna (b Przykład 1. Wyniki pomiaru wartości X i Y podano w tabeli:

x ja -2 0 1 2 4
tak, ja 0.5 1 1.5 2 3

Zakładając, że pomiędzy X i Y istnieje liniowa zależność y=a+bx, wyznacz współczynniki a i b metodą najmniejszych kwadratów.

Rozwiązanie. Tutaj n=5
x i =-2+0+1+2+4=5;
x i 2 =4+0+1+4+16=25
x i y ja =-2 0,5+0 1+1 1,5+2 2+4 3=16,5
y i =0,5+1+1,5+2+3=8

a układ normalny (2) ma postać

Rozwiązując ten układ otrzymujemy: b=0,425, a=1,175. Zatem y=1,175+0,425x.

Przykład 2. Próba składa się z 10 obserwacji wskaźników ekonomicznych (X) i (Y).

x ja 180 172 173 169 175 170 179 170 167 174
tak, ja 186 180 176 171 182 166 182 172 169 177

Wymagane jest znalezienie przykładowego równania regresji Y na X. Skonstruuj przykładową linię regresji Y na X.

Rozwiązanie. 1. Posortujmy dane według wartości x i oraz y i . Otrzymujemy nową tabelę:

x ja 167 169 170 170 172 173 174 175 179 180
tak, ja 169 171 166 172 180 176 177 182 182 186

Aby uprościć obliczenia, stworzymy tabelę obliczeniową, w której wprowadzimy niezbędne wartości liczbowe.

x ja tak, ja 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 i2 =29910,5 xy=30469,6

Zgodnie ze wzorem (4) obliczamy współczynnik regresji

i według wzoru (5)

Zatem przykładowe równanie regresji wygląda następująco: y=-59,34+1,3804x.
Narysujmy punkty (x i ; y i) na płaszczyźnie współrzędnych i zaznaczmy linię regresji.


Ryc. 4

Rysunek 4 pokazuje, jak zaobserwowane wartości są umiejscowione względem linii regresji. Aby numerycznie oszacować odchylenia y i od Y i , gdzie y i to wartości obserwowane, a Y i to wartości wyznaczone metodą regresji, zrobimy tabelę:

x ja tak, ja Y ja Y-y ja
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

Wartości Y i są obliczane zgodnie z równaniem regresji.

Zauważalne odchylenie niektórych zaobserwowanych wartości od linii regresji tłumaczy się małą liczbą obserwacji. Badając stopień liniowej zależności Y od X, bierze się pod uwagę liczbę obserwacji. O sile zależności decyduje wartość współczynnika korelacji.

Jestem programistą komputerowym. Zrobiłem największy krok w swojej karierze, kiedy nauczyłem się mówić: "Niczego nierozumiem!" Teraz nie wstydzę się powiedzieć luminarzowi nauki, że daje mi wykład, że nie rozumiem, o czym ten luminarz do mnie mówi. I to jest bardzo trudne. Tak, trudno i wstyd przyznać się, że się nie wie. Kto lubi się przyznawać, że nie zna podstaw czegoś-nie. Z racji wykonywanego zawodu muszę uczestniczyć w dużej liczbie prezentacji i wykładów, z których, przyznaję, w zdecydowanej większości przypadków odczuwam senność, bo nic nie rozumiem. I nie rozumiem, bo ogromny problem obecnej sytuacji w nauce leży w matematyce. Zakłada, że ​​wszyscy uczniowie znają absolutnie wszystkie dziedziny matematyki (co jest absurdem). Przyznać się, że nie wiadomo, co to jest pochodna (że to trochę później), to wstyd.

Ale nauczyłem się mówić, że nie wiem, co to jest mnożenie. Tak, nie wiem, czym jest podalgebra w stosunku do algebry Liego. Tak, nie wiem, dlaczego równania kwadratowe są potrzebne w życiu. Swoją drogą, jeśli jesteś pewien, że wiesz, to mamy o czym rozmawiać! Matematyka to seria sztuczek. Matematycy próbują dezorientować i zastraszać opinię publiczną; gdzie nie ma zamieszania, reputacji i autorytetu. Tak, mówienie możliwie najbardziej abstrakcyjnym językiem jest prestiżem, co samo w sobie jest kompletnym bzdurą.

Czy wiesz, co to jest pochodna? Najprawdopodobniej opowiesz mi o granicy relacji różnicowej. Na pierwszym roku matematyki na Uniwersytecie Państwowym w Petersburgu Wiktor Pietrowicz Chawin mnie zdefiniowany pochodna jako współczynnik pierwszego wyrazu szeregu Taylora funkcji w punkcie (wyznaczanie szeregu Taylora bez pochodnych było osobną gimnastyką). Długo się śmiałem z tej definicji, aż w końcu zrozumiałem, o co w niej chodzi. Pochodna to nic innego jak miara tego, jak bardzo funkcja, którą różniczkujemy, jest podobna do funkcji y=x, y=x^2, y=x^3.

Teraz mam zaszczyt prowadzić wykłady dla studentów, którzy przestraszony matematyka. Jeśli boisz się matematyki - jesteśmy na dobrej drodze. Gdy tylko spróbujesz przeczytać jakiś tekst i wydaje Ci się, że jest on zbyt skomplikowany, to wiedz, że jest źle napisany. Twierdzę, że nie ma ani jednego obszaru matematyki, o którym nie można mówić „na palcach” bez utraty trafności.

Wyzwanie na najbliższą przyszłość: Poinstruowałem moich uczniów, aby zrozumieli, czym jest regulator liniowo-kwadratowy. Nie wstydź się, zmarnuj trzy minuty swojego życia, kliknij link. Jeśli nic nie rozumiesz, to jesteśmy w drodze. Ja (zawodowy matematyk-programista) też nic nie rozumiałem. I zapewniam, że da się to rozwiązać „na palcach”. W tej chwili nie wiem, co to jest, ale zapewniam, że uda nam się to rozgryźć.

Zatem pierwszy wykład, jaki wygłoszę moim studentom po tym, jak przybiegli do mnie z przerażeniem ze słowami, że kontroler liniowo-kwadratowy to straszny błąd, którego nigdy w życiu nie opanujecie, to metody najmniejszych kwadratów. Czy potrafisz rozwiązywać równania liniowe? Jeśli czytasz ten tekst, to najprawdopodobniej nie.

Zatem mając dane dwa punkty (x0, y0), (x1, y1), na przykład (1,1) i (3,2), zadaniem jest znalezienie równania prostej przechodzącej przez te dwa punkty:

ilustracja

Ta prosta powinna mieć równanie podobne do poniższego:

Tutaj alfa i beta nie są nam znane, ale znane są dwa punkty tej linii:

Możesz zapisać to równanie w postaci macierzowej:

W tym miejscu należy dokonać lirycznej dygresji: czym jest matrix? Macierz to nic innego jak tablica dwuwymiarowa. Jest to sposób przechowywania danych, nie należy do niego dołączać żadnych wartości. Od nas zależy, jak dokładnie zinterpretować daną macierz. Okresowo będę to interpretował jako odwzorowanie liniowe, okresowo jako postać kwadratową, a czasami po prostu jako zbiór wektorów. Wszystko zostanie wyjaśnione w kontekście.

Zastąpmy konkretne macierze ich symboliczną reprezentacją:

Następnie (alfa, beta) można łatwo znaleźć:

Dokładniej dla naszych poprzednich danych:

Co prowadzi do następującego równania prostej przechodzącej przez punkty (1,1) i (3,2):

OK, tutaj wszystko jest jasne. I znajdźmy równanie linii prostej przechodzącej przez nią trzy punkty: (x0,y0), (x1,y1) i (x2,y2):

Och, och, och, ale mamy trzy równania z dwiema niewiadomymi! Zwykły matematyk powie, że nie ma rozwiązania. Co powie programista? I najpierw przepisze poprzedni układ równań w następującej formie:

W naszym przypadku wektory i, j, b są trójwymiarowe, dlatego (w ogólnym przypadku) ten układ nie ma rozwiązania. Dowolny wektor (alfa\*i + beta\*j) leży w płaszczyźnie rozpiętej przez wektory (i, j). Jeśli b nie należy do tej płaszczyzny, to nie ma rozwiązania (nie można osiągnąć równości w równaniu). Co robić? Szukajmy kompromisu. Oznaczmy przez e(alfa, beta) jak dokładnie nie osiągnęliśmy równości:

Postaramy się zminimalizować ten błąd:

Dlaczego kwadrat?

Szukamy nie tylko minimum normy, ale także minimum kwadratu normy. Dlaczego? Sam punkt minimalny pokrywa się, a kwadrat daje funkcję gładką (funkcję kwadratową argumentów (alfa, beta)), natomiast sama długość daje funkcję w postaci stożka, nieróżniczkowalną w punkcie minimalnym. Br. Kwadrat jest wygodniejszy.

Oczywiście błąd jest minimalizowany, gdy wektor mi prostopadłe do płaszczyzny rozpiętej na wektorach I I J.

Ilustracja

Innymi słowy: szukamy takiej prostej, aby suma kwadratów długości odległości wszystkich punktów od tej prostej była minimalna:

AKTUALIZACJA: tutaj mam ościeżnicę, odległość do linii należy mierzyć w pionie, a nie w rzucie ortograficznym. komentator ma rację.

Ilustracja

Zupełnie innymi słowami (ostrożnie, słabo sformalizowany, ale powinno być jasne na palcach): bierzemy wszystkie możliwe linie pomiędzy wszystkimi parami punktów i szukamy średniej linii pomiędzy wszystkimi:

Ilustracja

Inne wyjaśnienie na palcach: dołączamy sprężynę pomiędzy wszystkimi punktami danych (tutaj mamy trzy) a linią, której szukamy, a linia stanu równowagi jest dokładnie tym, czego szukamy.

Minimalna forma kwadratowa

Biorąc pod uwagę wektor B oraz płaszczyzna rozpięta przez wektory kolumnowe macierzy A(w tym przypadku (x0,x1,x2) i (1,1,1)), szukamy wektora mi o minimalnej długości kwadratowej. Oczywiście minimum można osiągnąć tylko dla wektora mi, prostopadła do płaszczyzny rozpiętej przez wektory kolumnowe macierzy A:

Inaczej mówiąc, szukamy wektora x=(alfa, beta) takiego, że:

Przypominam, że ten wektor x=(alfa, beta) jest minimum funkcji kwadratowej ||e(alfa, beta)||^2:

W tym miejscu warto pamiętać, że macierz można interpretować tak samo jak postać kwadratową, na przykład macierz jednostkowa ((1,0), (0,1)) można interpretować jako funkcję x^2 + y ^2:

forma kwadratowa

Cała ta gimnastyka nazywana jest regresją liniową.

Równanie Laplace'a z warunkiem brzegowym Dirichleta

Teraz najprostszy prawdziwy problem: istnieje pewna trójkątna powierzchnia, należy ją wygładzić. Na przykład załadujmy mój model twarzy:

Oryginalne zatwierdzenie jest dostępne. Aby zminimalizować zależności zewnętrzne, wziąłem kod mojego oprogramowania renderującego, już na Habré. Aby rozwiązać system liniowy, używam OpenNL, jest to świetny solwer, ale bardzo trudny w instalacji: musisz skopiować dwa pliki (.h + .c) do folderu projektu. Całe wygładzanie odbywa się za pomocą następującego kodu:

Dla (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&twarz = twarze[i]; dla (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); } }

Współrzędne X, Y i Z są rozłączne, wygładzam je oddzielnie. Oznacza to, że rozwiązuję trzy układy równań liniowych, każdy z taką samą liczbą zmiennych, jak liczba wierzchołków w moim modelu. W pierwszych n wierszach macierzy A znajduje się tylko jedna cyfra 1 w każdym wierszu, a pierwsze n wierszy wektora b ma oryginalne współrzędne modelu. Oznacza to, że łączę nową pozycję wierzchołka ze starą pozycją wierzchołka - nowe nie powinny być zbyt daleko od starych.

We wszystkich kolejnych wierszach macierzy A (faces.size()*3 = liczba krawędzi wszystkich trójkątów w siatce) występuje jedno wystąpienie wartości 1 i jedno wystąpienie -1, natomiast wektor b ma przeciwne składowe zerowe. Oznacza to, że umieściłem sprężynę na każdej krawędzi naszej trójkątnej siatki: wszystkie krawędzie starają się uzyskać ten sam wierzchołek, co ich punkty początkowe i końcowe.

Jeszcze raz: wszystkie wierzchołki są zmienne i nie mogą odbiegać daleko od swojego pierwotnego położenia, ale jednocześnie starają się upodobnić do siebie.

Oto wynik:

Wszystko byłoby w porządku, model rzeczywiście jest wygładzony, jednak odszedł od pierwotnej krawędzi. Zmieńmy trochę kod:

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

W naszej macierzy A dla wierzchołków znajdujących się na krawędzi dodaję nie wiersz z kategorii v_i = verts[i][d], ale 1000*v_i = 1000*verts[i][d]. Co to zmienia? A to zmienia naszą kwadratową postać błędu. Teraz pojedyncze odchylenie od góry na krawędzi będzie kosztować nie jedną jednostkę, jak poprzednio, ale 1000 * 1000 jednostek. Oznacza to, że na skrajnych wierzchołkach zawiesiliśmy mocniejszą sprężynę, rozwiązanie woli mocniej naciągnąć inne. Oto wynik:

Podwoimy siłę sprężyn między wierzchołkami:
nlWspółczynnik(twarz[j], 2); nlWspółczynnik(twarz[(j+1)%3], -2);

Logiczne jest, że powierzchnia stała się gładsza:

A teraz jeszcze sto razy silniejszy:

Co to jest? Wyobraź sobie, że zanurzyliśmy druciany pierścień w wodzie z mydłem. W rezultacie powstały film mydlany będzie starał się mieć jak najmniejszą krzywiznę, dotykając tej samej granicy - naszego drucianego pierścienia. Dokładnie to uzyskaliśmy ustalając brzeg i prosząc o gładką powierzchnię wewnątrz. Gratulacje, właśnie rozwiązaliśmy równanie Laplace'a z warunkami brzegowymi Dirichleta. Brzmi nieźle? Ale tak naprawdę do rozwiązania jest tylko jeden układ równań liniowych.

Równanie Poissona

Miejmy kolejną fajną nazwę.

Powiedzmy, że mam taki obraz:

Wszyscy są dobrzy, ale nie podoba mi się to krzesło.

Przetnę zdjęcie na pół:



I wybiorę krzesło własnymi rękami:

Następnie przeciągnę wszystko, co białe w masce na lewą stronę obrazka, jednocześnie na całym obrazku powiem, że różnica między dwoma sąsiednimi pikselami powinna być równa różnicy między dwoma sąsiednimi pikselami obrazu prawy obraz:

Dla (int i=0; tj

Oto wynik:

Przykład z życia wzięty

Celowo nie zrobiłem lizanych wyników, bo. Chciałem tylko pokazać dokładnie, jak można zastosować metodę najmniejszych kwadratów, to jest kod szkoleniowy. Podam teraz przykład z życia:

Mam kilka zdjęć próbek tkanin takich jak ta:

Moim zadaniem jest wykonanie bezszwowych tekstur ze zdjęć tej jakości. Najpierw (automatycznie) szukam powtarzającego się wzorca:

Jeśli wytnę ten czworokąt tutaj, to z powodu zniekształceń krawędzie nie będą się zbiegać, oto przykład wzoru powtórzonego czterokrotnie:

Ukryty tekst

Oto fragment, w którym wyraźnie widać szew:

Dlatego nie będę ciąć po linii prostej, oto linia cięcia:

Ukryty tekst

A oto wzór powtórzony czterokrotnie:

Ukryty tekst

I jego fragment, żeby było jaśniej:

Już lepiej, cięcie nie przebiegało w linii prostej, omijając wszelkiego rodzaju loki, ale nadal szew jest widoczny z powodu nierównomiernego oświetlenia na oryginalnym zdjęciu. Tutaj na ratunek przychodzi metoda najmniejszych kwadratów równania Poissona. Oto efekt końcowy po wyrównaniu oświetlenia:

Tekstura okazała się idealnie płynna, a wszystko to automatycznie ze zdjęcia bardzo przeciętnej jakości. Nie bój się matematyki, szukaj prostych wyjaśnień, a będziesz mieć szczęście w inżynierii.

Problem polega na znalezieniu współczynników zależności liniowej dla których spełnia się funkcja dwóch zmiennych A I B przyjmuje najmniejszą wartość. To znaczy, biorąc pod uwagę dane A I B suma kwadratów odchyleń danych eksperymentalnych od znalezionej prostej będzie najmniejsza. Na tym polega cały sens metody najmniejszych kwadratów.

Zatem rozwiązanie przykładu sprowadza się do znalezienia ekstremum funkcji dwóch zmiennych.

Wyprowadzenie wzorów na znalezienie współczynników. Układ dwóch równań z dwiema niewiadomymi jest kompilowany i rozwiązywany. Znajdowanie pochodnych cząstkowych funkcji przez zmienne A I B, przyrównujemy te pochodne do zera.

Powstały układ równań rozwiązujemy dowolną metodą (na przykład metodą podstawieniową lub metodą Cramera) i uzyskujemy wzory na znalezienie współczynników metodą najmniejszych kwadratów (LSM).

Z danymi A I B funkcjonować przyjmuje najmniejszą wartość.

To cała metoda najmniejszych kwadratów. Wzór na znalezienie parametru A zawiera sumy , , i parametr N- ilość danych eksperymentalnych. Wartości tych sum zaleca się obliczać osobno. Współczynnik B znalezione po obliczeniach A.

Głównym obszarem zastosowania takich wielomianów jest przetwarzanie danych eksperymentalnych (konstruowanie wzorów empirycznych). Faktem jest, że wielomian interpolacyjny zbudowany z wartości funkcji uzyskanych za pomocą eksperymentu będzie pod silnym wpływem „szumu eksperymentalnego”, ponadto podczas interpolacji węzły interpolacji nie mogą się powtarzać, tj. nie można wykorzystywać wyników powtarzanych eksperymentów w tych samych warunkach. Wielomian średniokwadratowy wygładza szum i umożliwia wykorzystanie wyników wielu eksperymentów.

Całkowanie i różniczkowanie numeryczne. Przykład.

Całkowanie numeryczne- obliczenie wartości całki oznaczonej (z reguły przybliżonej). Całkę numeryczną rozumiemy jako zbiór metod numerycznych służących do znajdowania wartości określonej całki.

Różniczkowanie numeryczne– zestaw metod obliczania wartości pochodnej funkcji dyskretnie danej.

Integracja

Sformułowanie problemu. Matematyczne przedstawienie problemu: konieczne jest znalezienie wartości pewnej całki

gdzie a, b są skończone, f(x) jest ciągłe na [а, b].

Przy rozwiązywaniu problemów praktycznych często zdarza się, że całka jest niewygodna lub niemożliwa do potraktowania analitycznego: nie można jej wyrazić w funkcjach elementarnych, całkę można podać w postaci tabeli itp. W takich przypadkach stosuje się metody całkowania numerycznego używany. Metody całkowania numerycznego polegają na zastąpieniu pola trapezu krzywoliniowego skończoną sumą obszarów o prostszych kształtach geometrycznych, które można dokładnie obliczyć. W tym sensie mówi się o zastosowaniu wzorów kwadraturowych.

Większość metod wykorzystuje reprezentację całki jako sumy skończonej (wzór kwadraturowy):

Wzory kwadraturowe opierają się na idei zastąpienia wykresu całki na przedziale całkowania funkcjami o prostszej postaci, które można łatwo zintegrować analitycznie, a co za tym idzie, łatwo obliczyć. Najprostsze zadanie konstruowania wzorów kwadraturowych realizuje się dla wielomianowych modeli matematycznych.

Można wyróżnić trzy grupy metod:

1. Metoda z podziałem odcinka całkowania na równe przedziały. Podziału na przedziały dokonuje się z góry, zazwyczaj wybiera się przedziały równe (aby ułatwić obliczenie funkcji na końcach przedziałów). Oblicz pola i zsumuj je (metody prostokątów, trapezu, Simpsona).

2. Metody podziału odcinka całkowania za pomocą punktów specjalnych (metoda Gaussa).

3. Obliczanie całek za pomocą liczb losowych (metoda Monte Carlo).

Metoda prostokątna. Niech funkcja (rysunek) będzie całkowana numerycznie na odcinku . Dzielimy odcinek na N równych odcinków. Pole każdego z N trapezów krzywoliniowych można zastąpić polem prostokąta.

Szerokość wszystkich prostokątów jest taka sama i równa:

Jako wybór wysokości prostokątów można wybrać wartość funkcji znajdującej się po lewej stronie. W tym przypadku wysokość pierwszego prostokąta będzie wynosić f(a), drugiego będzie wynosić f(x 1),…, N-f(N-1).

Jeśli jako wybór wysokości prostokąta przyjmiemy wartość funkcji na prawym brzegu, to w tym przypadku wysokość pierwszego prostokąta będzie wynosić f (x 1), drugiego - f (x 2), . .., N - f (x N).

Jak widać, w tym przypadku jeden ze wzorów daje przybliżenie całki z nadmiarem, a drugi z niedoborem. Jest inny sposób - wykorzystać do przybliżenia wartość funkcji w środku segmentu całkującego:

Oszacowanie błędu bezwzględnego metody prostokątów (środek)

Oszacowanie błędu bezwzględnego metod lewego i prawego prostokąta.

Przykład. Oblicz dla całego przedziału i podziel go na cztery części

Rozwiązanie. Analityczne obliczenie tej całki daje I=arctg(1) –arctg(0)=0,7853981634. W naszym przypadku:

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;

Obliczamy metodą lewych prostokątów:

Obliczamy metodą prostokątów prostokątnych:

Oblicz metodą średnich prostokątów:

Metoda trapezowa. Użycie do interpolacji wielomianu pierwszego stopnia (prosta poprowadzona przez dwa punkty) prowadzi do wzoru na trapez. Końce segmentu całkowania traktowane są jako węzły interpolacji. W ten sposób trapez krzywoliniowy zastępuje się zwykłym trapezem, którego powierzchnię można znaleźć jako iloczyn połowy sumy podstaw i wysokości

W przypadku N odcinków całkowania dla wszystkich węzłów, z wyjątkiem skrajnych punktów odcinka, wartość funkcji zostanie uwzględniona w sumie dwukrotnie (ponieważ sąsiednie trapezy mają jeden wspólny bok)

Wzór trapezu można otrzymać, biorąc połowę sumy wzorów prostokątnych wzdłuż prawej i lewej krawędzi odcinka:

Sprawdzenie stabilności rozwiązania. Z reguły im krótsza jest długość każdego interwału, tj. im większa liczba tych przedziałów, tym mniejsza różnica między przybliżonymi i dokładnymi wartościami całki. Dotyczy to większości funkcji. W metodzie trapezowej błąd w obliczeniu całki ϭ jest w przybliżeniu proporcjonalny do kwadratu kroku integracji (ϭ ~ h 2). Zatem, aby obliczyć całkę określonej funkcji w granicach a, b, konieczne jest podziel odcinek na N 0 odcinków i znajdź sumę pól trapezu. Następnie musisz zwiększyć liczbę przedziałów N 1, ponownie obliczyć sumę trapezu i porównać wynikową wartość z poprzednim wynikiem. Należy to powtarzać aż do osiągnięcia (N i) określonej dokładności wyniku (kryterium zbieżności).

W przypadku metod prostokątnych i trapezowych zwykle w każdym kroku iteracji liczba przedziałów zwiększa się 2-krotnie (N i +1 =2N i).

Kryterium zbieżności:

Główną zaletą reguły trapezu jest jej prostota. Jeśli jednak integracja wymaga dużej precyzji, metoda ta może wymagać zbyt wielu iteracji.

Błąd bezwzględny metody trapezowej oceniane jako
.

Przykład. Oblicz całkę w przybliżeniu oznaczoną, korzystając ze wzoru na trapez.

a) Podział segmentu integracyjnego na 3 części.
b) Podział segmentu integracji na 5 części.

Rozwiązanie:
a) Warunkowo segment integracji należy podzielić na 3 części, tj.
Oblicz długość każdego odcinka przegrody: .

W ten sposób ogólny wzór trapezów zostaje zredukowany do przyjemnego rozmiaru:

Wreszcie:

Przypominam, że otrzymana wartość jest przybliżoną wartością powierzchni.

b) Segment integracji dzielimy na 5 równych części, tj. . zwiększając liczbę segmentów zwiększamy dokładność obliczeń.

Jeżeli , to wzór na trapez przyjmuje postać:

Znajdźmy krok partycjonowania:
, to znaczy długość każdego segmentu pośredniego wynosi 0,6.

Po zakończeniu zadania wygodnie jest sporządzić wszystkie obliczenia za pomocą tabeli obliczeń:

W pierwszym wierszu piszemy „licznik”

W rezultacie:

Cóż, naprawdę jest wyjaśnienie, i to poważne!
Jeśli dla 3 segmentów przegrody, to dla 5 segmentów. Jeśli weźmiesz jeszcze więcej segmentów => będzie jeszcze dokładniejszy.

Formuła Simpsona. Wzór trapezowy daje wynik silnie zależny od wielkości kroku h, co wpływa na dokładność obliczenia całki oznaczonej, szczególnie w przypadkach, gdy funkcja jest niemonotoniczna. Można założyć wzrost dokładności obliczeń, jeżeli zamiast odcinków prostych zastępujących krzywoliniowe fragmenty wykresu funkcji f(x) zastosujemy np. fragmenty paraboli dane przez trzy sąsiednie punkty wykresu . Podobna interpretacja geometryczna leży u podstaw metody Simpsona służącej do obliczania całki oznaczonej. Cały przedział całkowania a,b dzielimy na N odcinków, długość odcinka również będzie równa h=(b-a)/N.

Wzór Simpsona to:

pozostały termin

Wraz ze wzrostem długości segmentów dokładność wzoru maleje, dlatego w celu zwiększenia dokładności stosuje się złożony wzór Simpsona. Cały przedział całkowania dzielimy na parzystą liczbę identycznych odcinków N, długość odcinka również będzie równa h=(b-a)/N. Złożony wzór Simpsona to:

We wzorze wyrażenia w nawiasach są sumami wartości odpowiednio całki na końcach nieparzystych i parzystych segmentów wewnętrznych.

Pozostała część wzoru Simpsona jest już proporcjonalna do czwartej potęgi kroku:

Przykład: Oblicz całkę, korzystając z reguły Simpsona. (Dokładne rozwiązanie - 0,2)

Metoda Gaussa

Wzór kwadraturowy Gaussa. Podstawową zasadę wzorów kwadraturowych drugiej odmiany widać na rysunku 1.12: należy tak rozmieścić punkty X 0 i X 1 wewnątrz segmentu [ A;B] tak, aby pola „trójkątów” w sumie były równe obszarom „odcinka”. Podczas korzystania ze wzoru Gaussa początkowy segment [ A;B] jest redukowany do przedziału [-1;1] poprzez zmianę zmiennej X NA

0.5∙(BA)∙T+ 0.5∙(B + A).

Następnie , Gdzie .

To podstawienie jest możliwe, jeśli A I B są skończone, oraz funkcja F(X) jest ciągły w [ A;B] Wzór Gaussa na N zwrotnica x ja, I=0,1,..,N-1 wewnątrz segmentu [ A;B]:

, (1.27)

Gdzie ja I A ja dla różnych N podane są w podręcznikach. Na przykład kiedy N=2 A 0 =A 1=1; Na N=3: T 0 = t 2" 0,775, T 1 =0, A 0 =A 2" 0,555, A 1" 0,889.

Wzór kwadraturowy Gaussa

otrzymane przy funkcji wagi równej jedności p(x)= 1 i węzły x ja, które są pierwiastkami wielomianów Legendre'a

Szanse A jałatwo obliczyć za pomocą wzorów

I=0,1,2,...N.

Wartości węzłów i współczynników dla n=2,3,4,5 podano w tabeli

Zamówienie Węzły Szanse
N=2 x 1=0 x 0 =-x2=0.7745966692 1=8/9 ZA 0 = ZA 2=5/9
N=3 x 2 =-x 1=0.3399810436 x 3 =-x0=0.8611363116 ZA 1 = ZA 2=0.6521451549 ZA 0 = ZA 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

Przykład. Oblicz wartość, korzystając ze wzoru Gaussa dla N=2:

Dokładna wartość: .

Algorytm obliczania całki według wzoru Gaussa przewiduje nie podwojenie liczby mikrosegmentów, ale zwiększenie liczby rzędnych o 1 i porównanie uzyskanych wartości całki. Zaletą wzoru Gaussa jest duża dokładność przy stosunkowo małej liczbie rzędnych. Wady: niewygodne w przypadku obliczeń ręcznych; muszą być przechowywane w pamięci komputera ja, A ja dla różnych N.

Błąd wzoru na kwadraturę Gaussa na odcinku będzie w tym samym czasie. Dla wzoru na resztę członu będzie tam, gdzie współczynnik α N szybko maleje wraz ze wzrostem N. Tutaj

Wzory Gaussa zapewniają wysoką dokładność już przy niewielkiej liczbie węzłów (od 4 do 10), w tym przypadku w praktycznych obliczeniach liczba węzłów waha się od kilkuset do kilku tysięcy. Zauważamy również, że wagi kwadratur Gaussa są zawsze dodatnie, co zapewnia stabilność algorytmu obliczania sum

W górę