Skip to content

Commit 4f7ac79

Browse files
Uploaded the code base
1 parent b048f6c commit 4f7ac79

22 files changed

+2097
-0
lines changed
+49
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
2+
function F = comp_residual(x)
3+
4+
global params truss_data samples f
5+
6+
7+
8+
matB = truss_data.matB;
9+
matG = truss_data.matG;
10+
vec_f = truss_data.vec_f;
11+
12+
nm = size(matB,1);
13+
nd = size(matB,2);
14+
ns = length(samples.eps);
15+
16+
%%%%% x = [vec_u; vec_e; vec_s];
17+
vec_u = x(1:nd);
18+
vec_e = x((nd+1):(nd+nm));
19+
vec_s = x((nd+nm+1):end);
20+
21+
%%%%% Compatibility relation
22+
res_compatibility = 10^(3) * ((matB * vec_u) - vec_e);
23+
24+
%%%%% Force-balance equation
25+
res_force_balance = (matG * vec_s) - vec_f;
26+
27+
%%%%% Regression
28+
res_regression = zeros(nm,1);
29+
for i=1:nm
30+
S = f.s(vec_e(i));
31+
%S = neural(vec_e(i));
32+
33+
% numer = 0;
34+
% denom = 0;
35+
% for j=1:ns
36+
% numer = numer +...
37+
% exp( -params.alpha * ((vec_e(i) - samples.eps(j))^2) ) * samples.sig(j);
38+
% denom = denom +...
39+
% exp( -params.alpha * ((vec_e(i) - samples.eps(j))^2) );
40+
% end
41+
res_regression(i) = S - vec_s(i);
42+
% res_regression(i) = (numer/denom) - vec_s(i);
43+
end
44+
45+
%%%%% Assemblage
46+
F = [res_compatibility; res_force_balance; 10^(1)*res_regression];
47+
48+
49+

Chebyshev Approximation/member.m

+86
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
2+
function [dll,matH,coord_x,ir,irr,ird] = member(nx,ny)
3+
%
4+
dx = 360.0;
5+
dy = 360.0;
6+
%
7+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8+
% coord_x (nk, 2)
9+
% --->
10+
for i=1:(ny+1)
11+
for j=1:(nx++1)
12+
pp = ((i-1) * (nx+1)) + j;
13+
coord_x(pp,1) = (j-1) * dx;
14+
coord_x(pp,2) = (i-1) * dy;
15+
end
16+
end
17+
nk = size(coord_x,1);
18+
19+
%%%% irr(nm, 2)
20+
irr = [...
21+
4 5;
22+
5 6;
23+
1 2;
24+
2 3;
25+
2 5;
26+
3 6;
27+
2 4;
28+
1 5;
29+
3 5;
30+
2 6;
31+
];
32+
nm = size(irr,1);
33+
%
34+
%%%% ird(nk, 2)
35+
ird = ones(nk,2);
36+
for j=1:(ny+1)
37+
pp = ((nx+1) * (j-1)) + 1;
38+
ird(pp,:) = zeros(1,2);
39+
clear pp
40+
end
41+
nd = sum(sum(ird));
42+
%
43+
ii = 0;
44+
for j=1:nk
45+
for k=1:2
46+
if ird(j,k) == 1
47+
ii = ii + 1;
48+
ird(j,k) = ii;
49+
else
50+
ird(j,k) = nd +1;
51+
end
52+
end
53+
end
54+
%
55+
%%%% ir(nm, 4)
56+
ir = zeros(nm,4);
57+
for i=1:nm
58+
for j=1:2
59+
ir(i,j) = ird(irr(i,1), j);
60+
ir(i,j+2) = ird(irr(i,2), j);
61+
end
62+
end
63+
%
64+
%%%% matH(nd, nm)
65+
dll = zeros(nm,1);
66+
matH = sparse(zeros(nd+1,nm));
67+
for i=1:nm
68+
j1 = irr(i,1);
69+
j2 = irr(i,2);
70+
dx = coord_x(j2,1) - coord_x(j1,1);
71+
dy = coord_x(j2,2) - coord_x(j1,2);
72+
dll(i) = norm([dx; dy], 2);
73+
dir_cos(1) =-dx/dll(i);
74+
dir_cos(2) =-dy/dll(i);
75+
dir_cos(3) = dx/dll(i);
76+
dir_cos(4) = dy/dll(i);
77+
for j=1:4
78+
if abs(dir_cos(j)) < 10^(-16)
79+
dir_cos(j) = 0;
80+
end
81+
matH(ir(i,j),i) = dir_cos(j);
82+
end
83+
end
84+
%
85+
matH = matH(1:nd,:);
86+
+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
2+
function f = obj_fun_entropy(x)
3+
4+
global params truss_data samples
5+
6+
nm = size(truss_data.matB,1);
7+
nd = size(truss_data.matB,2);
8+
ns = length(samples.eps);
9+
vec_vol = truss_data.vol;
10+
11+
%%%%% x = [vec_u; vec_e; vec_s];
12+
vec_e = x((nd+1):(nd+nm));
13+
vec_s = x((nd+nm+1):end);
14+
15+
power_num = zeros(ns,1);
16+
for j=1:ns
17+
for i=1:nm
18+
power_num(j) = power_num(j) +...
19+
( (params.c_value/2) * vec_vol'...
20+
* ( (vec_e - samples.eps(j)) .* (vec_e - samples.eps(j)) ) )...
21+
+ ( (1/(2*params.c_value)) * vec_vol'...
22+
* ( (vec_s - samples.sig(j)) .* (vec_s - samples.sig(j)) ) );
23+
end
24+
end
25+
26+
f = 0;
27+
for j=1:ns
28+
f = f - exp(-(params.beta/2) * power_num(j));
29+
end
2.6 KB
Binary file not shown.

0 commit comments

Comments
 (0)