Hola
Sea \( 1<x_1\leq{}x_2\leq{}x_3\leq{}x_4<5 \) y \( f(p_1,p_2,p_3,p_4)=p_1p_2p_3p_4+(1-p_1)p_2p_3p_4+(1-p_2)p_1p_3p_4+(1-p_3)p_2p_1p_4+(1-p_4)p_2p_3p_1 \) siendo \( p_i=1-1/x_i \) con las siguientes desigualdades \( x_1+x_2\geq{}5 \). Quiero hallar el mínimo de \( f. \) Razono: como las derivadas segundas parciales de los \( p_i \) son cero, los puntos críticos se dan en los vértices, cuáles sería n estos?
Pues tienes que plantear las ecuaciones asociadas a las desigualdades (en tu caso siete):
\( x_1=1 \)
\( x_1-x_2=0 \)
\( x_2-x_3=0 \)
\( x_3-x_4=0 \)
\( x_4-x_5=0 \)
\( x_5=5 \)
\( x_1+x_2=5 \)
Resolver todos lo posibles subsistemas compatibles determinados: en este caso \( \displaystyle\binom{7}{5}=21 \) y entre las soluciones descartar las que no cumplen las restricciones.
En Pyhton (entre la IA y yo

) :
import numpy as np
from itertools import combinations
from scipy.optimize import linprog
def hallar_vertices(A, b):
"""
Halla los vértices de la región factible definida por A @ x <= b
A: matriz de coeficientes (m x 5)
b: vector de constantes (m,)
"""
m, n = A.shape
vertices = []
cont = 0
# Generar todas las combinaciones de 5 restricciones (porque hay 5 variables)
for filas in combinations(range(m), n):
cont+=1
try:
# Tomar 5 ecuaciones como igualdades
A_eq = A[list(filas), :]
b_eq = b[list(filas)]
# Resolver A_eq x = b_eq
x = np.linalg.solve(A_eq, b_eq)
# Verificar si satisface TODAS las restricciones A @ x <= b
if np.all(A @ x - b <= 1e-5):
vertices.append(x)
except np.linalg.LinAlgError:
# Sistema no tiene solución o es singular
continue
# Eliminar duplicados
vertices = np.unique(np.array(vertices), axis=0)
return vertices
# Ejemplo de uso:
A = np.array([
[-1, 0, 0, 0, 0],
[1, -1, 0, 0, 0],
[0, 1, -1, 0, 0],
[0, 0, 1, -1, 0],
[0, 0, 0, 1, -1],
[0, 0, 0, 0, 1],
[-1,-1,0,0,0]
])
b = np.array([-1, 0, 0, 0, 0, 5,-5]) # Ejemplo de restricciones
vertices = hallar_vertices(A, b)
print("Vértices de la región factible:")
for v in vertices:
print(v) La matriz de las restricciones hay que escribirla de manera que siembre estén expresadas como \( \text{ecuación}\leq \text{constante} \).
Por ejemplo para poner \( 1\leq x_1 \), escribimos, \( -x_1\leq -1 \) y así la primera fila de la matriz es \( [-1,0,0,0,0] \) y el primer valor del término independiente \( n=[-1,\ldots] \).
Resultan:
\( [1, 4, 4, 4, 4] \)
\( [1, 4, 4, 4, 5] \)
\( [1, 4, 4, 5, 5] \)
\( [1, 4, 5, 5, 5] \)
\( [1, 5, 5, 5, 5] \)
\( [2.5, 2.5, 2.5, 2.5, 2.5] \)
\( [2.5, 2.5, 2.5, 2.5, 5] \)
\( [2.5,2.5,2.5,5,5] \)
\( [2.5,2.5,5,5,5] \)
\( [5,5,5,5,5] \)
Saludos.