第二讲MATLAB的数值计算

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

两种除法:\和/,分别表示左除和右除。如 果A矩阵是非奇异方阵,则A\B和B/A运算 可以实现。 A\B等效于A的逆左乘B矩阵,而B/A等效 于A矩阵的逆右乘B矩阵。 对于矩阵来说,左除和右除表示两种不同 的除数矩阵和被除数矩阵的关系。对于矩 阵运算,一般A\B≠B/A。
ຫໍສະໝຸດ Baidu
3. 矩阵乘方—— a^n,a^p,p^a a ^ p —— a 自乘p次幂
4.6 求解线形方程组
5. 矩阵的范数
矩阵范数的函数为: (1) norm(V)或norm(V,2):计算矩阵V的 2—范数。 (2) norm(V,1):计算矩阵V的1—范数。 (3) norm(V,inf):计算矩阵V的∞—范数。 利用Help norm
NORM Matrix or vector norm. For matrices... NORM(X) is the largest singular value of X, max(svd(X)). NORM(X,2) is the same as NORM(X). NORM(X,1) is the 1-norm of X, the largest column sum, = max(sum(abs(X))). NORM(X,inf) is the infinity norm of X, the largest row sum, = max(sum(abs(X'))). NORM(X,'fro') is the Frobenius norm, sqrt(sum(diag(X'*X))). NORM(X,P) is available for matrix X only if P is 1, 2, inf or 'fro'. For vectors... NORM(V,P) = sum(abs(V).^P)^(1/P). NORM(V) = norm(V,2). NORM(V,inf) = max(abs(V)). NORM(V,-inf) = min(abs(V)).
4.用冒号表达式创建矩阵
利用冒号表达式可以线性等间距地建立一个 向量来创建矩阵 一般格式是:e1:e2:e3 其中e1为初始值,e2为步长,e3为终止值。 或者为:(start: step: end) 例 》a=[1:2:10] a= 1 3 5 7 9
5. 矩阵的修改
c 直接修改 可用↑键找到所要修改的矩阵,用←键移动 到要修改的矩阵元素上即可修改。d 指令修 改 可以用A(∗,∗)= ∗ 来修改。
符号的作用
逗号和分号的作用 ♣逗号和分号可作为指令间的分隔 符,matlab允许多条语句在同一行出 现。 ♣分号如果出现在指令后,屏幕上 将不显示结果。
注意:只要是赋过值的变量,不管是 否在屏幕上显示过,都存储在工作空 间中,以后可随时显示或调用。变量 名尽可能不要重复,否则会覆盖 。 当一个指令或矩阵太长时,可用••• 续行
4.4
求特征值和特征向量
>> X=[-2 1 1;0 2 0;-4 1 3]; >> [V D]=eig(X) V= -0.7071 -0.2425 0.3015 0 0 0.9045 -0.7071 -0.9701 0.3015 D= -1 0 0 0 2 0 0 0 2
4.5 矩阵分解
>> A=[2 -1 3;1 2 1;2 4 3]; %三角分解 >> [L, U]=lu(A) L= 1.0000 0 0 0.5000 0.5000 1.0000 1.0000 1.0000 0 U= 2.0000 -1.0000 3.0000 0 5.0000 0 0 0 -0.5000
3.用m文件创建矩阵
对于比较大且比较复杂的矩阵,可以为 它专门建立一个M文件。下面通过一个 简单例子来说明如何利用M文件创建矩 阵。 例 利用M文件建立MYMAT矩阵。
(1) 启动有关编辑程序或Matlab文本编辑器, 并输入待建矩阵。 (2) 把输入的内容以纯文本方式存盘(设文件名 为mymatrix.m)。 (3) 在Matlab命令窗口中输入mymatrix,即运 行该M文件,就会自动建立一个名为 MYMAT的矩阵,可供以后使用。
4.2 求矩阵的秩 >> X=[1, 2, 3; 2, 3 -5; 4 7 1]; >> rank(X) ans = 2
4.3 求逆矩阵
>> X=[1 2 3 0; 5 6 0 8; 9 0 11 12; 0 14 15 16]; >> Y=inv(X) Y= 0.2299 0.0908 0.0351 -0.0717 0.1940 0.0798 -0.0659 0.0095 0.1274 -0.0835 0.0322 0.0176 -0.2892 0.0084 0.0275 0.0377 >>Y*X %矩阵与其逆阵相乘结果是单位矩阵 ans = 1.0000 0 0 0 0 1.0000 0 0 0 0 1.0000 0 0 0 0 1.0000 >> X*Y %矩阵的逆阵是唯一的 ans = 1.0000 0 0 0 0 1.0000 0 0 0 0 1.0000 0 0 0 0 1.0000
A(m1:m2, n1:n2)
例: 修改矩阵A中元素的数值 >>A=[1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16]; >>A(1,1)=0;A(2,2)=A(1,2)+A(2,1);A(4,4)=cos(0); 则矩阵变为: A= 0 2 3 5 7 7 9 10 11 13 14 15
默认文件名
dsave data——将工作空间中所有的 变量存到data.mat文件中。 esave data a b ——将工作空间中a和 b变量存到data.mat文件中。 下次运行Matlab时即可用load指令 调用已生成的mat文件。
cload —— dload data —— eload data a b ——
冒号的作用 n用于生成等间隔的向量,默认 间隔为1。 o用于选出矩阵指定行、列及元 素。 p循环语句
2.用matlab函数创建矩阵
空阵 [ ] — matlab允许输入空阵,当一 项操作无结果时,返回空阵。 rand —— 随机矩阵 eye —— 单位矩阵 zeros ——全部元素都为0的矩阵 ones ——全部元素都为1的矩阵 diag ——产生对角矩阵
例 在区间[20,50]内均匀分布的5阶随机矩 阵。 命令如下: x=20+(50-20)*rand(5) 此外,常用的函数还有reshape(A,m,n),它 在矩阵总元素保持不变的前提下,将矩阵 A重新排成m×n的二维矩阵。
也可用linspace函数产生行向量。其调用格 式为: linspace(a, b, n) 其中a和b是生成向量的第一个和最后一个 元素,n是元素总数。 例 》a=linspace(1 , 10 , 10) a= 1 2 3 4 5 6 7 8 9 10
4 8 12 1
例如 a=[1 2 0;3 0 5;7 8 9] a =1 2 0 3 0 5 7 8 9 a(3,3)=0 a =1 2 0 3 0 5 7 8 0
还可以用函数subs 修改,matlab6.0还 可用find函数修改。
二、数据的保存与获取
把Matlab工作空间中一些有用的数据长 久保存下来的方法是生成mat数据文件。 csave —— 将工作空间中所有的变量存 到matlab.mat文件中。
矩阵下标与子矩阵提取
A(m, n) A(:, n) A(m, :) 提取第m行,第n列元素 提取第n列元素 提取第m行元素 提取第m1行到第m2行和第 n1列到第n2列的所有元素 A(m:end, n) A(:) 提取从第m行到最末行和第n列的 子块 得到一个长列矢量,该矢量的元素按矩 阵的列进行排列
4. 矩阵的其它运算--矩阵函数
函 det diag eig inv lu Poly Rank Svd 数 功 能 计算矩阵所对应的行列式的值 抽取矩阵对角线元素 求特征值和特征向量 求矩阵的逆阵 三角分解 求特征多项式 求矩阵的秩 奇异值分解
4.1 求矩阵的行列式的值 >> X=[1 2 3 0; 5 6 0 8; 9 0 11 12; 0 14 15 16]; >>det(X) ans = -5464
a^0.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
方阵 >1的整数
对于p的其它值,计算将涉及特征值 和特征向量,如果p是矩阵,a是标量 a^p使用特征值和特征向量自乘到p次 幂;如a,p都是矩阵,a^p则无意义。
a=[1,2,3;4,5,6;7,8,9];a^2 ans =30 36 42 66 81 96 102 126 150
※当一个方阵有复数特征值或负实 特征值时,非整数幂是复数阵。
函 数 eye zeros ones [] rand sparse linspace compan magic
功 能 产生单位矩阵 产生全部元素为0的矩阵 产生全部元素为1的矩阵 产生空矩阵 产生均匀分布随机矩阵 产生稀疏矩阵 产生线性等分的矩阵 产生伴随矩阵 Magic(魔方)矩阵
还有伴随矩阵、稀疏矩阵、魔方矩阵 (magic)、对角矩阵、范德蒙等矩阵的 创建,就不一一介绍了。 注意:matlab严格区分大小写字母,因此 a与A是两个不同的变量。 matlab函数名必须小写。
规则: A矩阵的列数必须等于B矩阵的行数 标量可与任何矩阵相乘
a=[1 2 3;4 5 6;7 8 0];b=[1;2;3];c=a*b
c =14 32 23
d=[-1;0;2]; f=pi*d f = -3.1416 0 6.2832 矩阵除的运算在线性代数中没有,有 矩阵逆的运算,在matlab中有两种矩阵 除运算。
即可恢复保 存过的所有 变量
mat文件是标准的二进制文件, 还可以ASCII码形式保存。
三、矩阵运算
A 矩阵的算术运算
1. 矩阵加、减(+,-)运算
规则: c 相加、减的两矩阵必须有相同的行和列两矩 阵对应元素相加减。 d 允许参与运算的两矩阵之一是标量。标量与 矩阵的所有元素分别进行加减操作。
2. 矩阵乘(∗)运算
》a=1; b=2; c=3; 》x=[5 b c; a*b a+c c/b] x= 5.000 2.000 3.000 2.000 4.000 1.500 》y=[2, 4, 5; 3 6 8] y= 2 4 5 3 6 8
矩阵元素
矩阵元素可以是任何matlab表达式 ,可以是实 数 ,也可以是复数,复数可用特殊函数I,j 输入。大的矩阵可以用分行输入,回车键代 表分号。 a=[1 2 3;4 5 6] x=[2 pi/2; sqrt(3) 3+5i]
例 》eye(2,3)
》zeros(2,3)
ans= ans= 1 0 0 0 0 1 0 0 》ones(2,3) ans= 1 1 1 1 1 1 》V=[5 7 2];A=diag(V) A= 5 0 0 0 7 0 0 0 2 0 0 0 0
例 》eye(2) ans= 1 0 0 1 》zeros(2) ans= 0 0 0 0 》ones(2) ans= 1 1 1 1
第二讲 MATLAB的数值计算
—— matlab 具有出色的数值 计算能力,占据世界上数值计算 软件的主导地位
数值运算的功能
创建矩阵 矩阵运算 多项式运算 线性方程组 数值统计 线性插值 函数优化 微分方程的数值解
一、命令行的基本操作
1. 创建矩阵的方法
直接输入法 规则: 1 矩阵元素必须用[ 3 在[ ]括住 2 矩阵元素必须用逗号或空格分隔 ]内矩阵的行与行之间必须 用分号分隔
相关文档
最新文档