正如您在下面的最后几行中所看到的,我正在尝试将我的函数存储在多个变量上,因为它变得相当难看。但是,这样做会产生如下所示的错误。
对此的修复方法是手动替换/Applications/MAMP/bin/php/php7.0.0/bin/pecl install oci8.
和k
,但这正是我要避免的。任何帮助,将不胜感激。谢谢!
kp
错误
clc
clear
hbar = 1.055e-34;
mo = 9.1095e-31;
q = 1.602e-19;
kb=1.38065e-23;
T=298;
Ef = -0.1*q; % -100meV in units Joules
V0 = 1*q;
L = 1e-9;
k = @(E) (2*mo*E/hbar.^2)^.5;
kp = @(E) (2*mo*(V0-E)/hbar.^2)^.5;
fun = @(E) (exp(-2*kp*L) .* ((16*k.^2 .* kp.^2) ./ ((k.^2 + kp.^2).^2))) .* exp(-E./(kb*T));
Q = integral(fun,0,inf);
答案 0 :(得分:0)
在此使用
k = @(E) (2.*mo.*E./hbar.^2).^.5;
kp = @(E) (2.*mo.*(V0-E)./hbar.^2).^.5;
fun = @(E) (exp(-2*kp(E)*L).*((16*k(E).^2.*kp(E).^2)./((k(E).^2+kp(E).^2).^2))).*exp(-E./(kb*T));
Q = integral(fun,0,inf);
我认为你需要传递参数E
,那么你确定kb*T
是正确的吗?也许kp(E)*T
?然后,您忘记.
是k
和kp
的sqrt,或者如果它不是sqrt,则点位于电源符号的错误一侧。