(۱۳۹۴/۱۲/۱۲, ۱۱:۴۸ ق.ظ)صفیان نوشته: سلام دوستانسلام
من برای حل 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.5; alphaD=3; MWA=50; MWB=50; MWC=50; MWD=18;
Q1=3*10^5; Q2=3*10^5; Q3=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