Making a magic square matrix singular

조회 수: 7 (최근 30일)
Feng Cheng Chang
Feng Cheng Chang 2013년 4월 1일
We know that any magic square matrix of odd order is not singular. When each element of the matrix is subtracted by the sum-average of the total elements, then this perturbed matrix becomes singular, and the determinant of the resulted matrix is zero. That is,
det(magic(n)-ones(n)*((1+n*n)/2)) = 0, for any odd n.
Can anyone help me the proof or find literture in this subject?
  댓글 수: 8
Feng Cheng Chang
Feng Cheng Chang 2013년 4월 2일
Dear Matt J,
I checked the results using OCTAVE, and the results give prod(eig(P))= -3.7867 (but not -2.2875) and rank(P)=8. But what for?
F C 04/01/2013
Matt J
Matt J 2013년 4월 2일
편집: Matt J 2013년 4월 2일
But what for?
Well, it shows you that there are bad ways to compute determinants, even for integer matrices. The formula det(P)=prod(eig(P)) clearly doesn't work here very well, again because of precision issues.

댓글을 달려면 로그인하십시오.

채택된 답변

Ahmed A. Selman
Ahmed A. Selman 2013년 4월 1일
I don't think details are required since
A=magic(n)-ones(n)*((1+n*n)/2)
is changed into an antisymmetric matrix, any such A matrix must satisfy (basic math.. etc)
det(A) = -1^n * det(A)
since n is odd, det(A) must be zero (thus, A is singular). Changing A from magic(n) to (magic(n)-ones(n)*((1+n*n)/2) ) as mentioned in the question is enough to destroy the symmetry of A.
Yet, since this is too basic, and it works the same for magic(n) with n is odd or even, (also, produces antisymmetric), I'm afraid you already know this. I tried (quickly, to be honest) other means like the nice arguments above, but didn't got anything useful so I thought to share, it might help. Regards.
  댓글 수: 7
Ahmed A. Selman
Ahmed A. Selman 2013년 4월 2일
And this basic, primitive derivation, is found (must be found) in any textbook dealing with matrices and determinant properties. I did find it on Wolfram search that:
det(-A)=(-1)^n det(A)
from: <http://mathworld.wolfram.com/Determinant.html >
and found that for antisymmetric matrix A then
Aij= - Aji
from
The rest is, however, a plane and direct substitution.
Matt J
Matt J 2013년 4월 8일
편집: Matt J 2013년 4월 9일
Ahmed,
We established several Comments ago that Aij=-Aji is not satisfied for the modified magic square matrix.
There may be a way to extend the determinant equation to the weirder kind of asymmetry that this matrix exhibits, but it looks like it would take some work. Showing that ones(n,1) is a null-vector of the matrix seems to me like the quicker proof, not to mention that it also covers even-valued n.

댓글을 달려면 로그인하십시오.

추가 답변 (3개)

Jonathan Epperl
Jonathan Epperl 2013년 4월 1일
The row-sum, column-sum and diag-sum of a magic square are all the same, and the magic square uses all the integeres 1:n^2. Thus, the sum of all elements must be n^2*(n^2+1)/2, and each row, column, diag sum must be n*(n^2+1)/2.
Now look at what you wrote, multiply it from the right by ones(n,1), and you'll see that you will get zero. Voila, thus the matrix is singular.
  댓글 수: 2
Feng Cheng Chang
Feng Cheng Chang 2013년 4월 1일
Dear Jonathan Epperl:
Thank you for your reply.
The first paragragh is the well-known definition or description of magic square matrix.
The second paragragh is unclear to me how to get the matrix singular. The test statement is listed here again for your reference
det(magic(n)-ones(n)*(1+n*n)/2), for any odd n.
So I cannot accept your answer at this time.
F C Chang 3/30/2013
Jonathan Epperl
Jonathan Epperl 2013년 4월 5일
편집: Jonathan Epperl 2013년 4월 22일
Just to fill that hole in your knowledge: A square Matrix A is singular if and only if
  • inv(A) does NOT exist
  • det(A)==0
  • The range of A is not all of R^n
  • THE KERNEL OF A IS NONTRIVIAL
  • ...
That last point there means that if you can find a nonzero vector v such that A*v==0, then you have proven that A is singular, and ones(n,1) is such a vector.

댓글을 달려면 로그인하십시오.


Matt J
Matt J 2013년 4월 1일
편집: Matt J 2013년 4월 1일
Let x=ones(n,1)/n and P be the perturbed matrix. You can verify that
P*x=0
proving that P is singular.
  댓글 수: 5
Matt J
Matt J 2013년 4월 1일
편집: Matt J 2013년 4월 1일
I do not think the calculation of det(P) is numerically unstable since elements of P in the case are all integers.
You don't know that MATLAB computes determinants in steps that always result in integers. In fact, I've just learned that MATLAB uses LU factorization, which is consistent with the results Walter and I have been getting,
>> P=magic(9)-41; [L,U]=lu(P); det(L)*det(U)
ans =
-0.3211
Feng Cheng Chang
Feng Cheng Chang 2013년 4월 2일
Dear Matt J,
The result I got (by using OCTAVE within machine precession) is 0, but not -0.3211. I hope someone can verify it.
F C 04/01/2013

댓글을 달려면 로그인하십시오.


Feng Cheng Chang
Feng Cheng Chang 2013년 4월 6일
Dear Readers:
I have already accepted the expected simple answer from Ahmed A Selman, so I would like to conclude this "Question-Answer" contribution.
Also I would like to thank Walter Roberson, Matt J and Jonathan Epperl for the further extensive discussion related to the subject.
It gives me the great opportunity to find the interesting result unexpectedly. Hope anyone can see it.
For any n x n non-singular square matrix A, I can make it singular by perturbing the same amount to each of the matrix elements. That is
det(A-ones(n)/sum(sum(inv(A))) == 0
I would like to extend "the making a matrix singular" further to include the perturbation of any single element, any row or coulumn elements, or even the entire matrix elements in the prescribed distribution. Please watch my contribution in MATLAB Files Exchange in the near future.
For now, please try the followings:
for n=1:9, A=rand(n); P=A-1/sum(sum(inv(A))); detP=det(P); n,A,P,detP, end;
Best wishes,
Feng Cheng Chang 04/06/2013

카테고리

Help CenterFile Exchange에서 Numerical Integration and Differential Equations에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by