Diszkrét matematika III gyakorlat

Linkek: 4.2(b), 4.2(e), 4.2(f), 4.4(b), 4.4(f) 4.5(c), 4.2(b) újratöltve, 4.6(c)

Bemelegítés

var('x,y') show(implicit_plot(x^2+y^2==1, (x,-4,4), (y,-4,4)))

4.2(b) feladat

Szintvonal:

var('x1,x2') def f(x1,x2): return -4*x1^2+4*x1*x2-4*x2^2 @interact def Q42b_gorbe(c=slider(-4, 1, 1, default=-1)): show(implicit_plot(f(x1,x2)==c, (x1,-1,1), (x2,-1,1)))

Felület:

@interact def Q42b_felulet(c=slider(-4, 1, 1, default=1)): felulet=plot3d(f, (x1,-1,1), (x2,-1,1), aspect_ratio=[1,1,0.2]) sik=plot3d(c, (x1,-1,1), (x2,-1,1), color="yellow") show(felulet+sik)

Szintvonalak:

contour_plot(f(x1,x2), (x1,-1,1), (x2,-1,1))

4.2(e) feladat

Szintfelület:

var('x1,x2,x3') def f(x1,x2,x3): return x1^2+6*x2^2+4*x3^2+4*x1*x2-4*x2*x3 @interact def Q42e(c=slider(-1, 4, 1, default=3)): felulet=implicit_plot3d(f(x1,x2,x3)==c, (x1,-4,4), (x2,-4,4), (x3,-4,4)) show(felulet)

4.2(f) feladat

Szintfelület:

var('x1,x2,x3') def f(x1,x2,x3): return 2*x1*x3-2*x1*x2-2*x2*x3 @interact def Q42e(c=slider(-3, 4, 1, default=4)): felulet=implicit_plot3d(f(x1,x2,x3)==c, (x1,-4,4), (x2,-4,4), (x3,-4,4)) show(felulet)

4.4(b) feladat

v = arrow((0,0), (10,10), color='blue') u = arrow((0,0), (1,7), color='red') u_parh = arrow((0,0), (4,4), color='lightblue') u_mer = arrow((4,4), (1,7), color='orange') show(v+u+u_parh+u_mer,aspect_ratio=1)

4.4(f) feladat

v = arrow3d((0,0,0), (2,3,-1), 7, color='blue') u = arrow3d((0,0,0), (-4,14,6), 7, color='red') u_parh = arrow3d((0,0,0), (4,6,-2), 7, color='lightblue') u_mer = arrow3d((4,6,-2), (-4,14,6), 7, color='orange') nv = arrow3d((0,0,0), (4,-1,5), 7, color='black') var('x,y,z') S=implicit_plot3d(4*x-y+5*z==0, (x,-9,5), (y,-1,15), (z,-3,9), color='yellow') show(u+u_parh+u_mer+v, aspect_ratio=[1,1,1])

4.5(c) feladat

u1 = arrow3d((0,0,0), (1,0,0), 2, color='green') u2 = arrow3d((0,0,0), (2,3,0), 2, color='red') u3 = arrow3d((0,0,0), (1,6,1), 2, color='blue') v2 = arrow3d((0,0,0), (0,3,0), 2, color='pink') v3 = arrow3d((0,0,0), (0,0,1), 2, color='lightblue') doboz = line3d([(1,6,1),(1,0,1),(0,0,1),(0,6,1),(1,6,1),(1,6,0),(0,6,0),(0,6,1),(0,6,0),(0,0,0),(0,0,1),(0,0,0),(1,0,0),(1,0,1),(1,0,0),(1,6,0)],color="gray") var('x,y,z') S=implicit_plot3d(z==0, (x,-1,4), (y,-1,7), (z,-1,4), color='yellow') show(u1+u2+u3, aspect_ratio=[1,1,1],frame=false)

4.2(b) feladat újratöltve

Írjuk fel a kvadratikus alak mátrixát és határozzunk meg egy sajátbázist:

%display latex A = matrix(QQ, [[-4,-2], [-2,-4]]) E = matrix(QQ, [[1,0], [0,1]]) A, A-x*E, (A-x*E).det(), (A-x*E).det().roots() #l = -6 #(A-l*E), (A-l*E).rref()

A sajátértékek megadják az ellipszis alakját, a sajátvektorok pedig az ellipszis tengelyeinek állását:

var('x1,x2') def f(x1,x2): return -4*x1^2+4*x1*x2-4*x2^2 def g(x1,x2): return -6*x1^2-2*x2^2 ellipszis_f = implicit_plot(f(x1,x2)==-2, (x1,-1,1), (x2,-1,1), color="blue") ellipszis_g = implicit_plot(g(x1,x2)==-2, (x1,-1,1), (x2,-1,1), color="yellow") v1 = arrow((0,0), (-1,1), color='red') v2 = arrow((0,0), (1,1), color='red') show(ellipszis_f, aspect_ratio=1)

4.6(c) feladat

Adjuk meg az $\mathbb{R}^3$ euklideszi térnek az alábbi mátrix(hoz tartozó lineáris transzformáció) sajátvektoraiból álló ortogonális bázisát. $$ A = \begin{pmatrix} 16 & 4 & 2 \\ 4 & 10 & -4 \\ 2 & -4 & 16 \end{pmatrix} $$

Határozzunk meg egy sajátbázist:

%display latex A = matrix(QQ, [[16,4,2], [4,10,-4], [2,-4,16]]) E = matrix(QQ, [[1,0,0], [0,1,0], [0,0,1]]) A, (A-x*E).det().expand(), (A-x*E).det().roots() #l = 6 #(A-l*E), (A-l*E).rref()

Tehát $6$ egyszeres sajátérték, $18$ pedig kétszeres sajátérték. A hozzájuk tartozó sajátalterek: $$ S_6 = [(-1,2,1)], \qquad S_{18} = [(2,1,0),\,(1,0,1)] $$ Az $S_{18}$ sajátaltér fenti bázisa nem ortogonális. Gram–Schmidt-ortogonalizációval kapjuk az $(1,0,1),\,(1,1,-1)$ ortogonális bázist $S_{18}$-ban. Ezek a vektorok merőlegesek $S_6$ bázisvektorára (szimmetrikus mátrixnál a különböző sajátértékekhez tartozó sajátvektorok mindig merőlegesek). Ezzel megkaptuk az $\mathbb{R}^3$ euklideszi térnek az $A$ mátrix sajátvektoraiból álló ortogonális bázisát: $$ v_1 = (-1,2,1), \quad v_2 = (1,0,1), \quad v_2 = (1,1,-1). $$

Az $A$ mátrixhoz tartozó kvadratikus alak:

var('x1,x2,x3') xv = matrix([[x1,x2,x3]]) (xv*A*xv.transpose()).expand()

A sajátvektorok megadják a kvadratikus alak szintfelületeinek tengelyeit:

def f(x1,x2,x3): return 16*x1^2 + 8*x1*x2 + 10*x2^2 + 4*x1*x3 - 8*x2*x3 + 16*x3^2 def g(x1,x2,x3): return 18*x1^2+18*x2^2+6*x3^2 felulet_f=implicit_plot3d(f(x1,x2,x3)==60, (x1,-4,4), (x2,-4,4), (x3,-4,4), color="blue", opacity=0.9) felulet_g=implicit_plot3d(g(x1,x2,x3)==60, (x1,-4,4), (x2,-4,4), (x3,-4,4), color="yellow", opacity=0.9) v1 = arrow3d((0,0,0), (-1,2,1), 2, color='red') v2 = arrow3d((0,0,0), (1,0,1), 2, color='red') v3= arrow3d((0,0,0), (1,1,-1), 2, color='red') show(felulet_f)

Üres cellák