[Matlab] [Symbolic] Problem z solve - układ równań

Mathematica, Matlab, Statistica, LaTeX i wszelkiego rodzaju oprogramowanie przydatne matematykowi w pracy. Miejsca w sieci poświęcone zagadnieniu.
Awatar użytkownika
Calasilyar
Użytkownik
Użytkownik
Posty: 2656
Rejestracja: 2 maja 2006, o 21:42
Płeć: Mężczyzna
Lokalizacja: Wrocław/Sieradz
Podziękował: 29 razy
Pomógł: 410 razy

[Matlab] [Symbolic] Problem z solve - układ równań

Post autor: Calasilyar »

Witam, mam problem z rozwiązywaniem równania za pomocą solve. Sprawa wygląda następująco:

1. Deklaruję wektor zmiennych x i xC:

Kod: Zaznacz cały

syms x xA xB xC real
x = [xA xB];
syms lambda1 lambda2
2. Wyliczam sobie funkcję L

Kod: Zaznacz cały

L=10*xA+20*xB+lambda1*(60*xA^2+60*xB^2-120*xA*xB+xC-10)+lambda2*(xA+xB-1);
3. Potrzebuję uzyskać rozwiązanie takiego układu równań:
diff(L,lambda1)=0
diff(L,lambda2)=0
diff(L,xA)=0
diff(L,xB)=0
diff(L,xC)=0

Układam zatem polecenie:

Kod: Zaznacz cały

S = solve('diff(L,lambda1)=0','diff(L,lambda2)=0','diff(L,xA)=0','diff(L,xB)=0','diff(L,xC)=0',lambda1,lambda2,xA,xB,xC);
(tak wskazują wszystkie manuale)

Jako wynik otrzymuję jednak:

Kod: Zaznacz cały

>> S.xA
ans = xA
Równania dążą do rozwiązania układu, bo ręcznie mogę to policzyć. Gdzie może tkwić problem? W deklaracji czy w dalszych operacjach?

Dzięki za pomoc i wszelkie sugestie!
Awatar użytkownika
pyzol
Użytkownik
Użytkownik
Posty: 4346
Rejestracja: 26 kwie 2010, o 11:39
Płeć: Mężczyzna
Lokalizacja: Nowa Ruda
Podziękował: 5 razy
Pomógł: 929 razy

[Matlab] [Symbolic] Problem z solve - układ równań

Post autor: pyzol »

Zrobiłem kilka modyfikacji:

Kod: Zaznacz cały

S=solve(diff(L,lambda1),diff(L,lambda2),diff(L,xA),...
    diff(L,xB),diff(L,xC),lambda1,lambda2,xA,xB,xC);
Wyskakuje ostrzeżenie, ale to przez lambdy. A wynik to nie wiem, musisz zobaczyć czy się zgadza.
... przenosisz wiersz w Matlabie.
Awatar użytkownika
Calasilyar
Użytkownik
Użytkownik
Posty: 2656
Rejestracja: 2 maja 2006, o 21:42
Płeć: Mężczyzna
Lokalizacja: Wrocław/Sieradz
Podziękował: 29 razy
Pomógł: 410 razy

[Matlab] [Symbolic] Problem z solve - układ równań

Post autor: Calasilyar »

Liczy, ale właśnie, daje jedną zmienną jako parametr :-/ Jak tu jednak zrobić, żeby nie było parametrów? W końcu jest 5 równań i 5 niewiadomych.
Awatar użytkownika
pyzol
Użytkownik
Użytkownik
Posty: 4346
Rejestracja: 26 kwie 2010, o 11:39
Płeć: Mężczyzna
Lokalizacja: Nowa Ruda
Podziękował: 5 razy
Pomógł: 929 razy

[Matlab] [Symbolic] Problem z solve - układ równań

Post autor: pyzol »

Chyba, że jedno równanie jest zależne od pozostałych. Wpisywałem jedną z lambd jako stałą np. 1. Wysypywał się błąd także, bardzo możliwe, że z samym układem jest coś nie tak.-- 13 kwi 2011, o 16:29 --Nom wydaje mi się, że równanie \(\displaystyle{ \frac{ \partial f}{ \partial xC}=0}\) jest sprzeczne z pierwszym i drugim. Bardzo możliwe, że matlab sam je usunął. Nie mam pojęcia na jakiej zasadzie to działa.
Wpisując \(\displaystyle{ xC^2}\) wszystko liczy.
ODPOWIEDZ