做矩阵分块解析运算(证明也解决了,软件是不存在的,更新在3页)
本帖最后由 orionsnow 于 2011-1-12 19:55 编辑有什么软件可以做矩阵分块运算的?
mathematica 不行
maple?
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Dear Sean,
Thank you very much for the information.
the infor you gaved me is matrix decomposition.
but the one i want to use is block wise matrix decomposition.
maybe i am not make my question not clear
in detail.
here i have a big matrix E, which have 4 blocks
[A,B
C,D]
latex code
E = $\displaystyle \left[\begin{array}{cc} A & B \\ C & D
\end{array}\right]^{-1}$
A, B, C, D are full rank square matrix.
so the block wise inverse E^-1is
[ S_d, S_d^-1 .B .D^-1,
..., ..............]
latex code:
$\displaystyle \left[\begin{array}{cc} S^{-1}_{D} & -S^{-1}_{D}BD^{-1}
\\ -D^{-1}CS^{-1}_{D} & D^{-1} + D^{-1}CS^{-1}_{D}BD^{-1}
\end{array}\right]$
in short,
i what repeat the precedure that listed here by mathematica7. that i
give ABCD, then mathematica inverse the E as a matrix of ABCD.
https://ccrma.stanford.edu/~jos/lattice/Block_matrix_decompositions.html
thank you again for all the help
Best Regards
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
----------------------------------------------------------------------------
Hello
If a function does not exist in Mathematica, you will have write it using
the already defined functions in Mathematica. As I stated in the previous
email, I do not believe the function you want is a predefined function in
Mathematica. However, defining this function in Mathematica should not be
too difficult.
I have attached a notebook showing how to access the different quadrants of
a matrix and recombine them. This should provide a useful starting point
for writing your function.
If you are not familiar with programming in Mathematica, please read the
documentation on lists and functions:
http://reference.wolfram.com/mathematica/howto/WorkWithLists.html
http://reference.wolfram.com/mathematica/tutorial/DefiningFunctions.html
If you have any specific questions about how to use the documented
functions in Mathematica while making this program, please let me know.
Sincerely,
Sean Clarke
Technical Support 能算大型稀疏矩阵的软件就肯定能做分块,你懂的 matlab 本帖最后由 orionsnow 于 2010-10-25 17:27 编辑
matlab
johndoe 发表于 2010-10-25 15:44 http://www.dolc.de/forum/images/common/back.gif
谢了,刚才去网上找了下,看到有个 matrix2cell 命令。
可以把一个矩阵分块。 估计还有其他更多命令。 不知道你有没有其他的例子。
不过现在没有matlab 的lience,回头要去找别的同事试验一下。
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
我的问题和下边这个一模一样,我正在看。
http://www.mapleprimes.com/questions/89722-Calculations-With-Matrix-In-Matrix
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
已解决
matlab矩阵分块与把分块矩阵还原
悬赏分:200 - 解决时间:2008-8-10 17:13
我有一个256*64的矩阵,我要把它分成16*16的矩阵,接着要把这个分好了块的矩阵又可以还原为原256*64的矩阵,请问matlab中该如何编写这个m文件~~谢谢~
提问者: zzyzzm - 三级
最佳答案
A=rand(256,64);
%将A分块
B=mat2cell(A,ones(256/16,1)*16,ones(64/16,1)*16);
%B{i,j}就是所要的分块矩阵
%将分块矩阵合并
C=cell2mat(B)
%C就是合并好的矩阵,即C=A
9 i am not using matlab for about five years. I think your problem is definitely within matlab's shot. Just try /help cell2mat or whatsoever. But I could also remember that cell2mat has to do with the transforming string into numerical values so pls be careful for that.
but honestly, do you really need any matrix with 256*64 dimensions? any matrix operation will be killed with curse of dimensionality.
sorry, i cannot put in any chinese on this computer and has to conclude this way. i am not using matlab for about five years. I think your problem is definitely within matlab's shot. ...
johndoe 发表于 2010-10-25 17:56 http://www.dolc.de/forum/images/common/back.gif
Nein, cell2num sollte den Befehl sein, mit dem eine Umsetzung von String nach numerical erfolgt. 本帖最后由 orionsnow 于 2010-10-25 18:38 编辑
谢谢楼上两位的回贴, matlab 我也是以前写毕业论文的时候用过,主要是做的模拟。
到现在也有5,6年没有碰了,不过原理还是记得。关键知道能解决的包和命令上的名字,回头去google 就是了。
1, 256 *64 是百度上的例子
我的问题是4个或者9 个 最多不超过 1000的满秩非稀松阵,不过在特殊情况下是只有2,3个常数参数的, 比如
diag(1000)+ 0。5 这种的。
然后这4 个阵组成一个2000 的阵。 要求它的逆。目前就在先解决这个简单特例。 因为后边还有其他的运算,觉得不是一下就能行的。 干脆让老板开个项目算了。 要是能保留符号不进行数值结算就最好了,这样可以寻找机会和后边的公式消掉。
2 德语我没有看懂,如果输入不方便的话, 打英语吧。 谢谢楼上两位的回贴, matlab 我也是以前写毕业论文的时候用过,主要是做的模拟。
到现在也有5,6年没有 ...
orionsnow 发表于 2010-10-25 18:37 http://dolc.de/forum/images/common/back.gif
我想你的问题应该可以这样解决
AA = ;
其中AA1是左上角的矩阵,AA2为右上角,BB1为左下角,BB2为右下角,
现在机器上没有matlab了,你可以用小点的矩阵先试试看 本帖最后由 orionsnow 于 2010-10-25 20:44 编辑
我想你的问题应该可以这样解决
AA = ;
其中AA1是左上角的矩阵,AA2为右上 ...
johndoe 发表于 2010-10-25 20:30 http://www.dolc.de/forum/images/common/back.gif
我机器上也没有matlab 呢。。。。。。。。。
然后aa 求逆的符号计算是可行的?
我给同事打电话了,他去做了,先搞个4,4 矩阵,过两天看结果。 我机器上也没有matlab 呢。。。。。。。。。
然后aa 求逆的符号计算是可行的?
我给同事打电话了 ...
orionsnow 发表于 2010-10-25 20:37 http://dolc.de/forum/images/common/back.gif
好啊,事成了刷我们一下