Unable to find explicit solution.

15 visualizaciones (últimos 30 días)
Dominik Stolfa
Dominik Stolfa el 16 de Nov. de 2023
Comentada: Dominik Stolfa el 20 de Nov. de 2023

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 comentario
Dominik Stolfa
Dominik Stolfa el 16 de Nov. de 2023
Editada: Dominik Stolfa el 16 de Nov. de 2023
Well, simplify function did sort of worked, but it didn’t simplify anything, regarding moving variables to the same side. This is the original equation I am trying to simplify/solve: (diff(x(t),t)==(1-x(t)/K)*x(t))

Iniciar sesión para comentar.

Respuesta aceptada

Walter Roberson
Walter Roberson el 16 de Nov. de 2023
Well, let us test the hypothesis that the problem is that the same variable is on both sides:
syms x(t) y(t) c
K = 1072764;
eqn1 = (x==int((1-(x/K))*x,t,0,3))
eqn1(t) = 
eqn2 = (y==int((1-(x/K))*x,t,0,3))
eqn2(t) = 
eqn3 = (c==int((1-(x/K))*x,t,0,3))
eqn3 = 
eqn4 = (4321==int((1-(x/K))*x,t,0,3))
eqn4 = 
sol1 = solve(eqn1, x)
Warning: Unable to find explicit solution. For options, see help.
sol1 = Empty sym: 0-by-1
sol2 = solve(eqn2, x)
Warning: Unable to find explicit solution. For options, see help.
sol2 = Empty sym: 0-by-1
sol3 = solve(eqn3, x)
Warning: Unable to find explicit solution. For options, see help.
sol3 = struct with fields:
c: [0×1 sym] t: [0×1 sym]
sol4 = solve(eqn4, x)
Warning: Unable to find explicit solution. For options, see help.
sol4 = Empty sym: 0-by-1
So the problem is not that the same variable occurs on both sides of the equation -- if it were then having y(t) on the left side would have worked. The problem is also not that the left side is a function x(t) instead of a constant -- if it were then using c on the left side instead of x(t) or y(t) would have worked. The problem is also not that using a symbolic variable instead of a specific numeric value makes the equation "too complicated" -- if that were the case then using 4321 on the left side would have worked.
What is left?
Well... there is the fact that you tried to find an explicit solution for an integral equation.
Generally speaking, MATLAB just doesn't know how to solve many integral equations.
  3 comentarios
Walter Roberson
Walter Roberson el 16 de Nov. de 2023
I tested this equation with wolfram alpha, which was not able to solve it.
Dominik Stolfa
Dominik Stolfa el 19 de Nov. de 2023
Ok. My bad then. Still. Why though? With so much advancement in technology one would think computers can solve any mathematical problem which humans can.

Iniciar sesión para comentar.

Más respuestas (2)

Torsten
Torsten el 16 de Nov. de 2023
Movida: Torsten el 16 de Nov. de 2023
You must use "dsolve", not "solve":
syms t x(t) K
eqn = diff(x,t) == (1-x/K)*x;
dsolve(eqn)
ans = 
  5 comentarios
John D'Errico
John D'Errico el 16 de Nov. de 2023
Oh, yes. I forgot the integral bounds are fixed.
Dominik Stolfa
Dominik Stolfa el 19 de Nov. de 2023
So how’s do I solve it in Matlab? Are you saying it is impossible?

Iniciar sesión para comentar.


Walter Roberson
Walter Roberson el 16 de Nov. de 2023
Editada: Walter Roberson el 16 de Nov. de 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 comentarios
Walter Roberson
Walter Roberson el 19 de Nov. de 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
Dominik Stolfa el 20 de Nov. de 2023
I think I understand what you mean now, Walter Roberson.
Also, thank you Torsten for finding solution that I wanted. And to Walter for explaining a lot of things to me.
I am sorry but I am not sure as what should I mark as correct answer. I mean, all of the answers you two gave me are right, in my opinion. It is just me who could not explain properly what I wanted, or well, wanted to know several things at once.

Iniciar sesión para comentar.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by