第四章 MATLAB 数值计算

  • 格式:pdf
  • 大小:4.54 MB
  • 文档页数:83
平均值
– 算术平均值
中值
– 数据序列中其值的大小恰好处在中间的元素 – 例:奇数个数据序列-2,5,7,9,12的中值

偶数个数据序列-2,5,6,7,9,12的中值
求矩阵和向量元素的平均值和中值
– 平均值的函数是mean
– 中中值(续)
设X是一个向量,A是一个矩阵,
26
求矩阵最大元素和最小元素(续)
两个向量或矩阵对应元素的比较
– U=max(A,B):A,B是两个同型的向量或矩阵,结果U是与A,B同 型的向量或矩阵,U的每个元素等于A,B对应元素的较大者。 – U=max(A,n):n是一个标量,结果U是与A同型的向量或矩阵,U 的每个元素等于A对应元素和n中的较大者。
– 求向量X的最小值的函数是min(X),用法和max(X)完全相同。
25
求矩阵最大元素和最小元素(续)

分别求矩阵A中各列和各行元素中的最大值, 并求整个矩阵的最大值和最小值。
78 13 56 25 63 235 A 78 25 563 1 0 1 – A=[13,-56,78;25,63,-235;78,25,563;1,0,-1];
– 例:a=[1 b=[-1 2 0 3; 4 0; 0 5 0.5 6]; 0];
a&b
a|b ~b
若参与逻辑运算的一个是标量,一个是矩阵,那么运算将在标量与矩阵中的每个
元素之间按标量规则逐个进行。最终运算结果是一个与矩阵同维的矩阵,其元素 由1或0组成
在算术、关系、逻辑运算中,算术运算优先级最高,逻辑运算优先级最低。
4
算术运算(续)
矩阵乘法
假定有两个矩阵A和B,若A为m×n矩阵,B为n×p矩阵
,则C=A*B为m×p矩阵。
例:
– A=[1,2,3;4,5,6]; B=[1,2;3,0;7,4]; C=A*B
5
算术运算(续)
矩阵除法 两种矩阵除法运算:\和/,分别表示左除和右除。
– A\B等效于A的逆左乘B矩阵,也就是inv(A)*B
关系运算符的运算法则为:
– 当两个比较量是标量时,直接比较两数的大小。若关系成立,关 系表达式结果为1,否则为0。
– 当参与比较的量是两个维数相同的矩阵时,比较是对两矩阵相同 位置的元素按标量关系运算规则逐个进行,并给出元素比较结果 。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的 元素由0或1组成。 – 当参与比较的一个是标量,而另一个是矩阵时,则把标量与矩阵 的每一个元素按标量关系运算规则逐个比较,并给出元素比较结 果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它 的元素由0或1组成。
,A和B矩阵的相应元素相加减。如果A与B的维数不相同,则 MATLAB将给出错误信息,提示用户两个矩阵的维数不匹配。 – 例1 a=[1 2 3;2 3 4; 3 4 5]; b=[1 1 1;2 2 2;3 3 3]; c=a+b
标量与矩阵加减运算
– 例2
a=[1 2 3;2 3 4; 3 4 5]; x=a+1
– 例 A=-3:3; L1=~A L2=A>-2&A<1 L3=~(A>0)
15
逻辑运算(续)
常用的关系与逻辑运算函数

建立矩阵A,然后找出在[10,20]区间的元素的位置
(1) 建立矩阵A。 A=[4,15,-45,10,6;56,0,17,-45,0] (2) 找出[10,20]区间元素的位置。 find(A>=10 & A<=20)
设A与B是同维同大小的矩阵
– 问题一: A.*B与A*B的值是否相等? A=[1,2,3;4,5,6;7,8,9]; B=[-1,0,1;1,-1,0;0,1,1]; C1=A*B C2=A.*B
– 答一:不同
– 问题二: A./B与B.\ A的值是否相等? C3=A./ B
C4= B.\A
– 答二: 相同
12
关系运算(续)

建立5阶方阵A,判断A的元素是否能被3整除。
A =[24,35,13,22,63;23,39,47,80,80; ...
90,41,80,29,10;45,57,85,62,21;37,19,31,88,76]
P=rem(A,3)==0 其中,rem(A,3)是矩阵A的每个元素除以3的余数矩阵。此 时,0被扩展为与A同维数的零矩阵,P是进行等于(==)比 较的结果矩阵。
– [Y,U]=max(A):返回行向量Y和U,Y向量记录A的每列的最大值,U向量 记录每列最大值的行号。 – max(A,[],dim):dim取1或2。dim取1时,该函数和max(A)完全相同;dim 取2时,该函数返回一个列向量,其第i个元素是A矩阵的第i行上的最大值
求向量和矩阵的最小值
N
2
1 N x xi N i 1 在MATLAB中,提供了计算数据序列的标准方差的函数std。
–对于向量X,std(X)返回一个标准方差。 –对于矩阵A,std(A)返回一个行向量,它的各个元素便是矩阵A各列或各 行的标准方差。
21
求标准方差(续)
std函数的一般调用格式为:
– Y=std(A,flag,dim)
23
相关系数(续)

生成满足正态分布的10000×5随机矩阵,然后求各列 元素的均值和标准方差,再求这5列随机数据的相关系数 矩阵。
– A=randn(10000,5); – M=mean(A) – D=std(A) – R=corrcoef(A)
24
求矩阵最大元素和最小元素
MATLAB提供的求数据序列的最大值和最小值的函数分别为max和min
– y1=std(A,0,1)
– y2=std(A,1,1) – y3=std(A,0,2) – y4=std(A,1,2)
22
相关系数
对于两组数据序列xi,yi,相关系数的计算公式为
r
( x x )( y y ) ( x x ) ( y y )
i i 2 i i
6
算术运算(续)
矩阵的乘方
– 一个矩阵的乘方运算可以表示成A^x,要求A为方阵 ,x为标量。 – 例:A=[1,2,3;4,5,6;7,8,9]; A^2
矩阵的开方
– 例:A^0.1
7
算术运算(续)
点运算
什么叫点运算?
– 点运算是一种特殊的运算,因为其运算符是在有关算术运算符前 面加点,所以叫点运算。
– 设参与逻辑运算的是两个标量a和b,那么, a&b a,b全为非零时,运算结果为1,否则为0。 a|b a,b中只要有一个非零,运算结果为1。 ~a 当a是零时,运算结果为1;当a非零时,运算结果为0
14
逻辑运算(续)
若参与逻辑运算的是两个同维矩阵,那么运算将对矩阵相同位置上的元素按标量
规则逐个进行。最终运算结果是一个与原矩阵同维的矩阵,其元素由1或0组成。
关系运算
– <(小于)、<=(小于或等于)、>(大于)、>=(大于或等于)、==(等于) 、~=(不等于)
逻辑运算
– &(与)、|(或)和~(非)
3
基本算术运算
矩阵加减运算
假定有两个矩阵A和B,则可以由A+B和A-B实现矩阵的加减运算。 运算规则是:若A和B矩阵的维数相同,则可以执行矩阵的加减运算
13
逻辑运算
MATLAB提供了3种逻辑运算符:&(与)、|(或)和~(非)。
逻辑运算的运算法则为: – 在逻辑运算中,确认非零元素为真,用1表示,零元素为假,用0 表示。
在逻辑操作中,所有输入元素的非零值都当作1处理,例如: x=[23 ~x ans=0 1 0 0 -5 ;0 0.001];
2
MATLAB提供了corrcoef函数,可以求出数据的相关系数
矩阵。
corrcoef函数的调用格式为:
–corrcoef(X,Y):X,Y为向量 – corrcoef(A):返回从矩阵A形成的一个相关系数矩阵。此相关系数矩 阵的大小与矩阵A一样。它把矩阵A的每列作为一个变量,然后求它 们的相关系数
Dim的取值
– =1时,求各列元素的标准方差 – =2时,求各行元素的标准方差
Flag的取值
– =0时,按S1所列公式计算标准方差 – =1时,按S2所列公式计算标准方差
缺省情况:flag=0,dim=1 例6.4
对二维矩阵A,从不同维方向求出其标准方差。
% 产生一个二维矩阵A
– A=[4,5,6;1,4,8]
16
主要内容
基本数据运算 数据统计与分析 数据插值与曲线拟合 多项式计算
数值微积分
线性方程组求解
非线性方程与最优化问题求解
常微分方程的数值求解
17
数据统计与分析
数据统计与分析
– 矩阵平均值与均值
– 标准差
– 相关系数
– 矩阵最大和最小元素
– 元素求和与求积
– 元素排序
18
求矩阵的平均值和中值
,两个函数的调用格式和操作过程类似。
求向量和矩阵的最大值
– y=max(X):返回向量X的最大值存入y,如果X中包含复数元素,则按模 取最大值。
– [y,I]=max(X):返回向量X的最大值存入y,最大值的序号存入I,如果X中 包含复数元素,则按模取最大值。
– max(A):返回一个行向量,向量的第i个元素是矩阵A的第i列上的最大值
– max(A,[],2)
– min(A,[],2) – max(A)
%求每行最大元素
%求每行最小元素 %求每列最大元素