انجمن سایت کلیدستان


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
خطای Not enough input arguments

خطای Not enough input arguments

#1
سلام دوستان
من برای حل 12 تا معادله دیفرانسیل مرتبه 1 معمولی یک تابع نوشتم ،چندین بار هم تمام روابط را چک کردم منتها هر بارهمین اررور  را می دهد،از دوستان کسی می دونه مشکل از کدوم قسمتش می باشد؟ خیلی ممنون

function df = deriv(t,f,u)

T10=300;   T20=300;   F10=5;  F20=10;   Fr=1.9;    Fp=0;   F1=4.99;% selected by myself
CA10=4;    CA20=3;    V1=1;      V2=0.5;    V3=1;          F2=9.99;% selected by myself
E1=5*10^4;            E2=5.5*10^4;    K1=3*10^6;            K2=3*10^6;
deltaH1=-5*10^4;      deltaH2=-5.3*10^4;     Hvap=5;    CP=0.231;  R=8.314;    ROO=1000;
alphaA=2;  alphaB=1;  alphaC=1.5; alphaD=3;  MWA=50;    MWB=50;    MWC=50;     MWD=18;
Q1=3*10^5; Q2=3*10^5; Q3=3*10^5; 

XD=1-((MWA*f(10))/ROO)-((MWB*f(11))/ROO)-((MWC*f(12))/ROO);
K=((alphaA*f(10))*MWA/ROO)+((alphaB*f(11))*MWB/ROO)+((alphaC*f(12))*MWC/ROO)+(alphaD*XD*ROO);
CAr=(alphaA*f(10))/K;
CBr=(alphaB*f(11))/K;
CCr=(alphaC*f(12))/K;
Frm=(Fr/MWD)*(((ROO-f(10)*MWA-f(11)*MWB-f(12)*MWC)+(f(10)+f(11)+f(12))*MWD));

df = zeros (12,1);
df(1,1) = (F10/V1)*(T10-f(1))+(Fr/V1)*(f(9)-f(1))-(deltaH1/(ROO*CP))*K1*((exp(-E1/(R*f(1)))*f(2)))-((deltaH2/(ROO*CP))*K2*(exp(-E2/(R*f(1)))*f(2)))+(Q1/(ROO*CP*V1));
df(2,1) = (F10/V1)*(CA10-f(2))+(Fr/V1)*(CAr-f(2))-(K1*(exp(-E1/R*f(1)))*f(2))- K2*(exp(-E2/(R*f(1)))*f(2));
df(3,1) = (-F10/V1)*f(3)+(Fr/V1)*(CBr-f(3))+(K1*exp(-E1/(R*f(1)))*f(2));
df(4,1) = (-F10/V1)*f(4)+(Fr/V1)*(CCr-f(4))+(K2*exp(-E2/(R*f(1)))*f(2));
df(5,1) = (F1/V2)*(f(1)-f(5))+(F20/V2)*(T20-f(5))+((-deltaH1/(ROO*CP))*K1*(exp(-E1/R*f(5)))*f(6))+((-deltaH2/(ROO*CP))*K2*(exp(-E2/(R*f(5)))*f(6)))+(Q2/(ROO*CP*V2));
df(6,1) = (F1/V2)*(f(2)-f(6))+(F20/V2)*(CA20-f(6))-(K1*(exp(-E1/(R*f(5)))*f(6))-K2*(exp(-E2/R*f(5)))*f(6));
df(7,1) = (F1/V2)*(f(3)-f(7))-((F20/V2)*f(7))+(K1*exp(-E1/(R*f(5)))*f(6));
df(8,1) = (F1/V2)*(f(4)-f(8))-((F20/V2)*f(8))+(K2*(exp(-E2/R*f(5)))*f(6));
df(9,1) = (F2/V3)*(f(5)-f(9))-((Hvap*Frm)/(ROO*CP*V3))+(Q3/(ROO*CP*V3));
df(10,1) = (F2/V3)*(f(6)-f(10))-(Fr/V3)*(CAr-f(10));
df(11,1) = (F2/V3)*(f(7)-f(11))-(Fr/V3)*(CBr-f(11));
df(12,1) = (F2/V3)*(f(8)-f(12))-(Fr/V3)*(CCr-f(12));
end
پاسخ

خطای Not enough input arguments

#2
(۱۳۹۴/۱۲/۱۲, ۱۱:۴۸ ق.ظ)صفیان نوشته: سلام دوستان
من برای حل 12 تا معادله دیفرانسیل مرتبه 1 معمولی یک تابع نوشتم ،چندین بار هم تمام روابط را چک کردم منتها هر بارهمین اررور  را می دهد،از دوستان کسی می دونه مشکل از کدوم قسمتش می باشد؟ خیلی ممنون

function df = deriv(t,f,u)

T10=300;   T20=300;   F10=5;  F20=10;   Fr=1.9;    Fp=0;   F1=4.99;% selected by myself
CA10=4;    CA20=3;    V1=1;      V2=0.5;    V3=1;          F2=9.99;% selected by myself
E1=5*10^4;            E2=5.5*10^4;    K1=3*10^6;            K2=3*10^6;
deltaH1=-5*10^4;      deltaH2=-5.3*10^4;     Hvap=5;    CP=0.231;  R=8.314;    ROO=1000;
alphaA=2;  alphaB=1;  alphaC=1.5; alphaD=3;  MWA=50;    MWB=50;    MWC=50;     MWD=18;
Q1=3*10^5; Q2=3*10^5; Q3=3*10^5; 

XD=1-((MWA*f(10))/ROO)-((MWB*f(11))/ROO)-((MWC*f(12))/ROO);
K=((alphaA*f(10))*MWA/ROO)+((alphaB*f(11))*MWB/ROO)+((alphaC*f(12))*MWC/ROO)+(alphaD*XD*ROO);
CAr=(alphaA*f(10))/K;
CBr=(alphaB*f(11))/K;
CCr=(alphaC*f(12))/K;
Frm=(Fr/MWD)*(((ROO-f(10)*MWA-f(11)*MWB-f(12)*MWC)+(f(10)+f(11)+f(12))*MWD));

df = zeros (12,1);
df(1,1) = (F10/V1)*(T10-f(1))+(Fr/V1)*(f(9)-f(1))-(deltaH1/(ROO*CP))*K1*((exp(-E1/(R*f(1)))*f(2)))-((deltaH2/(ROO*CP))*K2*(exp(-E2/(R*f(1)))*f(2)))+(Q1/(ROO*CP*V1));
df(2,1) = (F10/V1)*(CA10-f(2))+(Fr/V1)*(CAr-f(2))-(K1*(exp(-E1/R*f(1)))*f(2))- K2*(exp(-E2/(R*f(1)))*f(2));
df(3,1) = (-F10/V1)*f(3)+(Fr/V1)*(CBr-f(3))+(K1*exp(-E1/(R*f(1)))*f(2));
df(4,1) = (-F10/V1)*f(4)+(Fr/V1)*(CCr-f(4))+(K2*exp(-E2/(R*f(1)))*f(2));
df(5,1) = (F1/V2)*(f(1)-f(5))+(F20/V2)*(T20-f(5))+((-deltaH1/(ROO*CP))*K1*(exp(-E1/R*f(5)))*f(6))+((-deltaH2/(ROO*CP))*K2*(exp(-E2/(R*f(5)))*f(6)))+(Q2/(ROO*CP*V2));
df(6,1) = (F1/V2)*(f(2)-f(6))+(F20/V2)*(CA20-f(6))-(K1*(exp(-E1/(R*f(5)))*f(6))-K2*(exp(-E2/R*f(5)))*f(6));
df(7,1) = (F1/V2)*(f(3)-f(7))-((F20/V2)*f(7))+(K1*exp(-E1/(R*f(5)))*f(6));
df(8,1) = (F1/V2)*(f(4)-f(8))-((F20/V2)*f(8))+(K2*(exp(-E2/R*f(5)))*f(6));
df(9,1) = (F2/V3)*(f(5)-f(9))-((Hvap*Frm)/(ROO*CP*V3))+(Q3/(ROO*CP*V3));
df(10,1) = (F2/V3)*(f(6)-f(10))-(Fr/V3)*(CAr-f(10));
df(11,1) = (F2/V3)*(f(7)-f(11))-(Fr/V3)*(CBr-f(11));
df(12,1) = (F2/V3)*(f(8)-f(12))-(Fr/V3)*(CCr-f(12));
end
سلام
دوست عزیز شما در داده ها f را تعریف نکردید بعد در قسمت xd استفاده کردید. به همین علت این اخطار رو بهتون میده با تعیین مقدار برای f مشکل حل میشه. پیشنهاد می کنم ابتدای هر برنامه دستور clear all,clc رو قرار بدید و کمی مرتب بنویسید تا به راحتی مشکل برنامه رو پیدا کنید.
موفق باشید
کد پی‌اچ‌پی:
function df gghghhggh(~,f,~)
T10=300  T20=300  F10=5 F20=10  Fr=1.9   Fp=0  F1=4.99;% selected by myself
CA10
=4   CA20=3   V1=1     V2=0.5   V3=1         F2=9.99;% selected by myself
E1
=5*10^4           E2=5.5*10^4   K1=3*10^6           K2=3*10^6;
deltaH1=-5*10^4     deltaH2=-5.3*10^4    Hvap=5   CP=0.231 R=8.314   ROO=1000;
alphaA=2 alphaB=1 alphaC=1.5alphaD=3 MWA=50   MWB=50   MWC=50    MWD=18;
Q1=3*10^5Q2=3*10^5Q3=3*10^5;f(10)=1;f(11)=2;f(12)=1

XD=1-((MWA*f(10))/ROO)-((MWB*f(11))/ROO)-((MWC*f(12))/ROO);
K=((alphaA*f(10))*MWA/ROO)+((alphaB*f(11))*MWB/ROO)+((alphaC*f(12))*MWC/ROO)+(alphaD*XD*ROO);
CAr=(alphaA*f(10))/K;
CBr=(alphaB*f(11))/K;
CCr=(alphaC*f(12))/K;
Frm=(Fr/MWD)*(((ROO-f(10)*MWA-f(11)*MWB-f(12)*MWC)+(f(10)+f(11)+f(12))*MWD));

df zeros (12,1);
df(1,1) = (F10/V1)*(T10-f(1))+(Fr/V1)*(f(9)-f(1))-(deltaH1/(ROO*CP))*K1*((exp(-E1/(R*f(1)))*f(2)))-((deltaH2/(ROO*CP))*K2*(exp(-E2/(R*f(1)))*f(2)))+(Q1/(ROO*CP*V1));
df(2,1) = (F10/V1)*(CA10-f(2))+(Fr/V1)*(CAr-f(2))-(K1*(exp(-E1/R*f(1)))*f(2))- K2*(exp(-E2/(R*f(1)))*f(2));
df(3,1) = (-F10/V1)*f(3)+(Fr/V1)*(CBr-f(3))+(K1*exp(-E1/(R*f(1)))*f(2));
df(4,1) = (-F10/V1)*f(4)+(Fr/V1)*(CCr-f(4))+(K2*exp(-E2/(R*f(1)))*f(2));
df(5,1) = (F1/V2)*(f(1)-f(5))+(F20/V2)*(T20-f(5))+((-deltaH1/(ROO*CP))*K1*(exp(-E1/R*f(5)))*f(6))+((-deltaH2/(ROO*CP))*K2*(exp(-E2/(R*f(5)))*f(6)))+(Q2/(ROO*CP*V2));
df(6,1) = (F1/V2)*(f(2)-f(6))+(F20/V2)*(CA20-f(6))-(K1*(exp(-E1/(R*f(5)))*f(6))-K2*(exp(-E2/R*f(5)))*f(6));
df(7,1) = (F1/V2)*(f(3)-f(7))-((F20/V2)*f(7))+(K1*exp(-E1/(R*f(5)))*f(6));
df(8,1) = (F1/V2)*(f(4)-f(8))-((F20/V2)*f(8))+(K2*(exp(-E2/R*f(5)))*f(6));
df(9,1) = (F2/V3)*(f(5)-f(9))-((Hvap*Frm)/(ROO*CP*V3))+(Q3/(ROO*CP*V3));
df(10,1) = (F2/V3)*(f(6)-f(10))-(Fr/V3)*(CAr-f(10));
df(11,1) = (F2/V3)*(f(7)-f(11))-(Fr/V3)*(CBr-f(11));
df(12,1) = (F2/V3)*(f(8)-f(12))-(Fr/V3)*(CCr-f(12));
end 
rezavalizadeh95@gmail.com
پاسخ
 سپاس شده توسط صفیان

خطای Not enough input arguments

#3
سلام
خیلی ممنون از وقتی که گذاشتید و راهنمایی فرمودید،منتها نمیدونم مقادیر f(10)=1;f(11)=2;f(12)=1; را بر چه اساسی این مقادیر قرار دادید،چون مقادیر (f(10);f(11);f(12 می بایستی از حل معادلات 10 و 11 و 12 بدست بیابد،و مشکل بعدی ایجاد شده این بود که حتی با قرار دادن همین مقادیری که شما فرمودید و اجرای دستور ode45 به صورت ([f]=ode45(@deriv,[-18 18],[370;3.32;0.17;0.04;435;2.75;0.45;0.11;435;2.88;0.50;0.12,~] خطای Maximum recursion limit of 500 reached اتفاق می افتد که نمیدونم چطور برطرفش کنم... Sad
پاسخ

خطای Not enough input arguments

#4
(۱۳۹۴/۱۲/۱۴, ۰۱:۳۴ ب.ظ)صفیان نوشته: سلام
خیلی ممنون از وقتی که گذاشتید و راهنمایی فرمودید،منتها نمیدونم مقادیر f(10)=1;f(11)=2;f(12)=1; را بر چه اساسی این مقادیر قرار دادید،چون مقادیر (f(10);f(11);f(12 می بایستی از حل معادلات 10 و 11 و 12 بدست بیابد،و مشکل بعدی ایجاد شده این بود که حتی با قرار دادن همین مقادیری که شما فرمودید و اجرای دستور ode45 به صورت  ([f]=ode45(@deriv,[-18 18],[370;3.32;0.17;0.04;435;2.75;0.45;0.11;435;2.88;0.50;0.12,~] خطای  Maximum recursion limit of 500 reached اتفاق می افتد که نمیدونم چطور برطرفش کنم... Sad

سلام 
خواهش می کنم
اون مقادیر  فرضی هستند یعنی یک عدد گذاشتم تا ایرادش رفع بشه.لطفا فایل برنامه ایی که نوشتید رو ارسال کنید. چیزی که اینجا هست متاسفانه بهم ریختس.
موفق باشید
rezavalizadeh95@gmail.com
پاسخ
 سپاس شده توسط شماره مجازی امارات ، تلگرام ضد فیلتر 2023


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان