Języki Modelowania i Symulacji

Podobne dokumenty
Języki Modelowania i Symulacji

Obliczenia naukowe Wykład nr 8

Analiza numeryczna Kurs INP002009W. Wykłady 6 i 7 Rozwiązywanie układów równań liniowych. Karol Tarnowski A-1 p.

Wstęp do metod numerycznych Faktoryzacja QR i SVD. P. F. Góra

04 Układy równań i rozkłady macierzy - Ćwiczenia. Przykład 1 A =

Analiza numeryczna Lista nr 3 (ćwiczenia) x x 2 n x.

Zaawansowane metody numeryczne

10. Metody obliczeniowe najmniejszych kwadratów

Układy równań liniowych. Krzysztof Patan

Rozwiązywanie układów równań liniowych

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

Metody dekompozycji macierzy stosowane w automatyce

Zaawansowane metody numeryczne

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

Metody numeryczne Wykład 4

Zadania egzaminacyjne

Języki Modelowania i Symulacji

Met Me ody numer yczne Wykład ykład Dr inż. Mic hał ha Łanc Łan zon Instyt Ins ut Elektr Elektr echn iki echn i Elektrot Elektr echn olo echn

Obliczenia naukowe Wykład nr 2

Wstęp do metod numerycznych Uwarunkowanie Eliminacja Gaussa. P. F. Góra

Wstęp do metod numerycznych Inne rodzaje faktoryzacji. P. F. Góra

Wartości i wektory własne

Macierze. Rozdział Działania na macierzach

1. Liczby zespolone i

Rozwiązywanie algebraicznych układów równań liniowych metodami bezpośrednimi

Wstęp do metod numerycznych Algebraiczna metoda gradientów sprzężonych. P. F. Góra

5. Rozwiązywanie układów równań liniowych

Metody numeryczne II. Układy równań liniowych

Matematyka stosowana i metody numeryczne

DB Algebra liniowa semestr zimowy 2018

Wstęp do metod numerycznych SVD, metody iteracyjne i metoda gradientów. P. F. Góra

1 Macierze i wyznaczniki

Wykład 5. Metoda eliminacji Gaussa

Wstęp do metod numerycznych Faktoryzacja Cholesky ego i QR. P. F. Góra

Rozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm

φ(x 1,..., x n ) = a i x 2 i +

Zał nr 4 do ZW. Dla grupy kursów zaznaczyć kurs końcowy. Liczba punktów ECTS charakterze praktycznym (P)

O MACIERZACH I UKŁADACH RÓWNAŃ

NUMERYCZNE METODY ROZWIĄZYWANIA ROWNAŃ LINIOWYCH. PRZYGOTOWAŁA: ANNA BANAŚ KoMBo, WILiŚ

Metody numeryczne. Janusz Szwabiński. Metody numeryczne I (C) 2004 Janusz Szwabiński p.1/50

Wstęp do metod numerycznych Równania macierzowe Faktoryzacja LU i Cholesky ego. P. F. Góra

Rozwiązywanie układów równań liniowych metody dokładne Materiały pomocnicze do ćwiczeń z metod numerycznych

MATLAB Prowadzący: dr hab. inż. Marek Jaszczur Poziom: początkujący

Bardzo łatwa lista powtórkowa

Lista. Algebra z Geometrią Analityczną. Zadanie 1 Przypomnij definicję grupy, które z podanych struktur są grupami:

= i Ponieważ pierwiastkami stopnia 3 z 1 są (jak łatwo wyliczyć) liczby 1, 1+i 3

Zastosowania wyznaczników

Wprowadzenie do metod numerycznych Wykład 3 Metody algebry liniowej I Wektory i macierze

Wykład III Układy równań liniowych i dekompozycje macierzy

III TUTORIAL Z METOD OBLICZENIOWYCH

Rozwiązania zadań z listy T.Koźniewskiego

Egzamin z Metod Numerycznych ZSI, Egzamin, Gr. A

Wstęp do metod numerycznych Faktoryzacja macierzy. P. F. Góra

Podstawy środowiska Matlab

Przestrzeń unitarna. Jacek Kłopotowski. 23 października Katedra Matematyki i Ekonomii Matematycznej SGH

; B = Wykonaj poniższe obliczenia: Mnożenia, transpozycje etc wykonuję programem i przepisuję wyniki. Mam nadzieję, że umiesz mnożyć macierze...

dr Mariusz Grządziel 15,29 kwietnia 2014 Przestrzeń R k R k = R R... R k razy Elementy R k wektory;

UKŁADY RÓWNAŃ LINIOWYCH - Metody dokładne

PODSTAWY AUTOMATYKI. MATLAB - komputerowe środowisko obliczeń naukowoinżynierskich - podstawowe operacje na liczbach i macierzach.

ALGEBRA LINIOWA. Wykład 2. Analityka gospodarcza, sem. 1. Wydział Zarządzania i Ekonomii Politechnika Gdańska

Funkcja kwadratowa. f(x) = ax 2 + bx + c,

Wektory i wartości własne

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

A A A A A A A A A n n

a 11 a a 1n a 21 a a 2n... a m1 a m2... a mn x 1 x 2... x m ...

Algebra Liniowa 2 (INF, TIN), MAP1152 Lista zadań

WIELOMIANY SUPER TRUDNE

METODY NUMERYCZNE. wykład. konsultacje: wtorek 10:00-11:30 środa 10:00-11:30. dr inż. Grażyna Kałuża pokój

ELEMENTY ANALIZY NUMERYCZNEJ ELEMENTY ANALIZY NUMERYCZNEJ. Egzamin pisemny zestaw 1 24 czerwca 2019 roku

d) Definiowanie macierzy z wykorzystaniem funkcji systemu Matlak

Ukªady równa«liniowych - rozkªady typu LU i LL'

Wektory i wartości własne

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Wstęp do metod numerycznych 5. Numeryczne zagadnienie własne. P. F. Góra

Formy kwadratowe. Mirosław Sobolewski. Wydział Matematyki, Informatyki i Mechaniki UW. 14. wykład z algebry liniowej Warszawa, styczeń 2017

Formy kwadratowe. Mirosław Sobolewski. Wydział Matematyki, Informatyki i Mechaniki UW. 14. wykład z algebry liniowej Warszawa, styczeń 2011

13 Układy równań liniowych

wszystkich kombinacji liniowych wektorów układu, nazywa się powłoką liniową uk ładu wektorów

Układy równań liniowych i metody ich rozwiązywania

ELEMENTY ANALIZY NUMERYCZNEJ ELEMENTY ANALIZY NUMERYCZNEJ. Egzamin pisemny zestaw 1 26 czerwca 2017 roku

Symulacja obliczeń kwantowych

Metody numeryczne. Janusz Szwabiński. nm_slides-7.tex Metody numeryczne Janusz Szwabiński 11/11/ :45 p.

1 Macierz odwrotna metoda operacji elementarnych

Definicja macierzy Typy i właściwości macierzy Działania na macierzach Wyznacznik macierzy Macierz odwrotna Normy macierzy RACHUNEK MACIERZOWY

RACHUNEK MACIERZOWY. METODY OBLICZENIOWE Budownictwo, studia I stopnia, semestr 6. Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska

Funkcja kwadratowa. f(x) = ax 2 + bx + c = a

Ćwiczenie 3. MatLab: Algebra liniowa. Rozwiązywanie układów liniowych

Metody iteracyjne rozwiązywania układów równań liniowych (5.3) Normy wektorów i macierzy (5.3.1) Niech. x i. i =1

Rozwiazywanie układów równań liniowych. Ax = b

Laboratorium Metod Optymalizacji

ALGEBRA z GEOMETRIA, ANALITYCZNA,

Modelowanie danych hodowlanych

Wstęp do metod numerycznych Metody iteracyjne i metoda gradientów. P. F. Góra

Algebra liniowa z geometrią

Analiza matematyczna i algebra liniowa Macierze

Rozdzia l 11. Przestrzenie Euklidesowe Definicja, iloczyn skalarny i norma. iloczynem skalarnym.

15. Macierze. Definicja Macierzy. Definicja Delty Kroneckera. Definicja Macierzy Kwadratowej. Definicja Macierzy Jednostkowej

Zał nr 4 do ZW. Dla grupy kursów zaznaczyć kurs końcowy. Liczba punktów ECTS charakterze praktycznym (P)

PROGRAMOWANIE KWADRATOWE

Macierze i Wyznaczniki

Transkrypt:

Języki Modelowania i Symulacji Podstawowe Marcin Ciołek Katedra Systemów Automatyki WETI, Politechnika Gdańska 8 listopada 2011

Literatura: 1. D. Kincaid, W. Cheney: Analiza numeryczna, Wydawnictwo Naukowo Techniczne, 2006. 2. P. Davis, W.: Differential Equations - Modelling with MATLAB, Prentice Hall, 1999. 3. Dokumentacja MATLABA i SIMULINKA. 4. B.Mrozek, Z. Mrozek: MATLAB Uniwersalne środowisko do obliczeń naukowo-technicznych, Kraków 1995. 5. T.P. Zieliński: Cyfrowe przetwarzanie sygnałów - Od teori do zastosowań, Warszawa 2009.

O czym będziemy dziś mówili? 1 2 3 4 5 6 7 8 9

cond Wskaźnik (liczba) uwarunkowania c = cond(x); oraz c = cond(x,p); cond(x,p) odpowiada norm(x,p) * norm(inv(x),p) cond(x) odpowiada cond(x,2) inf odnosi się do p=inf fro odnosi się do Frobeniusa

rcond Oszacowanie odwrotności wskaźnika uwarunkowania w 1-normie c = rcond(a); Dla dobrze uwarnkowanych c jest bliskie jedności, dla złych - zeru

norm Norma lub wektora n = norm(a); oraz n = norm(a,p); Gdy A jest macierza: p=1 max(sum(abs(a))) p=2 max(svd(a)), (Singular Value Decomposition) p=inf max(sum(abs(a ))) p= fro sqrt(sum(diag(a *A))), (norma Frobeniusa) Gdy A jest wektorem: norm(a) norm(a,2) p=inf max(abs(a)), p=-inf min(abs(a))

norm x = [0 1 2 3] %norma euklidesowa sqrt(0+1+4+9) ans = 3.7417 >> norm(x,1) ans = 6 >> norm(x,2) ans = 3.7417 >> norm(x,inf) ans = 3 x = 1 2 3 4 >> norm(x,1) ans = 6 >> norm(x,2) ans = 5.4650 >> norm(x,inf) ans = 7 >> norm(x,fro) ans = 5.4772

normest Oszacowanie 2- S macierz kwadratowa (nie musi być rzadka!) nrm = normest(s); nrm = normest(s,tol); Względny bład oszacowania tol (domyślna wartość tego błędu to 1.e-6) [nrm, iter] = normest(s,...); Informacja o liczbie iter wykonanych mnożeń S*S

normest x = 1 2 3 4 >> norm(x,2) ans = 5.4650 >> [nrm,ite] = normest(x) >> nrm = 5.4650 >> ite = 3 >> [nrm,ite] = normest(x,1.e-16) >> nrm = 5.4650 >> ite = 7

null Ortonormalna podprzestrzeni zerowej Z = null(a); Podstawa algorytmu jest rozkład svd (Singular Value Decomposition) danej Czy norm(a*z) = 0? A = [1 2 3 1 2 3 1 2 3]; Z = null(a) Z = 0 0.9636-0.8321-0.1482 0.5547-0.2224

null Ortonormalna podprzestrzeni zerowej Czy norm(a*z) = 0? A*Z ans = 1.0e-015 * 0.2220 0.2220 0.2220 0.2220 0.2220 0.2220 Z'*Z ans = 1.0000-0.0000-0.0000 1.0000 norm(a*z,1) < 1e-12 >> ans = 1

null Z = null(a, r ); odpowiada próbie znalezienia całkowitoliczbowej bazy podprzestrzeni zerowej dla małych ZR = null(a,'r') >> ZR = -2-3 1 0 0 1 >> A*ZR = 0 0 0 0 0 0 >> ZR'*ZR = 5 6 6 10

orth Ortonormalna podprzestrzeni zasięgowej (obrazu) B = orth(a); Podstawa algorytmu jest rozkład svd danej Czy B *B = eye((a))?

orth A = 1 2 3 1 2 3 1 2 3 >> b = orth(a) >> ans = [-0.5774-0.5774-0.5774]' >> b'*b = 1 A = 3 2 3 1 2 3 1 2 3 >> B = orth(a) ans = -0.6590 0.7521-0.5318-0.4660-0.5318-0.4660 >> B'*B = 1.0000 0.0000 0.0000 1.0000

orth % dwa wektory liniowo niezależne v1 = [1; 2; 3]; v2 = [1; -2; 3]; % wektory nie są ortogonalne v1' * v2 = 6; V = [v1,v2] %Poszukiwanie ortonormlnej bazy dla tej samej przestrzeni W = orth(v) W = 0.2673 0.1690 0.5345-0.8452 0.8018 0.5071 w1 = W(:,1); w2 = W(:,2) %wektory są ortogonalne w1' * w2 = 2.5723e-17 w1' * w1 = 1 w2' * w2 = 1 W' * W = 1.0000 0.0000 0.0000 1.0000

orth x = 2 * v1-3 * v2 x = -1 10-3 %obliczam współczynnik otzymany z rzutowania %wektora x na wektor w1 c1 = x' * w1 c1 = 2.6726 %obliczam współczynnik otzymany z rzutowania %wektora x na wektor w1 c2 = x' * w2 c2 = -10.1419 xw = c1 * w1 + c2 * w2 xw = -1.000 10.000-3.000 error = x - xw error = 1.0e-14 * [0.1332 0 0]' norm(error) = 1.3323e-15!!!

Rzad k = (A); oraz k = (A,tol); (A,tol) oszacowanie liczby wartości szczególnych danej większych niż tol Algorytm: s = svd(a); tol = max(size(a))*eps*(max(s)); r = sum(s > tol); A = 3 2 3 1 2 3 1 2 3 >> s = svd(a) >> ans = [ 6.9156 1.4746 0.0000] >> tol = max(size(a))*eps*(max(s)) >> ans = 4.6067e-015 >> r = sum(s > tol) >> ans = 2

trace Ślad t=trace(a); Algorytm: t = sum(diag(a)); A = 1 2 3 4 5 6 7 8 19 >> trace(a) >> ans = 25

rref Algorytm eliminacji krokowej Procedura z częściowym wyborem elementów głównych R = rref(a); R forma A po krokowej eliminacja G-J próg dla pomijalnych elementów kolumnowych (max(size(a))*eps *norm(a,inf))... = rref(a,tol); tol narzucona tolerancja (próg)

rref Ax = b A = b = 1 2 3 4 4 5 6 8 7 8 19 2 W = 1 2 3 4 4 5 6 8 7 8 19 2 rref(w)= 1.0000 0 0-2.3333 0 1.0000 0 4.6667 0 0 1.0000-1.0000 >> W\b = -2.3333 4.6667-1.0000

rref Ax = b syms a b c A = b = [ a, b, c] 4 [ b, c, a] 8 [ 2*a + b, b + 3*c, a + c] 2 W = [ a, b, c, 4] [ b, c, a, 8] [ 2*a + b, b + 3*c, a + c, 2] R= [1,0,0, -(2*(- 13*c^2 + 4*a*c + 5*a*b))/ [0,1,0, -(2*(- 7*a^2 + 4*c*a + 5*b*c))/ [0,0,1,(2*(4*a*b - 15*a*c + 4*b*c + 5*b^2))/ /(- 2*a^2*c + b*a^2 - a*c^2 + 2*b*c^2)] /(- 2*a^2*c + b*a^2 - a*c^2 + 2*b*c^2)] /(- 2*a^2*c + b*a^2 - a*c^2 + 2*b*c^2)]

lu dla układu równań Ax = b Lz = b z = L 1 b Ux = z x = U 1 z Macierz A może być prostokatna [L, U] = lu(a); L permutacja dolnej trójkatnej, U macierz górna trójkatna [L, U, P] = lu(a); A = L*U L dolna trójkatna z jednostkowa diagonala U górna trójkatna, P macierz permutacji L*U = P*A

input n, (a ij ) for k = 1 to n do l kk = 1 for j = k to n do k 1 u kj (a kj l ks u sj ) end do s=1 for i = k + 1 to n do k 1 l ik (a ik l is u sk )/u kk end do s=1 end do output (l ij ), (u ij )

A = 60 30 20 30 20 15 20 15 12 >> b=[1 2 3]' >> [L,U]=lu(A) L = 1.0000 0 0 0.5000 1.0000 0 0.3333 1.0000 1.0000 U = 60.0000 30.0000 20.0000 0 5.0000 5.0000 0 0 0.3333 x = inv(u)*inv(l)*b ans>> x = 0.4500-3.2000 3.5000 x = A\b ans>> x = 0.4500-3.2000 3.5000

A = 60 30 20 30 20 15 20 15 12 >> [L,U,P]=lu(A) L = 1.0000 0 0 0.5000 1.0000 0 0.3333 1.0000 1.0000 U = 60.0000 30.0000 20.0000 0 5.0000 5.0000 0 0 0.3333 P = 1 0 0 0 1 0 0 0 1

B = 1 2 3 4 5 6 7 8 0 >> b=[1 2 3]' >> [L1,U]=lu(B) L1 = 0.1429 1.0000 0 0.5714 0.5000 1.0000 1.0000 0 0 U = 7.0000 8.0000 0 0 0.8571 3.0000 0 0 4.5000 x = inv(u)*inv(l1)*b ans>> x = -0.3333 0.6667 0 x = A\b ans>> x = -0.3333 0.6667 0

B = 1 2 3 4 5 6 7 8 0 >> [L2,U,P]=lu(B) L2 = 1.0000 0 0 0.1429 1.0000 0 0.5714 0.5000 1.0000 U = 7.0000 8.0000 0 0 0.8571 3.0000 0 0 4.5000 P = 0 0 1 1 0 0 0 1 0

L2 = P*L1 P*L1 ans = 1.0000 0 0 0.1429 1.0000 0 0.5714 0.5000 1.000 -------------------------------------- P*A - L2*U ans = 0 0 0 0 0 0 0 0 0 -------------------------------------- d = det(a) >> ans d = 27 d = det(l)*det(u) >> ans d = 27

prod D = Iloczyn elementów B = prod(a,dim) Algorytm: [L, U] = lu(a); s = det(l); s*prod(diag(u))=??? 1 2 3 4 >> prod(d) ans = 3 8 >> det(l)*prod(diag(u)) ans = -2

Wyznacznik det A = d = det(x); Algorytm: [L, U] = lu(a); s = det(l); d = s*prod(diag(u)); 60 30 20 30 20 15 20 15 12 >> [L,U]=lu(A) L = 1.0000 0 0 0.5000 1.0000 0 0.3333 1.0000 1.0000 U = 60.0000 30.0000 20.0000 0 5.0000 5.0000 0 0 0.3333

Wyznacznik det d = det(x); Algorytm: [L, U] = lu(a); s = det(l); d = s*prod(diag(u)); A = 60 30 20 30 20 15 20 15 12 >> [L,U]=lu(A) L = 1.0000 0 0 0.5000 1.0000 0 0.3333 1.0000 1.0000 U = 60.0000 30.0000 20.0000 0 5.0000 5.0000 0 0 0.3333

chol (1) R = chol(a); A dodatnio określona: R górna trójkatna, [R, p] = chol(a); A dodatnio określona: R *R=A R górna trójkatna, R *R=A, p=0 A nie jest dodatnio określona: R górna trójkatna, R *R=A(1:q,1:q), q=p-1

chol (2) L = chol(a, lower ); A dodatnio określona: L dolna trójkatna, [L, p] = chol(a, lower ) ; A dodatnio określona: L*L =A L dolna trójkatna, L*L =A, p=0 A nie jest dodatnio określona: L dolna trójkatna, L*L =A(1:q,1:q), q=p-1

chol A = 60 30 20 30 20 15 20 15 12 >> R = chol(a) = 7.7460 3.8730 2.5820 0 2.2361 2.2361 0 0 0.5774 >> R'*R = 60.0000 30.0000 20.0000 30.0000 20.0000 15.0000 20.0000 15.0000 12.0000

chol n =3; >> X = pascal(n) X = 1 1 1 1 2 3 1 3 6 >> X(n,n) = X(n,n)-1 X = 1 1 1 1 2 3 1 3 5 >> chol(x)??? Error using ==> chol Matrix must be positive definite. >> [R,p]=chol(X) R = 1 1 0 1 p = 3

chol X = 1 1 1 1 2 3 1 3 5 >> chol(x)??? Error using ==> chol Matrix must be positive definite. >> [R,p]=chol(X) R = 1 1 0 1 p = 3 >> R'*R = 1 1 1 2

chol A = 60 30 20 30 20 15 20 15 12 >> L=chol(A,'lower')= 7.7460 0 0 3.8730 2.2361 0 2.5820 2.2361 0.5774 >> L*L'= 60.0000 30.0000 20.0000 30.0000 20.0000 15.0000 20.0000 15.0000 12.0000

chol X = 1 1 1 1 2 3 1 3 5 >> L=chol(X,'lower')??? Error using ==> chol Matrix must be positive definite. >> [L,p]=chol(X,'lower') L = 1 0 1 1 p = 3 >> L*L'= 1 1 1 2

chol A = 60 30 20 30 20 15 20 15 12 >> L = chol(a,'lower')= 7.7460 0 0 3.8730 2.2361 0 2.5820 2.2361 0.5774 >> R = chol(a)= 7.7460 3.8730 2.5820 0 2.2361 2.2361 0 0 0.5774 >> L'= 7.7460 3.8730 2.5820 0 2.2361 2.2361 0 0 0.5774

chol Ax = b x = A\b >> inv(a)= 0.1500-0.6000 0.5000-0.6000 3.2000-3.0000 0.5000-3.0000 3.0000 >> inv(r)*inv(l)= 0.1500-0.6000 0.5000-0.6000 3.2000-3.0000 0.5000-3.0000 3.0000 >> inv(l')*inv(l)= 0.1500-0.6000 0.5000-0.6000 3.2000-3.0000 0.5000-3.0000 3.0000

dodatnio określona W przypadku, gdy A jest macierza rzeczywista: A jest macierza symetryczna i dla każdego niezerowego wektora x R n zachodzi: x T Ax > 0. Równoważna definicja mówi, że wszystkie wartości własne A sa dodatnie.

inv Macierz odwrotna Y = inv(x); Rozwiazanie równania A*x=b: x = A\b czy x=inv(a)*b?

inv Ax = b x = A\b n = 500; Q = orth(randn(n,n)); d = logspace(0,-10,n); A = Q*diag(d)*Q'; x = randn(n,1); b = A*x; tic, y = inv(a)*b; toc err = norm(y-x) res = norm(a*y-b) elapsed_time = 1.4320 err = 7.3260e-006 res = 4.7511e-007

inv Ax = b x = A\b elapsed_time = 1.4320 err = 7.3260e-006 res = 4.7511e-007 tic, z = A\b, toc err = norm(z-x) res = norm(a*z-b) elapsed_time = 0.6410 err = 7.1209e-006 res = 4.4509e-015

linsolve (1) A*X = B, (A - mxn, B - mxk) X - nxk X = linsolve(a,b); A kwadratowa: faktoryzacja A niekwadratowa: faktoryzacja QR [X, R] = linsolve(a,b); A kwadratowa: faktoryzacja, R = 1/cond(A) A niekwadratowa: faktoryzacja QR, R=(A)

linsolve (2) X = linsolve(a,b,opts); pole opcji właściwość LT dolna trójkatna UT górna trójkatna UHESS górna Hessenberga SYM symetryczna lub Hermitowska POSDEF dodatnio określona RECT prostokatna TRANSA A*X = B albo A *X = B Ustawianie pola opcji: np. opts.ut = true

linsolve A = triu(rand(5,3)); A = 0.8147 0.0975 0.1576 0 0.2785 0.9706 0 0 0.9572 0 0 0 0 0 0 x = [1 1 1 0 0]'; b = A'*x; b = 0.8147 0.3760 2.0854 y1 = (A')\b opts.ut = true; opts.transa = true; y2 = linsolve(a,b,opts) y1 = [1 1 1 0 0]' y2 = [1 1 1 0 0]'

(1) A - mxn, x = lscov(a,b); b - mx1 (mxk) : Ax = b lscov x wektor minimalizujacy (b A x) (b A x) (dla b - mxk: rozwiazania dla każdej kolumny b) gdy (A) < n: wybierany jest x o maksymalnej liczbie zerowych współrzędnych x= lscov(a,b,w); w wektor mx1 nieujemnych rzeczywistych wag x minimalizuje (b A x) diag(w) (b A x)

lscov x1 = [.2.5.6.8 1.0 1.1]'; x2 = [.1.3.4.9 1.1 1.4]'; X = [ones(size(x1)) x1 x2]; y = [.17.26.28.23.27.34]'; a = X\y a = 0.1203 0.3284-0.1312 [b,se_b,mse] = lscov(x,y) b = 0.1203 0.3284-0.1312 se_b = 0.0643 0.2267 0.1488 mse = 0.0015

lscov w = [1 1 1 1 1.1]'; [bw,sew_b,msew] = lscov(x,y,w) bw = 0.1046 0.4614-0.2621 sew_b = 0.0309 0.1152 0.0814 msew = 3.4741e-004

lscov (2) x = lscov(a,b,v); V macierz mxm rzeczywista, symetryczna i dodatnio określona (kowariancja): x wektor minimalizujacy (b - A*x) *inv(v)*(b - A*x) V dodatnio półokreślona: x wektor minimalizujacy e *e przy ograniczeniu A*x + T*e = b, gdzie T*T = V (b musi należeć do obrazu Im [A T])

lscov V =.2*ones(length(x1)) +.8*diag(ones(size(x1))); [bg,sew_b,mseg] = lscov(x,y,v) bg = 0.1203 0.3284-0.1312 sew_b = 0.0672 0.2267 0.1488 mseg = 0.0019

(3) lscov x = lscov(a,b,v,alg); alg chol orth [x, stdx] = lscov(...); szczegóły algorytmu wyznaczania x rozkład V rozkłady ortogonalne dla osobliwych (źle uwarunkowanych) V stdx oszacowania błędów uzyskanego x (0 - gdy przyjęto zerowa wartość danej współrzędnej x dla A o niepełnym rzędzie) [x, stdx, mse] = lscov(...); mse oszacowanie błędu średniokwadratowego x

lsqnonneg Zadanie z ograniczeniami (1) C - mxn, d - mx1 (rzeczywiste): x = lsqnonneg(c,d); min x Cx-d 2 2 przy x 0 x wektor minimalizuje normę reszty (C*x-d), x>=0 x = lsqnonneg(c,d,options); pole opcji Display TolX (funkcja optimset) znaczenie Sposób prezentacji wyników obliczeń: off żadanie braku wyświetlania final tylko wynik końcowy notify tylko w przypadku niezbieżności Kryterium zbieżności (próg)

lsqnonneg Zadanie z ograniczeniami (2) [x, resnorm] = lsqnonneg(...); resnorm kwadrat reszty (d-c*x) [x, resnorm, residual] = lsqnonneg(...); residual reszta (d-c*x) [x, resnorm, residual, exitflag] = lsqnonneg(...); exitflag >0 - oznacza zbieżność algorytmu, 0 - brak zbieżności

lsqnonneg Zadanie z ograniczeniami (3) [x, resnorm, residual, exitflag, output] = lsqnonneg(...); output struktura (rekord) informacji dodatkowych: pole rekordu algorithm iterations message znaczenie active-set Liczba wykonanych iteracji Komunikat o zakończeniu [x, resnorm, residual, exitflag, output, lambda] = lsqnonneg(...); lambda mnożniki Lagrange a (problem dualny): lambda(i) <= 0, gdy x(i) = 0 lambda(i) = 0, gdy x(i) > 0