> #Sprobujmy rozwiazac rownanie i sprawdzic czy dostalismy wszystkie rozwiazania > s:=dsolve(diff(y(x),x)-y(x)*y(x),y(x)); 1 s := ---- = - x + _C1 y(x) -------------------------------------------------------------------------------- > #No nie dostalismy rozwiazania y=0! Co wiecej rozwiazanie jest de facto uwiklane > #Sprawdzmy czy to rzeczywiscie rozwiazanie > sol:=1/rhs("); 1 sol := --------- - x + _C1 -------------------------------------------------------------------------------- > diff(sol,x)-sol*sol; 0 > #albo inaczej > sol:=lhs(s)-rhs(s); 1 sol := ---- + x - _C1 y(x) > sol:=subs(y(x)=y,sol); sol := 1/y + x - _C1 > diff(sol,x) + y*y*diff(sol,y); 0 -------------------------------------------------------------------------------- > #OK! mamy rozwiazanie (ta druga metoda bardziej ogolna) > #Sprawdzmy np czy funkcja y-c*exp(x)=C jest rozwiazaniem rownania y'=y > sol:=y-c*exp(x); sol := y - c exp(x) > er:=diff(sol,x)+ y*diff(sol,y); er := y - c exp(x) > er; y - c exp(x) > #przy pomocy simplify sprawdzamy... > simplify(er,{sol=0}); 0 > #Ale czy dla kazdego rownania tak sie da -------------------------------------------------------------------------------- > eq:=diff(y(x),x)= (x+y(x))/(x-y(x)); d x + y(x) eq := ---- y(x) = -------- dx x - y(x) -------------------------------------------------------------------------------- > dsolve(eq,y(x)); y(x) _C1 x exp(arctan(----)) x x = ----------------------- 2 2 1/2 (y(x) + x ) -------------------------------------------------------------------------------- > #No i jak z tego rozwiklac funkcje? czy cokolwiek zobaczyc? > l:=lhs(");r:=rhs(""); l := x y(x) _C1 x exp(arctan(----)) x r := ----------------------- 2 2 1/2 (y(x) + x ) -------------------------------------------------------------------------------- > solu:=l-r; y(x) _C1 x exp(arctan(----)) x solu := x - ----------------------- 2 2 1/2 (y(x) + x ) > diff(solu,x) +( (y(x) +x)/(y(x) -x))*diff(solu,y); y(x) / / d \ \ _C1 x exp(arctan(----)) |2 y(x) |---- y(x)| + 2 x| x \ \ dx / / 1 + 1/2 -------------------------------------------------- 2 2 3/2 (y(x) + x ) / d \ |---- y(x) | | dx y(x)| y(x) y(x) _C1 x |--------- - ----| exp(arctan(----)) _C1 exp(arctan(----)) | x 2 | x x \ x / - --------------------- - ------------------------------------------ 2 2 1/2 / 2\ (y(x) + x ) 2 2 1/2 | y(x) | (y(x) + x ) |1 + -----| | 2 | \ x / -------------------------------------------------------------------------------- > simplify(",{solu=0}); 3 / / d \\ y(x) |1 + |---- y(x)|| _C1 x %1 2 4 \ \ dx // y(x) _C1 %1 y(x) -------------------------------- + ---------- - --------------- 2 2 5/2 2 2 2 2 5/2 (y(x) + x ) y(x) + x (y(x) + x ) 4 / d \ 2 / / d \\ 2 _C1 x %1 |---- y(x)| y(x) |1 + |---- y(x)|| _C1 x %1 \ dx / \ \ dx // - --------------------- - --------------------------------- 2 2 5/2 2 2 5/2 (y(x) + x ) (y(x) + x ) / / d \\ 3 y(x) |1 + |---- y(x)|| _C1 x %1 2 \ \ dx // x + -------------------------------- + ---------- 2 2 5/2 2 2 (y(x) + x ) y(x) + x y(x) %1 := exp(arctan(----)) x -------------------------------------------------------------------------------- > # I nic z tego nie wynika! Moze jak zastapimy y(x) prez x? > solu:=subs(y(x)=y,solu); _C1 x exp(arctan(y/x)) solu := x - ---------------------- 2 2 1/2 (y + x ) -------------------------------------------------------------------------------- > diff(solu,x) +( (y +x)/(y -x))*diff(solu,y); 2 _C1 x exp(arctan(y/x)) _C1 exp(arctan(y/x)) _C1 y exp(arctan(y/x)) 1 + ----------------------- - -------------------- + ------------------------- 2 2 3/2 2 2 1/2 / 2 \ (y + x ) (y + x ) 2 2 1/2 | y | (y + x ) x |1 + ----| | 2 | \ x / /_C1 x exp(arctan(y/x)) y _C1 exp(arctan(y/x)) \ (y + x) |------------------------ - -----------------------| | 2 2 3/2 / 2 \| | (y + x ) 2 2 1/2 | y || | (y + x ) |1 + ----|| | | 2 || \ \ x // + ------------------------------------------------------------ y - x -------------------------------------------------------------------------------- > simplify(",{solu=0}); 4 3 2 _C1 exp(arctan(y/x)) y _C1 x exp(arctan(y/x)) y y - ----------------------- + 2 ------------------------- + ------- 2 2 5/2 2 2 5/2 2 2 (y + x ) (y + x ) y + x 3 2 4 _C1 x exp(arctan(y/x)) y x _C1 x exp(arctan(y/x)) + 2 ------------------------- + ------- + ----------------------- 2 2 5/2 2 2 2 2 5/2 (y + x ) y + x (y + x ) -------------------------------------------------------------------------------- > #No i dalej nic!