# How do you set up an ode solver with a more than one function in the ode?

2 Ansichten (letzte 30 Tage)
L'O.G. am 7 Okt. 2023
Kommentiert: Sam Chak am 9 Okt. 2023
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 Kommentare2 ältere Kommentare anzeigen2 ältere Kommentare ausblenden
Walter Roberson am 8 Okt. 2023
Use ode15i
Sam Chak am 9 Okt. 2023
I would like to suggest providing a specific example of this generic "Exact differential equation" form:
This would allow us to test which ODE solver might be suitable for solving it.

Melden Sie sich an, um zu kommentieren.

### Antworten (2)

Torsten am 7 Okt. 2023
Verschoben: Torsten am 7 Okt. 2023
If you have two unknown functions (f and g), you need two equations.
##### 0 Kommentare-2 ältere Kommentare anzeigen-2 ältere Kommentare ausblenden

Melden Sie sich an, um zu kommentieren.

Walter Roberson am 8 Okt. 2023
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
eqn(t) =
sol = dsolve(eqn, g)
sol = struct with fields:
g: 0 f: exp(-t/a)*(C1 - c*exp(t/a))
eqn2 = subs(diff(sol.f), t, 0) == 0
eqn2 =
constant_of_integration = setdiff( symvar(eqn2), [a b c])
constant_of_integration =
solution_for_constant = solve(eqn2, constant_of_integration)
solution_for_constant =
0
subs(subs(eqn, sol), constant_of_integration, solution_for_constant)
ans(t) =
subs(sol, constant_of_integration, solution_for_constant)
ans = struct with fields:
g: 0 f: -c
##### 0 Kommentare-2 ältere Kommentare anzeigen-2 ältere Kommentare ausblenden

Melden Sie sich an, um zu kommentieren.

### Kategorien

Mehr zu Ordinary Differential Equations finden Sie in Help Center und File Exchange

R2021b

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by