【发布时间】:2015-10-14 22:30:42
【问题描述】:
我正在尝试求解一个由 10 个线性方程组成的系统,其中中间的 8 个方程看起来很相似。它们看起来像这样:
t_i-1 - 2.3086*(t_i) + t_i+1 == -7.7160
其中 i = 2:9
所以我决定通过循环构造方程组的系数矩阵和常数矩阵(数组)。这就是我所做的。
T = sym('t' , [1 10]); %% Creates a vector T = [ t1 t2 .... t10]
A_10 = zeros(10,10);
b_10 = zeros(10,1);
for i = 2:9 %% This loop generates the equations and arranges them in the matrices A_10 and B_10.
T(i-1) - 2.3086*T(i) + T(i+1) == -7.7160;
[A_10(i,i-1:i+1),b_10(i,1)] = equationsToMatrix(ans)
end
矩阵 A_10 中除了第九行(最后一个)之外的所有内容都是正确的。这就是 A_10 的样子
A_10 =
第 1 到 9 列
0 0 0 0 0 0 0 0 0
1.0000 -2.3086 1.0000 0 0 0 0 0 0
0 1.0000 -2.3086 1.0000 0 0 0 0 0
0 0 1.0000 -2.3086 1.0000 0 0 0 0
0 0 0 1.0000 -2.3086 1.0000 0 0 0
0 0 0 0 1.0000 -2.3086 1.0000 0 0
0 0 0 0 0 1.0000 -2.3086 1.0000 0
0 0 0 0 0 0 1.0000 -2.3086 1.0000
0 0 0 0 0 0 0 1.0000 1.0000
0 0 0 0 0 0 0 0 0
第 10 栏
0
0
0
0
0
0
0
0
-2.3086
0
第九行的最后三个元素应该是 1 , -2.3086 , 1 与前几行一样,但它显示 1, 1, -2.3086。我在这里做错了什么?
这就是循环中迭代的样子
ans = t8 - (11543*t9)/5000 + t10 == -1929/250
等式也是正确的。我无法弄清楚问题是什么。
【问题讨论】:
标签: matlab matrix matrix-indexing