Consulta obligatorio

Consulta obligatorio

de Francisco Hermogenes Girardi Gutierrez -
Número de respuestas: 4

Bs tardes

Obligatorio

Pruebas de convexidad

En las clases grabadas 2020 ,se estableció que las definiciones de funciones convexas podían ser tomadas como de partida para las demostraciones.

Se definió por ejemplo que si f es convexa,la f de un mapa lineal  f(Ax+b) es convexa ,justamente lo que pide el c) del Ej1. Probar que l(x) = f1(Ax + b) es convexa.

¿Entiendo se debe tratar de demostrar, igualmente, es correcto?

Gracias


En respuesta a Francisco Hermogenes Girardi Gutierrez

Re: Consulta obligatorio

de Matías Valdés -

Buenas.

La idea del Ejercicio 1 del obligatorio es que hagan la prueba formal de lo que se pide probar.

Sí pueden usar la definición de función convexa. Pero no vale decir que el resultado que se pide probar es cierto porque se dijo o demostró en el video de alguna clase.

No se si eso responde tu duda. Cualquier cosa preguntá de nuevo.

Un comentario final: cuando decís que: "se definió que si f es convexa, la f de un mapa lineal f(Ax+b) es convexa". Formalmente eso no sería una Definición, sino un resultado tipo Proposición, Lema o Teorema.

Saludos.
En respuesta a Matías Valdés

Re: Consulta obligatorio

de Francisco Hermogenes Girardi Gutierrez -
De acuerdo
El script del problema 5 del Obligatorio ,que se adjunto aqui ,da las soluciones ,pero me deja un warning
"/usr/local/lib/python3.7/dist-packages/cvxpy/expressions/expression.py:593: UserWarning:
This use of ``*`` has resulted in matrix multiplication.
Using ``*`` for matrix multiplication has been deprecated since CVXPY 1.1.
Use ``*`` for matrix-scalar and vector-scalar multiplication.
Use ``@`` for matrix-matrix and matrix-vector multiplication.
Use ``multiply`` for elementwise multiplication.
This code path has been hit 1 times so far.

warnings.warn(msg, UserWarning)"
Puede ser que se deba a un problema de version.?En particular, hace bastante tiempo que no usaba Python
Gracias
En respuesta a Francisco Hermogenes Girardi Gutierrez

Re: Consulta obligatorio

de Ignacio Ramirez -
Sí. Como dice el warning (no es un error, todavía, pero lo va a ser pronto), en las versiones nuevas de numpy se debe usar @ para las operaciones matriciales basadas en productos escalares. El operador * debería dejarse para otros usos, como producto elemento a elemento.
No es crítico.
Yo personalmente prefiero usar algo más feo todavía: np.dot(A,B). Eso tiene la enorme ventaja de ser menos flexible en la interpretación. En mi experiencia, una cantidad enorme de errores "raros" en tiempo de ejecución se deben a poner los operadores del producto de manera equivocada, y que NumPy lo enmascare pensando que es así que lo queremos.