WYKŁAD nr 6
1. Metoda najmniejszych kwadratów
Minimalizacja wskaźnika jakości, będącego sumą kwadratów funkcji nieliniowych wektora zmiennych decyzyjnych , może być z dużym powodzeniem zastosowana do wyznaczania współczynników funkcji aproksymującej zbiór dyskretnych danych, takiej
x
przy której średniokwadratowy błąd odchyleń między zbiorem aproksymowanym a funkcja aproksymującą będzie minimalny.
Przedstawiony problem sprowadza się do zadania programowania nieliniowego bez ograniczeń przy wskaźniku jakości w postaci
( )
min[
1( )
2 2( )
2 3( )
2 ...( )
2min x x x n x
x
x F x = f + f + f + + f
]
]
(1) Przykład 1
Otrzymany z n pomiarów zbiór danych chcemy aproksymować linia prostą tak wpisaną w zbiór otrzymanych pomiarów , aby suma po całym zbiorze n odchyleń podniesionych do kwadratu (błędów) między prostą a wartościami pomiarów była minimalna.
Przyjmiemy zbiór danych dyskretnych w postaci
(2)
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
•
•
•
•
•
•
n n n
y y
y y y
x x
x x x
P P
P P
3 2 1
3 2 1
3 2 1
Wskaźnik jakości przyjmie postać
(3)
( ) ∑ [ ( )
=
+
⋅
−
⋅
= n
i
i b i
a F a b y a x b
1
2
, , 0,5
min
Różniczkując wskaźnik jakości względem a, b otrzymujemy dwa równania o dwóch niewiadomych w postaci
( )
[ ] ( ) [ ( ) ] ( ) [ ( ) ] ( )
( ) ( ) ( )
[ ] [ ] [ ]
y x 1 x x
x ⋅ ⋅ + ⋅ ⋅ = ⋅
⎥⎥
⎥⎥
⎦
⎤
⎢⎢
⎢⎢
⎣
⎡
⋅ •
•
=
⋅
⎥⎥
⎥⎥
⎦
⎤
⎢⎢
⎢⎢
⎣
⎡
⋅ •
• +
⋅
⎥⎥
⎥⎥
⎦
⎤
⎢⎢
⎢⎢
⎣
⎡
⋅ •
•
+ + +
=
⋅ + + + +
⋅ + + +
=
−
⋅ +
− + +
−
⋅ +
− +
−
⋅ +
−
=
∂
∂
T T
T
n n n
n n
n n n
n
n n
n
b a
y y y x x
x b x
x x a x x x x x x
y x y
x y x b x x
x a x x
x
x b ax y x
b ax y x b ax y
a F
2 1
2 1 2
1 2
1
2 1
2 2 1 1 2
1 2
2 2 2 1
2 2
2 1 1
1
1 1 1
...
...
...
0 ...
0
jeżeli: xT⋅x=L1 xT⋅1=L2 xT⋅y=L3 wówczas
3 2
1 a L b L
L ⋅ + ⋅ = (4)
( )
( ) ( ( ) ) ( ( )
(
...) (
...)
* * 00 ...
0
2 1 2
1
2 2 1
1
= + +
+ +
− + + +
= +
− + + +
− + +
−
=
∂
∂
b n a x x
x y y
y
b ax y b
ax y b ax y
b F
n n
n
n
)
[ ] [ ] [ ]
1 y 1 1 1
x ⋅ ⋅ + ⋅ ⋅ = ⋅
=
⋅
⎥⎥
⎥⎥
⎦
⎤
⎢⎢
⎢⎢
⎣
⎡
⋅ •
• +
⋅
⎥⎥
⎥⎥
⎦
⎤
⎢⎢
⎢⎢
⎣
⎡
⋅ •
• +
⎥⎥
⎥⎥
⎦
⎤
⎢⎢
⎢⎢
⎣
⎡
⋅ •
•
T T
T
n n
b a
b a
x x x y
y
y 0
1 1 1 1 1 1 1 1 1
1 1 1
2 1 2
1
jeżeli: xT⋅1=L2 1T⋅1=L4 yT⋅1=L5 wówczas
5 4
2 a L b L
L ⋅ + ⋅ = (5)
Dysponujemy obecnie dwoma równaniami, z których w prosty sposób wyliczymy współczynniki a, b prostej aproksymującej wejściowy zbiór danych dyskretnych.
5 4 2
3 2 1
L b L a L
L b L a L
=
⋅ +
⋅
=
⋅ +
⋅
Przykład 2
Poprzedni zbiór danych chcemy aproksymować wielomianem np. czwartego stopnia tak wpisanym w zbiór otrzymanych pomiarów, aby suma (po całym zbiorze n) odchyleń podniesionych do kwadratu (błędów) między wielomianem a wartościami pomiarów była minimalna.
Wskaźnik jakości przyjmie postać
(6)
( ) ∑ [ ( ) ]
=
+
⋅ +
⋅ +
⋅ +
⋅
−
⋅
= n
i
i i
i i
a F yi a x a x a x a x a
1
2 2 3
4 (2) (3) (4) (5)
) 1 ( 5
, 0 min a
Różniczkując wskaźnik jakości względem elementów wektora a otrzymujemy pięć równania o pięciu niewiadomych, z których wyliczamy współczynniki wielomianu aproksymującego wpisującego się w zbiór danych dyskretnych z minimalnym błędem średniokwadratowym.
[ ]
{ }
[ ]
{ }
[ ]
{
(1) (2) (3) (4) (5) ( )}
0) ( ) 5 ( ) 4 ( ) 3 ( ) 2 ( ) 1 (
) ( ) 5 ( ) 4 ( ) 3 ( ) 2 ( ) 1 ( )
1 (
4 0 1
2 3
4
4 2 0 2 1
2 2
2 3
2 4
2 2
4 1 0 1 1
1 2
1 3
1 4
1 1
=
−
⋅ +
+ +
+
− +
•
+
−
⋅ +
+ +
+
− +
+
−
⋅ +
+ +
+
−
=
∂
∂
n n n
n n
n
n a x a x a x a x a x x
y
x x a x a x a x a x a y
x x a x a x a x a x a y a F
(7)
Należy rozdzielić otrzymane równanie względem a(1),a(2),a(3),a(4),a(5)
(8)
[ ]
[ ]
[ ]
[ ]
[ ] (
2 24 4)
4 1 1 8 8
2 8
1
8 8
2 8
1
8 8
2 8
1
8 8
2 8
1
8 8
2 8
1
....
) 5 ( ...
) 5 ( ) 5 (
) 4 ( ...
) 4 ( ) 4 (
) 3 ( ....
) 2 ( ) 3 (
) 2 ( ....
) 2 ( ) 2 (
) 1 ( ....
) 1 ( ) 1 (
n n n
n n n n
x y x
y x y x a x
a x a
x a x
a x a
x a x
a x a
x a x
a x a
x a x
a x a
+ + +
= +
+ +
+
+ +
+ +
+
+ +
+ +
+
+ +
+ +
+
+ +
+ +
Wprowadzając zapis macierzowy równanie otrzymuje formę
( ) ( ) ( )
( )
5( )
4 46 7
8
) 5 ( )
4 (
) 3 ( )
2 ( )
1 (
x y 1
x 1
x
1 x 1
x 1
x
⋅
=
⋅
⋅ +
⋅
⋅ +
+
⋅
⋅ +
⋅
⋅ +
⋅
⋅
T T T
T T
T
a a
a a
a (9)
Aproksymacja pojedynczej serii pomiarów linią prostą o optymalnych współczynnikach a, b
x 1,00 2,00 3,00 4,00 5,00 6,00 7,00 8,00 9,00 10,00
y 0,10 0,30 0,50 0,80 1,20 0,90 0,40 1,00 0,80 1,00
1 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00
L1=[x]T*[x] 1,00 4,00 9,00 16,00 25,00 36,00 49,00 64,00 81,00 100,00 385,0000
L2=[x]T*[1] 1,00 2,00 3,00 4,00 5,00 6,00 7,00 8,00 9,00 10,00 55,0000
L3=[x]T*[y] 0,10 0,60 1,50 3,20 6,00 5,40 2,80 8,00 7,20 10,00 44,8000
L4=[1]T*[1] 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 10,0000
L5=[y]T*[1] 0,10 0,30 0,50 0,80 1,20 0,90 0,40 1,00 0,80 1,00 7,0000
L6=(L3*L2/L1)-L5 -0,6000
L7=(L2^2/L1)-L4 -2,1429
b=L6/L7 0,2800
a=(L3/L1)-b*(L2/L1) 0,0764
y1= 0,36 0,43 0,51 0,59 0,66 0,74 0,81 0,89 0,97 1,04
f 0,07 0,02 0,00 0,05 0,29 0,03 0,17 0,01 0,03 0,00 0,6589 <-- F
inna prosta
a ( odstrojone) 0,0650
b (odsrtojone) 0,3500
y (odstrojone) 0,42 0,48 0,55 0,61 0,68 0,74 0,81 0,87 0,94 1,00
f 0,10 0,03 0,00 0,04 0,28 0,03 0,16 0,02 0,02 0,00 0,6701 <-- F
Akroksymacja linia prostą
0,00 0,20 0,40 0,60 0,80 1,00 1,20 1,40
1 2 3 4 5 6 7 8 9 10
współrzedna x (punktu)
wspołrzedna y (punktu)
y y1=
y (odstrojone) Aproksymacja linią prostą
współrzędna y (punktu)
współrzędna x (punktu)
Rys. 1. Aproksymacja linią prostą
Różniczkując funkcję F względem następnych współczynników wielomianu otrzymu- jemy kolejne brakujące równania
( )
x7 T ⋅1⋅a(1)+( )
x6 T⋅1⋅a(2)+( )
x5 T ⋅1⋅a(3)+( )
x4 T⋅1⋅a(4)+( )
x3 T⋅1⋅a(5) = yT⋅x3( )
x6 T ⋅1⋅a(1)+( )
x5 T ⋅1⋅a(2)+( )
x4 T⋅1⋅a(3)+( )
x3 T⋅1⋅a(4)+( )
x2 T⋅1⋅a(5) = yT ⋅x2( )
x5 T ⋅1⋅a(1)+( )
x4 T⋅1⋅a(2)+( )
x3 T ⋅1⋅a(3)+( )
x2 T⋅1⋅a(4)+( )
x1T ⋅1⋅a(5) = yT⋅x1( )
x4 T ⋅1⋅a(1)+( )
x3 T ⋅1⋅a(2)+( )
x2 T ⋅1⋅a(3)+( )
x1 T ⋅1⋅a(4)+( )
x0 T ⋅1⋅a(5) = yT⋅x0Wykonując mnożenia wektorów znajdujących się przy poszukiwanych współczynnikach, otrzymujemy proste równanie macierzowe w postaci
(10)
⎥⎥
⎥⎥
⎥⎥
⎦
⎤
⎢⎢
⎢⎢
⎢⎢
⎣
⎡
=
⎥⎥
⎥⎥
⎥⎥
⎦
⎤
⎢⎢
⎢⎢
⎢⎢
⎣
⎡
⋅
⎥⎥
⎥⎥
⎥⎥
⎦
⎤
⎢⎢
⎢⎢
⎢⎢
⎣
⎡
5 4 3 2 1
55 54 53 52 51
45 44 43 42 41
35 34 33 32 31
25 24 23 22 21
15 14 13 12 11
) 5 (
) 4 (
) 3 (
) 2 (
) 1 (
b b b b b
a a a a a
L L L L L
L L L L L
L L L L L
L L L L L
L L L L L
(11) b
a b
a= ⇒ = ⋅
⋅ L−1
L
Warto zauważyć, że macierz współczynników liczbowych L jest macierzą symetryczną względem głównej przekątnej, co zdecydowanie zmniejsza ilość obliczeń przy wyzna- czaniu jej elementów np. L12=L21,L13=L31,L14 =L41 itp.
W wyniku opisanej procedury obliczeniowej otrzymamy wektor współczynników wielomianu aproksymującego zbiór danych dyskretnych. Wielomian ze współczynnikami
jest wektorem optymalnym w sensie minimalnego błędu, tzn. nie istnieje wielomian czwartego rzędu o innych współczynnikach przy którym suma kwadratów odchyleń między przyjętymi punktami dyskretnymi a aproksymującym wielomianem byłaby mniejsza.
a a
Przykład 3
Pomiar stanu zbiornika retencyjnego odbywa się w wyniku odczytu rzędnych wypełnienia zbiornika w kilku miejscach pomiarowych. Otrzymuje się tym samym kilka pomiarów dla ustalonej chwili t, co w pewnym horyzoncie
[ ]
0,T stanowi kilka serii pomiarowych.Stosując metodę najmniejszych kwadratów należy aproksymować np. trzy serie pomiarowe wielomianem np. trzeciego stopnia.
Funkcja kryterialna jest w tym przypadku sumą odchyłek między wartościami pomiarowymi a wielomianem dla ustalonej chwili pomiaru, zliczoną po wszystkich chwilach pomiarowych.
(12)
[ ]
{ }
∑∑
= =⋅ +
⋅ +
⋅ +
⋅
−
⋅
= 3
1 10
1
0 2 1
2
3 (2) (1) (4)
) 1 ( 5
, 0
i j
i i
i i
ij a x a x a x a x
y F
Różniczkując wskaźnik jakości F względem a otrzymujemy cztery równania o czterech niewiadomych z których wyliczamy współczynniki wielomianu aproksymującego wpi- sującego się z zbór danych dyskretnych z minimalnym błędem średniokwadratowym
Zbiornik
Punkty pomiarowe
x1 x2 x3 x10
y11
y12
y13 y10,3
2
y10,
1
y10,
Rys. 2. Serie pomiarowe stanu zbiornika
[ ]
{ }
[ ]
{ }
[ ]
{ }
[ ]
{ }
[ ]
{ }
[ ]
{
(1)(1) (2)(2) (3)(3) (4)(4) ( ( )}
0) ( ) 4 ( ) 3 ( ) 2 ( ) 1 (
) ( ) 4 ( ) 3 ( ) 2 ( ) 1 (
) ( ) 4 ( ) 3 ( ) 2 ( ) 1 (
) ( ) 4 ( ) 3 ( ) 2 ( ) 1 ( )
1 (
3 10 0 10 1
10 2
10 3
10 3
, 10
3 10 0 10 1
10 2
10 3
10 2
, 10
3 10 0 10 1
10 2
10 3
10 1
, 10
3 1 0 1 1
1 2
1 3
1 13
3 1 0 1 1
1 2
1 3
1 12
3 1 0 1 1
1 2
1 3
1 11
=
−
⋅ +
+ +
− +
−
⋅ +
+ +
− +
−
⋅ +
+ +
− +
•
+
−
⋅ +
+ +
− +
+
−
⋅ +
+ +
− +
+
−
⋅ +
+ +
−
=
∂
∂
x x a x a x a x a y
x x a x a x a x a y
x x a x a x a x a y
x x a x a x a x a y
x x a x a x a x a y
x x a x a x a x a y a F
(13)
Wprowadzając zapis macierzowy równanie otrzymuje formę
( )
6 3 (1)( )
5 3 (2)( )
4 3 (3)( )
3 3 (4) W3 T TT T
T 1 a x 1 a x 1 a x 1 a y x
x ⋅ ⋅ + ⋅ ⋅ + ⋅ ⋅ + ⋅ ⋅ = ⋅ (14)
w której
( ) [
106]
6 2 6 1
6 T = x x • • x
x
( )
y T =[ [
y11 y12 y13] [
y21 y22 y23]
• •[
y10,1 y10,2 y10,3] ]
( ) [ [ ] [ ] [
103] ]
3 10 3 10 3
2 3 2 3 2 3 1 3 1 3 1
3 T = x x x x x x • • x x x
x
gdzie górne indeksy wskazują potęgi, a dolne numer pomiaru (rys. 2).
Różniczkując funkcję F względem następnych współczynników wielomianu aproksy- mującego otrzymujemy kolejne brakujące równania
( )
5 3 (1)( )
4 3 (2)( )
3 3 (3)( )
2 3 (4) W2 T TT T
T 1 a x 1 a x 1 a x 1 a y x
x ⋅ ⋅ + ⋅ ⋅ + ⋅ ⋅ + ⋅ ⋅ = ⋅
( )
4 3 (1)( )
3 3 (2)( )
2 3 (3)( )
1 3 (4) W1 T TT T
T 1 a x 1 a x 1 a x 1 a y x
x ⋅ ⋅ + ⋅ ⋅ + ⋅ ⋅ + ⋅ ⋅ = ⋅
( )
3 3 (1)( )
2 3 (2)( )
1 3 (3)( )
0 3 (4) W0 T TT T
T 1 a x 1 a x 1 a x 1 a y x
x ⋅ ⋅ + ⋅ ⋅ + ⋅ ⋅ + ⋅ ⋅ = ⋅
Wykonując mnożenia wektorów stojących przy poszukiwanych współczynnikach, otrzy- mujemy proste równanie macierzowe w postaci
(15)
⎥⎥
⎥⎥
⎦
⎤
⎢⎢
⎢⎢
⎣
⎡
=
⎥⎥
⎥⎥
⎦
⎤
⎢⎢
⎢⎢
⎣
⎡
⋅
⎥⎥
⎥⎥
⎦
⎤
⎢⎢
⎢⎢
⎣
⎡
4 3 2 1
44 43 42 41
34 33 32 31
24 23 22 21
14 13 12 11
) 4 (
) 3 (
) 2 (
) 1 (
P P P P
a a a a
L L L L
L L L L
L L L L
L L L L
w którym np.: L11=
( )
x5 T⋅1, P1 =yT⋅xW3 itp.Odwracając macierz współczynników otrzymujemy poszukiwany wektor współczyn- ników , wielomianu aproksymującego zbiór danych dyskretnych.
L a
(16) b
a b
a= ⇒ = ⋅
⋅ L−1
L
Każdy wielomian trzeciego rzędu o innych współczynnikach niż zawarte w wektorze a , będzie aproksymował przyjęte do obliczeń serie pomiarowe z wyższą wartością wskaźnika jakości. Wielomian o wyliczonych współczynnikach zapewnia minimum przyjętego wskaźnika jakości.