I am coding a kinetic equation by using ode dsolve but i got: Warning: Unable to find symbolic solution.

1 view (last 30 days)
This is my code, m k kla and O3x are constants, even if I set a value for them I got an error
syms O3(t) m k kla O3x
ode = diff(O3)+k*(O3^m) == (kla*(O3x-O3))
ode(t) = 
ySol(t) = dsolve(ode)
Warning: Unable to find symbolic solution.
ySol(t) = [ empty sym ]
it results:
Warning: Unable to find symbolic solution.
ySol(t) =
[ empty sym ]
HELP :(

Answers (1)

Walter Roberson
Walter Roberson on 26 May 2023
Your O3 is a function of t. You have O3^m where m is an unknown.
You are not going to find a solver that is able to deal with that situation -- not unless it runs through a few special cases and leaves the rest unresolved.
syms O3(t) m k kla O3x
for m = [-5 -4 -3 -exp(sym(1)) -2 -sqrt(sym(2)) -1 -sym(1)/2 -sym(1)/3 0 sym(1)/3 sym(1)/2 1 sqrt(sym(2)) 2 exp(sym(1)) 3 4 5]
disp('----')
m
ode = diff(O3)+k*(O3^m) == (kla*(O3x-O3))
dsolve(ode, 'MaxDegree',4)
end
----
m = 
ode(t) = 
Warning: Unable to find symbolic solution.
ans = [ empty sym ]
----
m = 
ode(t) = 
Warning: Unable to find symbolic solution.
ans = [ empty sym ]
----
m = 
ode(t) = 
ans = 
----
m = 
ode(t) = 
Warning: Unable to find symbolic solution.
ans = [ empty sym ]
----
m = 
ode(t) = 
ans = 
----
m = 
ode(t) = 
Warning: Unable to find symbolic solution.
ans = [ empty sym ]
----
m = 
ode(t) = 
ans = 
----
m = 
ode(t) = 
ans = 
----
m = 
ode(t) = 
ans = 
----
m = 
0
ode(t) = 
ans = 
----
m = 
ode(t) = 
Warning: Unable to find symbolic solution.
ans = [ empty sym ]
----
m = 
ode(t) = 
Warning: Unable to find symbolic solution.
ans = [ empty sym ]
----
m = 
1
ode(t) = 
ans = 
----
m = 
ode(t) = 
Warning: Unable to find symbolic solution.
ans = [ empty sym ]
----
m = 
2
ode(t) = 
ans = 
----
m = 
e
ode(t) = 
Warning: Unable to find symbolic solution.
ans = [ empty sym ]
----
m = 
3
ode(t) = 
ans = 
----
m = 
4
ode(t) = 
ans = 
----
m = 
5
ode(t) = 
Warning: Unable to find symbolic solution.
ans = [ empty sym ]
  1 Comment
Walter Roberson
Walter Roberson on 26 May 2023
syms O3(t) m k kla O3x
for M = [-10:-1, 1:10]
m = sym(1)/M;
disp('----')
m
ode = diff(O3)+k*(O3^m) == (kla*(O3x-O3))
dsolve(ode, 'MaxDegree',4)
end
----
m = 
ode(t) = 
ans = 
----
m = 
ode(t) = 
ans = 
----
m = 
ode(t) = 
ans = 
----
m = 
ode(t) = 
ans = 
----
m = 
ode(t) = 
ans = 
----
m = 
ode(t) = 
ans = 
----
m = 
ode(t) = 
ans = 
----
m = 
ode(t) = 
ans = 
----
m = 
ode(t) = 
ans = 
----
m = 
ode(t) = 
ans = 
----
m = 
1
ode(t) = 
ans = 
----
m = 
ode(t) = 
Warning: Unable to find symbolic solution.
ans = [ empty sym ]
----
m = 
ode(t) = 
Warning: Unable to find symbolic solution.
ans = [ empty sym ]
----
m = 
ode(t) = 
Warning: Unable to find symbolic solution.
ans = [ empty sym ]
----
m = 
ode(t) = 
ans = 
----
m = 
ode(t) = 
ans = 
----
m = 
ode(t) = 
ans = 
----
m = 
ode(t) = 
ans = 
----
m = 
ode(t) = 
ans = 
----
m = 
ode(t) = 
ans = 

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!