📄 timeupdt.m
字号:
% time update
% scheme selection by user.
% explicit scheme!!!
Hz = zeros(node,2); % pre-define the first two time steps
switch scheme
case 1
TERM1 = inv(dt*S+2*T);
TERM2 = -2*(dt*dt)*P + 4*T;
TERM3 = dt*S - 2*T;
case 0
TERM1 = inv(dt^2*P + 2*dt*S + 2*T);
TERM2 = 4*T + 2*dt*S - dt^2*P;
TERM3 = -2*T;
otherwise
error('You choose the wrong scheme...');
end
t0 = clock;
rms = 1;
step = 1;
t(step) = dt; g(step) = 0;
step = step + 1;
t(step) = step*dt; g(step)=gauss(step,dt,fc);
while( step<MAX_STEP || g(step)>1e-10 )
% each iteration, 50 time steps!
for k=1:50
step = step+1;
t(step) = step*dt;
g(step) = gauss(step,dt,fc);
tmp = gauss(step+1,dt,fc);
diff_g(step) = (1/2/dt)*(tmp-g(step-1)); %C.D.
Hz(:,step) = TERM1 * (2*(dt^2)*diff_g(step)*f(:) + TERM2*Hz(:,step-1) + TERM3*Hz(:,step-2)); % explicit scheme!!!
end
end
tt = etime(clock,t0);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -