How do you set up an ode solver with a more than one function in the ode?
Show older comments
For example, if you have an ode such as a*df(t)/dt + b*dg(t)/dt + f(t) + g(t) + c = 0 that you'd like to solve and if you want to set one of the derivatives to be zero, how do you do that?
(By "ode solver" in the title I mean solve numerically.)
4 Comments
Sam Chak
on 8 Oct 2023
Hi @L'O.G.
Please correct me if I'm wrong. In your update, you mentioned that you want to numerically solve the ODE of this form:

I'm not so sure, but this form looks like the first-order "Exact differential equation," and I don't remember how to solve it on pen and paper. Suppose that
, and
. If
and
, then the equation is balanced:
and
, then the equation is balanced:
.
L'O.G.
on 8 Oct 2023
Walter Roberson
on 8 Oct 2023
Use ode15i
Answers (2)
If you have two unknown functions (f and g), you need two equations.
syms f(t) g(t) a b c
df = diff(f);
dg = diff(g);
eqn = a*df + b*dg + f(t) + g(t) + c == 0
sol = dsolve(eqn, g)
eqn2 = subs(diff(sol.f), t, 0) == 0
constant_of_integration = setdiff( symvar(eqn2), [a b c])
solution_for_constant = solve(eqn2, constant_of_integration)
subs(subs(eqn, sol), constant_of_integration, solution_for_constant)
subs(sol, constant_of_integration, solution_for_constant)
Categories
Find more on Ordinary Differential Equations in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!