Skip to content

Matb85/projekt-rrir

Repository files navigation

Projekt - Równania różniczkowe i różnicowe

Mateusz Bis

Projekt został zrealizowany w ramach przedmiotu Równania różniczkowe i różnicowe na II roku studiów na kierunku Informatyka na Wydziale Informatyki Akademii Górniczo-Hutniczej.

Wstęp

Otrzymałem do wykonania problem obliczeniowy nr 4.2 - „Wibracje akustyczne warstwy materiału”, o równaniu:

Screenshot 2025-02-12 at 11 09 36

Aby rozwiązać zadanie:

  1. Wyprowadziłem sformułowanie wariacyjne równania.
  2. Napisałem procedurę, która generuje i rozwiązuje układ równań liniowych, a także rysuje wykres rozwiązania.

1. Sformułowanie wariacyjne

Wyprowadzenie jest dostępne w pliku pdf.

2. Procedura

2.1 Wymagania funkcjonalne

Procedura powinna:

  • przyjmować argument (n) - liczbę elementów skończonych większą lub równą 3,
  • rysować wykres wyliczonego przybliżenia funkcji,
  • liczyć całki numerycznie.

2.2 Użyte technologie

Do stworzenia procedury wykorzystałem język C# na platformie .NET 8, oraz dwie biblioteki:

  1. ScottPlot.NET do tworzenia wykresów i zapisywania ich jako obrazki,
  2. Math.NET do obliczania numerycznie całek metodą Gauss-Legendre.

2.3 Struktura

Rozwiązanie składa się z dwóch plików:

  • Solver.cs - klasa Solver zawierająca metodę Solve(), czyli właściwą procedurę,
  • Program.cs - program główny, który po skompilowaniu można wywołać z terminalu.

Argumenty procedury Solve() oraz programu głównego:

  1. n - liczba elementów skończonych większa lub równa 3,
  2. saveDirectory - folder do zapisania wykresów w formacie obrazka. Jeśli argument nie zostanie podany, wykresy zostaną otwarte w przeglądarce.

Przykłady wywołania Solve() w kodzie C#:

Solve(6,  "/home/ubuntu") // wykonaj dla 6 elementów i zapisz wykresy do folderu
Solve(15, "/home/ubuntu") // wykonaj dla 15 elementów i zapisz wykresy do folderu

Przykłady wywołania programu głównego w terminalu:

./ProjektRRIR 8 /home/ubuntu  # wykonaj dla 8 elementów i zapisz wykresy do folderu
./ProjektRRIR 80 /home/ubuntu # wykonaj dla 80 elementów i zapisz wykresy do folderu

3. Wykres

Dla n = 16:

wykres

elementy

Przydatne linki:

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages