Matematika: logaritmický graf

Wiring, C++, C, Java, ...
Pravidla fóra
Toto subfórum slouží k řešení obecných otázek kolem programování (konstrukce, knihovny, alokace paměti, ...)
Odpovědět
AstroMiK
Příspěvky: 593
Registrován: 08 pro 2017, 19:05
Reputation: 0

Matematika: logaritmický graf

Příspěvek od AstroMiK » 28 říj 2019, 10:07

Potřeboval bych pomoc nějakého matematika.

Měřím nějakou hodnotu v rozsahu 0 až maximálně 65535. Chtěl bych z ní dělat graf, který má ale maximální vertikální rozlišení 0 až 255 bodů.
Důležité je, že bych ten graf chtěl logaritmický - aby při nízkých naměřených hodnotách měl velkou citlivost, ale s vysokými vstupními hodnotami ta citlivost klesala.

Prostě bych chtěl mít v grafu nějak viditelný rozdíl mezi naměřenými hodnotami 10 a 20, ale už mě skoro nezajímá rozdíl mezi 63000 a 65000.

Můžete mi poradit nějaký vzorec, kterým tu vstupní hodnotu přepočítat?
Ideálně, kdyby ten vzorec měl jeden parametr se skutečně změřenou maximální hodnotou - protože 65535 se v reálu asi nikdy nenaměří, tak abych se zbytečně nepripravil o horní část prostoru pro graf.

Zkouším na to jít přes přirozené i desítkové logaritmy, ale nějak jsem se do toho zamotal.

Začátek grafu jsem si představoval tak, že vstupní hodnota 0 bude i nula v grafu.
Hodnota 1 bude 1 bod v grafu a pak se začne nějak postupně ubírat ta citlivost.

Uživatelský avatar
gilhad
Příspěvky: 786
Registrován: 07 bře 2018, 11:22
Reputation: 0

Re: Matematika: logaritmický graf

Příspěvek od gilhad » 28 říj 2019, 11:17

hodnota 0 neni pro logaritmy stastna, protoze jeji logaritmus je minus nekonecno - posun to o jednicku.
pokud je 65535 prakticky nenameritelna, klidne ji spoj s o jedna mensi.

Logaritmus potrebujes s nejakym rozumnym zakladem, aby log x(2^16-2)=255 (log ?(1)==0 vzdy)

takze x^255=2^16 (priblizne) a tedy priblizne x= 255 odmocina z 2^16 = 2 ^ (16/255) priblizne tedy 2^(1/16) - s tim, ze hodnoty prez 255 proste oriznes dolu na 255

Takze potrebujes pouzit logaritmus se zakladem rovnym 16.odmocnine ze dvou. (na cislo o jedna vetsi nez namerene)

Pak mas ale problem, ze 0->0; 1->16; 65535->255 - ten skok na zacatku se ti nelibi.

----
Dalsi moznost je proste pouzit druhou odmocninu, kde 0->0 1-2 ->1 3-7->3 ... 65535->256 (cili zaokrouhlit na nejblizsi a ten konec oriznout 255)

----
Pak je tu moznost vzit nejakou podobnou funkci, ktera se ti "skoro libi" a aplikovat ji v nejakem mensim rozsahu (a pripadne k vysledku neco pricist/odecist, "aby to vyslo hezky") a nekolik pocatecnich hodnot (pripadne i kus konce) resit jako specialni pripady, kde si od oka udelas tabulku, jak by se ti to opticky libilo.

Pokud ten graf bude slouzit jen k nazornemu zobrazovani (takze se nebude prevadet zpet pro vypocty) a namerene hodnoty si uchovas pro dalsi vypocty (prumery, statistiky a tak) presne, tak nevadi, ze ten graf nebude uplne presny, ale bude jen nazorny a dobre vypadajici.

AstroMiK
Příspěvky: 593
Registrován: 08 pro 2017, 19:05
Reputation: 0

Re: Matematika: logaritmický graf

Příspěvek od AstroMiK » 28 říj 2019, 11:31

DÍKY.

Ta odmocnina bude asi přesně to, co potřebuju.
Šel jsem na to zbytečně moc složitě.

S logaritmama jsem se zasek přesně na tom, jak píšeš (nulu jsem si sice ošetřil speciální podmínkou, ale pro jedničku už byl ten graf moc vysoký).


Uvažoval jsem i o nějakém sínusu kde 0 až 90° bude odpovídat vstupu 0 až 65535, ale odmocnina bude asi nejlepší.

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 19 hostů