2016-09-26 76 views
0

如何解决矩阵方程我有一个程序,做一些工作,以获得矩阵w,这是3(n+1)3(n+1)。我有一个向量fbar3(n+1)1。我想得到矩阵,当w乘以它时,给出fbar如何解决在枫树

在数学表示法中,w * A = fbar。我有wfbar,我想要A

我试图用这个命令来解决这个问题:

fsolve({seq(multiply(w, A)[i, 1] = fbar[i, 1], i = 1 .. 3*(n+1))})  

,但我不明白的响应枫给:

fsolve({2.025881905 A1[2,1]+7.814009150 A1[3,1]+... 

-7.071067816 10^(-13) A1[3,1]-0.0004999999990 

A1[4,1]-0.0007071067294 A1[5,1]-0.0004999999990 A1[6,1]) 

A3[6,1]=0},{A1[1,1],A1[2,1],A1[3,1],A1[4,1],A1[5,1],A1[6,1],A\ 

2[1,1],A2[2,1],A2[3,1],A2[4,1],A2[5,1],A2[6,1],A3[1,1],A3[2,1]\ 

,A3[3,1],A3[4,1],A3[5,1],A3[6,1]}) 

这是什么意思,我怎么能获得更有意义的答案

+0

你需要先格式化你的代码 – sashoalm

+0

你是什么意思?我写了它。及其结果。如果你的意思是这样的话,我的程序在这里写得更长。但如果它的重要性,请告诉我 –

+0

我的意思是这个 - http://meta.stackexchange.com/questions/22186/how-do-i-format-my-code-blocks。但安德鲁皮尔塞已经为你格式化了它。 – sashoalm

回答

0

如果将wfbar分别定义为矩阵和向量,则可以直接使用LinearSolve函数从LinearAlgebra包执行此操作。下面的代码是一个可重复的例子。请注意,LinearSolve的解决方案应该等于x

w := Matrix(<<1,2,3>|<4,5,6>|<7,8,10>>); 
LinearAlgebra[ReducedRowEchelonForm](%); ## Full rank => 1 solution) 
x := <1,2,3>; 
fbar := w.x; 


## Solve the equation w.x = fbar 
LinearAlgebra[LinearSolve](w,fbar); 
+0

谢谢。但是当我使用上面写的命令时,我收到此错误: 错误,(在LinearAlgebra:-LinearSolve中)不一致的系统 –

+0

为什么我发现这个错误,你知道吗? –