我不知道如何使这个方程工作!请。 MATLAB

时间:2016-12-22 11:01:02

标签: matlab temperature

我正在尝试计算绝热火焰温度。我有这个脚本,我试图获得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)

谢谢!

3 个答案:

答案 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

我希望这就是你所需要的,我本可以用数字犯错,但我认为你明白这一点。