Commande pour argmin ou argmax?

Comment pouvez-vous obtenir largmin ou largmax en Latex? Jai trouvé deux solutions:

\underset{x}{\operatorname{argmax}} \DeclareMathOperator*{\argmin}{arg\,min} 

Dautres idées?

[1] http://www.breakthru.altervista.org/?p=27

[2] http://researchonsearch.blogspot.com/2007/05/enter-argmax-argmin-in-latex.html

Commentaires

  • En quoi ces solutions (en particulier la seconde) ne semblent-elles pas correctes? Le \DeclareMathOperator est la voie à suivre dans ce cas.
  • Personnellement, jaime le look de \text{arg}\,\max\limits_{\theta}\,
  • Et comment le faire fonctionner dans Jupyter?

Réponse

Comme la souligné Pieter, la manière correcte de définir les opérateurs argmin et argmax dans LaTeX est:

\usepackage{amsmath} \DeclareMathOperator*{\argmax}{arg\,max} \DeclareMathOperator*{\argmin}{arg\,min} 

En fait, en utilisant le amsopn serait suffisant mais il » est chargé par amsmath en interne, ce qui est recommandé pour la composition mathématique de toute façon.

Le * in \DeclareMathOperator* place largument souligné sous le mot plutôt quen bas à droite de celui-ci.

Commentaires

  • Si vous utilisez \DeclareMathOperator*{\argmin}{\arg\!\min}, vous supprimez le vilain espace entre arg et min.
  • @rbp Pourquoi utiliser \arg\min quand simplement argmin fait de même?
  • @egreg vous ‘ avez raison. Je suis arrivé à celui-ci après avoir expérimenté dautres options, et je nai ‘ pas regarder en arrière 🙂
  • In ConTeXt cest-à-dire: \definemathcommand [argmin] [limop] {\mfunction{arg\,min}}
  • Explication: Jai laissé lespace mince (\,) entre arg et min parce que ‘ est ce que laffiche originale avait dans le question, alors jai supposé quils voulaient lespace là-bas. Personnellement, je ferais simplement \DeclareMathOperator*{\argmin}{argmin}, sans lespace.

Réponse

Résumé

Dans la suite, LaTeX est supposé.

Questions préliminaires

1. Un espace fin doit-il séparer «arg» de «min»?

Cest une question de préférence personnelle. La définition par défaut de \limsup a un espace mince, par contre «arcsin» est généralement écrit sans espace entre les deux composants. La cohérence est, comme toujours, le mot-clé: lutilisation dune définition de macro le garantira ainsi que la facilité de modification de la composition de lensemble du document, si le passage dune option à une autre est nécessaire.

2. Les limites devraient-elles être inférieures à lopérateur dans le style daffichage?

Cela est également discutable et les conventions utilisées dans le champ pour lequel le document est écrit doivent être suivies.

3. Le nom de lopérateur doit-il être composé verticalement?

Certainement, comme tous les autres noms dopérateur / fonction tels que sinus et cosinus.

Outils disponibles

1. amsmath

Avec amsmath on peut faire, dans le préambule,

\DeclareMathOperator*{\argmin}{arg\,min} % thin space, limits underneath in displays \DeclareMathOperator*{\argmin}{argmin} % no space, limits underneath in displays \DeclareMathOperator{\argmin}{arg\,min} % thin space, limits on side in displays \DeclareMathOperator{\argmin}{argmin} % no space, limits on side in displays 

Bien sûr, un seul dentre eux doit être utilisé. Dans le document, il suffit de taper \argmin et lespacement autour de lopérateur sera le bon selon les règles courantes de la composition mathématique.

Lapparemment différent

\newcommand{\argmin}{\operatornamewithlimits{argmin}} 

nest pas vraiment le cas, car cest essentiellement la même chose que \DeclareMathOperator*{\argmin}{argmin}; de plus, il utilise une commande obsolète, qui devrait être \operatorname*.

2. Aucun paquet

Les définitions suivantes sont très similaires à celles ci-dessus, dans le même ordre

\newcommand{\argmin}{\mathop{\mathrm{arg\,min}} \newcommand{\argmin}{\mathop{\mathrm{argmin}} \newcommand{\argmin}{\mathop{\mathrm{arg\,min}\nolimits} \newcommand{\argmin}{\mathop{\mathrm{argmin}\nolimits} 

Avec \underset

\underset{x}{\mathrm{argmin}} 

Cela a également été mentionné dans la question et dans une réponse, mais cest faux, comme le montre la comparaison visuelle.

3. Différences

La version « no package » est beaucoup plus rigide que la version amsmath, car ce package peut recevoir la nonamelimits qui modifiera automatiquement tous les opérateurs tels que \lim, \max qui ont généralement des limites en dessous (dans affiche) pour les avoir sur le côté. La même option agirait bien sûr également sur les opérateurs nouvellement définis, à condition que \DeclareMathOperator* ait été utilisé.

Document de test

Dans le test suivant document, les définitions ou constructions proposées seront comparées.

\documentclass{article} \usepackage{amsmath} % limits underneath \DeclareMathOperator*{\argminA}{arg\,min} % Jan Hlavacek \DeclareMathOperator*{\argminB}{argmin} % Jan Hlavacek \DeclareMathOperator*{\argminC}{\arg\min} % rbp \newcommand{\argminD}{\arg\!\min} % AlfC \newcommand{\argminE}{\mathop{\mathrm{argmin}}} % ASdeL \newcommand{\argminF}{\mathop{\mathrm{argmin}}\limits} % ASdeL % limits on side \DeclareMathOperator{\argminG}{arg\,min} % Jan Hlavacek \DeclareMathOperator{\argminH}{argmin} % Jan Hlavacek \newcommand{\argminI}{\mathop{\mathrm{argmin}}\nolimits} % ASdeL \newcommand{\cs}[1]{\texttt{\symbol{`\\}#1}} \begin{document} \begin{align} &\cs{argminA} & \argminA_x f(x) &= \{x \mid f(x) = \min_{x"} f(x")\} \\ &\cs{argminB} & \argminB_x f(x) &= \{x \mid f(x) = \min_{x"} f(x")\} \\ &\cs{argminC} & \argminC_x f(x) &= \{x \mid f(x) = \min_{x"} f(x")\} \\ &\cs{argminD} & \argminD_x f(x) &= \{x \mid f(x) = \min_{x"} f(x")\} \\ &\cs{argminE} & \argminE_x f(x) &= \{x \mid f(x) = \min_{x"} f(x")\} \\ &\cs{argminF} & \argminF_x f(x) &= \{x \mid f(x) = \min_{x"} f(x")\} \\ &\cs{underset} & \underset{x}{\mathrm{argmin}} f(x) &= \{x \mid f(x) = \min_{x"} f(x")\}\\ &\cs{argminG} & \argminG_x f(x) &= \{x \mid f(x) = \min_{x"} f(x")\} \\ &\cs{argminH} & \argminH_x f(x) &= \{x \mid f(x) = \min_{x"} f(x")\} \\ &\cs{argminI} & \argminI_x f(x) &= \{x \mid f(x) = \min_{x"} f(x")\} \end{align} \end{document} 

entrez la description de limage ici

Résultats

Comme prévu, de nombreuses lignes sont composées de la même manière. Cependant, les macros définies avec \mathop nobéiront pas à loption nonamelimits. De plus, le résultat de \argminD est clairement faux, car la limite est composée en dessous de «max» et non en dessous du nom complet de lopérateur.

La construction avec \underset est fausse car elle nutilisera pas lespacement correct après lopérateur: un espace fin suit tous les autres et cest la bonne façon de composer . Comparez \sin x et \mathrm{sin}x pour voir cet espace mince dans un contexte différent.

Notez que \argminC et \argminA donnent le même résultat, ainsi que \argminD et \argminB. Explication: \arg et \max sont déjà définis comme opérateurs, donc TeX insère un espace fin si lun en suit directement un autre. Utiliser \argminC ou \argminD fait simplement tourner TeX un peu plus, sans aucun avantage par rapport à \argminA ou \argminB.

Commentaires

  • Cela devrait être la réponse acceptée.
  • Isn ‘ t \newcommand{\argmin}{\operatornamewithlimits{argmin}} différent en ce quil nutilise ‘ t amsmath package?
  • @HomeroEsmeraldo \operatornamewithlimits est une commande obsolète définie par amsopn (un package chargé par amsmath, rarement utilisé seul).
  • Merci. Pour une raison quelconque, seul \underset a donné des résultats satisfaisants pour with (avec x étant sous argmin, pas adjacent).
  • et comment le faire fonctionner dans Jupyter ?

Réponse

Jutilise \newcommand{\argmin}{\operatornamewithlimits{argmin}}.

Commentaires

  • +1 Jaime ça – pourquoi trop compliquer les choses? Cela ressemble exactement à la réponse \DeclareMathOperator*.
  • Cela donne  » argmin « . Pour obtenir  » arg min  » (sans doute la notation la plus courante), définissez-le sur {arg\,min}.
  • Google ma donné 669 000 réponses pour  » arg min  » et 520 000 réponses pour  » argmin « , donc je ‘ d appeler cela une égalité. 😉
  • ça marche …? une instruction dimportation manque-t-elle?
  • Google Scholar ma obtenu 171 000 pour  » arg min  » et 116 000 pour  » argmin « .

Réponse

Utilisez \usepackage{amsmath} puis:

\operatorname*{argmin}_\theta f(x) 

entrez la description de limage ici

Ou de la même manière (pour ajouter un espace),

\operatorname*{arg\,max}_\theta f(x) 

entrez la description de limage ici

Commentaires

  • concis et précis!

Réponse

Une autre alternative (dans un certain sens, la solution la plus pauvre, voir le commentaire ci-dessous), pourrait être de définir \argmin en termes de \min et \arg.

\newcommand{\argmin}{\arg\!\min} 

De cette manière, 1) \argmin se comportera toujours de la même manière car \min, 2) na pas besoin de amsmath ou ne se soucie pas des commandes \operator... 3) oui, la variable nest pas centrée (elle est centrée dans la partie min ), mais cela peut même être ce que vous voulez (car il est centré de la même manière a \min, également le « g » dans \arg nabaisse pas davantage le sous-argument).

\documentclass[fleqn]{article} \newcommand{\argmin}{\arg\!\min} \begin{document} \[ \argmin_x f(x) = \{x | f(x) = \min_{x"} f(x")\} \] \[ \min_x f(x) = \{f(x) | f(x) < f(x_0) \forall x_0 \in R \] \end{document} 

argmin

Commentaires

  • Cela ‘ ne semble pas être une bonne idée. \argmin_{x\in X\cap Y} f(x) le cassera complètement.
  • À quoi sert la commande \arg de toute façon?
  • @ThomasAhle, arg est pour la fonction argument (angle dans le plan complexe, $ z = | z | e ^ {i \ arg z} $. Tohecz est juste à côté.
  • @ boycott.se-yo ‘, bon point.

Réponse

ou vous pouvez utiliser la commande underet. Par exemple:

 R = \underset{n} {\mathrm{argmax}} ~P(L_n|\mathbf{x}) 

Commentaires

  • Veuillez ne ‘ pas lutiliser. Cela fait de argmin un mathord plutôt quun mathop et lespacement est incorrect. De plus, cela najustera pas automatiquement les limites en mode mathématique en ligne.

Réponse

Jutiliserais \mathop et \mathrm, et éventuellement \limits ou \nolimits, selon le comportement souhaité lorsquil est combiné avec _ et ^. Voir ci-dessous.

\documentclass{article} \begin{document} { nothing: \newcommand{\argmin}{\mathop{\mathrm{argmin}}} $\argmin_a^b$ $$\argmin_a^b$$ } { limits: \newcommand{\argmin}{\mathop{\mathrm{argmin}}\limits} $\argmin_a^b$ $$\argmin_a^b$$ } { nolimits: \newcommand{\argmin}{\mathop{\mathrm{argmin}}\nolimits} $\argmin_a^b$ $$\argmin_a^b$$ } \end{document} 

Réponse

Cela fonctionne sans package supplémentaire. Cependant, il créera une nouvelle ligne.

$$\pi(s) = arg\max_\theta$$ 

Commentaires

  • $$...$$ nest pas recommandé dutiliser avec LaTeX. Mieux vaut utiliser \[ ... \] pour un espacement vertical correct.
  • Cette solution ne composera pas correctement argmax. Ici, arg sera en italique (et avec un mauvais espacement), et max sera à la verticale.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *