Unable to find explicit solution.
Ältere Kommentare anzeigen

I have already tried reading some other similar questions but I had no luck. Does Matlab have problem then the same variable is on both sides or something? Simplify function also didn’t work.
1 Kommentar
Dominik Stolfa
am 16 Nov. 2023
Bearbeitet: Dominik Stolfa
am 16 Nov. 2023
Akzeptierte Antwort
Weitere Antworten (2)
You must use "dsolve", not "solve":
syms t x(t) K
eqn = diff(x,t) == (1-x/K)*x;
dsolve(eqn)
5 Kommentare
John D'Errico
am 16 Nov. 2023
Bearbeitet: John D'Errico
am 16 Nov. 2023
This, based on the fact that the equation can effectively be converted into a differential equation. Just differentiate both sides with respect to t.
Dominik Stolfa
am 16 Nov. 2023
Walter Roberson
am 16 Nov. 2023
When you take the derivative in this simple way, you lose the information about the bounds of the definite integral. The same equation would be generated no matter if the upper bound is 3 or 10^300. But clearly the upper bound does make a difference to the original equation... so this approach of just taking the derivative of both sides is insufficient.
John D'Errico
am 16 Nov. 2023
Oh, yes. I forgot the integral bounds are fixed.
Dominik Stolfa
am 19 Nov. 2023
Walter Roberson
am 16 Nov. 2023
Bearbeitet: Walter Roberson
am 16 Nov. 2023
If we assume that x is a function of one variable, t, then the definite integral of an expression involving only x and constants, is an expression that does not involve t. So by inspection you are asking to solve x(t) = constant. We can then substitute constant into the equation, say X, getting
X == int((1-X/K)*X,t,0,3)
This gives you a definite result on the right, and you can solve the quadratic by factoring, for solutions x(t) = 0 and x(t) = 2/3 * K
The solutions proposed by Torsten do not work except for the 0.
6 Kommentare
This was the OPs comment to his original question:
This is the original equation I am trying to simplify/solve: (diff(x(t),t)==(1-x(t)/K)*x(t))
What should be the meaning of
X == int((1-X/K)*X,t,0,3)
?
The right-hand side is a constant, the left-hand side is a function of t.
What comes out when integrating the differential equation from above is
x(t)-x(0) = integral_{t'=0}^{t'=t} (1-x(t')/K)*x(t') dt'
or for t = 3
x(3)-x(0) = integral_{t'=0}^{t'=3} (1-x(t')/K)*x(t') dt'
Dominik Stolfa
am 19 Nov. 2023
Bearbeitet: Dominik Stolfa
am 19 Nov. 2023
The logistic equation
dx/dt=rx(1-x/K), x(0) = x0
is a differential equation.
To get an explicit solution in MATLAB, you have to use "dsolve":
syms t x(t) x0 K r
eqn = diff(x,t) == r*x*(1-x/K);
cond = x(0)==x0;
x = dsolve(eqn,cond)
x = simplify(x)
Walter Roberson
am 19 Nov. 2023
If you have an equation in derivative form then try using dsolve. If the result contains a constant then that indicates that at least one boundary condition is not fixed.
Sometimes matlab does just fine with boundary conditions passed to dsolve, but unfortunately it is not uncommon that you might need to ask dsolve for the general form and solve the boundaries with substitution and solve()
Walter Roberson
am 19 Nov. 2023
The original equation you posted was an integral equation in which an expression in t was integrated over a definite range of t. A definite integral no longer has the variable of integration in the expression (unless the variable was used in the limit.) The finished definite integral is effectively constant with respect to the variable of integration... so if you then take the derivative with respect to the variable of integration then the definite integral vanishes.
f(x) = int(g(x), x, a, b)
take derivative of both sides to get
df/dx = d(int(g(x), x, a, b)/dx
but the int will not have x in it so the derivative is 0, leading to
df/dx = 0
Dominik Stolfa
am 20 Nov. 2023
Kategorien
Mehr zu Mathematics finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

