MATLAB第三章数值数组及其运算.ppt_第1页
MATLAB第三章数值数组及其运算.ppt_第2页
MATLAB第三章数值数组及其运算.ppt_第3页
MATLAB第三章数值数组及其运算.ppt_第4页
MATLAB第三章数值数组及其运算.ppt_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三章 数值数组及向量化运算 1 3.1 数值计算的特点和地位 符号运算优点:可以对包含变量字符、参数字符和 数字的表达式进行推理、运算,并给出符号结果, 与高校教科书中的解析表达式接近。 不足:有很多问题无法解,有些问题求解时间过长 现代主流计算机都只能表示、保存、运算和输出有 限精度的数字,处理离散的信息。数值计算正好适 应了现代计算机的这种特点,它计算速度快,能处 理各种复杂的函数关系。但数值计算是以有限精度 数字为基本操作元素,只能用有限长度的数据,以 有限的精度表现有限时间和范围内的函数关系。 2 例 3.1-1 已知求 (1) 符号计算解法 syms t; ft=exp(sin(t); sx=int(ft, t, 0, 4) Warning: Explicit integral could not be found. sx = int(exp(sin(t),t = 0 4) (2) 数值计算解法 delt=0.01; x=0:delt:4; y=exp(-sin(x); sx=delt*cumtrapz(y); plot(x,y, r, LineWidth, 6); hold on; plot(x, sx, .b, MarkerSize, 15); plot(x, ones(size(x), k); 3 3.2 引导 数值数组(Numeric Array)和数组运算(Array Operations)是 matlat的核心内容. 数组:一组实数或复数排成的长方阵列. 可以是一维的行或列, 二维的矩形, 也可以是三维的若干同维矩形的堆叠,甚至更高维. 数组运算:无论在数组上施加什么运算(加减乘除或函数),总认 为那种运算对被运算数组中的每个元素平等地实施同样的操作 matlab 设计数组和数组运算的目的: 1) 使程序简单易读,使程序指令更接近教科书上的数学计算公式. 2) 提高程序的向量化程度, 提高计算效率, 节省计算机开销 数组运算符: .opr+, -, .* , ./ , . , . , fun 4 3.3 一维数组的创建和寻访 1. 一维数组的创建: (1) 逐个元素输入法: 如:array=2, pi/2, sqrt(3), 3+5i 使用场合及特点 使用场合: 数据元素比较少并都已知.如对 少量实验数据的处理可用此种方法. x=1,2,3,4,5 行向量 列向量 5 (2) 冒号生成法: array=a: inc: b a-数组的第一个元素 inc-采样点之间的间隔, 即步长. 最后一个元素不一定等于 b,其大小为b=a +inc*(b-a)/inc; 步长可以省略, 默认 为1; inc可以取正数或负数, 但要注意当取正时,要保证ba, 数组最后一个元素不超过b, 取负时ba)得到n+1个元素的数组. abinc0 abinc0 6 x=1:5x=1,2,3,4,5 y=5:-1:1y=5, 4, 3, 2, 1 Z=1:2:7z=1,3,5,7 u=1:2:8u=1,3,5,7 x=31 , 32 , 33 , 34 , 35 ,36 , 37 , 38, 39 输出一个等比数列: a=1:1:9; x=3.a 7 A=1: -1 :9 A=Empty matrix: 1-by-0 B=9: 1 : 1B =Empty matrix: 1-by-0 B=1: 2 :8B=1, 3, 5, 7 C=8: -2 :1C=8, 6, 4, 2 8 (3) 定数线性采样法 在设定的总点数下, 均匀采样生成一维行数组格式为: x=linspace (a, b, n) a-数组初始值 b-数组最后值 n-数组总个数 特点:方便对数组的元素的总个数进行控制,最后一个元素肯 定是设定之值三个参数之间不必满足一定条件 增量的计算-inc=(b-a)/(n-1) 等效于: x=a: (b-a)/(n-1) :b 9 2. 一维数组的子数组寻访和赋值 x=1 2 3 4 5; x(3) x(1 2 3), x(1 2 3) x(1:3)=x(1,2,3) % 1:3=1,2,3 x(3:end) % end表示最后一个下标 x(3:-1:1) x( find (x2) ) x(1 2 3 4 5 5 4 3 2 1) 注意: 数组的第一个元素为x(1), 与C语言中第一个元 素为x0不同 10 3.4二维数组的创建 二维数组是由实数或复数排列成矩形而构成的.从数据结构上看, 矩阵和二维数组没区别.当二维数组带有线性变换含义时,该二维 数组就是矩阵 2. 利用文件创建和保存数组 1.直接输入法: 对于较小数组,从键盘直接输入最简便.二维数组必须有以下三个 要素: 1) 整个输入数组必须以方括号“”为其首尾; 2) 数组的行与行之间必须用分号或回车键隔离; 3) 数组元素必须有逗号或空格分隔 11 例3.1 用直接输入法创建数组 a=pi, b=5; array=1, 2*pi, 2+3i ; sqrt(b), sin(pi/4)+i, 6; 例3.2 利用文件创建和保存数组 1. 编写M文件并运行 AM=100,101,102;103,104,105;106,107,108 ,保存为文件名MyMatrix .m 2. 在命令窗中输入MyMatrix 12 3.5 二维数组的标识 (mxn, m1, n1) 2) 单下标标识 数组名(行下标m, 列下标n)-数组的第m行n列的元素 . A=1,2,3; 4,5,6 A(2,3) 只用一个下标来指定元素在数组中的位置将数组中所 有的元素按照从上到下(列), 从左到右的方法从开始 编号, 其编号就是单下标 1) 全下标标识 | 1 2 3 | A= | 4 5 6 | | 7 8 9 | A(:)按单下标方式列出 全部元素 A(:)=1,4,7,2,5,8,3,6,9 13 4) 全下标与单下标间的转换函数 sub2ind-全下标单下标 ind2sub-单下标全下标 3) 单下标与全下标之间的转换 对数组A (m, n)来说,若元素A (r, c)与A (s)是同一元 素,则有: s=m*(c-1)+r 5) 逻辑1标示 A=1,2,3,4,5; TRUE=10; FALSE=01; L=TRUE, FALSE, TRUE, FALSE, TRUE A(L)=1,3,5 14 3.6 二维数组的子数组寻访和赋值 1) 寻访某一个元素 array (r, c)-数组中的第r行c列的元素 array (r,:)-数组的第r行全部元素 array (:,c)-数组的第c列的全部元素 array (r1,r2,:)-数组的第r1,r2行的全部元素 array (x)-按单下标寻访数组,从第一个元素按列数第x个元素 2) 寻访某一列或一行的元素 3) 单下标寻访 4) 寻访全部元素 array (:,:), array(:) 15 A=1,2,3;4,5,6;7,8,9; A(2,3)=6 A(3)=7 A(:,:)=1,2,3;4,5,6;7,8,9; A(:)=1,4,7,2,5,8,3,6,9 A(1,3,5)=1,7,5 A= 1, 2, 3 4, 5, 6 7, 8, 9 例3.6.1二维数组的寻访 x(2,:) = x(2,:) + 1 16 3.7 执行数组运算的常用函数 函数数组运算规则的定义 | x11 x12 x1n | | x21 x22 x2n | 对于(m x n)数组X | | =xij m x n | | | xm1 xm2 xmn | 函数f(.)的数组运算规则是指: f(X)=f(xij)m x n 也就是对数组中每个元素都实施同样的操作 例2.1 x=30, 45, 60; 90, 105, 120, 计算sin( pi/180*x ) 17 常用函数: 名称 含义名称 含义名称 含义 acos反余弦asinh反双曲正弦csch双曲余割 acosh反双曲余弦atan反正切sec正割 acot反余切atan2四象限反正切sech双曲正割 acoth反双曲余切atanh反双曲正切sin正弦 acsc反余割cos余弦sinh双曲正弦 acsch反双曲余割cosh双曲余弦tan正切 asec反正割cot余切tanh双曲正切 asech反双曲正割coth双曲余切 asin反正弦csc余割 三角函数和双曲函数 18 指数函数 名称 含 义义 名称 含 义义名称含 义义 exp 指数(ex)log10 常用对对数pow2 的幂幂 log自然对对 数 log2以为为底对对 数 sqrt平方根 复数函数 名称含 义义名称含 义义名称 含 义义 abs模或绝对绝对 值值 conj 复数共 轭轭 real 复数实实 部 angle 相角(弧度)imag 复数虚部 19 坐标变换函数 名称 含 义 名称 含 义 cart2sph直角坐标变 球坐标pol2cart极坐标变 直角坐标 cart2pol直角坐标变 极坐标sph2cart球坐标变 直角坐标 圆整函数与求余函数 名称 含 义义名称 含 义义 ceil向圆圆整函数 rem求余数 fix向圆圆整函数round 向最近整数圆圆整函 数 floor 向圆圆整函数 sign符号函数 - (-1), + (1) 0 (0)mod 模除求余 20 3.8 数组运算与矩阵运算 数组运算是指每个对应元素之间的运算,比如对应元素相加, 相减,相乘,相除等,而矩阵运算则服从线性代数中的矩阵运 算规则 数组运算符是 .opr, opr为运算符,可以是 , *, /, , 矩阵运算则没有在操作符左边加., matlab中矩阵的运算是按 照线性代数中的定义进行的 数组运算函数:sqrt, exp, log. 矩阵运算函数:sqrtm, expm, logm 21 数组(矩阵)的点乘和乘法的区别 乘法: 是矩阵相乘, 必须满足矩阵相乘的定义, 即只有 Amxn*Bnxk才有意义, 行向量和行向量之间不能相乘 点乘: 是数组对应元素间的乘法,必须满足相乘的两个 数组的维数完全相同,如Amxn.*Bmxn 例 将函数y=xsinx在区间0,2离散化 x=0: 2*pi/100: 2*pi; y=x.*sin(x); x= 0, 2*pi/100, 2*2*pi/100 , 2*pi sin(x)=sin(0), sin(2*pi/100), sin(2*2*pi/100) , sin(2*pi) 22 例2.2 a=1,2,3;4,5,6;7,8,9, b=2,4,6;8,10,12;14,16,18, 计算a + b, a.*b, a*b, sqrt(a), sqrtm(a) +,-相同位置的元素相加,减 .*相同位置的元素相乘 *矩阵相乘, 满足矩阵相乘的条件 .点幂, 数组(矩阵)中每个元素进行幂运算 矩阵的运算 23 3.9 标准数组生成函数和数组操作函数 指令 含 义义 指令 含 义义 diag建立和提取对对角阵阵 rand产产生均布随机数组组 eye产产生单单位数组组randn 产产生正态态分布随即数 组组 magic 产产生魔方数组组zeros 产产生全数组组 ones产产生全数组组空矩阵阵 1) 标准数组生成函数 例2.3 diag, eye, zeros, ones 的演示 eye(3), eye(2,3), zeros(3), zeros(2,3), ones(3), ones(2,3) a=1,2,3;4,5,6;7,8,9, x=1:1:9; diag(a), diag(x) 24 指令 含 义义 cat把大小相同的若干数组组,沿指定维维方向,串接成高 维维数组组 diag提取对对角元素,或生成对对角矩阵阵 flipud矩阵阵作上下翻转转 fliplr矩阵阵作左右翻转转 repmat扩扩大数组组 reshape 改变变矩阵阵大小 kronKronecker张张量积积 rot90矩阵阵旋转转90度 tril提取矩阵阵的下三角部分 triu提取矩阵阵的上三角部分 2) 数组操作函数 25 矩阵的常用操作 (1) 转置 共轭转置-A, z 共轭-conj (A) 转置-conj (A)-复数=A. (2) + - * / A=1,2,3;,4,5,6; 7,8,9; C=2,4,6; 8,10,12;14,16,18 b=12; 15; 20 z=1+i, 2+3i, 5; 2, 3i, 4+i; 4+3i, 5, i (3) tril, triu, reshape a=1,2,3;4,5,6;7,8,9, x=1:1:9; tril(a), triu(a); reshape(x,3,3) 26 数组的组合: x1=1,2,3; x2=4,5,6; x3=7,8,9; a=x1,x2,x3, b=x1;x2;x3 y1=x1, y2=x2, y3=x3 c=y1,y2,y3, d=y1;y2;y3 a=1 2 3 4 5 6 7 8 9 b= 1 2 3 4 5 6 7 8 9 c= 1 4 7 2 5 8 3 6 9 d=a ,增加列,要保 证行数相等 ;增加行,要 保证列数相等 27 3) 矩阵分析 指 令 含 义义 rank计计算矩阵阵的秩 det计计算矩阵阵行列式的值值 size计计算矩阵阵的大小,行数,列数(二维维) find按条件查查找 null零空间间 trace 计计算矩阵阵的迹 eig求矩阵阵的特征值值和特征向量 norm 计计算矩阵阵或向量的范数 28 例 解多元一次方程 x + 3y + z =15 已知: 2x + y + 3z =20 求 x, y, z之值 x + y =4 1) 将方程化为矩阵与矢量相乘的形式:AX=b,写出 解题步骤: 2) 判断方程组是否有解计算矩阵和其增广矩阵的 3)如果有解,则解为:X=A-1*b =A(-1)*b=inv (A)*b 或 X=Ab A,b 秩 r (A), r (A | b) A=1,3,1; 2,1,3; 1,1,0; b=15,20,4; rank(A); rank(A,b); 29 3.11 非数和空数组 按IEEE规定, 0/0, /, 0*等运算都会产生非数, 在matlab 中 记为nan. 它具有以下性质: 1) nan参与运算所得结果也是nan,即具有传递性 2) 非数没有大小概念,因此不能比较两个非数的大小 功能: 真实记述0/0, / , 0* 运算的后果; 避免可能因以上 运算而造成的程序执行的中断;在数据可视化中,用来裁减图形 30 例2.11-1 非数的产生和性质演示 (1) 非数的产生 a=0/0, b=0*log(0), c=inf - inf (2) 非数的传递性 0*a, sin (a); (3) 非数的属性判断 class (a), isnan (a) isnan-唯一能正确判断非数的指令 31 3.11.2 空数组 空数组的功能: 在没有空数组参与运算时,计算结果中的空可以合理地解释所得 结果的含义(如在某数组中寻找满足一定条件的数据,结果没有, 得到空数组,表示没有满足条件的元素);运用空数组对其他非空 数组赋值,可以改变数组的大小,但不能改变数组的维数 空数组的创建 array1= ; array2=zeros(2,0); array3=1:-5; a=1,2,3; array4=find (a=大于等于 大于=不等于 说明: 1) 标量可以与任何维数的数组进行比较,比较在此标量和数组 每个元素之间进行,因此比较结果为与被比数组同维的数组. 2) 数组进行比较时,两数组必须是同维的, 结果也得到一个同 维

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论