Wykład 11 Wyrównanie nieliniowe i odporne ROBUST
Niezawodność
Zadanie optymalizacji (SOLVER)
Funcja celu E=vTC−1v gdzie v=Ladj−Lobs
W szczególności dla obserwacji niezależnych $\mathbf{E =}\sum_{\mathbf{i = 1}}^{\mathbf{n}}\left( \frac{\mathbf{v}_{\mathbf{i}}}{\mathbf{\sigma}_{\mathbf{i}}} \right)^{\mathbf{2}}$
a dla jednakowo dokładnych $\mathbf{E =}\sum_{\mathbf{i = 1}}^{\mathbf{n}}\mathbf{v}_{\mathbf{i}}^{\mathbf{2}}$
Zadanie z ograniczeniami
min E(V) przy czym W(L)=0 w szczególności BV = w
Zadanie bez ograniczeń
min E(X)=vTC−1v gdzie v(X)=L(X)−Lobs
w szczegolnosci V = Ax + L E=VTV=xTATAx + 2xTATL+LTL
Wyrównanie odporne na błędy grube (Robust) – manipulowanie wagami (dokładnością obserwacji)
Zmodyfikowana funkcja celu $\mathbf{E =}\sum_{\mathbf{i = 1}}^{\mathbf{n}}{\mathbf{p}\left( \mathbf{V}_{\mathbf{i}} \right)\mathbf{*}\mathbf{V}_{\mathbf{i}}^{\mathbf{2}}}$
gdzie poprawki standaryzowane $\mathbf{V}_{\mathbf{i}}\mathbf{=}\frac{\mathbf{v}_{\mathbf{i}}}{\mathbf{\sigma}_{\mathbf{i}}}$
Funkcje tłumienia (wagowe) p(V)
„Black and White” $\mathbf{p}\left( \mathbf{V} \right)\mathbf{=}\left\{ \begin{matrix} \mathbf{\ \ 1\ \ dla\ }\left| \mathbf{V} \right|\mathbf{<}\mathbf{V}_{\mathbf{\text{graniczne}}}\mathbf{= 3\ \ \ \ \ \ \ \ \ \ \ } \\ \mathbf{0\ \ w\ przeciwnym\ przypadku} \\ \end{matrix}\mathbf{\text{\ \ \ \ }} \right\}$
Gaussa p(V)=e−V2/2
Problemy z inicjacją iteracji – przykład na średniej
Obserwacje jednakowo dokładne σ = 1 : 200, 110, 111, 112
Start x=200 “dobra” tylko obserwacja 200 xwyr=200
Start x=110 “dobre” 110, 111, 112 xwyr=111
Rozwiązaniem jest Start od wyrównania klasycznego – które praktycznie przesądza dyskwalifikacji obserwacji odstających
Niezawodność – możliwość wykrycia i identyfikacji błędu grubego
V = R L
R = I − A(ATA)−1AT
R = R2
trace R = n − u
0 ≤ Rii ≤ 1
Symulujemy tylko jeden błąd w k-tej obserwacji
$$L_{i} = \begin{Bmatrix}
e\ \ dla\ \ i = k \\
0\ \ \ dla\ i \neq k \\
\end{Bmatrix}$$
$$L = \begin{bmatrix}
\begin{matrix}
0 \\
\vdots \\
0 \\
\end{matrix} \\
e \\
\begin{matrix}
0 \\
\vdots \\
0 \\
\end{matrix} \\
\end{bmatrix}$$
V = R L = [e Rie]
W szczególności Vk = e Rkk
Ponieważ 0 ≤ Rkk ≤ 1 to
Dla obserwacji niekontrolowanej (np. w ciągu wiszącym, w konstrukcji jednoznacznej)
Rkk = 0 Vk = 0
Dla obserwacji kontrolowanej stałą (np. odległość punktów stałych)
Rkk = 1 Vk = e
Jeśli |Rkk|>1/2 to większość zaburzenia e oddziałuje na macierzystą obserwację, czyli błąd w obserwacji odbije się w jej poprawce
Function NormKatGrad01(srodek, kat)
Dim low As Double, up As Double, res As Double
low = (srodek - 1) * 200: up = low + 400: res = kat
Do While res >= up: res = res - 400: Loop
Do While res < low: res = res + 400: Loop
NormKatGrad01 = res
End Function
Function Oprz(c, l, p, wykazNXYK) 'range
Dim xa As Double, ya As Double, xb As Double, yb As Double
Dim a1 As Double, ko As Double, ro As Double, kom As Variant
ro = 200 / WorksheetFunction.pi()
On Error GoTo blad
kom = c
xa = WorksheetFunction.VLookup(c, wykazNXYK, 2, False)
ya = WorksheetFunction.VLookup(c, wykazNXYK, 3, False)
kom = l
xb = WorksheetFunction.VLookup(l, wykazNXYK, 2, False)
yb = WorksheetFunction.VLookup(l, wykazNXYK, 3, False)
If p = 0 Then Oprz = Sqr((xb - xa) ^ 2 + (yb - ya) ^ 2): Exit Function
kom = p: a1 = WorksheetFunction.Atan2(xb - xa, yb - ya) * ro
Select Case p
Case Is = -1: ko = a1 - WorksheetFunction.VLookup(c, wykazNXYK, 4, False)
Case Is = -2: ko = a1 - WorksheetFunction.VLookup(c, wykazNXYK, 5, False)
Case Else
xb = WorksheetFunction.VLookup(p, wykazNXYK, 2, False)
yb = WorksheetFunction.VLookup(p, wykazNXYK, 3, False)
ko = WorksheetFunction.Atan2(xb - xa, yb - ya) * ro - a1
End Select
Oprz = NormKatGrad01(1, ko) ' * ro
Exit Function
blad: MsgBox ("Oprz CLP " & c & "," & l & "," & p & " ?? " & kom)
End Function