我正在尝试使用逆矩阵求解线性方程组,但是我的最后一个命令出现了问题,我试图将逆矩阵乘以B.任何人都可以提出关于我做错的建议吗?< / p>
restart; with(linalg):
sys := {a+.9*h+.8*c+.4*d+.1*e+0*f = 1, .1*a+.2*h+.4*c+.6*d+.5*e+.6*f = .6, .4*a+.5*h+.7*c+d+.6*e+.3*f = .7, .6*a+.1*h+.2*c+.3*d+.5*e+f = .5, .8*a+.8*h+c+.7*d+.4*e+.2*f = .8, .9*a+h+.8*c+.5*d+.2*e+.1*f = .9}:
solve(sys, {a, c, d, e, f, h});
{a = 0.08191850594, c = 0.7504244482, d = 3.510186757,
e = -6.474108659, f = 2.533531409, h = -0.4876910017}
Z := genmatrix(sys, [a, h, c, d, e, f], 'b');
evalm(b);
linsolve(Z, b);
inverse(Z);
B := {`<|>`(`<,>`(1, .6, .7, .5, .8, .9))};
evalm(inverse(Z)&*B);
在可能的情况下,响应在每行下面缩进。我没有足够的点来将图片放入矩阵结果中,所以它们一直是空白的。
答案 0 :(得分:0)
答案 1 :(得分:0)
正如之前的海报所示,删除花括号将修复您的代码,但是,如果您使用的是Maple 6或更新版本的副本,那么 linalg 包也可能值得注意已被新LinearAlgebra包弃用。 以下是使用LinearAlgebra包的等效代码:
with(LinearAlgebra):
sys := [a+.9*h+.8*c+.4*d+.1*e+0*f = 1, .1*a+.2*h+.4*c+.6*d+.5*e+.6*f = .6, .4*a+.5*h+.7*c+d+.6*e+.3*f = .7, .6*a+.1*h+.2*c+.3*d+.5*e+f = .5, .8*a+.8*h+c+.7*d+.4*e+.2*f = .8, .9*a+h+.8*c+.5*d+.2*e+.1*f = .9];
solve(sys, {a, c, d, e, f, h});
Z,b := GenerateMatrix(sys, [a, h, c, d, e, f]);
LinearSolve( Z, b );
MatrixInverse( Z );
MatrixInverse( Z ) . b;
一个小的区别是,GenerateMatrix命令返回系数矩阵以及右侧Vector。另请注意,我使用:运算符抑制了 with 命令的输出。