import platform
platform.platform()
platform.python_version()
import numpy as np
import numpy.linalg as LA
v1=np.array([1,2,-3])
v2=np.array([2,-1,1])
v1+v2
v1-v2
5/4*v1
-3*v2
2/5*v1+7*v2
LA.norm(v1)
LA.norm(v2)
LA.norm(2/5*v1+7*v2)
Duljina vektora v1 zaokružena na 5 decimala
round(LA.norm(v1),5)
v1,v2
np.dot(v1,v2)
np.dot(v2,v1)
kut_rad=np.arccos(np.dot(v1,v2)/(LA.norm(v1)*LA.norm(v2)))
kut_rad
kut_rad*180/np.pi
np.cross(v1,v2)
np.cross(v2,v1)
a=np.array([1,2,-6])
b=np.array([-3,2,7])
c=np.array([0,2,3])
np.dot(np.cross(a,b),c)
Parnom permutacijom vektora mješoviti produkt se ne mijenja, a neparnom permutacijom vektora mješoviti produkt mijenja predznak.
np.dot(np.cross(b,a),c)
np.dot(np.cross(b,c),a)
Nađite ortogonalnu projekciju vektora $\vec{x}=(1,1,1)$ na vektor $\vec{a}=(2,1,2)$.
x=np.array([1,1,1])
a=np.array([2,1,2])
np.dot(x,a)/(LA.norm(a)**2)*a
Odredite vrijednost izraza $\big(\big(2\vec{a}+\vec{b}\big)\times\vec{c}\big)^2-2\vec{a}\big(\vec{b}+\vec{c}\big)+\vec{a}^2\vec{c}^2$ ako je $\vec{a}=(2,0,-3)$, $\vec{b}=(-5,2,4)$ i $\vec{c}=(-4,6,7)$.
a=np.array([2,0,-3])
b=np.array([-5,2,4])
c=np.array([-4,6,7])
Radi jednostavnosti računat ćemo pojedine dijelove zadanog izraza korak po korak.
vek=np.cross(2*a+b,c)
vek
broj1=np.dot(vek,vek)
broj1
broj2=2*np.dot(a,b+c)
broj2
broj3=np.dot(a,a)*np.dot(c,c)
broj3
Konačno rješenje
broj1-broj2+broj3
Možemo zadani izraz izračunati u jednom koraku
np.dot(np.cross(2*a+b,c),np.cross(2*a+b,c))-2*np.dot(a,b+c)+np.dot(a,a)*np.dot(c,c)
Zadani su vektori $\vec{a}=(2,1,-1)$, $\vec{b}=(-1,3,0)$ i $\vec{c}=(5,-1,8)$.
a=np.array([2,1,-1])
b=np.array([-1,3,0])
c=np.array([5,-1,8])
vol=np.abs(np.dot(np.cross(a,b),c))
vol
površina baze
Baza=LA.norm(np.cross(a,c))
Baza
duljina visine
vol/Baza
Ukoliko je potrebno koristiti simbolički račun, to možemo pomoću sympy modula.
import sympy as sp
sp.init_printing()
v1=sp.Matrix([1,2,-3])
v2=sp.Matrix([2,-1,1])
v1.shape
v1+v2
v1-v2
5/4*v1
sp.Rational(5,4)*v1
-3*v2
2/5*v1+7*v2
sp.Rational(2,5)*v1+7*v2
v1.norm()
sp.N(v1.norm())
sp.N(v1.norm(),50)
v2.norm()
v1,v2
v1.dot(v2)
v2.dot(v1)
kut_rad=sp.acos(v1.dot(v2)/(v1.norm()*v2.norm()))
kut_rad
sp.N(kut_rad)
sp.N(kut_rad*180/sp.pi)
v1.cross(v2)
v2.cross(v1)
a=sp.Matrix([1,2,-6])
b=sp.Matrix([-3,2,7])
c=sp.Matrix([0,2,3])
(a.cross(b)).dot(c)
Parnom permutacijom vektora mješoviti produkt se ne mijenja, a neparnom permutacijom vektora mješoviti produkt mijenja predznak.
(b.cross(a)).dot(c)
(b.cross(c)).dot(a)
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)$.
l=sp.var('l')
a=sp.Matrix([2,1,-1])
b=l*a
b
sp.solve(a.dot(b)-12,l)
sp.solveset(a.dot(b)-12,l)
$\vec{b}=(4,2,-2)=4\vec{i}+2\vec{j}-2\vec{k}$
b.subs({l:2})
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$.
1. način: bez upotrebe vektorskog produkta
x,y,z=sp.var('x y z')
a=sp.Matrix([2,3,-1])
b=sp.Matrix([1,-2,3])
c=sp.Matrix([2,-1,1])
v=sp.Matrix([x,y,z])
$\vec{v}=(-3,3,3)=-3\vec{i}+3\vec{j}+3\vec{k}$
v.dot(a), v.dot(b), v.dot(c)+6
sp.linsolve([v.dot(a),v.dot(b),v.dot(c)+6],(x,y,z))
2. način: upotrebom vektorskog produkta
v=l*(a.cross(b)); v
sp.solve(v.dot(c)+6,l)
$\vec{v}=(-3,3,3)=-3\vec{i}+3\vec{j}+3\vec{k}$
v.subs({l:-3/7})
v.subs({l:sp.Rational(-3,7)})
Zadani su vektori $\vec{a}=(3,-1,4), \vec{b}=(-1,2,5), \vec{c}=(2,-2,k)$.
k=sp.var("k")
a=sp.Matrix([3,-1,4])
b=sp.Matrix([-1,2,5])
c=sp.Matrix([2,-2,k])
d=sp.Matrix([-1,4,6])
sp.solve(b.dot(c),k)
površina paralelograma
a.cross(c.subs({k:sp.Rational(6,5)})).norm()
volumen piramide
sp.Rational(1,6) * sp.Abs((a.cross(b)).dot(c.subs({k:sp.Rational(6,5)})))
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}$
d1=x*a+y*b+z*c.subs({k:sp.Rational(6,5)}); d1
sp.linsolve([d1[0]-d[0],d1[1]-d[1],d1[2]-d[2]],[x,y,z])
Odredite parametar $k\in\mathbb{R}$ tako da vektori $\vec{a}=(3,-1,4),$ $\vec{b}=(-1,2,5)$ i $\vec{c}=(2,-2,k)$ budu komplanarni.
a=sp.Matrix([3,-1,4])
b=sp.Matrix([-1,2,5])
c=sp.Matrix([2,-2,k])
Vektori su komplanarni ako i samo ako je njihov mješoviti produkt jednak nula.
sp.solve((a.cross(b)).dot(c),k)