物理現象を数式で表そうとしているのですが、
途中の積分でエラーが発生します。
物理現象はすべて真空中で発生するものであり、
タングステン線に電気を流してそこから電子を取り出し、これに指向性を持たせて、真空中に安置された絶縁体の粉体に照射します。
この時、安置された粒子の表面には隣接する粒子同士によって構成される小さな空洞(微小空洞と呼びます)が存在しており、
そこに電子が照射されると、微小空洞内でさらに電子が発生するというものです。
以下にコードを示します。
(前略)
T=700
a=24
l=0.01
D=0.1
S=(0.1/2)^2*pi
R=a*(l/S)*0.01
I=3
V=I*R
A=120*10^6
e=1.602176634*10^-19
Vfai=4.52
kB=1.3806488*10^-23
J1=A.*(T.^2).*exp(-(e*Vfai)./(kB.*T))
J1enum=J1/e;
Vg1=40;
eV=J1enum*Vg1;
Te=(2*eV)/(3*kB);
ep=8.85418781*10^-12;
Tee=2.5;
r=1.0*10^-6;
s=2*r;
S=0.88
Cf=(4.3*10^-20)/0.0000000000000000033;
E0=0;
et=(s/Tee)*sqrt(((2*Cf*(S^2))/(r*pi*ep)-2*E0^2));
fai=(et*Tee)/e;
syms t
Em=450;
x=@(t) (t^5)*exp(-(Em/(4*kB*Te))*(t^2)+t);
Jpart4=(Em./(4*kB*Te)).^2
G=exp(-Em./(4*kB*Te))
H=G*(t.^2)+t
sekibunx=integral(x,inf,0);←現在のエラー発生個所
delm=1.2;
Jpart1=3.7*delm*J1
Jpart2=-abs(e*fai)/(kB*Te)
Jpart3=exp(Jpart2)
Jpart4=(Em/(4*kB*Te))^2
Jpart_all=Jpart1*Jpart3*Jpart4
Jsec=Jpart_all*sekibunx
このコードを走らせた時、以下のようなエラーが出ます。
エラー: ^ (line 51)
行列をべき乗にするには次元が正しくありません。行列が正方行列で、べき指数がスカラーであることを確認
してください。行列を要素ごとにべき乗するには、'.^' を使用してください。
エラー: effect_of_beam_current>@(t)(t^5)*exp(-(Em/(4*kB*Te))*(t^2)+t)
エラー: integralCalc/iterateScalarValued (line 314)
fx = FUN(t);
エラー: integralCalc/vadapt (line 132)
[q,errbnd] = iterateScalarValued(u,tinterval,pathlen);
エラー: integralCalc (line 83)
[q,errbnd] = vadapt(@AToInfInvTransform,interval);
エラー: integral (line 88)
Q = integralCalc(fun,a,b,opstruct);
エラー: effect_of_beam_current (line 66)
sekibunx=integral(x,inf,0);
自分で試したこと
実は現在のエラーが発生する前、計算は何かがおかしく正しい計算がされない状態であったもののコード自体は全部走らせることはできました。
コードを拡張してTとIを行列にしての計算を試みました。
結果、同じ場場所で次元が違うとか正方行列になっていないのではとか出てきたので、
仕方なく現在のように行列として表記しないようにしています。
しかしながら現在も「行列をべき乗にするには次元が正しくありません。行列が正方行列で、べき指数がスカラーであることを確認
してください。行列を要素ごとにべき乗するには、'.^' を使用してください。」
と、行列を使用していないにも関わらず表示されているため非常に困惑しています。
不明な点がありましたら対応致します。
何卒よろしくお願いいたします。