【数学建模】模糊数学矩阵运算——python实现
一、矩阵运算
续上一篇有关模糊数学的运算中的内容,这一篇文章将进行模糊矩阵自反性判断、对称性判断、传递性的判断以及来计算传递闭包矩阵。这里事实上也是聚类分析等前操步骤。可以参考之前有关模糊聚类分析的内容,其中也有一些比较有参考意义的代码。
① 模糊矩阵自反性判断:
都默认为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实现相关推荐
- 数学建模——灰色预测模型Python代码
数学建模--灰色预测模型Python代码 """ Spyder Editor This is a temporary script file. ""& ...
- 数学建模可以用python吗_Python中常用的数学建模Scipy
Python中常用的数学建模Scipy 发布时间:2020-09-10 16:56:48 来源:亿速云 阅读:116 本篇文章为大家展示了Python中常用的数学建模Scipy,代码简明扼要并且容易理 ...
- 集货运输优化:数学建模步骤,Python实现蚁群算法(解决最短路径问题), 蚁群算法解决旅行商问题(最优路径问题),节约里程算法
目录 数学建模步骤 Python实现蚁群算法(解决最短路径问题) 蚁群算法解决旅行商问题(最优路径问题) 节约里程算法
- python做灰色关联度分析_【数学建模】通过python实现灰色关联度计算
1.关联分析 关联分析主要作用为对系统的因素进行分析,其主要作用为分辨因素中哪些因素对系统的影响是显著的,哪些影响是次要的.通常而言因素分析的主要方式为回归分析等,但其存在数据量要求大,计算量大等诸多 ...
- 数学建模问题的python相关代码
文章目录 1. 环境搭建 1.1 使用anaconda 2. numpy库 3. pandas库 4. matplotlib库 5. 规划问题 5.1 线性规划 5.2 整数规划 5.3 非线性规划 ...
- 数学建模——运输问题(Python实现)
目录 1.概述 (1)运输问题 (2)基本思想 (3)表上作业法求解运输问题步骤 2.知识点细讲 (1)运输问题及其数学模型 (2)表上作业法求解运输问题--思想 (3)表上作业法求解运输问题--寻 ...
- 【数学建模】聚类分析——python实现
目录 一.储备知识 (1)何为聚类分析: (2)分类方法: 二.聚类分析的一般步骤 三.聚类实操--python实现 四.代码总结 一.储备知识 (1)何为聚类分析: 聚类分析又称为群分析,是研究问题 ...
- 数学建模--数学规划模型Python实现
线性规划scipy.optimize.linprog from scipy.optimize import linprog 一般形式 官方文档:https://docs.scipy.org/doc/s ...
- 数学建模——减肥模型Python实现
注:本模型代码在Jupyter编译 一.模型分析 通常,当体内能量守恒被破坏时就会引起体重的变化.人们通过饮食吸收热量,转化为脂肪等,导致体重增加:又由于代谢和运动消耗热量,引起体重减少.只要作适当的 ...
最新文章
- Java中使用Observer接口和Observable类实践Observer观察者模式
- java.swing调难度_Java Swing BorderLayout调整了难度
- css property 和 attribute 的区别
- 2018.6.1信息安全铁人三项赛数据赛writeup
- 视频超分中的自监督适应方案
- 单源最短路径算法---Dijkstra
- Linux 安装Python3
- nRF52840 SAADC单通道/多通道采集分析
- Google 应用与游戏出海 7 月刊: 创意工具,让应用大放异彩
- TPA6100A2DGKR立体声音频功率放大器
- 甘肃省房屋过户费用计算机,2017二手房过户费计算器
- 增程式电动汽车建模与仿真(一)
- 5g网站服务器宽带,别装有线宽带了,5G以后,有线宽带将被淘汰
- STM32MP157驱动开发——Linux 音频驱动
- 2D效果(近大远小)-----手掌代码
- 逻辑回归Logistics--简述
- ThinkPHP 5.数据库基本操作
- FPGA超声相控延时算法和相位延时技术
- ShopsN为何要做真正的免费开源电商系统
- 一些比较值得思考和了解的.NET相关的面试题
热门文章
- CIO40知识星球—6年总监升职VP(35-40岁)
- LayoutInflater.from的含义
- oracle怎么删除.dat,oracle删除dat文件有关问题
- 【S10-NP难度和NP完全问题】
- 【完美解决】Win10 创建镜像卷错误:存放给定卷的扩展的所有磁盘必须有相同的扇区大小,且扇区大小必须有效
- 武汉新时标文化传媒有限公司抖音无水印高清短视频素材怎么找?
- 激光雷达点云--点云栅格化(二)
- 【图解版】银行电商平台技术解决方案
- SER-FIQ: Unsupervised Estimation of Face Image Quality Based on Stochastic Embedding Robustness
- 令人叹为观止的10大3D打印机应用