{"id":25284141,"url":"https://github.com/matb85/projekt-rrir","last_synced_at":"2025-09-25T22:50:24.588Z","repository":{"id":277141371,"uuid":"931458905","full_name":"Matb85/projekt-rrir","owner":"Matb85","description":null,"archived":false,"fork":false,"pushed_at":"2025-02-12T10:18:30.000Z","size":13524,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-12T11:32:01.153Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Matb85.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-12T10:08:08.000Z","updated_at":"2025-02-12T10:18:34.000Z","dependencies_parsed_at":"2025-02-12T11:42:21.420Z","dependency_job_id":null,"html_url":"https://github.com/Matb85/projekt-rrir","commit_stats":null,"previous_names":["matb85/projekt-rrir"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Matb85%2Fprojekt-rrir","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Matb85%2Fprojekt-rrir/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Matb85%2Fprojekt-rrir/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Matb85%2Fprojekt-rrir/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Matb85","download_url":"https://codeload.github.com/Matb85/projekt-rrir/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247496582,"owners_count":20948260,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-02-12T20:34:54.706Z","updated_at":"2025-09-25T22:50:24.490Z","avatar_url":"https://github.com/Matb85.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Projekt - Równania różniczkowe i różnicowe\n\nMateusz Bis\n\nProjekt 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.\n\n## Wstęp  \nOtrzymałem do wykonania problem obliczeniowy nr 4.2 - **„Wibracje akustyczne warstwy materiału”**, o równaniu:\n\n\u003cimg width=\"818\" alt=\"Screenshot 2025-02-12 at 11 09 36\" src=\"https://github.com/user-attachments/assets/b0936ec4-980e-405f-8906-cb57fb5269e8\" /\u003e\n\nAby rozwiązać zadanie:\n1. Wyprowadziłem sformułowanie wariacyjne równania.\n2. Napisałem procedurę, która generuje i rozwiązuje układ równań liniowych, a także rysuje wykres rozwiązania.\n\n## 1. Sformułowanie wariacyjne\n\nWyprowadzenie jest dostępne w pliku [pdf](https://github.com/Matb85/projekt-rrir/blob/main/Projekt%20RRIR%20Zadanie%204.2.pdf).\n\n## 2. Procedura  \n\n### 2.1 Wymagania funkcjonalne  \nProcedura powinna:\n- przyjmować argument \\(n\\) - liczbę elementów skończonych większą lub równą 3,\n- rysować wykres wyliczonego przybliżenia funkcji,\n- liczyć całki numerycznie.\n\n### 2.2 Użyte technologie  \nDo stworzenia procedury wykorzystałem język **C#** na platformie [**.NET 8**](https://learn.microsoft.com/pl-pl/dotnet/core/whats-new/dotnet-8/overview), oraz dwie biblioteki:\n1. [**ScottPlot.NET**](https://scottplot.net) do tworzenia wykresów i zapisywania ich jako obrazki,\n2. [**Math.NET**](https://numerics.mathdotnet.com) do obliczania numerycznie całek metodą Gauss-Legendre.\n\n### 2.3 Struktura  \nRozwiązanie składa się z dwóch plików:\n- **Solver.cs** - klasa `Solver` zawierająca metodę `Solve()`, czyli właściwą procedurę,\n- **Program.cs** - program główny, który po skompilowaniu można wywołać z terminalu.\n\n#### Argumenty procedury `Solve()` oraz programu głównego:\n1. `n` - liczba elementów skończonych większa lub równa 3,\n2. `saveDirectory` - folder do zapisania wykresów w formacie obrazka. Jeśli argument nie zostanie podany, wykresy zostaną otwarte w przeglądarce.\n\n#### Przykłady wywołania `Solve()` w kodzie C#:\n```csharp\nSolve(6,  \"/home/ubuntu\") // wykonaj dla 6 elementów i zapisz wykresy do folderu\nSolve(15, \"/home/ubuntu\") // wykonaj dla 15 elementów i zapisz wykresy do folderu\n```\n\n#### Przykłady wywołania programu głównego w terminalu:\n```sh\n./ProjektRRIR 8 /home/ubuntu  # wykonaj dla 8 elementów i zapisz wykresy do folderu\n./ProjektRRIR 80 /home/ubuntu # wykonaj dla 80 elementów i zapisz wykresy do folderu\n```\n\n## 3. Wykres\n\nDla n = 16:\n\n![wykres](https://github.com/user-attachments/assets/2f62711b-0cc9-47b5-815b-6e059c6bf077)\n\n![elementy](https://github.com/user-attachments/assets/67b8baea-09b8-4dc7-8989-bdcca447149d)\n\n### Przydatne linki:\n- [Microsoft .NET 8 Overview](https://learn.microsoft.com/pl-pl/dotnet/core/whats-new/dotnet-8/overview)\n- [ScottPlot.NET](https://scottplot.net)\n- [Math.NET Numerics](https://numerics.mathdotnet.com)\n- [Gauss-Legendre Rule](https://numerics.mathdotnet.com/Integration#Gauss-Legendre-Rule)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatb85%2Fprojekt-rrir","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmatb85%2Fprojekt-rrir","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatb85%2Fprojekt-rrir/lists"}