如何修复错误和while循环吗?

3 Ansichten(30天)的
凯瑟琳”class=
凯瑟琳 3月21日。2023年
Bearbeitet: Stephen23 3月21日。2023年
我致力于创建一个代码来计算所需的催化剂重量达到60%转换和绘制X, y, f和反应速率的函数催化剂重量。我一直得到如下所示的错误。我如何解决这个问题?谢谢你!
k = 0.00392;%摩尔/ (atm kgcat sec)
FA0 = 0.1362;%摩尔/秒
FB0 = 0.068;%摩尔/秒
P0 = 10;% atm
α= 0.0367;%公斤
X_upper = 1;对X %上界
X_lower = 0;对X %下界
ε= 0.4;%给定的常数
转换= 0.6;%想要转换
公差= 1 e-6;%对二分法
函数res = ethylene_oxide_residual (X)
y = P0 / (P0 * 0.5 * (1 - X) ^(2/3) *(1 +ε* X));
r = k * FA0 ^ (1/3) * (y /(1 +ε* X)) ^ 2/3 * (1 - X);
conversion_calculated = (1 - X) / FA0;
res = conversion_calculated -转换;
结束
(X_upper - X_lower) >宽容
函数定义在脚本中必须出现在文件的末尾。
“ethylene_oxide_residual”后将所有报表函数定义在第一个本地函数定义。
X_guess = (X_upper + X_lower) / 2;
如果ethylene_oxide_residual (X_guess) > 0
X_upper = X_guess;
其他的
X_lower = X_guess;
结束
结束
catalyst_weight =α* X_guess;
流(必要的催化剂重量为60% %转换:%。2 f公斤\ n”,catalyst_weight);
catalyst_weights = linspace(0,α,100);
X_values = 0(大小(catalyst_weights));
y_values = 0(大小(catalyst_weights));
f_values = 0(大小(catalyst_weights));
reaction_rates = 0(大小(catalyst_weights));
i = 1:长度(catalyst_weights)
X = catalyst_weights (i) /α;
y = P0 / (P0 * 0.5 * (1 - X) ^(2/3) *(1 +ε* X));
f =(1 +ε* X) / y;
r = k * FA0 ^ (1/3) * (y /(1 +ε* X)) ^ 2/3 * (1 - X);
X_values (i) = X;
y_values (i) = y;
f_values (i) = f;
reaction_rates (i) = r;
结束
我们可以使用下面的代码然后情节这些值。
次要情节(2 2 1);
情节(catalyst_weights X_values);
包含(的催化剂重量(公斤));
ylabel (的转换(X));
次要情节(2,2,2);
情节(catalyst_weights y_values);

Antworten (1)

Stephen23”class=
Stephen23 3月21日。2023年
Bearbeitet:Stephen23 3月21日。2023年
“我一直得到如下所示的错误。我如何解决这个问题?”
通过做什么错误消息告诉你:移动脚本代码在函数定义:
k = 0.00392;%摩尔/ (atm kgcat sec)
FA0 = 0.1362;%摩尔/秒
FB0 = 0.068;%摩尔/秒
P0 = 10;% atm
α= 0.0367;%公斤
X_upper = 1;对X %上界
X_lower = 0;对X %下界
ε= 0.4;%给定的常数
转换= 0.6;%想要转换
公差= 1 e-6;%对二分法
(X_upper - X_lower) >宽容
X_guess = (X_upper + X_lower) / 2;
如果ethylene_oxide_residual (X_guess P0,ε,k, FA0,转换)> 0
X_upper = X_guess;
其他的
X_lower = X_guess;
结束
结束
catalyst_weight =α* X_guess;
流(必要的催化剂重量为60% %转换:%。2 f公斤\ n”,catalyst_weight);
催化剂所需重量60%转换:0.00公斤
catalyst_weights = linspace(0,α,100);
X_values = 0(大小(catalyst_weights));
y_values = 0(大小(catalyst_weights));
f_values = 0(大小(catalyst_weights));
reaction_rates = 0(大小(catalyst_weights));
i = 1:长度(catalyst_weights)
X = catalyst_weights (i) /α;
y = P0 / (P0 * 0.5 * (1 - X) ^(2/3) *(1 +ε* X));
f =(1 +ε* X) / y;
r = k * FA0 ^ (1/3) * (y /(1 +ε* X)) ^ 2/3 * (1 - X);
X_values (i) = X;
y_values (i) = y;
f_values (i) = f;
reaction_rates (i) = r;
结束
次要情节(2 2 1);
情节(catalyst_weights X_values);
包含(的催化剂重量(公斤));
ylabel (的转换(X));
次要情节(2,2,2);
情节(catalyst_weights y_values);
%的函数,最后:
函数res = ethylene_oxide_residual (X, P0,ε,k, FA0,转换)
y = P0 / (P0 * 0.5 * (1 - X) ^(2/3) *(1 +ε* X));
r = k * FA0 ^ (1/3) * (y /(1 +ε* X)) ^ 2/3 * (1 - X);
conversion_calculated = (1 - X) / FA0;
res = conversion_calculated -转换;
结束

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的