登录论坛

查看完整版本 : 就是离散数学中可闭包问题


cheryle
2008-10-27, 11:29
编一个程序,求关系的自反闭包,对称闭包和传递闭包
1. 程序的主要语句和变量必须说明;
2. 用matlab的语言;
3. 输入可以为关系的集合,也可以为关系矩阵;
4. 求传递闭包时采用Warshall算法;
5. 交上机作业时,除了打印源程序外,还必须打印两组调试数据及远行结果。
:ft: :ft: :ft:
有谁可以帮我一下吗???我痛苦这个很久了!

mathjiang
2008-10-27, 21:43
求传递闭包时采用Warshall算法----用平方法求的可以吗?

mathjiang
2008-10-27, 21:43
function b = qiupf(x)
% 函数名 qiupf = 求矩阵的平方;
% A^2 = A*A 是取大取小算法;
[m, n] = size(x);
if m ~= n
disp('输入的矩阵不是方阵');
return
end
for i = 1:n
for j = 1:n
for k = 1:n
b(k) = min(x(i,k),x(k,j));
end
xsquare(i,j) = max(b);
end
end
b = xsquare;

mathjiang
2008-10-27, 21:44
function bibao=qiubb(x)
% 函数名 qiubb=求方阵x的闭包;
% 求闭包的方法:平方法(取大取小);
% 调用格式:bibao=qiubb(x);
[m, n]=size(x);
if m ~= n
disp('输入的矩阵不是方阵');
return
end

xsquare=qiupf(x);

while sum(sum(x==xsquare))~=n^2
x=xsquare;
xsquare=qiupf(x);
end
bibao=xsquare;

mathjiang
2008-10-27, 21:45
其他的自己试试哈