我正在尝试计算绝热火焰温度。我有这个脚本,我试图获得T值,我该如何使它工作?或者有更好的方法吗?
HRxn=((4*-393.5)+(5*-241.83)-(-124.73))*1000; %dH reaction
C=(240.2*298)+(1.51*298^2)-(9.2e-5*298^3)+(1.25e-8*298^4);%298 evaluated
X=(240.2*T)+(1.51*T.^2)-(9.2e-5*T.^3)+(1.25e-8*T.^4);
S=solve(HRxn+(X-C)==0,T)
谢谢!
答案 0 :(得分:1)
那么,基本上,你想要求解四次多项式?然后使用roots
:
HRxn = 1e3 * ((4*-393.5) + (5*-241.83) + 124.73);
coefficients = [1.25e-8 -9.2e-5 1.51 240.2];
constant = HRxn - coefficients * 298.^(4:-1:1).';
quartic = [coefficients constant];
R = roots(quartic);
flame_temperature = R(imag(R)==0 & R > 0);
答案 1 :(得分:0)
添加
syms T
在您的代码行之前,因为您之前没有定义它。然后通过
显示您的解决方案disp(S)
答案 2 :(得分:-1)
我认为你应该提供更多关于你想做什么的信息,
HRxn=((4*-393.5)+(5*-241.83)-(-124.73))*1000; %dH reaction
C=(240.2*298)+(1.51*298^2)-(9.2e-5*298^3)+(1.25e-8*298^4);%298 evaluated
X=(240.2*T)+(1.51*T.^2)-(9.2e-5*T.^3)+(1.25e-8*T.^4);
S=solve(HRxn+(X-C)==0,T)
第一行和第二行是const。我没有看到方程的一个点。
HRxn = -2658420
C = 2.033375664162000e+05
所以你想做的是
F(T)=-2658420+(240.2*T)+(1.51*T.^2)-(9.2e-5*T.^3)+(1.25e-*T.^4)-.033375664162000e+05; %this is HRxn+(X-C)
syms T;
S=solve(F,T);
对我来说没有意义,你只有一个变量" T"。你想用什么来解决。
F(T) =(944473296573929*T^4)/75557863725914323419136 - (6788401819125115*T^3)/73786976294838206464 + (151*T^2)/100 + (1201*T)/5 - 98329241254705015/34359738368
这就是你得到的。
除非你正在寻找公平的根源。然后你需要coeff。 F(T)。
p=[-8 -5 1.51 240.2 -2.861800000091987e+06 ]; %coeff from T^4...T^0
r = roots(p);
r =-17.4518 +17.3032i
-17.4518 -17.3032i
17.1393 +17.2782i
17.1393 -17.2782i
我希望这就是你所需要的,我本可以用数字犯错,但我认为你明白这一点。