...hmm...
a jak można "skrócić" metodę gaussa ?
można np. zrobić tak ? :
[1 1 0 0 0 0 0 0]
[1 1 1 0 0 0 0 0]
[p 1 1 1 0 0 0 0]
[p p 1 1 1 0 0 0]
[p p p 1 1 1 0 0]
[p p p p 1 1 1 0]
[p p p p p 1 1 1]
[p p p p p p 1 1]
gdzie p - oznacza pominięcie obliczeń
czyli po prostu wszystkie elementy pod jedynkami zostaką pominiętę...Można tak w ogóle zrobić?
I czy da się jeszcze jakoś uprościć i zmniejszyć liczbę obliczeń?
poszperałem trochę i znalazłem algorytm na obliczanie macierzy tridiagonalnej. Tylko że po stworzeniu metody wyniki są ...niepokojąco różne....
wziąłem dwie metody i je porównałem (pierwsza to moja wcześniejsza a druga nowa) :
(podam kilka prób - za każdum razem inny rozmiar macierzy)
próba pierwsza
1 metoda - [1.417478010907464, 0.2990263869110431, -0.47635577286247527, -0.005226042180154722, 0.13320631267811317, 0.6505771248688345]
2 metoda - [1.2250786988457503, 0.5299055613850997, -0.4643231899265478, 0.5891920251836307, -0.0535152151101784, 0.5183630640083944]
próba druga
1 metoda - [-1.9369887997341226, 1.833709548238775, -0.05321380063139039, -1.196319839900209, 1.2442036232044416]
2 metoda - [-2.7029480008361437, 1.9482107967009752, 0.31476072126006205, -1.60417348290188, 1.6206839090521379]
wyniki niestety się różnią :/
co z tym zrobić?
czy te różnice są efektem błędów metody czy po prostu nie ten algorytm...
problem rozwiązany...
miałem błąd w kodzie :)
a tak nawiasem to dzięki za nakierowanie na temat :)
poprzednia metoda przy 1000 równaniach osiągała czas obliczeń 0,7 s
natomiast nowa metoda do obliczeń potrzebuje około 0,0002 s :)
dzienks :)