Soustava lineárních rovnic

mcer

  • *
  • 21
  • Co dělám špatně?
    • Zobrazit profil
    • E-mail
Re:Soustava lineárních rovnic
« Odpověď #15 kdy: 16. 06. 2021, 12:06:53 »
Tak opět zdravím a jdeme na to.

Gaussova eliminace částečně pomohla, ale i tak je to docela fuška v tomto případě bezčíselných rovnic a pořád je velká pravděpodobnost, že někde něco zapomenu sečíst/odečíst/vynásobit ... se správným znaménkem.

Počítání s determinanty pomocí Cramerova pravidla, to je elegantnější způsob. Ten se mi líbí.

Rozchodil jsem i interaktivní řádek Pythona(3) a též se mi to podařilo. Výsledek byl pro mě srozumitelný pouze v řádkové formě, ne ve zlomcích.

On to navíc ale ještě vše roznásobil. Musel jsem to roznásobit tedy i na papíře.
Místo např. (x1 - x2)(y1 - y2)x1 ..., což by mi stačilo, udělat ještě x1x1y1 - x1x1y2 - x1x2y1 + x1x2y2 ....

Ano, např. (x1 - x2)(y2 - y1) je koeficient 'a' v rovnici:
(x1 - x2)(y2 - y1)x + (y1 - y2)(y1 - y2)y + (x2 - x1)(x2 - x1)x1 + (y1 - y2)y1 = 0.

Nechci konkrétně oznamovat přesně co dělám, ale vzorce pro výpočet x a y jsou součástí kódu programu, což se dá asi předpokládat. Parametry (x1...y1) jsou proměnné představující nějaké podmínky. Dvě rovnice zde představují opravdu dvě přímky v rovině, a mě zajímá pro další potřeby jejich průnik. A průniků je hodně, protože i podmínek je hodně.

Budu si stejně muset chtě ještě udělat čas na tu oktávu.

Za dobré tipy děkuji, ať žije Root.


Re:Soustava lineárních rovnic
« Odpověď #16 kdy: 16. 06. 2021, 13:30:04 »
jestli by to tvoje zadani by spise nemelo vest k hledani reseni nejake funkce vice promennych?!

(x1 - x2)(y2 - y1)x + (y1 - y2)(y1 - y2)y + (x2 - x1)(x2 - x1)x1 + (y1 - y2)y1 = 0.

jestli hybes se vsemi parametry x1, x2, x, y1, y2, y3 tak by bylo lepsi to brat jako nelinearni rovnici 6 promennych
a hledat jeji reseni. a na to jsou zase dalsi metody.

Re:Soustava lineárních rovnic
« Odpověď #17 kdy: 16. 06. 2021, 15:26:07 »
tenkrát jsme ve škole programovali numerická řešení N soustav rovníc o M neznámých, to by ti pomohlo, kdybych to našel, ale já to už smazal.

Nicméně pevně 2 rovnice o 2 neznámých po převedení na numerickou úlohu v rámci řešení matic Jacobiho metodou, nebo jinou metodou, je to mraky. Bude to vypadat složitě, ale jsou to vcelku primitivní metody výpočtu hrubou silou v rámci velkého počtu iteračním přibližováním k výsledku. Nesnášel jsem to a tak odmítám se tím víc zabývat, je to jen takový hint, jak se správně, rychle a efektivně programují soustavy.

Re:Soustava lineárních rovnic
« Odpověď #18 kdy: 16. 06. 2021, 16:04:56 »
(...) je to jen takový hint, jak se správně, rychle a efektivně programují soustavy.

To je docela odvážné tvrzení. Numerických metod je spousta a jsou mezi nimi doopravdy podstatné rozdíly. Navíc je možná trochu zbytečné řešit soustavu 2 rovnic iterativně... Bez dalších detailů o soustavě navíc nejde nic moc říci o konvergenci.

Pomohlo by doplnit odpovědi na otázky:
1. Je cílem nalézt analytické řešení úlohy? Pokud ano, hledáme je za účelem implementace nějakého řešiče?
2. Máme pak za parametry x1, ... dosadit čísla, nebo zkoumáme jen symbolické řešení? Jak má vypadat výstup? Pokud chceme dosadit za parametry konkrétní volby číselných koeficientů, musíme počítat s oním větvením. Vadí, že úloha nemusí mít řešení? A když má řešení více, chcete je znát všechna? Pokud máme znát všechna řešení, musíte si připravit nějaký rozumný objekt, jímž množinu řešení chcete reprezentovat (třeba pomocí afinní kombinace). Pokud by stačilo dostat aspoň jeden bod roviny, který "nějak" splňuje podmínky úlohy, zkusil bych něco jako již zmíněné nejmenší čtverce. Pak dovedete garantovat, že řešič najde vektor, který buď úlohu řeší, nebo aspoň dává dobré přiblížení "nedosažitelného" řešení.
3. Asi se nemusíte rozepisovat o původu rovnic. Efektivně by nám stačilo, kdybychom dovedli usoudit na nějaké pěkné vlastnosti systému. Třeba právě díky struktuře problému není potřeba diskuse výše.
4. Plánujete úlohu nějak škálovat co do rozměru systému? O kolik sad rovnic přibližně jde?

Řešíme tu již doopravdy zevrubně prozkoumaný problém a ještě v docela jednoduché inkarnaci. Teď jenom stačí pořádně říci, co konkrétně nás zajímá.

Pajaha

  • ****
  • 269
    • Zobrazit profil
    • E-mail
Re:Soustava lineárních rovnic
« Odpověď #19 kdy: 16. 06. 2021, 16:22:12 »
Já teda úplně nechápu to zadání - prostě rovnice přímky  v rovině je y = kx +q  nebo ax+ by +c = 0 a teď úplně nerozumim co přesně  řešíte. Jestli přepsat nějak divně definované koeficienty na k a q (či a, b,  c) anebo se snažíte řešit tu soustavu celkově.

Osobně bych si nejdříve ujasnil jak vyjádřím ze zadání ty koeficienty a pak bych relativně jednoduše řešil tu soustavu.

Možná by vám třeba pomohlo vědět, že existuje tzv RPN (reverzní polská notace), do které se jde přepsat rovnice a s tím pak jde dál pracovat, třeba jako se vstupem do funkcí a tak. 
Ale to je jen taky takový hint, sám jsem s tím pracoval už poměrně dost dávno.




mcer

  • *
  • 21
  • Co dělám špatně?
    • Zobrazit profil
    • E-mail
Soustava lineárních rovnic
« Odpověď #20 kdy: 16. 06. 2021, 22:23:01 »
Ještě tedy upřesním neupřesněné. Vše už mám ale vyřízené.

Parametry, u mě proměnné, x1 ... y1 ..., jsou známé hodnoty. Ty se v běhu programu automaticky dosazují z podmínek, respektive z konkrétních událostí, které tvoří v rovině ty přímky. Takže je nehledám. Vypočítávají se x a y.

K tomu jsem potřeboval BEZCHYBNÉ a efektivně získané vzorce pro jejich výpočet.

Přeji jen zdárná řešení.

Re:Soustava lineárních rovnic
« Odpověď #21 kdy: 17. 06. 2021, 07:25:30 »
parametry nebo promenne, u tebe...
ty si taky znama hodnota.

se divim, ze ti nekdo pomaha, kazdy diskutoval vyssi divci a zatim...

Ještě tedy upřesním neupřesněné. Vše už mám ale vyřízené.

Parametry, u mě proměnné, x1 ... y1 ..., jsou známé hodnoty. Ty se v běhu programu automaticky dosazují z podmínek, respektive z konkrétních událostí, které tvoří v rovině ty přímky. Takže je nehledám. Vypočítávají se x a y.

K tomu jsem potřeboval BEZCHYBNÉ a efektivně získané vzorce pro jejich výpočet.

Přeji jen zdárná řešení.

Re:Soustava lineárních rovnic
« Odpověď #22 kdy: 17. 06. 2021, 08:56:38 »
....

Chápu, že numerická matematika je pro tebe děsně "cool" ale rozhoduje co umíš spočítat nebo ne. Neboť matematika není kecání ale počítání = SPRÁVNÝ VÝSLEDEK.

*) NIC JSI NEZPOČÍTAL a kecy okolo nic neřeší.

až teprve příspěvek  16. 06. 2021, 22:23:01
Cituji "Parametry, u mě proměnné, x1 ... y1 ..., jsou známé hodnoty" jednoznačně specifikoval, že se jedná o reálné hodnoty, které jsou k dispozici před výpočtem. Předtím to byli pouze domněnky. A protože nebyli zveřejněné, tak pro nás ostatní jsou jsou to proměnné, které můžou nabývat hodnot od -nekonečná k +nekonečnu.

Nyní již víme 100%, že neexistuje 6 proměnných(či více, kombinace,násobky) ale pouze dvě a to "x" a "y".
a v tomto případě lze použít metodu dosazovací, kterou jsme se učily na ZŠ.  Tudíž není nutno používat metody z vysoké i když by byli rychlejší.

A ne, slovem "triviální" původně myslel dosazovací metodu ze ZŠ. Nicméně se označení "triviální" používá pro množinu postupů, které jsou jednoduché(triviální) k využití( např. GEM, přes inverzní matici, LU rozklad, choleskeho dekompozici apod.. ) Netriviální řešení jsou vychází z těchto postupů ale řeší právě možnosti kdy je počet proměných vyšší (o 1,2,3, možná i více) než je počet rovnic.

PanVP

  • *****
  • 872
    • Zobrazit profil
    • E-mail
Re:Soustava lineárních rovnic
« Odpověď #23 kdy: 17. 06. 2021, 10:42:56 »
::)
« Poslední změna: 17. 06. 2021, 10:47:27 od PanVP »

Re:Soustava lineárních rovnic
« Odpověď #24 kdy: 17. 06. 2021, 10:57:49 »
Pascal
Gaussova eliminácia - výpočet neznámých sústav lineárních rovnic
https://www.trsek.com/en/cover/ales/gauss

mcer

  • *
  • 21
  • Co dělám špatně?
    • Zobrazit profil
    • E-mail
Soustava lineárních rovnic
« Odpověď #25 kdy: 17. 06. 2021, 13:12:00 »
Díky za ten Pascal, podíval jsem se.