10.2 SciPy中的线性代数运算(2)矩阵类型下的基本操作矩阵也可以用二维数组对象表示,数组对象的矩阵操作与矩阵对象有一定的区别。M矩阵为:【例10-4】数组的创建及其简单运算。[1 2]M = np.array([[1,2],[3,4]][3 4]print(M矩阵为:In',M)M的转置矩阵为:[1 3]print(M的转置矩阵为:In',M.T)[2 4]print(M的逆矩阵为:n',linalg.inv(M)M的逆矩阵为:[[-2. 1. ][1.5 -0.5]]
10.2 SciPy中的线性代数运算 (2) 矩阵类型下的基本操作 矩阵也可以用二维数组对象表示,数组对象的矩阵操作与矩阵对象有一 定的区别。 【例10-4】数组的创建及其简单运算。 M = np.array([[1,2],[3,4]]) print('M矩阵为:\n',M) print('M的转置矩阵为:\n',M.T) print('M的逆矩阵为:\n',linalg.inv(M)) M矩阵为: [[1 2] [3 4]] M的转置矩阵为: [[1 3] [2 4]] M的逆矩阵为: [[-2. 1. ] [ 1.5 -0.5]]
10.2 SciPy中的线性代数运算2.线性方程组求解10x+3y+5z=1025-12x+5y-z=662[2x+4y+7z=4除了通过矩阵的逆求解外可以直接使用linalg.solveO函数求解而且效率更高【例10-5】线性方程组求解。In[5]:from scipy import linalgimport numpy as npa = np.array([1, 3, 5], [2, 5, -1], [2, 4, 7])b = np.array([10, 6, 4])x = linalg.solve(a, b)print(x)Out[5]:[-14.315789477.052631580.63157895]
10.2 SciPy中的线性代数运算 2. 线性方程组求解 除了通过矩阵的逆求解外可以直接使用linalg.solve()函数求解而且效率更高。 【例10-5】线性方程组求解。 1 3 5 10 2 5 1 6 2 4 7 4 x y z − = 3 5 10 2 5 6 2 4 7 4 x y z x y z x y z + + = + − = + + = In[5]: from scipy import linalg import numpy as np a = np.array([[1, 3, 5], [2, 5, -1], [2, 4, 7]]) b = np.array([10, 6, 4]) x = linalg.solve(a, b) print(x) Out[5]: [-14.31578947 7.05263158 0.63157895]
10.2 SciPy中的线性代数运算3.行列式的计算行列式是一个将方阵映射到标量的函数。linalg.deto可以计算矩阵的行列式。【例10-6】矩阵行列式的计算。In[6]:M = np.array([1,2],[3,4]]linalg.det(M)Out[6]:-2.0
3. 行列式的计算 10.2 SciPy中的线性代数运算 行列式是一个将方阵映射到标量的函数。linalg.det()可以计算矩阵的行列式。 【例10-6】矩阵行列式的计算。 In[6]: M = np.array([[1,2],[3,4]]) linalg.det(M) Out[6]: -2.0
10.2SciPy中的线性代数运算4.范数行列式是一个将方阵映射到标量的函数。linalg.detO可以计算矩阵的行列式。范数是数学上一个类似“长度”的概念。linalg.normO函数可以计算向量或矩阵的范数(或者模)。常见范数及其含义见下表。含义矩阵范数Frobenius矩阵所有元素平方和的平方根L范数矩阵中每列元素和的最大值-1范数矩阵中每列元素和的最小值2范数矩阵的最大奇异值-2范数矩阵的最小奇异值正无穷范数矩阵每行元素和的最大值负无穷范数矩阵每行元素和的最小值M = np.array([[1,2],[3,4]])print(M矩阵为:In,M)print(M矩阵的L范数为:In',linalg.norm(M,1)print(M矩阵的2范数为:In,linalg.norm(M,2))
10.2 SciPy中的线性代数运算 4. 范数 行列式是一个将方阵映射到标量的函数。linalg.det()可以计算矩阵的行列式。 矩阵范数 含义 Frobenius 矩阵所有元素平方和的平方根 L范数 矩阵中每列元素和的最大值 -1范数 矩阵中每列元素和的最小值 2范数 矩阵的最大奇异值 -2范数 矩阵的最小奇异值 正无穷范数 矩阵每行元素和的最大值 负无穷范数 矩阵每行元素和的最小值 范数是数学上一个类似“长度”的概念。linalg.norm()函数可以计算向量或 矩阵的范数(或者模)。常见范数及其含义见下表。 M = np.array([[1,2],[3,4]]) print('M矩阵为:\n',M) print('M矩阵的L范数为:\n',linalg.norm(M,1)) print('M矩阵的2范数为:\n',linalg.norm(M,2))