MATLAB矩阵的数值运算.ppt_第1页
MATLAB矩阵的数值运算.ppt_第2页
MATLAB矩阵的数值运算.ppt_第3页
MATLAB矩阵的数值运算.ppt_第4页
MATLAB矩阵的数值运算.ppt_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

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

文档简介

第二讲 MATLAB的数 值计算 matlab 具有出色的数值计 算能力,占据世界上数值计算软 件的主导地位 数值运算的功能 n 创建矩阵 n 矩阵运算 n 多项式运算 n 线性方程组 n 数值统计 n 线性插值 n 函数优化 n 微分方程的数值解 一、命令行的基本操作 1. 创建矩阵的方法 vv 直接输入法直接输入法 规则:规则: 矩阵元素矩阵元素必须用必须用 括住;括住; 矩阵元素矩阵元素必须用必须用逗号逗号或或空格空格分隔分隔 ; 在在 内矩阵的内矩阵的行与行之间行与行之间必须用必须用分号分号分隔。分隔。 a=3.3; b= 4.4; c=1,a,3;4,5,6;b,7, 8 c = 1.0000 3.3000 3.0000 4.0000 5.0000 6.0000 4.4000 7.0000 8.0000 例1: m=1 2 3;4 5 6, n=11 12 13;14 15 16 m = 1 2 3 4 5 6 n= 11 12 13 14 15 16 c=m+ i*n c = 1.0000 +11.0000i 2.0000 +12.0000i 3.0000 +13.0000i 4.0000 +14.0000i 5.0000 +15.0000i 6.0000 +16.0000i 例2: 其中符号的作用: q 逗号和分号的作用 逗号和分号可作为指令间的分隔符,matlab允许多 条语句在同一行出现。 分号如果出现在指令后,屏幕上将不显示结果。 q 冒号的作用 用于生成等间隔的向量,默认间隔为用于生成等间隔的向量,默认间隔为1 1。 用于选出矩阵指定行、列及元素。用于选出矩阵指定行、列及元素。 循环语句循环语句 Note:只要是赋过值的变量,不管是否在屏幕上显示过, 都存储在工作空间中,以后可随时显示或调用。变量名尽 可能不要重复,否则会覆盖 。 当一个指令或矩阵太长时,可用续行 例: v 用matlab函数创建矩阵 空阵 matlab允许输入空阵,当一项操作无结果时, 返回空阵。 rand(1,N) 产生0 1上均匀分布的随机序列,长度为N randn(1,N) 产生均值为0,方差为 1的高斯随机序列,即 白噪声序列,长度N eye 单位矩阵 zeros 全部元素都为0的矩阵 ones 全部元素都为1的矩阵 此外,还有伴随矩阵、稀疏矩阵、魔方矩阵、对角矩阵、范此外,还有伴随矩阵、稀疏矩阵、魔方矩阵、对角矩阵、范 德蒙等矩阵的创建,就不一一介绍了。德蒙等矩阵的创建,就不一一介绍了。 NoteNote:matlabmatlab严格区分大小写字母严格区分大小写字母,因此,因此a a与与A A是两个不同是两个不同 的变量。的变量。 matlabmatlab函数名必须小写函数名必须小写。 2. 矩阵的修改 直接修改 可用键找到所要修改的矩阵,用键移动 到要修改的矩阵元素上即可修改。 指令修改 可以用A(,)= 来修改。 例: A= 3 2 1;5 0.7 2;7 4 3;b=5;2;7;X=Ab X = 2.2609 1.7391 -5.2609 a p a 自乘p次幂 方阵1的整数 4. 矩阵乘方 an,ap,pa P0,结果为与a相同的矩阵,当p a=1,2,3;4,5,6;7,8,9;a2 ans =30 36 42 66 81 96 102 126 150 当一个方阵有复数特征值或负实特征值时,非 整数幂是复数阵。 例: a=1,2,3;4,5,6;7,8,9;a0.5 ans = 0.4498 + 0.7623i 0.5526 + 0.2068i 0.6555 -0.3487i 1.0185 + 0.0842i 1.2515 + 0.0228i 1.4844 - 0.0385i 1.5873 - 0.5940i 1.9503 - 0.1611i 2.3134 + 0.2717i eig(a) %求矩阵a的特征值 ans = 16.1168 -1.1168 -0.0000 vinv(A) 矩阵求逆 vdet(A) 矩阵A所对应的行列式的值 veig (A) 矩阵的特征值及特征向量 vdiag (A) 提取A对角元素或生成对角矩阵 vsqrtm(A) 矩阵A的平方根 v logm(A) 矩阵A的自然对数 v expm(A) A的矩阵指数函数 v trace(A) 求矩阵的迹 v rank(A) 求矩阵的秩 5. 矩阵的其它运算 6. 矩阵的一些特殊操作 v矩阵的变维 例: a=1 2 3 4;5 6 7 8;9 10 11 12 a = 1 2 3 4 5 6 7 8 9 10 11 12 b=reshape(a,4,3) % 把指定的矩阵改变形状,但是元素个数不 变 b = 1 6 11 5 10 4 9 3 8 2 7 12 vv矩阵的旋转矩阵的旋转 例:例: a=1 2 3 4;5 6 7 8;9 10 11 12 a=1 2 3 4;5 6 7 8;9 10 11 12 a = a = 1 2 3 4 1 2 3 4 5 6 7 8 5 6 7 8 9 10 11 12 9 10 11 12 b= b=rot90rot90(a) (a) 矩阵逆时针旋转矩阵逆时针旋转9090度度 b =b = 4 8 12 4 8 12 3 7 11 3 7 11 2 6 10 2 6 10 1 5 9 1 5 9 vv矩阵的对称交换矩阵的对称交换 例:例: a=-4 -1 -2;-3 0 -3; -2 1 4 a=-4 -1 -2;-3 0 -3; -2 1 4 a = a = -4 -1 -2 -4 -1 -2 -3 0 -3 -3 0 -3 -2 1 4 -2 1 4 flipudflipud(a(a) ) 上下对称交换上下对称交换 ansans = = -2 1 4 -2 1 4 -3 0 -3 -3 0 -3 -4 -1 -2 -4 -1 -2 fliplrfliplr(a(a) ) 左右对称交换左右对称交换 ansans = = -2 -1 -4 -2 -1 -4 -3 0 -3 -3 0 -3 4 1 -2 4 1 -2 vv提取矩阵的上、下三角阵提取矩阵的上、下三角阵 例:例: a=-4 -1 -2;-3 0 -3; -2 1 4 a=-4 -1 -2;-3 0 -3; -2 1 4 a = a = -4 -1 -2 -4 -1 -2 -3 0 -3 -3 0 -3 -2 1 4 -2 1 4 triltril(a(a) ) 提取提取a a的下三角阵的下三角阵 ansans = = -4 0 0 -4 0 0 -3 0 0 -3 0 0 -2 1 4 -2 1 4 triutriu(a(a) ) 提取提取a a的上三角阵的上三角阵 ansans = = -4 -1 -2 -4 -1 -2 0 0 -3 0 0 -3 0 0 4 0 0 4 vv 求矩阵的维数(求矩阵的维数(sizesize)或向量的长度()或向量的长度(lengthlength) 例: a=1 4 7 10;2 5 8 11;3 6 9 12 a = 1 4 7 10 2 5 8 11 3 6 9 12 k=size(a) k = 3 4 A=1 2 3 4 8 6;n=length(A) n = 6 vv 矩阵的转置矩阵的转置 运算符 可进行矩阵的共轭转置运算,运算符.可进行矩 阵的转置运算,当矩阵元素为实数时,两者结果相同。 例、 A=1 2 3;4 5 6 A = 1 2 3 4 5 6 B=A B = 1 4 2 5 3 6 7. 矩阵的关系运算 MATLAB提供了6种关系运算符: 关系符号意义 = = = 小于 小于或等于 大于 大于或等于 等于 不等于 它们的含义不难理解,但要注意其书写方法与数学 中的不等式符号不尽相同。 关系运算符的运算法则为: v 当两个比较量是标量时,直接比较两数的大小 若关系成立,关系表达式结果为1,否则为0。 v 当参与比较的量是两个维数相同的矩阵时,比 较是对两矩阵相同位置的元素按标量关系运算 规则逐个进行,并给出元素比较结果。最终的 关系运算的结果是一个维数与原矩阵相同的矩 阵,它的元素由0或1组成。 vv 当参与比较的一个是标量,而另一个是矩阵当参与比较的一个是标量,而另一个是矩阵 时,则把标量与矩阵的每一个元素按标量关系时,则把标量与矩阵的每一个元素按标量关系 运算规则逐个比较,并给出元素比较结果。最运算规则逐个比较,并给出元素比较结果。最 终的关系运算的结果是一个维数与原矩阵相同终的关系运算的结果是一个维数与原矩阵相同 的矩阵,它的元素由的矩阵,它的元素由0 0或或1 1组成。组成。 c=(a ab ans = 0 0 0 0 0 1 1 1 1 a=1 2 3;4 5 6;7 8 9 a = 1 2 3 4 5 6 7 8 9 b=10-a b = 9 8 7 6 5 4 3 2 1 例: 8. 矩阵的逻辑运算 v 在逻辑运算中,确认非零元素为真,用1表示,零元 素为假,用0表示。 v 设参与逻辑运算的是两个标量a和b,那么, a2 4 -5; -7 -8 9 a = -3 0 1 2 4 -5 -7 -8 9 x=a 等价于not(a),元素为 0时,结果为1,否则为0 x = 0 1 0 0 0 0 0 0 0 例: x1=(a0) x1 = 1 1 0 0 0 1 1 1 0 x2=a-24 5 6;7 8 9; b=2 4 6;1 3 5;7 9 10; a.*b ans = 2 8 18 4 15 30 49 72 90 例: a=1 2 3;4 5 6;7 8 a=1 2 3;4 5 6;7 8 9;9; b=2 4 6;1 3 5;7 9 10;b=2 4 6;1 3 5;7 9 10; a*ba*b ans =ans = 25 37 46 25 37 46 55 85 109 55 85 109 85 133 172 85 133 172 数组相乘矩阵相乘 a./b=b. a a.b=b. /a 给出a,b对应元素间的商. a./b=b.a a./b=b.a 都是都是a a的元素被的元素被b b的对应元素除的对应元素除 例例: : a=1 2 3;b=4 5 6; c1=a.b, c2=b./aa=1 2 3;b=4 5 6; c1=a.b, c2=b./a c1 = 4.0000 2.5000 2.0000c1 = 4.0000 2.5000 2.0000 c2 = 4.0000 2.5000 2.0000c2 = 4.0000 2.5000 2.0000 数组乘方(.) 元素对元素的幂 例: a=1 2 3,b=4 5 6, a = 1 2 3 b = 4 5 6 a.2 ans = 1 4 9 a.b ans = 1 32 729 三、三、 数据统计处理数据统计处理 1、求向量的最大值和最小值 格式: p y=max(X):返回向量X的最大值存入y,如果X 中包含复数元素,则按模取最大值。 p y,I =max(X):返回向量X的最大值存入y,最 大值的序号存入I,如果X中包含复数元素,则按 模取最大值。 求向量X的最小值的函数是min(X),用法和max(X) 完全相同。 例1、 求向量x的最大值。 x=-43,72,9,16,23,47; y=max(x) %求向量x中的最大值 y,l=max(x) %求向量x中的最大值及其该元素的位置 2、求矩阵的最大值和最小值 求矩阵A的最大值的函数常用有2种调用格式: pmax(A):返回一个行向量,向量的第i个元素是矩阵 A的第i列上的最大值。 pY,U=max(A):返回行向量Y和U,Y向量记录A的 每列的最大值,U向量记录每列最大值的行号。 求矩阵A的最小值的函数是min(X),用法和max(X)完 全相同。 例: A=2 8 16; 0 -2 30;3 61 4 A = 2 8 16 0 -2 30 3 61 4 max(A) ans = 3 61 30 y,u=max(A) y = 3 61 30 u = 3 3 2 sum(X):返回向量X各元素的和。 prod(X):返回向量X各元素的乘积。 sum(A):返回一个行向量,其第i个元素是A的第i列的 元素和。 prod(A):返回一个行向量,其第i个元素是A的第i列 的 元素乘积。 3 3、 求和与求积求和与求积 数据序列求和与求积的函数是数据序列求和与求积的函数是sumsum和和prodprod,其使,其使 用方法类似。设用方法类似。设X X是一个向量,是一个向量,A A是一个矩阵,函数是一个矩阵,函数 的的调用格式调用格式为:为: sum(A,dim):当dim为1时,该函数等同于sum(A);当 dim为2时,返回一个列向量,其第i个元 素是A的第i行的各元素之和。 prod(A,dim):当dim为1时,该函数等同于prod(A);当 dim为2时,返回一个列向量,其第i个元 素是A的第i行的各元素乘积。 例: A=2 8 16; 0 -2 30;3 61 4 A = 2 8 16 0 -2 30 3 61 4 sum(A) ans = 5 67 50 prod(A) ans = 0 -976 1920 4 4、 统计分布的数字特征统计分布的数字特征 mean(X) 返回向量X的算术平均值 mean(A) 返回一个行向量,其第i个元素是A的第i列的算 术平均值。 std(X) 返回向量X的样本标准差 std(A) 返回一个行向量,它的各个元素便是矩阵A各列或 各行的标准差。 var(X) 返回向量X的样本方差 var(A) 返回一个行向量,它的各个元素便是矩阵A各列或 各行的标准方差。 corrcoef(X) 返回从矩阵X形成的一个相关系数矩阵。此 相关系数矩阵的大小与矩阵X一样。它把矩阵X的每列作为一 个变量,然后求它们的相关系数。 X=randn(10000,5 ); M=mean(X) D=std(X) R=corrcoef(X) 例、例、 生成满足正态分布的生成满足正态分布的100005100005随机矩阵,然后求各随机矩阵,然后求各 列元素的均值和标准方差,再求这列元素的均值和标准方差,再求这5 5列随机数据的相关系列随机数据的相关系 数矩阵。数矩阵。 M = 0.0011 0.0066 0.0009 0.0264 0.0101 D = 1.0011 1.0036 1.0049 1.0058 1.0061 R = 1.0000 0.0119 0.0051 -0.0114 -0.0011 0.0119 1.0000 0.0093 -0.0012 0.0071 0.0051 0.0093 1.0000 0.0048 0.0095 -0.0114 -0.0012 0.0048 1.0000 -0.0017 -0.0011 0.0071 0.0095 -0.0017 1.0000 运行结果: 5 5、 排序排序 格式:sort(X) 函数返回一个对X中的元素按升序排列的新向量。 sort函数也可以对矩阵A的各列或各行重新排序,其 调用格式为: Y,I=sort(A,dim) 其中dim指明对A的列还是行进行排序。若dim=1,则 按列排;若dim=2,则按行排。Y是排序后的矩阵, 而I记录Y中的元素在A中位置。 matlab语言把多项式表达成一个行向量,该向 量中的元素是按多项式降幂排列的。 P(x)=anxn+an-1 xn-1+ + a1 x+a0 可用系数行向量表示 : P=an an-1 a1 a0 四、 多项式运算 1. 多项式的表达方式 Note:多项式中系数为0的项不能忽略,p中相应元素 应置为0。 p=3,5,1,7 或 p=3 5 1 7 p1=3,0,2,4 或 p1=3 0 2 4 2. 多项式因式分解多项式方程求根 利用函数roots()求多项式方程的根,从而 因式分解。 例: 求多项式 的根。 在MATLAB中表示为: 例: 多项式 , 用MATLAB语言: p=1,-20.5,137,-297.5; r=roots(p) r = 8.5000 7.0000 5.0000 多项式因式分解: 3. P3. Ppolypoly(ar(ar) ) 产生特征多项式系数向量产生特征多项式系数向量 若若arar是方阵,是方阵,P P就是多项式系数向量;就是多项式系数向量; 若若ararar1 ar2 ar1 ar2 arnarn ,arar的元素是多项式的元素是多项式P P的根的根, , 满足满足 (x-ar1)(x-ar2)(x-ar1)(x-ar2)(x-arnx-arn)= a)= a n nx x n n +a+an-1 n-1 x x n-1n-1+a +a0 0 。 。 例: 展开多项式 。 ar=20 7 -5; p=poly(ar) p = 1 -22 5 700 多项式展开: 例: 求3阶方阵A的特征多项式。 A=11 12 13;14 15 16;17 18 19; PA=poly(A) A的特征多项式 PA = 1.0000 -45.0000 -18.0000 0.0000 PB=poly2str(PA,x) 以x作为自变量,返回三次多项式 PB = x3 - 45 x2 - 18 x + 1.8303e-014 Note: poly2str是一个函数文件。 n阶方阵的特征多项式系数存放为1(n1)的一维数 组。 特征多项式系数向量的第一个元素必是1。 4. conv多项式乘运算 例: a(x)=x2+2x+3; b(x)=4x2+5x+6; 求: c(x)=a(x)*b(x) a=1 2 3;b=4 5 6; c=conv(a,b) %计算两多项式相乘后系数 c = 4 13 28 27 18 p=poly2str(c,x) p = 4 x4 + 13 x3 + 28 x2 + 27 x + 18 5. deconv多项式除运算 例: 6. 多项式微分 matlab提供了polyder函数求多项式的微分。 命令格式: polyder(p): 求p的微分 polyder(a,b): 求多项式a,b乘积的微分 p,q=polyder(a,b): 求多项式a,b商的微分 例: 五、函数的极值 1. 固定区间单变量函数的最小值 利用fminbnd函数求固定区间单变量函数的最小值固定区间单变量函数的最小值 。用法:。用法: fun:单变量函数的函数名,x1 x2为给定的计算区 间,x,fval为最小值点的位置和最小值。 例:求 在区间0,2的最小值 f=inline(x.3-2*x.2-5,x);采用内联函数表示测试函数 x=0:0.1:2;plot(x,f(x) x,y=fminbnd(f,0,2) x = 1.3333 y = -6.1852 或:f=x.3-2*x.2-5 2. 固定区间多变量函数的最小值 利用fminsearch函数求固定区间多变量函数的最固定区间多变量函数的最 小值。用法:小值。用法: 从函数fun的给定点开始搜索附近的最小值点x,fval 为最小值点对应的最小值。 例:求 在区间x=0.3,y=0.7附近 的最小值点。 f=inline(p(1).2+p(2).2+7,p); 采用内联函数表示测 试函数 minpoint,minval=fminsearch(f,0.3,0.7) minpoint = 1.0e-004 * -0.1766 -0.1636 minval = 7.0000 六、代数方程求解 求非线性方程式的根的步骤: 定义方程式( 形式),可用inline函数定义; 代入适当范围的x及其对应f(x)值,画出方程函数曲线 ,了解该方程式根的大致位置; 由图中决定f(x)与x轴相交的大致位置x0,通过fzero函 数求出在 x0附近的根。 例:求方程 f=inline(2*exp(x).*sin(2*pi*x)-0.5,x); x=0:0.1:2;y=f(x);plot(x,y) r=fzero(f,0.5) r = 0.4752 r=fzero(f,1) r = 1.0144 r=fzero(f,1.5) r = 1.4910 七、数值积分与微分七、数值积分与微分 v 数值积分基本原理 求解定积分的数值方法多种多样,如简单的梯 形法、辛普生(Simpson)法、牛顿柯特斯(Newton- Cotes)法等都是经常采用的方法。 它们的基本思想都是将整个积分区间a,b分成 n个子区间xi,xi+1,i=1,2,n,其中x1=a,xn+1=b。 这样求定积分问题就分解为求和问题。 v 数值积分的实现方法 变步长辛普生法 基于变步长辛普生法,MATLAB给出了quad 函数来求定积分。该函数的调用格式为: I n=quad(fname,a,b) 其中fname是被积函数名。a和b分别是定积分 的下限和上限。返回参数I即定积分值。n为被 积函数的调用次数。 例:求定积分。例:求定积分。 f= f=inlineinline(exp(-0

温馨提示

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

评论

0/150

提交评论