Komento argminille tai argmaxille?

Kuinka saat argminin tai argmaxin Latexista? Kaksi löytämääni ratkaisua ovat:

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

Onko muita ideoita?

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

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

Kommentit

  • Kuinka nämä ratkaisut (etenkin toinen) vaikuttavat vääriltä? \DeclareMathOperator on tapa tässä tapauksessa.
  • Pidän henkilökohtaisesti
  • entäs miten saada se toimimaan Jupyterissa?

Vastaa

Kuten Pieter huomautti, oikea tapa määrittää argmin- ja argmax-operaattorit LaTeX: ssä on:

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

Oikeastaan käyttämällä amsopn -paketti riittäisi, mutta se ladataan amsmath sisäisesti, mikä on kuitenkin suositeltavaa matemaattiseen ladontaan.

* kohtaan \DeclareMathOperator* sijoittaa alleviivatun argumentin sanan alle sen oikeassa alakulmassa.

Kommentit

  • Jos käytät \DeclareMathOperator*{\argmin}{\arg\!\min} -toimintoa, pääset eroon rummasta tilasta arg ja min.
  • @rbp Miksi \arg\min pitäisi käyttää, kun yksinkertaisesti argmin tekee saman?
  • @egreg olet ’ oikeassa. Pääsin tähän kokeilemalla muita vaihtoehtoja, enkä ’ katsonut taaksepäin 🙂
  • ConTeXt: ssä: \definemathcommand [argmin] [limop] {\mfunction{arg\,min}}
  • Selitys: Jätin argin ja min välisen ohuen tilan (\,) koska ’ s mitä alkuperäisellä julisteella oli kysymys, joten oletin, että he halusivat tilaa siellä. Henkilökohtaisesti tekisin vain \DeclareMathOperator*{\argmin}{argmin} ilman välilyöntiä.

Vastaa

Yhteenveto

Jatkossa oletetaan LaTeX.

Alustavat kysymykset

1. Pitäisikö ohut tila erottaa “arg” ja “min”?

Tässä on kyse henkilökohtaisista mieltymyksistä. Oletusmäärittelyssä \limsup on ohut tila, toisaalta ”arcsin” kirjoitetaan yleensä ilman välilyöntiä kahden komponentin välillä. Johdonmukaisuus on, kuten aina, avainsana: makron määrittelyn avulla varmistetaan se ja myös koko asiakirjan kirjasimen muokkaamisen helppous, jos vaihdetaan vaihtoehdosta toiseen.

2. Pitäisikö rajoitusten ylittää operaattorin näyttötyyli?

Tämä on myös kiistanalainen ja asiakirjan kirjoituskentässä käytettyjä käytäntöjä tulisi noudattaa.

3. Pitäisikö operaattorin nimi olla pystysuuntainen?

Ehdottomasti, kuten kaikki muut operaattorin / funktion nimet, kuten sini ja kosini.

Käytettävissä olevat työkalut

1. amsmath

Kun amsmath voidaan tehdä johdanto-osassa

\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 

Tietysti vain yhtä näistä tulisi käyttää. Asiakirjassa riittää, että kirjoitat \argmin, ja etäisyys operaattorin ympärillä on oikea matemaattisen ladonnan yleisten sääntöjen mukaisesti.

Näennäisesti näennäisesti erilainen

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

ei todellakaan ole, koska se on olennaisesti sama kuin \DeclareMathOperator*{\argmin}{argmin}; Lisäksi se käyttää vanhentunutta komentoa, jonka tulisi olla \operatorname*.

2. Ei pakettia

Seuraavat määritelmät ovat hyvin samanlaisia kuin yllä olevat, samassa järjestyksessä

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

Kanssa \underset

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

Tämä mainittiin myös kysymyksessä ja yhdessä vastauksessa, mutta se on väärä, kuten visuaalinen vertailu osoittaa.

3. Erot

”Ei pakettia” -versio on paljon jäykempi kuin amsmath -versio, koska tämä paketti voi vastaanottaa nonamelimits -vaihtoehto, joka muuttaa automaattisesti kaikki operaattorit, kuten \lim, \max, joiden alla on yleensä rajoituksia ( näytöt), jotta ne olisivat sivussa. Sama vaihtoehto toimisi tietysti myös uusille operaattoreille, jos \DeclareMathOperator* on käytetty.

Testiasiakirja

Seuraavassa testissä asiakirjassa ehdotettuja määritelmiä tai rakenteita verrataan.

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

kirjoita kuvan kuvaus tähän

Tulokset

Kuten ennustettiin, monet rivit asettavat saman. \mathop -kohdassa määritetyt makrot eivät kuitenkaan noudata vaihtoehtoa nonamelimits. Myös \argminD -tulos on selvästi väärä, koska raja on asetettu alle “max” eikä alle koko operaattorin nimen.

Rakenne, jossa on \underset, on väärä, koska se ei käytä oikeaa väliä käyttäjän jälkeen: ohut tila seuraa kaikkia muita ja se on oikea tapa kirjoittaa . Vertaa \sin x ja \mathrm{sin}x nähdäksesi tämän ohuen tilan eri kontekstissa.

Huomaa, että \argminC ja \argminA antavat saman tuloksen, samoin kuin \argminD ja \argminB. Selitys: \arg ja \max on jo määritelty operaattoreiksi, joten TeX lisää ohuen tilan, jos toinen seuraa suoraan toista. \argminC – tai \argminD -toiminnon käyttäminen saa TeX-pyörän pyörimään hieman enemmän ilman etua \argminA tai \argminB.

Kommentit

  • Tämän pitäisi olla hyväksytty vastaus.
  • Isn ’ t \newcommand{\argmin}{\operatornamewithlimits{argmin}} eroaa siitä, että se ei ’ käytä amsmath -paketti?
  • @HomeroEsmeraldo \operatornamewithlimits on vanhentunut komento, jonka määrittelee amsopn (paketti, jonka lataa amsmath, käyttää itse harvoin).
  • Kiitos. Jostain syystä vain \underset antoi tyydyttävät tulokset (x: n ollessa argminin alla, ei sen vieressä).
  • entäs miten saada se toimimaan Jupyterissa ?

vastaus

Käytän \newcommand{\argmin}{\operatornamewithlimits{argmin}}.

Kommentit

  • +1 Pidän tästä – miksi monimutkaistaa asioita? Tämä näyttää täsmälleen samalta kuin \DeclareMathOperator* vastaus.
  • Tämä antaa ” argmin ”. Saadaksesi ” arg min ” (epäilemättä tavallisin merkintätapa), aseta se arvoon {arg\,min}.
  • Google antoi minulle 669 000 vastausta kysymykseen ” arg min ” ja 520 000 vastausta kyselyyn ” argmin ”, joten ’ kutsun sitä tasapeliksi. 😉
  • tämä toimii …? onko puuttuvaa tuontilausetta?
  • Google Scholar sai minut 171 000: lle ” arg min ” ja 116 000 varten ” argmin ”.

Vastaa

Käytä \usepackage{amsmath} ja sitten:

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

kirjoita kuvan kuvaus tähän

Tai vastaavasti (välilyönnin lisäämiseksi),

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

kirjoita kuvan kuvaus tähän

kommentit

  • ytimekäs ja asiaankuuluva!

Vastaa

Ainoa vaihtoehto (jossain mielessä huonompi ratkaisu, katso alla oleva kommentti) voisi olla määritellä \argmin \min ja \arg -komennot.

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

Tällä tavoin 1) \argmin käyttäytyy aina samalla tavalla kuten \min, 2) ei tarvitse amsmath tai välitä komennoista \operator... 3) kyllä, muuttuja ei keskellä (se on keskitetty min -osaan ), mutta se voi jopa olla mitä haluat (koska se on keskitetty samalla tavalla a \min, myös ”g” ryhmässä \arg ei laske aliargumenttia edelleen).

\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

Kommentit

  • Tämä ei ’ näytä hyvältä ajatukselta. \argmin_{x\in X\cap Y} f(x) rikkoo sen kokonaan.
  • Mille komennot \arg siis tarkoitetaan?
  • @ThomasAhle, arg on tarkoitettu argumenttitoiminnolle (kulma kompleksitasossa, $ z = | z | e ^ {i \ arg z} $. Tohecz on muuten oikea.
  • @ boycott.se-yo ’, hyvä asia.

Vastaa

tai voit käyttää alikomentokomentoa. Esimerkiksi:

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

Kommentit

  • Älä käytä ’ tätä. Tämä tekee argmin a mathord pikemminkin kuin mathop ja väli on väärä. Lisäksi tämä ei säädä rajoja automaattisesti matemaattisessa tilassa.

vastaus

Käytän \mathop ja \mathrm ja lopulta \limits tai \nolimits, riippuen halutusta käyttäytymisestä yhdistettynä _ ja ^. Katso alla.

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

Vastaa

Tämä toimii ilman lisäpakettia. Se kuitenkin luo uuden rivin.

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

Kommentit

  • $$...$$ ei suositella käytettäväksi LaTeX: n kanssa. Paremman \[ ... \] -toiminnon käyttäminen oikean pystysuoran välin suhteen.
  • Tämä ratkaisu ei kirjoita argmaxia oikein. Tässä arg on kursiivilla (ja huonoilla väleillä) ja max on pystyssä.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *