Napisi osi LogPlot so uničene pri zelo natančnem delu

Logplot Axes Labels Destroyed When Working High Precision



Rešitev:

To ni samo napačno označevanje osi. Še več: dogajanje ni niti logaritemsko. Poskusimo uporabiti privzete (kljukice, ki se ne spreminjajo v dnevniku):

Najprej sMachinePrecision (pravilen rezultat):



Pokaži [LogPlot [Abs [E^x -poly], {x, -1, 1}, WorkingPrecision -> MachinePrecision], Klopi -> Samodejno]

Grafika Mathematica



Nato z večjo natančnostjo (napačen rezultat):



Pokaži [LogPlot [Abs [E^x -poly], {x, -1, 1}, WorkingPrecision -> 30], Klopi -> Samodejno]

Grafika Mathematica

Mislim, da ni vredno preučiti, kakoLogPlot deluje, saj se na tem mestu očitno zdi napaka.


To lahko obidete z uporaboParcela namestoLogPlot:



Plot [[email protected] [E^x -poly], {x, -1, 1}, WorkingPrecision -> 30]

Grafika Mathematica

Potem pa morate sami ponovno označiti osi (CustomTicks / LevelScheme so uporabni paketi). Če vas ne moti izguba prilagodljivega načrtovanja, lahko ustvarite točke, ki jih boste pokazali sebi in namListLogPlot:

ListLogPlot [Tabela [[zaščitena po e -pošti] [E^x - poli], {x, -1, 1, 0,01`30}]]

Grafika Mathematica

(Verjetno bi si želeliPridružen -> Tu je res, toda če vidite točke, vam pomaga uglasiti ploskev, zato je zdaj nisem vključil.)


Čeprav je Szabolcs svaril 'Mislim, da ni vredno poglobiti v delovanje LogPlot, saj se na tem mestu očitno zdi napaka' Mislil sem, da bom šel. Ugotovil sem, da:

Sistemski klici Log LogGraphics`LogPlotDump`scaledPlot, ki kličeSistemski zemljevid, ki kličeSystem`ProtoPlotDump`iPlot, ki kličeVizualizacija 'Core' Zemljevid, ki ni berljiv.

Da lahko problem obstaja v tej najgloblji funkciji, lahko dokažemo z neposredno uporabo'MappingFunctions', kaj je toLogPlot na koncu postane (med nekaj drugimi nastavitvami):

poly = Normal [Serija [E^x, {x, 0, 10}]]; Tabela [Vizualizacija `jedra` } &, { #1, #2} &}}], {wp, {MachinePrecision, 30}}]

tukaj vnesite opis slike

Zdi se, da je ta napaka nedosegljiva za odpravo. :-(


majhno urejanje,

poly [x_] = Normalno [Serije [E^x, {x, 0, 10}]]; LogPlot [(Abs [E^# - poly [#]] &@N [Racionaliziraj [x, 0], 20]), {x, -1, 1}]

tukaj vnesite opis slike