Bachelor's Thesis

Implementace numerické metody pro řešení nelineárních soustav obyčejných diferenciálních rovnic

Final Thesis 2.2 MB

Author of thesis: Bc. Lucie Klobušická

Acad. year: 2025/2026

Supervisor: Ing. Petr Veigend, Ph.D.

Reviewer: Ing. Václav Šátek, Ph.D.

Abstract:

This thesis deals with the numerical solution of non-linear ordinary differential equations using a method based on Taylor series. The goal is to design and implement several variants of the Taylor method and to modify the non-linear equations so that the calculation of higher derivatives is more efficient. The proposed methods are compared with the fourth-order Runge--Kutta method in terms of accuracy and computational cost. The implementation was carried out in C\# and includes a custom mathematical library as well as a set of test problems. The results show that methods based on Taylor series are computationally faster than the fourth-order Runge--Kutta method in most problems and, at the same time, require less allocated memory.

Keywords:

numerical mathematics, ordinary differential equations, initial value problems, numerical solution of ordinary differential equations, non-linear problems, C#, Taylor series, MTSM

Date of defence

17.06.2026

Result of the defence

Defended (thesis was successfully defended)

znamkaAznamka

Grading

A

Process of defence

Studentka nejprve prezentovala výsledky, kterých dosáhla v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Studentka následně odpověděla na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studentky na položené otázky rozhodla práci hodnotit stupněm A.

Topics for thesis defence

  1. Vysvětlete velikost matic B1 a vektorů yjk v rovnicích (3.56) na str. 29 a (5.2) na str. 37.
  2. Důležitou součástí Vaší numerické metody je rovněž "preprocessing" - vhodná transformace soustavy ODR na autonomní systém. Lze nelineární ODR (3.51) na str. 29 převést vhodnou transformací na lineární soustavu ODR? Pokud ano, proveďte porovnání efektivity výpočtu této lineární soustavy ODR s Vaší nelineární soustavou ODR (3.55) a (3.58).
  3. Není v jazyce C# nějaká knihovna obsahující efektivní implementaci numerických metod pro řešení počátečních úloh ODR (podobně jako například v MATLABu "ode solvery")? Nešly by porovnat Vaše implementace numerických metod s touto knihovnou?
  4. Můžete okomentovat počáteční podmínky prezentované rovnice?
  5. Jakým způsobem jste testovala vytvořené řešení?

Language of thesis

Czech

Faculty

Department

Study programme

Information Technology (BIT)

Composition of Committee

doc. Ing. František Zbořil, CSc. (předseda)
doc. Ing. Michal Španěl, Ph.D. (místopředseda)
Ing. Jan Pluskal, Ph.D. (člen)
Ing. Aleš Smrčka, Ph.D. (člen)
Ing. Josef Strnadel, Ph.D. (člen)

Supervisor’s report
Ing. Petr Veigend, Ph.D.

Jako vedoucí nemohu hodnotit jinak. Spolupráce se studentkou byla příkladná a výsledná práce značně překonala moje původní očekávání. Proto tedy hodnotím stupněm A / 100b a doporučuji práci k obhajobě.

Evaluation criteria Verbal classification
Information about assignment

Závěrečná práce studentky navazuje na probíhající výzkum skupiny Vysoce náročné výpočty na FIT. Studentka měla za úkol se seznámit s metodami řešení obyčejných diferenciálních rovnic pomocí numerických metod a implementovat numerickou metodu vyššího řádu v jazyce C#. S touto metodou poté prováděla sadu experimentů. Dle mého názoru studentka výrazně překročila původně zamýšlený rozsah zadání práce jak počtem experimentů, tak jejich obtížností. Zadání považuji za obtížnější.

Work with literature

Studentka využívala literární prameny po doporučení vedoucího. Využívala je v souladu s citační etikou.

Activity during solution, consultations, communication

Studentka byla při řešení mimořádně aktivní, schůzky probíhaly i několikrát týdně, osobně i online. Dohodnuté termíny vždy dodržela a byla mnohdy rychlejší, než bylo dohodnuto. Studentka byla během řešení mimořádně aktivní a svědomitá.

Activity during completion

Studentka svou práci dokončovala průběžně, rozpracované verze jsem měl několikrát možnost celé projít na konzultacích. Práce byla dokončena v posledním týdnu před odevzdáním, ladili jsme již jen drobné detaily.

Publication activity, awards

Není mi známa. Studentka nakonec nechtěla zveřejnit výsledek práce na konferenci Excel@FIT, ale z výsledků práce se bude velmi pravděpodobně vycházet při přípravě příspěvku na mezinárodní konferenci.   

Points proposed by supervisor: 100

Grade proposed by supervisor: A

Reviewer’s report
Ing. Václav Šátek, Ph.D.

Práce splňuje zadání ve všech bodech. Doporučuji práci k obhajobě a celkově hodnotím práci stupněm B (89 bodů). Při úspěšné obhajobě práce a po zodpovězení mých dotazů se nebráním studentce
zvýšit hodnocení i na stupeň A, ponechám na rozhodnutí komise.

Evaluation criteria Verbal classification Points
The difficulty of the assignment

Evaluation level: more difficult assignment

Studentka se v práci musela seznámit s numerickým řešením nelineárních obyčejných diferenciálních rovnic (ODR) s využitím metody vyššího řádu založené na Tayorově polynomu. Implementovala několik verzí algoritmu metody vyššího řádu a porovnala je s běžně v praxi používanou metodou Runge-Kutta čtvrtého řádu. K implementaci využila programovací jazyk C#, kde si rovněž implementovala vlastní knihovnu pro matematické operace. 

Presentation level of the technical report

Práce je logicky vystavena, pro čtenáře pochopitelná a jednotlivé kapitoly na sebe navazují. Možná bych jen zvolil jiné pojmenování/třídění podkapitol v kapitole 3 např. 3.1 bych pojmenoval "Řešení lineárních diferenciálních rovnic" v návaznosti pak na pojmenování kapitoly 3.2. nebo kapitolu 3.3. bych pojmenovat "Transformace na autonomní systémy ODR" apod. Dále je pro čtenáře matoucí uvádění indexů ve vektorech y1, y2, yjk např. v rovnicích (3.56), (3.59) a dalších. U vektoru yjk může dokonce čtenář nabít dojmu, že se jedná o matici. Správné značení pak studentka použila u příkladů v příloze práce např. (C.42), (C.45), (C.52) a (C.55).

85
Formal preparation of a technical report

Práce je napsána v českém jazyce v sázecím prostředí LaTex s minimálním množstvím překlepů a chyb.

90
Realisation output

Studentka se seznámila se stávajícími implementacemi numerické metody vyššího řádu založené na Taylorově polynomu. Musela se seznámit s efektivním řešením nelineárních úloh ODR s využitím maticově/vektorového počtu - implementováno dříve v MATLABu. Provedla vlastní reimplementaci a optimalizaci algoritmů s využitím programovacího jazyka C#. Implementovala si zde vlastní numerickou knihovnu, která je pro dané řešené problémy rychlejší než běžně používaná knihovna MathNet. Zaměřila se rovněž na porovnání alokované paměti u jednotlivých variant implementací numerických metod.

95
Usability of results

Práce přináší nové poznatky, které lze v budoucnu rozšířit a poté využít do projektů případně publikací.

The extent to which the requirements of the assignment have been met

Evaluation level: assignment fulfilled

Zadání bylo splněno ve všech bodech.

Extent of the technical report

Evaluation level: is within the usual extent

Práce je v obvyklém rozmezí, doplněná o přílohy.

Work with literature

Literatura je zvolena vhodně a vše je v práci řádně ocitováno.

90
Topics for thesis defence:
  1. Vysvětlete velikost matic B1 a vektorů yjk v rovnicích (3.56) na str. 29 a (5.2) na str. 37.
  2. Důležitou součástí Vaší numerické metody je rovněž "preprocessing" - vhodná transformace soustavy ODR na autonomní systém. Lze nelineární ODR (3.51) na str. 29 převést vhodnou transformací na lineární soustavu ODR? Pokud ano, proveďte porovnání efektivity výpočtu této lineární soustavy ODR s Vaší nelineární soustavou ODR (3.55) a (3.58).
  3. Není v jazyce C# nějaká knihovna obsahující efektivní implementaci numerických metod pro řešení počátečních úloh ODR (podobně jako například v MATLABu "ode solvery")? Nešly by porovnat Vaše implementace numerických metod s touto knihovnou?
Points proposed by reviewer: 89

Grade proposed by reviewer: B

Responsibility: Mgr. et Mgr. Hana Odstrčilová