Tento materiál je vytvořen v rámci projektu CZ.1.07/2.2.00/28.0021, Průřezová inovace studijních programů Lesnické a dřevařské fakulty MENDELU v Brně (LDF) s ohledem na disciplíny společného základu.
%pi,numer;
float(%pi);
expand(x*(x-1)*(x+3)^2);
factor(x^4+5*x^3+3*x^2-9*x);
solve(2*%e^(x^2-1) = 3, x);
reseni:solve(2*%e^(x^2-1) = 3, x);
float(reseni);
diff(x^2*sin(x),x);
vyraz : log(sqrt((x-1)/(x+1)));
derivace : diff(vyraz, x);
radcan(derivace);
factor(diff(x^3/(x+1)^2,x,2));
taylor(log((1+x)/(1-x)), x, 0, 7);
/* varianta s grafem funkce */
f:log((1+x)/(1-x));
n:7;
vysledek:taylor(f, x, 0, n);
plot2d([vysledek,f],[x,-0.9,0.9]);
derivace:diff(x^2/(x-1),x);
solve(derivace,x);
integrate (x^2*sin(x),x);
integrate (x^(1/2)*log(x),x,1,%e);
f:1-x^2;
g:(1-x)^2;
vysledek:integrate(f-g,x,0,1);
f:x^2;
g:5-2*x;
/* reseni rovnice a nalezeni dolni a horni meze pro integraci */
reseni:solve(f=g,x);
a:lmin(map(lambda ([x],rhs(x)),reseni));
b:lmax(map(lambda ([x],rhs(x)),reseni));
/* integrace a jeji numericka aproximace */
vysledek:radcan(integrate(g-f,x,a,b));
vysledek,numer;
/* graf */
plot2d([f,g],[x,a,b]);
integrate(integrate((x^3+1)*y,y,0,x),x,0,1);
integrate(integrate(x^3,y,1-x,1-x^2),x,0,1);
rovnice : 'diff(y,x) = y/x + 1;
ode2(rovnice, y, x);
expand(ode2(rovnice, y, x));
rovnice : 'diff(y,x) = y/x + 1;
reseni : ode2(rovnice, y, x);
ic1(reseni, x=1, y=-3);
rovnice : 'diff(y,x,2) + 3*'diff(y,x) + 2*y = x;
ode2(rovnice, y, x);
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);
plot2d(x^3-2*x^2,[x,-3,3]);
plot2d(x^2*exp(-x),[x,-2,7],[y,0,2]);
plot2d([x^2,2*x+1],[x,-3,3]);
plot2d ([parametric, cos(t), sin(t), [t, 0, %pi]] );
spiral : parametric ( cos(t), sin(t), t, t, 0, 4*%pi ) ;
draw3d (nticks=100, spiral);
plot3d(x^2-y^2, [x,-1,1], [y,-1,1]);
plot3d(x^2-y^2, [x,-1,1], [y,-1,1]);
diff(y*x*sin(x+y^2), y);
diff(y*x*sin(x+y^2), x, 3, y, 2);
f:x^2*y^2-x^2-y^2;
solve([diff(f,x),diff(f,y)],[x,y]);
A:matrix([9, 3, 5], [-6, -9, 7], [-1, -8, 1]);
rank(A);
A:matrix([9, 3, 5], [-6, -9, 7], [-1, -8, 1]);
determinant(A);
soustava:[x1+3*x2+4*x3=1, x1-x3=9, x1+x3=8];
reseni:solve (soustava,[x1,x2,x3]);
Okno pro výpočty v programu Sage se otevře po kliknutí na tento odkaz. Další online rozhraní bez nutnosti přihlášení je na zde.
V plnohodnotném zápisníku programu Sage můžete pracovat
na serverch sagenb.org a
expand(x*(x-1)*(x+3)^2).show()
vyraz = x*(x-1)*(x+3)^2
# zobrazeni zadani (pro kontrolu)
vyraz.show()
# vypocet
vyraz.expand().show()
factor(x^4+5*x^3+3*x^2-9*x).show()
show(solve(2*e^(x^2-1) == 3, x))
rovnice = 2*e^(x^2-1) == 3
reseni = rovnice.solve(x)
show(rovnice)
show(reseni)
reseni=solve(2*e^(x^2-1) == 3, x)
show(reseni)
# s každou položkou seznamu řešení provedeme následující:
# levou stranu rovnice necháme, pravou aproximujeme funkcí n()
vysl=map(lambda x: x.lhs()==x.rhs().n(), reseni)
show(vysl)
diff(x^2*sin(x),x).show()
vyraz = x^2*sin(x)
# tisk výrazu (pro kontrolu)
vyraz.show()
# derivace podle x
# je možno psát i derivace = diff(vyraz, x)
derivace = vyraz.diff(x)
# zobrazení výsledku
derivace.show()
vyraz = log(sqrt((x-1)/(x+1)))
# pro derivaci podle x můžeme psát
# vyraz.derivace(x)
# nebo
# diff(vyraz, x)
derivace = vyraz.diff(x)
vyraz.show()
derivace.factor().show()
derivace=diff(log(sqrt((x-1)/(x+1))),x)
derivace.simplify_full().show()
# bez úpravy
diff(x^3/(x+1)^2,x,2).show()
# s úpravou
diff(x^3/(x+1)^2,x,2).factor().show()
taylor(log((1+x)/(1-x)), x, 0, 7).show()
# varianta s grafem funkce a polynomu - vstupní data
f(x)=log((1+x)/(1-x)) # funkce
n=7 # stupeň
# příkazy pro zpracování
vysledek=taylor(f(x), x, 0, n) # výpočet Taylorova polynomu
html("Taylorův polynom") # nadpis
vysledek.show() # zobrazení výsledku
html("Grafy (funkce modře, polynom červeně)") # nadpis
P1=plot(vysledek,x,-0.85,0.85,rgbcolor='red') # graf Taylorova polynomu
P2=plot(f(x),x,-0.85,0.85) # graf funkce
P1+P2 # zobrazení obou grafů
derivace=diff(x^2/(x-1),x)
show(solve(derivace,x))
# ---> sbalit <---
# zadaná funkce, funkci můžete změnit
f = x^2*(x-1)
# můžete zadat meze na ose x
xmin, xmax = -1, 1.5
# meze na ose y můžete nechat automatické (None), nebo zadat (místo None napište číslo)
ymin, ymax = None, None
#################################################################
# dál už nic nemusíte číst ani upravovat, jenom spusťte výpočet #
#################################################################
def prubeh(f,(x,xmin,xmax),ymin=None, ymax=None):
r"""
Procedura nakresli graf funkce f na intervalu xmax, xmin, vypocte nulove, stacionarni a
kriticke body.
Je mozno zadat nepovinne parametry ymin a ymax pro rozsah hodnot na svisle ose.
"""
P = plot(f,(x,xmin,xmax),detect_poles=True)
tab=[[r"<h3>Funkce", r"$\displaystyle y=%s$</h3>"%latex(f)]]
tab.append([r"1. derivace", r"$\displaystyle y'=%s$"%latex(factor(diff(f,x)))])
tab.append([r"2. derivace", r"$\displaystyle y'=%s$"%latex(factor(diff(f,x,2)))])
_temp = solve(f,x, solution_dict=True, explicit_solutions=True)
_nulove_body = [i[x] for i in _temp if i[x].imag().n() == 0]
_temp = solve(diff(f,x),x, solution_dict=True, explicit_solutions=True)
_stac_body = [i[x] for i in _temp if i[x].imag().n() == 0]
_temp = solve(diff(f,x,2),x, solution_dict=True, explicit_solutions=True)
_krit_body = [i[x] for i in _temp if i[x].imag().n() == 0]
if len(_stac_body)>0:
P += point2d([(i,f(x=i)) for i in _stac_body], color='red', size=30, zorder=8)
if len(_krit_body)>0:
P += point2d([(i,f(x=i)) for i in _krit_body], color='black', size=15, zorder=9)
tab.append([r"Nulové body", r"$\displaystyle %s$"%latex(tisk_bodu(_nulove_body))])
tab.append([r"Stacionární body", r"$\displaystyle %s$ (v grafu červeně)"%latex(tisk_bodu(_stac_body))])
tab.append([r"Kritické body", r"$\displaystyle %s$ (v grafu černě)"%latex(tisk_bodu(_krit_body))])
html.table(tab)
if P.ymax()>300 and ymax is None:
ymax = 20
if P.ymin()<-300 and ymin is None:
ymin = -20
show(P,ymax=ymax,ymin=ymin)
def tisk_bodu(a):
if len(a)==1:
return [x==a[0]]
else:
return [x==i for i in a]
prubeh(f,(x,xmin,xmax),ymin=ymin,ymax=ymax)
# <---- rozbalit --->
# kód je příliš dlouhý
# zobrazí se po rozbalení,
# nebo na stránce, na kterou vedou odkazy pro spuštění
integrate (x^2*sin(x),x).show()
funkce = x^2*sin(x)
# zobrazení funkce pro kontrolu
funkce.show()
# výsledek integrace podle x
funkce.integrate (x).show()
# je možné psát i
# integrate(funkce,x)
integrate (x^(1/2)*log(x),(x,1,e)).show()
f(x)=1-x^2
g(x)=(1-x)^2;
vysledek=integrate(f-g,x,0,1)
vysledek.show()
f(x)=x^2
g(x)=5-2*x;
# hledani pruseciku
reseni=solve(f==g,x);
a=min(map(lambda x: x.rhs(),reseni))
b=max(map(lambda x: x.rhs(),reseni))
# vypocet integralu a obrazek
vysledek=integrate(g-f,x,a,b)
vysledek.show()
plot((f,g),x,a,b)
x,y=var('x,y')
show(integrate(integrate((x^3+1)*y,y,0,x),x,0,1))
x,y=var('x,y')
html("Výsledek")
show(integrate(integrate(x^3,y,1-x,1-x^2),x,0,1))
html("Náhled množiny $M$")
region_plot([0 < x, x < 1, 1-x < y, y < 1-x^2], (x,0,1.2), (y,0,1.2)).show(aspect_ratio=1,figsize=5)
# ---> sbalit <---
# Vypocet krivkoveho integralu prvniho druhu
var('x y t')
################### zadani (je mozno upravit a dosadit vlastni zadani)
# integrovana funce
f = x
# krivka, muze mit libovolny pocet komponent tvaru ( x(t), y(t), tmin, tmax, volitelne barva )
krivka=[(t,0,0,2), (0,t,0,1,'green'), (2*t, 1-t, 0, 1, 'red')]
# Prepinac symbolicky/numericky. Pro numericky vypocet 'numericky=True'
numericky=False
#################### vlastni vypocet
html(r'$ f(x,y)=%s $' %(latex(f)) )
show(krivka)
def krivkovy_integral (f, k0, k1, a, b, numericky):
if numericky:
vysledek = numerical_integral (f.subs(x=k0, y=k1)*sqrt((diff(k0,t))^2+(diff(k1,t))^2),a,b)[0]
else:
vysledek = integral (f.subs(x=k0, y=k1)*sqrt((diff(k0,t))^2+(diff(k1,t))^2),t,a,b)
return (vysledek)
PL=Graphics()
vysledek=0
for krivka_ in krivka:
if len(krivka_)>4:
barva=krivka_[4]
else:
barva='blue'
PL=PL+parametric_plot((krivka_[0],krivka_[1]),(t,krivka_[2],krivka_[3]), thickness=5, color=barva)
vysledek=vysledek+krivkovy_integral(f,krivka_[0],krivka_[1],krivka_[2],krivka_[3], numericky)
html(r'$\displaystyle\int_C f(x,y)\mathrm{d}s=%s $'% latex(vysledek) )
PL.show(aspect_ratio=1)
# <---- rozbalit --->
# kód je příliš dlouhý
# zobrazí se po rozbalení,
# nebo na stránce, na kterou vedou odkazy pro spuštění
# ---> sbalit <---
# Vypocet krivkoveho integralu druheho druhu
var('x y t')
################### zadani (je mozno upravit a dosadit vlastni zadani)
# komponenty vektoroveho pole
P, Q = exp(x)-7*y, x^3/3+x*y^2
# krivka, muze mit libovolny pocet komponent tvaru ( x(t), y(t), tmin, tmax )
krivka=[(t,abs(t),-sqrt(2),sqrt(2)),(2*cos(t), 2*sin(t), pi/4, 3*pi/4, 'red')]
# Prepinac symbolicky/numericky. Pro numericky vypocet 'numericky=True'
numericky=False
#################### vlastni vypocet
html(r'$ \vec F=(P,Q)=(%s,%s) $' %(latex(P),latex (Q)) )
show(krivka)
def krivkovy_integral (P, Q, k0, k1,a, b, numericky):
if numericky:
vysledek = numerical_integral (P.subs(x=k0, y=k1)*diff(k0,t)+Q.subs(x=k0, y=k1)*diff(k1,t),a,b)[0]
else:
vysledek = integral (P.subs(x=k0, y=k1)*diff(k0,t)+Q.subs(x=k0, y=k1)*diff(k1,t),t,a,b)
return (vysledek)
PL=Graphics()
vysledek=0
small=0.001
for krivka_ in krivka:
if len(krivka_)>4:
barva=krivka_[4]
else:
barva='blue'
PL=PL+parametric_plot((krivka_[0],krivka_[1]),(t,krivka_[2],krivka_[3]), thickness=5, color=barva)
PL=PL+arrow((krivka_[0](t=krivka_[3]-small), krivka_[1](t=krivka_[3]-small)),\
(krivka_[0](t=krivka_[3]), krivka_[1](t=krivka_[3])), color=barva, arrowsize=10 )
vysledek=vysledek+krivkovy_integral(P,Q,krivka_[0],krivka_[1],krivka_[2],krivka_[3],numericky)
PL=PL+plot_vector_field((P,Q), (x,PL.xmin(),PL.xmax()), (y,PL.ymin(),PL.ymax()))
vysledek = SR(vysledek).full_simplify()
html(r'$\displaystyle\int_C \vec F\mathrm{d}\vec r=%s $'% latex(vysledek))
PL.show(aspect_ratio=1)
# <---- rozbalit --->
# kód je příliš dlouhý
# zobrazí se po rozbalení,
# nebo na stránce, na kterou vedou odkazy pro spuštění
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)
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()
y=function('y',x)
rovnice = diff(y,x) == y/x + 1
podminka = [1,-3]
# řešení
reseni=desolve(rovnice, y, ics=podminka)
reseni.show()
y = function('y',x)
rovnice = diff(y,x,2) + 3*diff(y,x) + 2*y == x
desolve(rovnice, y).show()
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()
# ---> 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í
plot(x^3-2*x^2,(x,-3,3))
f(x) = x^3-2*x^2
# zobrazeni funkce pro kontrolu
show(f(x))
# nakresleni grafu
plot(f(x),(x,-3,3))
plot(x^2*exp(-x),(x,-2,7),ymax=2)
plot([x^2,2*x+1],(x,-3,3))
# verze s barevným odlišením a se zobrazením prusečíku funkcí
f(x) = x^2
g(x) = 2*x+1
OBR = plot(f,(x,-3,3))
OBR = OBR+plot(g,(x,-3,3),color='red')
pruseciky = solve(f(x)==g(x), x, solution_dict=1, explicit_solutions=1)
for i in pruseciky:
OBR = OBR + point([i[x],f(i[x])], rgbcolor='black',zorder=3, size=25)
OBR
# Parametricky zadana krivka
t=var('t')
parametric_plot([cos(t), sin(t)], (0,pi))
# Parametricky zadana krivka
t=var('t')
parametric_plot3d([cos(t), sin(t), t], (0,4*pi))
# graf je možno otáčet a přibližovat myší
y=var('y')
plot3d(x^2-y^2, (x,-1,1), (y,-1,1))
# Krátká verze
x,y = var('x,y')
contour_plot( sqrt(x^2+y^2)+0.3*sin(x*y) , (x,-4,4) , (y,-4,4))
# Rozšířená verze
x,y = var('x,y')
# Nastavení funkce, mezí a parametrů pro kreslení
f(x,y)=sqrt(x^2+y^2)+0.3*sin(x*y)
x_meze = (x,-4,4)
y_meze = (y,-4,4)
pocet_vrstevnic = 30
pocet_bodu = 200
# Příkaz pro tisk zadání a vykreslení vrstevnic(nemusíte většinou už upravovat)
show(f(x,y))
contour_plot(f, x_meze , y_meze,plot_points=pocet_bodu,cmap='gnuplot_r',labels=1,colorbar=1,fill=0,contours=pocet_vrstevnic)
x,y,z=var('x y z')
plot_vector_field((-y,x), (x,-1,1), (y,-1,1))
x,y,z=var('x y z')
plot_vector_field3d((x*cos(z),-y*cos(z),sin(z)), (x,0,pi), (y,0,pi), (z,0,pi))
f(x,y)=x^2*y-x*y^3
mezex=(x,1,4)
mezey=(y,-1,2)
hladiny=[i/2 for i in range (-7,20,1)]
html("<h2>Vrstevnice a gradient funkce $ f(x,y)= %s $</h2>"% latex(f(x,y)))
P=contour_plot(f,mezex,mezey, labels=True, contours=hladiny, cmap='jet', colorbar=True)
P=P+plot_vector_field(f.gradient()/norm(f.gradient()), mezex, mezey)
show(P, figsize=10)
# graf je možno otáčet a přibližovat myší
y=var('y')
plot3d(x^2-y^2, (x,-1,1), (y,-1,1))
# Krátká verze
x,y = var('x,y')
contour_plot( sqrt(x^2+y^2)+0.3*sin(x*y) , (x,-4,4) , (y,-4,4))
# Rozšířená verze
x,y = var('x,y')
# Nastavení funkce, mezí a parametrů pro kreslení
f(x,y)=sqrt(x^2+y^2)+0.3*sin(x*y)
x_meze = (x,-4,4)
y_meze = (y,-4,4)
pocet_vrstevnic = 30
pocet_bodu = 200
# Příkaz pro tisk zadání a vykreslení vrstevnic(nemusíte většinou už upravovat)
show(f(x,y))
contour_plot(f, x_meze , y_meze,plot_points=pocet_bodu,cmap='gnuplot_r',labels=1,colorbar=1,fill=0,contours=pocet_vrstevnic)
x,y=var('x,y')
diff(y*x*sin(x+y^2), y).show()
x,y=var('x,y')
diff(y*x*sin(x+y^2), x, 3, y, 2).show()
var('x y')
f=x^2*y^2-x^2-y^2
show(f)
show(solve([diff(f,x),diff(f,y)],[x,y]))
# ---> sbalit <---
x,y=var('x y')
########################################################
# Na následujícím řádku můžete upravit funkční předpis #
########################################################
f(x,y)=x^2*y^2-x^2-y^2
############################################################
# dál už není potřeba nic upravovat, jenom spustit výpočet #
############################################################
def loc_extr(funkce):
html(r'Funkce $z=%s$'%latex(funkce))
sols=solve([diff(funkce,x),diff(funkce,y)],[x,y], solution_dict=True)
fxx=diff(funkce,x,x)
H=funkce.hessian().determinant()
A=[["Stacionární bod","Hesián","$f''_{xx}$","rozhodnutí"]]
for s in sols:
if H.subs(s) < 0:
druha_derivace='...'
rozhodnuti='sedlo'
elif H.subs(s) > 0:
druha_derivace=fxx.subs(s)
if fxx.subs(s) > 0:
rozhodnuti='minimum'
else:
rozhodnuti='maximum'
else:
druha_derivace='...'
rozhodnuti='???'
A.append([[s[x],s[y]],H.subs(s),druha_derivace,rozhodnuti])
html.table(A,header=True)
loc_extr(f(x,y))
# <---- rozbalit --->
# kód je příliš dlouhý
# zobrazí se po rozbalení,
# nebo na stránce, na kterou vedou odkazy pro spuštění
A=matrix([[9, 3, 5], [-6, -9, 7], [-1, -8, 1]])
show(A)
show(rank(A))
A=matrix([[9, 3, 5], [-6, -9, 7], [-1, -8, 1]])
show(A)
show(det(A))
x1,x2,x3 = var('x1,x2,x3')
soustava=[x1+3*x2+4*x3==1, x1-x3==9, x1+x3==8]
show(soustava)
reseni=solve (soustava,[x1,x2,x3])
show(reseni)
var('x1 x2 x3')
A=matrix([[1,2,3],[3,-1,2],[1,3,2]])
X=matrix([[x1,x2,x3]]).transpose()
B=matrix([[11,12,13]]).transpose()
html("<h2>Matice $A$, $X$, $B$</h2>")
show([A,X,B])
html("<h2>Matice $AX$, $B$</h2>")
show([A*X,B])
html("<h2>Soustava $AX=B$</h2>")
soustava = [(A*X)[i][0] == B[i][0] for i in range(len(A.rows()))]
show(matrix([soustava]).transpose())
html("<h2>Řešení soustavy $AX=B$</h2>")
show(solve(soustava, [x1,x2,x3]))
html("<h2>Vektor $A^{-1}B$</h2>")
show(A^(-1)*B)
pi
expand x*(x-1)*(x+3)^2
factor x^4+5x^3+3x^2-9x
solve 2e^(x^2-1)=3
solve 2e^(x^2-1)=3
differentiate x^2*sin(x)
differentiate log(sqrt((x-1)/(x+1)))
second derivative of x^3/(x+1)^2
series of log((1+x)/(1-x)) at x=0
local extrema of x*(210-2*x)*(297-2*x)
find stationary points of x^2/(x-1)
integrate x^2*sin(x)
integrate x^(1/2)*log(x) for x from 1 to e
find area between y=1-x^2 and y=(1-x)^2 for x from 0 to 1
find area between y=x^2 and y=5-2*x
integrate (x^3+1)*y, x from 0 to 1, y from 0 to x
integrate x^3, x from 0 to 1, y from 1-x to 1-x^2
solve y'=y/x + 1
solve y'=y/x + 1, y(1)=-3
solve y''+3y'+2y=x
solve y''+3y'+2y=x, y(0)=0, y'(0)=3
graph x^3-2*x^2
graph x^2*exp(-x) for x from -2 to 7, y from 0 to 2
plot x^2 and 2*x+1
plot x=cos(t), y=sin(t) for t from 0 to pi
plot x=cos(t), y=sin(t), z=t for t from 0 to 4*pi
graph x^2-y^2 for x from -1 to 1, y from -1 to 1
contour plot sqrt(x^2+y^2)+0.3*sin(x*y)
graph x^2-y^2 for x from -1 to 1, y from -1 to 1
contour plot sqrt(x^2+y^2)+0.3*sin(x*y)
differentiate y*x*sin(x+y^2) with respect to y
stationary points of x^2y^2-x^2-y^2
local extrema of x^2y^2-x^2-y^2
rank({{9, 3, 5}, {-6, -9, 7}, {-1, -8, 1}})
det({{9, 3, 5}, {-6, -9, 7}, {-1, -8, 1}})
solve x1+3*x2+4*x3=1, x1-x3=9, x1+x3=8
pi
pi.n()
n(pi)
float(pi)
%pi,numer;
float(%pi);
expand x*(x-1)*(x+3)^2
expand(x*(x-1)*(x+3)^2).show()
vyraz = x*(x-1)*(x+3)^2
# zobrazeni zadani (pro kontrolu)
vyraz.show()
# vypocet
vyraz.expand().show()
expand(x*(x-1)*(x+3)^2);
factor x^4+5x^3+3x^2-9x
factor(x^4+5*x^3+3*x^2-9*x).show()
factor(x^4+5*x^3+3*x^2-9*x);
solve 2e^(x^2-1)=3
show(solve(2*e^(x^2-1) == 3, x))
rovnice = 2*e^(x^2-1) == 3
reseni = rovnice.solve(x)
show(rovnice)
show(reseni)
solve(2*%e^(x^2-1) = 3, x);
solve 2e^(x^2-1)=3
reseni=solve(2*e^(x^2-1) == 3, x)
show(reseni)
# s každou položkou seznamu řešení provedeme následující:
# levou stranu rovnice necháme, pravou aproximujeme funkcí n()
vysl=map(lambda x: x.lhs()==x.rhs().n(), reseni)
show(vysl)
reseni:solve(2*%e^(x^2-1) = 3, x);
float(reseni);
differentiate x^2*sin(x)
diff(x^2*sin(x),x).show()
vyraz = x^2*sin(x)
# tisk výrazu (pro kontrolu)
vyraz.show()
# derivace podle x
# je možno psát i derivace = diff(vyraz, x)
derivace = vyraz.diff(x)
# zobrazení výsledku
derivace.show()
diff(x^2*sin(x),x);
differentiate log(sqrt((x-1)/(x+1)))
vyraz = log(sqrt((x-1)/(x+1)))
# pro derivaci podle x můžeme psát
# vyraz.derivace(x)
# nebo
# diff(vyraz, x)
derivace = vyraz.diff(x)
vyraz.show()
derivace.factor().show()
derivace=diff(log(sqrt((x-1)/(x+1))),x)
derivace.simplify_full().show()
vyraz : log(sqrt((x-1)/(x+1)));
derivace : diff(vyraz, x);
radcan(derivace);
second derivative of x^3/(x+1)^2
# bez úpravy
diff(x^3/(x+1)^2,x,2).show()
# s úpravou
diff(x^3/(x+1)^2,x,2).factor().show()
factor(diff(x^3/(x+1)^2,x,2));
series of log((1+x)/(1-x)) at x=0
taylor(log((1+x)/(1-x)), x, 0, 7).show()
# varianta s grafem funkce a polynomu - vstupní data
f(x)=log((1+x)/(1-x)) # funkce
n=7 # stupeň
# příkazy pro zpracování
vysledek=taylor(f(x), x, 0, n) # výpočet Taylorova polynomu
html("Taylorův polynom") # nadpis
vysledek.show() # zobrazení výsledku
html("Grafy (funkce modře, polynom červeně)") # nadpis
P1=plot(vysledek,x,-0.85,0.85,rgbcolor='red') # graf Taylorova polynomu
P2=plot(f(x),x,-0.85,0.85) # graf funkce
P1+P2 # zobrazení obou grafů
taylor(log((1+x)/(1-x)), x, 0, 7);
/* varianta s grafem funkce */
f:log((1+x)/(1-x));
n:7;
vysledek:taylor(f, x, 0, n);
plot2d([vysledek,f],[x,-0.9,0.9]);
local extrema of x*(210-2*x)*(297-2*x)
find stationary points of x^2/(x-1)
derivace=diff(x^2/(x-1),x)
show(solve(derivace,x))
derivace:diff(x^2/(x-1),x);
solve(derivace,x);
# ---> sbalit <---
# zadaná funkce, funkci můžete změnit
f = x^2*(x-1)
# můžete zadat meze na ose x
xmin, xmax = -1, 1.5
# meze na ose y můžete nechat automatické (None), nebo zadat (místo None napište číslo)
ymin, ymax = None, None
#################################################################
# dál už nic nemusíte číst ani upravovat, jenom spusťte výpočet #
#################################################################
def prubeh(f,(x,xmin,xmax),ymin=None, ymax=None):
r"""
Procedura nakresli graf funkce f na intervalu xmax, xmin, vypocte nulove, stacionarni a
kriticke body.
Je mozno zadat nepovinne parametry ymin a ymax pro rozsah hodnot na svisle ose.
"""
P = plot(f,(x,xmin,xmax),detect_poles=True)
tab=[[r"<h3>Funkce", r"$\displaystyle y=%s$</h3>"%latex(f)]]
tab.append([r"1. derivace", r"$\displaystyle y'=%s$"%latex(factor(diff(f,x)))])
tab.append([r"2. derivace", r"$\displaystyle y'=%s$"%latex(factor(diff(f,x,2)))])
_temp = solve(f,x, solution_dict=True, explicit_solutions=True)
_nulove_body = [i[x] for i in _temp if i[x].imag().n() == 0]
_temp = solve(diff(f,x),x, solution_dict=True, explicit_solutions=True)
_stac_body = [i[x] for i in _temp if i[x].imag().n() == 0]
_temp = solve(diff(f,x,2),x, solution_dict=True, explicit_solutions=True)
_krit_body = [i[x] for i in _temp if i[x].imag().n() == 0]
if len(_stac_body)>0:
P += point2d([(i,f(x=i)) for i in _stac_body], color='red', size=30, zorder=8)
if len(_krit_body)>0:
P += point2d([(i,f(x=i)) for i in _krit_body], color='black', size=15, zorder=9)
tab.append([r"Nulové body", r"$\displaystyle %s$"%latex(tisk_bodu(_nulove_body))])
tab.append([r"Stacionární body", r"$\displaystyle %s$ (v grafu červeně)"%latex(tisk_bodu(_stac_body))])
tab.append([r"Kritické body", r"$\displaystyle %s$ (v grafu černě)"%latex(tisk_bodu(_krit_body))])
html.table(tab)
if P.ymax()>300 and ymax is None:
ymax = 20
if P.ymin()<-300 and ymin is None:
ymin = -20
show(P,ymax=ymax,ymin=ymin)
def tisk_bodu(a):
if len(a)==1:
return [x==a[0]]
else:
return [x==i for i in a]
prubeh(f,(x,xmin,xmax),ymin=ymin,ymax=ymax)
# <---- rozbalit --->
# kód je příliš dlouhý
# zobrazí se po rozbalení,
# nebo na stránce, na kterou vedou odkazy pro spuštění
integrate x^2*sin(x)
integrate (x^2*sin(x),x).show()
funkce = x^2*sin(x)
# zobrazení funkce pro kontrolu
funkce.show()
# výsledek integrace podle x
funkce.integrate (x).show()
# je možné psát i
# integrate(funkce,x)
integrate (x^2*sin(x),x);
integrate x^(1/2)*log(x) for x from 1 to e
integrate (x^(1/2)*log(x),(x,1,e)).show()
integrate (x^(1/2)*log(x),x,1,%e);
find area between y=1-x^2 and y=(1-x)^2 for x from 0 to 1
f(x)=1-x^2
g(x)=(1-x)^2;
vysledek=integrate(f-g,x,0,1)
vysledek.show()
f:1-x^2;
g:(1-x)^2;
vysledek:integrate(f-g,x,0,1);
find area between y=x^2 and y=5-2*x
f(x)=x^2
g(x)=5-2*x;
# hledani pruseciku
reseni=solve(f==g,x);
a=min(map(lambda x: x.rhs(),reseni))
b=max(map(lambda x: x.rhs(),reseni))
# vypocet integralu a obrazek
vysledek=integrate(g-f,x,a,b)
vysledek.show()
plot((f,g),x,a,b)
f:x^2;
g:5-2*x;
/* reseni rovnice a nalezeni dolni a horni meze pro integraci */
reseni:solve(f=g,x);
a:lmin(map(lambda ([x],rhs(x)),reseni));
b:lmax(map(lambda ([x],rhs(x)),reseni));
/* integrace a jeji numericka aproximace */
vysledek:radcan(integrate(g-f,x,a,b));
vysledek,numer;
/* graf */
plot2d([f,g],[x,a,b]);
integrate (x^3+1)*y, x from 0 to 1, y from 0 to x
x,y=var('x,y')
show(integrate(integrate((x^3+1)*y,y,0,x),x,0,1))
integrate(integrate((x^3+1)*y,y,0,x),x,0,1);
integrate x^3, x from 0 to 1, y from 1-x to 1-x^2
x,y=var('x,y')
html("Výsledek")
show(integrate(integrate(x^3,y,1-x,1-x^2),x,0,1))
html("Náhled množiny $M$")
region_plot([0 < x, x < 1, 1-x < y, y < 1-x^2], (x,0,1.2), (y,0,1.2)).show(aspect_ratio=1,figsize=5)
integrate(integrate(x^3,y,1-x,1-x^2),x,0,1);
# ---> sbalit <---
# Vypocet krivkoveho integralu prvniho druhu
var('x y t')
################### zadani (je mozno upravit a dosadit vlastni zadani)
# integrovana funce
f = x
# krivka, muze mit libovolny pocet komponent tvaru ( x(t), y(t), tmin, tmax, volitelne barva )
krivka=[(t,0,0,2), (0,t,0,1,'green'), (2*t, 1-t, 0, 1, 'red')]
# Prepinac symbolicky/numericky. Pro numericky vypocet 'numericky=True'
numericky=False
#################### vlastni vypocet
html(r'$ f(x,y)=%s $' %(latex(f)) )
show(krivka)
def krivkovy_integral (f, k0, k1, a, b, numericky):
if numericky:
vysledek = numerical_integral (f.subs(x=k0, y=k1)*sqrt((diff(k0,t))^2+(diff(k1,t))^2),a,b)[0]
else:
vysledek = integral (f.subs(x=k0, y=k1)*sqrt((diff(k0,t))^2+(diff(k1,t))^2),t,a,b)
return (vysledek)
PL=Graphics()
vysledek=0
for krivka_ in krivka:
if len(krivka_)>4:
barva=krivka_[4]
else:
barva='blue'
PL=PL+parametric_plot((krivka_[0],krivka_[1]),(t,krivka_[2],krivka_[3]), thickness=5, color=barva)
vysledek=vysledek+krivkovy_integral(f,krivka_[0],krivka_[1],krivka_[2],krivka_[3], numericky)
html(r'$\displaystyle\int_C f(x,y)\mathrm{d}s=%s $'% latex(vysledek) )
PL.show(aspect_ratio=1)
# <---- rozbalit --->
# kód je příliš dlouhý
# zobrazí se po rozbalení,
# nebo na stránce, na kterou vedou odkazy pro spuštění
# ---> sbalit <---
# Vypocet krivkoveho integralu druheho druhu
var('x y t')
################### zadani (je mozno upravit a dosadit vlastni zadani)
# komponenty vektoroveho pole
P, Q = exp(x)-7*y, x^3/3+x*y^2
# krivka, muze mit libovolny pocet komponent tvaru ( x(t), y(t), tmin, tmax )
krivka=[(t,abs(t),-sqrt(2),sqrt(2)),(2*cos(t), 2*sin(t), pi/4, 3*pi/4, 'red')]
# Prepinac symbolicky/numericky. Pro numericky vypocet 'numericky=True'
numericky=False
#################### vlastni vypocet
html(r'$ \vec F=(P,Q)=(%s,%s) $' %(latex(P),latex (Q)) )
show(krivka)
def krivkovy_integral (P, Q, k0, k1,a, b, numericky):
if numericky:
vysledek = numerical_integral (P.subs(x=k0, y=k1)*diff(k0,t)+Q.subs(x=k0, y=k1)*diff(k1,t),a,b)[0]
else:
vysledek = integral (P.subs(x=k0, y=k1)*diff(k0,t)+Q.subs(x=k0, y=k1)*diff(k1,t),t,a,b)
return (vysledek)
PL=Graphics()
vysledek=0
small=0.001
for krivka_ in krivka:
if len(krivka_)>4:
barva=krivka_[4]
else:
barva='blue'
PL=PL+parametric_plot((krivka_[0],krivka_[1]),(t,krivka_[2],krivka_[3]), thickness=5, color=barva)
PL=PL+arrow((krivka_[0](t=krivka_[3]-small), krivka_[1](t=krivka_[3]-small)),\
(krivka_[0](t=krivka_[3]), krivka_[1](t=krivka_[3])), color=barva, arrowsize=10 )
vysledek=vysledek+krivkovy_integral(P,Q,krivka_[0],krivka_[1],krivka_[2],krivka_[3],numericky)
PL=PL+plot_vector_field((P,Q), (x,PL.xmin(),PL.xmax()), (y,PL.ymin(),PL.ymax()))
vysledek = SR(vysledek).full_simplify()
html(r'$\displaystyle\int_C \vec F\mathrm{d}\vec r=%s $'% latex(vysledek))
PL.show(aspect_ratio=1)
# <---- rozbalit --->
# kód je příliš dlouhý
# zobrazí se po rozbalení,
# nebo na stránce, na kterou vedou odkazy pro spuštění
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í
graph x^3-2*x^2
plot(x^3-2*x^2,(x,-3,3))
f(x) = x^3-2*x^2
# zobrazeni funkce pro kontrolu
show(f(x))
# nakresleni grafu
plot(f(x),(x,-3,3))
plot2d(x^3-2*x^2,[x,-3,3]);
graph x^2*exp(-x) for x from -2 to 7, y from 0 to 2
plot(x^2*exp(-x),(x,-2,7),ymax=2)
plot2d(x^2*exp(-x),[x,-2,7],[y,0,2]);
plot x^2 and 2*x+1
plot([x^2,2*x+1],(x,-3,3))
# verze s barevným odlišením a se zobrazením prusečíku funkcí
f(x) = x^2
g(x) = 2*x+1
OBR = plot(f,(x,-3,3))
OBR = OBR+plot(g,(x,-3,3),color='red')
pruseciky = solve(f(x)==g(x), x, solution_dict=1, explicit_solutions=1)
for i in pruseciky:
OBR = OBR + point([i[x],f(i[x])], rgbcolor='black',zorder=3, size=25)
OBR
plot2d([x^2,2*x+1],[x,-3,3]);
plot x=cos(t), y=sin(t) for t from 0 to pi
# Parametricky zadana krivka
t=var('t')
parametric_plot([cos(t), sin(t)], (0,pi))
plot2d ([parametric, cos(t), sin(t), [t, 0, %pi]] );
plot x=cos(t), y=sin(t), z=t for t from 0 to 4*pi
# Parametricky zadana krivka
t=var('t')
parametric_plot3d([cos(t), sin(t), t], (0,4*pi))
spiral : parametric ( cos(t), sin(t), t, t, 0, 4*%pi ) ;
draw3d (nticks=100, spiral);
graph x^2-y^2 for x from -1 to 1, y from -1 to 1
# graf je možno otáčet a přibližovat myší
y=var('y')
plot3d(x^2-y^2, (x,-1,1), (y,-1,1))
plot3d(x^2-y^2, [x,-1,1], [y,-1,1]);
contour plot sqrt(x^2+y^2)+0.3*sin(x*y)
# Krátká verze
x,y = var('x,y')
contour_plot( sqrt(x^2+y^2)+0.3*sin(x*y) , (x,-4,4) , (y,-4,4))
# Rozšířená verze
x,y = var('x,y')
# Nastavení funkce, mezí a parametrů pro kreslení
f(x,y)=sqrt(x^2+y^2)+0.3*sin(x*y)
x_meze = (x,-4,4)
y_meze = (y,-4,4)
pocet_vrstevnic = 30
pocet_bodu = 200
# Příkaz pro tisk zadání a vykreslení vrstevnic(nemusíte většinou už upravovat)
show(f(x,y))
contour_plot(f, x_meze , y_meze,plot_points=pocet_bodu,cmap='gnuplot_r',labels=1,colorbar=1,fill=0,contours=pocet_vrstevnic)
x,y,z=var('x y z')
plot_vector_field((-y,x), (x,-1,1), (y,-1,1))
x,y,z=var('x y z')
plot_vector_field3d((x*cos(z),-y*cos(z),sin(z)), (x,0,pi), (y,0,pi), (z,0,pi))
f(x,y)=x^2*y-x*y^3
mezex=(x,1,4)
mezey=(y,-1,2)
hladiny=[i/2 for i in range (-7,20,1)]
html("<h2>Vrstevnice a gradient funkce $ f(x,y)= %s $</h2>"% latex(f(x,y)))
P=contour_plot(f,mezex,mezey, labels=True, contours=hladiny, cmap='jet', colorbar=True)
P=P+plot_vector_field(f.gradient()/norm(f.gradient()), mezex, mezey)
show(P, figsize=10)
graph x^2-y^2 for x from -1 to 1, y from -1 to 1
# graf je možno otáčet a přibližovat myší
y=var('y')
plot3d(x^2-y^2, (x,-1,1), (y,-1,1))
plot3d(x^2-y^2, [x,-1,1], [y,-1,1]);
contour plot sqrt(x^2+y^2)+0.3*sin(x*y)
# Krátká verze
x,y = var('x,y')
contour_plot( sqrt(x^2+y^2)+0.3*sin(x*y) , (x,-4,4) , (y,-4,4))
# Rozšířená verze
x,y = var('x,y')
# Nastavení funkce, mezí a parametrů pro kreslení
f(x,y)=sqrt(x^2+y^2)+0.3*sin(x*y)
x_meze = (x,-4,4)
y_meze = (y,-4,4)
pocet_vrstevnic = 30
pocet_bodu = 200
# Příkaz pro tisk zadání a vykreslení vrstevnic(nemusíte většinou už upravovat)
show(f(x,y))
contour_plot(f, x_meze , y_meze,plot_points=pocet_bodu,cmap='gnuplot_r',labels=1,colorbar=1,fill=0,contours=pocet_vrstevnic)
differentiate y*x*sin(x+y^2) with respect to y
x,y=var('x,y')
diff(y*x*sin(x+y^2), y).show()
diff(y*x*sin(x+y^2), y);
x,y=var('x,y')
diff(y*x*sin(x+y^2), x, 3, y, 2).show()
diff(y*x*sin(x+y^2), x, 3, y, 2);
stationary points of x^2y^2-x^2-y^2
var('x y')
f=x^2*y^2-x^2-y^2
show(f)
show(solve([diff(f,x),diff(f,y)],[x,y]))
f:x^2*y^2-x^2-y^2;
solve([diff(f,x),diff(f,y)],[x,y]);
local extrema of x^2y^2-x^2-y^2
# ---> sbalit <---
x,y=var('x y')
########################################################
# Na následujícím řádku můžete upravit funkční předpis #
########################################################
f(x,y)=x^2*y^2-x^2-y^2
############################################################
# dál už není potřeba nic upravovat, jenom spustit výpočet #
############################################################
def loc_extr(funkce):
html(r'Funkce $z=%s$'%latex(funkce))
sols=solve([diff(funkce,x),diff(funkce,y)],[x,y], solution_dict=True)
fxx=diff(funkce,x,x)
H=funkce.hessian().determinant()
A=[["Stacionární bod","Hesián","$f''_{xx}$","rozhodnutí"]]
for s in sols:
if H.subs(s) < 0:
druha_derivace='...'
rozhodnuti='sedlo'
elif H.subs(s) > 0:
druha_derivace=fxx.subs(s)
if fxx.subs(s) > 0:
rozhodnuti='minimum'
else:
rozhodnuti='maximum'
else:
druha_derivace='...'
rozhodnuti='???'
A.append([[s[x],s[y]],H.subs(s),druha_derivace,rozhodnuti])
html.table(A,header=True)
loc_extr(f(x,y))
# <---- rozbalit --->
# kód je příliš dlouhý
# zobrazí se po rozbalení,
# nebo na stránce, na kterou vedou odkazy pro spuštění
rank({{9, 3, 5}, {-6, -9, 7}, {-1, -8, 1}})
A=matrix([[9, 3, 5], [-6, -9, 7], [-1, -8, 1]])
show(A)
show(rank(A))
A:matrix([9, 3, 5], [-6, -9, 7], [-1, -8, 1]);
rank(A);
det({{9, 3, 5}, {-6, -9, 7}, {-1, -8, 1}})
A=matrix([[9, 3, 5], [-6, -9, 7], [-1, -8, 1]])
show(A)
show(det(A))
A:matrix([9, 3, 5], [-6, -9, 7], [-1, -8, 1]);
determinant(A);
solve x1+3*x2+4*x3=1, x1-x3=9, x1+x3=8
x1,x2,x3 = var('x1,x2,x3')
soustava=[x1+3*x2+4*x3==1, x1-x3==9, x1+x3==8]
show(soustava)
reseni=solve (soustava,[x1,x2,x3])
show(reseni)
soustava:[x1+3*x2+4*x3=1, x1-x3=9, x1+x3=8];
reseni:solve (soustava,[x1,x2,x3]);
var('x1 x2 x3')
A=matrix([[1,2,3],[3,-1,2],[1,3,2]])
X=matrix([[x1,x2,x3]]).transpose()
B=matrix([[11,12,13]]).transpose()
html("<h2>Matice $A$, $X$, $B$</h2>")
show([A,X,B])
html("<h2>Matice $AX$, $B$</h2>")
show([A*X,B])
html("<h2>Soustava $AX=B$</h2>")
soustava = [(A*X)[i][0] == B[i][0] for i in range(len(A.rows()))]
show(matrix([soustava]).transpose())
html("<h2>Řešení soustavy $AX=B$</h2>")
show(solve(soustava, [x1,x2,x3]))
html("<h2>Vektor $A^{-1}B$</h2>")
show(A^(-1)*B)
Při potížích můžete zkusit využít diskusní fórum na serveru http://forum.matematika.cz, sekci Počítačové algebraické systémy (CAS).
Jedná se v rámci České Republiky o největší diskusní fórum věnované matematice. Fórum není nijak spjato ani s touto stránkou ani s autorem tohoto webu. Nezapomeňte protoprosím problém objasnit stručně ale současně srozumitelně, úplně a výstižně. Nezapomeňte také popsat, jak jste se snažili problém vyřešit samostatně a jaké pokusy o vyřešení selhaly.