Warning: Matrix is singular to working precision

2 次查看(过去 30 天)
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 .

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Matrices and Arrays 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by