k-lane parte 2

años = 60 # cantidad de años a evaluar el VAN
itera= 3 # cantidad de iteraciones del VAN por cada año 

# nota: si sale un error al finalizar es posible que tengas una
#cantidad de años que supera el recurso disponible, es bueno ver en
# los resultados, el ultimo año con resultados para ir ajustado

# Lista para almacenar los valores de VAN en cada iteración
valores_VAN = []
valores_GOC = []

# Inicialización de la variable para el cálculo del inventario
Qmc_anual_anterior = 0

# Inicialización de la variable para la iteración
nuevo_B_anual_anterior = 0

# Definir la función para calcular el nuevo beneficio anual
def calcular_nuevo_beneficio_anual(B_anual, Qmc_anual, Qcc_anual, Qrc_anual, i, T):
    nuevo_B_anual = (2204.6 * (s - r) * Qrc_anual * 1000000 - m * Qmc_anual * 1000000 - c * Qcc_anual * 1000000 - f * 1000000) / 1000000
    VAN = nuevo_B_anual * ((((1 + i) ** T) - 1) / (((1 + i) ** T) * i))
    return nuevo_B_anual, VAN

# Iterar para cada año
for year in range(1, años):
    print(f"Año {year}:")
    
    # Calcular Qmc_anual para el año actual
    Qmc_anual = Qmc_anual_anterior if year > 1 else 0
    # Actualizar el inventario para el año actual
    df['Ton Parcial'] -= Qmc_anual / len(df)
    # Asegurarnos de que los valores no sean negativos
    df['Ton Parcial'] = df['Ton Parcial'].clip(lower=0)
    # Crear DataFrame
    df_original = df.copy()  # Crear una copia del DataFrame original
    # Crear la columna 'Xi' que es el promedio entre 'Inferior' y 'Superior'
    df['Xi'] = (df['Inferior'] + df['Superior']) / 2
    # Calcular el tonelaje acumulado desde abajo hacia arriba
    df['ton_acum'] = df['Ton Parcial'][::-1].cumsum()[::-1]
    # Crear la columna 'Fino' que es la multiplicación de 'Xi' por 'Ton Parcial' dividido entre 100
    df['Fino'] = (df['Xi'] * df['Ton Parcial']) / 100
    # Calcular el fino acumulado desde abajo hacia arriba
    df['fino_acum'] = df['Fino'][::-1].cumsum()[::-1]
    # Calcular la Ley Media Ponderada
    df['LeyMedia'] = (df['fino_acum'] / df['ton_acum']) * 100
    # Calcular el tonelaje total
    ton_total = df['Ton Parcial'].sum()
    # Crear la columna 'Qm' que es el tonelaje acumulado dividido en el tonelaje total, multiplicado por 100
    df['Qm'] = ton_total
    # Crear la columna 'Qc' que es el tonelaje acumulado dividido en el tonelaje total, multiplicado por 100
    df['Qc'] = (df['ton_acum'] / ton_total) * 100
    # Crear la columna 'Qr' que es el fino acumulado 
    df['Qr'] = ton_total * df['Qc'] / 100 * df['LeyMedia'] / 100 * y
    # Crear la columna 'Qr2' que es el fino acumulado 
    df['Qr2'] = C * df['LeyMedia'] * (y / 100)
    print(df)
    # Iterar para cada iteración dentro del año
    for iteracion in range(1, itera):
        print(f"Iteración {iteracion}:")
        ###opcion que cada año comience con B de la ultima iteracion
        #Inicialización de variables para el primer año
        if iteracion == 1 and year == 1:
            B_anual_actual = 0
        else:
            #Usar el beneficio anual obtenido en la última iteración del año anterior como B_anual inicial
            B_anual_actual = nuevo_B_anual_anterior
        ###opcion que cada año comience con B=0
        #if iteracion == 1:
        #    # En la primera iteración de cada año, establecer B_anual_actual en 0
        #    B_anual_actual = 0
        #else:
        #    # En las iteraciones posteriores dentro del mismo año, utilizar el beneficio anual calculado en la iteración anterior
        #    B_anual_actual = nuevo_B_anual_anterior         
        # Imprimir el beneficio anual actual
        print(f"B_anual_actual en Iteración {iteracion}, Año {year}: {B_anual_actual}")
        
septiembre 11, 2024
top
Nube Minera © 2024