jiao~ 发表于 2009-10-31 12:42

应用matlab编写离散数学中的关系合成运算

A)功能
设关系A是从集合X={1,2,….,n}到集合Y={1,2,…..,m}的二元关系,而关系B是从集合Y到集合Z={1,2,….,p}的二元关系,求A与B的合成关系C。
B)基本思想
由关系合成的定义可知:A B={<x,z>|有y∈Y使<x,y>∈A且<y,z>∈B}。若用关系矩阵来表示关系,则关系的合成运算类似于数值矩阵的乘法。不同的是用“∧”代替乘,用“∨”代替加。其中,0∨0=0,0∧0=0,0∨1=1,0∧1=0,1∨0=1,1∧0=0,1∨1=1,1∧1=1
C)算法
(1)
输入关系矩阵A、B。
(2)
1 i。
(3)
若i>n,则结束。
(4)
1 j。
(5)
若j>p,则转(8)。
(6)
(aik∧vkj) cij。
(7)
j+1 j,转(5)。
i+1 i,转(3)。


请各位指教!!!

ChaChing 发表于 2009-10-31 19:26

回复 楼主 jiao~ 的帖子

水平有限, 感觉楼主未说清楚:loveliness:

yufeng 发表于 2009-11-1 09:53

循环采用for 不过你的流程复制过来少了东西 所以你按照你的流程编程即可

jiao~ 发表于 2009-11-1 14:40

确实少了东西~~不好意思弄得时候有点匆忙!!!!
一关系的合成运算
A)功能
设关系A是从集合X={1,2,….,n}到集合Y={1,2,…..,m}的二元关系,而关系B是从集合Y到集合Z={1,2,….,p}的二元关系,求A与B的合成关系C。
B)基本思想
由关系合成的定义可知:A B={<x,z>|有y∈Y使<x,y>∈A且<y,z>∈B}。若用关系矩阵来表示关系,则关系的合成运算类似于数值矩阵的乘法。不同的是用“∧”代替乘,用“∨”代替加。其中,0∨0=0,0∧0=0,0∨1=1,0∧1=0,1∨0=1,1∧0=0,1∨1=1,1∧1=1
C)算法
(1)       (1)输入关系矩阵A、B。
(2)       (2)1->i。
(3)       (3)若i>n,则结束。
(4)       (4)1->j。
(5)       (5)若j>p,则转(8)。
(6)       (6)(aik∧vkj)->cij。
(7)       (7)j+1->j,转(5)。
(8)i+1->i,转(3)。






我觉得也要用for循环,但是里面涉及到矩阵的一系列复杂问题,搞得我有点屡不清关系,所以各位能不能给点程序,参考一下~~不胜感激!!!
页: [1]
查看完整版本: 应用matlab编写离散数学中的关系合成运算