x,y = var('x y')
plot_slope_field(x+y^2, (x,-3,3), (y,-3,3))
f(x,y)=y*(3-y)
ics1=[0,0.1]
ics2=[0,1]
P2=desolve_rk4(f(x,y),y,ics=ics1,ivar=x,end_points=[0,3],output='slope_field')
P1=desolve_rk4(f(x,y),y,ics=ics2,ivar=x,end_points=[0,3],output='plot')
(P1+P2).show(ymax=3,ymin=0)
solve y'=y/x + 1
y=function('y',x)
rovnice = diff(y,x) == y/x + 1
# řešení
desolve(rovnice, y).show()
# řešení v roznásobeném tvaru
desolve(rovnice, y).expand().show()
rovnice : 'diff(y,x) = y/x + 1;
ode2(rovnice, y, x);
expand(ode2(rovnice, y, x));
solve y'=y/x + 1, y(1)=-3
y=function('y',x)
rovnice = diff(y,x) == y/x + 1
podminka = [1,-3]
# řešení
reseni=desolve(rovnice, y, ics=podminka)
reseni.show()
rovnice : 'diff(y,x) = y/x + 1;
reseni : ode2(rovnice, y, x);
ic1(reseni, x=1, y=-3);
solve y''+3y'+2y=x
y = function('y',x)
rovnice = diff(y,x,2) + 3*diff(y,x) + 2*y == x
desolve(rovnice, y).show()
rovnice : 'diff(y,x,2) + 3*'diff(y,x) + 2*y = x;
ode2(rovnice, y, x);
solve y''+3y'+2y=x, y(0)=0, y'(0)=3
y = function('y',x)
rovnice = diff(y,x,2) + 3*diff(y,x) + 2*y == x
podminka = [0,0,3]
desolve(rovnice, y, ics=podminka).show()
rovnice : 'diff(y,x,2) + 3*'diff(y,x) + 2*y = x;
reseni : ode2(rovnice, y, x);
ic2(reseni, x=0, y=0, 'diff(y,x)=3);
# ---> sbalit <---
x,y=var('x,y') # definice promennych
## prave strany autonomniho systemu
f, g = x+2*y, y*(y+2)*(x+1)
#################################################################
# dál už nic nemusíte číst ani upravovat, jenom spusťte výpočet #
#################################################################
def as_tabulka(de_x,de_y):
# Tisk zadani pro kontrolu
html(r"Autonomní systém $\left\{\begin{aligned}x'&=%s\\y'&=%s\end{aligned}\right.$." %(latex(de_x),latex(de_y)))
# nalezeni stacionarnich bodu a jakobianu
stacionarni_body=solve([de_x,de_y], [x,y], solution_dict=True)
jacobiho_matice=jacobian((de_x,de_y),(x,y))
A=[["Stacionární bod","Jacobiho matice","Vlastní hodnoty"]]
# cyklus pres vsechny stacionarni body
for s in stacionarni_body:
# budeme pracovat pouze s resenimi, ktera jsou realna cisla,
# tj ktera maji nulou imaginarni cast
if s[x].imag() == 0 and s[y].imag() == 0:
A.append([[s[x],s[y]], jacobiho_matice(s),\
[a.real().n(20)+I*a.imag().n(20) for a in jacobiho_matice(s).eigenvalues()]])
# vytiskneme tabulku
html.table(A,header=True)
as_tabulka(f,g)
# <---- rozbalit --->
# kód je příliš dlouhý
# zobrazí se po rozbalení,
# nebo na stránce, na kterou vedou odkazy pro spuštění