Poprawienie programu analizującego techniki przyśpieszania zbieżności w metodach rozwiązywania równań (Java)

Closed job
no avatar
Employer
1 deal
Job category:
Desktop/web applications
Expected budget:

Negotiable

Preferable skills:
Published:
Finished

Job description

Zlecę sprawdzenie i poprawienie projektu w Javie który opierać się ma w założeniach na metodzie Jacobiego i Gaussa-Seidla, usprawnionej metodzie Gaussa - Seidla czyli SOR (metoda nadrelaksacji) oraz jej ulepszonej wersji. Chodzi o to aby zbadać techniki przyśpieszania zbieżności w powyższych metodach rozwiązywania równań. Całość bazować ma na artykule z odnośnika (https://www.sciencedirect.com/science/article/pii/S089812211400203X podpunkt 3.1). Dysponuję programem który ma zaimplementowaną działającą klasyczną metodę Jacobiego, Gaussa - Seidla, SOR a także ulepszoną metodę nadrelaksacji. Dane (wielkość macierzy, wartości macierz oraz wektor wyrazów wolnych) pobierane są z konsoli, tu przydałaby się poprawka żeby pobierać te dane jednak z pliku wejściowego z uwagi na to że macierze mogą być bardzo rozbudowane. Dzięki nim program może wyznaczyć przybliżenia początkowe a następnie za pomocą kolejnych iteracji zbadać zbieżność/rozbieżność metody i rozwiązanie układu równań z którego wyciągnęliśmy sprawdzaną macierz. W trakcie wykonywania programu sprawdzane jest także czy macierz jest diagonalnie dominująca. Kolejną funkcją wykonywaną przez program jest zastosowanie wzorów do metody SOR z załączonego pliku tak aby uzyskać usprawnioną metodę SOR. Generalnie im większa macierz tym więcej iteracji powinno być potrzebnych do otrzymania rozwiązania z taką samą dokładnością dla każdej z metod a w przypadku mojego programu tak nie jest. Druga prawidłowość która powinna być zachowana jest taka, że najwięcej iteracji w obrębie układu o takim samym rozmiarze zawsze potrzebuje odpowiednio metoda Jacobiego, potem Gaussa-Seidla, a najmniej Gaussa-Seidla z relaksacją (1 i dwu parametrową).

Program prześlę po akceptacji zlecenia. Dodatkowo jestem w stanie przesłać rozwiązania na macierzach n=10, 50 oraz 100 w Maple i wyniki te powinny się pokrywać z wynikami z programu JAVA.

Required functions:

Na końcu działania programu wynik jest zapisywany do pliku wyjściowego z takimi danymi jak: - czy dana macierz jest diagonalnie dominująca, - ilość wykonanych iteracji, - rozwiązanie danej macierzy (układu równań) w postaci wyników z ostatniej iteracji, - warunek zakończenia obliczeń, - warunki mi oraz lambda po każdej iteracji (chodzi o to aby zbadać jak się zmieniają) - czas wykonania programu. Dodatkowo chciałbym również żeby najważniejsze funkcje programu zostały opisane w formie komentarza w kodzie.

Submitted offers 1

Add your offer or ask the client for more details