s
duren: ax + by = c
dx + ey = f
x = ?
y = ?
jak taki układ równań obliczać ? Bo mam zamiar to napisać w C, ale nie wiem jak rozwiązać.
Dzięki
15 paź 18:42
PW: No rzeczywiście, trudno napisać algorytm, gdy nie zna się teoretycznego rozwiązania problemu.
Obiło Ci się o uszy słowo "wyznacznik"?
15 paź 18:45
Kacper:
Możesz metodą wyznaczników.
15 paź 18:45
duren: już przeglądam właśnie, zapisy w wartości bezwzględna i potem odpowiednio je mnożenie
15 paź 18:50
duren: znaczy to nie jest wartość bezwzględna ale mają po bokach takie same kreski jak wartość
bezwzględna,
a innym sposobem tych równań nie obliczę ?
15 paź 18:51
Hurwitz: Najlepsze właściwości numeryczne ma metoda eliminacji. Nic lepszego nie wymyślono.
15 paź 19:06
duren: to dzięki może uda się napisać program tym sposobem.
15 paź 19:08
AS: Proponuję metodę Bezouta.
Objaśniam na przykładzie układu równań z dwiema niewiadomymi
Pierwsze równanie mnożę stronami przez m ≠ 0 i dodaję do równania drugiego.
3*x + 2*y = 9 |*m ≠ 0
x + 3*y = 10
3*m*x + 2*m*y = 9*m
x + 3*y = 10 stronami dodajemy
(3*m + 1)*x + (2*m + 3)*y = 9*m + 10
By obliczyć wartość x przyjmuję 2*m + 3 = 0 , wtedy m = −3/2
| | 9*m + 10 | | 9*(−3/2) + 10 | |
x = |
| = |
| = 1 |
| | 3*m + 1 | | 3*(−3/2) + 1 | |
By obliczyć wartość y przyjmuję 3*m + 1 = 0 , wtedy m = −1/3
| | 9*m + 10 | | 9*(−1/3) + 10 | |
y = |
| = |
| = 3 |
| | 2*m + 3 | | 2*(−1/3) + 3 | |
15 paź 19:23
duren: do napisania programu to już lepiej metodą wyznaczników
15 paź 19:30
Hurwitz: Dla układów 2x2 koszt "metody wyznaczników" nie jest duży (koszt metody to nie wszystko), ale
dla macierzy o większych wymiarach metoda wyznaczników jest bezużyteczna. Np. dla układu 20
równań z 20 niewiadomymi (w praktyce spotyka się układy duuuuuużo większe) czas rozwiązania
takiego układy "metodą wyznaczników" na najszybszym obecnie komputerze w Polsce to ponad 120
dni.
W każdym podręczniku analizy numerycznej jako jedyny rozsądny algorytm rozwiązywania układów
równań liniowych podawana jest właśnie metoda eliminacji (Gaussa). Jest najlepszy prawie pod
każdym względem: liczba działań, właściwości numeryczne (w tym minimalizacja błędów
przeniesionych z danych na wynik oraz błędów wytworzonych przez algorytm). Niestety, nawet w
przypadku 2 równań nie jest tak prosty do zaprogramowania jak np. metoda wyznaczników.
16 paź 09:23