mathematic数值计算求助
mathematica吧
全部回复
仅看楼主
level 3
s69037418 楼主
\[Lambda] = 0.6328*10^-6; k = (2*\[Pi])/\[Lambda];
w = 0.02; Subscript[C, n] = 10^-16;
L = 1; l = 0.01; \[Sigma] = 0.02; m = 1; a = 800; z = 1000;
\[Kappa]0 = 1/L; \[Kappa]m = 5.92/l;
T = 0;
M1 = k^2/z^2*\!\(
\*UnderoverscriptBox[\(\[Sum]\), \(b = \(-10\)\), \(10\)]\(NIntegrate[
BesselJ[m, a\ *r1]*BesselJ[m, a*\ r2]*BesselJ[b,
\*FractionBox[\(k*\ r1*\ \[Rho]\), \(z\)]]*BesselJ[b,
\*FractionBox[\(k*\ r2*\ \[Rho]\), \(z\)]]*BesselI[m + l, 2*r1*r2 \((
\*FractionBox[\(1\),
SuperscriptBox[\(\[Sigma]\), \(2\)]] + T)\)]*Exp[\(-\((
\*FractionBox[\(1\),
SuperscriptBox[\(\[Sigma]\), \(2\)]] + T +
\*FractionBox[\(1\),
SuperscriptBox[\(w\), \(2\)]])\)\)*\((
\*SuperscriptBox[\(r1\), \(2\)] +
\*SuperscriptBox[\(r2\), \(2\)])\) +
\*FractionBox[\(I*k\), \(2*z\)]*\((
\*SuperscriptBox[\(r2\), \(2\)] -
\*SuperscriptBox[\(r1\), \(2\)])\)]*r1*r2, {r1, 0.01, 10}, {r2, 0.01,
10}]\)\);
a1 = Table[{\[Rho], Abs[M1]}, {\[Rho], 0.001, 0.1, 0.01}]
ListPlot[a1, Joined -> True, PlotRange -> All] TimeUsed[]
2019年01月03日 09点01分 1
level 3
将贝塞尔展开为级数试试?
2019年01月03日 12点01分 2
展开以后好像计算量更大了,计算一黑夜都没反应。现在计算时间也挺长的,差不多半天,就是提示不对
2019年01月03日 13点01分
level 3
s69037418 楼主
现在的问题是计算提示有错误,出来的结果不对,求大神指导
2019年01月03日 13点01分 3
吧务
level 15
会有警告是因为你M1定义的时候rho还是个字母,把M1的定义改成延迟赋值即可,但这不是关键问题。内核会崩十有八九是因为内存吃光了,建议先拿和式里的其中一项取一个rho算算看,NIntegrate可能需要针对积分本身的性质去仔细调选项。不过默认情况下能把电脑算崩的积分目测够呛。
2019年01月05日 06点01分 7
学长你好,一黑夜算不出来就是内核崩了吗?不太懂
2019年01月05日 08点01分
@s69037418 ……我是看到你顶楼字全变深蓝了才这么说的。如果是你强退了那当我没说。
2019年01月05日 08点01分
恩,谢谢学长
2019年01月05日 08点01分
1