
Упражнение 5
x1,y1,z1=symbols('x1 y1 z1') A=Matrix([[1,2,-4],[2,-2,-2],[-4,-2,1]]) t,d=A.diagonalize() print("Собственные векторы:",t) print("Собственные числа:",d) X1=Matrix([x1,y1,z1]) a=np.array([[1,2,-4],[2,-2,-2],[-4,-2,1]]) tt,t2=np.linalg.eig(a) print(t2) X=t*X1 print(X) F=X[0]**2+4*X[0]*X[1]-2*X[1]**2+X[2]**2-8*X[0]*X[2]-4*X[1]*X[2]+6 f=simplify(-F/6) f
Собственные векторы: Matrix([[-1, 1, -2], [2, 0, -1], [0, 1, 2]]) Собственные числа: Matrix([[-3, 0, 0], [0, -3, 0], [0, 0, 6]]) [[-0.74535599 0.66666667 0.10193854] [ 0.2981424 0.33333333 0.84524732] [-0.59628479 -0.66666667 0.5245622 ]] Matrix([[-x1 + y1 - 2*z1], [2*x1 - z1], [y1 + 2*z1]])
5*x1**2/2 - x1*y1 + y1**2 - 9*z1**2 - 1
x1,y1,z1=symbols('x1 y1 z1') A=Matrix([[1,2,-4],[2,-2,-2],[-4,-2,1]]) XX=Matrix([[x1,y1,z1]]) T,D=A.diagonalize() X=T/3*XX.T F=X[0]**2+4*X[0]*X[1]-2*X[1]**2+X[2]**2-8*X[0]*X[2]-4*X[1]*X[2]+6 f=simplify(-F/6) f
5*x1**2/18 - x1*y1/9 + y1**2/9 - z1**2 - 1
A=Matrix([[5/18,-1/18,0],[-1/18,1/9,0],[0,0,-1]]) XX=Matrix([[x1,y1,z1]]) T,D=A.diagonalize() X=T/3*XX.T F=5*X[0]**2/18-X[0]*X[1]/9+X[1]**2/9-X[2]**2-1 f=simplify(-F) f
-0.0327331829489629*x1**2 - 1.5419764230905e-18*x1*y1 - 0.0104766935942469*y1**2 + 0.111111111111111*z1**2 + 1.0
fig = plt.figure(figsize=(7, 7)) ax = fig.add_subplot(111, projection='3d') u=np.linspace(-2,2,200) v=np.linspace(0,2*np.pi,60) [u,v]=np.meshgrid(u,v) a = -1/3 b = -1/10 c = 1/10 x = a*np.cosh(u)*np.cos(v) y = b*np.cosh(u)*np.sin(v) z = c*np.sinh(u) ax.plot_surface(x, y, z, rstride=4, cstride=4, color='r') plt.xlabel('x') plt.ylabel('y') plt.show()
Дополнительное задание
x,y,z=symbols('x y z') a=4 b=-1 c=1 d=8 e=-4 f=-2 g=2 if a!=0 and b!=0 and c!=0: aa=d/(2*a) bb=e/(2*b) cc=f/(2*c) dd=d**2/(4*a)+e**2/(4*b)+f**2/(4*c)-g F=a*(x+aa)**2+b*(y+bb)**2+c*(z+cc)**2-dd f=simplify(F/c) if a!=0 and b!=0 and c==0: aa=d/(2*a) bb=e/(2*b) dd=d**2/(4*a)+e**2/(4*b) F=a*(x+aa)**2+b*(y+bb)**2+c*z**2-dd f=simplify(F/c) if a!=0 and b==0 and c==0: aa=d/(2*a) dd=d**2/(4*a) F=a*(x+aa)**2+b*y**2+c*z**2-dd f=simplify(F/c) if a==0 and b!=0 and c!=0: bb=e/(2*b) cc=f/(2*c) dde**2/(4*b)+f**2/(4*c)-g F=a*x**2+b*(y+bb)**2+c*(z+cc)**2-dd f=simplify(F/c) if a!=0 and b==0 and c!=0: aa=d/(2*a) cc=f/(2*c) dd=d**2/(4*a)+f**2/(4*c)-g F=a*(x+aa)**2+b*y**2+c*(z+cc)**2-dd f=simplify(F/c) if a==0 and b!=0 and c==0: bb=e/(2*b) dd=e**2/(4*b) F=a*x**2+b*(y+bb)**2+c*z**2-dd f=simplify(F/c) if a==0 and b==0 and c!=0: cc=f/(2*c) dd=f**2/(4*c)-g F=a*x**2+b*y**2+c*(z+cc)**2-dd f=simplify(F/c) print(f)
4*(x + 1.0)**2 - 4.0*(0.5*y + 1)**2 + (z - 1.0)**2 + 1.0
%matplotlib widget fig = plt.figure(figsize=(7, 7)) ax = fig.add_subplot(111, projection='3d') u=np.linspace(-2,2,200) v=np.linspace(0,2*np.pi,200) [u,v]=np.meshgrid(u,v) a = 4 b = -4 c = 1 x = a*np.sinh(u)*np.cos(v) y = b*np.sinh(u)*np.sin(v) z = c*np.cosh(u) ax.plot_surface(z, x, y, color='r') ax.plot_surface(-z, x, y, color='r') ax.set_xlim([-10,10]) ax.set_ylim([-10,10]) ax.set_zlim([-10,10]) plt.xlabel('x') plt.ylabel('y') plt.show()