Mr. Ricardo's class tortured the Year 4 Physics Olympiad students with a series of differential equation exercises, however, the students cannot find one such differential equation solver with steps that is free and open source. Thus, we wish to help the students a little bit in their learning.
What it does
It differentiates single-variable expressions, find complex roots of single-variable polynomial and solves linear homogeneous differential equations. It also include steps to solve the differential equations.
How we built it
The program is written mainly in C, but the UI is written in Java.
Challenges we ran into
- Implementing the case when the characteristic equation of the differential equation has repeated roots.
- Implementing on solving linear non-homogeneous differential equation.
- Rendering the output into LaTeX.
- Simplifying expressions
Accomplishments that we're proud of
Resolving challenge 3.
What we learned
- Writing CAS in C is very challenging.
- Durand-Kerner root-finding algorithm.
- The process of displaying an output is insane: to convert from human readable string into latex with regex and finally insert into HTML using java requires 8 backslashes to output just one backslash.
What's next for Differential equation solver
- Solve the non-homogeneous linear differential equation using the technique of variation of parameters and resolve challenge 1 and 2.
- Since we leave the answers in integral form, we shall resolve them in the future too.
- Consider non-linear differential equations, such as Clairaut's equations.