求助:基于NDEigensystem求解氧核Woods-Saxon势的负特征值
Woods-Saxon势薛定谔方程求解问题修正
你的代码存在几个关键问题,导致结果与预期不符,以下是针对性修正:
1. 未定义Woods-Saxon势核心参数
氧核的Woods-Saxon势需要指定具体参数,典型取值为:
V0 = 50; R = 1.2*16^(1/3); a = 0.6;
(单位:V0为MeV,R、a为fm,自然单位下ℏ=1)
2. 径向薛定谔算子缺失离心项
径向薛定谔方程的标准形式必须包含离心势项(除非求解s波l=0),算子修正为:
ℏ = 1; m = 1; (* 自然单位下质量取1 *) l = 0; (* 示例求解s波,l=0 *) V[r_] := (-V0)/(1 + Exp[(r - R)/a]) \[ScriptCapitalL] = -ℏ²/(2m) u''[r] + (V[r] + ℏ²l(l+1)/(2m r²)) u[r];
3. 未指定边界条件
NDEigensystem需要明确物理边界:r=0处l≥0时u(0)=0,r→∞时u(r)→0,补充后求解代码:
{vals, funs} = NDEigensystem[{\[ScriptCapitalL], u[0] == 0, u[10] == 0}, u[r], {r, 0, 10}, 10];
4. 绘图表达式量纲混乱
原代码h*funs + vals将波函数与能量直接相加,属于错误操作。正确绘图应单独展示波函数与势能:
Show[ Plot[Evaluate[funs], {r, 0, 10}, PlotLegends -> Map["E = " <> ToString[NumberForm[#, 2]] &, vals]], Plot[V[r], {r, 0, 10}, PlotStyle -> {Dashed, Black}], PlotRange -> {{0, 10}, {-50, 10}}, AxesOrigin -> {0, 0}, AxesLabel -> {"r (fm)", "Wavefunction Amplitude / Potential (MeV)"} ]
完整修正代码
(* 氧核Woods-Saxon势参数 *) V0 = 50; R = 1.2*16^(1/3); a = 0.6; ℏ = 1; m = 1; (* 自然单位 *) l = 0; (* 求解s波,l=0 *) (* 定义径向薛定谔算子 *) V[r_] := (-V0)/(1 + Exp[(r - R)/a]) \[ScriptCapitalL] = -ℏ²/(2m) u''[r] + (V[r] + ℏ²l(l+1)/(2m r²)) u[r]; (* 求解前10个特征值和特征函数 *) {vals, funs} = NDEigensystem[{\[ScriptCapitalL], u[0] == 0, u[10] == 0}, u[r], {r, 0, 10}, 10]; (* 绘制结果 *) Show[ Plot[Evaluate[funs], {r, 0, 10}, PlotLegends -> Map["E = " <> ToString[NumberForm[#, 2]] &, vals]], Plot[V[r], {r, 0, 10}, PlotStyle -> {Dashed, Black}], PlotRange -> {{0, 10}, {-50, 10}}, AxesOrigin -> {0, 0}, AxesLabel -> {"r (fm)", "Wavefunction Amplitude / Potential (MeV)"} ]
内容的提问来源于stack exchange,提问作者Kol
相关产品推荐
相关产品推荐

