error in using the function fsolve to find steady state
Mostrar comentarios más antiguos
I am new to programming. I have a mini project on the Lokta- Volterra model. one of the point is to find the steady state of the model. I have used the fsolve function however i receive the error "'fsolve' requires optimisation toolbox" not sure what it mean. the code is as follow can some one help me seeing my mistake?
% Symbolic solution of the steady state equations
syms x1 x2 k1 k2 k3
[x1_ss, x2_ss] = solve(k1*x1 - k2*x1*x2==0, k2*x1*x2 - k3*x2==0 )
% numerical steady states
k1 = 1.1; k2 = 0.001; k3 = 10;
F = @(x) [k1*x(1) - k2*x(1)*x(2), k2*x(1)*x(2) - k3*x(2)];
XO =[15000, 1000];
F_ss = fsolve(F, XO)
thank you
3 comentarios
David Hill
el 23 de Feb. de 2021
Requires optimization toolbox which is not part of basic MATLAB
https://www.mathworks.com/products/optimization.html
Sara Vasciaveo
el 23 de Feb. de 2021
Sara Vasciaveo
el 23 de Feb. de 2021
Respuestas (2)
Alan Stevens
el 23 de Feb. de 2021
Editada: Alan Stevens
el 23 de Feb. de 2021
0 votos
Using the Optimization toolbox to solve these equations seems like using a sledgehammer to crack a nut!
It is clear from the equations that the non-trivial solution is x1 = k3/k2 and x2 = k1/k2.
(There is also the trivial solution x1 = x2 = 0).
1 comentario
Sara Vasciaveo
el 23 de Feb. de 2021
Steven Lord
el 23 de Feb. de 2021
0 votos
Don't try using a numeric solver like fsolve on a function that returns symbolic answers. Use the solve function from Symbolic Math Toolbox, which can operate on symbolic expressions, instead.
Categorías
Más información sobre Symbolic Math Toolbox en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!