原程序代码:

function f=tripleintL1(u,n)

a=3.25*10^(-10);t=1;U=8*t;

x0=0.3551*2*pi/a;

z0=0.18821*2*pi/a;

v0=2*(a^3)/(sqrt(3)*((0.3551)^2)*0.1882);k=1.725*10^(-4);T=10;

f=(3*v0/((2*pi)^3))*(quad(@(x)arrayfun(@(xx)quad2d(@(y,z)(1./(exp((-2*t*(cos(y*a)...

+2*cos(y*a/2).*cos(sqrt(3)*xx*a/2)+cos((sqrt(3)/3)*xx*a+sqrt(6)*z*a/3)...

+2*cos(y*a/2).*cos(sqrt(3)*xx*a/6-sqrt(6)*z*a/3))+U*n-u)./(k*T))+1)...

+1./(exp((-2*t*(cos(y*a)+2*cos(y*a/2).*cos(sqrt(3)*xx*a/2)+cos((sqrt(3)/3)*xx*a+sqrt(6)*z*a/3)...

+2*cos(y*a/2).*cos(sqrt(3)*xx*a/6-sqrt(6)*z*a/3))...

+U*(6-n)-u)./(k*T))+1)),0,sqrt(3)*(xx-x0),0,z0),x),x0,3*x0/2));

end

被积函数是:

1./(exp((-2*t*(cos(y*a)+2*cos(y*a/2).*cos(sqrt(3)*xx*a/2)+cos((sqrt(3)/3)*xx*a+sqrt(6)*z*a/3)+2*cos(y*a/2).*cos(sqrt(3)*xx*a/6-sqrt(6)*z*a/3))+U*n-u)./(k*T))+1)...

+1./(exp((-2*t*(cos(y*a)+2*cos(y*a/2).*cos(sqrt(3)*xx*a/2)+cos((sqrt(3)/3)*xx*a+sqrt(6)*z*a/3)+2*cos(y*a/2).*cos(sqrt(3)*xx*a/6-sqrt(6)*z*a/3))+U*(6-n)-u)./(k*T))+1)

这里u,n是参数

积分范围:y: (0,0,sqrt(3)*(x-x0),)  x: (x0,3*x0/2)  z: (0,z0)

其中a=3.25*10^(-10);

x0=0.3551*2*pi/a;

z0=0.18821*2*pi/a;

我用的版本是R2009b

运行时不报错 但有warning,具体如下:

Warning: Reached the maximum number of function

evaluations (2000). The result fails the global error

test.    抱歉我不知道您说的出错代码是什么意思,我把原程序拷在上面,您帮忙看一下 好吗 多谢了

[本帖最后由 ljp1987 于 2010-4-3 16:11 编辑]

f5c3d56501a3d0261ce0cb81cbf824a7.gif

2010-4-3 16:11 上传

点击文件名下载附件

642 Bytes, 下载次数: 5

m文件

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐