Fitting multiple Datasets with shared and individual Parameters.
14 ビュー (過去 30 日間)
古いコメントを表示
Hello Matlab Community,
I wan't to fit Multiple Datasets to one Modellequation. Some Parameters are shared and should be fitted to all datasets, while there are some parameters which should be fitted individual for each dataset. I think i found a code in this board which can help me do that, but i do not understand how my raw data has to be supplied. In detail, how should my .xls-File look like? My xdata will be the Time and the y data will be the Mass. Here is the code:
% function sharedparams
ds = dataset('xlsfile', 'Test.xlsx') ;
ds.dataset = nominal(ds.dataset);
% Initial estimates for [N, D, M_C11, M_C12, M_C21 and M_C22]
p0 = [120 , .01 , 100, 100, 100, 100];
% Estimate parameters
fn = @(p , f ) objFcn(p , f , ds.dataset) ;
% Function handle
lb = [100 , 0 , 0, 0, 0, 0]; ub = [180 , 0.3 , 300, 300, 300, 300]; options = optimoptions('lsqcurvefit'); options.TolFun = 1e-10;
pFit = lsqcurvefit(fn , p0 , ds.Frequency , ds.Magnitude,lb, ub, options);
assignin('base','pFit',pFit);
end
function yfit = objFcn(p , f, dataset)
N = p(1) ; % location-independent parameter 1
D = p(2) ; % location-independent parameter 2
M1 = p(3) ; % Location dependent parameter (C11)
M2 = p(4) ; % Location dependent parameter (C12)
M3 = p(5) ; % Location dependent parameter (C21)
M4 = p(6) ; % Location dependent parameter (C22)
f1 = 2*pi*f(dataset == 'A');
yfit_C11 = (0.0035*0.027*f1.^2*N^2)./(M1*sqrt((N^2-f1.^2).^2+(2*D*N*f1).^2));
f2 = 2*pi*f(dataset == 'B');
yfit_C12 = (0.0035*0.027*f2.^2*N^2)./(M2*sqrt((N^2-f2.^2).^2+(2*D*N*f2).^2));
f3 = 2*pi*f(dataset == 'C');
yfit_C21 = (0.0035*0.027*f3.^2*N^2)./(M3*sqrt((N^2-f3.^2).^2+(2*D*N*f3).^2));
f4 = 2*pi*f(dataset == 'D');
yfit_C22 = (0.0035*0.027*f4.^2*N^2)./(M4*sqrt((N^2-f4.^2).^2+(2*D*N*f4).^2));
% Combine prediction
yfit = [yfit_C11; yfit_C12; yfit_C21; yfit_C22] ;
end
P.S.: The parameters and Modell is not the one I am going to fit since my question is regarding the supplied raw data.
Thank you guys in advance!
Fabian
2 件のコメント
Kaouthar Kaouthar
2019 年 3 月 24 日
Hello Fabian,
I have nearly the same problem as u had.
can u please help me solving my problem.
thank you
回答 (1 件)
参考
カテゴリ
Help Center および File Exchange で Interpolation についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!