error in using the function fsolve to find steady state

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 Comments

Requires optimization toolbox which is not part of basic MATLAB
https://www.mathworks.com/products/optimization.html
oh so I need to dowloaded?! ok thanks
as it seems I have trouble downloading is there another way to achieve the same withouth the toolbox?

Sign in to comment.

Answers (2)

Alan Stevens
Alan Stevens on 23 Feb 2021
Edited: Alan Stevens on 23 Feb 2021
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).
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.

Categories

Asked:

on 23 Feb 2021

Answered:

on 23 Feb 2021

Community Treasure Hunt

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

Start Hunting!