一、矩阵运算

续上一篇有关模糊数学的运算中的内容,这一篇文章将进行模糊矩阵自反性判断、对称性判断、传递性的判断以及来计算传递闭包矩阵。这里事实上也是聚类分析等前操步骤。可以参考之前有关模糊聚类分析的内容,其中也有一些比较有参考意义的代码。

① 模糊矩阵自反性判断:

都默认为nxn阶模糊方阵

即rii=1

def zfar(M):a=[]for i in range(len(M)):m=M[i]if m[i]!=1:a.append('0')if len(a)==0:return 'True' else:return 'False'
print(zfar(ma))
ma=[[1,0,0],[0,1,0],[0,0,1]]
#输出结果为
True

② 模糊矩阵对称性判断:

即rij=rji

def dcar(M):Mt=np.stack(M,axis=1)print(Mt)a=[]for i in range(len(M)):m=M[i]mt=Mt[i]for j in range(len(m)):if m[j]!=mt[j]:a.append('1')if len(a)==0:return 'True'else:return 'False'
ma=[[1,0,0],[0,1,0],[0,0,1]]
print(dcar(ma))
输出结果为:
True

③ 模糊相似矩阵判断:

即同时满足自反性和对称性:

def arlike(M):if zfar(M) == 'True' and dcar(M) == 'True':return 'Ture'else:return 'False'
print(arlike(ma))

④ 模糊矩阵传递性判断

def jzhc(M,N):#必须是m*s,s*n的矩阵输入R=[]N=np.stack(N,axis=1)#实现转置for i in range(len(M)):mr=[]for j in range(len(N)):r=(arjj([M[i]],[N[j]]))[0]mr.append(max(r))R.append(mr)return Rdef cdar(M):hcar=jzhc(M,M)#使用矩阵合成代码print(hcar)a=[]for i in range(len(M)):m=M[i]n=hcar[i]for j in range(len(m)):if m[j]>n[j]:a.append('1')if len(a)==0:return 'True'else:return 'False'
print(cdar(ma))

⑤ 模糊等价矩阵判断:

即同时满足对称、自反和传递矩阵

def djar(M):if arlike(M) == 'Ture' and cdar(M) == 'True':return 'True'else:return 'False'
print(djar(ma))

⑥ 传递闭包矩阵计算:

返回传递闭包矩阵和幂数

#相等矩阵的判断
def ddar(M,Mt):a=[]for i in range(len(M)):m=M[i]mt=Mt[i]for j in range(len(m)):if m[j]!=mt[j]:a.append('1')if len(a)==0:return 'True'else:return 'False'#传递闭包矩阵
def bbar(M):if arlike(M)!='True':return 'Array False'else:b=Mc=2while ddar(b,M)!='True':M=jzhc(b,b)b=Mc=c+2break    return b,c
R=[[1,0.1,0.2],[0.1,1,0.3],[0.2,0.3,1]]
print(bbar(R))
##输出结果为:
([[1, 0.1, 0.2], [0.1, 1, 0.3], [0.2, 0.3, 1]], 2)

二、总结

① 理论先行

② 代码自写(不要复制粘贴),以上代码全部都是以最基础的逻辑运算来写的,只要会python基础就能实现,不涉及任何需要调动库中复杂的函数的理解。全是for if while def

③ 标准化的方式将于后文继续介绍。

        ④ 代码总结

def dcar(M):Mt=np.stack(M,axis=1)print(Mt)a=[]for i in range(len(M)):m=M[i]mt=Mt[i]for j in range(len(m)):if m[j]!=mt[j]:a.append('1')if len(a)==0:return 'True'else:return 'False'
ma=[[1,0,0],[0,1,0],[0,0,1]]
print(dcar(ma))def zfar(M):a=[]for i in range(len(M)):m=M[i]if m[i]!=1:a.append('0')if len(a)==0:return 'True' else:return 'False'
print(zfar(ma))def arlike(M):if zfar(M) == 'True' and dcar(M) == 'True':return 'True'else:return 'False'
print(arlike(ma))def cdar(M):hcar=jzhc(M,M)a=[]for i in range(len(M)):m=M[i]n=hcar[i]for j in range(len(m)):if m[j]>n[j]:a.append('1')if len(a)==0:return 'True'else:return 'False'
print(cdar(ma))def djar(M):if arlike(M) == 'Ture' and cdar(M) == 'True':return 'True'else:return 'False'
print(djar(ma))#相等矩阵的判断
def ddar(M,Mt):a=[]for i in range(len(M)):m=M[i]mt=Mt[i]for j in range(len(m)):if m[j]!=mt[j]:a.append('1')if len(a)==0:return 'True'else:return 'False'#传递闭包矩阵
def bbar(M):if arlike(M)!='True':return 'Array False'else:b=Mc=2while ddar(b,M)!='True':M=jzhc(b,b)b=Mc=c+2break    return b,c
R=[[1,0.1,0.2],[0.1,1,0.3],[0.2,0.3,1]]
print(bbar(R))

【数学建模】模糊数学矩阵运算——python实现相关推荐

  1. 数学建模——灰色预测模型Python代码

    数学建模--灰色预测模型Python代码 """ Spyder Editor This is a temporary script file. ""& ...

  2. 数学建模可以用python吗_Python中常用的数学建模Scipy

    Python中常用的数学建模Scipy 发布时间:2020-09-10 16:56:48 来源:亿速云 阅读:116 本篇文章为大家展示了Python中常用的数学建模Scipy,代码简明扼要并且容易理 ...

  3. 集货运输优化:数学建模步骤,Python实现蚁群算法(解决最短路径问题), 蚁群算法解决旅行商问题(最优路径问题),节约里程算法

    目录 数学建模步骤 Python实现蚁群算法(解决最短路径问题) 蚁群算法解决旅行商问题(最优路径问题) 节约里程算法

  4. python做灰色关联度分析_【数学建模】通过python实现灰色关联度计算

    1.关联分析 关联分析主要作用为对系统的因素进行分析,其主要作用为分辨因素中哪些因素对系统的影响是显著的,哪些影响是次要的.通常而言因素分析的主要方式为回归分析等,但其存在数据量要求大,计算量大等诸多 ...

  5. 数学建模问题的python相关代码

    文章目录 1. 环境搭建 1.1 使用anaconda 2. numpy库 3. pandas库 4. matplotlib库 5. 规划问题 5.1 线性规划 5.2 整数规划 5.3 非线性规划 ...

  6. 数学建模——运输问题(Python实现)

    目录 1.概述 (1)运输问题 (2)基本思想 (3)表上作业法求解运输问题步骤 2.知识点细讲 (1)运输问题及其数学模型 ​(2)表上作业法求解运输问题--思想 (3)表上作业法求解运输问题--寻 ...

  7. 【数学建模】聚类分析——python实现

    目录 一.储备知识 (1)何为聚类分析: (2)分类方法: 二.聚类分析的一般步骤 三.聚类实操--python实现 四.代码总结 一.储备知识 (1)何为聚类分析: 聚类分析又称为群分析,是研究问题 ...

  8. 数学建模--数学规划模型Python实现

    线性规划scipy.optimize.linprog from scipy.optimize import linprog 一般形式 官方文档:https://docs.scipy.org/doc/s ...

  9. 数学建模——减肥模型Python实现

    注:本模型代码在Jupyter编译 一.模型分析 通常,当体内能量守恒被破坏时就会引起体重的变化.人们通过饮食吸收热量,转化为脂肪等,导致体重增加:又由于代谢和运动消耗热量,引起体重减少.只要作适当的 ...

最新文章

  1. Java中使用Observer接口和Observable类实践Observer观察者模式
  2. java.swing调难度_Java Swing BorderLayout调整了难度
  3. css property 和 attribute 的区别
  4. 2018.6.1信息安全铁人三项赛数据赛writeup
  5. 视频超分中的自监督适应方案
  6. 单源最短路径算法---Dijkstra
  7. Linux 安装Python3
  8. nRF52840 SAADC单通道/多通道采集分析
  9. Google 应用与游戏出海 7 月刊: 创意工具,让应用大放异彩
  10. TPA6100A2DGKR立体声音频功率放大器
  11. 甘肃省房屋过户费用计算机,2017二手房过户费计算器
  12. 增程式电动汽车建模与仿真(一)
  13. 5g网站服务器宽带,别装有线宽带了,5G以后,有线宽带将被淘汰
  14. STM32MP157驱动开发——Linux 音频驱动
  15. 2D效果(近大远小)-----手掌代码
  16. 逻辑回归Logistics--简述
  17. ThinkPHP 5.数据库基本操作
  18. FPGA超声相控延时算法和相位延时技术
  19. ShopsN为何要做真正的免费开源电商系统
  20. 一些比较值得思考和了解的.NET相关的面试题

热门文章

  1. CIO40知识星球—6年总监升职VP(35-40岁)
  2. LayoutInflater.from的含义
  3. oracle怎么删除.dat,oracle删除dat文件有关问题
  4. 【S10-NP难度和NP完全问题】
  5. 【完美解决】Win10 创建镜像卷错误:存放给定卷的扩展的所有磁盘必须有相同的扇区大小,且扇区大小必须有效
  6. 武汉新时标文化传媒有限公司抖音无水印高清短视频素材怎么找?
  7. 激光雷达点云--点云栅格化(二)
  8. 【图解版】银行电商平台技术解决方案
  9. SER-FIQ: Unsupervised Estimation of Face Image Quality Based on Stochastic Embedding Robustness
  10. 令人叹为观止的10大3D打印机应用