Matematické Fórum

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

#1 05. 10. 2009 14:44 — Editoval rejca (05. 10. 2009 14:48)

rejca
Zelenáč
Příspěvky: 2
Reputace:   
 

Počítačové zracování tisíců řádků dat (nelineární rovnice)

Dobrý den,

mám množství rovnic - tisíce, které se tváří jako lineární rovnice, ale bohužel nejsou, zkoušel jsem je řešit jako soustavy x rovnic o x neznamých, ale pokaždé vycházejí jiné koeficienty.

Data mají tvar:

77    167    27    0    242    146    22    49    29    1    67    24
82    205    86    7    240    57    5    65    0    195    99    34
80    68    28    0    240    80    4    214    250    58    87    39
70    164    80    0    239    0    0    122    0    217    81    38
80    147    46    0    236    39    12    91    220    153    99    34
78    74    95    0    232    0    0    125    230    76    83    40
82    147    97    0    230    35    0    200    0    106    83    37
70    90    92    0    224    58    0    97    75    151    100    39
76    224    45    11    223    52    4    99    0    87    90    36
79    173    65    3    221    132    0    88    0    52    97    35
73    73    28    0    219    112    0    108    250    62    100    38
81    237    17    0    213    138    5    108    0    0    87    32
83    239    90    0    212    0    38    62    0    224    87    33
79    92    96    1    212    74    2    250    0    26    94    35
83    226    95    0    210    12    12    97    0    250    89    33

kde první sloupeček je hodnota nějakým způsobem získaná ze sloupečků napravo, kde poslední dvě hodnoty možná nemají ve výsledném vzorci váhu, aby to nebylo tak jednoduché, tak čísla sloupečku nalevo mohou být desetinná (jen to není vidět), je možné, že desetinná čísla mohou být vy skutečnosti všechny

nepotřebuju úplně přesnou rovnici (asi to ani nepůjde, když rovnice nejsou lineární), ale přibližný vztah by se mi hodil, nebo nějaký statistický algoritmus či nástroj jak to zpracovat

napadlo mě rovnice prohlásit za lineární a řešit vždy několik rovnicí o více neznámých a výsledné parametry používat dle charakteru rovnice, ale nevím jestli neexistuje nějaké jednodušší či účinější řešení

Když to napíšu jednoduše, potřebuju na základě hodnot druhého a dalších sloupečků predikovat (co nejpřesněji) hodnotu sloupečku prvního. Jaký bude prostředek je jedno (co nejjednodušší).

Děkuji

Offline

 

#2 05. 10. 2009 14:50

Kondr
Veterán
Místo: Linz, Österreich
Příspěvky: 4246
Škola: FI MU 2013
Pozice: Vývojář, JKU
Reputace:   38 
 

Re: Počítačové zracování tisíců řádků dat (nelineární rovnice)

EDIT: po druhém přečtení tomu rozumím trochu lépe, ale pomohlo by vědět, co čísla v jednotlivých sloupcích znamenají. Jedna možnost je tipnout, že ta závislost bude ve všech složkách lineární a počítat koeficienty buď deterministicky (metoda nejmenších čtverců) nebo třeba nějakým genetickým algoritmem. Pokud ale hrozí, že závislost je třeba typu $x=e^y+z^2+...$, pak tento přístup bude generovat nesmysly.


BRKOS - matematický korespondenční seminář pro střední školy

Offline

 

#3 05. 10. 2009 15:04 — Editoval rejca (05. 10. 2009 15:54)

rejca
Zelenáč
Příspěvky: 2
Reputace:   
 

Re: Počítačové zracování tisíců řádků dat (nelineární rovnice)

dobře, data jsou jasná, původ sem myslím nemusím psát - není důležitý (jedná se o jednu hru, ale problém mě zajímá z čistě matematicko-statistické stránky), výsledná hodnota v prvním sloupečku je složena z matematického výpočtu, ve kterém figurují ostatní sloupce, poslední dva sloupečky by tam nemuseli figurovat). Zajímalo by mě jestli se to dá nějak řešit. Jedná se o vlastnosti vyjádřené číselnou hodnotou.

rovnici popsat neumím, buď ji chci najít a nebo nějak soubor dat vyřešit statisticky

původně jsem myslel (vezmu první řádek), že data

Code:

77    167    27    0    242    146    22    49    29    1    67    24

jsou součástí lineární rovnice

Code:

77 = 167 * x1 + 27* x2 + 0*x3 + 242*x4 + 146*x5 + 22*x6 + 49*x7 + 1*x8

zkusil jsem tedy řešit soustavu 8 rovnic o osmy neznámých, dále i deseti rovnic o deseti neznámých (vzal jsem i posledni dva sloupečky), ale koeficienty vždy vycházejí různe (zkoušel jsem rovnice vypočítat z různých dat).

Code:

Cislo = A* x1 + B* X2  + C* x3 + D*x4 + E*x5 + F*x6 + G*x7 + H*x8

Takže skutečně rovnici popsat neumím, ale vím, že mezi prvním sloupečkem a zbytkem dat existuje určitě nějaká závislost či funkce.

cisla x1 az x8 (x10) znam, ale Cislo potrebuju ze vzorku dat (tisíce řádků) prostě predikovat

edit: bohužel vůbec nevím jaká závislost mezi čísly může být, ale předpokladám, že to nebude vzdáleno od lineárních rovnic, je možné (pravděpodobné), že se jen koeficienty mění na základě určitých hodnot

Offline

 

#4 05. 10. 2009 22:10

Kondr
Veterán
Místo: Linz, Österreich
Příspěvky: 4246
Škola: FI MU 2013
Pozice: Vývojář, JKU
Reputace:   38 
 

Re: Počítačové zracování tisíců řádků dat (nelineární rovnice)

↑ rejca:Jak jsem psal, můžeš předpokládat, že takové koeficienty existují a pak je hledat pomocí nejmenších čtverců. Tím ale neodhalíš příčiny nelinearity, akorát si vyrobíš model, který má šanci něco predikovat. Možná by pomohlo najít pár řádků, které jsou (alespoň přibližně) stejné až na jeden sloupec a z toho zjistit, jak daný sloupec ovlivňuje výsledek.


BRKOS - matematický korespondenční seminář pro střední školy

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson