Mercurial > hg > ltpda
diff m-toolbox/test/test_matrix_linearize.m @ 0:f0afece42f48
Import.
author | Daniele Nicolodi <nicolodi@science.unitn.it> |
---|---|
date | Wed, 23 Nov 2011 19:22:13 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/m-toolbox/test/test_matrix_linearize.m Wed Nov 23 19:22:13 2011 +0100 @@ -0,0 +1,75 @@ +% test for matrix/linearize +% +% 15-01-2010 L Ferraioli +% CREATION +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% $Id: mdc3_exp3_loop_v3.m,v 1.2 2009/09/24 09:48:12 luigi Exp $ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%% Loading data + +fprintf('===== loading data... =====\n') + +% laod parnames and values +load C:\Users\Luigi\ltp_data_analysis\MDCs\MDC3\lf_analysis\Models\parnames_10perc.mat +load C:\Users\Luigi\ltp_data_analysis\MDCs\MDC3\lf_analysis\Models\exp3_2_10perc_nomvalues.mat +load C:\Users\Luigi\ltp_data_analysis\MDCs\MDC3\lf_analysis\Models\exp3_2_10perc_truevalues.mat +% load C:\Users\Luigi\ltp_data_analysis\MDCs\MDC3\lf_analysis\Models\usedparams_10perc.mat + + +% set ordered used parameters +usedparams = {'dH','dsH','dS11','dS1D','dSD1','dSDD',... + 'dh2','dsh2','dx1','dx2'}; + +[nonfitparnms,ia,ib] = setxor(parnames,usedparams); +nonfitnomvals = exp3_nomvalues(ia); +nonfittruevals = exp3_truevalues(ia); + +[fitparnms,ia,ib] = setxor(parnames,nonfitparnms); +fitnomvals = exp3_nomvalues(ia); +fittruevals = exp3_truevalues(ia); + +%% get non-linear response model +% the model is non-linear in the parameter dependence +fprintf('===== Get TF Model... =====\n') + +H = matrix(plist('built-in','mdc3_ifo2ifo_v2')); + +% substitute for non fit parameters +% subs for non fit parameters +for ii = 1:numel(H.objs) + H.objs(ii).subs(plist('Params', nonfitparnms, 'Values',nonfittruevals)); +end + + +%% Linearize model + +Hl = linearize(H); + +%% Random test + +% get random index +i1 = round(numel(Hl.objs)*rand(1)); % choose the parameter +i2 = round(numel(H.objs)*rand(1)); % choose the transfer function + +% extract element to be tested +dH = Hl.objs{i1}.objs(i2); + +% get the parameter name +pars = sort(usedparams); +prm = pars{i1}; + +% differentiate +tdH = diff(H.objs(i2),prm); + +% evaluate response +dHr = eval(dH); +tdHr = eval(tdH); + +% plot +iplot(dHr./tdHr) + +