Commando voor argmin of argmax?

Hoe kun je argmin of argmax in latex krijgen? Twee oplossingen die ik heb gevonden zijn:

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

Nog andere ideeën?

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

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

Reacties

  • Hoe voelen deze oplossingen (vooral de tweede) niet goed? De \DeclareMathOperator is de manier om in dit geval te gaan.
  • Persoonlijk vind ik het uiterlijk van \text{arg}\,\max\limits_{\theta}\,
  • hoe zit het met hoe het werkt in Jupyter?

Antwoord

Zoals Pieter opmerkte, is de juiste manier om argmin en argmax operators in LaTeX te definiëren:

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

Eigenlijk gebruik je de amsopn pakket zou voldoende zijn, maar het” wordt intern door amsmath geladen, wat sowieso wordt aanbevolen voor het zetten van wiskunde.

Het * in \DeclareMathOperator* plaatst het onderstreepte argument onder het woord in plaats van rechtsonder.

Opmerkingen

  • Als je \DeclareMathOperator*{\argmin}{\arg\!\min} gebruikt, verwijder je de lelijke ruimte tussen arg en min.
  • @rbp Waarom zou je \arg\min gebruiken als je gewoon argmin doet hetzelfde?
  • @egreg je ‘ hebt gelijk. Ik kwam tot deze door wat te experimenteren met andere opties en ‘ niet terug te kijken 🙂
  • In ConTeXt is dat: \definemathcommand [argmin] [limop] {\mfunction{arg\,min}}
  • Uitleg: ik heb de dunne spatie (\,) tussen arg en min gelaten omdat ‘ is wat de originele poster in de vraag, dus ik ging ervan uit dat ze de ruimte daar wilden. Persoonlijk zou ik \DeclareMathOperator*{\argmin}{argmin} doen, zonder de spatie.

Answer

Samenvatting

In het vervolg wordt LaTeX verondersteld.

Inleidende vragen

1. Moet een dunne spatie “arg” van “min” scheiden?

Dit is een kwestie van persoonlijke voorkeur. De standaarddefinitie voor \limsup heeft een dunne spatie, aan de andere kant wordt “arcsin” meestal geschreven zonder spatie tussen de twee componenten. Consistentie is, zoals altijd, het sleutelwoord: het gebruik van een macrodefinitie zorgt ervoor en ook het gemak van het aanpassen van de typografie in het hele document, als het overschakelen van de ene optie naar de andere nodig is.

2. Moeten limieten in weergavestijl onder de operator vallen?

Ook dit is discutabel en de conventies die worden gebruikt in het veld waarvoor het document is geschreven, moeten worden gevolgd.

3. Moet de naam van de operator rechtop worden gezet?

Zeker, net als alle andere namen van operators / functies, zoals sinus en cosinus.

Beschikbare tools

1. amsmath

Met amsmath kan men in de preambule

\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 

Natuurlijk mag er slechts één hiervan worden gebruikt. In het document is het voldoende om \argmin in te typen en de afstand rond de operator zal de juiste zijn volgens de gebruikelijke regels voor wiskundig zetwerk.

De schijnbaar verschillend

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

is niet echt zo, omdat het “in wezen hetzelfde is als \DeclareMathOperator*{\argmin}{argmin}; bovendien gebruikt het een verouderd commando, dat zou \operatorname* moeten zijn.

2. Geen pakket

De volgende definities lijken erg op de bovenstaande, in dezelfde volgorde

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

Met \underset

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

Dit werd ook vermeld in de vraag en in één antwoord, maar het is fout, zoals de visuele vergelijking zal laten zien.

3. Verschillen

De “geen pakket” -versie is veel stijver dan de amsmath -versie, omdat dit pakket de nonamelimits optie die automatisch alle operators wijzigt, zoals \lim, \max die gewoonlijk limieten hebben eronder (in displays) om ze aan de zijkant te hebben. Dezelfde optie zou natuurlijk ook werken op nieuw gedefinieerde operatoren, op voorwaarde dat \DeclareMathOperator* is gebruikt.

Testdocument

In de volgende test document, worden de voorgestelde definities of constructies vergeleken.

\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} 

voer de afbeeldingsbeschrijving hier in

Resultaten

Zoals voorspeld, zetten veel regels hetzelfde. De macros die zijn gedefinieerd met \mathop zullen echter niet voldoen aan de optie nonamelimits. Ook het resultaat van \argminD is duidelijk verkeerd, aangezien de limiet onder “max” wordt gezet en niet onder de hele operatornaam.

De constructie met \underset is verkeerd omdat het niet de juiste tussenruimte gebruikt na de operator: een dunne spatie volgt alle andere en het is de juiste manier om te zetten . Vergelijk \sin x en \mathrm{sin}x om deze dunne ruimte in een andere context te zien.

Merk op dat \argminC en \argminA geven hetzelfde resultaat, evenals \argminD en \argminB. Uitleg: \arg en \max zijn al gedefinieerd als operators, dus TeX voegt een dunne spatie in als de ene direct op de andere volgt. Als je \argminC of \argminD gebruikt, laat TeX gewoon wat meer draaien, zonder voordeel ten opzichte van \argminA of \argminB.

Reacties

  • Dit zou het geaccepteerde antwoord moeten zijn.
  • Is niet ‘ t \newcommand{\argmin}{\operatornamewithlimits{argmin}} anders doordat ‘ t amsmath pakket?
  • @HomeroEsmeraldo \operatornamewithlimits is een verouderd commando gedefinieerd door amsopn (een pakket geladen door amsmath, wordt zelden op zichzelf gebruikt).
  • Bedankt. Om de een of andere reden gaf alleen \underset bevredigende resultaten voor with (waarbij x onder argmin staat, niet ernaast).
  • hoe zit het met hoe het werkt in Jupyter ?

Answer

Ik gebruik \newcommand{\argmin}{\operatornamewithlimits{argmin}}.

Reacties

  • +1 Ik vind dit leuk – waarom dingen te ingewikkeld maken? Dit ziet er precies hetzelfde uit als het \DeclareMathOperator* antwoord.
  • Dit levert ” argmin “. Om ” arg min ” (misschien wel de meest gebruikelijke notatie) te krijgen, stelt u deze in op {arg\,min}.
  • Google gaf me 669.000 antwoorden voor ” arg min ” en 520.000 antwoorden voor ” argmin “, dus ik ‘ zou het een gelijkspel noemen. 😉
  • dit werkt …? ontbreekt er een importinstructie?
  • Google Scholar heeft 171.000 voor ” arg min ” en 116.000 voor ” argmin “.

Antwoord

Gebruik \usepackage{amsmath} en vervolgens:

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

voer hier de beschrijving van de afbeelding in

Of op dezelfde manier (voor het toevoegen van een spatie)

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

voer hier de beschrijving van de afbeelding in

Reacties

  • beknopt en ter zake!

Antwoord

Een ander alternatief (in zekere zin de slechtere oplossing, zie onderstaande opmerking), zou kunnen zijn om \argmin te definiëren in termen van \min en \arg opdrachten.

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

Op deze manier zal 1) \argmin zich altijd op dezelfde manier gedragen aangezien \min, 2) amsmath niet nodig heeft of \operator... -opdrachten nodig heeft 3) ja, de variabele is niet gecentreerd (het is gecentreerd in het min deel ), maar dat is misschien zelfs wat u wilt (aangezien het op dezelfde manier is gecentreerd a \min, ook de “g” in \arg verlaagt het onder-argument niet verder).

\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

Opmerkingen

  • Dit lijkt ‘ geen goed idee. \argmin_{x\in X\cap Y} f(x) zal het volledig verbreken.
  • Waar is het \arg commando eigenlijk voor?
  • @ThomasAhle, arg is voor de argumentfunctie (hoek in het complexe vlak, $ z = | z | e ^ {i \ arg z} $. Tohecz heeft trouwens gelijk.
  • @ boycott.se-yo ‘, goed punt.

Antwoord

of je zou het underset commando kunnen gebruiken. Bijvoorbeeld:

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

Reacties

  • Gelieve ‘ dit niet te gebruiken. Dit maakt argmin een mathord in plaats van een mathop en de spatiëring is onjuist. Bovendien worden hierdoor de limieten niet automatisch aangepast in de inline wiskundige modus.

Antwoord

Ik zou \mathop en \mathrm, en uiteindelijk \limits of \nolimits, afhankelijk van het gewenste gedrag in combinatie met _ en ^. Zie hieronder.

\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} 

Antwoord

Dit werkt zonder enig aanvullend pakket. Het zal echter een nieuwe regel aanmaken.

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

Reacties

  • $$...$$ wordt niet aanbevolen voor gebruik met LaTeX. Gebruik beter \[ ... \] voor de juiste verticale afstand.
  • Deze oplossing zal argmax niet correct zetten. Hier zal arg cursief zijn (en met een slechte spatiëring), en max zal rechtop staan.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *