版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、习题1解答(物教)1.1 请分别用直接构造法、增量构造法(冒号表达式)和linspace函数创建数组:(1,3,5,7,9,11),体会以上创建方法有何区别和联系。若数组b为在0-2之间均匀分布的22个数据,c=(1.3,2.5,7.6,2,-3),d=(23,20,17,14,11,8,5,2),各用何种方法输入较为简单?写出源程序。分析:考查知识点行向量的产生方法【法一:直接构造法】向量元素必须用 括住;向量元素必须用逗号或空格分隔 ;对于矩阵:在 内矩阵的行与行之间必须 用分号(;)或Enter键分隔。矩阵元素可以是任何matlab表达式 ,可以是实数 ,也可以是复数,复数可用特殊变量i
2、,j 输入 。对于一般较小的简单的矩阵,元素值又没有规律,可采用此法。【法二:增量构造法冒号表达式法】,可产生一个初值为e1,步长为e2,终值为e3的行向量,向量元素值是一个以e2为公差的等差数列。e2可缺省,缺省值为1。如果已知一个向量的初值、终值和步长,采用此法比较简单。【法三:linspace函数构造法】 语法:v = linspace(a,b,n),其中a和b是生成向量的第一个和最后一个元素,n是元素总数。如果已知一个向量的初值、终值和元素的总数(即向量长度),采用此法比较简单。小结:上面三种方法创建的向量a是等价的,尤其法二和法三之间一般可相互转换。但我们应该根据已知条件选择最方便的
3、方法来创建向量。例如:l 已知:初值a,步长为b,终值为c,则易采用冒号表达式:t = a : b : c来创建向量。注意有时和t = linspace(a,c,fix(c-a)/b)+1)并不等价,为什么?l 已知:初值a,终值为c,元素的总数n,则易采用linspace函数来创建:t = linspace(a,c,n),等价于 t = a : (c-a)/(n-1) : c。表格 1 MATLAB中的取整函数汇总函数函数功能floor(A) 返回小于或等于A的整数值,对于复数来说,分别对A的实部和虚部进行运算。即朝负无穷方向取整,如floor(-1.3)=-2; floor(1.3)=1;
4、ceil(A)返回大于或等于A的整数值,对于复数来说,分别对A的实部和虚部进行运算。即朝正无穷方向取整,如ceil(-1.3)=-1; ceil(1.3)=2;round(X) 返回距离X最近的整数值。即四舍五入到最近的整数,如round(-1.3)=-1;round(-1.52)=-2;round(1.3)=1;round(1.52)=2。fix(A) 返回A的整数部分,小数部分为0l 已知:初值a,步长为b,元素的总数n,法一和法二均可以。即:t = a : b : (n-1)*b 或 t = linspace(a, (n-1)*b, n)解题:a = 1 3 5 7 9 11 ; %或
5、a = 1,3, 5 , 7, 9 , 11,直接输入法 a = 1: 2: 11; %冒号表达式 a = linspace(1,11,6); %linspace函数法 b = linspace(0,2*pi,22); 易用 linspace函数法c = 1.3 2.5 7.6 2 -3; 易用直接输入法d = 23 :-3 : 2; 易用冒号表达式1.2 设一向量A可表示为数组A=1,2,3,求A的长度和方向角。(提示:向量的长度可用指令sqrt(dot(A,A)或sqrt(sum(A,A);方向角可利用反三角函数求得。)分析:考查知识点对向量的操作表格 2 适用於向量的常用函数函数函数功能
6、min(x)向量x的元素的最小值 max(x)向量x的元素的最大值 mean(x)向量x的元素的平均值median(x)向量x的元素的中位数 std(x)向量x的元素的标准差diff(x)向量x的相邻元素的差差分sort(x)对向量x的元素进行排序length(x)向量x的长度(即元素个数,与numel(x)等价)对矩阵不适合。 norm(x)向量x的欧氏(Euclidean)长度 sum(x)向量x的元素总和 prod(x)向量x的元素总乘积 cumsum(x)向量x的累计元素总和 cumprod(x)向量x的累计元素总乘积 dot(x, y)向量x和y的内积 cross(x, y)向量x和
7、y的外积 本题我们是要求表示向量的数组的长度和方向角。在MATLAB中,平面上的向量用向量x, y来表示;空间上的向量用向量x, y, z来表示;向量长度和方向余弦分别为解题:A = 1 2 3;r = sum(sqrt(A .2)for n = 1: 3 a(n) = acosd(A(n) /r);enda 1.3 矩阵大小的测试是由指令numel和size来实现的,利用帮助系统查看该指令函数的调用格式及例题,然后确定矩阵A=3,5,6;2,5,8;3,5,9;3,7,9的元素个数和行数及列数。分析:考查知识点获取已建立变量的信息。函数函数功能函数函数功能length 矩阵的长度class类
8、型ndims 矩阵的维数size大小numel矩阵的元素总数 isa判断类型whos查看变量详细信息解题:A = 3 5 6;2 5 8;3 5 9; 3 7 9; numel(A) size(A) 1.4 分析:考查知识点矩阵的定位find函数语法:ind = find(X)ind = find(X, k)ind = find(X, k, 'first')ind = find(X, k, 'last')row,col = find(.)row,col,v = find(.)解题:A = 3 5 6;2 5 8;3 5 9; 3 7 9; i1 j1 = fin
9、d(A = 3) i2,j2 = find(A >3) 1.5 分析:考查知识点子矩阵的寻访1)“全下标”标识 m,n为标量 (Accessing Single Elements) A(m,n) m,n有一为冒号(:)(Accessing Multiple Elements) m,n为行向量2)“单下标”标识 s为标量 A(s) s为冒号(:) s为向量、矩阵3)“逻辑1”标识 A(L)L必须是逻辑数组表格 3 子数组寻访和赋值格式汇总表子数组寻访和赋值使 用 说 明A(r,c)它由A的“r指定行”和“c指定列”上的元素组成A(r,:)它由A的“r指定行”和“全部列”上的元素组成A(:,
10、c)它由A的“全部行”和“c指定列”上的元素组成A(:)“全元素”寻访。它由A的各列按自左到右的次序,首尾相接而生成“一维长列”数组A(s)“单下标”寻访。生成“s指定的”一维数组。S若是“行数组”(或“列数组”),则A(s)就是长度相同的“行数组”(或“列数组”)A(L)“逻辑1”寻访。生成“一维”列数组:由与A同样大小的“逻辑数组”L中的“1”元素选出A的对应元素;按“单下标”次序排成长列组成。A(r,c)=Sa以“双下标”方式,对子数组A(r,c)进行赋值;Sa的“行宽、列长”必须与A(r,c)的“行宽、列长”相同A(:)=D(:)全元素赋值方式。结果:保持A的“行宽、列长”不变。条件:
11、A、D两个数组的总元素相等,但“行宽、列长”不一定相同A(s)=Sa按“单下标”方式,对A的部分元素重新赋值。结果:保持A的“行宽、列长”不变。条件:s单下标数组的长度必须与“一维数组” Sa的长度相等,但是s、Sa不一定同是“行数组”或“列数组”例:不同寻访和赋值方式示例。在MATLAB中创建下面的矩阵a= 1:8;A=a;a;a;a;a;a;a;a;(1) 如何获取矩阵的第3行 A(3,:) (2) 如何获取矩阵的第4列A(:,4)(3) 如何获取矩阵的第2到6行,3到7列A(2:6,3:7)(4) 如何获取矩阵的第1、2、7、8行,2、5、7列A(1 2 7 8,2 5 7)(5) 如何
12、实现矩阵第1列和第4列数据的交换A(:,4 2 3 1 5:8)(6) 如何获取矩阵按列的倒序排列矩阵A(:,end:-1:1)(7) 如何获取矩阵单下标号为奇数的元素A(1:2:numel(A)(8) 如何将矩阵的第3行的元素全修改为A(3,:)= 0(9) 如何将矩阵的第4列的元素全修改为4 6 8 10 12 14 16A(:,4)=2:2:16(10) 如何获取矩阵的第2到6行,3到7列的元素改为1:25A(2:6,3:7)= reshape(1:25,5,5)(11) 如何删除矩阵的第2、5、7列A(:,2 5 7) = (12) 如何删除矩阵的第1 3行A(1 3,:) = (13
13、) 如何获取矩阵中大于6的元素A(A>6)解题:A = 3 5 6;2 5 8;3 5 9; 3 7 9;A(2, :) ; %访问矩阵A的第2行A(1 4, :) ; %访问矩阵A的第1、4行A(2 3, 1 2); %访问矩阵A的第2、3行与1、2列的交叉元素 1.6 分析:考查知识点用matlab函数创建矩阵表格 4 用于输入特殊的矩阵的函数函数 功 能 函数 功 能 compan 伴随阵toeplitz Toeplitz矩阵diag 对角阵vander Vandermonde矩阵hadamard Hadamard矩阵zeros 元素全为0的矩阵hankel Hankel矩阵one
14、s 元素全为1的矩阵invhilb Hilbert矩阵的逆阵rand 元素服从均匀分布的随机矩阵kron Kronercker张量积randn 元素服从正态分布的随机矩阵magic 魔方矩阵eye 对角线上元素为1的矩阵pascal Pascal矩阵meshgrid 由两个向量生成的矩阵上面函数的具体用法,可以用帮助命令help得到。如:eye、zeros、ones、rand这几个函数的调用格式相似,下面以产生零矩阵的zeros函数为例进行说明。其调用格式是:l zeros(m) 产生m×m零矩阵l zeros(m,n) 产生m×n零矩阵。 l zeros(size(A)
15、产生与矩阵A同样大小的零矩阵解题:A = zeros(3,4) %产生3×4维的零矩阵AB = rand(4,2) %产生4×2维的随机矩阵BC = eye(4) %产生4×4维的单位矩阵C 1.7 分析:考查知识点数组运算和矩阵运算数 组 运 算矩 阵 运 算指令含 义指 令含 义A.非共轭转置。相当于conj(A)A共轭转置A=s把标量s赋给A的每个元素(X) A(:)=s s+B 标量s分别与B元素之和 s-B,B-s标量s分别与B的元素之差 s.*A标量s分别与A的元素之积s*A标量s分别与
16、A每个元素之积s./B,B.ss分别去除B的每个元素s*inv(B)B阵的逆乘sA.nA的每个元素自乘n次AnA为方阵时,自乘n次A.p对A的各元素分别求非整数幂Ap方阵A的非整数乘方p.A以p为底,分别以A的元素为指数求幂值pAA阵为方阵时,标量的矩阵乘方A±B对应元素相加减A±B矩阵相加减A.*B对应元素相乘A*B内维相同矩阵的乘积A./BA的元素被B的对应元素除A/BA右除BB.A(一定与上相同)BAA左除B(一般与右除不同)exp(A)以自然数e为底,分别以A的元素为指数,求幂expm(A)A的矩阵指数函数log(A)对A的各元素求对数logm(A)A的矩阵对数函数
17、sqrt(A)对A的各元素求平方根sqrtm(A)A的矩阵平方根函数f(A)求A各个元素的函数值。f(.)表示为上节所列各函数funm(A,FN)一般函数矩阵A#BA、B阵对应元素间的关系运算。#代表关系运算符 ABA、B阵对应元素间的逻辑运算。#代表逻辑运算符 1.8 分析:考查知识点外部数据调入法产生矩阵【方法】自己上机练习(1)选择File>Import Data 菜单操作,可打开任意类型的数据文件(2)用户能够通过load命令,将MATLAB外部数据文件中的内容调入到工作空间中创建矩阵1.9 分析:考查知识点数组编辑器的使用解题:自己上
18、机练习,注意右键的使用1.10 分析:考查知识点符号对象的产生方法sym 和 syms1、符号常量是不含变量的符号表达式,用sym命令来创建语法:l sym('常量')l sym(常量,参数) %按某种格式转换为符号常量 说明:参数可以选择为d、f、e或r 四种格式,也可省略。2、符号变量语法:变量=sym(变量,参数) %把变量定义为符号对象单个符号变量syms(arg1, arg2, ,参数) syms arg1 arg2 ,参数用这种格式定义符号变量时不要在变量名上加字符分界符('),变量间用空格而不要用逗号分隔。1.11 分析:考查知识点符号表达式的创建和运算l
19、 用 sym 函数直接建立符号表达式。l 使用已经定义的符号变量组成符号表达式解题:syms a b t;f1 = a + cos(t)f2 = b * cos(t)s1 = f2 - f1 s2 = f1 2 + f2 2 1.12 分析:考查知识点符号表达式的创建和代数运算解题:syms a b c k p x y;e1 = a*c*x2*y + a*p*x2 +b *c*x*y+b*p*x+c*k*y+k*pe2 = c*y +pf = e1/e2 1.13 分析:考查知识点符号矩阵的创建和代数运算l 用sym创建矩阵直接创建l 使用已定义的符号对象构成符号矩阵的元素解题:f1 = sy
20、m('1 12; 23 34')f2 = sym('5 5; 5 5')f =f1 + f2 1.14 分析:考查知识点计算精度的控制vpa在matlab中有三种不同的算术运算:l 数值类型 matlab的浮点算术运算l 有理数类型 maple的精确符号运算l vpa类型 maple的任意精度算术运算 n vpa(s,n) 显示可变精度计算解题:c = sym('exp(sqrt(79)') class(c) vpa(c,8) vpa(c,18) 1.15 分析:考查知识点置换操作通用置换指令RES=subs(ES,old,new)用new置换E
21、S中的old后产生RESRES=subs(ES, new)用new置换ES中的自由变量后产生RES解题:syms a b k x y n t d;f = a * xn + b*y +k;f1 = subs(f, a,b,k,sin(t),log(t),c*exp(-d*t)f2 = subs(f, n,k,5, pi)f3 = subs(f, k,1:4) 1.16 分析:考查知识点M文件的编写注意命令文件和函数文件的区别1.17 分析:考查知识点M文件编辑器的用法,上机练习1.18 分析:考查知识点函数句柄的创建方法l fhandle=functionnamel fhandle=str2fu
22、nc(functionname)1.19 分析:考查知识点循环结构解题:法一L = 0;for n = 1:100 L = L + (2*n - 1) .2;endL 法二L = 0; n = 1;while n <=100 L = L + (2*n - 1) .2; n = n + 1;endL 法三n = 1:100;y = (2*n - 1) .2;L = sum(y) 1.20 分析:考查知识点选择结构解题:x = input ('x = ')if x < 3y=0elseif x>3&x<8y = (x-3)/5elseif x>
23、8y = 1elsedisp('x未定义!')end 1.21 分析:考查知识点对角阵X = diag(v,k) 由向量v构成矩阵X的第k条对角线,其他元素为0,创建矩阵XX = diag(v) k缺省表示k=0为主对角线v = diag(X,k) 提取矩阵X的第k条对角线v = diag(X) 提取矩阵X的主对角线解题:a = 5 * ones(1,5);A = diag(a); 1.22 分析:考查知识点三维网线图的绘制解题:【法一】数据可视化mesh第一步:准备绘图数据clear;clf;x = -10 :0.2 :10; %产生坐标向量y = -8 :0.2 :8; %
24、产生坐标向量X,Y = meshgrid(x,y); %由坐标向量产生坐标矩阵meshgrid r = sqrt(X.2+Y.2);Z = sin(r) ./ r; 第二步:指明绘图位置默认第三步:调用三维曲面绘图指令mesh绘图mesh(X,Y,Z) 【法二】符号可视化ezsurf第一步:定义可视化的符号对象syms x y; r = sqrt(x.2+y.2);f = sin(r) ./ r; 第二步:调用ezmesh显示符号表达式zezmesh(f,-10,10,-8,8) 1.23 分析:考查知识点三维曲面的绘制【法一】数据可视化surf第一步:准备绘图数据clear;clf;x =
25、-2 :0.1 :2; %产生坐标向量y = x; %产生坐标向量X,Y = meshgrid(x,y); %由坐标向量产生坐标矩阵meshgrid Z = X.2 + exp(Y) .* abs(X); 第二步:指明绘图位置默认第三步:调用三维曲面绘图指令surf绘图surf(X,Y,Z) 【法二】符号可视化ezsurf第一步:定义可视化的符号对象syms x y;f = x.2+exp(y) .*abs(x); %等价于 f = sym('x.2+exp(y) .*abs(x)') 第二步:调用ezsurf显示符号表达式zezsurf(f,-2,2,-2,2) 1.24 分
26、析:考查知识点三维曲面的绘制【法一】数据可视化surf第一步:准备绘图数据x = -2 :0.1 :2; %产生坐标向量y = x; %产生坐标向量X,Y = meshgrid(x,y); %由坐标向量产生坐标矩阵meshgridZ = (X.2+Y.2) ./ 6; %将X、Y代入函数中计算Y,数组运算 第二步:指明绘图位置默认第三步:调用三维曲面绘图指令surf绘图surf(X,Y,Z) 【法二】符号可视化ezsurf第一步:定义可视化的符号对象syms x y;z = x2+y2; %等价于 z = sym('x2 + y 2') 第二步:调用ezsurf显示符号表达式z
27、ezsurf(z,-2,2,-2,2) 1.25 分析:考查知识点非均匀采样数据曲面的绘制方法(略)自己看书下同1.26 分析:考查知识点坐标变换1.27 分析:考查知识点彗星图comet函数解题:自己在命令窗口中演示clear; clf; shgt = linspace(0,pi,300); %采样变量n=10;x = n*cos(2*t) .* cos(t) .2; %注意数组运算y = n*sin(2*t) .* sin(t) .2; %注意数组运算plot(x,y)hold oncomet(x,y,0.001) 1.28 分析:考查知识点电影方式动画的产生解题:自己在命令窗口中演示t
28、= linspace(0,2*pi,200); %采样变量x = cos(t);y = sin(t);for i = 1:200plot(x(1:i),y(1:i),'c.', x,0,'-b')axis(-1, 1, -1, 1)M(i) = getframe;endshg, movie(M,2) 1.29 分析:考查知识点图形窗口的使用,自己上机练习1.30 分析:考查知识点图形窗口的使用补充知识点总结1、MATLAB中常用函数和值(书上表1.3.2 P14)2、如何获取一个已定义变量的数据类型?方法一:whos 要查看的变量名 注:查看多个变量时各变量之间
29、用空格分开,不能用逗号分开。方法二:使用class函数,函数调用常用格式: str = class(object) 函数返回object的类型。object是常量或已定义的变量,下同。方法三:使用isa函数,函数调用常用格式: n = is(object,'类型')函数返回值为1,说明object为第二个参数指定的类型,0表示不是。3、复数矩阵的创建方法和操作复数矩阵的创建【方法】(1) 直接输入法同实数矩阵(2) 由实部和虚部间接创建例:复数数组的另一种输入方式。M_r=1,2,3; 4,5,6 ;M_i=11,12,13; 14,15,16 ; 则复数矩阵可由下面两种方式创
30、建,必须保证上面两个矩阵大小是相同的。CN1 = M_r+i * M_i; CN2 = complex(M_r, M_i) ; 复数矩阵的操作MATLAB提供的复数和复数矩阵操作函数复数直角坐标表示和极坐标表示之间转换的MATLAB指令如下:real(z) z的实部a=rcosimag(z) z的虚部b=rsinabs(z) z的模r=(a2+b2)angle(z) z的相角=arctg(b/a)求其共轭的函数为: conj(z) z的共轭a-bi如果z是复数矩阵,则上述函数是对矩阵里的每个元素做同样的操作。4、逻辑数组1、逻辑数组的元素或是0或是1,但是元素或是0或是1的矩阵并不一定是逻辑矩阵。是一种特殊的数据类型。2、逻辑数组具有标识作用,但是元素或是0或是1的数值矩阵不具有标识作用3、逻辑数组只能通过logical()函数或逻辑、关系运算这两种方式获得。4、可用class、islogical两个函数来判断一个数组是否逻辑数组。5、如何实现单下标和全下标之间的相互转换?sub2ind 据全下标换算出单下标。ind2sub 据单下标换算出全下标。ND = sub2ind(siz,I,J)IND = sub2ind(siz,I1,I2,.,In)6、两种不同转置的比较共轭转置(')矩阵运算,除了行列互换外,还要对矩阵求共轭非共轭转置
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年山东客运从业资格证实际操作试题及答案
- 2024年信用借款合同签完多久放款(2730字)
- 2024年标准钢材购销合同书范本
- 港航实务 皮丹丹 教材精讲班课件 79-第6章-6.1-工程招标投标
- 2024年五金电器购销简单合同范本
- 2024年品质保证协议书转让协议
- 2024年水电承包合同
- 2024年经营合作协议范本
- 2024年简易个人房屋装修合同
- 2024年杂志约稿合同模板
- 新视野大学英语视听说教程ppt课件
- 攻城掠地数据以及sdata文件修改教程
- 医疗废物转运箱消毒记录表
- 最新投标书密封条
- 看守所岗位职责
- 2019年青年英才培养计划项目申报表
- Sentaurus在ESD防护器件设计中的应用PPT课件
- 《抛物线焦点弦的性质探究》学案
- 人教版小学二年级数学上册全册教案【表格式】
- 佛山岭南新天地项目概况.
- 喷码机操作手册
评论
0/150
提交评论