Modelado matemático de ascensores instalados en residencias existentes

Plan de asignación razonable para el costo de instalación de ascensores en residencias existentes

Problema 1
  Sabemos que cuanto más alto es el edificio residencial de gran altura, mayores son los gastos compartidos de los residentes. Esto se debe a los diferentes tiempos de uso de los ascensores de los residentes en diferentes pisos. La cantidad de electricidad utilizada es diferente. De Por supuesto, agregar ascensores no beneficia a los residentes del primer piso, por el contrario, la instalación de ascensores causará un impacto de ruido a los residentes del primer piso. Por lo tanto, la pregunta es ¿cómo cobra este ascensor a los residentes?
Respuesta q917267119

inserte la descripción de la imagen aquí

  En primer lugar, si solo miras el uso de pisos y la instalación de ascensores, el costo compartido del ascensor debe ser que cuanto más alto sea el piso, más el costo compartido lo paga el usuario. Si no se ve afectada por otros factores, esta es una relación lineal típica, sin embargo, es imposible considerar solo el factor de la altura del piso, porque esta es la razón principal, y hay otros costos indirectos que afectan o promueven o dificultan la vivienda. Precios. Lo más importante es la iluminación. Factores y área de la casa, si se ignora o no el factor de influencia del área de la casa depende de si está estudiando vivienda general o vivienda especial. Si se trata de una vivienda general de gran altura, debe considerar este factor. En cuanto a la iluminación, esto es un reflejo de la tasa de cambio en el costo de compartir. Cómo hacerlo depende razonablemente de la situación real del mercado.

  Este lugar recomienda el uso de AHP, que se maneja por separado.

import numpy as np

#AHP类
class AHP:

    #初始化函数
    def __init__(self, array):
        ## 记录矩阵相关信息
        self.array = array
        ## 记录矩阵大小
        self.n = array.shape[0]
        # 初始化RI值,用于一致性检验
        self.RI_list = [ 3,6,9,12,15,18,21,24,25,27,30]
        # 矩阵的特征值和特征向量
        self.eig_val, self.eig_vector = np.linalg.eig(self.array)
        # 矩阵的最大特征值
        self.max_eig_val = np.max(self.eig_val)
        # 矩阵最大特征值对应的特征向量
        self.max_eig_vector = self.eig_vector[:, np.argmax(self.eig_val)].real
        # 矩阵的一致性指标CI
        self.CI_val = (self.max_eig_val - self.n) / (self.n - 1)
        # 矩阵的一致性比例CR
        self.CR_val = self.CI_val / (self.RI_list[self.n - 1])

    #一致性判断
    def test_consist(self):
        # 打印矩阵的一致性指标CI和一致性比例CR
        print("判断矩阵的CI值为:" + str(self.CI_val))
        print("判断矩阵的CR值为:" + str(self.CR_val))
        # 进行一致性检验判断
        if self.n == 2:  # 当只有两个子因素的情况
            print("仅包含两个子因素,不存在一致性问题")
        else:
            if self.CR_val < 0.1:  # CR值小于0.1,可以通过一致性检验
                print("判断一致性结果:" + "通过一致性检验")
                return True
            else:  # CR值大于0.1, 一致性检验不通过
                print("判断一致性结果:" + "未通过一致性检验")
                return False

    #算术平均法求权重
    def cal_weight_by_arithmetic_method(self):
        # 求矩阵的每列的和
        col_sum = np.sum(self.array, axis=0)
        # 将判断矩阵按照列归一化
        array_normed = self.array / col_sum
        # 计算权重向量
        array_weight = np.sum(array_normed, axis=1) / self.n
        # 打印权重向量
        print("算术平均法计算得到的权重向量为:\n", array_weight)
        # 返回权重向量的值
        return array_weight

    #几何平均法求权重
    def cal_weight__by_geometric_method(self):
        # 求矩阵的每列的积
        col_product = np.product(self.array, axis=0)
        # 将得到的积向量的每个分量进行开n次方
        array_power = np.power(col_product, 1 / self.n)
        # 将列向量归一化
        array_weight = array_power / np.sum(array_power)
        # 打印权重向量
        print("几何平均法计算得到的权重向量为:\n", array_weight)
        # 返回权重向量的值
        return array_weight

    #特征值法求权重
    def cal_weight__by_eigenvalue_method(self):
        # 将矩阵最大特征值对应的特征向量进行归一化处理就得到了权重
        array_weight = self.max_eig_vector / np.sum(self.max_eig_vector)
        # 打印权重向量
        print("特征值法计算得到的权重向量为:\n", array_weight)
        # 返回权重向量的值
        return array_weight

#计算判断矩阵的一致性与权重向量
def calWeight():
    # 给出判断矩阵
    b = np.array(
        [[1, 2, 5, 7],
         [1/2, 1, 3, 5],
         [1/5, 1/3, 1, 3],
         [1/7, 1/5, 1/3, 1]])
    AHP(b).test_consist()
    # 算术平均法求权重
    weight1 = AHP(b).cal_weight_by_arithmetic_method()
    # 几何平均法求权重
    weight2 = AHP(b).cal_weight__by_geometric_method()
    # 特征值法求权重
    weight3 = AHP(b).cal_weight__by_eigenvalue_method()
    return weight1,weight2,weight3

  Se puede distribuir por piso y área. Por ejemplo, tomando el tercer piso como parámetro 1, el segundo piso como 0.5 y el primer piso como 0, cada piso adicional desde el cuarto piso aumenta el coeficiente en 0.1, es decir, el cuarto piso es 1.1, el quinto piso es 1.2, y el sexto piso 1.3, e introduce la proporción de capital por categoría;
la proporción de aporte de capital de cada hogar en el mismo piso se puede determinar de acuerdo con la proporción de la parte exclusiva del propietario al área total de construcción de el piso. Los propietarios de viviendas en planta baja cuya ventilación, iluminación o paso se vean directamente afectados por la instalación de ascensores podrán ser indemnizados por los demás propietarios en su caso.
  También se puede distribuir según el número de capas. Por ejemplo, cada hogar en el segundo piso cuenta como medio piso, cada hogar en el tercer piso cuenta como un piso y medio, cada hogar en el cuarto piso cuenta como dos pisos y medio, cada hogar en el quinto piso cuenta como tres y un medio piso, y cada uno en el sexto piso cuenta como cuatro pisos y medio. Hay dos hogares en cada piso, y 12 hogares en dicha unidad tienen un total de 25 pisos, y luego el monto total de la inversión se divide por 25 pisos para obtener un número, y luego cada hogar se multiplica por el número de pisos dividido por igual, es decir, cada hogar debe repartir los costos por igual. Este método en realidad se basa en el nivel del piso a repartir.

Supongo que te gusta

Origin blog.csdn.net/weixin_43292788/article/details/123578829
Recomendado
Clasificación