首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建反相流的方程式矩阵

创建反相流的方程式矩阵
EN

Stack Overflow用户
提问于 2021-03-04 02:23:15
回答 1查看 31关注 0票数 0

我正在用MATLAB用节点法模拟管内换热器的流动。我需要用微分方程填充一个矩阵,以求出每个点的焓。我已经将管道分成多个部分,每个部分有3个节点。1个节点用于内部流体,1个节点用于外部流体,1个节点用于管道。然而,由于存在逆流的事实,我需要以一种外部流体与内部流体反向计数的方式填充矩阵。例如,如果我有9个节点,我的列向量将是Eq1Eq2Eq9Eq4Eq5 Eq6 Eq7Eq8Eq3。我的代码似乎可以工作,但它没有为向量的第三个位置输入任何内容。提前感谢您的帮助。

代码语言:javascript
复制
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
'''
EN

回答 1

Stack Overflow用户

发布于 2021-03-04 18:40:40

我对您的尝试做了一些更改,最明显的是将边界条件移到了循环之外,但它现在返回了我猜您正在寻找的结果:

代码语言:javascript
复制
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;

编辑:

更好的是,只需将数组初始化为

代码语言:javascript
复制
HX = (1:3*NXP)';

然后只需更改第3个节点的顺序

代码语言:javascript
复制
HX(3:3:length(HX)) = flipud(HX(3:3:length(HX)));

最后设置你的边界条件

代码语言:javascript
复制
HX(1) = 125;
HX(end) = 40;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66462760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档