Układ 6 równań z 6 niewiadomymi


(kid_m) #1

x0' = a x0 + b y0 + e

y0' = c x0 + d y0 + f

x1' = a x1 + b y1 + e

y1' = c x1 + d y1 + f

x2' = a x2 + b y2 + e

x2' = c x2 + d y2 + f

mam dane x0, x1, x2, x0', x1', x2'

muszę obliczyć a, b, c, d, e, f

pytanie bardziej matematyczne niż programistyczne.

czy istnieje jakiś prosty sposób? czy muszę to doprowadzać do najprostszej postaci

czy (jakiś) język programowania poradzi sobie z takim układem i sam wykona niezbędne obliczenia...?


(Spam) #2

http://www.wolframalpha.com/


(kid_m) #3

mógłbyś mnie naprowadzić w jaki sposób to wpisać?

rozumiem, że równania łączę za pomocą & (and) ...


([alex]) #4

Jeżeli masz również dane y0, y1, y2, y0', y1', y2'

to możesz to w excelu łatwo policzyć.

Jeżeli nie masz to masz 6 równań oraz 12 niewiadomych - nie da się rozwiązać.


(kid_m) #5

zapomnialem dodac. oczywiscie znam wartosci y0, y1, y2, y0', y1', y2'

ale chodzi o wyliczenie a, b, c, d, e,f bez podstawiania danych (znanych wartosci...)

tzn. zeby w wyliczeniu pojawialy sie x0, x1, x2, y0, y1, y2, x0', x1', x2', y0', y1', y2'

np. d = 4x0 + 2y0 + y1' + 3y2'

łatwo w excelu...?


([alex]) #6

czy w ostatnim równaniu nie powinno być:

y2'= ...


(system) #7

Google -> Rozwiązywanie układów równań liniowych metodą eliminacji Gaussa


([alex]) #8
Solve

[

{

x0’ == a*x0 + b*y0 + e,

y0’ == c*x0 + d*y0 + f,

x1’ == a*x1 + b*y1 + e,

y1’ == c*x1 + d*y1 + f,

x2’ == a*x2 + b*y2 + e,

x2’ == c*x2 + d*y2 + f

},

{a, b, c, d, e, f}

]

Wynik:

a=

- (x1’*y0 - x2’*y0 + x2’*y1 - x0’*y1 - x1’*y2 + x0’*y2)/(-x1*y0 + x2*y0 + x0*y1 - x2*y1 - x0*y2 + x1*y2)

;


b=

- (-x0*x1’ + x1’*x2 + x0*x2’ - x1*x2’ + x1*x0’ - x2*x0’)/( -x1*y0 + x2*y0 + x0*y1 - x2*y1 - x0*y2 + x1*y2)

;


c=

- (x2’*y0 - x2’*y1 + y0’*y1 - y0*y1’ - y0’*y2 + y1’*y2)/(x1*y0 - x2*y0 - x0*y1 + x2*y1 + x0*y2 - x1*y2)

;


d=

- (-x0*x2’ + x1*x2’ - x1*y0’ + x2*y0’ + x0*y1’ - x2*y1’)/(x1*y0 - x2*y0 - x0*y1 + x2*y1 + x0*y2 - x1*y2)

;


e=

- (x1’*x2*y0 - x1*x2’*y0 + x0*x2’*y1 - x2*x0’*y1 - x0*x1’*y2 + x1*x0’*y2)/(x1*y0 - x2*y0 - x0*y1 + x2*y1 + x0*y2 - x1*y2)

;


f=

-(-x1*x2’*y0 + x0*x2’*y1 - x2*y0’*y1 + x2*y0*y1’ + x1*y0’*y2 - x0*y1’*y2)/(x1*y0 - x2*y0 - x0*y1 + x2*y1 + x0*y2 - x1*y2)

;

(kid_m) #9

super [alex], wielkie dzięki :slight_smile:

btw, w czym to wyszło? matlab?


([alex]) #10

http://www.wolframalpha.com/


(kid_m) #11

tak, niestety wkradł się mały błąd...

http://www.wolframalpha.com/ nie radzi sobie z tym układem równań,

ale na szczęście Mathematica pomógł. Dzięki Wasacz za sugestię... :slight_smile:

Temat z mojej strony zamknięty.