【发布时间】: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