MATLAB中的矩阵运算
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
哈 工 程 大 学 数 值 计 算 软 件
MATLAB中的矩阵运算 中的矩阵运算
MATLAB与其它数学软件的不同之处就在于强大的矩阵 与其它数学软件的不同之处就在于强大的矩阵 运算功能,下面我们分别加以讨论。 运算功能,下面我们分别加以讨论。 1.向量及其运算 向量可以用冒号、 见上面)、 向量可以用冒号 、 z=[x,y](见上面 、 b=a(1:3,2)的形式生成 见上面 的形式生成 它也可以利用下面的2个函数生成, ,它也可以利用下面的2个函数生成,即 生成n个元素的行向量 (1) linespace(a,b,n)生成 个元素的行向量,它的元素 生成 个元素的行向量, 间线性等距分布。 的(a,b)间线性等距分布。 间线性等距分布 生成n个元素行向量 (2) logspace(a,b,n)生成 个元素行向量,其元素在 生成 个元素行向量,其元素在(a,b) 间对数等距分布。 间对数等距分布。 向量的2种基本数学运算是点积与叉积,其命令为: 向量的2种基本数学运算是点积与叉积,其命令为: dot(a,b)---返回向量的点积; 返回向量的点积; 返回向量的点积 cross(a,b)---返回向量的叉积。 返回向量的叉积。 返回向量的叉积 >>a=[1 2 3];b=[4 5 6];c=dot(a,b) c= 32 >>d=cross(a,b) d = -3 6 -3
上页 下页 退出
哈 工 程 大 学 数 值 计 算 软 件
●randn生成正态分布的随机阵 生成正态分布的随机阵 randn(n)生成 ×n的正态随机阵; 生成n× 的正态随机阵 的正态随机阵; 生成 randn(m,n),randn([m,n])生成 ×n的正态随机阵; 生成m× 的正态随机阵 的正态随机阵; 生成 randn(size(A))生成与矩阵 大小相同的正态随机阵。 生成与矩阵A大小相同的正态随机阵 生成与矩阵 大小相同的正态随机阵。 (5)其它基本运算 左右翻转; 上下翻转; ●fliplr(A) 将A左右翻转;●flipud(A) 将A上下翻转; 左右翻转 上下翻转 旋转90度 返回A ● rot90(A) 将 A旋转 度 。 ● tril(A)返回 A 的下三角部分 ; 旋转 返回 的下三角部分; tril(A,k)返回A第K 条对角线以下部分,K=0为主对角线, 返回A 条对角线以下部分,K=0为主对角线, 返回 K>0为主对角线以上,K<0为主对角线以下。 K>0为主对角线以上,K<0为主对角线以下。 返回A ●triu(A), triu(A,K)返回A的上三角部分,其它同上。 返回 的上三角部分,其它同上。 返回以向量v为主对角线的矩阵 ●diag(v)返回以向量 为主对角线的矩阵; 返回以向量 为主对角线的矩阵; diag(v,k) 若 v 是 n 个 元 素 的 向 量 , 则 它 返 回 一 个 大 小 为 n+abs(k)方阵,向量 位于第 条对角线上。K=0代表主对角线 方阵, 位于第k条对角线上 方阵 向量v位于第 条对角线上。 代表主对角线 为主对角线以上, 为主对角线以下。 , k>0为主对角线以上,k<0为主对角线以下。 diag(A)以向量 为主对角线以上 为主对角线以下 以向量 形式, 返回A 的主对角线元素; 对于矩阵A 形式 , 返回 A 的主对角线元素 ; diag(A,k)对于矩阵 A , 返回 对于矩阵 由第k条对角线构成的列向量 条对角线构成的列向量。 由第 条对角线构成的列向量。
上页 下页 退出
哈 工 程 大 学 数 值 计 算 软 件
(4)常用的矩阵生成函数 生成元素全为0 ●zeros生成元素全为0的矩阵 生成元素全为 zeros(n)生成 ×n的全0阵; 生成n× 的全 的全0 生成 zeros(m,n),zeros([m,n])生成 ×n的全0阵; 生成m× 的全 的全0 , 生成 zeros(size(A))生成与矩阵 大小相同的全0阵。 生成与矩阵A大小相同的全 生成与矩阵 大小相同的全0 生成元素全为1 ●ones生成元素全为1的矩阵 生成元素全为 ones(n)生成 ×n的全1阵; 生成n× 的全 的全1 生成 ones(m,n),ones([m,n])生成 ×n的全 阵; 生成m× 的全 的全1阵 生成 ones(size(A))生成与矩阵 大小相同的全1阵 ones(size(A))生成与矩阵A大小相同的全1阵。 生成与矩阵A大小相同的全 ●eye生成单位矩阵 生成单位矩阵 eye(n)生成 ×n的单位阵; 生成n× 的单位阵 的单位阵; 生成 eye(m,n),eye([m,n])生成 ×n的单位阵; 生成m× 的单位阵 的单位阵; 生成 eye(size(A))生成与矩阵 大小相同的单位阵。 生成与矩阵A大小相同的单位阵 生成与矩阵 大小相同的单位阵。 ●rand生成均匀分布的随机阵 生成均匀分布的随机阵 rand(n)生成 ×n的随机阵; 生成n× 的随机阵 的随机阵; 生成 rand(m,n),rand([m,n])生成 ×n的随机阵; 生成m× 的随机阵 的随机阵; 生成 rand(size(A))生成与矩阵 大小相同的随机阵。 生成与矩阵A大小相同的随机阵 生成与矩阵 大小相同的随机阵。
上页 下页 退出
哈 工 程 大 学 数 值 计 算 软 件
向量可进行+ 运算,也可进行转置运算, 向量可进行+、- 、×、/ 运算,也可进行转置运算, 如 A.’。也可以乘以一个数,如 。也可以乘以一个数, >>2*[1 2 3] ans= 2 4 6 事实上,很多MATLAB函数者可以作用到向量的每一个元 事实上,很多 函数者可以作用到向量的每一个元 素上, 素上,例如 >>[1 2 3].^2 ans= 1 Biblioteka Baidu 9 >>log([1 2 3]) ans = 0 0.6931 1.0986 对于矩阵A第 行第 列的元素,可用A(i,j)来引用,下面的例 行第j列的元素 来引用, 对于矩阵 第i行第 列的元素,可用 来引用 子将使矩阵增加一列。 子将使矩阵增加一列。 >>A=[1 2 3;4 5 6;7 8 9];A(1,4)=10;A A = 1 2 3 10 4 5 6 0 7 8 9 0
上页 下页 退出
哈 工 程 大 学 数 值 计 算 软 件
2、矩阵、数组及其运算 矩阵、 矩阵的+ (1)矩阵的+、-、×、/,^运算 运算 A+B 2个矩阵相加; 个矩阵相加; A-B 2个矩阵相减; 个矩阵相减; A*B 2个矩阵相乘; 个矩阵相乘; A/B 2个矩阵相除,相当于 个矩阵相除,相当于A*inv(B)或者 或者A*B-1; 或者 A^n 矩阵 的n次方。 矩阵A的 次方 次方。 数组的× (2)数组的×、/,^运算 运算 A.*B 矩阵 B的对应元素相乘; 矩阵A, 的对应元素相乘 的对应元素相乘; A./B 矩阵A, B的对应元素相除; 矩阵 的对应元素相除; 的对应元素相除 A.^B 矩阵 B的对应元素进行乘幂运算。 矩阵A, 的对应元素进行乘幂运算 的对应元素进行乘幂运算。 (3)转置运算 A’ 矩阵的转置运算 A.’ 数组的转置运算, 实际上, A. 数组的转置运算, 实际上,这是矩阵的共轭 转置。 转置。
上页 下页 退出
哈 工 程 大 学 数 值 计 算 软 件
下面列出常用的矩阵函数: 下面列出常用的矩阵函数 expm(A) 返回矩阵的指数 ; logm(A) 返回矩阵的对数 ; 返回矩阵的指数; 返回矩阵的对数; sqrtm(A)返回矩阵A的平方根; cond(A) 返回矩阵的条件数 返回矩阵A 返回矩阵 的平方根; 返回方阵A的行列式的值; 返回A ; det(A) 返回方阵A的行列式的值;null(A) 返回A的零空间 ; rank(A) 返回A 的秩; norm(A) 求向量或矩阵的范数; 返回 A 的秩 求向量或矩阵的范数 ; funm(A,’function’)计算矩阵 A 的函数值 ; inv(a) 返回矩阵 A 计算矩阵A 返回矩阵A 计算矩阵 的函数值; 的逆矩阵; 矩阵的Choleshy分解; lu(A) 矩阵的 LU 分解; 矩阵的LU 的逆矩阵 ; chol(A)矩阵的 矩阵的 分解 分解; 矩阵的QR分解; QR分解 分解 ; qr(a) 矩阵的 QR 分解 ; eig(a)求矩阵的特征值与特征 求矩阵的特征值与特征 向量。 向量。 以上我们列出了许多函数,但对大部分函数, 以上我们列出了许多函数 , 但对大部分函数 , 我们不想给 出实际的例子, 出实际的例子 , 读者可以用以下方法获得这些函数的详细说 明或用法。在命令窗口中, 明或用法。在命令窗口中,键入 >>help 函数名 %或者 >>helpwin %或者 >>demos
上页 下页 退出
哈 工 程 大 学 数 值 计 算 软 件
3、矩阵及数组函数 以下是数组运算的最基本的数学函数, 以下是数组运算的最基本的数学函数 , 它们在进行数学 运算时,都可以作用到数组的每一个元素上去。例如: 运算时,都可以作用到数组的每一个元素上去。例如: >>sin([0,pi/6,pi/3,pi/2]) ans = 0 0.5000 0.8660 1.0000 这些函数列出如下: 正弦), 余弦), 正切), 这些函数列出如下 : sin(正弦 , cos(余弦 , tan(正切 , 正弦 余弦 正切 cot(余切 ,sec(正割 ,csc(余割 ,asin(反正弦 ,acos(反余弦 余切), 正割), 余割), 反正弦), 反余弦) 余切 正割 余割 反正弦 反余弦 反正切), 反余切), 反正割), 反余割), ,atan(反正切 ,acot(反余切 ,asec(反正割 ,acsc(反余割 , 反正切 反余切 反正割 反余割 sinh(双曲正弦 ,cosh(双曲余弦 ,tanh(双曲正切 ,coth(双曲 双曲正弦), 双曲余弦), 双曲正切), 双曲正弦 双曲余弦 双曲正切 双曲 余切), 反双曲正弦), 反双曲余弦), 余切 , asinh(反双曲正弦 , acosh(反双曲余弦 , atanh(反双 反双曲正弦 反双曲余弦 反双 曲正切), 反双曲余切), 反双曲正割), 曲正切 ,acoth(反双曲余切 ,asech(反双曲正割 ,acsch(反双 反双曲余切 反双曲正割 反双 曲余割), 指数), 自然对数), 常用对数), 曲余割 , exp(指数 ,log(自然对数 ,log10(常用对数 , log2( 指数 自然对数 常用对数 为底的对数), 平方根), 以 2 为底的对数 , pow2(以 2 为底的指数 , sqrt(平方根 , 以 为底的指数), 平方根 abs(绝对值 , 对复数为模 , angle(复数的辐角 , conj(复数的 绝对值, 复数的辐角), 绝对值 对复数为模), 复数的辐角 复数的 共轭), 复数的虚部), 复数的实部), 共轭 , imag(复数的虚部 , real(复数的实部 , isreal(判断是 复数的虚部 复数的实部 判断是 否为复数数组), 向零方向取整 向零方向取整), 向负无穷方向取整) 否为复数数组 ,fix(向零方向取整 ,floor(向负无穷方向取整 向负无穷方向取整 ,ceil(向正无穷方向取整 ,round(四舍五入 ,mod(求余数 , 向正无穷方向取整), 四舍五入), 求余数), 向正无穷方向取整 四舍五入 求余数 rem(求留数 , sign(符号函数 , isprime(判断是否为质数 , 求留数), 符号函数), 判断是否为质数), 求留数 符号函数 判断是否为质数 gcd(最大公约数 , lcm(最小公倍数 , rat(有理数的近似 , 最大公约数), 最小公倍数), 有理数的近似), 最大公约数 最小公倍数 有理数的近似 rats(有理数形式输出 。 有理数形式输出)。 有理数形式输出
MATLAB中的矩阵运算 中的矩阵运算
MATLAB与其它数学软件的不同之处就在于强大的矩阵 与其它数学软件的不同之处就在于强大的矩阵 运算功能,下面我们分别加以讨论。 运算功能,下面我们分别加以讨论。 1.向量及其运算 向量可以用冒号、 见上面)、 向量可以用冒号 、 z=[x,y](见上面 、 b=a(1:3,2)的形式生成 见上面 的形式生成 它也可以利用下面的2个函数生成, ,它也可以利用下面的2个函数生成,即 生成n个元素的行向量 (1) linespace(a,b,n)生成 个元素的行向量,它的元素 生成 个元素的行向量, 间线性等距分布。 的(a,b)间线性等距分布。 间线性等距分布 生成n个元素行向量 (2) logspace(a,b,n)生成 个元素行向量,其元素在 生成 个元素行向量,其元素在(a,b) 间对数等距分布。 间对数等距分布。 向量的2种基本数学运算是点积与叉积,其命令为: 向量的2种基本数学运算是点积与叉积,其命令为: dot(a,b)---返回向量的点积; 返回向量的点积; 返回向量的点积 cross(a,b)---返回向量的叉积。 返回向量的叉积。 返回向量的叉积 >>a=[1 2 3];b=[4 5 6];c=dot(a,b) c= 32 >>d=cross(a,b) d = -3 6 -3
上页 下页 退出
哈 工 程 大 学 数 值 计 算 软 件
●randn生成正态分布的随机阵 生成正态分布的随机阵 randn(n)生成 ×n的正态随机阵; 生成n× 的正态随机阵 的正态随机阵; 生成 randn(m,n),randn([m,n])生成 ×n的正态随机阵; 生成m× 的正态随机阵 的正态随机阵; 生成 randn(size(A))生成与矩阵 大小相同的正态随机阵。 生成与矩阵A大小相同的正态随机阵 生成与矩阵 大小相同的正态随机阵。 (5)其它基本运算 左右翻转; 上下翻转; ●fliplr(A) 将A左右翻转;●flipud(A) 将A上下翻转; 左右翻转 上下翻转 旋转90度 返回A ● rot90(A) 将 A旋转 度 。 ● tril(A)返回 A 的下三角部分 ; 旋转 返回 的下三角部分; tril(A,k)返回A第K 条对角线以下部分,K=0为主对角线, 返回A 条对角线以下部分,K=0为主对角线, 返回 K>0为主对角线以上,K<0为主对角线以下。 K>0为主对角线以上,K<0为主对角线以下。 返回A ●triu(A), triu(A,K)返回A的上三角部分,其它同上。 返回 的上三角部分,其它同上。 返回以向量v为主对角线的矩阵 ●diag(v)返回以向量 为主对角线的矩阵; 返回以向量 为主对角线的矩阵; diag(v,k) 若 v 是 n 个 元 素 的 向 量 , 则 它 返 回 一 个 大 小 为 n+abs(k)方阵,向量 位于第 条对角线上。K=0代表主对角线 方阵, 位于第k条对角线上 方阵 向量v位于第 条对角线上。 代表主对角线 为主对角线以上, 为主对角线以下。 , k>0为主对角线以上,k<0为主对角线以下。 diag(A)以向量 为主对角线以上 为主对角线以下 以向量 形式, 返回A 的主对角线元素; 对于矩阵A 形式 , 返回 A 的主对角线元素 ; diag(A,k)对于矩阵 A , 返回 对于矩阵 由第k条对角线构成的列向量 条对角线构成的列向量。 由第 条对角线构成的列向量。
上页 下页 退出
哈 工 程 大 学 数 值 计 算 软 件
(4)常用的矩阵生成函数 生成元素全为0 ●zeros生成元素全为0的矩阵 生成元素全为 zeros(n)生成 ×n的全0阵; 生成n× 的全 的全0 生成 zeros(m,n),zeros([m,n])生成 ×n的全0阵; 生成m× 的全 的全0 , 生成 zeros(size(A))生成与矩阵 大小相同的全0阵。 生成与矩阵A大小相同的全 生成与矩阵 大小相同的全0 生成元素全为1 ●ones生成元素全为1的矩阵 生成元素全为 ones(n)生成 ×n的全1阵; 生成n× 的全 的全1 生成 ones(m,n),ones([m,n])生成 ×n的全 阵; 生成m× 的全 的全1阵 生成 ones(size(A))生成与矩阵 大小相同的全1阵 ones(size(A))生成与矩阵A大小相同的全1阵。 生成与矩阵A大小相同的全 ●eye生成单位矩阵 生成单位矩阵 eye(n)生成 ×n的单位阵; 生成n× 的单位阵 的单位阵; 生成 eye(m,n),eye([m,n])生成 ×n的单位阵; 生成m× 的单位阵 的单位阵; 生成 eye(size(A))生成与矩阵 大小相同的单位阵。 生成与矩阵A大小相同的单位阵 生成与矩阵 大小相同的单位阵。 ●rand生成均匀分布的随机阵 生成均匀分布的随机阵 rand(n)生成 ×n的随机阵; 生成n× 的随机阵 的随机阵; 生成 rand(m,n),rand([m,n])生成 ×n的随机阵; 生成m× 的随机阵 的随机阵; 生成 rand(size(A))生成与矩阵 大小相同的随机阵。 生成与矩阵A大小相同的随机阵 生成与矩阵 大小相同的随机阵。
上页 下页 退出
哈 工 程 大 学 数 值 计 算 软 件
向量可进行+ 运算,也可进行转置运算, 向量可进行+、- 、×、/ 运算,也可进行转置运算, 如 A.’。也可以乘以一个数,如 。也可以乘以一个数, >>2*[1 2 3] ans= 2 4 6 事实上,很多MATLAB函数者可以作用到向量的每一个元 事实上,很多 函数者可以作用到向量的每一个元 素上, 素上,例如 >>[1 2 3].^2 ans= 1 Biblioteka Baidu 9 >>log([1 2 3]) ans = 0 0.6931 1.0986 对于矩阵A第 行第 列的元素,可用A(i,j)来引用,下面的例 行第j列的元素 来引用, 对于矩阵 第i行第 列的元素,可用 来引用 子将使矩阵增加一列。 子将使矩阵增加一列。 >>A=[1 2 3;4 5 6;7 8 9];A(1,4)=10;A A = 1 2 3 10 4 5 6 0 7 8 9 0
上页 下页 退出
哈 工 程 大 学 数 值 计 算 软 件
2、矩阵、数组及其运算 矩阵、 矩阵的+ (1)矩阵的+、-、×、/,^运算 运算 A+B 2个矩阵相加; 个矩阵相加; A-B 2个矩阵相减; 个矩阵相减; A*B 2个矩阵相乘; 个矩阵相乘; A/B 2个矩阵相除,相当于 个矩阵相除,相当于A*inv(B)或者 或者A*B-1; 或者 A^n 矩阵 的n次方。 矩阵A的 次方 次方。 数组的× (2)数组的×、/,^运算 运算 A.*B 矩阵 B的对应元素相乘; 矩阵A, 的对应元素相乘 的对应元素相乘; A./B 矩阵A, B的对应元素相除; 矩阵 的对应元素相除; 的对应元素相除 A.^B 矩阵 B的对应元素进行乘幂运算。 矩阵A, 的对应元素进行乘幂运算 的对应元素进行乘幂运算。 (3)转置运算 A’ 矩阵的转置运算 A.’ 数组的转置运算, 实际上, A. 数组的转置运算, 实际上,这是矩阵的共轭 转置。 转置。
上页 下页 退出
哈 工 程 大 学 数 值 计 算 软 件
下面列出常用的矩阵函数: 下面列出常用的矩阵函数 expm(A) 返回矩阵的指数 ; logm(A) 返回矩阵的对数 ; 返回矩阵的指数; 返回矩阵的对数; sqrtm(A)返回矩阵A的平方根; cond(A) 返回矩阵的条件数 返回矩阵A 返回矩阵 的平方根; 返回方阵A的行列式的值; 返回A ; det(A) 返回方阵A的行列式的值;null(A) 返回A的零空间 ; rank(A) 返回A 的秩; norm(A) 求向量或矩阵的范数; 返回 A 的秩 求向量或矩阵的范数 ; funm(A,’function’)计算矩阵 A 的函数值 ; inv(a) 返回矩阵 A 计算矩阵A 返回矩阵A 计算矩阵 的函数值; 的逆矩阵; 矩阵的Choleshy分解; lu(A) 矩阵的 LU 分解; 矩阵的LU 的逆矩阵 ; chol(A)矩阵的 矩阵的 分解 分解; 矩阵的QR分解; QR分解 分解 ; qr(a) 矩阵的 QR 分解 ; eig(a)求矩阵的特征值与特征 求矩阵的特征值与特征 向量。 向量。 以上我们列出了许多函数,但对大部分函数, 以上我们列出了许多函数 , 但对大部分函数 , 我们不想给 出实际的例子, 出实际的例子 , 读者可以用以下方法获得这些函数的详细说 明或用法。在命令窗口中, 明或用法。在命令窗口中,键入 >>help 函数名 %或者 >>helpwin %或者 >>demos
上页 下页 退出
哈 工 程 大 学 数 值 计 算 软 件
3、矩阵及数组函数 以下是数组运算的最基本的数学函数, 以下是数组运算的最基本的数学函数 , 它们在进行数学 运算时,都可以作用到数组的每一个元素上去。例如: 运算时,都可以作用到数组的每一个元素上去。例如: >>sin([0,pi/6,pi/3,pi/2]) ans = 0 0.5000 0.8660 1.0000 这些函数列出如下: 正弦), 余弦), 正切), 这些函数列出如下 : sin(正弦 , cos(余弦 , tan(正切 , 正弦 余弦 正切 cot(余切 ,sec(正割 ,csc(余割 ,asin(反正弦 ,acos(反余弦 余切), 正割), 余割), 反正弦), 反余弦) 余切 正割 余割 反正弦 反余弦 反正切), 反余切), 反正割), 反余割), ,atan(反正切 ,acot(反余切 ,asec(反正割 ,acsc(反余割 , 反正切 反余切 反正割 反余割 sinh(双曲正弦 ,cosh(双曲余弦 ,tanh(双曲正切 ,coth(双曲 双曲正弦), 双曲余弦), 双曲正切), 双曲正弦 双曲余弦 双曲正切 双曲 余切), 反双曲正弦), 反双曲余弦), 余切 , asinh(反双曲正弦 , acosh(反双曲余弦 , atanh(反双 反双曲正弦 反双曲余弦 反双 曲正切), 反双曲余切), 反双曲正割), 曲正切 ,acoth(反双曲余切 ,asech(反双曲正割 ,acsch(反双 反双曲余切 反双曲正割 反双 曲余割), 指数), 自然对数), 常用对数), 曲余割 , exp(指数 ,log(自然对数 ,log10(常用对数 , log2( 指数 自然对数 常用对数 为底的对数), 平方根), 以 2 为底的对数 , pow2(以 2 为底的指数 , sqrt(平方根 , 以 为底的指数), 平方根 abs(绝对值 , 对复数为模 , angle(复数的辐角 , conj(复数的 绝对值, 复数的辐角), 绝对值 对复数为模), 复数的辐角 复数的 共轭), 复数的虚部), 复数的实部), 共轭 , imag(复数的虚部 , real(复数的实部 , isreal(判断是 复数的虚部 复数的实部 判断是 否为复数数组), 向零方向取整 向零方向取整), 向负无穷方向取整) 否为复数数组 ,fix(向零方向取整 ,floor(向负无穷方向取整 向负无穷方向取整 ,ceil(向正无穷方向取整 ,round(四舍五入 ,mod(求余数 , 向正无穷方向取整), 四舍五入), 求余数), 向正无穷方向取整 四舍五入 求余数 rem(求留数 , sign(符号函数 , isprime(判断是否为质数 , 求留数), 符号函数), 判断是否为质数), 求留数 符号函数 判断是否为质数 gcd(最大公约数 , lcm(最小公倍数 , rat(有理数的近似 , 最大公约数), 最小公倍数), 有理数的近似), 最大公约数 最小公倍数 有理数的近似 rats(有理数形式输出 。 有理数形式输出)。 有理数形式输出