Polecenie dla argmin lub argmax?

Jak uzyskać argmin lub argmax w lateksie? Dwa znalezione przeze mnie rozwiązania to:

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

Jakieś inne pomysły?

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

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

Komentarze

  • Dlaczego te rozwiązania (zwłaszcza drugie) wydają się niewłaściwe? \DeclareMathOperator to właściwy sposób postępowania w tym przypadku.
  • Osobiście podoba mi się wygląd \text{arg}\,\max\limits_{\theta}\,
  • co z tym, jak sprawić, by działał w Jupyter?

Odpowiedź

Jak zauważył Pieter, prawidłowy sposób definiowania operatorów argmin i argmax w LaTeX to:

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

Właściwie używając byłby wystarczający, ale jest ładowany wewnętrznie przez amsmath, co i tak jest zalecane przy składaniu matematycznym.

* w \DeclareMathOperator* umieszcza podkreślony argument pod słowem zamiast w prawym dolnym rogu.

Komentarze

  • Jeśli użyjesz \DeclareMathOperator*{\argmin}{\arg\!\min}, pozbędziesz się brzydkiej spacji między arg i min.
  • @rbp Dlaczego należy używać \arg\min, gdy po prostu argmin robi to samo?
  • @egreg you ' racja. Doszedłem do tego na podstawie eksperymentów z innymi opcjami i nie ' nie spojrzałam wstecz 🙂
  • W ConTeXt to znaczy: \definemathcommand [argmin] [limop] {\mfunction{arg\,min}}
  • Wyjaśnienie: zostawiłem cienką spację (\,) między argumentem a min, ponieważ ' to to, co oryginalny plakat miał w pytanie, więc założyłem, że chcą tam miejsca. Osobiście zrobiłbym po prostu \DeclareMathOperator*{\argmin}{argmin}, bez spacji.

Odpowiedź

Podsumowanie

W sequelu założono LaTeX.

Pytania wstępne

1. Czy cienka spacja powinna oddzielać „arg” od „min”?

To kwestia osobistych preferencji. Domyślna definicja \limsup ma cienką spację, z drugiej strony „arcsin” jest zwykle zapisywane bez spacji między dwoma komponentami. Spójność jest, jak zawsze, słowem kluczowym: zapewni to użycie makrodefinicji, a także łatwość w modyfikowaniu składu całego dokumentu, jeśli zachodzi potrzeba przełączenia się z jednej opcji na inną.

2. Czy limity powinny znajdować się poniżej operatora w stylu wyświetlania?

Również jest to dyskusyjne i należy przestrzegać konwencji używanych w polu, dla którego dokument jest napisany.

3. Czy nazwa operatora powinna być ułożona prosto?

Zdecydowanie, podobnie jak wszystkie inne nazwy operatorów / funkcji, takie jak sinus i cosinus.

Dostępne narzędzia

1. amsmath

Za pomocą amsmath można w preambule zrobić

\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 

Oczywiście należy użyć tylko jednego z nich. W dokumencie wystarczy wpisać \argmin, a odstępy wokół operatora będą właściwe, zgodnie z powszechnymi zasadami składu matematycznego.

Pozornie inny

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

tak naprawdę nie jest, ponieważ jest zasadniczo taki sam jak \DeclareMathOperator*{\argmin}{argmin}; ponadto używa przestarzałego polecenia, którym powinno być \operatorname*.

2. Brak pakietu

Poniższe definicje są bardzo podobne do powyższych, w tej samej kolejności

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

Z \underset

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

Zostało to również wspomniane w pytaniu i w jednej odpowiedzi, ale jest to błędne, co pokaże porównanie wizualne.

3. Różnice

Wersja „bez pakietu” jest znacznie bardziej sztywna niż wersja amsmath, ponieważ ten pakiet może odbierać nonamelimits, która automatycznie zmieni wszystkie operatory, takie jak \lim, \max, które zwykle mają ograniczenia poniżej (w wyświetlacze), aby mieć je z boku. Ta sama opcja działałaby oczywiście również na nowo zdefiniowanych operatorach, pod warunkiem że zastosowano \DeclareMathOperator*.

Dokument testowy

W poniższym teście dokumentu, zostaną porównane proponowane definicje lub konstrukcje.

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

wprowadź tutaj opis obrazu

Wyniki

Zgodnie z przewidywaniami wiele linii składa się tak samo. Jednak makra zdefiniowane za pomocą \mathop nie będą zgodne z opcją nonamelimits. Również wynik \argminD jest ewidentnie błędny, ponieważ limit jest ustawiony poniżej „max”, a nie poniżej całej nazwy operatora.

Konstrukcja z \underset jest nieprawidłowa, ponieważ nie będzie używała prawidłowego odstępu po operatorze: cienka spacja następuje po wszystkich innych i jest to właściwy sposób złożenia . Porównaj \sin x i \mathrm{sin}x, aby zobaczyć tę cienką przestrzeń w innym kontekście.

Zwróć uwagę, że \argminC i \argminA dają ten sam wynik, a także \argminD i \argminB. Wyjaśnienie: \arg i \max są już zdefiniowane jako operatory, więc TeX wstawia cienką spację, jeśli następują bezpośrednio po sobie. Użycie \argminC lub \argminD sprawia, że TeX trochę bardziej kręci kołami, bez żadnej przewagi nad \argminA lub \argminB.

Komentarze

  • To powinna być zaakceptowana odpowiedź.
  • Czy nie ' t \newcommand{\argmin}{\operatornamewithlimits{argmin}} różni się tym, że nie ' nie używa amsmath pakiet?
  • @HomeroEsmeraldo \operatornamewithlimits to przestarzałe polecenie zdefiniowane przez amsopn (pakiet załadowany przez amsmath, rzadko używany samodzielnie).
  • Dzięki. Z jakiegoś powodu tylko \underset dało zadowalające wyniki dla with (gdzie x znajduje się pod argmin, a nie w sąsiedztwie).
  • co z tym, jak sprawić, by działał w Jupyter ?

Odpowiedź

Używam \newcommand{\argmin}{\operatornamewithlimits{argmin}}.

Komentarze

  • +1 Podoba mi się – po co komplikować zbyt wiele rzeczy? Wygląda to dokładnie tak samo, jak odpowiedź \DeclareMathOperator*.
  • Daje to ” argmin „. Aby uzyskać ” arg min ” (prawdopodobnie najbardziej typową notację), ustaw ją na {arg\,min}.
  • Google udzieliło mi 669 000 odpowiedzi na ” arg min ” i 520 000 odpowiedzi na ” argmin „, więc ' nazwałbym to remisem. 😉
  • to działa …? czy brakuje instrukcji importu?
  • Google Scholar dał mi 171 000 za ” arg min ” i 116 000 za ” argmin „.

Odpowiedź

Użyj \usepackage{amsmath}, a następnie:

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

tutaj wprowadź opis obrazu

Lub podobnie (aby dodać spację),

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

tutaj wprowadź opis obrazu

Komentarze

  • zwięźle i na temat!

Odpowiedź

Jeszcze inną alternatywą (w pewnym sensie gorszym rozwiązaniem, patrz komentarz poniżej) może być zdefiniowanie \argmin w kategoriach \min i \arg polecenia.

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

W ten sposób 1) \argmin będzie zachowywał się zawsze w ten sam sposób jako \min, 2) nie „nie potrzebuje amsmath ani nie przejmuje się \operator... poleceniami 3) tak, zmienna nie jest wyśrodkowana (jest wyśrodkowana w części min ), ale może nawet to być to, czego chcesz (ponieważ jest wyśrodkowany w ten sam sposób \min, a także „g” w \arg nie „t jeszcze bardziej obniża argumentu dolnego).

\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

Komentarze

  • To nie ' nie wygląda na dobry pomysł. \argmin_{x\in X\cap Y} f(x) całkowicie go zepsuje.
  • Jakie jest polecenie \arg?
  • @ThomasAhle, arg jest dla funkcji argumentu (kąt na płaszczyźnie zespolonej, $ z = | z | e ^ {i \ arg z} $. Tohecz jest tuż przy okazji.
  • @ boycott.se-yo ', dobra uwaga.

Odpowiedź

lub można użyć polecenia underset. Na przykład:

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

Komentarze

  • Nie ' nie używaj tego. To sprawia, że argmin a mathord zamiast mathop i odstępy są nieprawidłowe. Co więcej, nie spowoduje to automatycznego dostosowania limitów w trybie wbudowanej matematyki.

Odpowiedź

Użyłbym \mathop i \mathrm i ostatecznie \limits lub \nolimits, w zależności od pożądanego zachowania w połączeniu z _ i ^. Zobacz poniżej.

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

Odpowiedź

Działa to bez dodatkowego pakietu. Jednak utworzy nową linię.

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

Komentarze

  • $$...$$ nie jest zalecane do użytku z LaTeX. Lepiej użyj \[ ... \], aby uzyskać prawidłowe odstępy w pionie.
  • To rozwiązanie nie spowoduje poprawnego wpisania argmax. Tutaj argument będzie kursywą (ze złymi odstępami), a wartość maksymalna będzie ustawiona pionowo.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *