Browse Source

上传文件至 'Blending'

master
xwb 3 years ago
parent
commit
85942f3b3d
  1. 32
      Blending/LogSumExp.m
  2. 16
      Blending/MaxFunctions.m
  3. 15
      Blending/P_norm.m
  4. 19
      Blending/R_alpha.m

32
Blending/LogSumExp.m

@ -0,0 +1,32 @@
function f = LogSumExp(FunctionCell)
%MaxFunctions 此处显示有关此函数的摘要
% 此处显示详细说明
fnum = size(FunctionCell,1);
alpha = 128;
ff = @(x,y,z) exp(alpha.*FunctionCell{1}(x,y,z));
for i = 2:fnum
ff = @(x,y,z) ff(x,y,z) + exp(alpha.*FunctionCell{i}(x,y,z));
end
% f0 = @(x,y,z) (1/alpha).* log(ff(x,y,z));
% f1 = @(x1,y1,z1) f0(x1,y1,z1) + 0.05;
% f2 = @(x2,y2,z2) -0.05 - 3.* f0(x2,y2,z2);
% f = @(x,y,z) f1(x,y,z).* f2(x,y,z);
f0 = @(x,y,z) (1/alpha).* log(ff(x,y,z));
f1 = @(x1,y1,z1) f0(x1,y1,z1) + 0.05;
f2 = @(x2,y2,z2) -0.05 - 3.* f0(x2,y2,z2);
Ralpha = 1;
f = @(x,y,z) 1/(1+Ralpha).*(f1(x,y,z) + f2(x,y,z)...
- power(power(f1(x,y,z),2) + power(f2(x,y,z),2)...
- 2.* Ralpha.* f1(x,y,z).* f2(x,y,z),1/2));
%Nalpha = 0.3;
%f = @(x,y,z) (1/Nalpha).* log(exp(Nalpha.* f1(x,y,z)) + exp(Nalpha.* f2(x,y,z)));
%f = @(x,y,z) power(power(f1(x,y,z),-20) + power(f2(x,y,z),-20),-1/20);
end

16
Blending/MaxFunctions.m

@ -0,0 +1,16 @@
function f = MaxFunctions(FunctionCell)
%MaxFunctions 此处显示有关此函数的摘要
% 此处显示详细说明
fnum = size(FunctionCell,1);
f = @(x,y,z) FunctionCell{1}(x,y,z);
for i = 1:fnum
f = @(x,y,z) max(f(x,y,z), FunctionCell{i}(x,y,z));
end
end

15
Blending/P_norm.m

@ -0,0 +1,15 @@
function f = P_norm(FunctionCell)
fnum = size(FunctionCell,1);
p = 250;
f = @(x,y,z) power(FunctionCell{1}(x,y,z),-p);
for i = 2:fnum
f = @(x,y,z) f(x,y,z) + power(FunctionCell{i}(x,y,z),-p) ;
end
f = @(x,y,z) power(f(x,y,z),-1/p) ;
end

19
Blending/R_alpha.m

@ -0,0 +1,19 @@
function f = R_alpha(FunctionCell)
fnum = size(FunctionCell,1);
alpha = 0;
f = @(x,y,z) FunctionCell{1}(x,y,z) + FunctionCell{2}(x,y,z)...
+ power(power(FunctionCell{1}(x,y,z),2) + power(FunctionCell{2}(x,y,z),2)...
- 2.* alpha.* FunctionCell{1}(x,y,z).* FunctionCell{2}(x,y,z),1/2);
for i = 3:fnum
f = @(x,y,z) f(x,y,z) + FunctionCell{i}(x,y,z)...
+ power(power(f(x,y,z),2) + power(FunctionCell{i}(x,y,z),2)...
- 2.* alpha.* f(x,y,z).* FunctionCell{i}(x,y,z),1/2);
end
f = @(x,y,z) 1./(alpha+1).*f(x,y,z);
end
Loading…
Cancel
Save