主题:请教:关于秩的问题
kafka
[专家分:130] 发布于 2007-11-11 13:04:00
已知 M = [ 3 2 1 3; 2 1 3 1; 7 0 t 1]的秩为2,求t.(用Matlb实现)。
回复列表 (共11个回复)
沙发
ricckma [专家分:370] 发布于 2007-11-11 16:27:00
你确定此题有解?
板凳
kafka [专家分:130] 发布于 2007-11-11 23:29:00
考试题目.
3 楼
ricckma [专家分:370] 发布于 2007-11-12 05:58:00
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 楼
kafka [专家分:130] 发布于 2007-11-12 10:55:00
不好意思,是数字错了:应该为: M = [ 3 2 -1 -3;2 -1 3 1;7 0 t -1];
5 楼
ricckma [专家分:370] 发布于 2007-11-12 12:19:00
据我观察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 楼
ricckma [专家分:370] 发布于 2007-11-12 12:19:00
期待看到更好的解决方案
7 楼
junlee [专家分:110] 发布于 2007-11-12 19:40:00
针对此题,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 楼
junlee [专家分:110] 发布于 2007-11-12 19:44:00
可以取M的1到3列,也可以取2到4列的行列式值为0
即det(M(:,1:3))=0或者det(M(:,2:4))=0
结果均为t=5;
9 楼
kafka [专家分:130] 发布于 2007-11-13 11:23:00
知道方法了,可我的matlab没有Symbolic math toolbox 这个工具包。
能发给我吗?——sopenhaurer@gmail.com
万分感谢!!!
10 楼
junlee [专家分:110] 发布于 2007-11-13 21:43:00
我装的是matlab2007b版,自带的就有呢,你可以装个2007b版试试,还挺好用的^_^
我来回复