一、矩阵运算

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

① 模糊矩阵自反性判断:

都默认为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. pandas使用iloc函数将dataframe的所有数据行反序(reverse the order of rows in dataframe)
  2. finalshell Linux 传输文件 xftp
  3. 每个软件工程师都应该尝试的5件事
  4. Linux kernel分析前的准备
  5. 3.1.9 OS之二级页表的原理和地址结构
  6. RabbitMQ MQTT协议和AMQP协议
  7. apache/nginx/nodejs原理简析
  8. ROS入门笔记(十):编写与测试简单的消息发布器和订阅器(C++)
  9. 国家开放大学2021春1070组织行为学题目
  10. 用netbeans开发Swing程序,添加自定义控件
  11. ElasticSearch学习(三):配置与集群
  12. 【java】彩票中奖码生成器:java.util.Random里的方法public int nextInt(int bound)
  13. 电脑和服务器之间怎么传送大文件夹,WIN10两台电脑之间快速传输大量文件 - 卡饭网...
  14. 新中大财务软件虚拟化解决方案
  15. 关闭WPS广告弹窗骚扰(Kingsoft Office 推荐)
  16. 大学生学完python靠几个接单网站兼职,实现经济独立
  17. nexus3安装配置
  18. Linux下安装SVN服务端(全)
  19. 排列组合-9.1 排列组合系列问题
  20. Kinect_1:设备连接

热门文章

  1. Linux Cron表达式每半个小时执行一次
  2. 判断网页是否在微信浏览器中打开
  3. python dialogflow_如何在Python中通过Dialogflow实现从Google Assis...
  4. Vue3 + Ant Design Vue Modal 对话框可拖拽指令
  5. c++进制转换_PLC常用数制及转换方法,让你轻松掌握PLC编程
  6. 在微信上搞色情?终于要凉了!
  7. 图片怎么去底色变透明?怎么把图片变透明背景?
  8. 蓄电池维护——蓄电池的日常检测与维护
  9. ceph rbd mysql_ceph-rbd 常用命令
  10. 性能测试之JMeter断言