Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Dobrý den,
předem upozorňuji, že se nejedná o žádný úkol ze školy.
Rozhodl jsem, že zkusím pomocí neuronových sítí zanalzovat data. Akorát jsem si neuvědomil, že je potřeba data zderivovat, protože z absolutních dat to nejde.
Proto se chci zeptat, zda by mi někdo poradil, odkázal, ... ? Kde mohu najít nějaký postup jak zderivovat moje data?
Pro představu data mám uložené v formátu .csv a doufám, že to vše bude možné provést v Excelu. Data mají následující strukturu. první sloupeček označuje datum měření (HH:MM:SS DD:MM::RRRR), další sloupeček je již jedna místnost, která obsahuje sloupce "naměřená teplota", "požadovaná teplota".
Děkuji za odpověď a přeji hezký den. Pro lepší představu zašlu .csv soubor.
Offline
Tak základní derivace se dělá dle vztahu
to má smysl jen pokud se intervaly mezi odečty teplot mění. Pokud né (což vřele doporučuji, ono s tím je spousta dalších, těžko řešitelných, problémů) tak stačí prostě dělat rozdíly mezi jednotlivými měřeními, protože je jen konstanta, která určuje měřítko (a měřítko ovlivňuje i spousta dalších věcí, takže nemá moc smysl se jím na začátku zabývat).
"Lepší" derivace se dělá tak, že se takto získané hodnoty (diference) ještě "proženou" nějakým filtrem. A lze také udělat i najednou vhodným filtrem.
Předpokládám ale, že pokud se věnuješ neuronovým sítím, tak návrh digitálních filtrů asi nebude tvoje oblíbená věc...takže bych začal jen s těmi diferencemi, tedy
Offline
↑ Rumburak:
No on zřejmě myslel (já to samozřejmě nevím, ale předpokládám) že hodnotu funkce (signálu) f(t) známe jen v diskrétních bodech, tj f(nT), a snažíme se nějak spočítat její derivaci v těchto bodech, tj najít f'(nT).
Obecně to samozřejmě nejde, ovšem u vhodných funkcí (které splňují Shanonův teorém) se to dá provést.
Nazývat to "derivací dat" je samozřejmě pitomost. Spíše bych to nazval analogií derivace pro "diskrétní funkce" - což jsou posloupnosti.
Offline
↑ Rumburak: Omlouvám se, jde o mé špatné nazvání příspěvku. Bohužel už to neopravím, tak mi snad prominete, je možné mi poradit k tématu?
Offline
↑ MichalAld:
1. Zvolit vzorec (takový, který bude nejlépe odpovídat naměřeným datům)
2. Proložit data vypočítanou křivkou
3. Vypočítat derivaci
Bude se jednat o numerickou derivaci?
Offline
↑ Zemi44:
To bych neřekl, a navíc se ti takový vzorec v obecném případě nepodaří najít, teda aspoň né nějaký jednoduchý.
Spíš se to dělá tak, že se pomocí vzorce prokládá jen několik bodů v okolí toho, kde to počítáš. No a nejjednoduší "vzorec" je "proložit" dva po sobě následující body přímkou a spočítat její derivaci. A to je to, co jsem ti napsal na začátku.
Můžeš vzít samozřejmě 3 body (jeden nalevo a jeden napravo od toho co počítáš), proložit je parabolou a spočítat její derivaci. Případně vzít 2 a 2 sousední body, proložit polynomem 5. stupně a spočítat derivaci...
Jenže problém je, pokud máš naměřené hodnoty zatížené nějakou chybou (šumem) tak derivování (jakýmkoliv způsobem) ti tento šum ještě zesílí.
Jak to udělat nejlépe, abychom získali co nejlepší derivaci a co nejméně ovlivněnou tím šumem (chybami měření), o tom je celý obor, končící až návrhem optimálních filtrů.
Ale pro tvoje experimenty s neuronovou sítí podle mě krásně postačí vzít prostě rozdíl dvou po sobě následujících hodnot...nevím, co na tom hledáš za složitosti.
Offline
↑ Zemi44:
No čím blíže jsou body u sebe, tím lépe to odpovídá skutečné derivaci.
Navíc se ti může (v takovémto případě) stát, že porušíš ten shanonův teorém.
Což lze demonstrovat na jednoduchém případu: 1, 20, 1, 20, 1, 20, 1, 20 atd...
když bys dělal rozdíl předcházejícího a následujícího čísla, dostanež vždycky nulu, což realitě rozhodně neodpovídá.
Offline
↑ MichalAld:4
Dobře díky za vysvětlení. Mohl bych ti pak zaslat na zkouknutí excel, zda to mám správně?
Offline