第 5 节 数值计算功能

36
第5第 第第第第第第

Upload: candra

Post on 22-Jan-2016

101 views

Category:

Documents


0 download

DESCRIPTION

第 5 节 数值计算功能. 教学重点. 矩阵的生成和基本的数值运算 稀疏型矩阵的生成和基本操作 数值微分的求解方法. 教学过程. 矩阵的生成和基本的数值运算 特殊矩阵的生成 稀疏型矩阵的生成和基本操作 稀疏型矩阵和满矩阵的相互转换 微分和积分的定义 数值微分的求解方法 对函数进行数值积分的方法 使用 MATLAB 7 进行线性代数的运算 使用 MATLAB 7 进行概率统计方面的运算. 矩阵的生成有多种方式,通常使用的有 4 种方法: 在命令窗口中直接输入矩阵 通过语句和函数产生矩阵 在 M 文件中建立矩阵 从外部的数据文件中导入矩阵. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第 5 节  数值计算功能

第 5 节 数值计算功能

Page 2: 第 5 节  数值计算功能

教学重点

• 矩阵的生成和基本的数值运算• 稀疏型矩阵的生成和基本操作• 数值微分的求解方法

Page 3: 第 5 节  数值计算功能

教学过程

• 矩阵的生成和基本的数值运算• 特殊矩阵的生成• 稀疏型矩阵的生成和基本操作• 稀疏型矩阵和满矩阵的相互转换• 微分和积分的定义• 数值微分的求解方法• 对函数进行数值积分的方法• 使用 MATLAB 7 进行线性代数的运算• 使用 MATLAB 7 进行概率统计方面的运算

Page 4: 第 5 节  数值计算功能

1. 矩阵的生成

• 矩阵的生成有多种方式,通常使用的有 4 种方法:– 在命令窗口中直接输入

矩阵– 通过语句和函数产生矩

阵– 在 M 文件中建立矩阵– 从外部的数据文件中导

入矩阵

• >> matrix=[1 ,1, 1, 1;2, 2, 2, 2;3, 3, 3, 3;4, 4, 4, 4]

• matrix =• 1 1 1 1• 2 2 2 2• 3 3 3 3• 4 4 4 4

Page 5: 第 5 节  数值计算功能

2. 矩阵的基本数值运算• 矩阵与常数的四

则运算 • 矩阵之间的四则

运算

• >> A=[2 1 -1;2 1 0;1 -1 1]• A =• 2 1 -1• 2 1 0• 1 -1 1• >> B=[1 -1 3;4 3 2] ;• >> X=B/A• X =• -2.0000 2.0000 1.0000• -2.6667 5.0000 -0.6667

Page 6: 第 5 节  数值计算功能

3. 特殊矩阵的生成• 零矩阵和全 1 矩阵的生成 ( zeros 、 ones )• 对角矩阵的生成 ( diag )• 随机矩阵的生成 ( rand 、 randn )• 范德蒙德矩阵的生成 ( vander )• 魔术矩阵的生成 ( magic )• Hilbert 矩阵和反 Hilbert 矩阵的生成 ( hilb 、 inv

hilb )

Page 7: 第 5 节  数值计算功能

特殊矩阵的生成举例• >> rand(5)• ans =• 0.9501 0.7621 0.6154 0.4057 0.0579• 0.2311 0.4565 0.7919 0.9355 0.3529• 0.6068 0.0185 0.9218 0.9169 0.8132• 0.4860 0.8214 0.7382 0.4103 0.0099• 0.8913 0.4447 0.1763 0.8936 0.1389• >>

Page 8: 第 5 节  数值计算功能

4. 稀疏型矩阵 • 稀疏矩阵的生成 • 稀疏矩阵与满矩阵的相互转换 • 稀疏矩阵的操作

Page 9: 第 5 节  数值计算功能

( 1 ) 稀疏矩阵的生成• 在 MATLAB 7 中,生成稀疏矩阵用特殊的

函数来进行,这些函数有 speye 、 spones 、spdiags 、 sparse 、 find 、 full 、 spalloc 、sprand 和 sprandn 等。

Page 10: 第 5 节  数值计算功能

Speye 函数应用举例• >> A=eye(5)

• A =

• 1 0 0 0 0• 0 1 0 0 0• 0 0 1 0 0• 0 0 0 1 0• 0 0 0 0 1

• >> speye(size(A))

• ans =

• (1,1) 1• (2,2) 1• (3,3) 1• (4,4) 1• (5,5) 1

Page 11: 第 5 节  数值计算功能

( 2 )稀疏矩阵与满矩阵的相互转换 • 用来将稀疏矩阵和满矩阵相互转换的函数

有 sparse 、 full 和 find 等 3 个函数 。• >> S(10,50)=82;• >> S(32,14)=82;• >> S(251,396)=25;• >> I=find(S) %生成 S 中非零元素的位置• I =• 3295• 12309• 99396

Page 12: 第 5 节  数值计算功能

( 3 )稀疏矩阵的操作 • 对稀疏矩阵进行操作,

主要由 nnz 、 nonzeros 、 nzmax 、 sponse 、 spalloc 、 isspase 、 spyfun 和 spy 等函数来实现 。

• >> v=[6 2 7 8 ];• >> S=diag(v,1)• >> R=sparse(S);• >> N=issparse(S)• N =• 0• >> Y=issparse(R) • Y =• 1• >>

Page 13: 第 5 节  数值计算功能

5. 微分和积分 • 数值微分

– 使用 diff 函数求数值微分 – 使用 gradient 函数求近似梯度 – jacobian 函数求多元函数的导数

• 函数的数值积分 – 矩形求积 – trapz 函数 ( 梯形求积 ) – 自适应法 (Simpson 法 ) – 高阶自适应法 (Newton-Cotes 法 )

Page 14: 第 5 节  数值计算功能

( 1 )数值微分• >> syms x y z• >> jacobian([x*y*z; y; x+z],[x y z])• ans =• [ y*z, x*z, x*y]• [ 0, 1, 0]• [ 1, 0, 1]• >> syms u v • >> jacobian(u*exp(v),[u;v])• ans =• [ exp(v), u*exp(v)]• >>

Page 15: 第 5 节  数值计算功能

( 2 )函数的数值积分

• >> x=0:0.1:10;• >> y=sin(x);• >> z=cumsum(y)*0.1;• >> plot(x,y,'r-',x,z,'k

*')• >>

Page 16: 第 5 节  数值计算功能

6. MATLAB 7 与线性代数• 矩阵的特征参数运算 • 矩阵的分解运算 • 矩阵的结构操作

Page 17: 第 5 节  数值计算功能

( 1 )矩阵的特征参数运算• 矩阵的乘方运算和开方运算 • 矩阵的指数和对数运算 • 矩阵的逆运算 • 矩阵的行列式运算 • 矩阵的特征值运算 • 矩阵 ( 向量 ) 的范数运算 • 矩阵的条件数运算 • 矩阵的秩 • 矩阵的迹

Page 18: 第 5 节  数值计算功能

特征参数运算举例 1

• 矩阵的逆运算 • >> A=[1 0 0 0;1 2 0 0;2 1 3 0;1 2 1 4]• A =• 1 0 0 0• 1 2 0 0• 2 1 3 0• 1 2 1 4• >> B=inv(A)• B =• 1.0000 0 0 0• -0.5000 0.5000 0 0• -0.5000 -0.1667 0.3333 0• 0.1250 -0.2083 -0.0833 0.2500• >>

Page 19: 第 5 节  数值计算功能

特征参数运算举例 2

• 矩阵的秩 • >> T1=[1 1 1;2 2 3]• T1 =• 1 1 1• 2 2 3• >> r=rank(T1)• r =• 2• >>

Page 20: 第 5 节  数值计算功能

( 2 )矩阵的分解运算• 三角分解 (lu)

• 正交分解 (qr)

• 特征值分解 (eig)

• Chollesky 分解 (chol)

• 奇异值分解 (svd)

Page 21: 第 5 节  数值计算功能

分解运算举例 1

• 三角分解 (lu)• >> X=[6 2 -1;2 4 0;1 4 -1;-1 -1 3]• >> [L,U]=lu(X)• L =• 1.0000 0 0• 0.3333 0.9091 0.4068• 0.1667 1.0000 0• -0.1667 -0.1818 1.0000• U =• 6.0000 2.0000 -1.0000• 0 3.6667 -0.8333• 0 0 2.6818• >>

Page 22: 第 5 节  数值计算功能

分解运算举例 2

• 正交分解• >> A=[17 3 4;3 1 12;4 12 8]• >> [Q,R]=qr(A)• Q =• -0.9594 0.2294 0.1643• -0.1693 -0.0023 -0.9856• -0.2257 -0.9733 0.0411• R =• -17.7200 -5.7562 -7.6749• 0 -10.9939 -6.8967• 0 0 -10.8412

Page 23: 第 5 节  数值计算功能

( 3 )矩阵的结构操作• 矩阵的标识• 矩阵的扩充 • 矩阵的部分删除 • 矩阵的修改 • 矩阵结构的改变 • 矩阵的旋转和翻转

Page 24: 第 5 节  数值计算功能

结构操作举例 1

• 矩阵的标识• >> A=magic(4)• A =• 16 2 3 13• 5 11 10 8• 9 7 6 12• 4 14 15 1• >> A(2,4)• ans =• 8• >>

Page 25: 第 5 节  数值计算功能

结构操作举例 2• 矩阵的翻转

• >> A=randn(3)• A =• -0.4326 0.2877 1.1892• -1.6656 -1.1465 -0.0376• 0.1253 1.1909 0.3273• >> B=fliplr(A)• B =• 1.1892 0.2877 -0.4326• -0.0376 -1.1465 -1.6656• 0.

Page 26: 第 5 节  数值计算功能

7. MATLAB 7 与概 率 统 计

• 随机数的产生 • 统计量的数字特征 • 参数估计 • 假设检验 • 统计作图

Page 27: 第 5 节  数值计算功能

( 1 )随机数的产生

• 均匀分布的随机数据的产生 ( unifrnd )• 指数分布的随机数据的产生 ( exprnd )• 二项分布的随机数据的产生 ( binornd )• 正态分布的随机数据的产生 ( normrnd )

Page 28: 第 5 节  数值计算功能

随机数的产生举例

• 均匀分布的随机数据的产生 • >> unifrnd(1,4)• ans =• 1.6971• >> unifrnd(1,10,4,4)• ans =• 8.2438 1.4478 8.5948 4.9581• 9.1756 1.7055 2.5651 4.0604• 3.0870 6.7673 2.5371 3.8280• 3.1538 2.7180 9.9487 4.2857• >>

Page 29: 第 5 节  数值计算功能

( 2 )统计量的数字特征• 平均值和中位数 ( mean 、 geomean )• 数据比较 ( sort 、 sortrows 、 range )• 期望和方差 ( mean 、 var )• 常见分布的期望和方差 ( unifstat 、 binostat

)• 协方差与相关系数 ( cov 、 corrcoee )

Page 30: 第 5 节  数值计算功能

统计量的数字特征举例 1• 算术平均值

• >> A=magic(4)• A =• 16 2 3 13• 5 11 10 8• 9 7 6 12• 4 14 15 1• >> mean(A)• ans =• 8.5000 8.5000 8.5000 8.5000

Page 31: 第 5 节  数值计算功能

统计量的数字特征举例 2

• 样本的方差 • >> B=rand(4)• B =• 0.4966 0.8180 0.3412 0.8385• 0.8998 0.6602 0.5341 0.5681• 0.8216 0.3420 0.7271 0.3704• 0.6449 0.2897 0.3093 0.7027• >> var(B)• ans =• 0.0327 0.0643 0.0375 0.0399

Page 32: 第 5 节  数值计算功能

( 3 )参数估计 • 常见分布的参数估计

– β分布的极大似然估计值和置信区间 – 正态分布的参数估计

• 非线性模型置信区间预测 – 高斯—牛顿法的非线性最小二乘数据拟合 – 非线性模型的参数估计的置信区间

Page 33: 第 5 节  数值计算功能

参数估计举例• β分布的极大似然估计值和置信区间

• >> X = betarnd (7,5,150,1);• >> [PHAT,PCI] = betafit(X,0.03)• PHAT =• 7.7517 5.5560• PCI =• 5.4440 4.0534• 10.0594 7.0585• >>

Page 34: 第 5 节  数值计算功能

( 4 )假设检验

• 已知单个正态分布的均值 μ 的假设检验 (U检验法 )

• σ2 未知时,单个正态总体的均值 μ的假设检验 ( t 检验法 )

• 两个正态分布均值差的检验 (t 检验 )

• 两个分布一致性的检验——秩和检验

Page 35: 第 5 节  数值计算功能

假设检验举例• 某种电子元件的寿命 X( 以

小时计 ) 服从正态分布, μ、σ2 均未知。现测得 16 只元件的寿命如下

• 159 280 101 212 224 379 179 264 222 362 168 250

• 149 260 485 170• 问是否有理由认为元件的

平均寿命大于 225( 小时 ) ?

• 解:未知 σ2 ,在水平 α=0.05下检验假设: H0 : μ<μ0=225 ,H1 : μ>225

• >> X=[159 280 101 212 224 379 179 264 222 362 168 250 149 260 485 170];

• >> [h,sig,ci]=ttest(X,225,0.05,1)• 结果显示为:• h =• 0• sig =• 0.2570• ci =• 198.2321 Inf % 均值 2

25 在该置信区间内

Page 36: 第 5 节  数值计算功能

(5) 统计作图

• 正整数的频率表 • 经验累积分布函数图形 • 最小二乘拟合直线 • 绘制正态分布概率图形 • 样本的概率图形 • 附加有正态密度曲线的直方图 • 在指定的界线之间绘制正态密度曲线 • 绘制威布尔 (Weibull) 概率图形 • 样本数据的盒图