dokladnosc metody - blad obliczen

Potrzebuje przeksztalcic wspolrzedne pomiedzy dwoma ukladami 2
wymiarowymi. Aby dokonac przeksztalcenia potrzebuje wspolzednych 3 par
punktow w kazdym ukladzie. Majac te wspolrzedne dostaje uklad rownan z 6
niewiadomymi ktore sa szukanymi przezemnie wspolczynnikami maciezy ktora
bede wykorzystywal do przeksztalcen. Obecnie uklad ten rozwiazuje za
pomoca metody eliminacji Gaussa-Jordana (jesli bedzie trzeba uzyje
lepszej). Majac wspolczynniki moge liczyc przeksztalcenia miedzy jednym
ukladem a drugim. Zeby uniknac liczenia macierzy odwrotnej wspolczynniki
do przeksztalcen "w druga strone" wylicza rowniez z ukladu rownan.
Po tym krotkim :), lecz niezbednym przeksztalceniu moge przedstawic moj
problem. Znajac bledy wyznaczenia wspolzednych punktow ktore posluzyly
mi do policzenia wspolczynnikow potrzebuje oszacowac blad wspolrzednych
wyliczanych w wyniku przeksztalcenia. Chcialbym rowniez znac metode na
oszacowanie bledow ktore wprowadzaja same obliczenia numeryczne.
Chcialbym rowniez ocenic na ile wspolzedne ktore posluzyly mi do
obliczenia wspoczynnikow byly "dobre" - tzn. chodzi mi o przypadki gdy
nie byly one rozlozone rownomiernie, leczecz byly "prawie" wspoliniowe.
Bede wdzieczny za linki lub tytuly ksiazek ktoer pomogly by mi w
znalezieniu rozwiazania.

 

dokladnosc metody - blad obliczen

!

Cytat:Ogólnie błąd numeryczny będzie zdominowany przez błędy wprowadzone
przez dzielania z małymi dzielnikami.



Nie zupelnie.
Tak, gdy schodzimy do liczb tak malych (co do modulu),
ze ich reprezentacja w rejestrach procesora arytmetycznego
nie moze byc znormalizowana.

Fatalne dla dokladnosci obliczen numerycznych jest
dodawanie wartosci o przeciwnym znaku lecz niewiele
rozniacych sie co do modulu.

W przypadku omawianej metody eliminacji Gaussa cos
takiego wlasnie moze wystepowac, jezeli nie jest
stosowany "pivoting". Pivoting nie jest potrzebny,
gdy  optymalny "piwot" jest od razu na wlasciwym
miejscu -- tzn. dominuja elementy diagonalne.

Rownania liniowe

Cytat:Hej,
Mam pytanie odnosnie algebry liniowej, a dokladniej rozwiazywania rownan
nxn.

Dlatego prosze o podpowiedz, jaki algorytm bedzie najlatwiejszy (dopiero
zaczynam programowac) do implementacji w C.
Pierwsza metoda to wzory Cramera.



... a druga to metoda eliminacji Gaussa. Proszę mnie poprawić jeśli się
mylę.

Rownania liniowe


Cytat:

Hej,
Mam pytanie odnosnie algebry liniowej, a dokladniej rozwiazywania rownan
nxn.

Dlatego prosze o podpowiedz, jaki algorytm bedzie najlatwiejszy (dopiero
zaczynam programowac) do implementacji w C.
Pierwsza metoda to wzory Cramera.



Rozwiazywanie ukladow rownan linowych wzorami Cramera jest malo ciekawe:
policzenie wyznacznika jest w ogolnym przypadku trudne (czas!) i zle
uwarunkowane numerycznie. Raczej sie tego nie robi (bo i nie ma sensu:
policzenie z dobra dokladnoscia wyznacznika sprowadza sie do rozkladu
LU, LLT lub LDLT- szybciej jest po prostu rozwiazac odpowiednie uklady)

Najbardziej znane Metody ogolne to eliminacja Gaussa (rozklad LU) i
eliminacja zupelna (Gaussa- Jordana). Dla macierzy symetrycznych,
dodatnio okreslonych, mozna zastosowac metoda Cholesky'ego-
Banachiewicza (rozklad LLT) lub LDLT. Metody te sprowadzaja sie do
rozlozenia macierzy wspolczynnikow rownania na macierze trojkatne;
rownanie z macierza trojkatna latwo jest juz rozwiazac.

Dla duzych macierzy mozna stosowac metody iteracyjne, np Jacobiego,
Gaussa- Seidla.

Serdecznie polecam

http://lib-www.lanl.gov/numerical/

znajdziesz tam dosyc dobre omowienie wspomnianych przeze mnie metod,
wraz z implementacja w jezyku C (dosyc ekscentryczna, niestety).

Cytat:Dzieki
Nero



LL

 

macierz odwrotna do danej. C

Cytat:
da sie odwrocic metoda podobna jak przy wyznaczniku i metodzie
Gaussa (bylo juz ostatnio - mnozenie wierszy i dodawanie)
tylko operujesz na 2 macierzach jednoczesnie:



Do numerycznego odwracania macierzy _nie_ uzywa sie metody eliminacji
Gaussa-Jordana!!! Jest zbyt slaba numerycznie.

Cytat:macierz xy:                    macierz jednostkowa (tak to sie chyba
nazywalo)



<ciach

jak chcesz cos takiego rysowac, to sobie ustaw font o stalej
szerokosci znakow, bo wychodzi syf...

macierz odwrotna do danej. C


Cytat:Do numerycznego odwracania macierzy _nie_ uzywa sie metody eliminacji
Gaussa-Jordana!!! Jest zbyt slaba numerycznie.



Nie bylo zadnych takich ograniczen co do metody - cos zmyslasz,
a ja tylko odpowiedzialem na pytanie i da sie tak wyliczyc...
Jezeli TY tak nie liczysz to nie moja sprawa - pytal ktos inny

Cytat:jak chcesz cos takiego rysowac, to sobie ustaw font o stalej
szerokosci znakow, bo wychodzi syf...



Nastepnym razem nie bede marnowal swoich zdolnosci artystycznych
(przepraszam - syficznych). Chodzilo tylko o zobrazowanie...

macierz odwrotna do danej. C

Cytat:
Nie bylo zadnych takich ograniczen co do metody - cos zmyslasz,



Jak sadze najwazniejszym ograniczeniem byla _poprawnosc_ metody.
Eliminacja Gaussa-Jordana jest poprawna i dosc wygodna metoda
odwracania macierzy *na kartce*, kiedy mamy do czynienia z arytmetyka
o nieskonczonej precyzji. Na komputerze nie jest tak rozowo, trzeba
sie liczyc ze skonczona precyzja arytmetyki zmiennopozycyjnej i
wynikajacymi z tego bledami zaokraglen. I w tym przypadku, czyli
przypadku numerycznego odwracania macierzy eliminacja Gaussa-Jordana
nie jest dobra metoda, bo jest numerycznie zbyt slaba (wprowadza zbyt
duze bledy zaokraglen, by byla uzyteczna). W dodatku ze wzgledu na
koniecznosc wykonywania obliczen jednoczesnie na dwoch macierzach
jest kosztowna. Mowiac prosto - w ogole nie nadaje sie do numerycznego
odwracania macierzy.

Cytat:a ja tylko odpowiedzialem na pytanie i da sie tak wyliczyc...



niemniej jednak nie jest to dobre rozwiazanie. czy na pytanie o
algorytm sortowania przez porownania tez podalbys sortowanie
babelkowe?

Cytat:Jezeli TY tak nie liczysz to nie moja sprawa - pytal ktos inny



Oczywiscie, ze ja tak nie licze, bo ja uzywam poprawnych i dobrych
numerycznie algorytmow. I innym proponuje robic to samo, a juz
szczegolnie nie namiawiac poczatkujacych do uzywania zlych metod.

Cytat:Nastepnym razem nie bede marnowal swoich zdolnosci artystycznych
(przepraszam - syficznych). Chodzilo tylko o zobrazowanie...



To byla sieczka, nie zobrazowanie. Do pisania w Usenecie uzywa sie
czcionki o stalej szerokosci.

macierz odwrotna do danej. C

Cytat:

| da sie odwrocic metoda podobna jak przy wyznaczniku i metodzie
| Gaussa (bylo juz ostatnio - mnozenie wierszy i dodawanie)
| tylko operujesz na 2 macierzach jednoczesnie:

Do numerycznego odwracania macierzy _nie_ uzywa sie metody eliminacji
Gaussa-Jordana!!! Jest zbyt slaba numerycznie.



Jest najbardziej uniwersalna.... ale wiadomo nie od dzis, iz do
konkretnych przypadkow stosuje sie lepsze algorytmy wyznaczone do takich
rzeczy....

Kaczus/BlaBla & AUG-Lodz

eliminacja gaussa

Cytat:

| http://prioris.mini.pw.edu.pl/~tjazwins/nauka/ i tam II semestr i metody
| numeryczne sa tam laborki z metod numerycznych, ni pamietam czy to tam
jest co
| chcesz ale powinno byc

tam
i jak przekopiuje bez zrozumienia, to i tak nic to nie da :)



Jako, ze watek dziwnym trafem odnosi sie niejako do mojej osoby zaznaczam,
ze nie potrzebna mi jest do niczego w tej chwili implementacja metody
eliminacji Gaussa :-)

Wyznacznik macierzy n/m-tego stopnia

Cytat:
Tak gwoli scislosci to zlozonosc algorytmu rekurencyjnego(korzystajacego
jesli dobrze pamietam z rozwiniec Gauss'a) do obliczenia wyznacznika
macierzy kwdratowej rowna jest n! a to przy 17 daje conajmniej 355 687
428 096 000 mnozen wiec czas 40 minut jest bardzo realny :(( .



W powyższym "rozwinięcia Laplace'a", nie Gaussa.

Toteż nikt przytomny/rozsądny/po elementarnym kursie metod numerycznych
nie liczy wyznaczników w ten sposób. Metodą cywilizowaną jest rozkład
macierzy na czynniki trójkątne (Cholesky dla symetrycznej, rzeczywistej
i dodatnio określonej, LU poza tym), gdzie wyznacznik pojawia się jako
"produkt uboczny". Można też użyć eliminacji Gaussa lub Gaussa-Jordana.
Złożoność każdego z tych algorytmów jest O(n^3) (tyle że Gauss
i Gauss-Jordan są w porównaniu z rozkładem na czynniki trójkątne mniej
uniwersalne i (naiwnie zastosowane) niestabilne numerycznie). Opis
algorytmów można znaleźć chćby we wspomnianych przez Sławka
"Numerical Recipes" (http://www.nr.com), procedury ściągnąć raczej
z Netlibu (http://www.netlib.org).

Paweł Góra
Institute of Physics, Jagellonian University, Cracow, Poland
For every problem there is one solution which is simple, neat and wrong.

Wyznacznik macierzy n/m-tego stopnia


Cytat:

| Tak gwoli scislosci to zlozonosc algorytmu rekurencyjnego(korzystajacego
| jesli dobrze pamietam z rozwiniec Gauss'a) do obliczenia wyznacznika
| macierzy kwdratowej rowna jest n! a to przy 17 daje conajmniej 355 687
| 428 096 000 mnozen wiec czas 40 minut jest bardzo realny :(( .



Przepraszam, że się wtrące w wasz wątek.

o Metodzie Elementów Skończonych.
W skład pracy wchodził pakiet programów (graficznych)
ułatwiający modelowanie obszaru (podział) i obliczający
układy równań (zespolone) rzędu max. 40x40
Na i386 (20x20 -  ilość węzłów) układ taki był obliczony
w 40 minut. Po przeniesieniu na i486 (40x40) ok 5 min

Metoda - eliminacji Gaussa. Język : Pascal.

Polecam publikację: Metody numeryczne - Mochnacki
Wyd. Pol. Śląckiej (chyba)

Pozdrawiam
Pawełek

Indukcyjność i pojemność


Cytat:| [...]
Jak jest bardziej skomplikowany uklad to nie da sie policzyc bez
komputera.
No chyba ze masz suwak z opcja odwracania macierzy zespolonej :-)

Ale komu to dzis potrzebne - projektantom wzmacniaczy w.cz. ?

Bardziej przyziemne moga byc przetwornice, ale tam to juz Spice sie
przydaje..

J.



Ale komputer może kiedyś się zepsuć. Macierz, da się
odwrócić za pomocą odpowiednich przekształceń - chociażby
eliminacji Gaussa :-). Istnieją nawet sprytniejsze metody,
a i macierz można okazać się rzadka. A wiedza ta potrzebna
mi jest do projektu płytek(czasami można pozbyć się kilku elementów
zajmujących miejsce), z czystej ciekawości, bo może kiedyś się przyda,
warto wiedzieć takie rzeczy. Chociażby dlatego, że komputer też potrafi
się pomylić.

Wojtek.

Macierz

http://kysy.rst.com.pl  szukaj metod numerycznych. Najlepiej policzyc metodą
eliminacji Gaussa, a masz tam też moje źródła dla C++, gdzie zrobilem to
jeszcze 3 innymi metodami chyba. Najwazniejsze, bys sobie zrobil klase
Matrix jakas porzadna i dla niej zdefiniowal podstawowe operacje (czyt.
metody) operujace na poszczegolnych elementach oraz na calej macierzy.
Reszta to dwie petle (dla Gaussa). Zobacz sam.

Macierz

Cytat:Czy ma ktos algorytm obliczania  wyznacznika macierzy o rozmiarze [n,n]



--
Najprosciej sprowadzic macierz do postaci trojkatnej, np: metoda eliminacji
Gaussa,
wtedy wyznacznik jest rowny iloczynowi elementow na glownej przekatnej.

Rozwiazania rekurencyjne sa bardzo kosztowne obliczeniowo, dla macierzy
wysokich stopni, poniewaz trzeba rozwinac bardzo duzo podwyznacznikow.

Okreslonosc i wartosci wlasne macierzy

Hej

Mam tu takie jedno zadanie z metod numerycznych. Juz 2 tygodnie sie
mecze, moze Wy cos pomozecie...

Zadanie: Sprawdzic, czy macierz jest dodatnio okreslona. Jezeli tak,
to policzyc jej wartosci wlasne.

Okreslonosc chcialem sprawdzac z kryterium Sylvestera, ale macierz
musialaby byc symetryczna. Nie wiem, jak sprowadzic macierz do postaci
symetrycznej tak, aby nie zmienic okreslonosci.

Wartosci wlasne chcialem liczyc metoda Frobeniusa, ale w ten sposob
wyznaczam wielomian charakterystyczny, a policzyc jego pierwiastki nie
jest tak latwo. Mozna by sprowadzic macierz do postaci trojkatnej i
wtedy w.w. beda na przekatnej, ale nie wiem jak to zrobic (metoda
eliminacji Gaussa zmienia wartosci wlasne).

Karol

Okreslonosc i wartosci wlasne macierzy

Dodatnio okreslonosc macierzy sprawdzasz liczac wyznaczniki kolejnych
minorów.

A wartosci wlasne najprosciej przy pomocy metody potegowej,
pozniej odpowiednio podstawiasz otrzymana najwieksza wartosc wlasna, i
liczysz dalej.
Lub liczysz najmniejsza wartosc wlasna przy pomocy odwrotnej metody
potegowej Wielandta i postepujesz podobnie.

Chyba ze twoja macierz jest szczegolnej postaci to wtedy mozesz zastosowac
stosowny algorytm.

Bardzo dobrze opisane w 'Metody numeryczne' Jankowskich.

Grzes

Cytat:

Mam tu takie jedno zadanie z metod numerycznych. Juz 2 tygodnie sie
mecze, moze Wy cos pomozecie...

Zadanie: Sprawdzic, czy macierz jest dodatnio okreslona. Jezeli tak,
to policzyc jej wartosci wlasne.

Okreslonosc chcialem sprawdzac z kryterium Sylvestera, ale macierz
musialaby byc symetryczna. Nie wiem, jak sprowadzic macierz do postaci
symetrycznej tak, aby nie zmienic okreslonosci.

Wartosci wlasne chcialem liczyc metoda Frobeniusa, ale w ten sposob
wyznaczam wielomian charakterystyczny, a policzyc jego pierwiastki nie
jest tak latwo. Mozna by sprowadzic macierz do postaci trojkatnej i
wtedy w.w. beda na przekatnej, ale nie wiem jak to zrobic (metoda
eliminacji Gaussa zmienia wartosci wlasne).

Karol



Algebra Liniowa - ukÂład 1000x1000

Cytat:Bracia Matematycy,

Mam do rozwiazania uklad równan liniowych - ok 1000x1000.

Czy podpowiedzielibyście, proszę, jakiś przyjazny arkusz-kalkulator do
obsłuzenia tego zadania?

Żeby mozna było w nim wykonywać kopiowanie wierszy/kolumn (w celu ułatwienia
tworzenia i edycji macierzy parametrów) oraz wynik przekazać do Excela.
Chodzi mi o coś darmowego, bo na całego matlaba mnie nie stać.

Lajkonix  

--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl



Przećwicz propozycję kolegi AL. Jednakże jakikolwiek nie byłby to program ,
to przy tak dużym wymiarze macierzy , biorąc pod uwagę błędy maszynowe i
mnogość operacji (z reguły algorytmy rozwiązywania układów równań liniowych
są oparte o metodę eliminacji Gaussa) - do wyników podchodziłbym z dużą rezerwą.

Pozdr. ,

MH

Algebra Liniowa - ukÂład 1000x1000

Cytat:Przećwicz propozycję kolegi AL. Jednakże jakikolwiek nie byłby to program
,
to przy tak dużym wymiarze macierzy , biorąc pod uwagę błędy maszynowe i
mnogość operacji (z reguły algorytmy rozwiązywania układów równań
liniowych
są oparte o metodę eliminacji Gaussa) - do wyników podchodziłbym z dużą
rezerwą.



problemy tej wielkosci rozwiazuje sie w ulamku sec.
dla losowych macierzy metoda eliminacji daje blad tego samego rzedu co qr,
i blad ten jest raczej niewielki.
a nawet jak blad jest za duzy to mozna go zmniejszyc.

Algebra Liniowa - ukÂład 1000x1000

Cytat:

| Przećwicz propozycję kolegi AL. Jednakże jakikolwiek nie byłby to program
| ,
| to przy tak dużym wymiarze macierzy , biorąc pod uwagę błędy maszynowe i
| mnogość operacji (z reguły algorytmy rozwiązywania układów równań
| liniowych
| są oparte o metodę eliminacji Gaussa) - do wyników podchodziłbym z dużą
| rezerwą.

problemy tej wielkosci rozwiazuje sie w ulamku sec.
dla losowych macierzy metoda eliminacji daje blad tego samego rzedu co qr,
i blad ten jest raczej niewielki.



Podaj definicję "raczej niewielkiego błędu"

Cytat:a nawet jak blad jest za duzy to mozna go zmniejszyc.



Jak ??

MH

Jak taka macierz najszybciej rozwiazac numerycznie?

  2  0  0   0  -1  -1   b1
  0  2  0  -1   0  -1   b2
  0  0  2  -1  -1   0   b3
  0 -1 -1   2   0   0   b4
-1  0 -1   0   2   0    b5
-1 -1  0   0   0   2    b6

Chodzi rzeczywiscie o uklad rownan liniowych. "x" to nazwy kolumn
odpowiednie do danej szukanej zmiennej xi, wektor b to wyrazy wolne.

Pytam sie o jakas metode (prostsza numerycznie) niz X=A-1*B czy met
eliminacji Gaussa, poniewaz zauwazylem w czesci "lewej oprocz ostatniej
kolumny" tej macierzy cos takiego:

ZC
CZ

Pozdrawiam

Z.

Jak taka macierz najszybciej rozwiazac numerycznie?


Cytat:Pytam sie o jakas metode (prostsza numerycznie) niz X=A-1*B czy met
eliminacji Gaussa



Obliczanie odwrotności (X^{-1}) jest znacznie bardziej kosztowne
niż eliminacja Gaussa, rozkład LU, który sugerowałem, ma koszt
taki, jak eliminacja Gaussa. W dodatku zrobiwszy rozkład LU
przekonasz się, że dla tej akurat macierzy X^{-1} obliczyć się
nie da.

obliczanie rzędu macierzy

Cytat:
Z tego co się orientuję, ręczne wyliczanie polega na
zanlazieniu niezerowego (  bądz zerowego - nie pamiętam)



Warto by sprawdzic, nie uważasz?

Cytat:wyznacznika jak najwyższego stopnia - i stopień wyznacznika
jest wtedy rzedem macierzy. jakoś nie wyobrażam sobie wyznacznika
8-go stopnia.  :-(



Ja mogę sobie wyobrazić wyznacznik 1000 stopnia, albo i większego.
Wyobrazic niekoniecznie oznacza wyliczyć.

Generalnie natomiast idzie o to, że jeśli masz jakąś metodę, która
działa, to da się ja zalgorytmizować. Niekoniecznie oznacza to, co
prawda, że będzie to najlepsza możliwa metoda.

W twoim wypadku, jak ci już radzono, jeśli macierz jest kwadratowa,
sprowadź ją do postaci trójkątnej, czyli takiej, w której macierz pod
(lub nad) główną przekątną ma same zera. Nie wiesz jak? Poszukaj sobie
hasła "eliminacja Gaussa". Teraz przypomnij sobie ile wynosi wyznacznik
macierzy trójkątnej. Teraz pomyśl i znajdź związek pomiędzy ilością
zer na głównej przekątnej (macierz w postaci trójkjątnej!) a rzędem
macierzy.

Oficjalne nieformalne algorytmy.

Wszystko o czym pisaliscie bardziej przypomina mi uklad rownan normalnych.
Jest to podobne do rozwiazywania LZNK, a tam o ile dobrze pamietam chodzi o
minimalizacje normy drugiej.

Pozdrawiam

Cytat:

| TY pragniesz zwyczajnie diagonalizować macierz X
| za pomocą przekształceń zbliżonych do eliminacji
| Gaussa.

| Analogia jest tylko o tyle prawdziwa, ze w obu
| wypadkach w gre wchodzi macierz trojkatna.
| Metoda, ktopra przedstrawilem nazywa sie
| ortogonalizacja Grahma-Schmidta lub podobnie
| (balem sie, ze cos przekrece, wiec poprzsednio

| historyczny odnosnik). W przeciwienstwie do
| ogolnej metody Gaussa, dzialajacej dla dowolnego
| ciala, ortogonalizacja wymaga, zeby cialo bylo
| rzeczywiste (w sensie Artina?): zeby suma
| niezerowych kwadratow nigdy nie byla rowna zero
| -- ten prosty warunek pozwala cialo uporzadkowac
| liniowo chyba sie nie myle; wszystkie takie
| podstawowe fakty powinnismy miec w... FAQ).

Też coś pamiętam, był to rozkład macierzy na iloczyn macierzy: A = U*R
(unitarna * górnatrójkątna).

Ale gdy już zrobimy taki rozkład to jakie zastosować rozumowanie, że
rozwiązanie sprawy jest najlepsze w sensie miary (normy nieskończoność).

A propo tego FAQ to chyba przesadzasz, nie wymagaj aż tyle.

Pozdrawiam
Edyl.

--
Wysłano z serwisu Usenet w portalu Gazeta.pl -http://www.gazeta.pl/usenet/



--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl

Rozwiązywanie dużyc h układów liniowych

Czy któryś z szanownych grupowiczów/grupowiczek zna metody
rozwiązywania dużych liniowych układów równań metodami dokładnymi
(eliminacja Gaussa, LU, etc.), który zoptymalizowany jest na pracę z
pamięcią zewnętrzną, a nie operacjną. Rozmia macierzy, jaki mnie
intersuje to w przybliżeniu około od 10 000 na 10 000 do 40000 na
40000, a to przy liczbach typu double ciężko pomieścić.
        Grzegorz Krukowski

Rozwiązywanie dużyc h układów liniowych

Cytat:
Czy któryś z szanownych grupowiczów/grupowiczek zna metody
rozwiązywania dużych liniowych układów równań metodami dokładnymi
(eliminacja Gaussa, LU, etc.), który zoptymalizowany jest na pracę z
pamięcią zewnętrzną, a nie operacjną. Rozmia macierzy, jaki mnie
intersuje to w przybliżeniu około od 10 000 na 10 000 do 40000 na
40000, a to przy liczbach typu double ciężko pomieścić.
   Grzegorz Krukowski



rzowiazuj na normalnych pakietach, jesli zabraknie im ramu zaczna uzywac
dysku, pewnie da sie cos bardziej zoptymalizowac w tym kierunku ale nie
sadze zebyz znalaz tak skomplikowany program za darmo, to bedzie raczej
jakies profesjonalne narzedzie, a do takich narzedzi uzywa sie
profesjonalnego sprzety, a taki z kolei ma profesjonalna ilosc ramu :)

Eliminacja Gaussa

Witam.

Przegladalem archiwum grupy i dowiedzialem sie, ze eliminacje Gaussa z
pivotingiem czy bez trzeba przeprowadzac dla kazdej nowej prawej strony
rownania macierzowego od poczatku. Konkurencyjne metody (rozklad LU,
Cholesky'ego) robia to tylko raz.

Mam wobec tego watpliwosci, poniewaz w Helpie programu Mathematica 4.1
autor odradza uzywania funkcji LinearSolve dla rownan o takich samych
lewych stronach, a zaleca uzywanie eliminacji Gaussa. W podanych
przykladach autor pokazuje metode rozwiazania za pomoca elementow rozkladu
LU. Czy to nadal jest klasyczna metoda eliminacji Gaussa?

serdecznie pozdrawiam.

Eliminacja Gaussa

Cytat:
Mam wobec tego watpliwosci, poniewaz w Helpie programu Mathematica 4.1
autor odradza uzywania funkcji LinearSolve dla rownan o takich samych
lewych stronach, a zaleca uzywanie eliminacji Gaussa. W podanych
przykladach autor pokazuje metode rozwiazania za pomoca elementow rozkladu
LU. Czy to nadal jest klasyczna metoda eliminacji Gaussa?



Niekiedy rozklad LU nazywa sie eliminacja Gaussa, bo w istocie sa to
metody pokrewne. Byc moze jest to zatem nieporozumienie terminologiczne.

--  
Paweł Góra                    Three Laws of Thermodynamics:
Institute of Physics            1. You can't win.
Jagellonian University          2. You can't break even.
Cracow, Poland                  3. You can't even quit the game.

Potrzebna prosta teoria...

Witam.
Czy znacie jakies miejsce w sieci , gdzie po trosze bedza opisane algorytmy
operacji na macierzach, szczegolnie zalezy mi na znajdywaniu wyznacznika dla
macierzy 4x4 oraz odwracaniu ( metoda eliminacji Gaussa ). Wzory znam, ale
jakby byl jakis szerszy opis to chetnie po polsku albo angielsku...

bye, robal
**********************
Space - the final frontier
Gene Rodenbery - Star Trek
home site: http://directx.w.interia.pl
**********************

Potrzebna prosta teoria...

Cytat:Witam.
Czy znacie jakies miejsce w sieci , gdzie po trosze bedza opisane
algorytmy
operacji na macierzach, szczegolnie zalezy mi na znajdywaniu wyznacznika
dla
macierzy 4x4 oraz odwracaniu ( metoda eliminacji Gaussa ). Wzory znam, ale
jakby byl jakis szerszy opis to chetnie po polsku albo angielsku...



Hmm... lepiej wziac jakas ksiazke do algebry liniowej. Jakas dobra ksiazke z
przykladami. Samemu ciezko mi jest Tobie cos polecic, bo ja sam takiej
ksiazki raczej nie widzialem - opieralem sie na tym co bylo na wykladzie.

Wyznacznik 4x4. Ja bym liczyl z rozwiniecia Laplace-a, a potem 3x3 to juz
normalnie z definicji... ale nie wiem czy ta bedzie najszybciej.
Odwracanie jest proste, tylko trzeba zapoznac sie z algorytmem Gaussa. W
zasadzie to nic trudnego, po 3-ec przyladach wszystko staje sie jasne.

Znowu prawdopodobienstwo + calki


Cytat:Witam witam serdecznie!
mam trzy zadania, dla Was pewnie smiesznie proste, dla mnie, czarna
magia ;) 1) 5 urzadzen pracuje rownolegle i niezlazeznie.
    Prawdopodobienstwo zepsucia sie kazdego z nich wynosi 1/3 (ulamek)
    Olicz prawdop. zdarzenia ze:
a- nie zepsuje sie
b- zepsuje sie najwyzej jedno urzadzenie.

2) Oblicz pole obszaru ograniczonego krzywa:
    y=2cosx oraz prostymi x=0, y=0, x=4



Naszkicuj sobie wykres funkcji y=2cosx ograniczony prostymi x=0 y=0 x=4,
potem zobacz wzgledem ktorej osi obszar jest normalny (bo raczej bedzie),
sprawdz gdzie 2cosx przecina sie z asymptotami (ze tak nazwe), masz granice
calkowania, zapisujesz calke podwojna, pierwsza w granicach stalych a druga
w zaleznych od zmiennej (iterownie)... i calkujesz.. hmm to chyba taki
schemat :)

Cytat:3) Rozwiazac uklad rownan korzystajac z metody wyznacznikowej
    { 2x+3y-ż=2
    { -4x-y-3ż=-1
    { 6x+4y+2ż=3



ukladem cramera to to nie jest :)
masz dwie mozliwosci - eliminacja gaussa lub skorzystac z
tw.kroneckera-capelli'ego (choc reki sobie uciac nie dam)

pozdrawiam i powdzenia!
vorador
-----
matematyka jest narzedziem a nie celem samym w sobie

Znowu prawdopodobienstwo + calki

Cytat:Naszkicuj sobie wykres funkcji y=2cosx ograniczony prostymi x=0 y=0 x=4,
potem zobacz wzgledem ktorej osi obszar jest normalny (bo raczej bedzie),
sprawdz gdzie 2cosx przecina sie z asymptotami (ze tak nazwe), masz
granice
calkowania, zapisujesz calke podwojna, pierwsza w granicach stalych a
druga
w zaleznych od zmiennej (iterownie)... i calkujesz.. hmm to chyba taki
schemat :)

| 3) Rozwiazac uklad rownan korzystajac z metody wyznacznikowej
|     { 2x+3y-ż=2
|     { -4x-y-3ż=-1
|     { 6x+4y+2ż=3

ukladem cramera to to nie jest :)
masz dwie mozliwosci - eliminacja gaussa lub skorzystac z
tw.kroneckera-capelli'ego (choc reki sobie uciac nie dam)

pozdrawiam i powdzenia!



Troche mi pomogles, ale dalej nie wiem co i jak ;))
jeszcze jakiegos Capelliego ... ?
kurde, matma jest nie dla mnie ;)
dzieki !!!

eliminacja gausa

Cytat:
Cos mi sie zdaje, ze mylisz eliminacje Gaussa z eliminacja Gaussa-Jordana.



Nie, nie mylę. Ponieważ zasiałeś w mojej duszy wątpliwość, sprawdziłem
nawet w paru książkach, które mam na biurku. W istocie, występują
pewne różnice w terminologii (na przykład Ralston nazywa rozkład LU
"metodą Gaussa-Doolittle'a"; być może ktoś w uproszczeniu mówił w tym
kontekście o "eliminacji Gaussa", ale to ten ktoś wprowadził
zamieszanie), ale to, co odpowiadający na pierwotne pytanie opisywali,
jest _klasyczną_ eliminacją Gaussa i trzeba ją robić _znając_ prawą
stronę. Podtrzymuję moje uwagi z poprzedniego postu; odnoszą się one
tak do eliminacji Gaussa (prowadzącej do macierzy trójkątnej) jak i do
eliminacji Gaussa-Jordana (prowadzącej do macierzy diagonalnej).
Obie wymagają ~N^3 operacji (współczynnik jest inny), obie wymagają
znajomości prawej strony, obie są niestabilne bez pivotingu.

Paweł Góra                    Three Laws of Thermodynamics:
Institute of Physics            1. You can't win.
Jagellonian University          2. You can't break even.
Cracow, Poland                  3. You can't even quit the game.

eliminacja gausa

Cytat:
| tak do eliminacji Gaussa (prowadzącej do macierzy trójkątnej) jak i do
| eliminacji Gaussa-Jordana (prowadzącej do macierzy diagonalnej).
| Obie wymagają ~N^3 operacji (współczynnik jest inny), obie wymagają
| znajomości prawej strony, obie są niestabilne bez pivotingu.

Nieprawda. Przy pomocy eliminacji Gaussa-Jordana mozna znalezc maciez
odwrotna do macierzy wspolczynnikow lewych stron (jesli taka istnieje to
kazdy uklad z takimi wspolczynnikami, niezaleznie od prawych stron ma
dokladnie jedno rozwiazanie w danym ciele). Wtedy kazdy uklad rownan
postaci:

  A X = B



A czego to niby ma dowodzic ? Ta metoda jest a) numerycznie niestabilna b)
ma zlozonosc ~2*n^3

Cytat:gdzie X i B to wektory, a A macierz mozna rozwiazac bardzo prosto:

  X = A' B

gdzie A' to znaleziona macierz odwrotna.

Jesli A' nie istnieje to uklad rownan jest sprzeczny.

Oczywiscie jest to metoda dobra dla maciery kwadratowych, ale dla
prostokatnych pewnie tez mozna ja jakos zastosowac. Niestety nie mam teraz
czasu by sie na tym zastanowic.



To nie tylko jest zla metoda w przypadku numerycznego rozwiazywania
ukladow rownan liniowych (bo numerycznie niestabilna i zbyt kosztowna),
ale rowniez zla metoda w ogole - jest zbyt pracochlonna.

Cytat:--
"The only people who never fail
 are those who never try."


macierz odwrotna

Cytat:
Dziwnego nic, niestety. Ale zadanie jest szkodliwe, wyrabia bowiem
fałszywą intuicję, iż znajdywanie macierzy odwrotnej jest rzeczą
generalnie pożyteczną, podczas gdy umiejętność ta przydaje się
_bardzo_ rzadko.



Troszke pobronie, choc sie z Toba generalnie zgadzam:
moze chodzilo o implementacje "pelnej" biblioteki operujacej
na macierzach, a do tego sie przydaje inwersja, bo ladnie
wyglada w specyfikacji obok dodawania i obu mnozen. :-)

Cytat:I jeszcze a'propos "znanych rzowiązań algorytmicznych": Jaki praktyczny
algorytm jawnego obliczania macierzy odwrotnej ty byś zaproponował?



A jak sie sprawuje dla malych macierzy eliminacja Gaussa-Jordana
z pelnym wyborem elementow glownych wzbogacona o obliczanie
macierzy odwrotnej w "pomocniczej" macierzy identycznosciowej?
Nie pamietam nazwy tej metody, po prostu jest to jedyna znana
mi metoda odwracania macierzy nadajaca sie do recznego wykonania
na kartce papieru (kilkukrotnie liczylem tak recznie macierze 4x4).

    Pozdrawiam
    Piotr Wyderski

Macierze

Cytat:Kiedy nie można mieszać działań na wierszach z działaniami na kolumnach?



Jesli obliczasz wielkosc, ktora jest niezmiennicza wzgledem
transpozycji macierzy, to dla kazdej dozwolonej operacji
na wierszach istnieje analogiczna operacja na kolumnach -
- rowniez dozwolona. Takimi wielkosciami sa np. wyznacznik
i rzad macierzy.

Z kolei rozwiazujac uklad rownan liniowych metoda
eliminacji Gaussa wolno Ci tylko przestawiac wiersze,
a nie kolumny. W tym przypadku transpozycja macierzy
prowadzi w ogolnosci to zupelnie innego ukladu
rownan.

Pozdrawiam
Maciej Marek

Problem , macierze

Cytat:
Za pomocą metody eliminacji Gaussa na przykład.

Sporo sposobów na macierze i układy równań znajdziesz w książce:

Klukowski (albo Kluczkowski), Nabiałek - Algebra liniowa.

Powodzenia i miłej lektury.

Pozdrawiam FreeForm.



A nie chodzi czasem o te ksiazke:
http://www.yellow.free.komrel.net/index.php?id=126
?
(Algebra liniowa dla studentow)

Pozdrawiam
Marcin

Wyznacznik macierzy równy zero

Witam...
Mam macierz, której elementy są zależne od pewnej zmiennej (P). Potrzebuję
znaleźć najmniejszą dodatnią wartość P, dla której wyznacznik tej macierzy
jest równy zero. Niekoniecznie musi to być wartość dokładna.
Rozkład liczb w macierzy starałam się przedstawić poniżej... symbol "X"
oznacza wartość zależną od P (może ona być równa 0!).
Dodam, że chodzi o macierze wielkości mniej więcej 1000x1000 elementów.
Jak narazie do obliczenia wyznacznika stosuje eliminację Gaussa (oczywiście z
uwzględnieniem tych wszystkich zer :). Mile widziane wszelkie sugestie na
temat samej metody liczenia wyznacznika (nie koniecznie rozwiązanie całego
problemu).
Z góry dziękuję za pomoc i pozdrawiam
Ania

XXXX00000000...00000000
XXXX00000000...00000000
XXXXXXXX0000...00000000
XXXXXXXX0000...00000000
XXXXXXXX0000...00000000
XXXXXXXX0000...00000000
0000XXXXXXXX...00000000
0000XXXXXXXX...00000000
0000XXXXXXXX...00000000
0000XXXXXXXX...00000000
......................
......................
000000000000...XXXXXXXX
000000000000...XXXXXXXX
000000000000...XXXXXXXX
000000000000...XXXXXXXX
000000000000...0000XXXX
000000000000...0000XXXX

Sprowadzanie macierzy do postaci diagonalnej -jak?

Cytat:Dodam, gdyz to nie jest grupa o programowaniu, ze chodzi mi o algorytm
ktory
da sie ujac w program, a nie tylko taki ktorym mozna rozwiazywac recznie
na
kartce.



Metoda Eliminacji Gaussa;
powinna być łatwo przerzucalna na komputer.
Poszukaj więcej w google, albo w podręczniku jakimś.

odwracanie macierzy zespolonych


Cytat:Algorytm tutaj zostosowany to (po pobieznej analizie) metoda dekompozycji
Gaussa-Jordana, moim zdanie lepszy i szybszy algorytm niz metoda
wyznacznikowa.



Metoda wyznacznikowa jest NIESŁYCHANIE kosztowna i odpada we wszelkich
przypadkach, w których wyznaczników nie da się policzyć analitycznie.
Zdaje mi się jednak, iż zastosowana w "niemieckim" programie eliminacja
Gaussa-Jordana też jest OKDR, gdyż nie stosuje wyboru elementu podstawowego,
a zatem jest niestabilna numerycznie.

odwracanie macierzy zespolonych

Cytat:

| Algorytm tutaj zostosowany to (po pobieznej analizie) metoda dekompozycji
| Gaussa-Jordana, moim zdanie lepszy i szybszy algorytm niz metoda
| wyznacznikowa.

Metoda wyznacznikowa jest NIESŁYCHANIE kosztowna i odpada we wszelkich
przypadkach, w których wyznaczników nie da się policzyć analitycznie.
Zdaje mi się jednak, iż zastosowana w "niemieckim" programie eliminacja
Gaussa-Jordana też jest OKDR, gdyż nie stosuje wyboru elementu
podstawowego,
a zatem jest niestabilna numerycznie.



Panie Pawle,
Czy moglby Pan wyjasnic o co chodzi z OKDR w algorytmie z komentarzem w
jezyku niemieckim. Co znaczy niestabilnosc numeryczna? Dziekuje za
zaangazowanie,
Andrzej

obliczanie wyznacznika macierzy rzadkiej


Cytat:dla _wszystkich_ na pewno nie - tylko dla _rzadkich_
a to dlatego, ze jak trafia na zero, omija cala rekurencje



Przez wszystkie macierze chodziło mi o wszystkie macierze rozważane w
wątku a więc macierze rzadkie. Istotnie rozwijanie względem wiersza
spowoduje, że dużo obliczeń nie zostanie wykonanych (owe zera) ale nie
jestem przekonany, że ta metoda będzie rzeczywiście szybka (problem z
rekurencją). Dodatkowo jej implementacja nie jest prosta, szczególnie
jeśli zastosuje się np. listy do przechowywania elementów macierzy.

Cytat:jakies konkrety?



W klasycznym algorytmie eliminacji Gaussa (dla uproszczenia, zakładam,
że nie trzeba dokonywać wyboru elementu głównego) w każdym kroku (jest
ich tyle ile wynosi wymiar macierzy) eliminujesz elementy pod przekątną
przy pomocy elementu na przekątnej. W momencie gdy masz doczynienia z
macierzą rzadką, liczba elementów pod przekątną jest mała a tym samym
koszt wykonania algorytmu spada drastycznie (dokładniej będzie rzędu
O(n), gdzie n to wymiar macierzy).
Jeśli chodzi o implementację to nie wydaje się być trudna (żadna
rekurencja tylko dwie pętle). Najtrudniejszym elementem jest odpowiedni
dobór struktury danych do przechowywania elementów macierzy. W
porównaniu z zaproponowaną przez ciebie metodą, zmodyfikowany Gauss jest
prosty w implementacji i niemniej efektywny.

równolegle

Doszukałem się, że można wyliczyć wyznacznik macierzy korzystając z
metody eliminacji (gaussa).

Czy dobrze rozumiem, że wartość wyznacznika to będzie wynik przemnożenia
tego co powstanie na głównej przekątnej po sprowadzeniu lewejdolnej
części macierzy do 0 ?

Metoda eleminacji (gaussa) przy kolejnych operacjach korzysta z wyników
operacji poprzednich.

Czy istnieje jakiś sposób aby dało się wyliczyć wyznacznik macierzy
_równolegle_ tzn tak żeby konieczne było korzystanie z możliwie jak
najmniejszej ilości wyników poprzednich operacji ?

Ewentualnie czy dało by się jakoś zrównoleglić algorytm eliminacji
(gaussa) ?

równolegle

Cytat:Czy dobrze rozumiem, że wartość wyznacznika to będzie wynik przemnożenia
tego co powstanie na głównej przekątnej po sprowadzeniu lewejdolnej
części macierzy do 0 ?



tak (latwo sprawdzic z jakiejkolwiek definicji)

Cytat:Czy istnieje jakiś sposób aby dało się wyliczyć wyznacznik macierzy
_równolegle_ tzn tak żeby konieczne było korzystanie z możliwie jak
najmniejszej ilości wyników poprzednich operacji ?



ciekawe pytanie! prawde mowiac, nie wiem (nie jestem specjalista)
niemniej, nie wydaje mi sie, choc dowodu nie umiem podac

Cytat:Ewentualnie czy dało by się jakoś zrównoleglić algorytm eliminacji
(gaussa) ?



jak wspomnialem, nie wiem. mozna natomiast (chyba) znalezc algorytm szybszy niz
gaussa. tzn. o ile tamten ma zlozonosc rzedu n^3, istnieje algorytm o
zlozonosci n^2 * ln n, co dla ogromnych macierzy stanowi jednak postep.
w tej chwili mam tylko szkic: rozwazmy (bez straty ogolnosci) macierz o boku
postaci n=2^k. te macierz - metoda podobna do gaussa - sprowadzimy do postaci
klatkowej, z 4 macierzy o boku 2^(n-1), przy czym dolna lewa i prawa gorna
klatka sa zerowe (da sie zrobic, oprocz szczegolnych,zdegenerowanych
przypadkow). wyznacznik calosci jest iloczynem wyznacznikow 2 niezerowych
klatek. zarazem do samego sprowadzenia macierzy do tej postaci wystarczy nam
znajomosc tychze wyznacznikow (a wiec macierzy odwortnych do obu klatek). summa
summarum dostajemy zlozonosc obliczeniowa jak wyzej.

równolegle

Cytat:| Ewentualnie czy dało by się jakoś zrównoleglić algorytm eliminacji
| (gaussa) ?

jak wspomnialem, nie wiem. mozna natomiast (chyba) znalezc algorytm szybszy niz
gaussa. tzn. o ile tamten ma zlozonosc rzedu n^3, istnieje algorytm o
zlozonosci n^2 * ln n, co dla ogromnych macierzy stanowi jednak postep.
w tej chwili mam tylko szkic: rozwazmy (bez straty ogolnosci) macierz o boku
postaci n=2^k. te macierz - metoda podobna do gaussa - sprowadzimy do postaci
klatkowej, z 4 macierzy o boku 2^(n-1), przy czym dolna lewa i prawa gorna
klatka sa zerowe (da sie zrobic, oprocz szczegolnych,zdegenerowanych
przypadkow). wyznacznik calosci jest iloczynem wyznacznikow 2 niezerowych
klatek. zarazem do samego sprowadzenia macierzy do tej postaci wystarczy nam
znajomosc tychze wyznacznikow (a wiec macierzy odwortnych do obu klatek). summa
summarum dostajemy zlozonosc obliczeniowa jak wyzej.



 
Jeśli bym chciał na ten tamat szukać czegoś po sieci/książkach do
poczytania to czego szukać ? "macierzy klatkowych" ?

Metody numeryczne

Cytat:Potrzebujesz implementacji metod? Troche mam, moge Ci ewentualnie wyslac,
ale sa bez komentarzy (trzeba wiedziec o co chodzi)



Ja bym potrzebował kody do:
Znajdowanie macierzy odwrotnej metodą eliminacji Gaussa-Jordana.

Mam notatki, ale ich implementacja tworzy mi macierz z jedynkami na
diagonalnej - tzn. takie coś:
1 0 0
0 1 0
0 0 1

a nie podaje wyników macierzy odwrotnej, czyli klapa!!!

JACK_

pomocy ... metoda eliminacji zupelnej Jordana

Cytat:Bosz.... z czym ty masz problem ? Generacja macierzy jednostkowej to
przecierz banał jakich mało:

for (i=0; i<max_wierszy; i++)
for (j=0; j<max_kolumn; j++)
if (i == j) macierz[i][j] = 1; else macierz[i][j] = 0;



Wydaje mi sie, ze jemu chodzi o cos innego :P W tej chwili z glowy pamietam
tylko eliminacje gaussa oraz metode dekompozycji (moglem pokrecic nazwy:),
ale to chyba tez nie o to mu chodzi.
Olleo

pomocy ... metoda eliminacji zupelnej Jordana

Cytat:
No genialny wręcz :) To jest zupełnie NTG !!!



no toz wlasnie pisze ze OT... nie ? ;P

Cytat:Bo oczywiście właśnie na tej grupie siedzą sami programići w C ;)



nie, bo na tej grupie znam kilku ludzi ktorzy mogliby pomoc. poza tym
wlasnie sie tu pojawilem i korzystam z okazji :

Cytat:I do tego programiści-jasnowidze, którzy domyśla sie o co ci dokładnie
chodzi i jak wyglada kod twojego programu co tą macierz generuje :)



nie chodzi o kod programu do generowania tej macierzy tylko do
przeksztalcenia jej do macierzy jednostkowej.
miales na studiach/w szkole cos takiego jak metode eliminacji zupelnej
Jordana albo jakakolwiek inna (Gaussa np) ? bo zdaje sie ze nie ....

Cytat:Bosz.... z czym ty masz problem ? Generacja macierzy jednostkowej to
przecierz banał jakich mało:

for (i=0; i<max_wierszy; i++)
        for (j=0; j<max_kolumn; j++)
                if (i == j) macierz[i][j] = 1; else macierz[i][j] = 0;

i nie liczna to, że będę ci to tłumaczył ;P



pfffff, moglbys dokladniej wczytywac sie w post jesli juz chcesz sie

(ech .... ), jak CI przeszkadzam to wrzuc mnie do KF'a i po problemie,
doloz jeszcze topici ktore puszczam i masz raj na ziemi.

ps. chodzi o PRZEKSZTALCENIE macierzy ktora wygenerowalem do macierzy
jednostkowej.

pomocy ... metoda eliminacji zupelnej Jordana

Sluchaj musi to byc eliminacja zupelna Jordana? Chodzi ci o obliczanie
ukladow rownan liniowych albo wyznaczanie macierzy odwrotnej? Nie pamietam
jaka byla Jordana ale Gaussa jest zaje... powolna i skomplikowana
obliczeniowo. Lepsza jest metoda dekompozycji UL, tylko nie wiem czy gdzies
to jeszcze mam, znacznie mniej skomplikowana i szybsza.
Olleo

pomocy ... metoda eliminacji zupelnej Jordana

Witam,

Cytat:Sluchaj musi to byc eliminacja zupelna Jordana? Chodzi ci o obliczanie
ukladow rownan liniowych albo wyznaczanie macierzy odwrotnej? Nie pamietam
jaka byla Jordana ale Gaussa jest zaje... powolna i skomplikowana
obliczeniowo.



generalnie ta metoda nazywa sie metoda jordana-gaussa bo 2 panow to wymyslilo

http://math.uww.edu/faculty/mcfarlat/gauss.htm

pomocy ... metoda eliminacji zupelnej Jordana


Cytat:nie, bo na tej grupie znam kilku ludzi ktorzy mogliby pomoc. poza tym
wlasnie sie tu pojawilem i korzystam z okazji :



a nie prościej byłoby  na jakiejś grupie poświęconej programowaniu ?

Cytat:| I do tego programiści-jasnowidze, którzy domyśla sie o co ci dokładnie
| chodzi i jak wyglada kod twojego programu co tą macierz generuje :)

nie chodzi o kod programu do generowania tej macierzy tylko do
przeksztalcenia jej do macierzy jednostkowej.



dobra, przyznaję ci rację, nie doczytałem i wogóle... ;p
przepraszam

Cytat:miales na studiach/w szkole cos takiego jak metode eliminacji zupelnej
Jordana albo jakakolwiek inna (Gaussa np) ? bo zdaje sie ze nie ....



sprawdź pocztę :)

pozdro

dzielenie macierzy C++ - algorytm ?

Cytat:Niezupełnie. Do rozwiązania równania liniowego, bardziej opłacalne jest
zastosowanie bezpośrednio metody eliminacji Gaussa niż znalezienie
macierzy odwrotnej. Np. w Matlabie zaleca się x = A; zamiast x =
inv(A)*b; pierwsze rozwiązanie wykorzystuje właśnie metodę eliminacji.



No tak, racja. Gdzie mógłbym w takim razie znaleźć algorytm eliminacji Gausa
najlepiej z dekompozucją LU ? Najlepiej zrealizowany w C++ ;)

dzielenie macierzy C++ - algorytm ?


Cytat:Niezupełnie. Do rozwiązania równania liniowego, bardziej opłacalne jest
zastosowanie bezpośrednio metody eliminacji Gaussa niż znalezienie



Bardziej opłacalne <=lepsze z punktu widzenia błędów wynikających ze
skończonej arytmetyki komputera (koszt jest taki sam)

Do rozwiązywania układów równań z macierzą o której nic nie wiemy (np.
że jest symetryczna i dodatnio określona) powinno się stosować algorytm
eliminacji Gaussa z częściowym wyborem elementu głównego. To samo się
tyczy rozkładu LU.
W przypadku układów z macierzami o których posiadamy jakąś wiedzę,
należy stosować specjalizowane metody takie jak np. metoda sprzężonych
gradientów dla macierzy symetrycznych dodatnio określonych. Polecam
książkę Golub, Loan "Matrix Computations" i stosowanie bibliotek typu
lapack (ftp://ftp.netlib.org). Jeśli chodzi o C++ to można użyć
boost::bublas+bindings.

Zdrowia

dzielenie macierzy C++ - algorytm ?


Cytat:| Ja stwierdziłem, że owszem da się, jeśli pominie się proces wyznaczania
| macierzy odwrotnej i przeprowadzi dzielenie bezpośrednio.
Niestety myslisz się. Wyjaśnienie wysyłam na priv bo wątek robi się OT.



Jednak nie mylisz się do końca :). Zmyliło mnie to, że ja mówiłem o
problemie rozwiązywania układu równań z prawą stroną, której nie znamy,
czyli sytuację w której macierz B nie jest znana. Wtedy stosowanie macierzy
odwrotnej i "dzielenie bezpośrednie" są metodami równoważnymi jeśli
chodzi o koszt ale ta druga jest lepsza (o ile stosujemy eliminację
Gaussa z wyborem elementu głównego) jeśli chodzi o numerykę. W przypadku,
gdy mamy rowiązać tylko jeden układ to rzeczywiście lepiej zastosować
"dzielenie bezpośrednie".

Pozdrawiam

raz sie udalo wiec sprobuje jeszcze raz ;)

hej
chodzi o zaliczeniowe zadania z podstaw metod numerycznych
w moim poprzednim poscie("czy to dobra...") z powodzeniem poprosilem o
pomoc - uzyskalem rozwiazanie, jednak bylo to 1 z 4 zadan, ktore musze
rozwiazac
niestety jednego zadania nie zdolam przepisac stosujac czysty tekst(jakby
ktos byl zainteresowany i chcial spojrzec moge przeslac skan)
ponizej prezentuje dwa :

1.stosujac metode eliminacji gaussa rozwiaz uklad rownan

4.6237x1 + 2.6914x2 - 3.7517x3 = 1.4023 ,
-2.4037x1 +1.0432x2 + 0.7589x3 = 0.3724 ,
1.0462x1 +2.0495x2 + 6.3524x3 = -2.4728

2. niech f(x) = log(x) . uzywajac tablicy obliczyc przyblizona wartosc
 (log 0.54)

x            0.40                    0.50                    0.60
0.70                    0.80
log
16291        -0.693147      -0.510826        -0.356675              -0.22314
4

przypomne, ze chodzi tu o kod w jezyku C/C++

dzieki z gory za udzielona pomoc :)

UkÂłady równaĂą ...

Cytat:Czy są dostępne jakieś biblioteki w srodowisku visual C ++, umozliwiające
rozwiązywanie układów równań w postaci macierzowej(chodzi o dużą liczbę
równań , rzędu 100.000)?, a może ktoś ma dostęp do kodów umożliwiających
rozwiązywanie takich układów...



To bedzie ciekawe zadanie...Macierz 100kx100kx8b czyli ca 80GB. Zakladajac
ze  wykorzystasz fakt ze macierz jest pasmowa i symetryczna (przy dobrej
siatce MES wyjdzie ci waskie pasmo) to moze zejdziesz do kilku GB. Ambitne
zadanie jak dla kogos kto nie potrafi samemu zaimplementowac rozwiazywania
ukladu rownan metoda eliminacji Gaussa... (a moze ktos zna szybsza? bo ja
juz szczerze mowiac nie pamietam)

PS: Wrzuc w google'a: lapack | template numerical toolikit | solving linear
equations in C++ etc

UkÂłady równaĂą ...

Cytat:ukladu rownan metoda eliminacji Gaussa... (a moze ktos zna szybsza? bo ja
juz szczerze mowiac nie pamietam)



Dużo zależy od tego jaka jest macierz.

IMHO najpierw powinno się "wytypować" metody które dadzą rozwiązanie
obarczone jak najmniejszym błędem a dopiero potem wśród nich szukać metody
najszybszej.

Kiedyś wygnerowałem sobie układ 100x100 w którym macierz A miała dużo
wierszy
"prawie liniowo zależnych" i liczyłem różnymi sposobami.
Najszybsza była met. Gaussa, ale błąd był duży.
Trochę wolniejsze były metody ortogonalizacji i LDU ale dały one
najdokładniejsze wyniki.
Pośrodku była metoda LU.

Jeszcze jest jeden problem - jak jest duża "rozpiętość" wartości trzeba
wchodzić w arytmetykę interwałową.

Pozdrawiam

UkÂłady równaĂą ...

Cytat:
| Czy są dostępne jakieś biblioteki w srodowisku visual C ++, umozliwiające
| rozwiązywanie układów równań w postaci macierzowej(chodzi o dużą liczbę
| równań , rzędu 100.000)?, a może ktoś ma dostęp do kodów umożliwiających
| rozwiązywanie takich układów...
To bedzie ciekawe zadanie...Macierz 100kx100kx8b czyli ca 80GB. Zakladajac
ze  wykorzystasz fakt ze macierz jest pasmowa i symetryczna (przy dobrej
siatce MES wyjdzie ci waskie pasmo) to moze zejdziesz do kilku GB. Ambitne
zadanie jak dla kogos kto nie potrafi samemu zaimplementowac rozwiazywania
ukladu rownan metoda eliminacji Gaussa... (a moze ktos zna szybsza? bo ja
juz szczerze mowiac nie pamietam)
PS: Wrzuc w google'a: lapack | template numerical toolikit | solving linear
equations in C++ etc

Wyznacznik macierzy.


Cytat:w sumie to jest to metoda Gaussa rozwiazywanie ukladu n rownan
z n niewiadomymi, polegajacy na zerowaniu elementow glownej macierzy
ukladu rownan pod lub nad glowna przekatna, a to, ze akurat mozna stad
latwo obliczyc wyznacznik macierzy, to wypadek przy pracy



Jest to metoda eliminacji Gaussa i wykorzystuje ja sie w wielu miejscach
przy operacjach na macierzach....

Kaczus/BlaBla & AUG-Lodz

układy równań {VC}

Cytat:| Czy ktoś może co nie co podpowiedzieć jak rozwiązywać układy równań z
| dwiema nie wiadomymi???? Jak się za to wogule zabrać

Przede wszystkim nalezy chodzic na lekcje matematyki ;)



No wlasnie :)
Poszukaj jakiejs ksiazki chyba do gimnazjum (a moze do podstawowej ?) z maty
i tam bedziesz mial wzorki :)
A jak lubisz wyzwania to mozesz policzyc sobie wyznaczniki do tego twojego
ukladu 2x2 np metoda Eliminacji Gaussa :))) albo jeszcze jakas inna ? :))
Pozdrawiam

Tomek_BSD

Algebra liniowa w Javie

Witam!

Pracuje nad implementacja pewnego (zlozonego) algorytmu matematycznego.
Wybralem z pewnych wzgledow Jave. Wiem, ze takie rzeczy powinno sie
raczej robic np. w Maple'u, ale ten problem jest typowo "obiektowy"
poza tym Maple nie ma tylu wygodnych struktur danych. Mam 2 pytania
do doswiadczonych programistow (nie chodzi mi o podanie
konkretnych rozwiazan, ale jakiekolwiek uwagi)

1) program bedzie wykonywal cos na ksztalt eliminacji Gaussa
(dodawanie wierszy etc.) na sporej ilosci macierzy (malych lub bardzo
duzych, zaleznie od danych wejsciowych). Rowniez czeste bedzie wykonywane
"sklejanie" macierzy, dopisywanie blokow, wierszy, kolumn.
Czy trzymac takie macierze w tablicach (ale sklejanie macierzy
bedzie koszmarne), czy wykorzystac np.
biblioteke Jama (by MathWorks), czy sa jakies inne podobne? Bede wdzieczny za
wszelkie uwagi i pomysly.

2) Problemy z precyzja: wiem, ze typ double w Javie jest bardzo pojemny,
ale jednak ograniczony. Stosowanie klas typu BigDecimal raczej nie wchodzi
w gre (podejrzewam, ze operacje na nich sa bardzo wolne).
Czy sa jakies metody np. wykrywania bledow typu "1/3 * 3 = 0.999"?
Czy sa dostepne jakies biblioteki do obliczen symbolicznych
(chyba za duzo wymagam :))?

Z gory dzieki za odpowiedzi
pozdrawiam
Andrzej

Algebra liniowa w Javie

Przyjrzyj sie bibliotekom commons-lang i commons-math bodajże z JAkarty:
jakarta.apache.org

prwadopodobnie znajdziesz tam gotowca z eliminacji gaussa i wiele
przydatnych klas.

A co do bigdecimal to poszukaj gdzies MutableBigDecimal, gdzies kiedys
mignela mi taka klasa przed oczami, jesli dobrze rozumiec nazwe to
roznilaby sie tym ze trzeba zachowac pewne srodki ostroznosci i szybkosc
bylaby zadowalajaca

co do HashMapy to moze okazac sie lepsze przeciazenie metody hashCode()
zeby zwracala co tam potrzebujesz i te 0 i 1 wcisnac binarnie w
zwracanego inta, moze do "kluczowania" hashmapy dobrze zrobic oddzielna
klase twoja, i pamietaj ze taki int najlepiej byloby przeliczyc
naprzyklad w konstruktorze zeby nie liczyc go za kazdym wywolaniem
hashCode()

rozwiazanie układu równań n-tego stopnia


Cytat:Czy ma ktoś z Państwa gotową metodę rozwiązywania oznaczonego układu n
równań liniowych z n niewaidomymi ?



Eliminacja Gaussa z częściowym wyborem jeśli nic nie wiadomo
o macierzy. Jak coś wiadomo to warto zastanowić się nad
innym algorytmem. Biblioteka: http://math.nist.gov/jnt/

Pozdrawiam

wyznacznik macierzy

Cytat:Ogóly wzór rekurencyjny jest taki:
Oznaczenia:
 A   - macierz
 Aij - macierz z "wyciętymi" i-tym wierszem i j-tą kolumną
 a[ij] - element macierzy z i-tego wiersza i j-tej kolumny
 det A - wyznacznik
Wzorek (przy liczeniu za pomoca 1-go wiersza):
det A = "suma od k=1 do n" ( (-1)^(1+k) * a[1k] * det A1j )



W.w. ma złożoność n!

Do obliczeń numerycznych lepiej stosować inną metodę:
1.Doprowadzić macierz do postaci schodkowej eliminacją Gaussa (może być
też rozkład LU);
2.Iloczyn elementów na przekątnej daje wyznacznik.
Zamiana wierszy/kolumn przy wyborze elementu głównego w eliminacji zmienia
znak wyznacznika.

Tutaj złożoność jest jak n^3 i raczej nie zabraknie pamięci na rekurencję.

Turbo Pascal Jak ominąc limit 64KB dla tablicy

Ostatnio napisałem moduł dla TP pozwalający rozwiązywac układy równań liniowych
postaci Cramera za pomocą metod dokładnych takich jak

Metoda wyznacznikowa Cramera
Metoda eliminacji Gaussa
Metoda równania macierzowego Ax=B
Metoda rozkładu LU

Niestety maksymalna ilośc równań to 20
dlatego że tablica może pomieścic 64KB danych

Można to obejśc na dwa sposoby
Pierwszy sposób to użycie wskaźników
Drugi sposób to przechowywanie danych
w pliku (bez użycia tablicy)

Jak zaimplementowac te procedury z użyciem wskaźników lub plików
zamiast tablic (plik może byc binarny lub tekstowy)

Odwracanie macierzy metodą Gaussa

Witam,

Potrzebuje w C stworzyć algorytm odwracający dowolną macierz (nieosobliwą) metodą eliminacji Gaussa (macierz kwadratowa i jednostkowa). Nie wiem za bardzo jak się zabrać za to - rozrasta się to i rozrasta i czuje, że nie tędy droga Jeżeli ktoś miał podobne przejścia lub zna rozwiązanie to proszę o pomoc.

Pozdrawiam,

[ansi C] wyznacznik macierzy

No to sorry... Miałeś cały semestr na nauke programowania w C. A pomóc Ci nie jestem w stanie bo nie znam metody La Place'a.

-- dopisek --

OK, już wiem co to jest metoda La Place'a i jestem przekonany, że w Internecie są setki gotowych implementacji. Jeżeli masz z czymś konkretnym problem to proszę bardzo - pytaj, ale za Ciebie tego nie napiszę.

-- dopisek --

Co najwyżej mogę Ci podpowiedzieć cobyś posukał pod metodą eliminacji Gaussa bo to się do tego sprowadza (tzn. no tak jakby do tego - nie wnikajmy w szczegóły).

[ansi C] wyznacznik macierzy

Cytat:wyznacznik macierzy niekwadratowej jest zawsze równy zero


Nie ma czegoś takiego, jak "wyznacznik macierzy niekwadratowej".

Metoda eliminacji Gaussa -- nie kojarzę tej nazwy, ale prawdopodobnie chodzi o przekształcenie wyjściowej macierzy (przy pomocy operacji nie zmieniających wartości wyznacznika) do macierzy trójkątnej. Chyba bardziej skomplikowane (mam na myśli przetłumaczenie tego na kod w C) niż zastosowanie metody (twierdzenia Laplace'a) do oryginalnej macierzy.

PS. Ten gość nazywał się Laplace.

[ansi C] wyznacznik macierzy

hmm czytałem ten temat już dwa razy i nie mogę zrozumieć pewnej rzeczy jak za pomocą metody eliminacji Gaussa chcecie obliczyć wyznacznik macierzy?! Z tego co wiem metoda ta jest wykorzystywana do obliczania rzędu macierzy i rozwiązywania układów równać liniowych ale z obliczaniem wyznacznika się nie spotkałem. Nawet wiki milczy w tym temacie, także prosiłbym o wyjaśnienie

pzdr

Fotografia ślubna co Pentaxsiarz wiedzieć powinien

Dzieki za odpowiedzi. Nawet nie wiedzialem ze w K100D mam ten efekt Problem tylko w tym ze mozna go uzyc rzecz jasna tylko z jpg. Ktos mi kiedys powiedzial ze nawet mozna zrobic zdjecia w aparacie prosto do jpg i ze efekty beda zadawalajce - ja w to nie wierze. Co za tym idzie najpostsze rozwiazanie dla mnie odpada. To pozostaje mi teraz wersja hard z wazelina i ponczochami Zowu problem bo wysmarowany wazelina w ponczochach moglbym zbytnio "zmiekczyc" pare mloda i ze slubu i zdjec bylyby nici. Wolalbym dopiero po zrobieniu zdjecia decydowac co zmiekczyc a co nie. Metoda eliminacji pozostaje mi pobawic sie w gimpie warstwami i gaussem. Samo rozmycie dawalo efekty zgola kiepskie i dalekie od porzadanego efektu. Jeszcze nie mialem okazji miksowac warstw. Jak bede mial chwilke to sie tym pobawie.
Dzieki i pozdrawiam

HELP! (Pogotowie naukowe) :)

Sprowadzasz macierz do postaci trapezowej (trójkątna jest jej szczególnym przypadkiem) za pomocą operacji wierszowych (dodwanie, odejmowanie, mnożenie przez skalar). I dalej jak będziesz miał postać np. taką:
Kod: 1  2  4  5  2
0  0  5  1  3
0  0  0  3  5
gdzie kolumny 1-4 to kolumny niewiadomych, a piąta to macierz dołączona z wektorem rozwiązań, "widzisz", że:

3*x4 = 5
5*x3 + x4 = 3
x1 + 2*x2 + 4*x3 + 5*x4 = 2

Łapiesz, czy dalej tłumaczyć?

[ Dodano: Pon 22 Sty, 2007 20:35 ]
Ta metoda tak ładniej nazywa się "metodą eliminacji Gaussa", bo eliminujesz kolejne niewiadome z wierszy. Sprowadza się to w zasadzie do odejmowania i dodawania równań stronami, tylko tak lepiej wszystko widać. Przynajmniej Gaussowi tak się wydawało .

W ramach rewanżu poproszę tutorial przewidywania rozwiązań równań różniczkowych liniowych niejednorodnych drugiego rzędu (czyli taki krótki kurs magii praktycznej) .

AP Promo video by xx pk own xx

Widzę, że w filmiku ująłeś wiele scen walki - ciutke za długi jak dla mnie.
Promo vid powinien być jak najkrótszy i posiadał jak najwięcej "treści".

Moja ocena w skali od 0 do √978 pomnożona przez różniczkę i dodana do macierza, obliczona metodą eliminacji Gaussa dająca wynik 5

Dobra robota

Piractwo (było: 4ed - wyciek przed premierą!)

Cytat:Co do dalszej części Twojej odpowiedzi, w sieci nielegalnie udostępnia się także artykuły naukowe, bo i wśród tzw. ludzi nauki są tacy, którym żal opłacić prenumeratę jakiegoś pisma specjalistycznego lub zapłacić kilkanaście bądź kilkadziesiąt dolarów za dostęp do interesującego ich tekstu.

I artykuły w tych pismach specjalistycznych to główne źródło dochodu tychże naukowców? Już widzę te tłumy ludzi zainteresowanych pracą o współczynniku wzrostu w metodzie eliminacji Gaussa...

Nie mógłbym też nie nawiązać do ostatniej części Twojego postu, w którym twierdzisz, że skoro "skoro jest zainteresowanie, mogą spokojnie zarabiać tak, jak pozostali". Otóż natura ludzka jest tak pokrętnie skonstruowana, że jeśli człowiek przeczyta, dla przykładu, artykuł naukowy, w którym opisano doświadczenie, które się nie powiodło, nie zapłaci zań dobrowolnie. Co ciekawe jednak, ten sam człowiek-naukowiec wyciągnie wnioski z przeprowadzonego doświadczenia, by uniknąć błędów popełnionych przez poprzedników, a więc de facto będzie korzystał z tej wiedzy, nie płacąc za nią.

HELP HELP ! !

lol dod jeden z podrozdzialow mojej magisterki bedzie traktowal o uwarunkowaniu zadania rozwiazywania ukladu rownan przy zastosowaniu metody eliminacji Gauss'a. Powinienem byc w tym oblatany, ale jeszcze nie jestem...

przeksztalcanie macierzy do postaci iloczynu macierzy trojkatnej gornej i trojkatnej dolnej jest prawdopodobnie najstabilniejsza metoda i dosc optymalna.
nie pisalem tego w postaci algorytmu (bo domyslam sie ze musisz to zaimplementowac), ale jak cos to moge cos poradzic od strony teoretycznej. forward: GG.

Algorytm i źródło"Wyznaczanie macierzy odwrot

dzizas ale zamotales. :] a z metody gaussa?

bierzemy macierz A i macierz jednostkowa. A eliminacja Gaussa przeksztalcamy do macierzy jednostkowej. wszystkie przeksztalcenia macierzy A stosujemy jednoczesnie do macierzy jednostkowej i kiedy A stanie sie jednostkowa to druga macierz stanie sie odwrotna do A.

Ćwiczenia Kapela Piątek 8:30 - 10:00

Cytat: Krótko mówiąc, na kolokwium można się spodziewać wszystkiego co pojawiło
się od poczatku semestru do przedostatnich ćwiczeń włącznie a wiec:
analiza błędów, poprawność algorytmów,
Eliminacja gaussa,
rozklady LR, LL^T, QR,
normy wektorow i macierzy,
wartosci i wektory wlasne,
postac Jordana macierzy

Nie będzie materiału z ostatnich ćwiczeń czyli metody potęgowej, tw.
Geshgorina, metody QR wyznaczania wartości wlasnych.

Pozdrawiam,
Tomasz Kapela

metody numeryczne

Dla wszystkich zaniteresowanych poniżej przedstawie kody żródłowe skryptu rozwiązujacego metode eliminacji gaussa równania Ax=y;

przykład:

function [x,e]=gauss_elim(A,y)
A=[1 1 1 -1;1 -1 -1 1;2 1 -1 2;3 1 2 -1],
y=[2 0 9 7]',

C=[A,y],
n=size(C),
e=C,
for i=1:n(1),

for j=i+1:n(1),

x=C(i,i)/C(j,i)
e(j,: )=C(j,: )*x-C(i,: )
end
C=e
end
y=e(:,n(2)),
x=y,
for k=1:n(1),
i=n(1)-k+1,
tmp=0;
for j=1:4
if j==i then
continue;
end
tmp=tmp+C(i,j)*x(j);
end
x(i)=(y(i)-tmp)/C(i,i);
end,
endfunction

funkcja ta jest realizowana w scilabie!!

egzamin u oresta

moim skromnym zdaniem chyba też
ale moge was pocieszyc dziewczyny bo grupa pierwsza na cwiczeniach u oresta robiła wyznacznik z macierzy maks 4x4 ale za to macierz odwrotną raczej szukali z tego wzoru (patrz skoczylas 1 str.74 ) niż za pomocą metody eliminacji gaussa ale i tak nie jest tak źle bo takich zadań jak my np. z baz wogóle nie robili

KOLOSY

zadania były jakieś ani do tańca ani do różańca ^^

pierwszy to po prostu roztrzaskać Cramera tam : (przykład, mój )
x+y+z+u=0
2x+3x-z+u=0
x+2y+3z+u=0
5x+y+z+u=1
policzyć detA, A1, A2, A3, A4 i podać x y z u, w grupie II było tylko y policzyć

Drugie to rozwalić dwa układy równań metodą eliminacji Jordana Gaussa + wyznaczyć rzędy macierzy r(A), r(A|B)
ja miałem w grupie drugiej oba przyklady ( a i b ) 3 wiersze, 4 kolumny i jedna ta wolna całkiem z prawej, wolne liczby czy jak to tam się nazywa ^^

to chyba tak było

KOLOSY

ja miałam grupę I i u mnie było mniej więcej coś takiego ze w pierwszym trzeba było podać dla jakiego parametru p układ będzie układem Cramerra i o ile sie nie mylę trzeba było poprostu w tym zadaniu policzyć wyznacznik ( to byl 4 stopnia wyznacznik ) a potem napisać założenie ze układ bedzie ukladem Cramerra gdzy detA bedzie rozny od 0 .

a drugie wszyscy chyba mieli podobne bo : dwa układy równań metodą eliminacji Jordana Gaussa + wyznaczyć rzędy macierzy r(A), r(A|B). Ale w tym poplatalam sie w ulamkach :/

U nas ( gr. 8 ) dała 3 grupy

Powodzenia .

Kolos z KAUE

Zera mieć raczej nie będziesz bo zmodyfikowana metoda potencjałów węzłowych daje macierze z przekątną różną od zera. Ale na numerkach coś o tym było, że zamieniało się wiersze w macierzy i zapisywało zmianę czy jakoś tak... albo kolumny. To było bodaj przy eliminacji Gaussa z wyborem elementu podstawowego

Komputerowe wspomaganie w technice i nowoczesne techniki L

Witam info od dr Wyciśloka:
Do Egzaminu powiedział, że mamy dokładnie wykłady Przejrzeć bo na Egzamine mają być po 2 pytania z każdego wykładu ( jakieś ogólne) tak sie wyraził
Pozatym Przejrzyjcie Wykłady do sprawozdań z cwiczeń bo jest podopowiedź do metody eliminacji Gaussa
Pozdro

Rozwiazywanie ukladow rownan metoda eliminacji Gaussa...help

Witam,

Czy moglby ktos sluzyc rada (najlepiej kodem) przy tworzeniu programu do rozwiązywanie układów równań algebraicznych liniowych metoda eliminacji Gaussa ? Chodziloby o program dzialajacy sekwencyjnie oraz rownolegle (MPI). Moze ktos mialby gotowego stwora ?

Bede zobowiazany

Liceum

korass, ma rację. Rankingami nie warto się zbytnio kierować. Dobrym przykładem jest moje LO. Niby w okolicy 60 miejsca w Warszawie a z mat-fizu około 17 osób na 28 w klasie co roku dostaje się na polibudę (warszawską albo często poznańską) na studia dzienne.
Zaś kontrast między jakością nauczycieli jest ogromny. Zwłaszcza matematyki. Jeden nie chciał zaliczyć mi 1 klasy bo zamiast metody podstawienia zmiennej korzystałem ze wzorów Cramera i eliminacji Gaussa dla układów liniowych. Jak zmienił mi się nauczyciel to nagle się okazało że mam motywację, ba zostałem doceniony.
mat1989 również mądrze prawi. Sami nauczyciele nie sprawią cudów. Polecał bym przejrzenie na przyszłość tych działów: http://fizyczny.net/viewtopic.php?t=871 i http://fizyczny.net/viewtopic.php?t=1553 . Trzeba (wiele) własnego wysiłku żeby się rozwijać.

Kolokwium i tematy zadań

Po moim kolejnym mailu do prowadzącego (z pytaniem czy poprzedni nie doszedł)....

Cytat:
Dzien dobry

Chyba go przeoczylem, przepraszam. W zwiazku z tym kolokwium bedzie za
dwa tygodnie (6 maj). Zajecia sie odbeda w ta sobote w tych samych
terminach co ostatnio. Material:

- poszukiwanie minimum funkcji
- iteracyjne rozwiazywanie ukladow rownan
- calkowanie numeryczne
- i zlozonosci obliczeniowe metod, ktore byly na zajeciach ostatnich
Zadanie do zrobienia w Matlabie (termin dwa tygodnie, czyli czwartek 4 maja):
- aproksymacja eksponenty wielomianami Czebyszewa
- eliminacja Gaussa-Jordana i Dollitle'a

Marcin Pietron

wyznacznik macierzy

Poczataj o rozkładzie LU
Implementacja rozkładu LU znajduje się w książce
Numerical Recipes in C

Możesz skorzystać z metody eliminacji Gaussa
Zerować elementy możesz za pomocą operacji elementarnych
albo mnożąc przez macierze ortogonalne (obroty Givensa)

Można skorzystać z rozwinięcia Laplace'a
albo wygenerować permutacje,policzyć ilość inwersji i
obliczyć sumę iloczynów

[C++] Klasa macierzy

Napisać klasę macierzy najlepiej szablonową

Należy przeciążyć operatory dodawania i mnożenia
Należy zaimplementować metodę obliczającą wyznacznik
metodę odwracającą macierz
metodę obliczającą rząd macierzy
Ponadto zaimplementować eliminację Gaussa i rozkład LU
oraz metodę postępowania wstecz i wprzód

Zaimplementować operacje elementarne na wierszach i kolumnach
Zaimplementować metodę usuwającą kolumny lub wiersze
oraz konkatenację kilku kolumn bądź wierszy

Napisałem już klasę macierzy ale nie działa ona poprawnie

symulowanie wody

Cytat:
Ale jak to będzie wyglądać pod względem wydajnosciowym



Bez wielkiego problemu uzyska sie wizualizacje interaktywna, czyli
to, co intuicyjnie, lecz blednie jest nazywane czasem rzeczywistym.
Problem nie jest w wydajnosci, lecz znajomosci teorii niezbednej
do dostrojenia algorytmu -- nalezy dobrac pewne wspolczynniki
liczbowe. Wystarczy pomylic sie o przyslowiowy epsilon i wszystko

(czyli dokladnie to, czego potrzebuje Rafal), pod Windows i OpenGL.
Nie mam strony WWW aby to na niej umiescic, wiec zainteresowanym
moge podeslac plik wykonywalny na priv (zajmuje 24 KiB). Na jego
przykladzie mozna zobaczyc jak wazny jest dobor wspolczynnikow
 -- np. dla dt=0,0025 wszystko dziala, a dla dt=0,0027 natychmiast
sie rozlatuje. Program liczy w ukladzie biegunowym, bo membrana
miala byc okragla; dla prostokatnej jest jeszcze prosciej.

Cytat:bo jeśli dobrze rozumiem wymaga to rozwiazywania równania dla
róznych punktów przestrzeni



Dokladniej ukladu rownan liniowych, zadanego przez macierz
wstegowa, zwykle troj- albo piecioprzekatniowa, jezeli korzystamy
z metod niejawnych.

Cytat:a skoro jest to metodami numerycznymi, to na każde takie rozwiązanie
będzie się składać kilk przybliżeń. Dobrze mówię ?



Nie, przeciez metody numeryczne nie ograniczaja sie do schematow
iteracyjnych i mutacji metody podzialu i oszacowan. :-) Rozwiazywac
to ogolnie mozna za pomoca eliminacji Gaussa, np. z czesciowym
wyborem elementow glownych albo zastosowac metode specjalnie
dopasowana do postaci macierzy.

    Pozdrawiam
    Piotr Wyderski

Rownania liniowe

Cytat:... a druga to metoda eliminacji Gaussa. Proszę mnie poprawić jeśli się
mylę.



ach, wlasnie... nie dodalem...
Prowadzacy wykluczyl eliminacje Gaussa... niestety.

Nero

Oficjalne nieformalne algorytmy.

Electronic Dyl:
Cytat:

| To nie jest  B, lecz  X*B -- mamy:

|   X*B  :=  Y - Sum((e_j . Y)*e_j : j = 1...r)

| To nie jest wszystko, lecz -- dzieki wlasnosciom
| podanej procedury, ponad polowa rozwiazania.

| Napisze wiecej i do konca w nastepnym poscie.



Tak, musze sie przymusic :-) Jeszcze nie w tym poscie.

Cytat:| PS. Chodzi mi po glowie, ze napotkalem podobny temat
| przed cwierc wieku, [...]

Ciekaw jestem, uzupełnij.



W ciagu miesiaca "odzyskam" chyba swoje rzeczy,
ktore przechowuje po drugiej stronie kontynentu.
Moze odnajde pewien "raport" grupy w ktorej pracowalem,

Cytat:TY pragniesz zwyczajnie diagonalizować macierz X
za pomocą przekształceń zbliżonych do eliminacji
Gaussa.



Analogia jest tylko o tyle prawdziwa, ze w obu
wypadkach w gre wchodzi macierz trojkatna.
Metoda, ktopra przedstrawilem nazywa sie
ortogonalizacja Grahma-Schmidta lub podobnie
(balem sie, ze cos przekrece, wiec poprzsednio

historyczny odnosnik). W przeciwienstwie do
ogolnej metody Gaussa, dzialajacej dla dowolnego
ciala, ortogonalizacja wymaga, zeby cialo bylo
rzeczywiste (w sensie Artina?): zeby suma niezerowych
kwadratow nigdy nie byla rowna zero -- ten prosty warunek
pozwala cialo uporzadkowac liniowo chyba sie nie myle;
wszystkie takie podstawowe fakty powinnismy miec w...
FAQ).

Cytat:Twoje zapisy symboliczne są trochę niejasne
dla mnie do końca. Niewiem np. co to znaczy
kropka w zapisie: (e_j . Y)*e_j



Przepraszam, zapomnialem dopowiedziec: kropka
oznaczaa iloczyn skalarny.

Pozdrawiam,

    Wlodek

Cytat:A może dałoby sie zapisać ciąg takich operacji jako iloczyn jakichś macierzy.

Spróbuj, może właśnie tak. Byłoby czytelne.

Pozdrawiam
Edyl.



--
============= P o l N E W S ==============
     archiwum i przeszukiwanie newsów
        http://www.polnews.pl

algorytm rzedu macierzy

Cytat:
macierzy i nie bardzo mi to wychodzi - prosba: czy ktos z Szanowych
Grupowiczy moglby mnie wspomoc. Ewentualnie w archiwum grupy odszukalem ze
taki algorytm jest w ksiazce: T.Cormen, C.Leiserson, R.Rivest, "Wprowadzenie
do algorytmów", Wyd. Naukowo-Techniczne, Warszawa 1997



Zajrzałem do tej książki, ale tam nic nie ma...

W każdym razie, taki algorytm można otrzymać z metody eliminacji Gaussa,
czyli ze zwykłej szkolnej metody rozwiązywania układów równań liniowych.
Bierzemy macierz A[m x n] i przekształcamy ją tak, aby pod diagonalą były same zera.
Stosujemy elementarne operacje na wierszach i kolumnach, które nie zmieniają
rzędu macierzy. Dla przypomnienia:

- w i-tym kroku, bierzemy a_{i,i}, zerujemy elementy a_{k,i} dla k = i+1, i+2, ... m:
  odejmujemy w tym celu od k-tego wiersza wiersz i-ty pomnożony przez a_{k,i} / a_{i,i},

- oczywiście zakładamy, że a_{i,i} =/= 0, w przeciwnym wypadku trzeba odpowiednio
  przestawić kolumny lub wiersze, a jeśli to jest niemożliwe, kończymy procedurę,
  rank(A) = i - 1.

Inne podejście:

Mamy zbiór wektorów v_1, v_2 ... v_n  in R^m, załóżmy, że wszystkie niezerowe.
Możemy teraz próbować ortogonalizować ten układ otrzymując po kolei wektory
u_1, u_2, ... in R^m:

- pierwszy krok: u_1 := v_1,

- jeśli mamy już wektory u_1, u_2 ... u_k, to

   u_{k+1} := v_{k+1} + b_1*u_1 + b_2*u_2 + ...+ b_k*u_k,

   gdzie współczynniki b_1, b_2 ... b_k wyznaczamy z warunku ortogonalności:

   < u_{k+1},u_j = 0,     dla  j = 1 ... k

- jeżeli pojawi nam się wektor zerowy, u_{k+1} = 0, to znaczy, że v_{k+1} jest
  kombinacją  {v_1 ... v_k}.

Na końcu dostajemy układ (ortogonalny) wektorów, który generuje tę samą przestrzeń,
choć interesuje nas tylko ich liczba (niezerowych wektorów, oczywiście)...

Obie metody mają złożoność wielomianową względem max(n,m), czyli mogą być uważane
za efektywne. A jeśli chodzi o kwestie stabilności numerycznej itp., to nie wiem --
niech wypowiedzą się specjaliści.

Tomek

eliminacja gausa

Cytat:
 zwracam uwage na w/w metode rozwiazywania
ukladu rownan liniowych



[tj. eliminację Gaussa - nb. dwa "s"]

Cytat:                        jako na nejlepsza do rozwiazywania metodami

rownan. W/w metoda daje najmniejsza liczbe mnozen i dzielen.



Ale za to jest niestablina numerycznie, także ze względu na błąd
zaokrąglenia. Ściślej, staje się stabilna dla układów dobrze
uwarunkowanych, jeżeli użyć tzw. "pivotingu" (poprawnie nazywa się
to "wyborem elementu podstawowego"), ale wówczas wątpię, czy da się
ją zakodować w 20 minut.

Eliminacja Gaussa, z pivotingiem czy bez, ma także inną wadę:
trzeba ją przeprowadzać dla każdej nowej prawej strony od
początku, tymczasem często zdarza się, że trzeba rozwiązać
kilka układów różniących się tylko prawymi stronami:
Ax = b1, Ax = b2, etc
Przy eliminacji Gaussa wszystko trzeba robić dla każdej prawej strony
od początku, a to jest kosztowne (wymaga ~N^3 operacji, zatem łącznie
~M*N^3 operacji, gdzie M jest ilością niezależnych prawych stron).
Tymczasem w technikach konkurencyjnych (rozkład LU, rozkład Cholesky'ego
dla macierzy symetrycznych) rozkładu macierzy dokonuje się raz,
gdyż jest on cechą macierzy, nie układu równań (czyli nie zależy od
prawej strony). Mamy zatem dla M układów równań z tą samą macierzą
~N^3 operacji na rozkład plus ~M*N^2 operacji na każde równanie
(równanie ze zdekomponowaną prawą stroną rozwiązuje się w ~N^2
operacji). To może _znacznie_ przyśpieszyć działanie programu.

Rekapitulując, eliminacja Gaussa bez pivotingu jest _złą_ metodą
rozwiązywania układów równań. W przypadku, gdy mamy do rozwiązania
więcej niż jedno równanie różniące się tylko prawymi stronami,
eliminacja Gaussa z pivotingiem jest również _złą_ metodą.

Paweł Góra                    Three Laws of Thermodynamics:
Institute of Physics            1. You can't win.
Jagellonian University          2. You can't break even.
Cracow, Poland                  3. You can't even quit the game.

Macierze

Cytat:
Z kolei rozwiazujac uklad rownan liniowych metoda
eliminacji Gaussa wolno Ci tylko przestawiac wiersze,
a nie kolumny.



Nieprawda. Trzeba tylko zapamiętać globalną transformację
"kolumnową".

Problem , macierze

Za pomocą metody eliminacji Gaussa na przykład.

Sporo sposobów na macierze i układy równań znajdziesz w książce:

Klukowski (albo Kluczkowski), Nabiałek - Algebra liniowa.

Powodzenia i miłej lektury.

Pozdrawiam FreeForm.

Metoda gradientow sprzezonych

Witam!
Cytat:



Cytat:| Macierz jest "prawie" dolna, tzn prawie wszystkie wyrazy niezerowe



są(...)

Cytat:O, ja bym zdecydowanie próbował wykorzystać i zrobił coś a'la
"odwrócona" eliminacja Gaussa, sprowadzająca macierz do postaci
trójkątnej dolnej. Zapewne trzebaby jakoś sprytnie zapamiętywać
niezerowe elementy z górnego trójkąta no i zapamietywać wynikowe
przekształcenie wyrazu wolnego, jeśli ma ich być wiele (dla tej samej
macierzy) i jeśli z góry nie są wszystkie znane.




macierz może być trójkątna górna (prawie). Że jest akurat teraz tak, to
wynik powiedzmy "szczęścia", w przyszłości tak być nie musi....

Cytat:| max|lambda_i| / min|lambda_i| = 98.2935
No, dla macierzy niesymetrycznej to _nie_ jest równe współczynnikowi
uwarunkowania, ale niekiedy bywa mu bliskie. Jeśli tak, to ~10^2 nie
jest wcale takie złe. Rzekłbym nawet, iż jest to to bardzo przyzwoite
uwarunkowanie. Moze raz zaciśnij zęby i puść dla twojej macierzy SVD,
to da ci prawdziwy współczynnik uwarunkowania.



Oj chyba wychodzi, gorzej bo:
max|w_i| / min|w_i|= 213434.41

Cytat:I jeszcze jedno: Jak rozumiem, macierz moze się zmieniać w czasie
działania całego programu (rózne iteracje metody Newtona). Masz
pewność, że w którymś przypadku uwarunkowanie ci się nie popsuje?
Bo jesli faktycznie rozwiązujesz bardzo-wielowymiarowe równanie
algebraiczne Newtonem (współczuję), to łatwo możesz przechodzić
przez jakieś lokalne siodła, gdzie Jakobian będzie dramatycznie
źle uwarunkowany.



Hmm, faktycznie, pewności nie mam. Czy mógłbyś doradzić inną metodę na
rozwiązanie ukłądu równań? (Myślałem o quasi-newtonowskiej minimalizacji
sumy kwadratów. Ale metoda Newtona póki co była dla mnie szybsza do
implementacji i datego też wybrałem właśnie ją.) Jest ten układ dość
specyficzny. Jakieś 1200 równań liniowych i około 100 postaci

sum alfa_i x_i*|x_i|

Czyli takie kwadratowe ale jeden wyraz w module. Póki co i tak metoda
Newtona jest jakieś 100 razy szybsza niż poprzednia, którą nakazuje tradycja
w tych problemach. I czy warto dekomponować LU "rzadkim" algorytmem?

Jeszcze raz wielkie dzięki za wszelkie wskazówki. I przepraszam, że się tak
dopytuję. Nie mam wielkiej praktyki w trudniejszych obliczeniach
numerycznych (małe macierze to LU i nie ma nad czym myśleć :)) Więc jeszcze
raz tym bardziej dziękuję.

Piotr Kaczyński

uklad rownan liniowych - metoda eliminacji Gaussa

Witam

potrzbuje to do szkoly, ale nie dam rady tego zrobic

czy ktos moze ma gdzies zrodlo takiego programu lub jest w stanie mi jakos pomoc?

z gory wielkie dzieki

metoda eliminacji Gaussa - uklad rownan liniowych

mam zrodlo  w C
moze mi ktos pomoc w przetlumaczeniu tego na jave
bo nei wiem np co w tym kodzie robia nastepujace linijki
fabs(a[j][i])
#ifdef TEST
#endif

#include <iostream.h
#include <math.h
const int N=3;
double x[N];
double a[N][N+1]=
       {
       {5 ,  0,  1,  9},
       {1 ,  1,-1,  6},
       {2,  -1, 1,  0}

Cytat:};



double as[N][N+1]=
       {
   {1 ,  1,  1,  9},
   {0 ,  1, 1,  6},
   {0,   1, 1,  4}

Cytat:};



int gauss(double a[N][N+1],double x[N])
{
int max;
double tmp;
for(int i=0;i<N;i++) // eliminacja
  {
  max=i;
  for(int j=i+1;j<N;j++)
  if(fabs(a[j][i])fabs(a[max][i]))
  max=j;
for(int k=i;k<N+1;k++) // zamiana wierszy wartościami
  {
  tmp=a[i][k];
    a[i][k]=a[max][k];
    a[max][k]=tmp;
  }
if(a[i][i]==0)
  return 0;  // Układ sprzeczny!

  for(j=i+1;j<N;j++)
  for(k=N;k=i;k--) // mnożenie wiersza j przez współczynnik "zerujący":
  a[j][k]=a[j][k]-a[i][k]*a[j][i]/a[i][i];
  }
#ifdef TEST
  cout << "MACIERZ TRÓJKĄTNA ";
  for(i=0;i<N;i++)
{
for(j=0;j<=N;j++)
  cout << a[i][j] << ", ";
cout << endl;
  }
#endif
// reduckja wsteczna
for(int j=N-1;j=0;j--)
  {
  tmp=0;
  for(int k=j+1;k<=N;k++)
   tmp=tmp+a[j][k]*x[k];
  x[j]=(a[j][N]-tmp)/a[j][j];
  }
return 1;  // wszystko w porządku!

Cytat:}



void main()
{
if(!gauss(a,x))
cout << "Układ (1) jest sprzeczny! ";
else
  {
  cout << "Rozwiązanie: ";
  for(int i=0;i<N;i++)
  cout << "x["<<i<<"]="<<x[i] << endl;
  }
if(!gauss(as,x))
cout << "Układ (2) jest sprzeczny! ";
Cytat:}



metoda eliminacji Gaussa - uklad rownan liniowych


Cytat:mam zrodlo  w C
moze mi ktos pomoc w przetlumaczeniu tego na jave
bo nei wiem np co w tym kodzie robia nastepujace linijki
fabs(a[j][i])
#ifdef TEST
#endif



Widzę, że w C to się za bardzo nie posunąłeś, choć w już 2000
przedstawiałeś się jako programista C/C++.

O to cytat:

Cytat:---------------===================== O Autorze
Moja ksywa brzmi Fasiu. Jestem poczatkujacym programista w jezyku C/C++.

www: www.fasiu.z.pl - verry under construction :-)

Dziekuje za korzystanie z mojego darmowego programu.



<http://66.102.11.104/search?q=cache:ok5svz3k0usJ:m4sh.atpa.eu.org/~ba...

Podsumujmy:
1. Nie potrafisz zrozumieć prostego programu C.

3. Nie potrafisz posłużyć się google.
4. Spamujesz - ten sam mail "metoda eliminacji Gaussa - uklad rownan
liniowych" poszedł na 8 albo więcej grup, w tym
alt.pl.ogloszenia.matrymonialne. No i ten głupi sklep z bielizną, dla
którego też spamujesz gdzie popadnie:
<http://groups.google.com/groups?hl=pl&lr=&ie=UTF-8&selm=c3if8i%24232s...
<http://koleje.toplista.pl/
<http://4liga.top-100.pl/

5. Prawdopodobnie próbujesz oszukać nauczyciela, udając że sam odrobiłeś
pracę domową (no chyba, że próbujesz zbić majątek na programach do
rozwiązywania układów równań metodą Gaussa).
6. Z ortografią się nie lubisz.
7. Swoje wypociny uważasz za dzieło geniusza, które każdy próbuje ukraść:
<http://niusy.onet.pl/niusy.html?t=artykul&group=pl.comp.lang.php&aid=...
<http://groups.google.com/groups?hl=pl&lr=&ie=UTF-8&selm=c9vosd%242mt9...
8. Za to kradniesz cudze i nimi handlujesz:
<http://groups.google.com/groups?hl=pl&lr=&ie=UTF-8&selm=9qsmvh%244dd%...
<http://groups.google.com/groups?hl=pl&lr=&ie=UTF-8&selm=9rhrpi%24phn%...
9. Acha, z matematyki też kiepsko:
<http://groups.google.com/groups?hl=pl&lr=&ie=UTF-8&selm=F7qz4.798%24K...

Chłopie z takim podejściem i inteligencją to do końca życia pozostaniesz
na poziomie takich arcydzieł jak to:
<http://programy.onet.pl/75,60,8546,programy.html

Pozostaje mi tylko dołączyć się do prośby z listu:
<http://groups.google.com/groups?hl=pl&lr=&ie=UTF-8&selm=9rjn9q%246va%...
którą w łagodniejszej postaci można wyrazić
...proszę odejść bardzo szybko i jak najdalej...

Ale wątpię byś posłuchał, bo dres z Ciebie jakich mało.

PLONK

GM

zlece: metoda eliminacji Gaussa - uklad rownan liniowych


kod musi byc przejrzysty i najlepiej jak najkrutszy zebym mogl go szybko zrozumiec :)
i musi przy kazdej linijce miec wyczerpujacy komenttarz - opisujacy co dana linijka robi

! zaplace za takowy program !

zlece: metoda eliminacji Gaussa - uklad rownan liniowych

Stary, nie wiem w czym problem, czekasz na gotowca bo ci sie nie chce. Moze
nie masz algorytmu??????
Jak Ci brak algorytmu to masz tu moja stara funkcje pisana w Matlabie na
jedno z cwiczen z numerków. Sadze, ze nie powinienes miec po nim klopotów z
zapisem algorytmu w javie - sam widzisz metoda jest trywialna a algorytm
latwy do zrozumienia na oko. A tak apropo - wpierw napisz cos sam w javie,
niekoniecznie hulajacego a potem ewentualnie pytaj co nie piszczy? - wtedy z
pewnoscia wiekszosc posluzy ci rada - ta grupa to nie sciaga.pl !!!!

%Funkcja ma za zadanie obliczyc wspolczynniki "c" metada eliminacji Gaussa

%Rownanie ma postac: F'*c=F

%Argumenty funkcji to F(x0) i F'(x0)

function f=gauss(Fp,F,n)

%Pierwszym etapem jest doprowadzenie rownania do postaci trojkatnej!

C=[Fp F];

for s= 1:n-1,

for i = s+1:n,

for j=s+1:n+1,

% disp(['s=',num2str(s),' i=',num2str(i),' j=',num2str(j),]);

C(i,j)=C(i,j)- ( C(i,s)./C(s,s) ).*C(s,j) ;

end

C(i,s)=0;

end

end

%etap drugi - rozwiazanie trojkatnego ukladu rownan!

%Wydzielam wartosci ai i bi z macierzy C

rozm=[];

for i=1:n,

rozm=[rozm i];

end

A=C(:,rozm);

B=C(:,n+1);

%tu algorytm obliczania

i=n-1;

x=zeros(n,1); %inicjuje x zerami.

x(n)=B(n)./A(n,n);

while (i =1),

suma=0;

for s=i+1:n,

suma=suma+A(i,s).*x(s);

end

x(i)=( B(i)-suma )./A(i,i);

i=i-1; % zmniejszaj i o 1

end

f=x; %zwrocenie wspolczynnikow

PZDR;
Sergiusz.

Cytat:

| kod musi byc przejrzysty i najlepiej jak najkrutszy zebym mogl go szybko
zrozumiec :)
| i musi przy kazdej linijce miec wyczerpujacy komenttarz - opisujacy co
dana linijka robi

| ! zaplace za takowy program !

stary, ile razy mozna Ci mowic, ze *nie rozwiazujemy zadan domowych* ?
przyslalem Ci ilestam linkow do programow w javie, ktore to robia.
jesli szukasz frajera, ktory Ci to napisze za Ciebie, to szukaj gdzie
indziej.

nie pozdrawiam
a.



Marny z programowania student potrzebuje pomocy


Cytat:Witajcie,
Nie bede wiele pisal...
Nie znam sie na programowaniu w C++ ani w Pascalu (ani chyba w zadnym innym
jezyku), a mam do zaliczenia przedmiot "Metody numeryczne" i aby go zaliczyc
trzeba rozwiazac 2 z 3 tematow cwiczen:
1.  Rozwiązywanie równań nieliniowych
2.  Odwracanie macierzy i obliczanie wyznaczników
3.  Szybka transformata Fouriera

Opisy do tych zadan znajduja sie na stronie:
http://castor.am.gdynia.pl/~luksza/metody/index.htm

Nalezy wejsc na te strone, nastepnie na link  Ćwiczenia i nastepnie na link
z poszczegolnych cwiczen.

Mozne znajdzie ktos z Was czas by sprobowac to zrobic (2 z tych trzech).

Bede bardzo wdzieczny za wszelka pomoc

Z gory dzieki

Dykos



Czy marny z programowania student wiec chociaż, co to zacz równania
nieliniowe (i jak się je rozwiązuje), macierzy i wyznaczniki (jak się te
ostatnie liczy) i transformata FFT (i jak się ją liczy)?

Gdy ja studiowałem (dawno!) to o niesamodzielnym rozwiązywaniu takich
zadań nie mogło być mowy, bo prowadzący bardzo dokładnie "konsultował"
kod programu ze studentem i żądał uzasadnienia wyboru takiej a nie innej
strategii rozwiązywania (na przykład - przy obliczaniu wyznacznika -
poszukiwania elementu wiodącego tylko w jednej kolumnie, zamiast wśród
wszystkich nieskreślonych elementów). Jeśli student nie miał pojęcia o
numerycznym obliczaniu wyznaczników, a przedstawił program (poprawny!)
obliczający wyznacznik, to oszustwo było oczywiste i ewentualne kolejne
próby zaliczenia student mógł juz sobie darować.

Czego marnemu z programowania studentowi jak najbardziej życzę. Nic tak
nie rozwija umiejętności jak wnikliwa dyskusja z pedantycznym belfrem.
Zresztą, są ludzie, którzy przez całe życie nie słyszeli o FFT czy
metodzie nadrelaksacji (że o eliminacji Gaussa-Jordana czy nawet samym
wyznaczniku nie wspomnę) a żyją nadal i to nieźle. Więc może nie warto
się wysilać?

List otwarty do CITIBANK :)


Cytat:To sie nazywa metoda eliminacja Gaussa.
MM



Dokladnie tak. Dziekuje za przypomnienie :)

Jacek

Matematyka

Była bym ogromnie wdzieczna jeśli ktoś poleci mi naprawde dobre strony www z materiałem do takich tematów:

Temat 1. Elementy logiki
Zdanie logiczne, funktory zdaniotwórcze,
Tautologia,
Prawa rachunku zdań,
Formy zdaniowe. Kwantyfikatory.

Temat 2. Działania na zbiorach
Zbiór, podzbiór, relacja zawierania,
Suma, przekrój, dopełnienie - podstawowe działania,
Liczebność zbioru,
Rodzina podzbiorów.
Iloczyn kartezjański.

Temat 3. Rachunek macierzowy
Dodawanie macierzy
Mnożenie macierzy
Transpozycja.
Koncepcja wyznacznika macierzy.
Macierz odwrotna.

Temat 4. Układy równań liniowych
Rozwiązania układów równań.
Metoda macierzowa.
Eliminacja Gaussa*.

Temat 5. Ciąg liczbowy
Ciąg - definicja.
Ciąg ograniczony.
Koncepcja monotoniczności.

Temat 6. Granica ciągu
Granica właściwa.
Granica niewłaściwa.
Podstawowe twierdzenia o granicach. Wyznaczanie granic.

Temat 7. Funkcja jednej zmiennej
Definicja funkcji.
Funkcje złożone.
Funkcja odwrotne.
Monotoniczność funkcji.

Temat 8. Granica funkcji
Definicja granicy.
Typologia granic.
Wyznaczanie granic funkcji.
Ciągłość funkcji.

Temat 9. Rachunek różniczkowy funkcji jednej zmiennej - podstawowe zagadnienia Definicja pochodnej.
Wyznaczanie pochodnych.
Pochodne funkcji elementarnych.
Pochodna funkcji złożonej.
Pochodne wyższych rzędów.

Temat 10. Zastosowania pochodnych
Reguła de l'Hôspitala.
Ekstremum funkcji.

Temat 11. Całka nieoznaczona
Funkcja pierwotna.
Pojęcie całki nieoznaczonej.
Całki ważniejszych funkcji elementarnych (wzory podstawowe).
Podstawowe reguły całkowania.
Całkowanie przez części.
Całkowanie przez podstawienie.

Temat 12. Całka oznaczona
Interpretacja geometryczna całki oznaczonej.
Wyznaczanie całek oznaczonych.
Przekształcenia całek oznaczonych.

Temat 13. Funkcje wielu zmiennych
Pochodne cząstkowe.
Pochodne cząstkowe wyższych rzędów.
Ekstremum funkcji dwóch zmiennych.

Przeszukiwałam internet i dla takiego "zwykłego Śmiertelnika"- jak ja, materiał jest dość skromny tzn. ma bardzo mało przykładów i jest dość naukowo wytłumaczony. Ja potrzebuje czegoś co jest dość obszernie wyjaśnione, przejrzyste dla kogoś kto nie jest dobry z Matematyki, i ma dużo przykładów, co bardzo pomaga zrozumieć dany temat.
Jeśli ktoś chociaż niektóre z tych tamtów znalazł gdzieś wyjątkowo prosto wytłumaczone to bardzo proszę o adres.

Z góry bardzo dziękuje za pomoc.

[2007Z] [ egzamin mgr] przygotowania do egzaminu

Cytat:roolin moglbys przypomniec zadania, bo widzialem ze miales zapisane?


ja również mam:

1. Obok Mostu Grunwaldzkiego prowadzi się poamary stężenia pierwiastków ciężkich. Rezulatem pomiarów jesr lista 171 par , gdzie Oznacza stężenie pierwiastków w chwili .
Zaproponuj realistyczną metode wykonywania przybliżonego wykresu funkcji , dla

2.Opisac kwadratury i) Newtona-Cotesa ii) Gaussa w tym uwzglednić:
-wyznaczanie węzłow
-rząd
-charakterystykę własności
iii) Co to są kwadratury złożone? Podaj przykład.

Zadania 3 i 4 kiedyś już były podobne więc po co pisać ;]

5. Czy istnieje naturalna funkcja sklejana III stopnia postaci
dla mamy
dla mamy

6.Znaleźć takie , że dla dowolnego zachodzi:


7. Dla całki funkcji zastosowano wzów trapezów na 9 węzłach. Wykaż, że błąd przybliżenia

8. a)jak można wykorzystać rozkład LU macierzy do roziwązania układu liniowego?
b) Jaki jest związek rozkladu LU z eliminacją Gaussa
c) Jakie korzyści mamy, gdy stosujemy wybór elementów głównych

Wyznaczniki

To że jest "niewygodne" - bardzo delikatnie to ująłeś
Jeżeli wyznacznik ma w sobie tylko liczby całkowite to można zastosować metodę eliminacji Gaussa, jakaś super-krótka nie jest, ale zawsze z niej korzystaliśmy...

Konkurs trzyetapowy IIed.

Proponowane rozwiązanie: roztoczyć jakąś dyskusję. Idealnie będzie, jeżeli temat nie będzie brzmiał "Wytwarzanie sera w Lombardii Północnej", czy też "Współczynnik wzrostu w metodzie eliminacji Gaussa".

G. Rossy zależność czasu trwania imperium od czasu powstania

Cytat:
Być może nie rozumie Pan różnicy między rozwiązaniem analitycznym a numerycznym.

Rozwiązanie analityczne polega na znalezieniu konkretnego wzór pozwalającego obliczyć poszukiwaną wartość. Przykładem jest rozwiązywanie układu równań liniowych.

Rozwiązanie numeryczne polega na tym, że nie mamy wzoru na obliczenia naszej niewiadomej. Mamy natomiast pewne kryterium, np. poszukiwana wartość minimalizuje jakąś funkcję. Wówczas próbujemy różnych wartości niewiadomych, aż natrafimy na jakieś minimum wspomnianego kryterium. Innymi dopasowując, a nie obliczając parametry do funkcji, stosował Pan metodę numeryczną. Być może o tym nie wiedząc.



Nie do końca zgadzam sie z tak okreslonym podziałem.

Generalnie rozwiązanie numeryczne, to po prostu obliczenia dokonywane na liczbach. Problem matematyczny jest opisany jako liczby z ktorymi trzeba coś zrobić. Rozwiązanie analityczne to przekształcanie wzorow i operacje na symbolach.

Na przykład numeryczne liczenie całki oznaczonej dodatniej funkcji rzeczywistej jednej zmiennej (ta całka równa się polu figury ograniczonej wykresem funkcji i osią x-ów), to bedzie "bezmyślne"liczenie sumy odpowiednich prostokącikow (na przykład), a metoda analityczna, to będzie "odgadywanie" funkcji pierwotnych i skorzystanie z podstawowego twierdzenia rachunku całkowego, ktore pozwala obliczyc calke oznaczona funkcji, o ile sie zna jej funkcje pierwotną. Odgadywanki wymagają sporej pomysłowości, są czasochłonne i w wiekszości wypadkow niemozliwe. Ich główna rola to rzeź studentów ;).

Układy równan. Są niby analityczne wzory (Cramera), ale maja znaczenie tylko teoretyczne. W praktyce układy równan mozna liczyc tylko numerycznie. Podobnie jest z wyznacznikiem macierzy. Wzór ma znaczenie teoretyczne, a w praktyce wyznacznik macierzy liczy się za pomoca np. eliminacji gaussa - metody numerycznej znanej na dlugo przed pojawieniem sie komputerow.

Cytat:Dubitacjuszu,
podziwiam wytrwałość, ale nie sadzę byś doczekał się od GR konkretnych odpowiedzi na zadane pytania. To drążenie - to syzyfowa praca.
Dlatego nieśmiało postuluję byś tu dał sobie spokój a zaoszczędzoną energię skierował na tematy polityczne.



Niestety na polityce to już absolutnie każdy się zna...

Ćwiczenia Kapela Piątek 8:30 - 10:00

pozbierałem materiał jaki mieliśmy z kapela:

1)
Czy algorytm jest numerycznie stabilny?
Dla jakich x zadanie: y = .. jest źle uwarunkowane.
2)
Podać ograniczenie dla błędu względnego wartości Dhf(0).
Pokazać, ze algorytm obliczania f(x,y)=... jest poprawny numerycznie.
3)
Rozwiązać metoda eliminacji Gaussa układy równań.
Dla macierzy A wyznaczyć macierze trójkątne (dolna L i górna R) występujące w rozkładzie A = LR
Wyznaczyć macierz trójkątną dolna K spełniającą warunek A = K Kt
4)
Dokonaj rozkładu QR macierzy. Ozywając tego rozkładu rozwiąż równanie Ax = b, gdzie b = ...
Algorytm Grama-Schmidta.
5)
Podaj i udowodnij wzory norm macierzowych odpowiadających normom wektorowym .....
Wyznaczyć ||A1||oo, ||A2||1 oraz napisać wielomian charakterystyczny macierzy A3.
Wyznaczyć promień spektralny macierzy A jeśli jej wielomian charakterystyczny ma postać...
6)
Dla macierzy A wyznaczyć największą i najmniejsza wartość własna i odpowiadający jej wektor własny.
Przedstawić w postaci Jordana macierze : ....
Dla macierzy A przeprowadzić kilka iteracji algorytmu QR wyznaczania wartości własnych.
7)
Napisać przybliżenia x1, x2 dla: A) iteracji Jacobiego, B) iteracji Gaussa-Seidla. Czy iteracja Jacobiego zastosowana do tych układów jest zbieżna?
8)
Czy odwzorowanie F:... dane wzorem F(X) = ... jest kontrakcja?
Obliczyć metoda bijekcji 3 kolejne przybliżenia rozwiązania równania: ....
Podać wzór na przybliżenie Xk w iteracji Newtona.
9)
Napisać wielomian interpolacyjny Lagrange’a dla funkcji F spełniającej warunki: ...
Napisać wielomian interpolacyjny w postaci Newtona.
Obliczyć ilorazy różnicowe rzędu 1, 2, 3, 4, 5 funkcji F.
Napisać wielomian interpolacyjny.
10)
Obliczyć współczynniki fi kwadratury Newtona-Cotesa dla n = 1, 2, 3.
Przy pomocy wzoru Trapezów/Parabol/Kwadratury złożonej (n = 1) obliczyć przybliżona wartość całki:...
Wzór sumacyjny Eulera Maclaurina.

-----
jest tego trochę
jak by komus sie jeszcze chcialo dac opis do każdego punktu jak to zrobic to juz by bylo super:)

15.000 GBP rocznie - tyle zarabia przeciętny Polak mieszkają

Cytat: Kiedys skonczylem Politechnike z dosc dobrym kursem matematyki (w kilku roznych odmianach), pozniej mialem duzo wspolnego z Akademia Ekonomiczna i mimo to chyba trudno mi zrozumiec Twoj sposob rozumowania -aczkolwiek nie twierdze, ze jest bledny. Moze to ja jestem troche leniwy

Wyjasnie prosto skad sie wzielo to moje 40%.

Mieszkajac w PL wydawalem rocznie X plz.
Mieszkajac w UK wydaje rocznie 1,4X plz.

dlatego twierdze, ze moje zycie w UK jest o 40% drozsze od zycia, ktore prowadzilem w PL.



No to jesli skonczyles Politechnike to powinienes znac jak sie uklada liniowe rownania algebraiczne Na uczelni powinienes miec nawet uklady rownan liniowych Metode eliminacji Gaussa, odwracanie macierzy, moze nawet metody iteracyjne Gaussa-Seidla albo Jacobiego.

W tym przypadku rownanie jest banalnie proste...
Przyrownujesz sobie to co odkladasz w kieszeni w Polsce i w UK i jesli porownujesz obydwie pensje to powinienes tu i tam otrzymac te same oszczednosci. A te oszczednosci czyli to co ci zostaje w kieszeni jest rowne to co zarabiasz brutto minus podatek i minus koszty utrzymania. Juz prosciej byc nie moze.
Dlatego dziwie sie ze nie rozumiesz mojego toku rozumowania, zwlaszcza jesli skonczyles Politechnike.

PS. Nie wiem ile wydawales w Polsce pieniedzy. Dla porownania cen/kosztow utrzymania w krajach UE, w Niemczech wszystko kosztuje podobnie w Euro, jak w Anglii w GBP. Z roznicy w kursach walut masz juz okolo 40% wyzsze koszty utrzymania. Jesli zakladasz ze taki sam stosunek jest miedzy UK i Polska to tym samym mowisz ze koszty utrzymania w Niemczech i Polsce sa jednakowe. Mieszkalem w Niemczech w roznych ich partiach przez 1.5 roku i moge powiedziec ze na pewno sa wyzsze w Niemczech! I to tez okolo 40% co daje w sumie wynik - 100% wyzsze koszty utrzymania pomiedzy PL i UK. I ta liczba zgadza sie rowniez z porownaniem moich wydatkow w PL i UK.

PS. Dla wyjasnienia jak z 40% i 40% wzielo sie 100% podaje : 1.4 * 1.4 = 1.96 = ok. 2 razy

algebra pomocy!

wyznaczyc baze jadra oraz wymiar jadra i wymiar obrazu przeksztalcenia t: R^4-->R^3
T(x,y,z,t)=(x-y-z+4t, x+y+z-6t, x-y+z-2t)
wiem ze to trzeba najpierw ulozyc jakos macierz i metoda eliminacji gaussa ale nie weim dkoladnie jak ta macierz wyznaczyc prosze o pomoc...

[C++]macierz odwrotna

Zaimplementować funkcję obliczającą macierz odwrotną metodą eliminacji Gaussa
z częściowym wyborem elementu głównego

Mam napisany już kawałek tego kodu ale bez częściowego wyboru elementu głównego

Sprawdzić czy pamięć jest prawidłowo zaalokowana

Zaliczenie

Zad 4.
Znaleźć wyznacznik macierzy A metodą eliminacji Gaussa z wyborem elementu głównego w całej macierzy.

(Wartości nie przepisuje, ale są podane)

Kto ma coś takiego?

dokladnosc metody - blad obliczen

Cytat:
Obecnie uklad ten rozwiazuje za
pomoca metody eliminacji Gaussa-Jordana (jesli bedzie trzeba uzyje
lepszej).
[...]
Znajac bledy wyznaczenia wspolzednych punktow ktore posluzyly
mi do policzenia wspolczynnikow potrzebuje oszacowac blad wspolrzednych
wyliczanych w wyniku przeksztalcenia.



Być może wystarczy zastosować tak zwaną "liniową propagację błędów"
- zobacz na przykład Siegmund Brand, "Analiza danych". Rozumiem,
że współczynniki macierzy układu równań, o którym wyżej, zależą
od punktów pomiarowych ($vec x$) obarczonych błędami
($vecvarepsilon$ oznacza wektor błędów), ty zaś szukasz
współczynników transformacji (vec a$) i ich błędów ($veceta$),
a raczej macierzy kowariancji tych błędów (to ważne, same błędy
_nie_ wystarczą, współczynniki korelacji mogą być bardzo
istotne). Pomijając szczegóły, gdyby nie było błędów, miałbyś

$vec a = f(vec x)$.

Masz jednak błędy, a więc

$vec a + veceta = F(vec x + vecvarepsilon)
simeq f(vec x) + Jvecvarepsilon$,

gdzie zakładam, że $vecvarepsilon$ są małe, wystarczy rozwinięcie
do pierwszego rzędu, $J$ oznacza jakobian. Wobec tego macierz
kowariancji błędów estymatorów

$<vecetaveceta^T= <Jvecvarepsilonvecvarepsilon^TJ^T
=J<vecvarepsilonvarepsilon^TJ^T = JCJ^T$

gdzie <...oznacza wartoąść oczekiwaną, ${}^T$ transpozycję,
$C = <vecvarepsilonvecvarepsilon^T$  oznacza macierz kowariancji
pomiarów. Zauważ, że nawet jeśli pomiary są nieskorelowane ($C$ jest
diagonalna), błędy estymatorów na ogół będą skorelowane.

Myślę, że notacja TeXowa wyżej jest jasna. Po więcej, w szczególności
po wyjście poza przybliżenie liniowe (może nie będzie konieczne?),
zobacz u Brandta.

Cytat:Chcialbym rowniez znac metode na
oszacowanie bledow ktore wprowadzaja same obliczenia numeryczne.



Zastosowana metoda Gaussa-Jordana jest metodą dokładną, co oznacza,
że gdybyś prowadził obliczenia z nieskończoną precyzją, otrzymałbyś
wynik ścisły. Błąd może wynikać tylko z błędu zaokrąglenia. Na
pierwszy rzut oka może się wydawać, że ponieważ błąd zaokrąglenia
jest (zapewne) mniejszy od błędu pomiarowego, nie powinno tu
być problemów. To wrażenie jest jednak błędne - błedy mogą urosnąć
kolosalnie. W szczególności dzielenie przez liczby o niewielkiej
ilosci cyfr znaczących (czyli, typowo, przez liczby małe) powoduje
znaczny wzrost błędu zaokrąglenia. Zatem _koniecznie_ musisz
w swojej procedurze zastosować wybór elementu podstawowego
("pivoting"), przynajmniej częściowy: Powiedzmy, że wyczyściłeś
już k-1 pierwszych kolumn, teraz czyścisz k-tą. W tym celu musisz
podzielić przez element A_{kk}, ale jeśli on jest mały (na moduł),
wprowadzisz duzy błąd. Ponieważ jednak zmiana kolejności równań nie
wpływa ta wynik, przeglądasz elementy A_{kk}, A_{k,k+1},...,A_{kn}
i wybierasz ten, który ma największy moduł. Odpowiednie równanie
zapisujesz jako k-te, dotychczasowe k-te wędruje na zwolnione
miejsce - odpowiada to przestawieniu dwu wierszy macierzy A i
takiemu samemu przestawieniu wyrazów wolnych. W ten sposób dzielisz
przez coś "możliwie największego". Jeszcze lepsze efekty
dałby pełny pivoting (przeglądasz nie tylko k-tą kolumne, ale
całą podmacierz), ale on jest trudniejszy (trzeba na koncu odwikływać
rozwiązanie), więc na ogół poprzestaje się na pivotingu częściowym.

Ogólnie błąd numeryczny będzie zdominowany przez błędy wprowadzone
przez dzielania z małymi dzielnikami. Oprócz ksiązek wymienionych
przez A.L., zobacz także początkowe rozdzaiły "wstepu do analizy
numerycznej" Ralstona.

Paweł Góra
Institute of Physics, Jagellonian University, Cracow, Poland
A physical entity does not do what it does because it is what it is,
but is what it is because it does what it does.