vpasolve(...) 和 solve(...) 调试(符号求解四阶多项式函数的实根。)

问题描述 投票:0回答:0

(据我了解)

我正在尝试使用 matlab 在等式右侧的一组不同的独立值处求解四阶多项式的根(如果您熟悉,NASA 多项式的焓 T)。

我正在做(简化版!)的热力学项目:针对一系列不同的进气温度找到锅炉的绝热火焰温度并考虑可变比热。

对于这个特定的代码迭代,错误是:

"Unable to perform assignment because the indices on the left side are not
compatible with the size of the right side.

Error in sym/privsubsasgn (line 1307)
            L_tilde2 = builtin('subsasgn',L_tilde,struct('type','()','subs',{varargin}),R_tilde);

Error in indexing (line 1138)
            C = privsubsasgn(L,R,inds{:});

Error in MCHE362_FinalProject_Pr2D_William_Rhinehart (line 39)
    Tab(i) = vpa(T2);"
 

我用的是Matlab r2022a学生版。


clear
clc
syms tab2

Ti = (298:25:873);


%low temperature coefficients 

A_CO2l = [2.35677352e+00  8.98459677e-03 -7.12356269e-06  2.45919022e-09 -1.43699548e-13 -4.83719697E+04  9.90105222e+00];
A_H2Ol = [4.19864056e+00 -2.03643410e-03  6.52040211e-06 -5.48797062e-09  1.77197817e-12 -3.02937267e+04 -8.49032208e-01];
A_N2l  = [0.02926640E+02  0.14879768E-02 -0.05684760E-05  0.10097038E-09 -0.06753351E-13 -0.09227977E+04  0.05980528E+02];

%high temperature coefficients

A_CO2h = [3.85746029e+00 4.41437026e-03 -2.21481404e-06  5.23490188e-10 -4.72084164e-14 -4.87591660e+04 2.27163806e+00];
A_H2Oh = [3.03399249e+00 2.17691804e-03 -1.64072518e-07 -9.70419870e-11  1.68200992e-14 -3.00042971e+04 4.96677010e+00];
A_N2h  = [0.02926640e+02 0.14879768e-02 -0.05684760e-05  0.10097038e-09 -0.06753351e-13 -0.09227977e+04 0.05980528e+02];

hfCO2 = -393520 ;
hfH2O = -241820 ;
hfN2 = 0 ; 
hfCH4 = -74850;

RCO2 = 0.1889; % W
RH2O = 0.4615; % X
RN2 = 0.2968;  % Y

for i = 1:length(Ti)

    EQ = (      1*(hfCO2+(RCO2*tab2*(A_CO2h(1) + A_CO2h(2)*tab2/2 +A_CO2h(3)*(tab2^2)/3 + A_CO2h(4)*(tab2^3)/4 + A_CO2h(5)*(tab2^4)/5 + A_CO2h(6)/tab2))-(RCO2*Ti(i)*(A_CO2l(1) + A_CO2l(2)*Ti(i)/2 +A_CO2l(3)*(Ti(i)^2)/3 + A_CO2l(4)*(Ti(i)^3)/4 + A_CO2l(5)*(Ti(i)^4)/5 + A_CO2l(6)/Ti(i))))...
          +     2*(hfH2O+(RH2O*tab2*(A_H2Oh(1) + A_H2Oh(2)*tab2/2 +A_H2Oh(3)*(tab2^2)/3 + A_H2Oh(4)*(tab2^3)/4 + A_H2Oh(5)*(tab2^4)/5 + A_H2Oh(6)/tab2)-(RH2O*Ti(i)*(A_H2Ol(1) + A_H2Ol(2)*Ti(i)/2 +A_H2Ol(3)*(Ti(i)^2)/3 + A_H2Ol(4)*(Ti(i)^3)/4 + A_H2Ol(5)*(Ti(i)^4)/5 + A_H2Ol(6)/Ti(i))))...
          +  7.52*(RN2*tab2*(A_N2h(1) + A_N2h(2)*tab2/2 +A_N2h(3)*(tab2^2)/3 + A_N2h(4)*(tab2^3)/4 + A_N2h(5)*(tab2^4)/5 + A_N2h(6)/tab2)-(RN2*Ti(i)*(A_N2l(1) + A_N2l(2)*Ti(i)/2 +A_N2l(3)*(Ti(i)^2)/3 + A_N2l(4)*(Ti(i)^3)/4 + A_N2l(5)*(Ti(i)^4)/5 + A_N2l(6)/Ti(i)))))...
          -  hfCH4 ...
          == 0   );

    T2 = solve(EQ,tab2);

    Tab(i) = vpa(T2);
    
    
end



matlab debugging numerical-methods symbolic-math
© www.soinside.com 2019 - 2024. All rights reserved.