8000 GitHub - DroppedHard/RRIR: Projekt z przedmiotu Rachunek Różniczkowy i Różnicowy
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
This repository was archived by the owner on Jan 22, 2025. It is now read-only.

DroppedHard/RRIR

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigatio 87AC n

Projekt z przedmiotu Rachunek Różniczkowy i Różnicowy

Autorzy:

  • Kacper Jurek
  • Marcin Żurawel
  • Szymon Wójcik

Aby skorzystać ze spisu treści, proszę nacisnąć menu w lewym górnym rogu tego okna.

Wstęp

Projekt polega na zaimplementowaniu metody numerycznej strzałów, która na podstawie różniczki drugiego rzędu i warunków brzegowych wylicza funkcję zbliżoną do funkcji wyliczonej algebraicznie. Program został napisany w Pythonie, graficzny interfejs został stworzony przy pomocy biblioteki matplotlib.pyplot.

Wymagania systemowe

Program był testowany w systemie Windows 10, i działał poprawnie. Zalecamy więc korzystanie z tego systemu przy uruchamianiu programu.

Korzystanie z programu

Po uruchomieniu programu powinno wyświelić się okno, gdzie możemy wyróżnić następujące sekcje:

  • Step size, gdzie możemy ustawić dokładność naszych argumentów funkcji.
  • Equations, gdzie możemy z listy rozsuwalnej wybrać odpowiednie zagadnienia brzegowe.
  • Przycisk plot, gdzie po naciśnięciu jego otrzymamy wykresy strzałów i wykres funkcji reprezentującej odpowiedź wyznaczoną algebraicznie.
  • Siatkę, gdzie będą przedstawione graficznie wykresy kolejnych strzałów, oraz funkcji wyznaczonej algebraicznie.

Każde naciśnięcie przycisku plot spowoduje ponowne uruchomienie algorytmu, co skutkuje różnymi wykresami strzałów. Rozmiar siatki automatycznie dopasowuje się do wartości otrzymanych funkcji.

Opis metody

Metoda polega na użyciu losowo wybranej wartości y'(x0) do wyliczenia rozwiązania. Otrzymany wynik porównujemy ze znaną drugą wartością brzegową.
Powtarzamy te 2 kroki do momentu znalezienia dostatecznie dokładnego rozwiązania.
Po pierwszych dwóch "strzałach", czyli zgadniętych wartościach y'(x0) zwiększamy dokładność kolejnych strzałów, korzystając z liniowej interpolacji.

Implementacja

Główny algorytm metody strzałów znajduje się w funkcji shooting_method. Wybiera pierwsze 2 strzały losowo - pierwszy ze zbioru {1..5}, drugi ze zbioru {5..10}. Do wybrania kolejnych używa funkcji linear_interpolation.
Otrzymany po zgadnięciu brakującego założenia problem Cauchy'ego jest rozwiązywany funkcją solve_ivp_second. Implementuje ona metodę Eulera dla równań drugiego rzędu.
Kolejne strzały są wykonywane do momentu uzyskania dokładności 10^-3 (różnica między otrzymaną wartością brzegową a podaną) lub gdy liniowa interpolacja przestaje dawać bardziej precyzyjne wartości (każdy kolejny strzał jest taki sam).

Literatura

About

Projekt z przedmiotu Rachunek Różniczkowy i Różnicowy

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  
0