Fitting a function to data (fminsearch) with limits
Show older comments
Hey!
I try to fit a model to measured data. I already got a real close with the fminsearch option. However, I know the model will never fit completly to the measured data. I know the range wherein the unknown factors should be, how can I include this in the function.
This is a part of my code;
p= [0.31;114;3.5];
y2=fitfunc(TempZone1day,TempZone2day,TempZone3day,TempZone4day,TempZone5day,buitenTempday,FlowZone1day,FlowZone2day,FlowZone3day,FlowZone4day,KNMIwindday,SMA,p);
figure(1)
plot(tijd,WarmteCvday,'+',tijd,y2,'-')
a0=p;
aBest = fminsearch(@(a) SumErrfun1(a,TempZone1day,TempZone2day,TempZone3day,TempZone4day,TempZone5day,buitenTempday,FlowZone1day,FlowZone2day,FlowZone3day,FlowZone4day,KNMIwindday,SMA,WarmteCvday,tijd),a0);
disp(aBest)
For example, I know that p(1) should be within 0.1-0.5, p(2) within 100-200 and p(3) within 2-6. Because now aBest (the best combination) is [-0.0328; 61.8202; 0.4375], which is not even a possible option. How can I include these ranges?
Accepted Answer
More Answers (3)
Jie Jian
on 9 Jan 2020
0 votes
Or you can use the function 'mapping_parameters.m' to transfer unbounded parameters to bounded ones
kursat cihan
on 30 Aug 2020
0 votes
John D'Errico....much love from Germany, helped me a lot!!!
Bachelor Thesis in Material Modelling, used it for a parameter optimization in bringing simulations together with experimental data...PEACE
1 Comment
Delme
on 18 Jan 2021
Haha, i'm doing exactly the same in my thesis!
Stefan Schuberth
on 8 Nov 2022
0 votes
you can use q=f1*atan(p)+f2 to construct a limited parameter q from an unlimited parameter p :)
Categories
Find more on MATLAB in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!