24小时热门版块排行榜    

查看: 2256  |  回复: 5

huishujie

新虫 (小有名气)

[求助] 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);
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

plasmaSim

铁虫 (小有名气)

等离子体放电、电磁波与等离子体相互作用等仿真
2楼2019-08-14 06:33:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

独孤神宇

版主 (知名作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +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
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

huishujie

新虫 (小有名气)

感谢感谢,可以算出来了,后面有啥问题 再请教老兄!
4楼2019-08-14 09:55:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

plasmaSim

铁虫 (小有名气)

引用回帖:
4楼: Originally posted by huishujie at 2019-08-14 09:55:40
感谢感谢,可以算出来了,后面有啥问题 再请教老兄!

看起来问题是这个R(i)=real(R);重复使用了R?
等离子体放电、电磁波与等离子体相互作用等仿真
5楼2019-08-14 11:07:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

huishujie

新虫 (小有名气)

引用回帖:
5楼: Originally posted by plasmaSim at 2019-08-14 11:07:21
看起来问题是这个R(i)=real(R);重复使用了R?...

对的呢,就是这个问题。
6楼2019-08-14 12:45:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 huishujie 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 93BebMhtakh前后11位开头都是大写 +4 且听虎啸 2026-08-17 5/250 2026-08-18 00:49 by 蔡棒棒菂
[基金申请] 欢迎发来filecode的Mz6后的代码验证其规律 +37 医学老男孩 2026-08-13 86/4300 2026-08-18 00:18 by longsantaizi
[基金申请] 感觉是下周放榜了 +6 angus9576 2026-08-17 11/550 2026-08-17 23:57 by angus9576
[基金申请] filecode=后面第一个是大写字母 +8 wangze12014 2026-08-14 10/500 2026-08-17 17:05 by xter9665
[基金申请] 时间戳变了,能看出什么问题? +4 基诺咪客 2026-08-17 4/200 2026-08-17 16:10 by Vivilian
[基金申请] 今天系统多次维护,明天很可能放榜! +8 zju2000 2026-08-16 9/450 2026-08-17 12:20 by lmz0216
[基金申请] 时间戳又变了8-15 +13 archvillain 2026-08-15 25/1250 2026-08-16 20:13 by zhaosm1982
[基金申请] 2027广东省杰青 +3 奶牛小黑 2026-08-15 6/300 2026-08-16 20:07 by 奶牛小黑
[基金申请] 快农历七夕节了,轻松一下,男人悄悄话,女施主请不要进来。 +3 Tide man 2026-08-14 3/150 2026-08-16 17:47 by jurkat.1640
[基金申请] 咱们一起用铁证分析2026国家社科基金中标与否 +7 启萌科技 2026-08-12 26/1300 2026-08-16 12:35 by 启萌科技
[基金申请] 有时候,自然基金真的不能太认真 (我的申报经验) +10 majunge000 2026-08-11 12/600 2026-08-16 08:18 by xli1984
[精细化工] 招聘 金属平磨液,抛光液研发工程师 +3 小天0311 2026-08-14 3/150 2026-08-16 07:31 by H9PLUS
[基金申请] 各位道友,我要去昆明玩几天,回来见。 +7 Tide man 2026-08-14 8/400 2026-08-15 01:11 by arzu_hma
[基金申请] 是这周出结果还是下周出结果? +4 yuleib84 2026-08-11 4/200 2026-08-14 23:05 by lfy8008
[硕博家园] 读博的好处 +4 lnee 2026-08-11 4/200 2026-08-14 10:20 by ahsoarli
[基金申请] Filecode 又变了,巨变 +3 WH3796 2026-08-12 4/200 2026-08-13 14:13 by 小木虫6752397
[基金申请] 分享一下我之前已中青C的计划书的filecode +4 布布和一二 2026-08-11 5/250 2026-08-13 12:56 by cratir
[基金申请] 结合人工智能,周易传统文化,filecode打分制来了,3分以上希望很大。 +3 Tide man 2026-08-12 4/200 2026-08-13 08:35 by ZJTJZ
[基金申请] 2019年青年基金涵评意见,大家看看几个A,几个B? +11 Tide man 2026-08-11 11/550 2026-08-13 07:35 by 撸猫猫
[基金申请] 什么时候出结果,有咨询渠道??? +3 Tide man 2026-08-11 3/150 2026-08-11 17:54 by kudofaye
信息提示
请填处理意见