| 查看: 1883 | 回复: 5 | ||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | ||
[求助]
Matlab 计算DBR折射率 已有1人参与
|
||
|
根据传输矩阵法试着写了一下程序,计算不出来,纠结找原因好几天了,真的是找不到原因,因为我自己也是刚开始学Matlab, 所以有么有大神给看看到底哪里有问题啊?真心挺着急的。。。。。 n0=1; a0=0*pi/180; n1=3.1; n2=3.6; N=28; Lamda=(700:1:900); for i=1:length(Lamda) lamda=Lamda(i); d1=68.5; d2=59.02; a1=asin(n0*sin(a0)/n1); a2=asin(n1*sin(a1)/n2); a3=asin(n2*sin(a2)/n0); p1=2*pi*n1*d1*cos(a1)/lamda; p2=2*pi*n2*d2*cos(a2)/lamda; u0=4*pi*1e-7; e0=1e-9/(36*pi); b=sqrt(e0/u0); c1=b*n1*cos(a1); c2=b*n2*cos(a2); c0=b*n0*cos(a0); c00=b*n0*cos(a3); A1=cos(p1);B1=-i*sin(p1)/c1;C1=-i*c1*sin(p1);D1=cos(p1); M1=[A1 B1;C1 D1]; A2=cos(p2);B2=-i*sin(p2)/c2;C2=-i*c2*sin(p2);D2=cos(p2); M2=[A2 B2;C2 D2]; M=(M1*M2)^N; A=M(1,1);B=M(1,2);C=M(2,1);D=M(2,2); r=(A*c0+B*c0*c00-C-D*c00)/(A*c0+B*c0*c00+C+D*c00); t=(2*c0)/(A*c0+B*c0*c00+C+D*c00); R=r*conj(r); T=t*conj(t); R(i)=real(R); end figure; plot(Lamda,R); |
» 猜你喜欢
【复旦大学】二维材料方向招收2026年博士研究生1名
已经有0人回复
北京纳米能源与系统研究所 王中林院士/曹南颖研究员课题组2026级硕/博/博后招生
已经有10人回复
物理学I论文润色/翻译怎么收费?
已经有266人回复
荷兰Utrecht University超快太赫兹光谱王海教授课题招收2026 CSC博士生
已经有23人回复
反铁磁体中的磁性切换:两种不同的机制已成功可视化
已经有0人回复
求标准粉末衍射卡号 ICDD 01-076-1802
已经有0人回复
新西兰Robinson研究所招收全奖PhD
已经有0人回复
石墨烯转移--二氧化硅衬底石墨烯
已经有0人回复
6楼2019-08-14 12:45:43

2楼2019-08-14 06:33:11
独孤神宇
版主 (知名作家)
- 应助: 490 (硕士)
- 贵宾: 0.008
- 金币: 31014.8
- 散金: 802
- 红花: 122
- 沙发: 1
- 帖子: 5600
- 在线: 855.5小时
- 虫号: 3522474
- 注册: 2014-11-06
- 性别: GG
- 专业: 机械动力学
- 管辖: 计算模拟
【答案】应助回帖
★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
月只蓝: 金币+5, 感谢指导! 2019-08-14 08:33:19
huishujie: 金币+10, ★有帮助 2019-08-14 09:54:34
感谢参与,应助指数 +1
月只蓝: 金币+5, 感谢指导! 2019-08-14 08:33:19
huishujie: 金币+10, ★有帮助 2019-08-14 09:54:34
|
取大步长 降低矩阵次方 试了一下,可以运行 ,你可以改回去 慢慢算。。 另外,建议不要用 循环,直接 向量化 计算可以加快运算效率 n0=1; a0=0*pi/180; n1=3.1; n2=3.6; N=2; Lamda=700:5:900; RR=zeros(1,length(Lamda)); for i=1:length(Lamda) lamda=Lamda(i); d1=68.5; d2=59.02; a1=asin(n0*sin(a0)/n1); a2=asin(n1*sin(a1)/n2); a3=asin(n2*sin(a2)/n0); p1=2*pi*n1*d1*cos(a1)/lamda; p2=2*pi*n2*d2*cos(a2)/lamda; u0=4*pi*1e-7; e0=1e-9/(36*pi); b=sqrt(e0/u0); c1=b*n1*cos(a1); c2=b*n2*cos(a2); c0=b*n0*cos(a0); c00=b*n0*cos(a3); A1=cos(p1);B1=-i*sin(p1)/c1;C1=-i*c1*sin(p1);D1=cos(p1); M1=[A1 B1;C1 D1]; A2=cos(p2);B2=-i*sin(p2)/c2;C2=-i*c2*sin(p2);D2=cos(p2); M2=[A2 B2;C2 D2]; M=(M1*M2)^N; A=M(1,1);B=M(1,2);C=M(2,1);D=M(2,2); r=(A*c0+B*c0*c00-C-D*c00)/(A*c0+B*c0*c00+C+D*c00); t=(2*c0)/(A*c0+B*c0*c00+C+D*c00); R=r*conj(r); T=t*conj(t); RR(i)=real(R); end figure; plot(Lamda,RR); |

3楼2019-08-14 08:22:01
4楼2019-08-14 09:55:40













回复此楼