【问题标题】:matlab symbolic array sorting problem with equationsToMatrix functionmatlab符号数组排序问题与 equationsToMatrix 函数
【发布时间】:2020-10-22 04:52:23
【问题描述】:

我正在尝试获取二维板的温度分布。首先我按顺序创建一个符号 T 矩阵:

T = sym('T',[n,n],'positive');

然后使用2公式(有限差分法): 加热侧

eqn(s,1) = (2*T(i+1,j))-P+(T(i,j+1))+(T(i,j-1))-(4*T(i,j))

对于内部点

eqn(s,1) = (T(i,j-1)+T(i,j+1)+T(i-1,j)+T(i+1,j)-(4*T(i,j)))

我将这些符号方程存储在列矩阵中。然后使用 'equationsToMatrix' 函数,我获得系统的 A 和 b 矩阵,然后使用高斯消元法求解。问题是符号 T 矩阵。它的元素是这样的:

   T =
 
[ T1_1, T1_2, T1_3]
[ T2_1, T2_2, T2_3]
[ T3_1, T3_2, T3_3]

它在 10x10 系统下运行良好。但是在 10 以上,假设是 11x11 系统,从 equationsToMatrix 函数获得的 A 矩阵中出现位错。如我所见,原因是因为 T11_1 出现在 T1_1 之前,或者类似的东西我想不出来。然后函数 equationsToMatrix 按名称对矩阵进行排序,这种排序是不正确的。我需要帮助来解决这个问题

【问题讨论】:

    标签: matlab matrix linear-algebra algebra


    【解决方案1】:

    根据 https://www.mathworks.com/help/symbolic/equationstomatrix.html

    您可以通过指定其他变量顺序来改变系数矩阵的排列方式。

    vars = [x, z, y];
    [A,b] = equationsToMatrix(eqns,vars)

    也许您可以在生成矩阵时使用第二个参数来指定变量的顺序?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多