Warning: Matrix is singular to working precision

조회 수: 6(최근 30일)
oun alsharif
oun alsharif 2021년 11월 14일
편집: Chunru 2021년 11월 14일
a=[1, 0, 0, 0, -0.25, 0; 0, 1, 0, -0.25, 0, -0.25; 1, 0, 0, 0, -0.25, 0; 0, -0.25 0, 1, 0, 0; -0.25, 0, -0.25, 0, 1, 0; 0,-0.25, 0, 0, 0, 1];
b=[6.25,4.45,6.8,5.5,3.87,6.45];
c=b/a;
Warning: Matrix is singular to working precision.
i dont know why?

답변(1개)

Chunru
Chunru 2021년 11월 14일
편집: Chunru 2021년 11월 14일
Make sure your matrix "a" is full rank (rank(a) should be 6 instead of 5).
a=[1, 0, 0, 0, -0.25, 0; 0, 1, 0, -0.25, 0, -0.25; 1, 0, 0, 0, -0.25, 0; 0, -0.25 0, 1, 0, 0; -0.25, 0, -0.25, 0, 1, 0; 0,-0.25, 0, 0, 0, 1]
a = 6×6
1.0000 0 0 0 -0.2500 0 0 1.0000 0 -0.2500 0 -0.2500 1.0000 0 0 0 -0.2500 0 0 -0.2500 0 1.0000 0 0 -0.2500 0 -0.2500 0 1.0000 0 0 -0.2500 0 0 0 1.0000
rank(a)
ans = 5
b=[6.25,4.45,6.8,5.5,3.87,6.45]
b = 1×6
6.2500 4.4500 6.8000 5.5000 3.8700 6.4500
c=b/a;
Warning: Matrix is singular to working precision.
  댓글 수: 1
Walter Roberson
Walter Roberson 2021년 11월 14일
The important point here is the fact that a has rank 5, so the matrix is singular.
Notice that your first and third row are the same. Any matrix which has identical rows will be singular .

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

태그

Community Treasure Hunt

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

Start Hunting!

Translated by