📄 goss_w.m
字号:
% 高斯分布的累积分部函数,及其演化而来的 w调整函数
%%%%%%%% w高斯分布累积函数调节 %%%%%%%%%%
% function y = Goss_w(iter,iter_max)
clear;clc;
iter_max = 1000;
r = iter_max/10;
% k=1; u = 0.25; %高斯分布参数调节;
k1 = 0.4; k2 = 0.4; u1 = 0.6; u2 = 0.2; %分段高斯分布参数调节;
myfun = @(t)exp( -(t-iter_max/4).^2/(2*r^2) );
%%%%%%% 测试高斯分布 %%%%%%%%
% for iter = 1:iter_max
% y(iter) = k*( 1/( r*sqrt(2*pi) ) * quad( myfun,iter,10000 ) )+ u;
% end
% plot(y); grid on; title('高斯分布');
%%%%%%% 测试包含高斯分布的分段曲线 %%%%%%%%
for iter = 1:iter_max
if iter < iter_max*0.5
y(iter) = k1*( 1/( r*sqrt(2*pi) ) * quad( myfun,iter,10000 ) )+ u1;
end
if iter_max*0.5 <= iter
y(iter) = k2*( 1/( r*sqrt(2*pi) ) * quad( myfun,(iter-iter_max*0.5),10000 ) )+ u2;
end
end
plot(y); grid on; title('分段高斯分布');
%%%%%%%%%% 线性分段曲线测试 %%%%%%%%%%%
% k1 = 0.1;k2=0.8;
% for iter = 1:iter_max
% if iter < iter_max*k1
% y(iter) = 1 - (1-0.7)*iter /(iter_max*k1);
% end
% if iter_max*k1<= iter & iter <= iter_max*k2
% y(iter) = 0.7 - (0.7-0.5)*(iter-iter_max*k1) /(iter_max*(k2-k1));
% end
% if iter_max*k2 < iter
% y(iter) = 0.5 - (0.5-0.2)*(iter-iter_max*k2) /(iter_max*(1-k2));
% end
% end
% plot(y); grid on;;xlabel('迭代次数');ylabel('惯性权重 ω'); title('线性分段分布');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -