# Matlab Code Assistance for Multistart or GA

2 views (last 30 days)
Temesgen on 5 Apr 2023
Commented: Alan Weiss on 20 Apr 2023
I want to apply MultiStart global optimization technique for curve fitting and parameter estimation from data set and system of ordinary differential equation. I am new for that concept. I have Number of infected cases for time serious data and want to fit with my model. I am wondering if you could assist me how to estimate using that technique? I will be very happy if you send me any prototype matlabcode!
Any help is appreciated!

Nihal Reddy on 13 Apr 2023
I understand you require resources and reference examples for implementing MultiStart optimization technique in MATLAB.
Hope this helps!
Temesgen on 15 Apr 2023
Dear Nihal Readdy, I will refer these marials. Thank you very much!!

Alan Weiss on 14 Apr 2023
Temesgen on 20 Apr 2023
Edited: Temesgen on 20 Apr 2023
Dear Alan, really I appreciate your effort, thank you so much. here are some thing I want to say.
1. I want to estimate the following (13) model parameters. Keep in mind, there are 8 fixed model paraeters in addition to another 10 state variables. I gave these initial values for simulation purpose.
x(1) = 0.000548 ; % x(1)=Lambdaa
x(2) = 0.004626; % x(2)= phia
x(3) = 0.00227; % x(3)=gammah
x(4) = 0.295; % x(4)=gammaa
x(5) = 0.0002857; % x(5)=mua
x(6) = 0.0014; % x(6)= deltaa
x(7) = 0.001; % x(7)=q
x(8) =0.003189 ; % x(8)=betah
x(9) = 0.000178; % x(9)=betaaa
x(10) = 0.09; % x(10)=betahe
x(11) = 0.0009; % x(11)=betaah
x(12) = 0.175;% x(12)=alphah
x(13) = 0.285; % x(13)=alphaa
2. the estimated values as indicated in ''yout'' shows for the ten state variables (y(1), y(2), ......y(10)). Am I right? But, the program should use those initial values and estimate those 13 parameters and since most of the values will be in between 0 and 1 since ther are rates except some parametes like x(1).
3. The lower and upper bounds should be for these 13 parameters not for the 10 state variables.
you can use these bounds for those parameters
%[Lama betah betaah betahe betaaa gammah gammaa alphah alphaa mua deltaa q phia];
lb=[1 0.14 0.01 0.01 0.01 0 0.01 0.01 0 0.5 0.5 0.01 0.1];
ub=[1000 0.428 0.95 0.95 0.95 0.95 0.75 0.95 0.5 0.85 0.85 0.75 0.9];
Dear, I am very greatful and I can't wait to see the result after you consider and incorporate these ideas into the program.
Alan Weiss on 20 Apr 2023
OK, I clearly misunderstood what are the parameters to vary in your problem. And I am not sure that I understood correctly what you are trying to match, meaning which data are you trying to fit and which output of the ODE you want to match.
Once more I ask you to perform the following.
1. Give a function F(x) that is the ODE solver, taking your parameters x to a solution y(t). Obviously, I am not sure what that function is in the code that you gave me.
2. After that we can try to identify the data that you want F(x) to fit. We will call an optimizer and minimize the sum of squares of some parts of y(t) minus some data d(t).
So I am asking you to give F(x). Not to optimize it, just give clear, unambiguous, working code that takes an input set of parameters x and returns an ODE solution y(t).
Alan Weiss
MATLAB mathematical toolbox documentation