why do i keep getting this error "Error using + Matrix dimensions must agree" ?
古いコメントを表示
Please assist:
When i try running the following i keep getting the above error:
%initial conditions
y0=[19.125;19.125;114.75;51;51;1;2;1;55;50;0.5;3.187;3.187;19.125;8.5;8.5;1;2;1;55;50;0.5;1.594;1.594;9.5625;4.25;4.25;1;2;1;55;50;0.5;1.594;1.594;9.5625;4.25;4.25;1;2;1;55;50;0.5;6.375;6.375;38.250;17;17;1;2;1;55;50;0.5];
t0=0;
tEnd=282;
h=0.0006944444;
N=ceil((tEnd-t0)/h);
%initilising solution
T=t0:h:tEnd;
Y=zeros(55,N+1);
Y(:,1)=y0;
%boundaries
for i=1:N
T(i+1)=T(i)+h;
Y(Y<0)=0;
y11=Y(11);
y11(y11>8.5)=8.5;
%update y
yi=Y(:,i);
a1=UASBFun(T(i), yi);
a2=UASBFun(T(i)+0.5*h, yi+0.5*a1*h);
a3=UASBFun(T(i)+0.5*h, yi+0.5*a2*h);
a4=UASBFun(T(i)+ h, yi+ a3*h);
yNew=yi+(h/6)*(a1+2*a2+2*a3+a4);
Y(:,i+1)=yNew;
end
%plotting
yEnd=Y(:,end);
plot(T,Y(50,:),'-r'); hold on
plot(T,Y(51,:),'-g'); hold on
plot(T,Y(52,:),'--r'); hold on
plot(T,Y(53,:),'-k'); hold on
plot(T,Y(54,:),'-b'); hold on
plot(T,Y(55,:),'--g'); hold off
xlabel('Time (days)'); ylabel('Concentration (g/m^3)');
Function:
function fval=UASBFun(~,y)
%Define variables
Xaoba=y(1); Xaobb=y(12); Xaobc=y(23); Xaobd=y(34); Xaobe=y(45);
Xnoba=y(2); Xnobb=y(13); Xnobc=y(24); Xnobd=y(35); Xnobe=y(46);
Xamxa=y(3); Xamxb=y(14); Xamxc=y(25); Xamxd=y(36); Xamxe=y(47);
Xhana=y(4); Xhanb=y(15); Xhanc=y(26); Xhand=y(37); Xhane=y(48);
Xhaera=y(5); Xhaerb=y(16); Xhaerc=y(27); Xhaerd=y(38); Xhaere=y(49);
Xsa=y(6); Xsb=y(17); Xsc=y(28); Xsd=y(39); Xse=y(50);
Ssea=y(7); Sseb=y(18); Ssec=y(29); Ssed=y(40); Ssee=y(51);
Sno3a=y(8); Sno3b=y(19); Sno3c=y(30); Sno3d=y(41); Sno3e=y(52);
Sno2a=y(9); Sno2b=y(20); Sno2c=y(31); Sno2d=y(42); Sno2e=y(53);
Snh4a=y(10); Snh4b=y(21); Snh4c=y(32); Snh4d=y(43); Snh4e=y(54);
So2a=y(11); So2b=y(22); So2c=y(33); So2d=y(44); So2e=y(55);
The functions for each variable are long though hence i stop at this.
PLease someone assist here please.....
2 件のコメント
Geoff Hayes
2019 年 2 月 24 日
Kosgey - which line of code is throwing the error message? I can't run the above because of errors with your UASBFun function (not sure what you are attempting there).
Anyway, the error message is telling you that you are trying to add two matrices together that have different dimensions...
Kosgey Kip
2019 年 2 月 25 日
採用された回答
その他の回答 (0 件)
カテゴリ
ヘルプ センター および File Exchange で Environment and Settings についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!