Vektori u SAGE-u

verzija: SageMath 9.4

In [1]:
%display latex

Vektori u ravnini

neki načini definiranja vektora - više detalja saznajte pomoću naredbe help(vector)

In [2]:
v1=vector((1,2)); v2=vector([4,3])

crtanje vektora s početkom u ishodištu

In [3]:
(v1.plot()+v2.plot(color="red")+text("$\\vec{v}_1$",(0.3,1),fontsize=16,rgbcolor=(0,0,0))+
 text("$\\vec{v}_2$",(3,2),fontsize=16,rgbcolor=(0,0,0))).show(figsize=[6,4])

crtanje reprezentanata koji nemaju početak u ishodištu - za više informacija napišite help(arrow2d)

In [4]:
(arrow((1,1),vector((1,1))+v1)+v1.plot()+
 text("dva reprezentanta vektora $\\vec{v}_1$",(0.7,2.6),fontsize=14,rgbcolor=(0,0,0))).show(figsize=[6,4])

zbrajanje vektora

In [5]:
v1+v2
Out[5]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(5,\,5\right)\]

pravilo paralelograma

In [6]:
crta1=line([(1,2),(5,5)],linestyle="--",color="black")
crta2=line([(4,3),(5,5)],linestyle="--",color="black")
tekst1=text("$\\vec{v}_1$",(0.35,1.1),color="black",fontsize=16)
tekst2=text("$\\vec{v}_2$",(2.6,1.65),color="black",fontsize=16)
tekst3=text("$\\vec{v}_1+\\vec{v}_2$",(1.6,1.85),color="black",fontsize=16,rotation=45)
slika=crta1+crta2+v1.plot()+v2.plot(color="red")+(v1+v2).plot(color="green")+tekst1+tekst2+tekst3
slika.show(aspect_ratio=1,figsize=[5,5])

pravilo trokuta

In [7]:
tekst4=text("$\\vec{v}_1$",(0.35,1.1),color="black",fontsize=16)
tekst5=text("$\\vec{v}_2$",(2.6,3.5),color="black",fontsize=16)
tekst6=text("$\\vec{v}_1+\\vec{v}_2$",(3,2.65),color="black",fontsize=16,rotation=45)
vektor2=arrow(v1,v1+v2,color="red")
slika2=v1.plot()+vektor2+(v1+v2).plot(color="green")+tekst4+tekst5+tekst6
slika2.show(aspect_ratio=1,figsize=[5,5])

oduzimanje vektora

In [8]:
v1-v2
Out[8]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(-3,\,-1\right)\]
In [9]:
tekst7=text("$\\vec{v}_1$",(0.35,1.1),color="black",fontsize=16)
tekst8=text("$\\vec{v}_2$",(2.6,1.65),color="black",fontsize=16)
tekst9=text("$\\vec{v}_1-\\vec{v}_2$",(2.4,2.62),color="black",fontsize=16,rotation=18)
vektor3=arrow(v2,v1,color="green")
slika3=v1.plot()+v2.plot(color="red")+vektor3+tekst7+tekst8+tekst9
slika3.show(aspect_ratio=1,figsize=[5,5])

množenje vektora skalarom

In [10]:
2*v1
Out[10]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(2,\,4\right)\]
In [11]:
-3/2*v2
Out[11]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(-6,\,-\frac{9}{2}\right)\]
In [12]:
(arrow((3/2,3/2),vector((3/2,3/2))-1/2*v1,color="red")+v1.plot()+
 text("$\\vec{v}_1$",(0.4,1),fontsize=16,rgbcolor=(0,0,0))+
 text("$-\\frac{1}{2}\\vec{v}_1$",(1.3,0.8),fontsize=16,rgbcolor=(0,0,0))).show(figsize=[6,4])

linearna kombinacija vektora

In [13]:
-2*v1+3/4*v2
Out[13]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(1,\,-\frac{7}{4}\right)\]

duljina vektora

In [14]:
v1.norm()
Out[14]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\sqrt{5}\]
In [15]:
norm(v2)
Out[15]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}5\]

skalarni produkt vektora u ravnini

In [16]:
v1.dot_product(v2)
Out[16]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}10\]

Vektori u prostoru

In [17]:
v3=vector((1,2,-3)); v4=vector((2,-1,1))

napišite help(arrow3d) za opise svih opcija crtanja vektora u prostoru

In [18]:
(v3.plot(radius=0.05)+v4.plot(color="red",radius=0.05)).show(viewer='threejs',online=True)

crtanje reprezentanata koji nemaju početak u ishodištu

In [19]:
(v3.plot(radius=0.05)+arrow3d(vector((2,1,2)),vector((2,1,2))+v3,color="red",radius=0.05)).show(viewer='threejs',online=True)

zbrajanje vektora

In [20]:
v3+v4
Out[20]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(3,\,1,\,-2\right)\]

pravilo paralelograma

In [21]:
(v3.plot(radius=0.05)+v4.plot(color="red",radius=0.05)+
(v3+v4).plot(color="green",radius=0.05)+
line3d([(1,2,-3),(3,1,-2)],color="black")+
line3d([(2,-1,1),(3,1,-2)],color="black")).show(viewer='threejs',online=True)

pravilo trokuta

In [22]:
(v3.plot(radius=0.05)+
arrow3d(v3,v3+v4,color="red",radius=0.05)+
(v3+v4).plot(color="green",radius=0.05)).show(viewer='threejs',online=True)

oduzimanje vektora

In [23]:
v3-v4
Out[23]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(-1,\,3,\,-4\right)\]

množenje vektora skalarom

In [24]:
5/4*v3
Out[24]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\frac{5}{4},\,\frac{5}{2},\,-\frac{15}{4}\right)\]
In [25]:
-2*v4
Out[25]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(-4,\,2,\,-2\right)\]

plavi vektor: $\vec{v}_3$     crveni vektor: $\frac{3}{5}\vec{v}_3$

In [26]:
(arrow((0,0,0),v3,radius=0.06)+
arrow3d((1,1,1),vector((1,1,1))+3/5*v3,color="red",radius=0.05)).show(viewer='threejs',online=True)

linearna kombinacija vektora

In [27]:
2/5*v3+7*v4
Out[27]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\frac{72}{5},\,-\frac{31}{5},\,\frac{29}{5}\right)\]

duljina vektora

In [28]:
norm(v3)
Out[28]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\sqrt{14}\]
In [29]:
norm(2/5*v3+7*v4)
Out[29]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\frac{1}{5} \, \sqrt{6986}\]

Skalarni, vektorski i mješoviti produkt vektora u $V^3$

In [30]:
vek1=vector((2,1,-5)); vek2=vector((3,-2,8))

skalarni produkt vektora

In [31]:
vek1.dot_product(vek2)
Out[31]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}-36\]

vektorski produkt vektora

In [32]:
vek1.cross_product(vek2)
Out[32]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(-2,\,-31,\,-7\right)\]
In [33]:
vek2.cross_product(vek1)
Out[33]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(2,\,31,\,7\right)\]

mješoviti produkt vektora

In [34]:
vek3=vector((1,0,-5))
In [35]:
vek1.cross_product(vek2).dot_product(vek3)
Out[35]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}33\]

možemo definirati svoju funkciju radi jednostavnijeg pisanja

In [36]:
def mjesoviti_produkt(v1,v2,v3):
    return v1.cross_product(v2).dot_product(v3)

parnom permutacijom vektora mješoviti produkt se ne mijenja, a neparnom permutacijom vektora mješoviti produkt mijenja predznak

In [37]:
mjesoviti_produkt(vek1,vek2,vek3)
Out[37]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}33\]
In [38]:
mjesoviti_produkt(vek2,vek1,vek3)
Out[38]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}-33\]
In [39]:
mjesoviti_produkt(vek2,vek3,vek1)
Out[39]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}33\]

Neki teoremi

U ovom dijelu uvjerit ćemo se u istinitost nekih formula na način da vektore općenito zadamo njihovim koordinatama u ortonormiranoj bazi, a zatim raspišemo lijevu i desnu stranu jednakosti u tim koordinatama i provjerimo da su one zaista jednake.

In [40]:
var("a_x a_y a_z b_x b_y b_z c_x c_y c_z l")
Out[40]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(a_{x}, a_{y}, a_{z}, b_{x}, b_{y}, b_{z}, c_{x}, c_{y}, c_{z}, l\right)\]
In [41]:
a=vector((a_x,a_y,a_z)); b=vector((b_x,b_y,b_z)); c=vector((c_x,c_y,c_z))

$(\vec{a}+\vec{b})^2=\vec{a}^2+2\vec{a}\vec{b}+\vec{b}^2$

In [42]:
a+b
Out[42]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(a_{x} + b_{x},\,a_{y} + b_{y},\,a_{z} + b_{z}\right)\]
In [43]:
lijeva_strana=(a+b).dot_product(a+b); lijeva_strana
Out[43]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}{\left(a_{x} + b_{x}\right)}^{2} + {\left(a_{y} + b_{y}\right)}^{2} + {\left(a_{z} + b_{z}\right)}^{2}\]
In [44]:
desna_strana=a.dot_product(a)+2*a.dot_product(b)+b.dot_product(b); desna_strana
Out[44]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}a_{x}^{2} + a_{y}^{2} + a_{z}^{2} + 2 \, a_{x} b_{x} + b_{x}^{2} + 2 \, a_{y} b_{y} + b_{y}^{2} + 2 \, a_{z} b_{z} + b_{z}^{2}\]
In [45]:
expand(lijeva_strana-desna_strana)
Out[45]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}0\]

$(\lambda\vec{a})\vec{b}=\lambda(\vec{a}\vec{b})$

In [46]:
lijeva_strana=(l*a).dot_product(b); lijeva_strana
Out[46]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}a_{x} b_{x} l + a_{y} b_{y} l + a_{z} b_{z} l\]
In [47]:
desna_strana=l*(a.dot_product(b)); desna_strana
Out[47]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}{\left(a_{x} b_{x} + a_{y} b_{y} + a_{z} b_{z}\right)} l\]
In [48]:
expand(lijeva_strana-desna_strana)
Out[48]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}0\]

$\vec{a}\times(\vec{b}+\vec{c})=\vec{a}\times\vec{b}+\vec{a}\times\vec{c}$

In [49]:
lijeva_strana=a.cross_product(b+c); lijeva_strana
Out[49]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(-a_{z} {\left(b_{y} + c_{y}\right)} + a_{y} {\left(b_{z} + c_{z}\right)},\,a_{z} {\left(b_{x} + c_{x}\right)} - a_{x} {\left(b_{z} + c_{z}\right)},\,-a_{y} {\left(b_{x} + c_{x}\right)} + a_{x} {\left(b_{y} + c_{y}\right)}\right)\]
In [50]:
desna_strana=a.cross_product(b)+a.cross_product(c); desna_strana
Out[50]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(-a_{z} b_{y} + a_{y} b_{z} - a_{z} c_{y} + a_{y} c_{z},\,a_{z} b_{x} - a_{x} b_{z} + a_{z} c_{x} - a_{x} c_{z},\,-a_{y} b_{x} + a_{x} b_{y} - a_{y} c_{x} + a_{x} c_{y}\right)\]

dodatno sređivanje lijeve strane po komponentama

In [51]:
lijeva_strana.apply_map(lambda t: expand(t))
Out[51]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(-a_{z} b_{y} + a_{y} b_{z} - a_{z} c_{y} + a_{y} c_{z},\,a_{z} b_{x} - a_{x} b_{z} + a_{z} c_{x} - a_{x} c_{z},\,-a_{y} b_{x} + a_{x} b_{y} - a_{y} c_{x} + a_{x} c_{y}\right)\]

razlike lijeve i desne strane je nulvektor, što znači da su vektori s lijeve i desne strane promatrane jednakosti jednaki

In [52]:
lijeva_strana.apply_map(lambda t: expand(t))-desna_strana
Out[52]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(0,\,0,\,0\right)\]

$(\vec{a}\times\vec{b})\times\vec{c}=(\vec{a}\vec{c})\vec{b}-(\vec{b}\vec{c})\vec{a}$

In [53]:
lijeva_strana=(a.cross_product(b)).cross_product(c)
lijeva_strana.apply_map(lambda t: expand(t))
Out[53]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(a_{y} b_{x} c_{y} - a_{x} b_{y} c_{y} + a_{z} b_{x} c_{z} - a_{x} b_{z} c_{z},\,-a_{y} b_{x} c_{x} + a_{x} b_{y} c_{x} + a_{z} b_{y} c_{z} - a_{y} b_{z} c_{z},\,-a_{z} b_{x} c_{x} + a_{x} b_{z} c_{x} - a_{z} b_{y} c_{y} + a_{y} b_{z} c_{y}\right)\]
In [54]:
desna_strana=(a.dot_product(c))*b-(b.dot_product(c))*a
desna_strana.apply_map(lambda t: expand(t))
Out[54]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(a_{y} b_{x} c_{y} - a_{x} b_{y} c_{y} + a_{z} b_{x} c_{z} - a_{x} b_{z} c_{z},\,-a_{y} b_{x} c_{x} + a_{x} b_{y} c_{x} + a_{z} b_{y} c_{z} - a_{y} b_{z} c_{z},\,-a_{z} b_{x} c_{x} + a_{x} b_{z} c_{x} - a_{z} b_{y} c_{y} + a_{y} b_{z} c_{y}\right)\]
In [55]:
lijeva_strana.apply_map(lambda t: expand(t))-desna_strana.apply_map(lambda t: expand(t))
Out[55]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(0,\,0,\,0\right)\]

$\vec{a}\times(\vec{b}\times\vec{c})=(\vec{a}\vec{c})\vec{b}-(\vec{a}\vec{b})\vec{c}$

In [56]:
lijeva_strana=a.cross_product(b.cross_product(c))
lijeva_strana.apply_map(lambda t: expand(t))
Out[56]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(-a_{y} b_{y} c_{x} - a_{z} b_{z} c_{x} + a_{y} b_{x} c_{y} + a_{z} b_{x} c_{z},\,a_{x} b_{y} c_{x} - a_{x} b_{x} c_{y} - a_{z} b_{z} c_{y} + a_{z} b_{y} c_{z},\,a_{x} b_{z} c_{x} + a_{y} b_{z} c_{y} - a_{x} b_{x} c_{z} - a_{y} b_{y} c_{z}\right)\]
In [57]:
desna_strana=(a.dot_product(c))*b-(a.dot_product(b))*c
desna_strana.apply_map(lambda t: expand(t))
Out[57]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(-a_{y} b_{y} c_{x} - a_{z} b_{z} c_{x} + a_{y} b_{x} c_{y} + a_{z} b_{x} c_{z},\,a_{x} b_{y} c_{x} - a_{x} b_{x} c_{y} - a_{z} b_{z} c_{y} + a_{z} b_{y} c_{z},\,a_{x} b_{z} c_{x} + a_{y} b_{z} c_{y} - a_{x} b_{x} c_{z} - a_{y} b_{y} c_{z}\right)\]
In [58]:
lijeva_strana.apply_map(lambda t: expand(t))-desna_strana.apply_map(lambda t: expand(t))
Out[58]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(0,\,0,\,0\right)\]

Jacobijev identitet: $(\vec{a}\times\vec{b})\times\vec{c}+(\vec{b}\times\vec{c})\times\vec{a}+(\vec{c}\times\vec{a})\times\vec{b}=\vec{0}$

In [59]:
lijeva_strana=(a.cross_product(b)).cross_product(c)+(b.cross_product(c)).cross_product(a)+(c.cross_product(a)).cross_product(b)
lijeva_strana.apply_map(lambda t: expand(t))
Out[59]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(0,\,0,\,0\right)\]

Lagrangeov identitet: $(\vec{a}\vec{b})^2+(\vec{a}\times\vec{b})^2=\vec{a}^2\cdot\vec{b}^2$

In [60]:
lijeva_strana=expand((a.dot_product(b))^2+(a.cross_product(b)).dot_product(a.cross_product(b))); lijeva_strana
Out[60]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}a_{x}^{2} b_{x}^{2} + a_{y}^{2} b_{x}^{2} + a_{z}^{2} b_{x}^{2} + a_{x}^{2} b_{y}^{2} + a_{y}^{2} b_{y}^{2} + a_{z}^{2} b_{y}^{2} + a_{x}^{2} b_{z}^{2} + a_{y}^{2} b_{z}^{2} + a_{z}^{2} b_{z}^{2}\]
In [61]:
desna_strana=expand((a.dot_product(a))*(b.dot_product(b))); desna_strana
Out[61]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}a_{x}^{2} b_{x}^{2} + a_{y}^{2} b_{x}^{2} + a_{z}^{2} b_{x}^{2} + a_{x}^{2} b_{y}^{2} + a_{y}^{2} b_{y}^{2} + a_{z}^{2} b_{y}^{2} + a_{x}^{2} b_{z}^{2} + a_{y}^{2} b_{z}^{2} + a_{z}^{2} b_{z}^{2}\]
In [62]:
lijeva_strana-desna_strana
Out[62]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}0\]

Ortogonalna projekcija vektora na vektor

Funkcija projekcija_vektor_vektor(x,a) daje ortogonalnu projekciju vektora x na vektor a.

In [63]:
def projekcija_vektor_vektor(x,a):
    return (a.dot_product(x))/(norm(a)^2)*a

Zadatak

Nađite ortogonalnu projekciju vektora $\vec{x}=(1,1,1)$ na vektor $\vec{a}=(2,1,2)$.

Rješenje

In [64]:
projekcija_vektor_vektor(vector((1,1,1)),vector((2,1,2)))
Out[64]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\frac{10}{9},\,\frac{5}{9},\,\frac{10}{9}\right)\]

Zadaci

Na kraju dajemo još nekoliko primjera zadataka iz vektora koji se mogu elegantno riješiti pomoću SAGE-a.

1. zadatak

Zadani su vektori $\vec{a}=(3,-1,-2)$ i $\vec{b}=(1,2,-5)$. Odredite sljedeće vektore:

  • $\vec{a}\times\vec{b}$
  • $(2\vec{a}+\vec{b})\times\vec{b}$
  • $(3\vec{a}-\vec{b})\times(2\vec{b}-7\vec{a})$

Rješenje

In [65]:
a=vector((3,-1,-2))
b=vector((1,2,-5))
In [66]:
a.cross_product(b)
Out[66]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(9,\,13,\,7\right)\]
In [67]:
(2*a+b).cross_product(b)
Out[67]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(18,\,26,\,14\right)\]
In [68]:
(3*a-b).cross_product(2*b-7*a)
Out[68]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(-9,\,-13,\,-7\right)\]

2. zadatak

Zadani su vektori $\vec{a}=(2,-3,1)$ i $\vec{b}=(-1,4,2)$. Odredite vektor $\vec{v}$ koji je okomit na os $z$ ako je $\vec{a}\cdot\vec{v}=3\vec{b}\cdot\vec{v}=3$.

Rješenje

In [69]:
var("y z")
a=vector((2,-3,1))
b=vector((-1,4,2))
v=vector((x,y,z))

$\vec{v}=(3,1,0)=3\vec{i}+\vec{j}$

In [70]:
solve([v.dot_product(vector((0,0,1)))==0,a.dot_product(v)==3,3*(b.dot_product(v))==3],[x,y,z])
Out[70]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left[x = 3, y = 1, z = 0\right]\right]\]

3. zadatak

Vektori $\vec{a}$ i $\vec{b}$ su kolinearni i $\vec{a}\cdot\vec{b}=12$. Odredite $\vec{b}$ ako je $\vec{a}=(2,1,-1)$.

Rješenje

In [71]:
a=vector((2,1,-1))
b=l*a; b
Out[71]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(2 \, l,\,l,\,-l\right)\]
In [72]:
solve(a.dot_product(b)==12,l)
Out[72]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[l = 2\right]\]

$\vec{b}=(4,2,-2)=4\vec{i}+2\vec{j}-2\vec{k}$

In [73]:
b.subs(l=2)
Out[73]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(4,\,2,\,-2\right)\]

4. zadatak

Zadani su vektori $\vec{a}=2\vec{i}-\vec{j}+2\vec{k}$ i $\vec{b}=-6\vec{i}-3\vec{j}+2\vec{k}$. Odredite jedinični vektor na simetrali kuta između vektora $\vec{a}$ i $\vec{b}$.

Rješenje

In [74]:
a=vector((2,-1,2))
b=vector((-6,-3,2))

duljine vektora $\vec{a}$ i $\vec{b}$

In [75]:
norm(a),norm(b)
Out[75]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(3, 7\right)\]

neki vektor $\vec{c}$ na simetrali kuta između vektora $\vec{a}$ i $\vec{b}$

In [76]:
c=1/norm(a)*a+1/norm(b)*b; c
Out[76]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(-\frac{4}{21},\,-\frac{16}{21},\,\frac{20}{21}\right)\]

vektor $\vec{c}$ nije jedinične duljine

In [77]:
norm(c)
Out[77]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}4 \, \sqrt{\frac{2}{21}}\]

postoje dva jedinična vektora na simetrali kuta između vektora $\vec{a}$ i $\vec{b}$

In [78]:
1/norm(c)*c
Out[78]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(-\frac{1}{2} \, \sqrt{\frac{2}{21}},\,-2 \, \sqrt{\frac{2}{21}},\,\frac{5}{2} \, \sqrt{\frac{2}{21}}\right)\]
In [79]:
-1/norm(c)*c
Out[79]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\frac{1}{2} \, \sqrt{\frac{2}{21}},\,2 \, \sqrt{\frac{2}{21}},\,-\frac{5}{2} \, \sqrt{\frac{2}{21}}\right)\]

5. zadatak

Zadani su vektori $\vec{a}=(2,3,-1)$, $\vec{b}=(1,-2,3)$ i $\vec{c}=(2,-1,1)$. Odredite vektor $\vec{v}$ koji je okomit na ravninu određenu vektorima $\vec{a}$ i $\vec{b}$ ako je $\vec{v}\cdot\vec{c}=-6$.

Rješenje

1. način: bez upotrebe vektorskog produkta

In [80]:
a=vector((2,3,-1))
b=vector((1,-2,3))
c=vector((2,-1,1))
v=vector((x,y,z))

$\vec{v}=(-3,3,3)=-3\vec{i}+3\vec{j}+3\vec{k}$

In [81]:
solve([v.dot_product(a)==0,v.dot_product(b)==0,v.dot_product(c)==-6],[x,y,z])
Out[81]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left[x = \left(-3\right), y = 3, z = 3\right]\right]\]

2. način: upotrebom vektorskog produkta

In [82]:
v=l*(a.cross_product(b)); v
Out[82]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(7 \, l,\,-7 \, l,\,-7 \, l\right)\]
In [83]:
solve(v.dot_product(c)==-6,l)
Out[83]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[l = \left(-\frac{3}{7}\right)\right]\]

$v=(-3,3,3)=-3\vec{i}+3\vec{j}+3\vec{k}$

In [84]:
v.subs(l=-3/7)
Out[84]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(-3,\,3,\,3\right)\]

6. zadatak

Odredite parametar $p$ tako da vektori $\vec{a}=3\vec{i}-4\vec{j}+p\vec{k}$ i $\vec{b}=\vec{i}+4\vec{j}+13\vec{k}$ budu elementi ortogonalne baze prostora $\mathbb{R}^3$.

Rješenje

Da bi vektori $\vec{a}$ i $\vec{b}$ bili elementi ortogonalne baze prostora $\mathbb{R}^3$ mora biti $\vec{a}\perp\vec{b}$, tj. $\vec{a}\vec{b}=0$.

In [85]:
var("p")
a=vector((3,-4,p))
b=vector((1,4,13))
In [86]:
solve(a.dot_product(b)==0,p)
Out[86]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[p = 1\right]\]

7. zadatak

Zadani su vektori $\vec{a}=-\vec{i}+5\vec{j}-2\vec{k}$, $\vec{b}=-\vec{i}+6\vec{j}+4\vec{k}$, $\vec{c}=-7\vec{i}-8\vec{j}+\vec{k}$. Odredite koordinate vektora $(\vec{a}\times\vec{b})\times\vec{c}$ u bazi koju čine vektori $\vec{a},\vec{b},\vec{a}\times\vec{b}$. Objasnite zašto je treća koordinata vektora $(\vec{a}\times\vec{b})\times\vec{c}$ jednaka nula.

Rješenje

In [87]:
a=vector((-1,5,-2))
b=vector((-1,6,4))
c=vector((-7,-8,1))
In [88]:
v=(a.cross_product(b)).cross_product(c); v
Out[88]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(-2,\,-25,\,-214\right)\]

$(\vec{a}\times\vec{b})\times\vec{c}=x\cdot\vec{a}+y\cdot\vec{b}+z\cdot(\vec{a}\times\vec{b})$

In [89]:
v1=x*a+y*b+z*(a.cross_product(b)); v1
Out[89]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(-x - y + 32 \, z,\,5 \, x + 6 \, y + 6 \, z,\,-2 \, x + 4 \, y - z\right)\]
In [90]:
solve([v1[0]==v[0],v1[1]==v[1],v1[2]==v[2]],[x,y,z])
Out[90]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left[x = 37, y = \left(-35\right), z = 0\right]\right]\]

Posljednja koordinata vektora $(\vec{a}\times\vec{b})\times\vec{c}$ jednaka je nula zato jer je $(\vec{a}\times\vec{b})\times\vec{c}\,\perp\, \vec{a}\times\vec{b}$.

8. zadatak

Dokažite da je vektor $\vec{p}=(\vec{a}\,\vec{c})\vec{b}-(\vec{a}\vec{b})\vec{c}$ okomit na vektor $\vec{a}$.

Rješenje

$\vec{a}\perp\vec{p}\ \Leftrightarrow\ \vec{a}\cdot\vec{p}=0$

In [91]:
a=vector((a_x,a_y,a_z))
b=vector((b_x,b_y,b_z))
c=vector((c_x,c_y,c_z))
In [92]:
p=(a.dot_product(c))*b-(a.dot_product(b))*c
In [93]:
p.dot_product(a)
Out[93]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}{\left({\left(a_{x} c_{x} + a_{y} c_{y} + a_{z} c_{z}\right)} b_{x} - {\left(a_{x} b_{x} + a_{y} b_{y} + a_{z} b_{z}\right)} c_{x}\right)} a_{x} + {\left({\left(a_{x} c_{x} + a_{y} c_{y} + a_{z} c_{z}\right)} b_{y} - {\left(a_{x} b_{x} + a_{y} b_{y} + a_{z} b_{z}\right)} c_{y}\right)} a_{y} + {\left({\left(a_{x} c_{x} + a_{y} c_{y} + a_{z} c_{z}\right)} b_{z} - {\left(a_{x} b_{x} + a_{y} b_{y} + a_{z} b_{z}\right)} c_{z}\right)} a_{z}\]
In [94]:
expand(p.dot_product(a))
Out[94]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}0\]

9. zadatak

Zadani su vektori $\vec{v}_1=(1,1,2)$ i $\vec{v}_2=(1,0,c)$.

  • Odredite sve $c\in\mathbb{R}$ za koje je kut između vektora $\vec{v}_1$ i $\vec{v}_2$ jednak $30^{\circ}$.
  • Za sve tako izračunate brojeve $c$ odredite ortogonalnu projekciju vektora $\vec{v}_1$ na vektor $\vec{v}_2$.

Rješenje

In [95]:
var("c")
v1=vector((1,1,2))
v2=vector((1,0,c))
In [96]:
jednadzba=v1.dot_product(v2)/(norm(v1)*sqrt(v2.dot_product(v2)))==cos(pi/6); jednadzba
Out[96]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\frac{\sqrt{6} {\left(2 \, c + 1\right)}}{6 \, \sqrt{c^{2} + 1}} = \frac{1}{2} \, \sqrt{3}\]

u ovom obliku SAGE-u je teško riješiti jednadžbu

In [97]:
solve(jednadzba,c)
Out[97]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[c = \frac{1}{4} \, \sqrt{6} \sqrt{3} \sqrt{c^{2} + 1} - \frac{1}{2}\right]\]

pa mu moramo malo pomoći tako da sami kvadriramo tu jednadžbu (naravno, pritom moramo imati na umu uvjete uz koje smijemo kvadrirati)

In [98]:
solve(jednadzba^2,c)
Out[98]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[c = 1, c = 7\right]\]

ortogonalne projekcije vektora $\vec{v}_1$ na vektor $\vec{v}_2$ za $c=1$ i $c=7$

In [99]:
projekcija_vektor_vektor(v1,v2.subs(c=1))
Out[99]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\frac{3}{2},\,0,\,\frac{3}{2}\right)\]
In [100]:
projekcija_vektor_vektor(v1,v2.subs(c=7))
Out[100]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\frac{3}{10},\,0,\,\frac{21}{10}\right)\]

10. zadatak

Zadani su vektori $\vec{a}=(2m,1,1-m)$, $\vec{b}=(-1,3,0)$ i $\vec{c}=(5,-1,8)$.

  • Odredite $m\in\mathbb{R}$ tako da vektor $\vec{a}$ zatvara jednake kutove s vektorima $\vec{b}$ i $\vec{c}$.
  • Za tako pronađeni $m$ izračunajte volumen tetraedra određenog s vektorima $\vec{a},\vec{b},\vec{c}$ i duljinu visine tog tetraedra spuštenu na bazu određenu s vektorima $\vec{b}$ i $\vec{c}$.

Rješenje

In [101]:
var("m")
a=vector((2*m,1,1-m))
b=vector((-1,3,0))
c=vector((5,-1,8))
In [102]:
jednadzba=a.dot_product(b)/(sqrt(a.dot_product(a))*norm(b))==a.dot_product(c)/(sqrt(a.dot_product(a))*norm(c))
jednadzba
Out[102]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}-\frac{\sqrt{10} {\left(2 \, m - 3\right)}}{10 \, \sqrt{{\left(m - 1\right)}^{2} + 4 \, m^{2} + 1}} = \frac{\sqrt{10} {\left(2 \, m + 7\right)}}{30 \, \sqrt{{\left(m - 1\right)}^{2} + 4 \, m^{2} + 1}}\]
In [103]:
solve(jednadzba,m)
Out[103]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[m = \left(\frac{1}{4}\right)\right]\]

volumen tetraedra

In [104]:
V=1/6*abs(mjesoviti_produkt(a.subs(m=1/4),b,c)); V
Out[104]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\frac{19}{12}\]

površina baze određena s vektorima $\vec{b}$ i $\vec{c}$

In [105]:
B=1/2*norm(b.cross_product(c)); B
Out[105]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\sqrt{209}\]

duljina visine tetraedra spuštena na bazu određenu vektorima $\vec{b}$ i $\vec{c}$

In [106]:
3*V/B
Out[106]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\frac{1}{44} \, \sqrt{209}\]

11. zadatak

Zadani su vektori $\vec{a}=(3,-1,4),  \vec{b}=(-1,2,5),  \vec{c}=(2,-2,k)$.

  • Nađite parametar $k$ ako znamo da su vektori $\vec{b}$ i $\vec{c}$ okomiti.
  • Odredite površinu paralelograma određenog s vektorima $\vec{a}$ i $\vec{c}$.
  • Odredite volumen piramide određene s vektorima $\vec{a}$, $\vec{b}$ i $\vec{c}$.
  • Da li vektori $\vec{a},\vec{b},\vec{c}$ čine bazu za $V^3$? Ako je odgovor potvrdan, prikažite vektor $\vec{d}=(-1,4,6)$ kao linearnu kombinaciju vektora $\vec{a}$, $\vec{b}$ i $\vec{c}$.

Rješenje

In [107]:
var("k")
a=vector((3,-1,4))
b=vector((-1,2,5))
c=vector((2,-2,k))
d=vector((-1,4,6))
In [108]:
solve(b.dot_product(c)==0,k)
Out[108]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[k = \left(\frac{6}{5}\right)\right]\]

površina paralelograma

In [109]:
norm(a.cross_product(c.subs(k=6/5)))
Out[109]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}2 \, \sqrt{\frac{102}{5}}\]

volumen piramide

In [110]:
1/6*abs(mjesoviti_produkt(a,b,c.subs(k=6/5)))
Out[110]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}3\]

Kako je mješoviti produkt vektora $\vec{a}, \vec{b}, \vec{c}$ različit od nule, slijedi da su oni nekomplanarni pa čine bazu za $V^3$. Stoga se vektor $\vec{d}$ može na jedinstveni način prikazati kao linearna kombinacija vektora $\vec{a}, \vec{b}, \vec{c}$.

$\vec{d}=x\cdot\vec{a}+y\cdot\vec{b}+z\cdot\vec{c}$

In [111]:
d1=x*a+y*b+z*c.subs(k=6/5); d1
Out[111]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(3 \, x - y + 2 \, z,\,-x + 2 \, y - 2 \, z,\,4 \, x + 5 \, y + \frac{6}{5} \, z\right)\]
In [112]:
solve([d1[0]==d[0],d1[1]==d[1],d1[2]==d[2]],[x,y,z])
Out[112]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left[x = \left(\frac{17}{15}\right), y = \left(\frac{11}{15}\right), z = \left(-\frac{11}{6}\right)\right]\right]\]

12. zadatak

Zadani su vektori $\vec{a}=(0,-2,3),  \vec{b}=(2,1,5),  \vec{c}=(2,2,0)$.

  • Odredite vektor $\vec{x}$ tako da vrijedi $\vec{x}\cdot\vec{a}=1$, $\vec{x}\cdot\vec{b}=7$, $\vec{x}\cdot\vec{c}=3$.
  • Odredite jedinični vektor $\vec{n}$ koji je okomit na vektore $\vec{x}$ i $\vec{a}\times(\vec{b}\times\vec{c})$.

Rješenje

In [113]:
var("x_1 x_2 x_3")
a=vector((0,-2,3))
b=vector((2,1,5))
c=vector((2,2,0))
x=vector((x_1,x_2,x_3))
In [114]:
sustav=[x.dot_product(a)==1,x.dot_product(b)==7,x.dot_product(c)==3]; sustav
Out[114]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[-2 \, x_{2} + 3 \, x_{3} = 1, 2 \, x_{1} + x_{2} + 5 \, x_{3} = 7, 2 \, x_{1} + 2 \, x_{2} = 3\right]\]
In [115]:
solve(sustav,[x_1,x_2,x_3])
Out[115]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left[x_{1} = \left(\frac{1}{2}\right), x_{2} = 1, x_{3} = 1\right]\right]\]
In [116]:
x=vector((1/2,1,1))

drugi dio zadatka

In [117]:
vektori=[b.cross_product(c),a.cross_product(b.cross_product(c))]; vektori
Out[117]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left(-10,\,10,\,2\right), \left(-34,\,-30,\,-20\right)\right]\]

neki vektor okomit na vektore $\vec{x}$ i $\vec{a}\times(\vec{b}\times\vec{c})$

In [118]:
v=x.cross_product(vektori[1]); v
Out[118]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(10,\,-24,\,19\right)\]

postoje ukupno dva jedinična vektora koji su okomiti na vektore $\vec{x}$ i $\vec{a}\times(\vec{b}\times\vec{c})$

In [119]:
1/norm(v)*v
Out[119]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\frac{10}{1037} \, \sqrt{1037},\,-\frac{24}{1037} \, \sqrt{1037},\,\frac{19}{1037} \, \sqrt{1037}\right)\]
In [120]:
-1/norm(v)*v
Out[120]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(-\frac{10}{1037} \, \sqrt{1037},\,\frac{24}{1037} \, \sqrt{1037},\,-\frac{19}{1037} \, \sqrt{1037}\right)\]
In [ ]: