回 帖 发 新 帖 刷新版面

主题:请教:关于秩的问题

已知 M = [ 3 2 1 3; 2 1 3 1; 7 0 t 1]的秩为2,求t.(用Matlb实现)。

回复列表 (共11个回复)

沙发

你确定此题有解?

板凳

考试题目.

3 楼

function out = rnk (t)
    M = [ 3 2 1 3;2 1 3 1;7 0 t 1];
out=rank(M);

fplot(@rnk,[-100,100])
我怎么看不出它有等于2的时候

4 楼

不好意思,是数字错了:应该为: M = [ 3 2 -1 -3;2 -1 3 1;7 0 t -1];

5 楼

据我观察t=5;办法很笨:

function out = rnk (t)
    M = [ 3 2 1 3;2 1 3 1;7 0 t 1];
out=rank(M)-2;

res=[];
for i=-100:.5:100
    [x,fval]=fzero(@rnk,i);
    if abs(x)<1E15 res=[res;x]; end
end

6 楼

期待看到更好的解决方案

7 楼

针对此题,matlab程序如下:

syms t;
M = [ 3 2 -1 -3;2 -1 3 1;7 0 t -1];
t=solve(det(M(:,1:3)));                 % 要使秩为2,则3阶矩阵的行列式为零,解出t值即可
t = subs(t);                            % 将符号型的t转换为数值型,方便观察解出的t值

结果为:
         t = 5

8 楼

可以取M的1到3列,也可以取2到4列的行列式值为0
即det(M(:,1:3))=0或者det(M(:,2:4))=0
结果均为t=5;

9 楼

知道方法了,可我的matlab没有Symbolic math toolbox 这个工具包。
  能发给我吗?——sopenhaurer@gmail.com
  万分感谢!!!

10 楼

我装的是matlab2007b版,自带的就有呢,你可以装个2007b版试试,还挺好用的^_^

我来回复

您尚未登录,请登录后再回复。点此登录或注册