Asked by Deepa Maheshvare
on 26 Apr 2019

Hi All,

I'm trying to estimate parametrs in my model using parameter estimation task in SimBiology toolbox.In the documentation available here it is mentioned that

"The default estimation method that sbiofit uses will change depending on which toolboxes are available."

Could someone explain how to set up fmincon in the following syntax?

sbiofit(model,gData,responseMap,estimatedParam,'fmincon')

I want to define an objective function and pass the following arguments to fmincon

fmincon(@objective,p0,A,b,Aeq,beq,lb,ub,nlcon)

I have a confusion here,

p0 is the initial value of parameters, A,b,Aeq,beq are linear equality and inequality constraints, which is (A=[ ],b=[ ],Aeq=[ ],beq=[ ]) in my case.lb and ub are the bounds of paramaters and ncoln is the nonlinear constraints that are the differential equations taht will be generated from my model present in xml file.

I've already specified p0,lb,ub in estimatedParam array with properties Name, InitialValue and Bounds

estimatedParams = estimatedInfo(paramsToEstimate,'InitialValue',ParameterInitialValues,'Bounds',ParameterBounds)

It's not to me how to define

fmincon(@objective,p0,A,b,Aeq,beq,lb,ub,nlcon)

since p0,lb,ub is already defined in estimatedParam array. However, I'd like to know

how to pass the other arguments objective ,A,b,Aeq,beq, nlcon in fmincon.

nlcon function is defined like this

Any suggestions will be highly appreciated.

More Answers in the SimBiology Community

Answer by Jeremy Huard
on 26 Apr 2019

Hi Deepa,

let me summarize my understanding of your problem and please correct me if I'm wrong:

- you only have steady state data for several experimental conditions
- there is no other data to fit the model to
- you also have parameter bounds

Is this correct?

If yes, I suggest to create a dataset with these steady state data as explained here. If this is experimental data, you will know when this data was measured so you can build a table with time points and measurements.

Then you can use sbiofit to fit your model to those data points. Again, the App will be of great help.

Deepa Maheshvare
on 27 Apr 2019

Hi Jeremy,

Thanks a lot for the response. I have a few doubts in the first approach.

When I do this ,"You could create a data set with a single time point at tspan" . When I do this ,

would it be incorrect, in the sense, not all species will take the same amount of time to reach steady state. For instance, I have computed transient times of species of all species in the model. The time scale ranges from 0.01 seconds to 1000seconds. When the time scale of equilibration is different for each species, I am not sure how "a data set with a single time point at tspan" can be justified.

I'd be happy to know your views on this.

Jeremy Huard
on 29 Apr 2019

This is what you are currently doing by calling ode15s for [0,tspan] and taking the last data points.

And this is fine in my opinion. All you know from your data is that it was taken at steady state but you don't know exactly when. So all you need to do is take tspan large for everything in your system to be at steady state.

The idea with the data set with a single time point is to reproduce what you actually have, which is a single time point.

Deepa Maheshvare
on 29 Apr 2019

Thanks a lot for the advice. I'll try it out

Sign in to comment.

Opportunities for recent engineering grads.

Apply Today
## 2 Comments

## Jeremy Huard (view profile)

## Direct link to this comment

https://www.mathworks.com/matlabcentral/answers/458656-how-to-set-up-estimation-method-in-sbiofit#comment_698549

## Deepa Maheshvare (view profile)

## Direct link to this comment

https://www.mathworks.com/matlabcentral/answers/458656-how-to-set-up-estimation-method-in-sbiofit#comment_698570

Sign in to comment.