MATLAB矩阵的数值运算.ppt

上传人:sh****n 文档编号:6379239 上传时间:2020-02-24 格式:PPT 页数:67 大小:714.81KB
返回 下载 相关 举报
MATLAB矩阵的数值运算.ppt_第1页
第1页 / 共67页
MATLAB矩阵的数值运算.ppt_第2页
第2页 / 共67页
MATLAB矩阵的数值运算.ppt_第3页
第3页 / 共67页
点击查看更多>>
资源描述
第二讲MATLAB的数值计算 matlab具有出色的数值计算能力 占据世界上数值计算软件的主导地位 数值运算的功能 创建矩阵矩阵运算多项式运算线性方程组数值统计线性插值函数优化微分方程的数值解 一 命令行的基本操作 1 创建矩阵的方法 直接输入法规则 矩阵元素必须用 括住 矩阵元素必须用逗号或空格分隔 在 内矩阵的行与行之间必须用分号分隔 a 3 3 b 4 4 c 1 a 3 4 5 6 b 7 8 c 1 00003 30003 00004 00005 00006 00004 40007 00008 0000 例1 m 123 456 n 111213 141516 m 123456n 111213141516 c m i nc 1 0000 11 0000i2 0000 12 0000i3 0000 13 0000i4 0000 14 0000i5 0000 15 0000i6 0000 16 0000i 例2 其中符号的作用 逗号和分号的作用逗号和分号可作为指令间的分隔符 matlab允许多条语句在同一行出现 分号如果出现在指令后 屏幕上将不显示结果 冒号的作用 用于生成等间隔的向量 默认间隔为1 用于选出矩阵指定行 列及元素 循环语句 Note 只要是赋过值的变量 不管是否在屏幕上显示过 都存储在工作空间中 以后可随时显示或调用 变量名尽可能不要重复 否则会覆盖 当一个指令或矩阵太长时 可用 续行 例 用matlab函数创建矩阵 空阵 matlab允许输入空阵 当一项操作无结果时 返回空阵 rand 1 N 产生 01 上均匀分布的随机序列 长度为Nrandn 1 N 产生均值为0 方差为1的高斯随机序列 即白噪声序列 长度Neye 单位矩阵zeros 全部元素都为0的矩阵ones 全部元素都为1的矩阵 此外 还有伴随矩阵 稀疏矩阵 魔方矩阵 对角矩阵 范德蒙等矩阵的创建 就不一一介绍了 Note matlab严格区分大小写字母 因此a与A是两个不同的变量 matlab函数名必须小写 2 矩阵的修改 直接修改可用 键找到所要修改的矩阵 用 键移动到要修改的矩阵元素上即可修改 指令修改可以用A 来修改 例 a 120 305 789 a 120305789 a 3 3 0a 120305780 还可以用subs函数修改 matlab6 0还可用find函数修改 1 矩阵加 减 运算 二 矩阵运算 规则 相加 减的两矩阵必须有相同的行和列 两矩阵对应元素相加减 矩阵与标量的加减运算是标量与矩阵的所有元素分别进行加减操作 矩阵运算包括 矩阵的四则运算 特征根 奇异解的求解等 2 矩阵乘 运算 规则 A矩阵的列数必须等于B矩阵的行数 标量可与任何矩阵相乘 例 a 123 456 780 b 1 2 3 c a bc 143223 3 在matlab中有两种矩阵除运算 矩阵左除和矩阵右除 和 如果A矩阵是非奇异方阵 则A B和B A运算可以实现 A B等效于A的逆左乘B矩阵 也就是inv A B 而B A等效于A矩阵的逆右乘B矩阵 也就是B inv A 例 d 1 0 2 f pi df 3 141606 2832 例 利用矩阵除法求解线性方程 A 321 50 72 743 b 5 2 7 X A bX 2 26091 7391 5 2609 a p a自乘p次幂 4 矩阵乘方 a n a p p a P 0 结果为与a相同的矩阵 当p 0 只有在a的逆存在时才可定义a p 其意义为inv a p 例 a 1 2 3 4 5 6 7 8 9 a 2ans 303642668196102126150 当一个方阵有复数特征值或负实特征值时 非整数幂是复数阵 例 a 1 2 3 4 5 6 7 8 9 a 0 5ans 0 4498 0 7623i0 5526 0 2068i0 6555 0 3487i1 0185 0 0842i1 2515 0 0228i1 4844 0 0385i1 5873 0 5940i1 9503 0 1611i2 3134 0 2717i eig a 求矩阵a的特征值ans 16 1168 1 1168 0 0000 inv A 矩阵求逆det A 矩阵A所对应的行列式的值eig A 矩阵的特征值及特征向量diag A 提取A对角元素或生成对角矩阵sqrtm A 矩阵A的平方根logm A 矩阵A的自然对数expm A A的矩阵指数函数trace A 求矩阵的迹rank A 求矩阵的秩 5 矩阵的其它运算 6 矩阵的一些特殊操作 矩阵的变维例 a 1234 5678 9101112 a 123456789101112 b reshape a 4 3 把指定的矩阵改变形状 但是元素个数不变b 161151049382712 矩阵的旋转例 a 1234 5678 9101112 a 123456789101112 b rot90 a 矩阵逆时针旋转90度b 481237112610159 矩阵的对称交换例 a 4 1 2 30 3 214 a 4 1 2 30 3 214 flipud a 上下对称交换ans 214 30 3 4 1 2 fliplr a 左右对称交换ans 2 1 4 30 341 2 提取矩阵的上 下三角阵例 a 4 1 2 30 3 214 a 4 1 2 30 3 214 tril a 提取a的下三角阵ans 400 300 214 triu a 提取a的上三角阵ans 4 1 200 3004 求矩阵的维数 size 或向量的长度 length 例 a 14710 25811 36912 a 147102581136912 k size a k 34 A 123486 n length A n 6 矩阵的转置 运算符 可进行矩阵的共轭转置运算 运算符 可进行矩阵的转置运算 当矩阵元素为实数时 两者结果相同 例 A 123 456 A 123456 B A B 142536 7 矩阵的关系运算 MATLAB提供了6种关系运算符 它们的含义不难理解 但要注意其书写方法与数学中的不等式符号不尽相同 关系运算符的运算法则为 当两个比较量是标量时 直接比较两数的大小若关系成立 关系表达式结果为1 否则为0 当参与比较的量是两个维数相同的矩阵时 比较是对两矩阵相同位置的元素按标量关系运算规则逐个进行 并给出元素比较结果 最终的关系运算的结果是一个维数与原矩阵相同的矩阵 它的元素由0或1组成 当参与比较的一个是标量 而另一个是矩阵时 则把标量与矩阵的每一个元素按标量关系运算规则逐个比较 并给出元素比较结果 最终的关系运算的结果是一个维数与原矩阵相同的矩阵 它的元素由0或1组成 c a a bans 000001111 a 123 456 789 a 123456789 b 10 ab 987654321 例 8 矩阵的逻辑运算 在逻辑运算中 确认非零元素为真 用1表示 零元素为假 用0表示 设参与逻辑运算的是两个标量a和b 那么 a b 与 a b全为非零时 运算结果为1 否则为0 a b 或 a b中只要有一个非零 运算结果为1 a 非 当a是零时 运算结果为1 当a非零时 运算结果为0 MATLAB提供了3种逻辑运算符 与 或 和 非 逻辑运算的运算法则为 若参与逻辑运算的是两个同维矩阵 那么运算将对矩阵相同位置上的元素按标量规则逐个进行 最终运算结果是一个与原矩阵同维的矩阵 其元素由1或0组成 在算术 关系 逻辑运算中 算术运算优先级最高 逻辑运算优先级最低 若参与逻辑运算的一个是标量 一个是矩阵 那么运算将在标量与矩阵中的每个元素之间按标量规则逐个进行 最终运算结果是一个与矩阵同维的矩阵 其元素由1或0组成 a 301 24 5 7 89 a 30124 5 7 89 x a 等价于not a 元素为0时 结果为1 否则为0 x 010000000 例 x1 a 0 x1 110001110 x2 a 2 a 4x2 011100000 数组运算指元素对元素的算术运算 与通常意义上的由符号表示的线性代数矩阵运算不同 数组加减 9 数组运算 数组乘除 a b a b两数组必须有相同的行和列 两数组相应元素相乘 a 123 456 789 b 246 135 7910 a bans 281841530497290 例 a 123 456 789 b 246 135 7910 a bans 253746558510985133172 数组相乘 矩阵相乘 a b b aa b b a 给出a b对应元素间的商 a b b a 都是a的元素被b的对应元素除 例 a 123 b 456 c1 a b c2 b ac1 4 00002 50002 0000c2 4 00002 50002 0000 数组乘方 元素对元素的幂 例 a 123 b 456 a 123b 456 a 2ans 149 a bans 132729 三 数据统计处理 1 求向量的最大值和最小值 格式 y max X 返回向量X的最大值存入y 如果X中包含复数元素 则按模取最大值 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种调用格式 max A 返回一个行向量 向量的第i个元素是矩阵A的第i列上的最大值 Y U max A 返回行向量Y和U Y向量记录A的每列的最大值 U向量记录每列最大值的行号 求矩阵A的最小值的函数是min X 用法和max X 完全相同 例 A 2816 0 230 3614 A 28160 2303614 max A ans 36130 y u max A y 36130u 332 sum X 返回向量X各元素的和 prod X 返回向量X各元素的乘积 sum A 返回一个行向量 其第i个元素是A的第i列的元素和 prod A 返回一个行向量 其第i个元素是A的第i列的元素乘积 3 求和与求积 数据序列求和与求积的函数是sum和prod 其使用方法类似 设X是一个向量 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 2816 0 230 3614 A 28160 2303614 sum A ans 56750 prod A ans 0 9761920 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 例 生成满足正态分布的10000 5随机矩阵 然后求各列元素的均值和标准方差 再求这5列随机数据的相关系数矩阵 M 0 00110 00660 00090 02640 0101D 1 00111 00361 00491 00581 0061R 1 00000 01190 0051 0 0114 0 00110 01191 00000 0093 0 00120 00710 00510 00931 00000 00480 0095 0 0114 0 00120 00481 0000 0 0017 0 00110 00710 0095 0 00171 0000 运行结果 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 1xn 1 a1x a0可用系数行向量表示 P anan 1 a1a0 四 多项式运算 1 多项式的表达方式 Note 多项式中系数为0的项不能忽略 p中相应元素应置为0 p 3 5 1 7 或 p 3517 p1 3 0 2 4 或 p1 3024 2 多项式因式分解 多项式方程求根 利用函数roots 求多项式方程的根 从而因式分解 例 求多项式的根 在MATLAB中表示为 例 多项式 用MATLAB语言 p 1 20 5 137 297 5 r roots p r 8 50007 00005 0000 多项式因式分解 3 P poly ar 产生特征多项式系数向量若ar是方阵 P就是多项式系数向量 若ar ar1ar2 arn ar的元素是多项式P的根 满足 x ar1 x ar2 x arn anxn an 1xn 1 a0 例 展开多项式 ar 207 5 p poly ar p 1 225700 多项式展开 例 求3阶方阵A的特征多项式 A 111213 141516 171819 PA poly A A的特征多项式PA 1 0000 45 0000 18 00000 0000 PB poly2str PA x 以x作为自变量 返回三次多项式PB x 3 45x 2 18x 1 8303e 014 Note poly2str是一个函数文件 n阶方阵的特征多项式系数存放为1 n 1 的一维数组 特征多项式系数向量的第一个元素必是1 4 conv多项式乘运算 例 a x x2 2x 3 b x 4x2 5x 6 求 c x a x b x a 123 b 456 c conv a b 计算两多项式相乘后系数c 413282718 p poly2str c x p 4x 4 13x 3 28x 2 27x 18 5 deconv多项式除运算 例 6 多项式微分 matlab提供了polyder函数求多项式的微分 命令格式 polyder p 求p的微分polyder a b 求多项式a b乘积的微分 p q polyder a b 求多项式a b商的微分 例 五 函数的极值 1 固定区间单变量函数的最小值 利用fminbnd函数求固定区间单变量函数的最小值 用法 fun 单变量函数的函数名 x1x2 为给定的计算区间 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 3333y 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 1636minval 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 七 数值积分与微分 数值积分基本原理求解定积分的数值方法多种多样 如简单的梯形法 辛普生 Simpson 法 牛顿 柯特斯 Newton Cotes 法等都是经常采用的方法 它们的基本思想都是将整个积分区间 a b 分成n个子区间 xi xi 1 i 1 2 n 其中x1 a xn 1 b 这样求定积分问题就分解为求和问题 数值积分的实现方法 变步长辛普生法基于变步长辛普生法 MATLAB给出了quad函数来求定积分 该函数的调用格式为 In quad fname a b 其中fname是被积函数名 a和b分别是定积分的下限和上限 返回参数I即定积分值 n为被积函数的调用次数 例 求定积分 f inline exp 0 5 x sin x pi 6 定义被积函数 s quad f 0 3 pi s 0 9008n 77 牛顿 柯特斯法 基于牛顿 柯特斯法 MATLAB给出了quad8函数来求定积分 该函数的调用格式为 In quad8 fname a b 其中参数的含义和quad函数相似 该函数可以更精确地求出定积分的值 且一般情况下函数调用的步数明显小于quad函数 从而保证能以更高的效率求出所需的定积分值 例 分别用quad函数和quad8函数求定积分的近似值 并在相同的积分精度下 比较函数的调用次数 f inline exp 0 5 x sin x pi 6 定义被积函数 s n quad8 f 0 3 pi s 0 9008n 33 例 求定积分 f inline x sin x 1 cos x cos x s quad8 f 0 pi s 2 4674n 33 二重定积分的数值求解使用MATLAB提供的dblquad函数就可以直接求出上述二重定积分的数值解 该函数的调用格式为 I dblquad f a b c d 该函数求f x y 在 a b c d 区域上的二重定积分 例 数值法 z inline x y x y z Inlinefunction z x y x y s1 dblquad z 0 1 1 2 s1 0 4055 s1 dblquad z 1 2 0 1 s1 1 2293 小结本节介绍了matlab语言的数值运算功能 通过学习应该掌握 如何创建矩阵 修改矩阵符号的用法矩阵及数组运算多项式运算非线性方程求解
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!