登 录
註 冊
论坛
微波仿真网
注册
登录论坛可查看更多信息
微波仿真论坛
>
时域有限差分法 FDTD
>
Dennis M. Sullivan中code改寫成matlab
发帖
回复
1299
阅读
6
回复
[
资料共享
]
Dennis M. Sullivan中code改寫成matlab
离线
j0958322080
UID :118959
注册:
2015-11-21
登录:
2016-03-10
发帖:
23
等级:
仿真新人
0楼
发表于: 2015-11-23 23:25:40
目前正在學習,雖然說c++跟matlab沒差多少,但對新手還是有很多幫助的。也順便放上來請大家幫忙看看有沒有錯或是如何修正比較好
' b?' u
FD1D1.1.C
Jzu U k
TEB<ia3+
clear
}7Lo}}
clc
q-? k=RX`
KE=200;
< 7
ddx = .01; % Cells size
QEtf-xNn^
dt =ddx/6e8; % Time steps
'DLgOUvh
kc = KE/2; % source
%*:X FB
t0 = 40.0;
'OEh'\d+x
spread = 12;
ppYIVI
T = 0;
<d*;d3gm
% Initialize
KkD.n#A
for k=1:KE
/xS4>@hn
ex(k) = 0.;
x&^>|'H
hy(k) = 0.;
HV0! G-h
end
[v0[,K
KH=4A-e,0
h=plot(ex);
q!fdiv`
ylim(2*[-1,1]);
XHN*'@ 77;
nsteps = 1;
x{'3eJ^8
while nsteps>0
:2v^pg|
n=0;
=@ SJyW
for n=1:nsteps
yZHh@W4v
T=T+1;
,?k0~fuG6
for k=2:KE
^jph"a C
ex(k)=ex(k)+0.5*(hy(k-1)-hy(k));
ioJ~k[T
end
8VWkUsOoI
pulse=exp(-0.5*(power((t0-T)/spread,2)));
J~jxmh
ex(kc)=pulse;
&Hl*Eg f
for k=1:KE-1
<t~RGn3
hy(k)=hy(k)+0.5*(ex(k)-ex(k+1));
c>~q2_}W(
&n ..
<q}w, XU
/Ko{S_3<I
未注册仅能浏览
部分内容
,查看
全部内容及附件
请先
登录
或
注册
共
1
条评分
,
rf币
+2
amy_wang
rf币
+2
希望大家一起交流学习,顶一下!
2015-11-24
离线
amy_wang
微信号:18010874378欢迎加入!
UID :115421
注册:
2015-03-18
登录:
2025-09-30
发帖:
3618
等级:
值班管理员
1楼
发表于: 2015-11-24 09:39:48
希望大家一起交流学习,顶一下!
共
条评分
离线
weclon0726
wusuowei
UID :115468
注册:
2015-03-25
登录:
2020-07-13
发帖:
522
等级:
积极交流四级
2楼
发表于: 2015-11-24 11:12:49
什么程序,没看明白~
共
条评分
今日的恶果源自昨日的恶因
今日的痛苦,寂寞,与孤独
明日会以幸福,快乐报答之
离线
j0958322080
UID :118959
注册:
2015-11-21
登录:
2016-03-10
发帖:
23
等级:
仿真新人
3楼
发表于: 2015-11-24 13:41:00
回 weclon0726 的帖子
那本書中1.1.c的程序
共
条评分
离线
j0958322080
UID :118959
注册:
2015-11-21
登录:
2016-03-10
发帖:
23
等级:
仿真新人
4楼
发表于: 2015-11-28 13:50:37
p;k7\7
clear
"PhP1;A9,
clc
^;[|,:8f7L
KE=200;
z3+7gp+I;
ddx = .01; % Cells size
"pLWJvj6-
dt =ddx/6e8; % Time steps
O>)Fl42IeD
kc = KE/2; % source
,'0Zd(s
t0 = 40.0;
|^!
spread = 12;
Q q7+_,w
T = 0;
CpG]g>]L&[
ex_low_m2=0
`L#`WC@[o
ex_low_m1=0
G$T#ql
ex_high_m2=0
uhJnDo
ex_high_m1=0;
C!%\cy%Xj
% Initialize
gdKn!; ,w#
for k=1:KE
F-SD4a
ex(k) = 0.;
LH_rc
hy(k) = 0.;
,y%4QvG7a
end
3|qT.QR`Z
Aq~}<qkIF+
h=plot(ex);
gLGu#6YVu
ylim(2*[-1,1]);
ugT;NB
nsteps = 1;
~[H+,+XLY+
while nsteps>0
Rz\:)<G
n=0;
: #om6}
for n=1:nsteps
e <]^7pz
T=T+1;
ytkV"^1^
for k=2:KE-1
x;; = +)Gg
ex(k)=ex(k)+0.5*(hy(k-1)-hy(k));
sH_5.+,`
end
?^l{t4
pulse=exp(-0.5*(power((t0-T)/spread,2)));
'Bc{N^
ex(kc)=pulse;
34e>R?J
%%%%%%%%%%%%%%%%%%%%%%absorbing condition%%%%%%%%%%%%%%%%%%%
<[W41{
ex(1) = ex_low_m2;
Sh(W s2b7
ex_low_m2 = ex_low_m1;
Y(D&JKx
ex_low_m1 = ex(2);
|?=a84n1l
ex(KE) = ex_high_m2;
}>T$2"pf
ex_high_m2 = ex_high_m1;
@_ Q
ex_high_m1 = ex(KE-1);
A\IQM^i
%%%%%%%%%%%%%%%%%%%%%%absorbing condition%%%%%%%%%%%%%%%%%%%
0! 6n
for k=1:KE-1
TcjTF|q>
hy(k)=hy(k)+0.5*(ex(k)-ex(k+1));
zJ9[),;7B
end
7F!(60xY
set(h,'ydata',ex);
l%^VBv> 2
drawnow;
Dx1 w I
end
% bpVK~z
C[0*>W8o
end
共
条评分
离线
j0958322080
UID :118959
注册:
2015-11-21
登录:
2016-03-10
发帖:
23
等级:
仿真新人
5楼
发表于: 2015-12-17 16:50:15
1.3.m
xbeVqP
clear
x<-n}VK\
clc
DQ a0S7I
KE=200;
l'#P:eW
kstart = 100;
x9&{@ ?o
kc = KE/2; % source
m:{ws~
t0 = 40.0;
@}Y,A~
spread = 13;
E$w2SQ
T = 0;
'&<T;V%
ex_low_m2=0;
?cF-w!>o8
ex_low_m1=0;
AlQE;4yX
ex_high_m1=0;
HU='Hk!
ex_high_m2=0;
^/k`URQ
9sR?aW^$,/
epsilon=5;
Le*sLuxk<
% Initialize
YH%aPsi
ex(1:KE) = 0.;
V6.w=6:`X
hy(1:KE) = 0.;
`QIYnokL
cb(1:KE) = .5;
ML|O2e
% Dieletric start
^I4/{,Ev
cb(kstart:KE) = .5/epsilon
-5_[m@Vr
/1Q i9uit
h=plot(ex);
:gvw5h%
ylim([-1.3,1.3]);
@\_l%/z{
nsteps = 1;
w N-np3k
while nsteps>0
qit D{;
n=0;
RkW)B^#
for n=1:nsteps
q!5 *)nw"
T=T+1;
_ zh>q4M
ex(2:KE)=ex(2:KE)+cb(2:KE).*(hy(1:KE-1)-hy(2:KE));
jZ;dY~fE
pulse=exp(-0.5*((t0-T)/spread)^2);
ATdK)gG
ex(20)=ex(20)+pulse;
h)vRvfcmY
%%%%%%%%%%%%%%%%%%%%%%absorbing condition%%%%%%%%%%%%%%%%%%%
^JKV~+ Q
ex(1) = ex_low_m2;
qBkI9H
ex_low_m2 = ex_low_m1;
T==(Pw7R7
ex_low_m1 = ex(2);
Rp!R&U/
ex(KE) = ex_high_m2;
:=I@<@82W
ex_high_m2 = ex_high_m1;
w,'"2^Cwy
ex_high_m1 = ex(KE-1);
m)]A$*`<
%%%%%%%%%%%%%%%%%%%%%%absorbing condition%%%%%%%%%%%%%%%%%%%
?\eq!bu
hy(1:KE-1)=hy(1:KE-1)+0.5*(ex(1:KE-1)-ex(2:KE));
vXio /m
set(h,'ydata',ex);
>*5+{~k~4
drawnow;
D m|_;iO,
end
cjd Z.jR2
U!0 Qf7D
end
共
条评分
离线
j0958322080
UID :118959
注册:
2015-11-21
登录:
2016-03-10
发帖:
23
等级:
仿真新人
6楼
发表于: 2016-02-02 11:20:36
clear
M NE{mV(
clc
zS@"ITy
KE=200;
Jl"),;Od
kstart=100;
nt/+?Sj
ddx = .01; % Cells size
"%c\i-&t
dt =ddx/6e8; % Time steps
%f{1u5+5
kc = KE/2; % source
I[~EQ{Iz
t0 = 40.0;
b6IYo!3
spread = 12;
{[~ !6&2(k
T = 0;
+TzF*Np
ex_low_m2=0
Ek [V A\G
ex_low_m1=0
<p48?+K9
ex_high_m2=0
Pez 7HKW:
ex_high_m1=0;
H!F Cerg
epsilon=4;
%SRUHx[D
freq_in=1100*1e6
*0 ;DCUv
% Initialize
p0KkPE">p4
ex(1:KE) = 0.;
KfU4#2}
hy(1:KE) = 0.;
^y?7B_%:B#
cb(1:KE) = .5;
#?xhfSgr
% Dieletric start
dbkkx1{>Y
cb(kstart:KE) = .5/epsilon
;;zKHS
"t<${
h=plot(ex);
t'uZho~^F
ylim(2*[-1,1]);
f6 zT
nsteps = 1;
`"0#lZ`n
while nsteps>0
}lzyl*.
n=0;
_}X_^taTZS
for n=1:nsteps
f`5e0;zm
T=T+1;
&%~2Wm
ex(2:KE-1)=ex(2:KE-1)+cb(2:KE-1).*(hy(1:KE-2)-hy(2:KE-1));
IT,TSs/Y
pulse = sin(2*pi*freq_in*dt*T);
Gs*FbrY
ex(2)=ex(2)+pulse;
Wgl7)Xk.)
%%%%%%%%%%%%%%%%%%%%%%absorbing condition%%%%%%%%%%%%%%%%%%%
y.AF90Q>)
ex(1) = ex_low_m2;
ZQT14. $L
ex_low_m2 = ex_low_m1;
8oSndfV
ex_low_m1 = ex(2);
zN(fZT}K5
ex(KE) = ex_high_m2;
_P!J0
ex_high_m2 = ex_high_m1;
{Gnji] v
ex_high_m1 = ex(KE-1);
pV#~$e
%%%%%%%%%%%%%%%%%%%%%%absorbing condition%%%%%%%%%%%%%%%%%%%
}5H3DavW
hy(1:KE-1)=hy(1:KE-1)+0.5*(ex(1:KE-1)-ex(2:KE));
SxMrX C*
set(h,'ydata',ex);
7xP>AU)y
drawnow;
Le9^,B@Pb
end
K~A$>0c
3~"G(UP
end
共
条评分
发帖
回复