szybkie rozwiązywanie układów równań

0

Chodzi mi o takie proste układy, w których mamy jedynie kilka przekątnych, np.:

Ax = b
A = 
1 0 0 0 0 0 0 0 ... 
0 1 0 0 0 0 0 0...
1 2 3 2 1 0 0 0...
0 1 2 3 2 1 0 0... 
0 0 1 2 3 2 1 0 ...
....
i to się kończy tak samo jak zaczyna, czyli tak:
0 0 0 ... 0 1 2 3 2 1
0 0 0 ... 0 0 0 0 1 0
0 0 0 ... 0 0 0 0 0 1

jak takie coś szybko rozwiązać ale w wersji multipleksowej,
znaczy mamy np. 500 takich układów, które różnią się tylko kolumną wsp. b?

2

xD szybkie i bezpamięciowe odwracanie macierzy! widzę że dobrze przewidywałem :D Zaraz doczytasz kolejne kilka stron i powiesz że odkryłeś metodę Jacobiego, SOR, Gaussa-Seidla i Czebyszewa ;)

0

Nie. Obawiam się że te metody nie nadają się do tego przypadku.

Powiedzmy że mamy taką przekątniową macierz o wymiarach: N = 1000;

i należy rozwiązać to też 1000 razy - dla różnych b;

albo i lepiej: w ogóle nie mamy b, więc należy opracować metodę, która zadziała dla dowolnego b!
..........

Od razu powiem, że odwracanie tej macierzy odpada, bo wtedy otrzymamy marne wyniki:
N^2 operacji na jeden układ, a tu mamy N takich, czyli byłoby w sumie N^3, co jest za słabe - z 1000 razy!

w sumie chyba jeszcze gorzej byłoby: N^3 na samo odwracanie macierzy!,
a potem N mnożeń wektorów, z których każde też wymaga N operacji,
czyli N^5 aż: 1000^5 = bilion operacji?....... shock!
chyba coś źle liczę...

0

@kwalifika: to trzeba przyznać, niezbyt wybitnie liczysz, bo mnożysz zamiast dodawać. Powinno być N^3+N^2 zamiast N^3*N^2.

1 użytkowników online, w tym zalogowanych: 0, gości: 1