我正在用MATLAB用节点法模拟管内换热器的流动。我需要用微分方程填充一个矩阵,以求出每个点的焓。我已经将管道分成多个部分,每个部分有3个节点。1个节点用于内部流体,1个节点用于外部流体,1个节点用于管道。然而,由于存在逆流的事实,我需要以一种外部流体与内部流体反向计数的方式填充矩阵。例如,如果我有9个节点,我的列向量将是Eq1Eq2Eq9Eq4Eq5 Eq6 Eq7Eq8Eq3。我的代码似乎可以工作,但它没有为向量的第三个位置输入任何内容。提前感谢您的帮助。
NXP = 5; %Number of Divisions
HX = zeros(NXP,1);
cntr=2; %To see which number equation is being input
for j=1:NXP
if j==1
HX(1+(j-1)*3,1) = 125; %Boundary Condition
else
HX(1+(j-1)*3,1) = cntr;
cntr = cntr+1;
end
HX(2+(j-1)*3,1) = cntr;
cntr = cntr+1;
if j==NXP
HX(3+(j-1)*3,1) = 40; %Boundary Condition
else
HX(3*NXP-3*(j-1),1) = cntr;
cntr = cntr+1;
end
end
'''发布于 2021-03-04 18:40:40
我对您的尝试做了一些更改,最明显的是将边界条件移到了循环之外,但它现在返回了我猜您正在寻找的结果:
NXP = 5;
HX = zeros(3*NXP, 1);
for j = 1:NXP
idx = (j - 1)*3;
HX(idx + 1, 1) = idx + 1;
HX(idx + 2, 1) = idx + 2;
HX(length(HX) - idx, 1) = idx + 3;
end
% Boundary conditions
HX(1) = 125;
HX(end) = 40;编辑:
更好的是,只需将数组初始化为
HX = (1:3*NXP)';然后只需更改第3个节点的顺序
HX(3:3:length(HX)) = flipud(HX(3:3:length(HX)));最后设置你的边界条件
HX(1) = 125;
HX(end) = 40;https://stackoverflow.com/questions/66462760
复制相似问题