matlab第三章数值数组及其运算.ppt

(42页)

'matlab第三章数值数组及其运算.ppt'
第三章 数值数组及向量化运算13.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');33.2 引导数值数组(Numeric Array)和数组运算(Array Operations)是matlat的核心内容.数组:一组实数或复数排成的长方阵列. 可以是一维的行或列,二维的矩形, 也可以是三维的若干同维矩形的堆叠,甚至更高维.数组运算:无论在数组上施加什么运算(加减乘除或函数),总认为那种运算对被运算数组中的每个元素平等地实施同样的操作matlab 设计数组和数组运算的目的:1) 使程序简单易读,使程序指令更接近教科书上的数学计算公式. 2) 提高程序的向量化程度, 提高计算效率, 节省计算机开销.数组运算符: .opr+, -, .* , ./ , .\ , .^ , fun43.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可以取正数或负数, 但要注意当取正时,要保证b>a, 数组最后一个元素不超过b, 取负时ba)得到n+1个元素的数组.abinc>0abinc>06x=1:5x=[1,2,3,4,5]y=5:-1:1y=[5, 4, 3, 2, 1]Z=1:2:7z=[1,3,5,7] u=1:2:8u=[1,3,5,7]x=31 , 32 , 33 , 34 , 35 ,36 , 37 , 38, 39输出一个等比数列:a=1:1:9;x=3.^a7A=1: -1 :9 A=Empty matrix: 1-by-0B=9: 1 : 1B =Empty matrix: 1-by-0B=1: 2 :8B=[1, 3, 5, 7]C=8: -2 :1C=[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) :b92. 一维数组的子数组寻访和赋值 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 (x>2) ) x([1 2 3 4 5 5 4 3 2 1])注意: 数组的第一个元素为x(1), 与C语言中第一个元素为x[0]不同103.4二维数组的创建二维数组是由实数或复数排列成矩形而构成的.从数据结构上看,矩阵和二维数组没区别.当二维数组带有线性变换含义时,该二维数组就是矩阵.2. 利用M文件创建和保存数组 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 利用M文件创建和保存数组1. 编写M文件并运行  AM=[100,101,102;103,104,105;106,107,108],保存为文件名MyMatrix .m2. 在命令窗中输入MyMatrix123.5 二维数组的标识 (mxn, m>1, n>1)2) 单下标标识数组名(行下标m, 列下标n)---数组的第m行n列的元素.A=[1,2,3; 4,5,6]A(2,3)只用一个下标来指定元素在数组中的位置-将数组中所有的元素按照从上到下(列), 从左到右的方法从1开始编号, 其编号就是单下标.1) 全下标标识 | 1 ① 2 ④ 3 ⑦ |A= | 4 ② 5 ⑤ 6 ⑧ | | 7 ③ 8 ⑥ 9 ⑨ |A(:)—按单下标方式列出全部元素A(:)=[1,4,7,2,5,8,3,6,9]’134) 全下标与单下标间的转换函数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=1>0; FALSE=0>1;L=[TRUE, FALSE, TRUE, FALSE, TRUE]A(L)=[1,3,5]143.6 二维数组的子数组寻访和赋值1) 寻访某一个元素array (r, c)---数组中的第r行c列的。省略部分。+ 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=A\b 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]);293.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----唯一能正确判断非数的指令313.11.2 空数组 空数组的功能:在没有空数组参与运算时,计算结果中的空可以合理地解释所得结果的含义(如在某数组中寻找满足一定条件的数据,结果没有,得到空数组,表示没有满足条件的元素);运用空数组对其他非空数组赋值,可以改变数组的大小,但不能改变数组的维数.空数组的创建array1=[ ]; array2=zeros(2,0); array3=1:-5;a=[1,2,3]; array4=find (a<0)空数组的判断isempty(array1)323.12 关系操作和逻辑操作 matlab 的约定1) 在所有关系表达式和逻辑表达式中,作为输入的任何非0数都被看作逻辑真,只有0才被认为是逻辑假.2) 所有关系表达式和逻辑表达式的计算结果,即输出,是一个由0和1作成的逻辑数组. 其中1表示真, 0表示假.3) 逻辑数组是一种特殊的,它表示着对事物的判断结论“真”与”假“33关系操作指令  含  义指令  含  义=大于等于大于~=不等于说明:1) 标量可以与任何维数的数组进行比较,比较在此标量和数组 每个元素之间进行,因此比较结果为与被比数组同维的数组.2) 数组进行比较时,两数组必须是同维的, 结果也得到一个同维的数组.34 | 2, 4, 6 | | 1, 3, 5 |A=| 3, 5, 7 | B= | 4, 6, 8 | | 1, 8, 9 | | 2, 7, 9 | |1, 1, 1| |0, 0, 1|A>B= |0, 0, 0| A>5= |0, 0, 1| |0, 1, 0| |0, 1, 1|find(A>5)=[6,7,8,9]' % 得到数组下标,单下标A(find(A>5))=[8,6,7,9]'35例3.12-1 求近似极限,修补图形缺口sin (t)/t t∈[-2π,2π]t=-2*pi : pi/10 : 2*pi;y=sin(t)./t; %除还是点除tt=t+(t==0)*eps ; % 处理分母为0的点yy=sin(tt)./tt;subplot(1,2,1),plot(t,y);axis([-7,7,-0.5,1.2]);xlabel('t'),ylabel('y'),title('残缺图形');subplot(1,2,2),plot(tt,yy);axis([-7,7,-0.5,1.2]);xlabel ('t'), ylabel('yy'), title('完整图形')3637逻辑操作 指令      含   义 &与,和 |或 ~否,非说明:1) 标量可以与任何维的数组运算.逻辑运算在标量与数组每个元素间进行, 因此运算结果是与参与运算的数组维数相同的数组.2) 数组之间也可以进行逻辑运算,参与运算的必须维数相同.此时运算在两数组同位置上的元素之间进行.因此运算结果是与参与运算的数组维数相同的数组.38 关系,逻辑函数 指令 含 义指 令 含 义all (A)A中元素全为非0是为1, 否则0isequal(A,B)A,B对应元素相等时,相应元素位置取1,否则取0any(A)A中有非0则为1xor(A,B)对应位置元素异或isempty(x)X为空,则为1isnan(x)判断数组中元素是否为NaNisfinite(x)X中有限大小元素的位置取1,其余取0isprime(x)质数元素位置处取1,其余取0isinf(x)x中无穷大处位置取1,其余取0isreal(x)实数元素位置处取1,其余取0isletter(x)X中英文字母处取1,其余为0isspace(x)空格元素处取1,其余取01) 特殊数据判断指令392) 数据类型判断指令  指 令  含  义 指  令  含   义isa(x,’name’)判断x类型ishandle (x)判断是否图柄代号iscell (x)判断x是否元胞islogical (x)判断是否逻辑数据iscellstr (x)判断x是否字符串元胞数组isnumeric (x)判断是否数值ischar (x)判断x是否字符串isobject (x)判断是否对象isfield (x,’ name’)判断name是否架构x的域名issparse (x)判断矩阵是否稀疏isglobal (x)判断是否全局变量isstruct (x)判断是否是架构40例3.12-1 正弦函数y=sint (t∈[0,3π] ) 的半波整流.[0, pi], [2pi, 3pi]t2pi, z=sin(t)*1否则 z=sin(t)*041t=linspace(0, 3*pi, 500);y=sin (t);z=( (t2*pi) ) .*y;subplot(1,2,1),plot(t,y),ylabel('y');subplot(1,2,2),plot(t,z),axis([0 10 -1 1]);x=[1, 2, 3, 4, 5, 6, 7, 8, 9]y=x6y=[1, 1, 1, 0, 0, 0, 1, 1, 1]z=x.*y=[1, 2, 3, 0, 0, 0, 7, 8, 9]z=y.*(y>0);42
关 键 词:
matlab 数值 第三 及其 运算 数组
 天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:matlab第三章数值数组及其运算.ppt
链接地址: https://www.wenku365.com/p-48121250.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给天天文库发消息,QQ:1290478887 - 联系我们

本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有【成交的100%(原创)】。本站是网络服务平台方,若您的权利被侵害,侵权客服QQ:1290478887 欢迎举报。

1290478887@qq.com 2017-2027 https://www.wenku365.com 网站版权所有

粤ICP备19057495号 

收起
展开