求助 用mathematica编一个求任意整数矩阵的smith标准形
跪求用mathematica求任意整数矩阵A的smith标准形<br/><br/>算法为(1)找出A的元素中的最大公约数<br/>(2)将它调到(1,1)位置上去<br/>(3)使第一行和第一列的所有其他元素都为零<br/>这可用基本行或列来变换:<br/>交换两行(列)<br/>一行(列)减去另一行(列)的整数倍<br/>这样得到矩阵B,置S11=b11,对(m-1)x(n-1)的矩阵重复以上算法,重复r次就可得到smith标准形.<br/>This topic gives a version of the Gauss elimination algorithm for a commutative principal ideal domain which is usually described only for a field.<br/><br/>Let be a -matrix with entries from a commutative principal ideal domain . For denotes the number of prime factors of . Start with and choose to be the smallest column index of with a non-zero entry.<br/><br/>(I) <br/>If and , exchange rows 1 and . <br/>(II) <br/>If there is an entry at position such that , then set and choose such that <br/><br/><br/><br/>By left-multiplication with an appropriate matrix it can be achieved that row 1 of the matrix product is the sum of row 1 multiplied by and row multiplied by . Then we get at position , where . Repeating these steps one obtains a matrix having an entry at position that divides all entries in column . <br/>(III) <br/>Finally, adding appropriate multiples of row , it can be achieved that all entries in column except for that at position are zero. This can be achieved by left-multiplication with an appropriate matrix. <br/>Applying the steps described above to the remaining non-zero columns of the resulting matrix (if any), we get an -matrix with column indices where , each of which satisfies the following: <br/>the entry at position is non-zero; <br/>all entries below and above position as well as entries left of are zero. <br/>Furthermore, all rows below the -th row are zero. <br/>Now we can re-order the columns of this matrix so that elements on positions for are nonzero and for ; and all columns right of the -th column (if present) are zero. For short set for the element at position . has non-negative integer values; so is equivalent to being a unit of . can either happen if and differ by a unit factor, or if they are relatively prime. In the latter case one can add column to column (which doesn't change and then apply appropriate row manipulations to get . And for and one can apply step (II) after adding column to column . This diminishes the minimum -values for non-zero entries of the matrix, and by reordering columns etc. we end up with a matrix whose diagonal elements satisfy .<br/><br/>Since all row and column manipulations involved in the process are invertible, this shows that there exist invertible and -matrices so that is<br/><br/><br/><br/>This is the Smith normal form of the matrix. The elements are unique up to associates and are called elementary divisors<br/><br/>有没有谁能够根据上述算法,将程序编出来.............<br/>谢谢!!!!!!!<br/>
留个脚印
http://www.badui.net.cn/UploadFile/200811301861597627.jpghttp://www.linuxdiyf.com/bbs//images/default/sigline.gif
天下风云出我辈, 一入江湖岁月催。 皇图霸业谈笑中, 不胜人生一场醉。
专业深圳SEO服务:百度优化,Google优化,深圳SEO优化,注册香港公司SEO优化
页:
[1]