How to build a graphical tool to compare several nonlinear fitting models

조회 수: 1 (최근 30일)
Hello,
I would like to know which is the best tool for trying to organise my fitting procedure to experimental data Y(x,z). I have many sets of data Y(x,z) with errors, see example in figure where Y(x) is plotted for 3 values of z.
The number of x points changes with z, therefore the sets of data cannot be written as a matrix except if I do not fill with zero the missing points.
Then, I decide to make a separate fit for each z (even if in principle a surface fit to the whole set of data would be preferable).
I need to get the errors on the parameters p and I am using lsqcurve fit, and to test many different models, one example is the following:
Model_1= p(1) * (Ymodel conv Gaussian) + p(2)*Y1 +p(3) + p(4)*x
where:
Ymodel = f(T)*p(5)*p(6)^2 ./ ( (x.^2-p(6)^2).^2 + 4*(p(5) * x).^2 )
Ymodel is convoluted with a Gaussian with a given sigma
Y1: input set of data (same dimension of Y
where f(T) is a known function of the temperature T.
The goal is to obtain Ymodel. In all cases Ymodel must be convoluted with a Gaussian when fitting.
External data (Y1 in the example above) may be inclued, with an amplitude being a parameter of the fit (p(2) in the example above).
The model may have a varying number of parameter.
The models are defined in external function, for instance:
function [y,yM,y_noC,yD]=DHO2_R_BL(p,x,sig,f1,f2,Weight,Y1,T), where
p: fit parameters
sig=sigma of the Gaussian
f1, f2: parameters related to the convolution
Weight: 1/errors^2
The function above extracts some components of the model (model with and without convolution for example).
I then need to export parameters with an estimation of their errors (using nparci), and I also calculate the reduced chi square
My functions work (at least it looks like...), but given the high number of data and models, I would like to use some graphical interface to compare more efficiently the different models.
Ideally, I would be able to open two (or more) windows similar to the basic hand-made sketch here shown, in order to compare models and results.
What I am looking for is probably not very different from what produced by cftool, but with lsqcurvefit, conolution, external data....
I have no experience in GUI: could you give me some hints on the best way to tackle this problem?
Thank you in advance,
nando

채택된 답변

Lama Itani
Lama Itani 2021년 11월 23일
Hi Ferdi,
Maybe you can give MATLAB App Designer a try.
It's an interactive tool that can let you build apps in MATLAB by dragging and dropping visual components. Here's a short video about the app designer: : https://www.mathworks.com/videos/app-designer-overview-1510748719083.html
  댓글 수: 2
Ferdi
Ferdi 2021년 11월 24일
Thank you Lama.
It seems a long job indeed... I will try
Lama Itani
Lama Itani 2021년 11월 25일
If your script is working properly, it won't take you long to set up it up in App Designer. You'll be surprised by how easy it is to get started.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Fit Postprocessing에 대해 자세히 알아보기

제품


릴리스

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by