第3讲数值运算基础_第1页
第3讲数值运算基础_第2页
第3讲数值运算基础_第3页
第3讲数值运算基础_第4页
第3讲数值运算基础_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

1、第3讲数值运算基础 第三讲第三讲 数值运算基础数值运算基础 matlab 具有出色的数值计具有出色的数值计 算能力,占据世界上数值计算软算能力,占据世界上数值计算软 件的主导地位件的主导地位 第3讲数值运算基础 数值运算的功能数值运算的功能 多项式运算多项式运算 线性方程组线性方程组 数值统计数值统计 线性插值和拟合线性插值和拟合 第3讲数值运算基础 matlab语言把多项式表达成一个行向量,语言把多项式表达成一个行向量, 该向量中的元素是按多项式降幂排列的。该向量中的元素是按多项式降幂排列的。 f(x)=anxn+an-1xn-1+a0 可用行向量 可用行向量 p=an an-1 a1 a0

2、表示表示 poly 产生特征多项式系数向量产生特征多项式系数向量 特征多项式一定是特征多项式一定是n+1维的维的 1.特征多项式第一个元素一定是特征多项式第一个元素一定是1 一、一、 多项式运算多项式运算 第3讲数值运算基础 例例: a=1 2 3;4 5 6;7 8 0; p=poly(a) p =1.00 -6.00 -72.00 -27.00 p是多项式是多项式p(x)=x3-6x2-72x-27的的 matlab描述方法描述方法 lp1=poly2sym(p,x) 显示数学多项式显示数学多项式 的形式的形式 p1 =x3 6*x2 72*x 27 第3讲数值运算基础 2. 多项式求值多

3、项式求值 有两种求多项式值的函数:有两种求多项式值的函数:polyval与与polyvalm, 前者是代数多项式求值,后者是矩阵多项式求值前者是代数多项式求值,后者是矩阵多项式求值. (1) polyval函数函数: y=polyval(p,x) 若若x为一数值,则求多项式在该点的值;若为一数值,则求多项式在该点的值;若x为为 向量或矩阵,则对向量或矩阵中的每个元素求其向量或矩阵,则对向量或矩阵中的每个元素求其 多项式的值。多项式的值。 例例3-1 已知多项式已知多项式x4+8x3-10,分别,分别 取取x=1.2和一个和一个22矩阵为自变量计算矩阵为自变量计算 它的值它的值. eg3-1-2

4、 第3讲数值运算基础 2. 多项式求值多项式求值 (2) polyvam函数函数: y=polyvam(p,x) 本函数要求本函数要求x为方阵,它以方阵为自变量求多项为方阵,它以方阵为自变量求多项 式的值式的值. l设设A为方阵,为方阵,P代表多项式代表多项式x3-5x2+8,那么,那么 polyvalm(P,A)的含义是:的含义是:A*A*A-5*A*A+ 8*eye(size(A) l而而polyval(P,A)的含义是:的含义是:A.*A.*A-5*A.*A+ 8*ones(size(A) 例例3-2 仍以多项式仍以多项式x4+8x3-10为例,取为例,取 一个一个22矩阵为自变量分别用

5、矩阵为自变量分别用polyval和和 polyvalm计算该多项式的值计算该多项式的值. eg3-1-2 第3讲数值运算基础 3.roots 3.roots 求多项式的根求多项式的根 a=1 2 3;4 5 6;7 8 0;p=poly(a) p = 1.00 -6.00 -72.00 -27.00 %a的特征多项式系数的特征多项式系数 r=roots(p) r = 12.12 -5.73 -0.39 显然显然 r是矩阵是矩阵a的特征值的特征值 第3讲数值运算基础 当然我们可用当然我们可用poly命令将根返回为多项式形式命令将根返回为多项式形式 p2=poly(r) p2 = 1.00 -6.

6、00 -72.00 -27.00 matlab规定多项式系数向量用行向量规定多项式系数向量用行向量 表示,一组根用列向量表示。表示,一组根用列向量表示。 根根 多项式多项式 第3讲数值运算基础 例例3-3 用求特征值的方法解方程用求特征值的方法解方程 3x5-7x4+5x2+2x-18=0 eg3-3 命令如下:命令如下: p=3 -7 0 5 2 -18; A=compan(p) %p的伴随矩阵的伴随矩阵 x1=eig(A) %求求A的特征值的特征值 x2=roots(p) %直接求多项式直接求多项式p的零点的零点 即即 方程方程p(x)=0的解的解 多项式的根多项式的根 多项式系数构成多项

7、式系数构成 的伴随矩阵的特的伴随矩阵的特 征值征值 第3讲数值运算基础 4.conv多项式乘运算多项式乘运算 例例: a(x)=x2+2x+3; b(x)=4x2+5x+6; c = (x2+2x+3)(4x2+5x+6) a=1 2 3;b=4 5 6; c=conv(a,b)=conv(1 2 3,4 5 6) c = 4.00 13.00 28.00 27.00 18.00 p=poly2sym(c) p = 4*x4 + 13*x3 + 28*x2 + 27*x + 18 第3讲数值运算基础 5.deconv5.deconv多项式除运算多项式除运算 a=1 2 3; c = 4.00

8、13.00 28.00 27.00 18.00 d=deconv(c,a) d =4.00 5.00 6.00 d,r=deconv(c,a) 余数余数 c除除a后的整数后的整数 第3讲数值运算基础 6.6.多项式微积分多项式微积分 命令格式:命令格式: polyder(p): 求求p的微分的微分 polyder(a,b): 求多项式求多项式a,b乘积的微分乘积的微分 p,q=polyder(a,b):求求a/b的微分的微分, ,分子存入分子存入p,p,分母存入分母存入q q polyint(p): 求多项式求多项式p的积分的积分 例:例:a=1 2 3 4 5; poly2sym(a) an

9、s = x4 + 2*x3 + 3*x2 + 4*x + 5 b=polyder(a); poly2sym(b) ans =4*x3 + 6*x2 + 6*x + 4 c=polyint(b); poly2sym(c) ans=x4+2*x3+3*x2+4*x 第3讲数值运算基础 二、代数方程组求解二、代数方程组求解 对于方程组对于方程组ax=b,a 为为am n矩阵,有三种情况: 矩阵,有三种情况: 当当m=n时,此方程称为时,此方程称为“恰定恰定”方程方程组组 当当mn时,此方程称为时,此方程称为“超定超定”方程方程组组 当当mn时此时不存在唯一解时此时不存在唯一解 方程解方程解 (a a

10、)x=a b x=(a a)-1 a b 求逆法求逆法 x=ab matlab用用最小二乘法最小二乘法找一找一 个准确地基本解。个准确地基本解。 第3讲数值运算基础 例例: x1+2x2=1 2x1+3x2=2 3x1+4x2=3 a=1 2;2 3;3 4;b=1;2;3; 解解1 x=ab 解解2 x=inv(a a) a b x = x = 1.00 1.00 0 0.00 2 1 x x 3 2 1 = 43 32 21 a x = b 第3讲数值运算基础 3.3.欠定方程组的解欠定方程组的解 当方程数少于未知量个数时当方程数少于未知量个数时,即不定情况即不定情况,有有 无穷多个解存在

11、无穷多个解存在 matlab可求出两个解:可求出两个解: 用除法求的解用除法求的解x是具有最多零元素是具有最多零元素(即最少即最少 元素元素)的解;的解; 用求逆法的解是具有最小长度或范数的解,用求逆法的解是具有最小长度或范数的解, 这个解是基于伪逆这个解是基于伪逆pinv求得的。求得的。 第3讲数值运算基础 x1+2x2+3x3=1 2x1+3x2+4x3=2 a=1 2 3;2 3 4;b=1;2; x=ab x=pinv(a) b x = x = 1.00 0.83 0 0.33 0 -0.17 432 321 3 2 1 x x x 2 1 = a x = b 第3讲数值运算基础 三、

12、数据分析三、数据分析 max 各列最大值各列最大值 mean 各列平均值各列平均值 sum 各列求和各列求和 std 各列标准差各列标准差 var 各列方差各列方差 sort 各列递增排序各列递增排序 第3讲数值运算基础 y=max(X):返回向量:返回向量X的最大值存入的最大值存入y,如果,如果X中包含中包含 复数元素,则按模取最大值。复数元素,则按模取最大值。 1. 最大值和最小值最大值和最小值(max和和min) eg3-8 对矩阵对矩阵A来说:来说: max(A) 返回一个行向量,向量的第返回一个行向量,向量的第i个元素是矩阵个元素是矩阵A的第的第i 列上的最大值;列上的最大值; 求最

13、小值的函数求最小值的函数min有类似的用法有类似的用法 第3讲数值运算基础 数据序列求和与求积的函数是数据序列求和与求积的函数是sum和和prod: sum(A):返回一个行向量:返回一个行向量,第第i个元素是个元素是A的第的第i列元素和列元素和 prod(A):返回一个行向量:返回一个行向量,第第i个元素是个元素是A的第的第i列的元素乘积列的元素乘积 2. 求和与求积求和与求积 3. 平均值和中值平均值和中值 求数据序列平均值与中值的的函数是求数据序列平均值与中值的的函数是mean和和median: mean(A):返回一个行向量,第:返回一个行向量,第i个元素是个元素是A的第的第i列的算术

14、平均值列的算术平均值 median(A):返回一个行向量,第:返回一个行向量,第i个元素是个元素是A的第的第i列的中值列的中值 4. 累加和与累乘积累加和与累乘积 求解元素的累加和与累乘积的函数为求解元素的累加和与累乘积的函数为cumsum和和cumprod函数:函数: cumsum(A):返回一个矩阵,第:返回一个矩阵,第i列是列是A的第的第i列的累加和向量列的累加和向量 cumprod(A):返回一个矩阵,第:返回一个矩阵,第i列是列是A的第的第i列的累乘积向量列的累乘积向量 见见P58 例例3-19 第3讲数值运算基础 5. 排序与标准方差排序与标准方差 (1)求标准方差求标准方差 计算

15、数据序列的标准方差的函数计算数据序列的标准方差的函数std,std(A)返回一个行返回一个行 向量,它的各个元素便是矩阵向量,它的各个元素便是矩阵A各列的标准方差各列的标准方差 Y=std(A) 求各列元素的标准方差求各列元素的标准方差 (2). 排序排序 排序函数是排序函数是sort,sort(A)函数对矩阵函数对矩阵A的各列进行排序:的各列进行排序: Y=sort(A) 对对A的各列进行排序的各列进行排序 见见P58 例例3-19 第3讲数值运算基础 lDX=diff(X) 计算向量计算向量X的向前差分,的向前差分,DX(i)=X(i+1)- X(i),i=1,2,n-1。 l DX=di

16、ff(X,n) 计算向量计算向量X的的n阶向前差分,如阶向前差分,如 diff(X,2)=diff(diff(X)。 l DX=diff(A,n,dim) 计算矩阵计算矩阵A的的n阶差分,阶差分, dim=1时时(缺省状态缺省状态),按列计算差分;,按列计算差分;dim=2, 按行计算差分。按行计算差分。 6. 差分差分 eg3-9 第3讲数值运算基础 四、插值和拟合四、插值和拟合 插值的定义插值的定义是对某些集合给定的数据点之间是对某些集合给定的数据点之间 函数的估值方法。函数的估值方法。 当不能很快地求出所需中间点的函数时,插值是当不能很快地求出所需中间点的函数时,插值是 一个非常有价值的

17、工具。一个非常有价值的工具。 特点:特点: v 利用已知点确定未知点利用已知点确定未知点 v 粗糙粗糙 精确精确 v 集合大的集合大的 简化的简化的 matlab提供了一维、二维、提供了一维、二维、 三次样条等许多插值选择三次样条等许多插值选择 第3讲数值运算基础 插值函数插值函数interp1,其调用格式为:,其调用格式为: Yi=interp1(X,Y,Xi,method) 函数根据函数根据X,Y的值,计算函数在的值,计算函数在Xi处的值。处的值。X,Y 是两个等长的已知向量,分别描述采样点和样本值,是两个等长的已知向量,分别描述采样点和样本值, Xi是一个向量或标量,描述欲插值的点,是一

18、个向量或标量,描述欲插值的点,Yi是一个是一个 与与Xi等长的插值结果。等长的插值结果。 1 1、一维插值函数、一维插值函数 第3讲数值运算基础 method是插值方法,可用的方法有:是插值方法,可用的方法有: linear 默认方法,线性插值默认方法,线性插值 nearest 邻近点插值邻近点插值 spline 三次样条插值三次样条插值 cubic 三次插值,要求三次插值,要求x的值等距离的值等距离 MATLAB中有一个专门的中有一个专门的3次样条插值函数次样条插值函数 Yi=spline(X,Y,Xi),其功能及使用方法与函数,其功能及使用方法与函数 Yi=interp1(X,Y,Xi,s

19、pline)基本相同。基本相同。 注意:注意:1.所有插值方法均要求所有插值方法均要求x是单调的是单调的 2.Xi的取值范围不能超出的取值范围不能超出X的范围,否则会给出的范围,否则会给出“NaN”错错 误误 eg3-10 优缺点优缺点 见见P63 第3讲数值运算基础 例例3-11 某观测站测得某日某观测站测得某日6:00时至时至18:00时之间时之间 每隔每隔2小时的室内外温度小时的室内外温度(),用,用3次样条插值分别次样条插值分别 求得该日室内外求得该日室内外6:30至至17:30时之间每隔时之间每隔2小时各点小时各点 的近似温度的近似温度() 设时间变量设时间变量h为一行向量,温度变量

20、为一行向量,温度变量t为一个两列矩为一个两列矩 阵,其中第一列存放室内温度,第二列储存室外温度阵,其中第一列存放室内温度,第二列储存室外温度 命令如下:命令如下: h =6:2:18; t=18,20,22,25,30,28,24;15,19,24,28,34,32,30; XI =6.5:2:17.5 YI=interp1(h,t,XI,spline) %用用3次样条插值计算次样条插值计算 eg3-11 第3讲数值运算基础 2、二维数据插值、二维数据插值 二维插值函数二维插值函数interp2,其调用格式为:,其调用格式为: Zi=interp2(X,Y,Z,Xi,Yi,method) 例例

21、3-12 某实验对一根长某实验对一根长10米的钢轨进行热源的温度传米的钢轨进行热源的温度传 播测试,用播测试,用x表示测量点表示测量点0:2.5:10(米米),用,用h表示测量时间表示测量时间 0:30:60(秒秒),用,用T表示测试所得各点的温度表示测试所得各点的温度() ,用线性,用线性 插值求出在一分钟内每隔插值求出在一分钟内每隔20秒、钢轨每隔秒、钢轨每隔1米处的温度米处的温度TI。 命令如下:命令如下: x=0:2.5:10; h=0:30:60; T=95,14,0,0,0;88,48,32,12,6;67,64,54,48,41; xi=0:10; hi=0:20:60; TI=

22、interp2(x,h,T,xi,hi) eg3-12 另见另见P64 例例3-25 第3讲数值运算基础 3 3、拟合、拟合 polyfit函数可用来求得最小二乘拟合多项函数可用来求得最小二乘拟合多项 式的系数,其调用格式为:式的系数,其调用格式为: P=polyfit(x,y,n) 函数根据采样点函数根据采样点X和采样点函数值和采样点函数值Y,产生一个,产生一个n次多项次多项 式式P,其中其中x,y是两个等长的向量,是两个等长的向量,P是一个长度为是一个长度为n+1的多项式的多项式 系数向量。系数向量。 可用可用polyval函数按所得多项式计算给出点上的函数按所得多项式计算给出点上的 函数

23、近似值函数近似值 第3讲数值运算基础 例例3-13 求所给样本值的求所给样本值的3阶拟合多项式阶拟合多项式 x0=0:0.1:1; y0=-.447 1.978 3.11 5.25 5.02 4.66 4.01 4.58 3.45 5.35 9.22; p=polyfit(x0,y0,3) p = 56.6915 -87.1174 40.0070 -0.9043 xx=0:0.01:1;yy=polyval(p,xx); plot(xx,yy,-b,x0,y0,or) eg3-13 第3讲数值运算基础 小小 结结 本节介绍了本节介绍了matlab语言的数值运算语言的数值运算 功能,通过学习应该

24、掌握:功能,通过学习应该掌握: 多项式运算多项式运算 线性方程组线性方程组 数据分析数据分析 拟合和插值拟合和插值 第3讲数值运算基础 作作 业业 P70 P70 3.1 3.2 3.4 3.5 3.73.12 3.15 x1+x2-x3=3 x1+x2-x3=3 求解方程组求解方程组 2x1-x2+3x3=02x1-x2+3x3=0 -x1-2x2+x3=-5 -x1-2x2+x3=-5 第3讲数值运算基础 五、快速傅里叶变换五、快速傅里叶变换 一维离散傅立叶变换函数,其调用格式与功能为:一维离散傅立叶变换函数,其调用格式与功能为: (1) fft(X):返回向量:返回向量X的离散傅立叶变换

25、。设的离散傅立叶变换。设X的长度的长度(即元即元 素个数素个数)为为N,若,若N为为2的幂次,则为以的幂次,则为以2为基数的快速傅立为基数的快速傅立 叶变换,否则为运算速度很慢的非叶变换,否则为运算速度很慢的非2幂次的算法。对于矩幂次的算法。对于矩 阵阵X,fft(X)应用于矩阵的每一列。应用于矩阵的每一列。 (2) fft(X,N):计算:计算N点离散傅立叶变换。它限定向量的长度点离散傅立叶变换。它限定向量的长度 为为N,若,若X的长度小于的长度小于N,则不足部分补上零;若大于,则不足部分补上零;若大于N, 则删去超出则删去超出N的那些元素。对于矩阵的那些元素。对于矩阵X,它同样应用于矩,它

26、同样应用于矩 阵的每一列,只是限定了向量的长度为阵的每一列,只是限定了向量的长度为N。 (3) fft(X,dim)或或fft(X,N,dim):这是对于矩阵而言的函数调:这是对于矩阵而言的函数调 用格式,前者的功能与用格式,前者的功能与fft(X)基本相同,而后者则与基本相同,而后者则与 fft(X,N)基本相同。只是当参数基本相同。只是当参数dim=1时,该函数作用于时,该函数作用于X 的每一列;当的每一列;当dim=2时,则作用于时,则作用于X的每一行。的每一行。 第3讲数值运算基础 五、快速傅里叶变换五、快速傅里叶变换 值得一提的是,当已知给出的样本数值得一提的是,当已知给出的样本数N0不是不是2的的 幂次时,可以取一个幂次时,可以取一个N使它大于使它大于N0且是且是2的幂次,然的幂次,然 后利用函数格式后利用函数格式fft(X,N)或或fft(X,N,dim)便可进行快便可进行快 速傅立叶变换。这样,计算速度将大大加快。速傅立叶变换。这样,计算速度将大大加快。 相应地,一维离散傅立叶逆变换函数是相应地,一维

温馨提示

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

评论

0/150

提交评论