数学建模社区-数学中国
标题:
大家猜猜matlab 运算速度和 C 的运算速度那个更快一些?
[打印本页]
作者:
冬季的期盼
时间:
2013-7-26 17:05
标题:
大家猜猜matlab 运算速度和 C 的运算速度那个更快一些?
编写了一个计算光栅的程序。
代码已经有了!大家可以尝试一下用c快还是matlab运行一下那个比较快!!
wave1=1548;
wave2=1553;
centwave=1550;
L=20000000; %光栅长度
PI=3.1415926;
dn0=0.0001; %折射率调制
n=1.447; %初始折射率
neff=n+dn0;
vector0=centwave/(2*neff); %原始波矢
num1=1000; %波长分割数
num2=1000; %光栅长度分割数
dL=L/num2;
c=0.24e-7; %啁啾周期参数
M=1; %超高斯阶数
FWHM=0.8*L; %半宽高
for p=1:1:num1
wave=wave1+p*(wave2-wave1)/num1;
w(p)=wave;
a=[1,0;0,1];
for q=0:1:num2
dn=dn0*exp(-log(2)*(2*(q*dL-L/2)/FWHM)^(2*M)); %高斯切趾
kapa=PI*dn/wave;
vector=vector0+c*q*dL; %均匀啁啾
dbeta=2*PI*n/wave-PI/vector;
gama=sqrt(kapa*kapa-dbeta*dbeta);
m=gama*dL;
A=cosh(m)-i*dbeta/gama*sinh(m);
B=-i*kapa/gama*sinh(m);
C=i*kapa/gama*sinh(m);
D=cosh(m)+i*dbeta/gama*sinh(m);
b=[A,B;C,D];
a=a*b;
end
ref=-a(2,1)/a(2,2);
ref_f=abs(ref)*abs(ref);
r(p)=10*log(ref_f);
trans=a(1,1)-a(1,2)*a(2,1)/a(2,2);
trans_f=abs(trans)*abs(trans);
t(p)=10*log(trans_f);
end
result=zeros(num1,3);
for p=1:1:num1
result(p,1)=w(p);
result(p,2)=r(p);
result(p,3)=t(p);
end
作者:
〃陌上浅歌
时间:
2013-7-26 18:49
猜matlab。。。
作者:
madio
时间:
2013-7-26 20:11
论速度肯定是C好,毕竟是编译的程序,比解释的快多了
作者:
yufeiyang
时间:
2013-7-27 11:01
matlab快,嘿嘿
作者:
冬季的期盼
时间:
2013-7-27 11:24
还有没有回答的?
在有三个人我公布答案!!
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5