2017-01-28 10 views
0

逆行列を使って線形方程式の系を解くことを試みていますが、私が最後にBを逆行列に乗算しようとしているところに問題があります。私が間違ってやっていることに関するアドバイス?Ax = bをメイプルの逆行列を使用して解く

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

前のポスターは、中括弧は、あなたのコードを修正します削除、示唆するように、しかし、それはまた、あなたがメープル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コマンド戻り係数行列並びに右辺ベクトルの両方です。また、の出力をコマンドでオペレータを使用して抑制しました。

0

中かっこはBから削除してください。

B := `<|>`(`<,>`(1, .6, .7, .5, .8, .9)); 
evalm(inverse(Z)&*B); 

enter image description here

関連する問題