Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Algorytm: układy równań

Ostatnio zmodyfikowano 2014-05-11 21:14
Autor Wiadomość
Ryuujin
Temat założony przez niniejszego użytkownika
Algorytm: układy równań
» 2014-05-01 20:14:33
Witam, szczerze mówiąc piszę tutaj tylko dlatego, że jakoś nie mam weny i nie wiem z której strony chwycić się za mój problem. ^.=.^

Sprawa jest niby prosta. Mam równanie z dowolną (od jednej do możliwych [teoretycznie nieskończonych] zasobów systemowych) ilością niewiadomych i przynajmniej dwoma "wiadomymi" Przykładowo:

X = Y*a*b + Z*a*c*d + a*b*c + Y*b*b*c [1]

Lub inne tego typu. Duże litery opisują niewiadome co do których informację będziemy mieli podane, a małe musimy obliczyć.

W tym momencie otrzymuję "zestawy danych" mówiący o tym jak wyglądają X, Y i Z. Np:

"5 4 5 ;
 7 3 1 ;
 8 2 1 ;" Oznacza, że mamy układ trzech równań:

{
5 = 4*a*b + 5*a*c*d + a*b*c + 4*b*b*c
7 = 3*a*b + 1*a*c*d + a*b*c + 3*b*b*c
8 = 2*a*b + 1*a*c*d + a*b*c + 1*b*b*c
}

No i teraz pojawia się mój cel: chcę znaleźć zestawy niewiadomych a, b, c i d (i więcej) które będą spełniać ten układ równań lub stwierdzić, że to niemożliwe.
Ktokolwiek bardziej rozgarnięty pomoże mi chociaż jakimś pomysłem jak to wydajnie zrobić? Nie wiem czy chcę się bawić w podstawianie, bo na moją ocenę w wypadku większej ilości informacji zwyczajnie zawiesi to komputer na długie godziny :\
Może macierzą? Ale znów - jak to chwycić? Pomocy xD


[1] - Warto zaznaczyć, że po lewej stronie zawsze stoi jedna "wiadoma"
P-109061
Parapet
» 2014-05-01 20:24:24
Bardzo ciekawe zadanie ;) Ja bym napisał (jak bym umiał:P) parser do takiego zadania (nie wiem jaka opinia innych).
Sam zajmę się takim zadaniem ale w C# i dam ci jakieś wskazówki ;)
P-109063
Ryuujin
Temat założony przez niniejszego użytkownika
» 2014-05-02 18:24:32
Myślę, że parser jest tutaj niewystarczający. Chodzi tu o wykrycie zależności i w taki sposób poprowadzenie równań by otrzymać:

a = 5b^2 = 3/5c = ...

Sama analiza składni na pewno będzie niezbędna na wstępie, ale problem jest bardziej złożony niż same dodawanie/odejmowanie/mnożenie. Przykładowo w tym przykładzie:

5 = 8ac + 21c^2b + 9ab + 2a^2b

Rozbicie składni na jakikolwiek sposób nie udzieli nam żadnej informacji. Bo nie ważne jak wykonać jedno działanie - szukana niewiadoma pozostanie wciąż po prawej stronie. Szczerze mówiąc to rozwiązanie pojedynczego przykładu na kartce jest uparte, już nie mówiąc o algorytmie tego dokonującym.
Trzeba by było bawić się z kwadratami i pierwiastkowaniem. Wtedy jednak powstaje dużo dziedzin co dodatkowo utrudnia później znalezienie dobrego rozwiązania.

Wkurzająca sprawa.
P-109107
Parapet
» 2014-05-02 20:38:15
Daj skrzynkę piwa dobremu matematykowi i zrób tą aplikację z bazą mysql. Użytkownik wpisuje dane a twój kumpel rozwiązuje i wysyła.
Albo
Jedź na if'ach

[ŻART]

Bardzo ciężkie zadanie, napisz do jakiegoś matematyka i Ci pomoże ;)
P-109120
Ryuujin
Temat założony przez niniejszego użytkownika
» 2014-05-02 21:00:49
Rozumiem, że z tym matematykiem to żart? ;P

Mam zamiar spróbować to ogarnąć macierzą i kilkoma przekształceniami. Ale wciąż liczę na jakąś kreatywną ideę.
P-109121
Parapet
» 2014-05-02 21:30:58
Nie serio pomoże Ci.
P-109130
docentpp
» 2014-05-05 19:26:41
Tak postawiony problem jest z założenia nierozwiązywalny, bo masz TRZY równania,
a poszukujesz wartości CZTERECH niewiadomych. (a,b,c,d).
P-109339
Ryuujin
Temat założony przez niniejszego użytkownika
» 2014-05-09 15:05:52
Właśnie na tym ma polegać działanie algorytmu. Znalezienie w internecie sposobu na proste rozwiązanie układu równań to nie problem.
Tylko tu faktycznie najczęściej będzie mniej równań niż układów. W takim wypadku algorytm ma mi wypluć zależności między niewiadomymi spełniające taki układ równań. Przykładowo na takie proste równanie:

4X + 3 = 2Y - 5

Chcę otrzymać odpowiedź:

Y = 2X + 4




A w trudniejszym przypadku:

{
4X + 3 = 2Y - 5 + Z
3X - Y = Y + Z
}

Na odpowiedź:

X = -8
Y = -1/2*Z - 24


Da mi to możliwość uzupełnienia układu później, gdy już będę miał dodatkowe dane i powie mi co z góry jest już pewne, jak tutaj X.
P-109567
« 1 » 2
  Strona 1 z 2 Następna strona