系统工程利用python求解可达矩阵

本文介绍了在系统工程中如何使用Python求解可达矩阵。通过输入邻接矩阵,作者提供了一段代码来计算得到可达矩阵,简化了解决此类问题的流程。
摘要由CSDN通过智能技术生成

系统工程中利用python求解可达矩阵
在系统工程书中,建立解释结构模型中求解可达矩阵是必不可少的一环故利用python写了一段求解可达矩阵的代码,只需要输入邻接矩阵便可计算得到可达矩阵代码如下:

import numpy as np

def change(a): 
    '''
    乘以自身,并将非零整数变为1
    '''                        
    b=np.dot(a,a)    
    m=a.shape    
    for i in range(m[0]):                  
        for j in range(m[1]):            
            if b[i,j]!=0:                
                b[i,j]=1 

    return b


def reachability_matrix(adja_matrix):  
    '''
    生成可达矩阵
    '''                       
    m=adja_matrix.shape  
    unit_adja=np.eye(m[0])   
    K1=adja_matrix+unit_adja     #邻接矩阵加单位矩阵得到矩阵K1
    for i in range(m[0]):        
        KN=change(K1)     #K1乘以自身并归一化得到矩阵KN  
        if np.array_equal(KN,K1)==True:            
              break    
                  
        K1=KN    
          
    print(K1)    
    return K1
      
if __nam
  • 7
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值