طلب مساعدة في الماتلاب numrical لمن لديهم الخبرة


(system) #1

اواحه مشكلة قي حل هذا التكامل العددي وكلما قمت بالتنفيذ حصلت على خطأ
[FONT=Courier New][SIZE=2][COLOR=#0000ff][FONT=Courier New][SIZE=2][COLOR=#0000ff][FONT=Courier New][SIZE=2][COLOR=#0000ff]

function Bi_layer_graphene_first_order_current_J1
n=50;
hbar=6.5e-34;
%Omega=zeros(n,1);
Gamma=2.9;
Velocity=1e6;
k=zeros(n,1);
Q=zeros(n,1);
%Q=zeros(n,1);
for j=1:n
Omegamax=5;

Omegamin=1;

Omegadalt=(Omegamax-Omegamin)/n;

Omega(j)=Omegamin+(j-1)*Omegadalt;

% Integration limit as k1 k2 k3 k4

k1= 1./2 .*(( Velocity + sqrt(Velocity^2 +2 .*Gamma .*hbar .*Omega(j)))./Gamma);

k2=-1./2 .*((-Velocity + sqrt(Velocity^2 +2 .*Gamma .*hbar .*Omega(j)))./Gamma);

Phi= (4 .* k.^2 .* Velocity^2 +4 .* Gamma^2 .k.^4 - hbar^2 . Omega(j).^2)./abs(8 .* Gamma .* Velocity .* k.^3);

B= 6 .Omega(j).^2 . Gamma .*Velocity .*hbar .*k.^2 .*abs(sqrt(1-Phi.^2));

F  [EMAIL="=@(k"]=@(k[/EMAIL]) -( 1./B) *((4.*Gamma^2 .*k.^2 +4 *Phi*k.* Gamma .*Velocity +Velocity^2) *(hbar^2 .*Omega(j)^2 ./4) + 2 * Phi (4 .* Gamma^4 .*k.^6 -10 .* Gamma^3 .*Velocity .*k.^5 +10 .* Gamma^2 .*Velocity^2 .*k.^4 -7 .*Velocity^3 .*Gamma .*k.^3 + Velocity^4 .*k.^2+ 16 .* Gamma^2 .*Velocity^2 .*k.^4));

Q(j)= quadgk( F,k1,k2);

plot(Omega,Q./Q(1))

end

وعند التنفيذ احصل على هذه الرسالة

??? Subscript indices must either be real positive integers or logicals.
Error in ==>
Bi_layer_graphene_first_order_current_J1>@(k)-(1./B)*((4.Gamma^2.k.^2+4Phik.*Gamma.Velocity+Velocity^2)(hbar^2.Omega(j)^2./4)+2Phi(4.*Gamma^4.*k.^6-10.*Gamma^3.*Velocity.*k.^5+10.*Gamma^2.*Velocity^2.*k.^4-7.*Velocity^3.*Gamma.*k.^3+Velocity^4.*k.^2+16.*Gamma^2.*Velocity^2.*k.^4))
at 36
F =@(k) -( 1./B) *((4.*Gamma^2 .k.^2 +4 Phik. Gamma .*Velocity +Velocity^2) *(hbar^2 .Omega(j)^2
./4) + 2 * Phi (4 .
Gamma^4 .k.^6 -10 . Gamma^3 .*Velocity .k.^5 +10 . Gamma^2 .*Veloci
Error in ==> quadgk>evalFun at 357
fx = FUN(x);
Error in ==> quadgk>f1 at 375
[y,too_close] = evalFun(tt);
Error in ==> quadgk>vadapt at 269
[fx,too_close] = f(x);
Error in ==> quadgk at 208
[q,errbnd] = vadapt(@f1,interval);
Error in ==> Bi_layer_graphene_first_order_current_J1 at 38
Q(j)= quadgk( F,k1,k2);

ارجو منكم مساعدتي لحل هذه المشكلة لان الامر عاجل وضروري

وجزاكم الله كل خير[/color][/size][/font][/color][/size][/font][/color][/size][/font]


#2

سانظر الموضوع وارد عليك لاحقا


(system) #3

سأكون لك شاكرا وجزاك الله كل خير


#4

المشكلة لديك فى الدالة

F   =@(k) -( 1./B) *((4.*Gamma^2 .*k.^2 +4 *Phi*k.* Gamma .*Velocity  +Velocity^2) *(hbar^2 .*Omega(j)^2 ./4) + 2 * Phi (4 .* Gamma^4 .*k.^6  -10 .* Gamma^3 .*Velocity .*k.^5 +10 .* Gamma^2 .*Velocity^2 .*k.^4 -7  .*Velocity^3 .*Gamma .*k.^3 + Velocity^4 .*k.^2+ 16 .* Gamma^2  .*Velocity^2 .*k.^4));
    

الصورة المكتوبة بها غير واضحة واتمنى منك كتابتها بصورة اوضح حتى استطيع فهمها
تحديدا فى هذه الفقرة

Phi (4 .* Gamma^4 .*k.^6 -10 .*

فان Phi الان تعتبر كمصفوفة ونتيجة الحسابات قد تجد الدليل لا يساوى عدد صحيح ولذلك يجب عليك التأكد اولا ان الدالة التى كتبتها صحيحة عن طريق اعطاء قيم لها ومعرفة الناتج مثلا

F(3)