1-线性代数-相似矩阵及二次型(4)

from sympy.matrices import *  
from sympy import symbols

一.向量的内积,长度和正交性
1.向量的内积
a1,a2,a3=symbols('a1,a2,a3')
b1,b2,b3=symbols('b1,b2,b3')
a=Matrix([a1,a2,a3])
b=Matrix([b1,b2,b3]) 
a.dot(b)

2.向量的长度(模) 

 a.norm()

3.向量的夹角
a1,a2,a3=symbols('a1,a2,a3')
b1,b2,b3=symbols('b1,b2,b3')
a=Matrix([a1,a2,a3])
b=Matrix([b1,b2,b3]) 
ab_=a.dot(b)
a_=a.norm()
b_=b.norm() 
cosab=ab_/(a_*b_)
cosab

4.向量正交
a1,a2,a3=symbols('a1,a2,a3')
b1,b2,b3=symbols('b1,b2,b3')
a=Matrix([a1,a2,a3])
b=Matrix([b1,b2,b3]) 
a.cross(b)    #返回与a,b向量都相交的向量

5.向量的单位化(单位向量)
a1,a2,a3=symbols('a1,a2,a3')
b1,b2,b3=symbols('b1,b2,b3')
a=Matrix([a1,a2,a3])
b=Matrix([b1,b2,b3]) 
a.normalized()   #向量除以模

 6.投影向量
a1,a2,a3=symbols('a1,a2,a3')
b1,b2,b3=symbols('b1,b2,b3')
a=Matrix([a1,a2,a3])
b=Matrix([b1,b2,b3]) 
a.project(b)  #向量a在b中的投影向量

7.正交矩阵
若矩阵A的 逆矩阵等于其转置矩阵A.inv=A.T 或者A*A.T=E,则称A为正交矩阵.
a1,a2,a3=symbols('a1,a2,a3')
b1,b2,b3=symbols('b1,b2,b3')
c1,c2,c3=symbols('c1,c2,c3')
I=[Matrix([1,2,-1]),Matrix([-1,3,1]),Matrix([4,1,0])]
O=GramSchmidt(I,True)
O

二.方阵的特征值和特征向量
1.特征值
A=Matrix([[1,0,2],[0,3,0],[2,0,1]])
A.eigenvals()

2.特征向量
A=Matrix([[1,0,2],[0,3,0],[2,0,1]])
A.eigenvects()

三.相似矩阵
1.矩阵相似对角化
A=Matrix([[1,0,2],[0,3,0],[2,0,1]])
A.jordan_form()   #返回两个矩阵:  P对角化矩阵和对角矩阵A_
或者A.diagonalize()

2.矩阵的LU分解
A=Matrix([[1,3,4,6],[3,5,7,8],[9,2,1,6],[3,4,5,7]])
A.LUdecomposition()    #返回下三角和上三角矩阵

猜你喜欢

转载自blog.csdn.net/fanxianchao_2012/article/details/126156933
今日推荐