Trilinos based (stochastic) FEM solvers
costFunction.m
Go to the documentation of this file.
1 %
2 %Brian Staber (brian.staber@gmail.com)
3 %
4 
5 function output = costFunction(modelParameters,optimParameters, Yexpi)
6 
7  if (length(modelParameters.mu)~=5 || length(modelParameters.beta)~=2 || length(modelParameters.lc)~=2 || length(modelParameters.delta)~=4)
8  fprintf('Check inputs.\n');
9  end
10  xmlfilename = strcat('nrl.msme.station',num2str(optimParameters.station),'.xml');
11  writeXMLParameterList(xmlfilename, modelParameters.mu, ...
12  modelParameters.beta, ...
13  modelParameters.lc, ...
14  modelParameters.delta, ...
15  optimParameters.nmc, ...
16  optimParameters.station);
17  if (optimParameters.station==44)
18  executable = strcat('mpirun -np', 32, num2str(optimParameters.np), 32, './trilinos_mpi_', ...
19  num2str(optimParameters.station), 32, '--xml-in-file="',xmlfilename,'"');
20  else
21  executable = strcat('/usr/local/apps/petsc-3.7.6/gnu-mpich/bin/mpirun -np', 32, num2str(optimParameters.np), 32, './trilinos_mpi_', ...
22  num2str(optimParameters.station), 32, '--xml-in-file="',xmlfilename,'"');
23  end
25  if (s~=0)
26  fprintf('Trilinos program failed.\n');
27  return;
28  end
29 
30  theta = ['15';'30';'60';'75'];
31 % theta_to_id = [5,6;1,4;2,3;7,8];
32 
33  output.eta = cell(4,1);
34  output.etaExp = cell(4,1);
35  output.m = zeros(4,1);
36  output.fval = 0;
37 
38  for i = 1:4
39  Y = zeros(2355,optimParameters.nmc);
40 % Yexp = zeros(2355,2);
41  Yexp = Yexpi{i};
42  for j = 0:optimParameters.nmc-1
43  path = strcat('/home/s/staber/Trilinos_results/nrl/random_generator_for_pca_likelihood/station',num2str(optimParameters.station));
44  filename = strcat(path, '/RandomVariableY_angle=',num2str(theta(i,:)),'_nmc=',num2str(j),'.mtx');
45  Y(:,j+1) = log(load(filename));
46  end
47  meanY = mean(Y,2);
48  meanYexp = mean(Yexp,2);
49  output.Y{i} = Y;
50 
51 % for k = 1:2
52 % id = theta_to_id(i,k);
53 % filename = strcat('/home/s/staber/Trilinos_results/nrl/data/exx_id',num2str(id),'.txt');
54 % exx = dlmread(filename);
55 % filename = strcat('/home/s/staber/Trilinos_results/nrl/data/eyy_id',num2str(id),'.txt');
56 % eyy = dlmread(filename);
57 % filename = strcat('/home/s/staber/Trilinos_results/nrl/data/exy_id',num2str(id),'.txt');
58 % exy = dlmread(filename);
59 % Yexp(:,k) = log(sum(exx.^2 + eyy.^2 + 2*exy.^2,1))';
60 % end
61 % output.Yexp{i} = Yexp;
62 
63  CovarianceMatrix = cov(Y');
64  [L,P] = eig(CovarianceMatrix);
65  [P,idx] = sort(diag(P),'descend');
66  L = L(:,idx);
67  err = [1; 1 - cumsum(P)/sum(P)];
68 
69  output.m(i) = find(err>=optimParameters.tol,1,'last');
70  output.eta{i} = zeros(output.m(i),optimParameters.nmc);
71  output.etaExp{i} = zeros(output.m(i),2);
72 
73  for l = 1:output.m(i)
74  output.eta{i}(l,:) = ( (Y - repmat(meanY,1,optimParameters.nmc))'*L(:,l) )/sqrt(P(l));
75  output.etaExp{i}(l,:) = ( (Yexp - repmat(meanYexp,1,2) )'*L(:,l) )/sqrt(P(l));
76  [~,supp] = ksdensity(output.eta{i}(l,:));
77  pts = find(output.etaExp{i}(l,:)>=min(supp) & output.etaExp{i}(l,:)<=max(supp));
78  if (isempty(pts)==0)
79  [pdf,~] = ksdensity(output.eta{i}(l,:),output.etaExp{i}(l,pts));
80  output.fval = output.fval + sum(log(pdf));
81  end
82  end
83  end
84  %unix(strcat('rm /home/s/staber/Trilinos_results/nrl/random_generator_for_pca_likeliehood/station',num2str(optimParameters.station),'/*'));
85 end
output Y
Definition: costFunction.m:49
for j
Definition: costFunction.m:42
CovarianceMatrix
Definition: costFunction.m:63
end xmlfilename
Definition: costFunction.m:10
load('/home/s/staber/Trilinos_results/nrl/data/eij.mat')
output
eyy
Definition: costFunction.m:56
err
Definition: costFunction.m:67
for l
Definition: costFunction.m:73
Yexp
Definition: costFunction.m:40
pts
Definition: costFunction.m:77
end theta
Definition: costFunction.m:30
P sum()
meanYexp
Definition: costFunction.m:48
end s
Definition: costFunction.m:24
for k
Definition: costFunction.m:51
Brian Staber(brian.staber @gmail.com) % function output
end meanY
Definition: costFunction.m:47
filename
Definition: costFunction.m:44
L
Definition: costFunction.m:66
exx
Definition: costFunction.m:54
theta_to_id
Definition: costFunction.m:31
else executable
Definition: costFunction.m:21
writeXMLParameterList(xmlfilename, modelParameters.mu,... modelParameters.beta,... modelParameters.lc,... modelParameters.delta,... optimParameters.nmc,... optimParameters.station)
fprintf(fp, '< ParameterList >\n\n')
for i
Definition: costFunction.m:38
exy
Definition: costFunction.m:58
end end end unix(strcat('rm/home/s/staber/Trilinos_results/nrl/random_generator_for_pca_likeliehood/station', num2str(optimParameters.station),'/*'))
Yexpi
Definition: run_station15.m:18
optimParameters station