收藏 分销(赏)

安徽师范大学《计算方法》实验课程序+答案(数学专业)三.doc

上传人:精**** 文档编号:10447332 上传时间:2025-05-28 格式:DOC 页数:10 大小:145.51KB 下载积分:8 金币
下载 相关 举报
安徽师范大学《计算方法》实验课程序+答案(数学专业)三.doc_第1页
第1页 / 共10页
安徽师范大学《计算方法》实验课程序+答案(数学专业)三.doc_第2页
第2页 / 共10页


点击查看更多>>
资源描述
实验三 第三节 矩阵基本函数运算与矩阵元素的提取(第二章) 一、 矩阵基本函数运算 此运算是矩阵运算中最实用的部分,其基本命令如下: 命令集9 矩阵的大小、行列式、逆、特征值、秩、迹、范数 size(A) 给出包含矩阵A的维数的一个行向量.在这个返回向量中的第一个元素是行数,随后是列数 . [ m,n ]=size(A) 给出A的维数,m为行数、n为列数,即两个标量. length(x) 给出一个向量x的长度,即x分量个数. sum(A) 若A是矩阵,给出一个行向量,其每个分量表示A相应的列和;若A是向量,给出此向量的分量和. det(A) 求矩阵A的行列式. eig(A) 返回一个列向量,其中每一个分量均为矩阵A的特征值. [X,D]=eig(A) 求包含矩阵A的特征值对应的对角阵D和以相应特征向量为列的矩阵. inv(A)或A ^ (-1) 求矩阵A的逆矩阵. rank(A) 求矩阵A的秩. trace(A) 求矩阵A的迹(对角线元素之和). norm(A,1) 矩阵A的1—范数或列和范数,定义如下. norm(A,2) 矩阵A的2—范数. norm(A,inf) 矩阵A的∞—范数. norm(x,1) 向量x的1—范数或列和范数,定义如下. norm(x,2) 向量x的2—范数. norm(x,inf) 向量x的∞—范数. 范数定义如下: 设,,则相应范数定义如下 ; ; ,, 二、矩阵元素的提取 在MATLAB中还有利用已存在的矩阵建立新矩阵的命令.以下假设矩阵 A是m×n的矩阵,x是n维向量. 1. 对角阵与三角阵的生成 命令集10 diag(A) 生成一个由矩阵A主对角线元素组成的列向量.主对角线总是从矩阵左上角开始.对于方阵来说它结束于矩阵的右下角. diag(x) 生成一个n维的方阵,它的主对角线元素值取自向量 x,其余元素的值都为0. diag(A , k) 生成一个由矩阵A第k条对角线的元素组成的列向量. k= 0为主对角线;k< 0为下第k对角线;k> 0为上第k对角线. diag(x , k) 生成一个(n+ a b s (k) )×(n+ a b s (k) )维的矩阵,该矩阵的第k条对角线元素取自向量x,其余元素都为零.关于参数k可参考上个命令. triu(A) 生成一个和A大小相同的上三角矩阵.该矩阵的主对角线及以上元素取自A中相应元素,其余元素都为零. triu(A , k) 生成一个和A大小相同的上三角矩阵.该矩阵的第k条对角线及以上元素取自A中相应元素,其余元素都为零. 命令triu ( A , 0 )等同于命令triu ( A ). tril(A) 生成一个和A大小相同的下三角矩阵.该矩阵的主对角线及以下元素取自A中相应元素,其余元素都为零. tril(A , k) 生成一个和A大小相同的下三角矩阵.该矩阵的第 k条对角线及以下元素取自A中相应元素,负数k表示主对角线下的对角线.其余元素都为零.命令tril (A , 0 )等同于命令tril (A ). 2. 向量和子矩阵的生成 在MATLAB中可以使用冒号‘:’来代表一系列数值.有时也使用它来定义一个子矩阵. 命令集11 i : k 创建从i开始、步长为1、到k结束的数字序列,即i ,i+1, i+2, . . . , k .如果i>k,MATLAB则返回一个空矩阵,也就是 [ ].数字i和k不必是整数,该序列的最后一个数是小于或等于k. i : j : k 创建从i开始、步长为j、到k结束的数字序列,即i, i+j, i+ 2j, . . ., k .对于j= 0,则返回一个空矩阵.数字i、j和k不必是整数,该序列的最后一个数是小于或等于k. linspace(a , b) 在区间[a, b]上创建一个有100个元素的向量,这100个数把整个区间线性分隔.其中a是第一个元素,b是最后一个. linspace(a, b, n) 在区间[a, b]上创建一个有n个元素的向量.这个命令和冒号表示形式相近,但是它直接定义了数据的个数,其步长为(b-a)/(n-1) . 命令集12 定义子阵 A ( i , j ) 返回矩阵A中第ij元素的值. A ( : , j ) 返回矩阵A中第j列列向量. A ( i , : ) 返回矩阵A中第i行行向量. A ( : , j : k ) 返回由矩阵A中的第j列,第j+ 1列,直到第k列列向量组成的子阵. A ( i : k , : ) 返回由矩阵A中的第i行,第i+ 1行,直到第k行行向量组成的子阵. A ( i : k , j : l ) 返回由二维矩阵A中的第i行到第k行行向量和第j列到第l 列列向量组成的子阵. A ( : ) 将矩阵A中的每列合并成一个长的列向量. A(j:k) 返回一个行向量,其中的元素为A ( : )中的从第j个元素到第k个元素. A([j1 j2 . . . ] ) 返回一个行向量,其中的元素为A ( : )中的第j1、j2 元素. A(:,[j1 j2 . . .] ) 返回矩阵A的第j1列、第j2列等的列向量. A([i1 i2. . . ] ,: ) 返回矩阵A的第i1行、第i2行等的行向量. A([i1 i2. . . ] , [j1 j2. . . ] ) 返回矩阵第i1行、第i2行等和第j1列、第j2列等的元素. 二、矩阵元素的增减 在MATLAB中可以通过增加元素、行和列将一个矩阵或者向量进行扩展.由于MATLAB可以自动地改变矩阵的大小,所以使用已存在的矩阵的一部分来创建一个新矩阵是很容易的,这在许多应用中都很有用.从已存在的矩阵中建立一个矩阵就和定义一个新矩阵一样.元素用空格或逗号分隔,行用分号或回车分隔. ■ 例1 假设下列矩阵已经定义为: (a) 有几种方式可以将向量x扩展成1×4.假设想要的新向量是: xnew=(9 10 0 5) 下列的三种方法都可以给出想要的结果: ① xnew=x; xnew(3)=0;xnew(4)=5; ② xnew=[x 0 5]; ③ t=[0 5]; xnew=[x t]; (b) 以下两种方法可以对矩阵A扩展一个新行,如向量z: ① Anew1=[A ; z] , ② Anew1=[A ; [13 14]] . 它们在屏幕上显示的结果如下: Anew1= 1 2 2 4 13 14 有时还可以对矩阵添加多个新行: >> Anew2=[A;x;z;[0 0]] (c) 对矩阵A扩展一个新列,如y,可以这样做: >> Anew3=[A y ] 或者 >> Anew3=[A [11;12] ] (d) 对矩阵A扩展一个矩阵的操作是相似的,输入命令: >> Anew4=[A; B ] , >> Anew5=[A B ] 对于Anew4来说,它的列数一定等于矩阵 A和B的列数;而对于Anew5来说,它的行数一定等于矩阵A和B的行数. (e) 改变矩阵的元素 ① >>A(3,3)=15 矩阵A的(3,3)元素变为15 ② >>A(2,:)=[1 0] 矩阵A的第2行变为[1 0] ③ >>A(2,:)=[ ] 删除A的第二行 (f) 为了生成规则的矩阵块可以下列的方式使用命令 repmat. ■ 例2 ① >>repmat([1 0; 0 1],3,3) 返回一个由[1 0; 0 1]组成的6阶矩阵 ② >>repmat([1 0],1,5)得到:返回一个由[1 0]组成的10维行向量 ③ 如果要创建一个所有元素都是同一个值的矩阵,可以使用命 >>repmat(42,[2 2]) 返回一个由42组成的2阶矩阵 第四节 字符串(第二章) 在MATLAB中可能会遇到对字符和字符串的操作.字符串能够显示在屏幕上,也可以用来构成一些命令,这些命令在其他的命令中用于求值或者被执行. 一个字符串是存储在一个行向量中的文本,这个行向量中的每一个元素代表一个字符.实际上,元素中存放的是字符的内部代码,也就是ASCII码.当在屏幕上显示字符变量的值时,显示出来的是文本,而不是ASCII数字.由于字符串是以向量的形式来存储的,所以可以通过它的下标对字符串中的任何一个元素进行访问. 字符矩阵也可以这样,但是它的每行字符数必须相同. 一、 输入格式 MATLAB中的字符串用单引号来定义: Name Of Variable = 'text' 这里的text 可以是字母、数字和特殊字符 (a) 简单的分配方法,如name = 'John Smith ',在屏幕上就会有如下显示:name = John Smith (b) 分配一个字符.如果(a)中变量name已存在,令name (3)= 'a ',则会给出:name = Joan Smith (c) 将上例中的字符串name的元素前后互换位置,可以输入: for i=length(name):-1:1 enam(i)=name(length(name)+1-i); end enam 下面显示出字符串eman的值:eman = htimS naoJ (d) 在字符串中用两个单引号来表示一个单引号: whoscat='Joan"s cat' 显示结果为:whoscat = Joan's cat (e) 字符串的组成可以象数字矩阵一样: >>name1= 'Joan '; name2= 'John ' ;heart= 'is in love with '; >>sentence=[name1, ' ',heart, ' ', name2] 显示的结果为:sentence= Joan is in love with John (f) 冒号表达式的使用和在数字矩阵中的使用情况一样: >>name='Charles Johnson';firstname= name(1:7) firstname = Charles 二、 字符串求值 MATLAB命令可以以字符串的形式进行输入和存储.这些命令字符串通过eval命令来求值. 命令集13 字符串求值 eval (str) 执行str 中包含的MATLAB命令并返回结果. eval(str1, str2) 执行str1中的MATLAB命令,如果没有错误就和执行eval(str1)一样;如果在对str1求值中第一个字符串是一个错误,则对字符串str2进行求值,给出一个错误信息或者其他内容. g = inline (str ,arg1, arg2) 从字符串str中建立一个叫内联的函数g,如存储在工作内存中的函数,可以用g (val1 ,val2 )来调用.函数中参数的名字可以在字符串 arg1,arg2, 中给出,如果没有给出,MATLAB将从str中找出小写字母作为参数的名字. ■ 例3 >>b=[1 2 3];k=[2 2 2 ];x=[1.2 1.5 1.2];str1= 'b.* sin(k.*x) '; >>y=eval(str1) y= 0.6755 0.2822 2.0264 >>g=inline('3*sin(x)+5*cos(y) ', 'x ', 'y '),b=g(pi,2*pi) 练习题 1. 建立新矩阵 已知 ,求 ① ② ③ ④ 2. 计算下列各题,已知, ① 的行和、列和,的迹、秩,的大小 ② 的特征值、特征向量及 ③ ④ 3. 已知,,,建立下列矩阵: ① 在的左边增加一列y,的右边增加一列y; ② 在的上面增加一行x,的下面增加一行x; ③ 在的左边增加矩阵B变为矩阵C,的下面增加矩阵B变为矩阵D; ④ 由矩阵C的第1、3行组成矩阵F;由矩阵C的第2、4、6、7列组成矩阵G; ⑤ 由矩阵D的第1、2、5、8行及第1、2、4列组成矩阵H; ⑥ 删除的第二行,删除的第三列 . 4. 已知,实现下列操作: ① 提取的对角线及上、下第二条对角线; ② 以的对角线为对角线组成的对角阵; ③ 提取的上三角部分组成同阶的上三角阵C;提取的下三角部分组成同阶的下三角阵矩阵D; ④ 删除的第1、4行;删除的第2、3行及第1、4列. ⑤ 删除(1,1). 10
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服