模糊数学实验指导书 写实验报告注意事项 ①统一用Word文档保存,文件名为:0x14xxxⅣy,共12个字符,其 中xxx为你的学号后5位数,y为实验序号(1,2,6) ②word文档第一行为你的姓名与学号,其次拷贝实验名称、目的、学 时与内容,然后注明实验日期,再其次是你所做的具体内容可参考 后面的范例 ③本实验主要采用 MATLAB软件 ④你所做的具体内容除结果或说明外,都用文本格式编辑. ⑤不得拷贝或抄袭他人的结果(包括教材上的例子和其他文本格式的范 例) 提示: MATLAB软件包中有模糊工具箱(C: AMATLAB6p5 ltoolboxlfuz2y) 实验一模糊统计与模糊分布 实验目的 会使用数学软件 MATLAB进行模糊统计,掌握得到模糊分布(隶属函数近 似解析表达式的方法 实验学时:4学时 实验内容 (1)根据模糊集的数据统计区间(例如随机产生“青年人”的年龄区间),绘 制模糊统计频率直方图 (2)根据上述数据,导出该模糊集隶属函数的近似解析表达式,说明你的方 法的可行性(在同一坐标系中绘制模糊统计频率直方图与模糊集隶属函数的图 形,给出残差平方和) 实验二模糊聚类与模糊识别 实验目的 掌握模糊相似矩阵的建立方法与最大隶属原则,会求传递闭包矩阵;会使用 数学软件 MATLAB进行模糊矩阵的有关运算 实验学时:4学时
模糊数学实验指导书 写实验报告注意事项: ① 统一用 Word 文档保存,文件名为:0x14xxxxx[y],共 12 个字符,其 中 xxxxx 为你的学号后 5 位数,y 为实验序号(1,2,…,6). ② Word 文档第一行为你的姓名与学号,其次拷贝实验名称、目的、学 时与内容,然后注明实验日期,再其次是你所做的具体内容.可参考 后面的范例. ③ 本实验主要采用 MATLAB 软件. ④ 你所做的具体内容除结果或说明外,都用文本格式编辑. ⑤ 不得拷贝或抄袭他人的结果(包括教材上的例子和其他文本格式的范 例). 提示:MATLAB 软件包中有模糊工具箱(C:\MATLAB6p5\toolbox\fuzzy). 实验一 模糊统计与模糊分布 实验目的: 会使用数学软件 MATLAB 进行模糊统计,掌握得到模糊分布(隶属函数)近 似解析表达式的方法. 实验学时:4 学时 实验内容: ⑴ 根据模糊集的数据统计区间(例如随机产生“青年人”的年龄区间),绘 制模糊统计频率直方图. ⑵ 根据上述数据,导出该模糊集隶属函数的近似解析表达式,说明你的方 法的可行性(在同一坐标系中绘制模糊统计频率直方图与模糊集隶属函数的图 形,给出残差平方和). 实验二 模糊聚类与模糊识别 实验目的: 掌握模糊相似矩阵的建立方法与最大隶属原则,会求传递闭包矩阵;会使用 数学软件 MATLAB 进行模糊矩阵的有关运算. 实验学时:4 学时
实验内容: (1)根据已知数据进行数据标准化 (2)根据已知数据建立模糊相似矩阵,并求出其传递闭包矩阵 (3)(可选做)根据模糊等价矩阵绘制动态聚类图. (4)(可选做)根据原始数据或标准化后的数据和(3)的结果确定最佳分类 5)根据已知数据用最大隶属原则进行模糊识别 实验三求解模糊线性规划 实验目的 掌握将模糊线性规划转化为一般线性规划的方法,会使用数学软件 Lindo求 解一般线性规划 实验学时:4学时 实验内容: 将已知模糊线性规划问题用¢语言编程生成Lido软件的数据格式,再用 Lindo软件求解 下面是实验报告样式
实验内容: ⑴ 根据已知数据进行数据标准化. ⑵ 根据已知数据建立模糊相似矩阵,并求出其传递闭包矩阵. ⑶ (可选做)根据模糊等价矩阵绘制动态聚类图. ⑷ (可选做)根据原始数据或标准化后的数据和⑶的结果确定最佳分类. ⑸ 根据已知数据用最大隶属原则进行模糊识别. 实验三 求解模糊线性规划 实验目的: 掌握将模糊线性规划转化为一般线性规划的方法,会使用数学软件 Lindo 求 解一般线性规划. 实验学时:4 学时 实验内容: 将已知模糊线性规划问题用 C 语言编程生成 Lindo 软件的数据格式,再用 Lindo 软件求解. 下面是实验报告样式
[姓名][学号] 实验一模糊统计与模糊分布 实验目的 会使用数学软件 MATLAB进行模糊统计,掌握得到模糊分布(隶属函数近 似解析表达式的方法 实验学时:4学时 实验内容: (1)根据模糊集的数据统计区间(例如随机产生“青年人”的年龄区间),绘 制模糊分布图 (2)根据上述数据,导出该模糊集隶属函数的近似解析表达式,说明你的方 法的可行性(在同一坐标系中绘制模糊分布图与模糊集隶属函数的图形,给出残 差平方和,用F分布检验) 实验日期:200x年ⅹ月x日 操作步骤: (1)随机产生模糊集的数据统计区间,论域[ab,绘制模糊分布图. n=20; a=12; b=40; A=rand (2, n) for =1: 1: 2*n A(i)=a+A(i)*(b-a,%取整数A()= around(A(i)*(b-a); end or F ifA(l,)>A(2,i)%调整区间的上下限 XXXXXA(1, D A(1,)=A(2,1 A(2,n end A%显示模糊集A的数据 al=b: A2=a for Fl: 1: n if(A(1,iA1)A1=A(1,;%A的最小值 if(A(2,i)>A2A2=A(2,i),%A的最大值 X=Al(A2-A1/100:A2; Ax=l for F-1: 1: length(x) Ax(1=0 forl:n if(x(i)>=A(1J)&x(1)=A(2j)Ax()=Ax()+1;
[姓名] [学号] 实验一 模糊统计与模糊分布 实验目的: 会使用数学软件 MATLAB 进行模糊统计,掌握得到模糊分布(隶属函数)近 似解析表达式的方法. 实验学时:4 学时 实验内容: ⑴ 根据模糊集的数据统计区间(例如随机产生“青年人”的年龄区间),绘 制模糊分布图. ⑵ 根据上述数据,导出该模糊集隶属函数的近似解析表达式,说明你的方 法的可行性(在同一坐标系中绘制模糊分布图与模糊集隶属函数的图形,给出残 差平方和,用 F 分布检验). 实验日期:200x 年 x 月 x 日 操作步骤: ⑴ 随机产生模糊集的数据统计区间,论域[a,b],绘制模糊分布图. n=20;a=12;b=40;A=rand(2,n); for i=1:1:2*n A(i)=a+A(i)*(b-a);% 取整数 A(i)=a+round(A(i)*(b-a)); end for i=1:1: n if A(1,i)>A(2,i) % 调整区间的上下限 xxxxx=A(1,i); A(1,i)=A(2,i); A(2,i)=xxxxx; end end A%显示模糊集 A 的数据 A1=b;A2=a; for i=1:1: n if(A(1,i)A2)A2=A(2,i); %A 的最大值 end end x=A1:(A2-A1)/100:A2; Ax=[]; for i=1:1:length(x) Ax(i)=0; for j=1:n if(x(i)>=A(1,j)&x(i)<=A(2,j)) Ax(i)= Ax(i)+1; end
end Ax(iFAx(in; plot(x, Ax) 结果: (2)模糊集A隶属函数的近似解析表达式,在同一坐标系中绘制模糊分布图 与模糊集隶属函数的图形,并给出残差平方和,用F分布检验 以下仅给出多项式回归并用F分布检验的方法,供参考 xO=370:0.5:43.0 yO=[3403003002272.101.831.531.701.801.902.352.542.90 x=x0y:%转置 y=y0,%转置 m=2; n=length(x); xs= polyfit(xy,m)%方法1多项式系数行向量降幂排列 y =0 jxF=; for F= n jxJ(iFs(m+1); for kl m jxji)=jxj(+xs(k)*x(^(m-k+1);%解析解 yy=yy+y(; plot(x jxj, x,y, -+ X(n,m+1)=1;%定义n行m+1列矩阵X X(;,1)=1;%X的第1列全为1 for l m X(计+1)x^i,%X的第计1列=x的i次幂 b=inv(xX*X)*X*y%方法2多项式系数列向量升幂排列 yy=yyn;%计算y的均值 for F= n Syy=Syy+((i)yy)*(y(i)y)%计算总和 end Q=(y-X*b)*(y-x+b)%计算残差平方和 Ftjl=(SyQm)/(Q(n-m-1)%计算F统计量 Ffbz=Ftj/10; while fcdf(Ffbz, m-1, n-m-1 0.99 Fbz=Fbz+0.1;%查表F分布值 d Ffb
end Ax(i)=Ax(i)/n; end plot(x,Ax) 结果: ⑵ 模糊集 A 隶属函数的近似解析表达式,在同一坐标系中绘制模糊分布图 与模糊集隶属函数的图形,并给出残差平方和,用 F 分布检验. 以下仅给出多项式回归并用 F 分布检验的方法,供参考 x0=37.0:0.5:43.0; y0=[3.40 3.00 3.00 2.27 2.10 1.83 1.53 1.70 1.80 1.90 2.35 2.54 2.90]; x=x0';%转置 y=y0';%转置 m=2;n=length(x); xs=polyfit(x,y,m)%方法 1 多项式系数行向量降幂排列 yy=0;jxj=[]; for i=1:n jxj(i)=xs(m+1); for k=1:m jxj(i)=jxj(i)+xs(k)*x(i)^(m-k+1); %解析解 end yy=yy+y(i); end jxj plot(x,jxj,x,y,'-+') X(n,m+1)=1; %定义 n 行 m+1 列矩阵 X X(:,1)=1; %X 的第 1 列全为 1 for i=1:m X(:,i+1)=x.^i; %X 的第 i+1 列=x 的 i 次幂 end b=inv(X'*X)*X'*y%方法 2 多项式系数列向量升幂排列 yy=yy/n;%计算 y 的均值 Syy=0; for i=1:n Syy=Syy+(y(i)-yy)*(y(i)-yy);%计算总和 end Q=(y-X*b)'*(y-X*b) %计算残差平方和 Ftjl=((Syy-Q)/m)/(Q/(n-m-1)) %计算 F 统计量 Ffbz=Ftjl/10; while fcdf(Ffbz,m-1,n-m-1)<0.99 Ffbz=Ffbz+0.1; %查表 F 分布值 end Ffbz
[姓名][学号] 实验二模糊聚类与模糊识别 实验目的 掌握模糊相似矩阵的建立方法与最大隶属原则,会求传递闭包矩阵;会使用 数学软件 MATLAB进行模糊矩阵的有关运算 实验学时:4学时 实验内容: (1)根据已知数据进行数据标准化 (2)根据已知数据建立模糊相似矩阵,并求出其传递闭包矩阵. (3)(可选做)根据模糊等价矩阵绘制动态聚类图 (4)(可选做)根据原始数据或标准化后的数据和(3)的结果确定最佳分类 (5)根据已知数据用最大隶属原则进行模糊识别 实验日期:200x年ⅹ月x日 操作步骤: (1)数据标准化一平移极差变换 A=[1.0 1.0 2.0 2.5 2.0 2.0 2.0 1.0 1.0 3.0 3.0 3.0 1.0 3.0 3.0 1.0 1.0 5.0 0.5 6.0 4.0 6.0 5.0 3.0 2.0 2.0 4.0 3.0 1.0 al=0;a2=0; f or Fm al=A(1,1) a2=A(l,1) 厂1n if(aI>A, D)al=AG,i); if(a2<A(, D)a2=A(. 1); end for=l:n AG,iF(AG,)-al(a2-a1)
[姓名] [学号] 实验二 模糊聚类与模糊识别 实验目的: 掌握模糊相似矩阵的建立方法与最大隶属原则,会求传递闭包矩阵;会使用 数学软件 MATLAB 进行模糊矩阵的有关运算. 实验学时:4 学时 实验内容: ⑴ 根据已知数据进行数据标准化. ⑵ 根据已知数据建立模糊相似矩阵,并求出其传递闭包矩阵. ⑶ (可选做)根据模糊等价矩阵绘制动态聚类图. ⑷ (可选做)根据原始数据或标准化后的数据和⑶的结果确定最佳分类. ⑸ 根据已知数据用最大隶属原则进行模糊识别. 实验日期:200x 年 x 月 x 日 操作步骤: ⑴ 数据标准化—平移极差变换. A=[1.0 3.5 1.0 0.0 2.0 2.5 2.0 2.0 2.0 3.5 1.0 1.0 3.0 3.0 3.0 1.0 3.0 3.0 1.0 1.0 5.0 0.5 5.0 2.0 6.0 1.5 4.0 0.0 6.0 1.5 4.0 1.0 5.0 3.0 2.0 2.0 4.0 3.0 1.0 2.0]; n=10;m=4; a1=0;a2=0; for i=1:m a1=A(1,i); a2=A(1,i); for j=1:n if(a1>A(j,i))a1=A(j,i); end if(a2<A(j,i))a2=A(j,i); end end for j=1:n A(j,i)=(A(j,i)-a1)/(a2-a1); end end A
结果 (2)用数量积法建立模糊相似矩阵,并求出其传递闭包矩阵 for F=ln 1:n for kl m abs(A(l, k)"A(, k)); end R(n,n}=1; s=0 for k=l: m s=Stabs(A(i k) *AG, k)) end if(FiR(js/c, else R(LD=1 end end R tR(n, nF=1 for Fl: n for F= 1. tR(LIFO for kl: n if(R(k)<R(kj)s=R(ik),%先取小 else S=R(k,j; ftR(ij)<sR(ij)=s%后取大 end end end for l
结果: ⑵ 用数量积法建立模糊相似矩阵,并求出其传递闭包矩阵. c=0;s=0; for i=1:n for j=1:n s=0; for k=1:m s=s+abs(A(i,k)*A(j,k)); end if(c<s)c=s; end end end c R(n,n)=1; for i=1:n for j=1:n s=0; for k=1:m s=s+abs(A(i,k)*A(j,k)); end if(j~=i)R(i,j)=s/c; else R(i,j)=1; end end end R tR(n,n)=1; s=0; while s<n*n for i=1:n for j=1:n tR(i,j)=0; for k=1:n if(R(i,k)<R(k,j))s=R(i,k);%先取小 else s=R(k,j); end if(tR(i,j)<s)tR(i,j)=s;%后取大 end end end end for i=1:n
for Fl:n if(r(iir-tR(DR(j=tR(j; else s=s+1 tR 结果:
for j=1:n if(R(i,j)~=tR(i,j))R(i,j)=tR(i,j); else s=s+1; end end end end tR 结果:
[姓名][学号] 实验三求解模糊线性规划 实验目的 掌握将模糊线性规划转化为一般线性规划的方法,会使用数学软件 Lindo求 解一般线性规划 实验学时:4学时 实验内容: 将已知模糊线性规划问题用¢语言编程生成Lido软件的数据格式,再用 Lindo软件求解 实验日期:200x年ⅹ月x日 操作步骤: maxf=x,-4x2+6x3 x1+x2+x3≤[8 将模糊线性规划问题{,x1-6x2+x326转化为普通线性规划问题, x3=[-405 0 并用 Lindo软件求解. 用C语言编程生成 Lindo软件的数据格式 #include void main 0 double c}={1,-4,6}/目标系数 double al33}={1,1,1,1,6,1,1,-3,-1}∥技术系数矩阵 double b}={8,6,-4}∥目标右端常数 double fc=38;/第一个线性规划问题的最优值 double dc=8.25∥第 个线性规划问题的最优值之差 double d={2,1,0.5}/伸缩指标 char opt=1:/0表示min;1表示max char cont={-1,10}/约束条件-1表示≤0表示=1表示≥ intm=3n=3/m约束条件个数n变量个数 FILE*fp; Int fp=fopen("xXXx. txt", w") if(opt )fprintf(fp, "Max ") else fprintf(fp, min"); for(=0: j<n j+
[姓名] [学号] 实验三 求解模糊线性规划 实验目的: 掌握将模糊线性规划转化为一般线性规划的方法,会使用数学软件 Lindo 求 解一般线性规划. 实验学时:4 学时 实验内容: 将已知模糊线性规划问题用 C 语言编程生成 Lindo 软件的数据格式,再用 Lindo 软件求解. 实验日期:200x 年 x 月 x 日 操作步骤: 将模糊线性规划问题 − − = − − + + + = − + , , 0. 3 [ 4,0.5], 6 [6,1], [8,2], . . max 4 6 , 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 x x x x x x x x x x x x st f x x x 转化为普通线性规划问题, 并用 Lindo 软件求解. 用 C 语言编程生成 Lindo 软件的数据格式 #include #include void main() { double c[]={1,-4,6};//目标系数 double A[3][3]={1,1,1,1,-6,1,1,-3,-1};//技术系数矩阵 double b[]={8,6,-4};//目标右端常数 double fc=38;//第一个线性规划问题的最优值 double dc=8.25;//第一、二个线性规划问题的最优值之差 double d[]={2,1,0.5};//伸缩指标 char opt=1;//0 表示 min;1 表示 max char cont[]={-1,1,0};//约束条件-1 表示≤;0 表示=;1 表示≥ int m=3,n=3;//m 约束条件个数;n 变量个数 FILE *fp; int i,j; fp=fopen("xxxx.txt","w"); if(opt)fprintf(fp,"Max "); else fprintf(fp,"min "); for(j=0;j<n;j++) {
if(cl=0)continue; ifg&&cIPO)fprintf(fp, + if(cL]o)fprintf(fp, "-" fprintf(fp, %6.4fx%d", fabs(cD)j+1); fprintf(fp, "\ns t. ") for(i=0; i f(fp, 9/6.4fn",biD fprintf(fp, "\nInn") if(opt )fprintf(fp, "Max "); else fprintf(fp, min") for(=0: j<n: j++) if(c=O)continue ifj&&cIPO)fprintf(fp, +) else if(cLio)fprintf(fp, -" fprintf(fp, %/6.4fx%d",fabs(c[])j+1); fprintf(fp, "ns t. ") for(=0i<m;++) forlo i<n if(AJl=0)continue if(j&&A[lPO)fprintf(fp, + else if(A[j0]o)fprintf(fp, "." fprintf(fp, %6 4fx%d", fabs(A[[]Jj+1); if(cont[]==-1)fprintf(fp, <%.4fn",b[]+d[D; else if(cont[F=0)
if(c[j]==0)continue; if(j&&c[j]>0)fprintf(fp,"+"); else if(c[j]0)fprintf(fp,"+"); else if(A[i][j]"); fprintf(fp,"%6.4f\n",b[i]); } fprintf(fp,"\n\n\n"); if(opt)fprintf(fp,"Max "); else fprintf(fp,"min "); for(j=0;j0)fprintf(fp,"+"); else if(c[j]0)fprintf(fp,"+"); else if(A[i][j]<0)fprintf(fp,"-"); fprintf(fp,"%6.4fx%d",fabs(A[i][j]),j+1); } if(cont[i]==-1)fprintf(fp,"<%6.4f\n",b[i]+d[i]); else if(cont[i]==0)
fprintf(fp, %6.4fn,b[l-d[) else fprintf(fp, >%6.4fn"bi]-diD rinf(fp, nInIn"), fprintf(fp, Max Imd"); fprintf(fp, "\ns t. ) for(0 j%6.4f\n", dc, fc) else fprintf(fp, +%6. 4flmd </6.4f\n", dc, fc) for(i=0; i<m; i++) if(A00==0)continue if(&&A[uPO)fprintf(fp, " + else if(A[jJo]o)fprintf(fp, ." fprintf(fp, %/6.4fx%d", fabs(A[0)j+1) (cont jF=-1)fprintf(fp, +%6.4fImd<%.4fn,do,b+diD fprintf(fp, +%6.4fImd<%6.4fn d[], b[]+d[D: rF0: j<n j++) if(A00=0)cont if(j&&A[jJ[PO)fprintf(fp, +)
{ fprintf(fp,"0)fprintf(fp,"+"); else if(A[i][j]%6.4f\n",b[i]-d[i]); } else fprintf(fp,">%6.4f\n",b[i]-d[i]); } fprintf(fp,"\n\n\n"); fprintf(fp,"Max lmd"); fprintf(fp,"\ns.t. "); for(j=0;j0)fprintf(fp,"+"); else if(c[j]%6.4f\n",dc,fc); else fprintf(fp,"+%6.4flmd0)fprintf(fp,"+"); else if(A[i][j]0)fprintf(fp,"+");