Kommando for argmin eller argmax? (Norsk)

Hvordan kan du få argmin eller argmax i Latex? To løsninger jeg fant er:

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

Noen andre ideer?

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

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

Kommentarer

  • Hvordan føles disse løsningene (spesielt den andre) ikke riktig? \DeclareMathOperator er veien å gå i dette tilfellet.
  • Personlig liker jeg utseendet til \text{arg}\,\max\limits_{\theta}\,
  • hva med hvordan du får det til å fungere i Jupyter?

Svar

Som Pieter påpekte, er den riktige måten å definere argmin- og argmax-operatorer i LaTeX på:

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

Egentlig bruker du amsopn -pakken vil være tilstrekkelig, men den lastes inn av amsmath internt, noe som uansett anbefales for matematisk setting.

* i \DeclareMathOperator* plasserer det understrekede argumentet under ordet i stedet for nederst til høyre.

Kommentarer

  • Hvis du bruker \DeclareMathOperator*{\argmin}{\arg\!\min}, blir du kvitt det stygge mellomrommet mellom arg og min.
  • @rbp Hvorfor skal man bruke \arg\min når man bare argmin gjør det samme?
  • @egreg du ‘ har rett. Jeg kom til denne fra noen eksperimentering med andre alternativer, og så ikke ‘ tilbake 🙂
  • I ConTeXt er det: \definemathcommand [argmin] [limop] {\mfunction{arg\,min}}
  • Forklaring: Jeg forlot det tynne rommet (\,) mellom arg og min fordi ‘ er hva originalplakaten hadde i spørsmål, så jeg antok at de ville ha plassen der. Personlig ville jeg bare gjort \DeclareMathOperator*{\argmin}{argmin}, uten mellomrom.

Svar

Sammendrag

I oppfølgeren antas LaTeX.

Innledende spørsmål

1. Bør et tynt rom skille «arg» fra «min»?

Dette er et spørsmål om personlig preferanse. Standarddefinisjonen for \limsup har et tynt mellomrom, derimot skrives «arcsin» vanligvis uten mellomrom mellom de to komponentene. Konsistens er som alltid nøkkelordet: å bruke en makrodefinisjon vil sikre det og også gjøre det enkelt å endre typesettingen i hele dokumentet, hvis det er nødvendig å bytte fra ett alternativ til et annet.

2. Skal grenser gå under operatøren i visningsstil?

Også dette kan diskuteres, og konvensjonene som brukes i feltet dokumentet er skrevet for, bør følges.

3. Bør operatørnavnet settes oppreist?

Definitivt, som alle andre operatør- / funksjonsnavn som sinus og cosinus.

Tilgjengelige verktøy

1. amsmath

Med amsmath kan man gjøre i innledningen,

\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 

Selvfølgelig skal bare en av disse brukes. I dokumentet er det tilstrekkelig å skrive \argmin, og avstanden rundt operatøren vil være den rette i henhold til de vanlige reglene for matematisk setting.

Det tilsynelatende forskjellig

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

er egentlig ikke slik, fordi det egentlig er det samme som \DeclareMathOperator*{\argmin}{argmin}; dessuten bruker den en avviklet kommando, som skal være \operatorname*.

2. Ingen pakke

Følgende definisjoner ligner veldig på de ovenfor, i samme rekkefølge

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

Med \underset

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

Dette ble også nevnt i spørsmålet og i ett svar, men det er feil, som den visuelle sammenligningen vil vise.

3. Forskjeller

«Ingen pakke» -versjonen er mye mer stiv enn amsmath -versjonen, fordi denne pakken kan motta nonamelimits alternativ som automatisk vil endre alle operatorer som \lim, \max som vanligvis har grenser under (i viser) for å ha dem på siden. Det samme alternativet vil selvfølgelig også virke på nylig definerte operatører, forutsatt at \DeclareMathOperator* har blitt brukt.

Testdokument

I den følgende testen dokumentet, vil de foreslåtte definisjonene eller konstruksjonene bli sammenlignet.

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

skriv inn bildebeskrivelse her

Resultater

Som forutsagt, mange linjer types like. Makroene som er definert med \mathop, vil imidlertid ikke overholde alternativet nonamelimits. Også resultatet av \argminD er tydelig feil, da grensen er satt under “maks” og ikke under hele operatørnavnet.

Konstruksjonen med \underset er feil fordi den ikke bruker riktig avstand etter operatøren: et tynt mellomrom følger alle andre, og det er riktig måte å sette . Sammenlign \sin x og \mathrm{sin}x for å se dette tynne rommet i en annen sammenheng.

Merk at \argminC og \argminA gir det samme resultatet, samt \argminD og \argminB. Forklaring: \arg og \max er allerede definert som operatorer, så TeX setter inn et tynt mellomrom hvis man følger direkte en annen. Å bruke \argminC eller \argminD får bare TeX til å snurre hjulene litt mer, uten fordel over \argminA eller \argminB.

Kommentarer

  • Dette bør være det aksepterte svaret.
  • Er ikke ‘ t \newcommand{\argmin}{\operatornamewithlimits{argmin}} forskjellig ved at det ikke ‘ t bruker amsmath pakke?
  • @HomeroEsmeraldo \operatornamewithlimits er en foreldet kommando definert av amsopn (en pakke lastet av amsmath, sjelden brukt av seg selv).
  • Takk. Av en eller annen grunn ga bare \underset tilfredsstillende resultater for med (med x under argmin, ikke ved siden av det).
  • hva med hvordan du får det til å fungere i Jupyter ?

Svar

Jeg bruker \newcommand{\argmin}{\operatornamewithlimits{argmin}}.

Kommentarer

  • +1 Jeg liker dette – hvorfor overkompliserer ting? Dette ser nøyaktig ut som \DeclareMathOperator* svaret.
  • Dette gir » argmin «. For å få » arg min » (uten tvil den vanligste notasjonen), sett den til {arg\,min}.
  • Google ga meg 669 000 svar for » arg min » og 520 000 svar for » argmin «, så jeg ‘ d kaller det uavgjort. 😉
  • dette fungerer …? mangler det en importoppgave?
  • Google Scholar fikk meg 171.000 for » arg min » og 116 000 for » argmin «.

Svar

Bruk \usepackage{amsmath} og deretter:

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

skriv inn bildebeskrivelse her

Eller tilsvarende (for å legge til et mellomrom),

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

skriv inn bildebeskrivelse her

Kommentarer

  • kortfattet og til poenget!

Svar

Bare et annet alternativ (på en eller annen måte den dårligere løsningen rundt, se kommentar nedenfor), kan være å definere \argmin når det gjelder \min og \arg kommandoer.

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

På denne måten vil 1) \argmin oppføre seg alltid på samme måte som \min, 2) ikke trenger amsmath eller bryr seg om \operator... kommandoer 3) ja, variabelen i ikke sentrert (den er sentrert i min -delen ), men det kan til og med være hva du vil (siden det er sentrert på samme måte en \min, også «g» i \arg senker ikke underargumentet ytterligere.

\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

Kommentarer

  • Dette ser ikke ‘ ut som en god idé. \argmin_{x\in X\cap Y} f(x) vil bryte den fullstendig.
  • Hva er \arg -kommandoen for uansett?
  • @ThomasAhle, arg er for argumentfunksjonen (vinkel i det komplekse planet, $ z = | z | e ^ {i \ arg z} $. Tohecz er forresten.
  • @ boycott.se-yo ‘, godt poeng.

Svar

eller du kan bruke undersettkommandoen. For eksempel:

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

Kommentarer

  • Vennligst ikke bruk ‘. Dette gjør argmin til mathord i stedet for en mathop og avstanden er feil. Videre vil dette ikke automatisk justere grensene i inline matematikkmodus.

Svar

Jeg bruker \mathop og \mathrm, og til slutt \limits eller \nolimits, avhengig av ønsket oppførsel når det kombineres med _ og ^. Se nedenfor.

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

Svar

Dette fungerer uten noen ekstra pakke. Det vil imidlertid opprette en ny linje.

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

Kommentarer

  • $$...$$ anbefales ikke å bruke med LaTeX. Bruk bedre \[ ... \] for riktig vertikal avstand.
  • Denne løsningen vil ikke angi argmax riktig. Her vil arg være i kursiv (og med dårlig avstand), og maks vil være oppreist.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *