第6章MATLAB数值计算_第1页
第6章MATLAB数值计算_第2页
第6章MATLAB数值计算_第3页
第6章MATLAB数值计算_第4页
第6章MATLAB数值计算_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、1/30第第6章章 MATLAB数值计算数值计算6.1 数据处理与多项式计算数据处理与多项式计算6.2 数值微积分数值微积分(略略)6.3 离散傅立叶变换离散傅立叶变换(略略)6.4 线性方程组求解线性方程组求解6.5 非线性方程与最优化问题求解非线性方程与最优化问题求解(略略)6.6 常微分方程的数值求解常微分方程的数值求解(略略)6.7 稀疏矩阵稀疏矩阵(略略)2/306.1 数据处理与多项式计算数据处理与多项式计算 6.1.1 数据统计与分析数据统计与分析1. 求矩阵最大元素和最小元素求矩阵最大元素和最小元素MATLAB提供的求数据序列的最大值和最小提供的求数据序列的最大值和最小值的函数

2、分别为值的函数分别为max和和min,两个函数的调,两个函数的调用格式和操作过程类似。用格式和操作过程类似。(1)求向量的最大值和最小值)求向量的最大值和最小值 y=max(X):返回向量:返回向量X的最大值存入的最大值存入y,如,如果果X中包含复数元素,则按模取最大值。中包含复数元素,则按模取最大值。3/30 y,I=max(X):返回向量:返回向量X的最大值存入的最大值存入y,最大,最大值的序号存入值的序号存入I,如果,如果X中包含复数元素,则按模中包含复数元素,则按模取最大值。取最大值。求向量求向量X的最小值的函数是的最小值的函数是min(X),用法和,用法和max(X)完全相同。完全相

3、同。例例 求向量求向量x的最大值。的最大值。命令如下:命令如下:x=-43,72,9,16,23,47;y=max(x) %求向量求向量x中的最大值中的最大值y,l=max(x) %求向量求向量x中的最大值及其该元素的位置中的最大值及其该元素的位置4/30(2)求矩阵的最大值和最小值)求矩阵的最大值和最小值求矩阵求矩阵A的最大值的函数有的最大值的函数有3种调用格式,分种调用格式,分别是:别是: max(A):返回一个行向量,向量的第:返回一个行向量,向量的第i个元个元素是矩阵素是矩阵A的第的第i列上的最大值。列上的最大值。 Y,U=max(A):返回行向量:返回行向量Y和和U,Y向量向量记录记

4、录A的每列的最大值,的每列的最大值,U向量记录每列最向量记录每列最大值的行号。大值的行号。5/30 max(A,dim):dim取取1或或2。dim取取1时,时,该函数和该函数和max(A)完全相同;完全相同;dim取取2时,该时,该函数返回一个列向量,其第函数返回一个列向量,其第i个元素是个元素是A矩矩阵的第阵的第i行上的最大值。行上的最大值。 求最小值的函数是求最小值的函数是min,其用法和,其用法和max完完全相同。全相同。例例6.1 分别矩阵分别矩阵A中各列和各行元素中的最大中各列和各行元素中的最大值,并求整个矩阵的最大值和最小值。值,并求整个矩阵的最大值和最小值。6/301 35 6

5、7 82 56 32 3 57 82 55 6 3101AA=13,-56,78;25,63,-235;78,25,563;1,0,-1;max(A,2) %求每行最大元素min(A,2) %求每行最小元素max(A) %求每列最大元素min(A) %求每列最小元素max(max(A) %求整个矩阵的最大元素。也可使用命令:max(A(:)min(min(A) %求整个矩阵的最小元素。也可使用命令:min(A(:)7/30(3)两个向量或矩阵对应元素的比较)两个向量或矩阵对应元素的比较 函数函数max和和min还能对两个同型的向量或矩阵进行比较,还能对两个同型的向量或矩阵进行比较,调用格式为:

6、调用格式为: U=max(A,B):A,B是两个同型的向量或矩阵,结果是两个同型的向量或矩阵,结果U是与是与A,B同型的向量或矩阵,同型的向量或矩阵,U的每个元素等于的每个元素等于A,B对应元素的对应元素的较大者。较大者。 U=max(A,n):n是一个标量,结果是一个标量,结果U是与是与A同型的向量或同型的向量或矩阵,矩阵,U的每个元素等于的每个元素等于A对应元素和对应元素和n中的较大者。中的较大者。 min函数的用法和函数的用法和max完全相同。完全相同。 8/302. 求矩阵的平均值和中值求矩阵的平均值和中值求数据序列平均值的函数是求数据序列平均值的函数是mean,求数据序列中值的函数,

7、求数据序列中值的函数是是median。两个函数的调用格式为:。两个函数的调用格式为:mean(X):返回向量:返回向量X的算术平均值。的算术平均值。median(X):返回向量:返回向量X的中值。的中值。mean(A):返回一个行向量,其第:返回一个行向量,其第i个元素是个元素是A的第的第i列的算术列的算术平均值。平均值。median(A):返回一个行向量,其第:返回一个行向量,其第i个元素是个元素是A的第的第i列的中列的中值。值。mean(A,dim):当:当dim为为1时,该函数等同于时,该函数等同于mean(A);当;当dim为为2时,返回一个列向量,其第时,返回一个列向量,其第i个元素

8、是个元素是A的第的第i行的算术行的算术平均值。平均值。median(A,dim):当:当dim为为1时,该函数等同于时,该函数等同于median(A);当;当dim为为2时,返回一个列向量,其第时,返回一个列向量,其第i个元素是个元素是A的第的第i行的行的中值。中值。9/303. 矩阵元素求和与求积矩阵元素求和与求积数据序列求和与求积的函数是数据序列求和与求积的函数是sum和和prod,其使用方法类似。设其使用方法类似。设X是一个向量,是一个向量,A是一是一个矩阵,函数的调用格式为:个矩阵,函数的调用格式为:sum(X):返回向量:返回向量X各元素的和。各元素的和。prod(X):返回向量:返

9、回向量X各元素的乘积。各元素的乘积。sum(A):返回一个行向量,其第:返回一个行向量,其第i个元素是个元素是A的第的第i列的元素和。列的元素和。10/30prod(A):返回一个行向量,其第:返回一个行向量,其第i个元素是个元素是A的第的第i列的元素乘积。列的元素乘积。sum(A,dim):当:当dim为为1时,该函数等同于时,该函数等同于sum(A);当;当dim为为2时,返回一个列向量,时,返回一个列向量,其第其第i个元素是个元素是A的第的第i行的各元素之和。行的各元素之和。prod(A,dim):当:当dim为为1时,该函数等同于时,该函数等同于prod(A);当;当dim为为2时,返

10、回一个列向量,时,返回一个列向量,其第其第i个元素是个元素是A的第的第i行的各元素乘积。行的各元素乘积。11/304. 矩阵元素累加和与累乘积矩阵元素累加和与累乘积在在MATLAB中,使用中,使用cumsum和和cumprod函数能方便地求得函数能方便地求得向量和矩阵元素的累加和与累乘积向量,函数的调用格式向量和矩阵元素的累加和与累乘积向量,函数的调用格式为:为:cumsum(X):返回向量:返回向量X累加和向量。累加和向量。cumprod(X):返回向量:返回向量X累乘积向量。累乘积向量。cumsum(A):返回一个矩阵,其第:返回一个矩阵,其第i列是列是A的第的第i列的累加和向列的累加和向

11、量。量。cumprod(A):返回一个矩阵,其第:返回一个矩阵,其第i列是列是A的第的第i列的累乘积列的累乘积向量。向量。cumsum(A,dim):当:当dim为为1时,该函数等同于时,该函数等同于cumsum(A);当当dim为为2时,返回一个矩阵,其第时,返回一个矩阵,其第i行是行是A的第的第i行的累加行的累加和向量。和向量。cumprod(A,dim):当:当dim为为1时,该函数等同于时,该函数等同于cumprod(A);当当dim为为2时,返回一个向量,其第时,返回一个向量,其第i行是行是A的第的第i行的累乘行的累乘积向量。积向量。12/307. 排序排序MATLAB中对向量中对向

12、量X是排序函数是是排序函数是sort(X),函数返,函数返回一个对回一个对X中的元素按升序排列的新向量。中的元素按升序排列的新向量。sort函数也可以对矩阵函数也可以对矩阵A的各列或各行重新排序,其的各列或各行重新排序,其调用格式为:调用格式为:Y,I=sort(A,dim)其中其中dim指明对指明对A的列还是行进行排序。若的列还是行进行排序。若dim=1,则按列排;若则按列排;若dim=2,则按行排。,则按行排。Y是排序后的矩是排序后的矩阵,而阵,而I记录记录Y中的元素在中的元素在A中位置。中位置。Note:不同版本此函数可选参数不同。13/30例例6.6 对下列矩阵做各种排序。A=1,-8

13、,5;4,12,6;13,7,-13;sort(A) %对A的每列按升序排序-sort(-A,2) %对A的每行按降序排序 X,I=sort(A) %对A按列排序,并将每个元素所在行号送矩阵I137136124581AZhou yi14/306.1.4 多项式计算多项式计算1. 多项式的四则运算多项式的四则运算(1)多项式的加减运算)多项式的加减运算(2)多项式乘法运算)多项式乘法运算函数函数conv(P1,P2)用于求多项式用于求多项式P1和和P2的乘积。的乘积。这里,这里,P1、P2是两个多项式系数向量。是两个多项式系数向量。note:非等高次多项式相加减时缺项补零。15/30(3)多项式

14、除法)多项式除法函数函数Q,r=deconv(P1,P2)用于对多项式用于对多项式P1和和P2作除作除法运算。其中法运算。其中Q返回多项式返回多项式P1除以除以P2的商式,的商式,r返返回回P1除以除以P2的余式。这里,的余式。这里,Q和和r仍是多项式系数仍是多项式系数向量。向量。deconv是是conv的逆函数,即有的逆函数,即有P1=conv(P2,Q)+r。16/302. 多项式的导函数多项式的导函数对多项式求导数的函数是:对多项式求导数的函数是:p=polyder(P):求多项式:求多项式P的导函数的导函数p=polyder(P,Q):求:求PQ的导函数的导函数p,q=polyder(

15、P,Q):求:求P/Q的导函数,导函数的分的导函数,导函数的分子存入子存入p,分母存入,分母存入q。上述函数中,参数上述函数中,参数P,Q是多项式的向量表示,结果是多项式的向量表示,结果p,q也是多项式的向量表示。也是多项式的向量表示。17/303. 多项式求值多项式求值MATLAB提供了两种求多项式值的函数:提供了两种求多项式值的函数:polyval与与polyvalm,它们的输入参数均为多项式系数向量,它们的输入参数均为多项式系数向量P和自变量和自变量x。两者的区别在于前者是代数多项式求。两者的区别在于前者是代数多项式求值,而后者是矩阵多项式求值。值,而后者是矩阵多项式求值。18/30(1

16、)代数多项式求值代数多项式求值polyval函数用来求代数多项式的值,其调用函数用来求代数多项式的值,其调用格式为:格式为:Y=polyval(P,x)若若x为一数值,则求多项式在该点的值;若为一数值,则求多项式在该点的值;若x为向量或矩阵,则对向量或矩阵中的每个为向量或矩阵,则对向量或矩阵中的每个元素求其多项式的值。元素求其多项式的值。例例6.14 已知多项式已知多项式x4+8x3-10,分别取,分别取x=1.2和和一个一个23矩阵为自变量计算该多项式的值。矩阵为自变量计算该多项式的值。A=1,8,0,0,-10; % 4次多项式系数x=1.2; % 取自变量为一数值y1=polyval(A

17、,x)x=-1,1.2,-1.4;2,-1.8,1.6 % 给出一个矩阵xy2=polyval(A,x) % 分别计算矩阵x中各元素为自变量的多项式之值19/304. 多项式求根多项式求根n次多项式具有次多项式具有n个根,当然这些根可能是实个根,当然这些根可能是实根,也可能含有若干对共轭复根。根,也可能含有若干对共轭复根。MATLAB提供的提供的roots函数用于求多项式的函数用于求多项式的全部根,其调用格式为:全部根,其调用格式为:x=roots(P)其中其中P为多项式的系数向量,求得的根赋给向为多项式的系数向量,求得的根赋给向量量x,即,即x(1),x(2),x(n)分别代表多项式的分别代

18、表多项式的n个根。个根。20/30例例6.16 求多项式求多项式x4+8x3-10的根。的根。命令如下:命令如下:A=1,8,0,0,-10;x=roots(A)若已知多项式的全部根,则可以用若已知多项式的全部根,则可以用poly函数建立起函数建立起该多项式,其调用格式为:该多项式,其调用格式为:P=poly(x)若若x为具有为具有n个元素的向量,则个元素的向量,则poly(x)建立以建立以x为其为其根的多项式,且将该多项式的系数赋给向量根的多项式,且将该多项式的系数赋给向量P。Zhou san zhou si21/30例例6.17 已知已知(1) 计算计算f(x)=0 的全部根。的全部根。(

19、2) 由方程由方程f(x)=0的根构造一个多项式的根构造一个多项式g(x),并,并与与f(x)进行对比。进行对比。命令如下:命令如下:P=3,0,4,-5,-7.2,5;%缺项补零缺项补零X=roots(P) %求方程求方程f(x)=0的根的根G=poly(X) %求多项式求多项式g(x)52 . 7543)(235xxxxxf22/306.4 线性方程组求解线性方程组求解6.4.1 直接解法直接解法1利用左除运算符的直接解法利用左除运算符的直接解法对于线性方程组对于线性方程组Ax=b,可以利用左除运算符,可以利用左除运算符“”求解:求解: x=Ab23/30例例6.24 用直接解法求解下列线

20、性方程组。用直接解法求解下列线性方程组。命令如下:命令如下:A=2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4;b=13,-9,6,0;x=Ab04662975135243214324214321xxxxxxxxxxxxxx24/302利用矩阵的分解求解线性方程组利用矩阵的分解求解线性方程组(略略)矩阵分解是指根据一定的原理用某种算法将一个矩阵分解成矩阵分解是指根据一定的原理用某种算法将一个矩阵分解成若干个矩阵的乘积。常见的矩阵分解有若干个矩阵的乘积。常见的矩阵分解有LU分解、分解、QR分解、分解、Cholesky分解,以及分解,以及Schur分解、分解、Hessen

21、berg分解、奇异分解、奇异分解等。分解等。25/306.4.3 求线性方程组的通解求线性方程组的通解线性方程组的求解分为两类:一类是求方程组的唯线性方程组的求解分为两类:一类是求方程组的唯一解即特解,另一类是求方程组的无穷解即通解。一解即特解,另一类是求方程组的无穷解即通解。这里对线性方程组这里对线性方程组Ax=b的求解理论作一个归纳。的求解理论作一个归纳。(1)当系数矩阵当系数矩阵A是一个满秩方阵时,方程是一个满秩方阵时,方程Ax=b称为称为恰定方程,方程有惟一解恰定方程,方程有惟一解x=A-1b,这是最基本的,这是最基本的一种情况。一般用一种情况。一般用x=Ab求解速度更快。求解速度更快

22、。(2)当方程组右端向量当方程组右端向量b=0时,方程称为齐次方程组。时,方程称为齐次方程组。齐次方程组总有零解,因此称解齐次方程组总有零解,因此称解x=0为平凡解。为平凡解。当系数矩阵当系数矩阵A的秩小于的秩小于n(n为方程组中未知变量的为方程组中未知变量的个数个数)时,齐次方程组有无穷多个非平凡解,其通时,齐次方程组有无穷多个非平凡解,其通解中包含解中包含n-rank(A)个线性无关的解向量,用个线性无关的解向量,用MATLAB的函数的函数null(A,r)可求得基础解系。可求得基础解系。26/30(3)当方程组右端向量当方程组右端向量b0时,系数矩阵的秩时,系数矩阵的秩rank(A)与其增广矩阵的秩与其增广矩阵的秩rank(A,b)是判断其是否有解是判断其是否有解的基本条件:的基本条件:当当rank(A)=rank(A,b)=n时,方程组有惟一解:时,方程组有惟一解:x=Ab 。当当rank(A)=rank(A,b)n时,方程组有无穷多个时,方程组有无穷多个解,其通解解,其通解=方程组的一个特解方程组的一个特解+对应的齐次方程对应的齐次方程组组Ax=0的通解。可以用的通解。可以用Ab求得方程组的一

温馨提示

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

评论

0/150

提交评论