【发布时间】:2019-11-05 22:00:49
【问题描述】:
我正在尝试在 Matlab 中绘制 Yukawa 势,我想让我的程序通过用户输入值 alpha(在我的程序中称为 alph)和 l。对于 alpha,我需要使用的值是 0.1、0.2 和 0.3,对于每个 alpha 值,l 的值分别为 0、1 和 2。我知道我可以为此设置一个循环,但它不必很漂亮,我想一次测试一个值。无论如何,我在输入 alpha 的值后一直收到错误,我一直收到的错误在我的函数中,说我没有足够的输入参数。输出应该是 T 矩阵、哈密顿矩阵和前 10 个特征函数的图。
我已经尝试过简单地将 alpha 定义为我想要查看的数字,并且该程序可以正常显示我正在寻找的输出。我只想能够更改 alpha 的值,而不必更改程序本身。 l 输入没有任何问题。
r = linspace(0.05,19.95,1999)
n = 1999
dr = 0.05
a = full(gallery("tridiag",n,1,-2,1))
T = -0.5*a/(dr^2)
l = input('Input a value for l.')
alph = input('Input a value for alpha.')
v = arrayfun(@(r) yuk_pot(r,l),r);
V = diag(v)
H = T + V
[O,D] = eig(H);
plot(r,O(:,1),r,O(:,2),r,O(:,3),r,O(:,4),r,O(:,5),r,O(:,6),r,O(:,7),r,O(:,8),r,O(:,9),r,O(:,10))
function v = yuk_pot(r,alph,l)
v = (-exp(-alph*r)/r) + 0.5*(l*(l+1)/(r^2));
end
【问题讨论】:
标签: matlab function input quantum-computing