Unable to find explicit solution.

15 次查看(过去 30 天)

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 个评论
Dominik Stolfa
Dominik Stolfa 2023-11-16
编辑:Dominik Stolfa 2023-11-16
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))

请先登录,再进行评论。

采纳的回答

Walter Roberson
Walter Roberson 2023-11-16
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 个评论
Walter Roberson
Walter Roberson 2023-11-16
I tested this equation with wolfram alpha, which was not able to solve it.
Dominik Stolfa
Dominik Stolfa 2023-11-19
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.

请先登录,再进行评论。

更多回答(2 个)

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

请先登录,再进行评论。


Walter Roberson
Walter Roberson 2023-11-16
编辑:Walter Roberson 2023-11-16
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 个评论
Walter Roberson
Walter Roberson 2023-11-19
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 2023-11-20
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.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Calculus 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by