一、矩阵运算

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

① 模糊矩阵自反性判断:

都默认为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. 【Shell】设置变量默认值,参数默认值, 自动赋值
  2. 很多应用项目都有配置文件,这些配置文件里面定义一些应用需要的参数数据。 如果客户端使用这个类是通过new一个AppConfig的实例来得到一个操作配置 文件内容的对象,则在系统运行中,有 很多地方都需
  3. 剑指offer之两个队列实现栈的问题
  4. Vmware 安装虚拟工具 (二)
  5. Android 系统(232)---减小 OTA 大小
  6. 阿里面试“神器”,成为众多程序员手中的王炸!
  7. FFMPEG源码分析:avformat_open_input()(媒体打开函数)
  8. 7-1 关于堆的判断 (25 分)
  9. SMARTS决策引擎:实时决策分析
  10. 判断今天是星期几 暴力枚举
  11. 3315 时空跳跃者的魔法
  12. 软件测试中单元测试,集成测试,系统测试,验收测试的区别
  13. 手机号 MD5加密解密工具类
  14. 快牛策略——PowerPoint 2003:红头文件的制作及标准
  15. 用matlab画散点图并用光滑曲线连接(样条插值)
  16. Golang 给视频添加背景音乐 | Golang工具
  17. Live2D桌面动画模型,在桌面显示
  18. 转发:神了,Fly_by结构原来就这么回事儿!
  19. 微信公众号的封面图怎么拿到手
  20. Android4.0 SDK新功能详解

热门文章

  1. 物联卡如何正确设置APN
  2. 程序员总监成长编程九大阶段
  3. 2022低压电工考试题模拟考试题库模拟考试平台操作
  4. 优化计算机组策略,提升运行速度:Win7系统中组策略的实用优化技巧
  5. Spring Security 短信验证码登录(5)
  6. 【分析】通过Ceph RBD实现iSCSI
  7. 推荐一个国外用Flex制作播放器的源码
  8. Excel与Sql Server互通导入导出跨语言
  9. 自制社交门户网站的用户等级表
  10. 团队成员的角色类型及其给我们的启示(转)