| ° Forum ° Rejestracja ° Szukaj ° | |
| Remonty ° sztabka złota ° Drukarnia ° Auto giełda ° wnętrzowe stacje transformatowe |
| Matma / dosc specyficzny uklad rowan ??? |
| << . 1 . 2 . 3 . 4 . 5 . 6 . 7 . >> |
| Autor | Wiadomość |
| A.L.
|
Posted: 29 Paź 2008 13:25:10 A.L. napisał:
Bardzo zle uwarynkowany uklad 6x6 moze sie roziwazywac dosyc kiepsko.
Przyklady sa w Wilkinsonie, ale nei chce mi sie siegac na polke Nie leń się. Podaj nam ten przykład, bo inaczej okaże się że znów się ośmieszyłeś Wilkinson, "Bledy zaokraglen w procesach algebraicznych". Po polsku. Polecam tez Fortuna, Macukow, Wasowski , "Metody numeryczne" gdzie dosyc dokladnei omawia sie sprawe dokladnosci rozwiazan ukladow liniowych oraz role uwarunkowania. Podstawowym zrodlem jest jednak "Accuracy and Stability of Numerical Algorithms", Nicholas J. Higham (ksiazka wydana przez SIAM) gdzie przeprowadzona jest analiza dokladnosci rozwiazan ukladow liniowych oraz problemy zwiazane z uwarunkowaniem i arytmetyka o skonczonej dokladnosci. Na dodatek jest sporo informacji na webie, na przyklad Condition Number The ratio of the largest to smallest singular value in the singular value decomposition of a matrix. The base- logarithm of is an estimate of how many base- digits are lost in solving a linear system with that matrix. In other words, it estimates worst-case loss of precision. A system is said to be singular if the condition number is infinite, and ill-conditioned if it is too large, where "too large" means roughly the precision of matrix entries. http://mathworld.wolfram.com/ConditionNumber.html A.L. |
| r.p.maciol@googlemail.com
|
Posted: 29 Paź 2008 14:45:37 Praca zawodowa programisty, nie matematyka. To w takim razie moze lepiej zmienic prace albo nauczyc sie czytac ksiazki? To jest raczej problem bardzo podstawowy. No tak, odpowiedz na poziomie. Jak sie nie chce napisac konkretu to lepiej juz nic nie pisac. Jak dobrze zrozumiałem pytanie tzn jeśli chodzi o konkretny jeden układ równań to kolega Maciek od razu (wiele postów wcześniej) udzielił na nie wyczerpującej odpowiedzi proponujuąc po prostu odwócenie macierzy i mnożenie przez nią tych kliku tysięcy wektorów (trudno mi uwierzyć że zawodowy programista ma problem z odwóceniem jednej macierzy?). Pewnie możnaby to jeszcze optymalizować jak trzeba pod ten konkretny sprzęt i konkretne dane ale jak to firma w której nie umią odwrócić macierzy 6x6 to lepiej niech dadzą sobie spokój. |
| bulba008
|
Posted: 29 Paź 2008 15:21:55 Jak dobrze zrozumiałem pytanie tzn jeśli chodzi o konkretny jeden układ równań to kolega Maciek od razu (wiele postów wcześniej) udzielił na nie wyczerpującej odpowiedzi proponujuąc po prostu odwócenie macierzy i mnożenie przez nią tych kliku tysięcy wektorów (trudno mi uwierzyć że zawodowy programista ma problem z odwóceniem jednej macierzy?). W natloku spraw tego nie zauwazylem. Dzieki to jest dla mnie konkret. Pewnie możnaby to jeszcze optymalizować jak trzeba pod ten konkretny
sprzęt i konkretne dane ale jak to firma w której nie umią odwrócić macierzy 6x6 to lepiej niech dadzą sobie spokój. Firma o zasiegu miedzynarodowym :). |
| PFG
|
Posted: 29 Paź 2008 19:43:11 Może jednak tak : Teoretycznie stosowane jest pojęcie współczynnik
uwarunkowania dla obliczeń w skończonej arytmetyce. W praktyce ma ono małe znaczenie bo nikt rozsądny nie będzie obliczał macierzy odwrotnej tylko po to żeby obliczyć ten współczynnik [...] Tak zwane źle uwarunkowane macierze, w praktyce - nie w teorii, to
macierze których det(m)=0 i wiadomo co z nimi zrobić. Głupoty gadasz, i to straszne. Po pierwsze, współczynnik uwarunkowania to rzecz, która ma bardzo duże znaczenie praktyczne, nawet jeżeli explicite się go nie oblicza. A już na pewno nie robi się tego odwracając macierz - są odpowiednie twierdzenia, które pozwalają tego uniknąć i które jednak wypada znać. Przypomnij sobie na przykład co to jest SVD. Po drugie, jeśli wiadomo, że det(m)=0, to akurat jest mały problem. Znacznie gorsza sytuacja jest wtedy, gdy det(m) != 0, ale macierz jest źle uwarunkowana, ale dla osoby rozwiązującej problem nie jest to oczywiste. Nota bene, coś czuję, że popełniasz typowy błąd nowicjusza i myślisz, że macierz źle uwarunkowana to macierz o małym wyznaczniku. Nic podobnego. Można podać trywialne przykłady dobrze uwarunkowanej macierzy o bardzo małym wyznaczniku 2*10^{-100} 10^{-100} 10^{-100) 2*10^{-100} (wyznacznik = 3*10^{-200}, współczynnik uwarunkowania = 3) oraz macierzy źle uwarunkowanej o bardzo dużym wyznaczniku 10^{100} 1 1 1 (wyznacznik ~10^{100}, współczynnik uwarunkowania ~10^{100}). To są oczywiście przykłady "podręcznikowe", łatwe do zrozumienia dla nowicjuszy, ale na życzenie służę całkiem życiowymi (i praktycznymi) przykładami. Po trzecie, jest prawdą, że dla małych macierzy problem pojawia się stosunkowo rzadko, głównie zresztą dlatego, że sprawdzenie uwarunkowania małaej macierzy jest tanie, pod warunkiem, że ktoś wie, iż złe uwarunkowanie może być problemem. Nie broń straconej pozycji. Pomyliłeś się, każdemu się zdarza, to nie wstyd. Ale upierać się, to co innego. |
| A.L.
|
Posted: 29 Paź 2008 19:46:43 Wit Jakuczun napisał
Jest POWSZECHNIE wiadome, że
numeryczne własności układu równań zależą od współczynnika uwarunkowania i że ten współczynnik może być bardzo zły dla macierzy o małym wymiarze. Może jednak tak : Teoretycznie stosowane jest pojęcie współczynnik uwarunkowania dla obliczeń w skończonej arytmetyce. W praktyce ma ono małe znaczenie bo nikt rozsądny nie będzie obliczał macierzy odwrotnej tylko po to żeby obliczyć ten współczynnik Pewnie ze nie bedzie obliczal przez odwracanie macierzy, albowiem maciez zle uwarunkwoana slabo sie odwraca. Sa sposoby na oszacowanei tego wspolczynnika. Ale nie o to idzie: idzie o to niektore rownania rozwiazuje sie latwo a niektore nie. Przy czym przez "rozwiazanie" nie rozumie sie rozwiazania "jakiegos tam" a rozwiazanie dokladne, lub przybilozne dla ktorego mozna oszacowac blad. Z faktu ze "program obliczeniowy zakonczyl dzialanie i wyproodukowal wynik" nie jest powodem do radosci: ten wynik moze byc bowiem bez sensu A.L. |
| Wit Jakuczun
|
Posted: 30 Paź 2008 07:44:48 Weź sobie układ 2x2 ze współczynnikami w różnej skali
i zobacz co się dzieje z rozwiązaniem jak zaburzysz prawą stronę. prawą stronę ?? czyli wyrazy wolne ?? - nic się nie stanie Tak wyrazy wolne. Zaburz je, czyli dodaj/odejmij do prawej strony jakąś małą liczbę. Oto mój przykład w/g twojego przepisu
3-10^-10 10^5 2 3 10^5 1 współczynnik uwarunkowania 2*10^15 O to chodzi :). Rozwiązanie w arytmetyce 8B czyli takiej jak obecnie jest stosowana
-1.0000000000000000*10^10, 300000.00001000000 Wynik jest dokładny. W czym więc problem ? W tym, że nie policzyłeś rozwiązania dla zaburzonej prawej strony. Weź prawą stronę nie [1,2] ale np. [1.01, 2.01] (dodaj po 0.01) i zobacz jakie rozwiązanie otrzymasz. Porównaj je z tym co podałeś. Zobacz jak zaburzenie prawej strony przenosi się na różnicę w uzyskiwanych rozwiązniach. Tak zwane źle uwarunkowane macierze, w praktyce - nie w teorii, to
macierze których det(m)=0 i wiadomo co z nimi zrobić. Nie. To są macierze osobliwe. Pozdrawiam -- Wit Jakuczun - http://wlogsolutions.com |
| Michal Przybylek
|
Posted: 30 Paź 2008 08:58:41 Wynik jest dokładny. W czym więc problem ?
W tym, że nie policzyłeś rozwiązania dla zaburzonej prawej strony. Weź prawą stronę nie [1,2] ale np. [1.01, 2.01] (dodaj po 0.01) i zobacz jakie rozwiązanie otrzymasz. Porównaj je z tym co podałeś. Zobacz jak zaburzenie prawej strony przenosi się na różnicę w uzyskiwanych rozwiązniach. Z logiki, to musiałeś mieć dwóję. Dyskusja jest o tym, jak błędy wynikłe ze stosowania skończonej arytmetyki wpływają na wynik. Czyli zaburzenie powodowane przez utratę precyzji, a nie zaburzenie na poziomie danych. Z numeryki też pewnie miałeś - inaczej byś wiedział, że źle uwarunkowanych problemów, dla których nie mamy sensownie dokładbych danych, nie da się rozwiązać w ogóle, niezależnie od tego _jaką_ metodą je rozwiązujemy. |
| << . 1 . 2 . 3 . 4 . 5 . 6 . 7 . >> |