MATLAB基本矩阵运算(共16页).doc





《MATLAB基本矩阵运算(共16页).doc》由会员分享,可在线阅读,更多相关《MATLAB基本矩阵运算(共16页).doc(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上 Basic Matrix Operations一、实验目的1、掌握向量和矩阵的创建方法;2、掌握向量和矩阵元素的索引方法;3、掌握向量和矩阵的基本操作;4、 利用MATLAB编写程序进行矩阵运算。二、基础知识 1、常见数学函数函 数 名数 学 计 算 功 能函 数 名数 学 计 算 功 能Abs(x) 实数的绝对值或复数的幅值 floor(x) 对x朝-方向取整 Acos(x) 反余弦arcsinx gcd(m,n)求正整数m和n的最大公约数 acosh(x) 反双曲余弦arccoshx imag(x) 求复数x的虚部 angle(x) 在四象限内求复数 x 的相角
2、lcm(m,n)求正整数m和n的最小公倍数 asin(x) 反正弦arcsinx log(x) 自然对数(以e为底数) asinh(x) 反双曲正弦arcsinhx log10(x)常用对数(以10为底数) atan(x) 反正切arctanx real(x) 求复数x的实部 atan2(x,y) 在四象限内求反正切 Rem(m,n)求正整数m和n的m/n之余数 atanh(x) 反双曲正切arctanhx round(x)对x四舍五入到最接近的整数 ceil(x) 对x朝+方向取整 sign(x) 符号函数:求出x的符号 conj(x) 求复数x的共轭复数 sin(x) 正弦sinx cos
3、(x) 余弦cosx sinh(x) 反双曲正弦sinhx cosh(x) 双曲余弦coshx sqrt(x) 求实数x的平方根:x exp(x) 指数函数 xetan(x) 正切tanx fix(x) 对x朝原点方向取整 tanh(x) 双曲正切tanhx 2、常量与变量 系统的变量命名规则:变量名区分字母大小写;变量名必须以字母打头,其后可以是任意字母,数字,或下划线的组合。此外,系统内部预先定义了几个有特殊意义和用途的变量,见下表: 特殊的变量、常量取 值ans 用于结果的缺省变量名 pi 圆周率的近似值(3.1416) eps 数学中无穷小(epsilon)的近似值(2.2204e -
4、 016) inf 无穷大,如 1/0 = inf (infinity) NaN 非数,如 0/0 = NaN (Not a Number),inf / inf = NaN i,j 虚数单位:i = j =1 数值型向量(矩阵)的输入 任何矩阵(向量),可以直接按行方式输入每个元素:同一行中的元素用逗号(,)或者用空格符来分隔;行与行之间用分号(;)分隔。所有元素处于一方括号( )内; 例1: Time = 11 12 1 2 3 4 5 6 7 8 9 10 X_Data = 2.32 3.43;4.37 5.98 系统中提供了多个命令用于输入特殊的矩阵: 函数 功 能 函数 功 能 com
5、pan 伴随阵 toeplitz Toeplitz矩阵 diag 对角阵 vander Vandermonde矩阵 hadamard Hadamard矩阵 zeros 元素全为0的矩阵 hankel Hankel矩阵 ones 元素全为1的矩阵 invhilb Hilbert矩阵的逆阵 rand 元素服从均匀分布的随机矩阵 kron Kronercker张量积 randn 元素服从正态分布的随机矩阵 magic 魔方矩阵 eye 对角线上元素为1的矩阵 pascal Pascal矩阵 meshgrid 由两个向量生成的矩阵 上面函数的具体用法,可以用帮助命令help得到。如:meshgrid(
6、x,y) 输入 x=1 2 3 4; y=1 0 5; X,Y=meshgrid(x, y),则 X = Y = 1 2 3 4 1 1 1 1 1 2 3 4 0 0 0 0 1 2 3 4 5 5 5 5 目的是将原始数据x,y转化为矩阵数据X,Y。 3、数组(矩阵)的点运算 运算符:+(加)、-(减)、./(右除)、.(左除)、.(乘方), 例3: g = 1 2 3 4;h = 4 3 2 1; s1 = g + h, s2 = g.*h, s3 = g.h, s4 = g.2, s5 = 2.h 4、矩阵的运算 运算符:+(加)、-(减)、*(乘)、/(右除)、(左除)、(乘方)、(
7、转置)等; 常用函数:det(行列式)、inv(逆矩阵)、rank(秩)、eig(特征值、特征向量)、rref(化矩阵为行最简形) 例4: A= 2 0 1; 1 3 2; B= 1 7 1; 4 2 3; 2 0 1; M = A*B % 矩阵A与B按矩阵运算相乘 M = 0 14 -3 17 13 10 det_B = det(B) % 矩阵A的行列式 det_B = 20 rank_A = rank(A) % 矩阵A的秩 rank_A = 2 inv_B = inv(B) % 矩阵B的逆矩阵 inv_B = 0.1000 -0.3500 1.1500 0.1000 0.1500 -0.3
8、500 -0.2000 0.7000 -1.3000 V,D = eig(B) % 矩阵B的特征值矩阵V与特征向量构成的矩阵D = 7.2680 0 0 0 -1.6340 + 0.2861i 0 0 0 -1.6340 - 0.2861i X = A/B % A/B = A*B-1,即XB=A,求X 0.4000 -1.4000 3.6000 0.0000 1.5000 -2.5000 Y = BA % BA = B-1*A,即BY=A,求Y 三、实验内容1、练习数据和符号的输入方式,将前面的命令在命令窗口中执行通过。 2、键入常数矩阵输入命令: a = 1 2 3 与 a = 1;2;3
9、记录结果,比较显示结果有何不同;b = 1 2 5 与 b = 1 2 5; 记录结果,比较显示结果有何不同; a a b b 记录结果,比较变量加“”后的区别; c = a * b 1 2 5 2 4 10 3 6 15 c = a* b 记录显示结果与出错原因; a = 1 2 3; 4 5 6; 7 8 0,求a2 a0.5 。30 36 15 66 81 42 39 54 69 0.5977 + 0.7678i 0.7519 + 0.0979i 0.5200 - 0.4680i 1.4102 + 0.1013i 1.7741 + 0.6326i 1.2271 - 0.7467i 1.2
10、757 - 1.0289i 1.6049 - 1.0272i 1.1100 + 1.6175i3、使用冒号选出指定元素:已知 A=1 2 3;4 5 6;7 8 9,求 A 中第 3 列前 2 个元素,A 中所有列第 2,3 行的元素。ns = 3 6ns = 4 5 6 7 8 04、输入 A=7 1 5; 2 5 6; 3 1 5,B=1 1 1; 2 2 2; 3 3 3,在命令窗口中执行下列表达式,掌握其含义: A(2,3) ans = 6 A(:,2) A(3,:) A(:,1:2:3) ans = 7 5 2 6 3 5 A(:,3).*B(:,2) ns = 5 12 15 A(
11、:,3)*B(2,:) A*B A.*B A2 A.2 B/A B./A 5、建立 M 文件,求的逆矩阵。nv_M = 1.0000 3.0000 -2.0000 -1.5000 -3.0000 2.5000 1.0000 1.0000 -1.00006、 设,,建立 M 文件,求矩阵 X ,使满足:AXB = C 。四,详细设计(1)存储要点positioncol=positioncol-1+numcol-1;三元组表(row,col,v)稀疏矩阵(行数m,列数n,非零元素个数t),三元组,.,三元组)rowcolvA-data00481101212332124306max-1(2)乘法运算
12、要点已知稀疏矩阵A(m1 n1)和B(m2 n2),求乘积C(m1 n2)。稀疏矩阵A、B、C及它们对应的三元组表A.data、B.data、C.data如图6所示。由矩阵乘法规则知:C(i,j)=A(i,1)B(1,j)+A(i,2)B(2,j)+A(i,n)B(n,j)=这就是说只有A(i,k)与B(k,p)(即A元素的列与B元素的行相等的两项)才有相乘的机会,且当两项都不为零时,乘积中的这一项才不为零。矩阵用二维数组表示时,a11只有可能和B中第1行的非零元素相乘,a12只有可能和B中第2行的非零元素相乘,而同一行的非零元是相邻存放的,所以求c11和c12同时进行:求a11*b11累加到
13、c11,求a11*b12累加到c12,再求a12*b21累加到c11,再求a12*b22累加到c22.,当然只有aik和bkj(列号与行号相等)且均不为零(三元组存在)时才相乘,并且累加到cij当中去。(3)稀疏矩阵的快速转置要点:矩阵A中三元组的存放顺序是先行后列,对同一行来说,必定先遇到列号小的元素,这样只需扫描一遍A.data 。所以需引入两个向量来实现 :numn+1和position n+1,numcol表示矩阵A中第col列的非零元素的个数(为了方便均从1单元用起),position col初始值表示矩阵A中的第col列的第一个非零元素在B.data中的位置。于是position的
14、初始值为:position 1=1;position col= position col-1+numcol-1; 2coln依次扫描A.data,当扫描到一个col列元素时,直接将其存放在B.data的position col位置上,position col加1,position col中始终是下一个col列元素在B.data中的位置。A-row00112334(4)逆矩阵判断矩阵是否为方阵逆矩阵的算法: 求行列式的值求矩阵的伴随矩阵用伴随矩阵除以行列式 求逆矩阵的流程:五、源程序(测试结果)#include#include#include#includeusing namespace std
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 基本 矩阵 运算 16

限制150内