V=[V,'(?P∨?Q∨R)∧']; case 8
V=[V,'(?P∨?Q∨?R)']; otherwise '此为永真式' end end V
if all(K)==1 'K是重言式' else
'K不是重言式' end %保存文件名为Zy
P17 (1) (b):(P∧R)∨ (P→Q)
运行过程及结果:
>> P=[0 0 0 0 1 1 1 1],Q=[0 0 1 1 0 0 1 1],R=[0 1 0 1 0 1 0 1] P =
0 0 0 0 1 1 1 1 Q =
0 0 1 1 0 0 1 1 R =
0 1 0 1 0 1 0 1
>> Zzb
本程序可以求真值表, 请输入含有三个变元的命题公式: Vee(Wedge(P,R),If(P,Q)) T =
0 0 0 1 0 0 1 1 0 1 0 1
- 6 -
0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1
P39 (4) (d):(P→(Q∧R)) ∧ (?P→(?Q∧?R)) 运行过程及结果:
>>Zy
ans =
此为求(P→(Q∧R))∧(?P→(?Q∧?R))主析取范式、主合取范式的程序,并判断是否为重言式,以K代替其真值
ans =
P Q R Z =
0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1
ans =
主析取范式: A =
(?P∧?Q∧?R)∨(P∧Q∧R)
ans =
- 7 -
主合取范式 V =
(P∨Q?∨R)∧(P∨?Q∨R)∧(P∨?Q∨?R)∧(?P∨Q∨R)∧(?P∨Q∨?R)∧(?P∨?Q∨R)
ans =
K不是重言式
六、收获与体会
通过实验使我了解了一些数理逻辑问题可以通过用计算编程的方法来解决,一些定理的证明同样也可以用计算机通过将命题符号化来编程解决。由于计算机运行速度很快,而数理逻辑值只有0和1值,只要用程序合理的表述问题,那么就能将问题解答出来。再次,它提高了我的计算机编程能力,使我感觉到了编程的乐趣,提供给我无穷的继续学习编程语言的的动力。
- 8 -
实验二(此实验包含两题)
一、实验内容
1. 求有限集上给定关系的自反,对称和传递闭包。 2. 求有限集上等价关系的数目。
3. 求解商集,输入集合和等价关系,求相应的商集。 二、实验目的
掌握关系的概念与性质,基本的关系运算,关系的各种闭包的求法。理解等价类的概念,掌握等价类的求解方法。 三、实验环境
MATLAB软件的编程环境实现
四、实验原理和实现过程(教材第127页习题(2)(b);教材第113页习题(2)(b))
1.先写出要求解的函数,将其保存。然后在软件中输入相应的矩阵或集合,再利用函数求出相应的结果。
2.写一个M文件,输入一个关系R,判断其是否具有自反性。 五、实验数据及结果分析 实验所用函数:
function Z=Cup(A,B) C=A+B;
Z=ones(size(C)); Z(find(C==0))=0; end
function Z=Warshall(A) Z=A;
lengthZ=length(Z);
- 9 -
for j=1:1:lengthZ for i=1:1:lengthZ if Z(i,j)==1
Z(i,:)=Cup(Z(i,:),A(j,:)); end end end end
function y=Mm(A,B) a=max(A); M=zeros(a,a); [i,j]=size(B); for a=1:1:i
b=B(a,1);c=B(a,2); M(b,c)=1; end
[s,r]=size(M); for d=1:1:s for e=1:1:r if d==e continue; end end end
if M(d,e)==1 '此关系具有自反性' else
'此关系不具有自反性' end end
P127(2)(b):求关系R={,,,
>> A={'a','b','c'};R={'','','','
1 1 1
- 10 -
0 1 1 0 1 1
P113(2)(b):A={1,2,3,4},R={<1,3>,<1,4>,<2,3>,<2,4>,<3,4>},判断R是否具有自反性。 实验过程及结果:
>>A=[1,2,3,4];R=[1,3;1,4;2,3;2,4;3,4]; >>Mm(A,R) ans=
此关系不具有自反性
六、收获与体会
写这个程序花了不少时间,而且时间相对集中,除了上课外,,在电脑前都是在做这个,连续做了几天,刚开始时并没有完全按照软件步骤去写,而是知道总体方框后,一个模块一个模块去求解,至于每个模块怎么写,则是在写的过程中逐步建立和完善的。
- 11 -