《MATLAB语言基础ch6数值计算.ppt》由会员分享,可在线阅读,更多相关《MATLAB语言基础ch6数值计算.ppt(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、ch6 数值计算数值计算5.1 数值微积分数值微积分5.1.1 近似数值极限和导数近似数值极限和导数5.1.2 数值求和与近似数值积分数值求和与近似数值积分5.2 矩阵和代数方程矩阵和代数方程5.2.1 矩阵运算和特征参数矩阵运算和特征参数5.2.2 矩阵的变换和特征值分解矩阵的变换和特征值分解5.2.3 线性方程的解线性方程的解5.2.4 一般代数方程的解一般代数方程的解5.1.1 近似数值极限和导数近似数值极限和导数 (1)有限精度浮点的离散本质)有限精度浮点的离散本质 (2)自变量的增量选取一定要大于原数据)自变量的增量选取一定要大于原数据相对精度的相对精度的10倍以上倍以上 (3)尽量
2、使用)尽量使用Matlab提供的现成指令提供的现成指令Dx=diff(X)求差分求差分FX=gradient(F)求一元函数梯度求一元函数梯度FX,FY=gradient(F)求二元函数梯度求二元函数梯度5.1.2 数值求和与近似数值积分数值求和与近似数值积分Sx=sum(X)沿列方向求和沿列方向求和Scs=cumsum(X)沿列方向求累计和沿列方向求累计和St=trapz(x,y)采用梯形法沿列方向求函数采用梯形法沿列方向求函数y关于关于x的的积分积分Sct=cumtrapz(x,y)采用梯形法沿列方向求函数采用梯形法沿列方向求函数y关关于于x的累计积分的累计积分5.2.1 矩阵运算和特征参
3、数矩阵运算和特征参数 1.矩阵运算矩阵运算 2.矩阵的标量特征参数矩阵的标量特征参数 秩秩 rank(A)迹迹 trace(A)行列式行列式 det(A)5.2.2 矩阵的变换和特征值分解矩阵的变换和特征值分解 R,ci=rref(A)借助初等变换把借助初等变换把A变换成行阶梯矩阵变换成行阶梯矩阵R X=null(A)A矩阵零空间的全部正交基,满足矩阵零空间的全部正交基,满足AX=0 Z=orth(A)A矩阵空间的全部正交基,满足矩阵空间的全部正交基,满足span(Z)=span(A)V,D=eig(A)A矩阵的特征值、特征向量分解,使矩阵的特征值、特征向量分解,使AV=AD5.2.3 线性方
4、程的解线性方程的解1 直接解法直接解法 对于线性方程组对于线性方程组Ax=b,可以利用左除运,可以利用左除运算符算符“”求解:求解:x=Ab例例1 用直接解法求解下列线性方程组。用直接解法求解下列线性方程组。命令如下:命令如下:A=2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4;b=13,-9,6,0;x=Ab数据分析数据分析1、查取最大值、查取最大值MAX函数的命令格式有:Y,I=max(X):将max(X)返回矩阵X的各列中的最大元素值及其该元素的位置赋予行向量Y与I;当X为向量时,则Y与I为单变量。Y,I=max(X,DIM):按 数 组 X的 第DIM维的方向
5、查取其最大的元素值及其该元素的位置赋予向量Y与I。例例查找下面数列查找下面数列x的最大值。的最大值。x=3 5 9 6 1 8%产生数列产生数列xx=3 5 9 6 1 8y=max(x)%查出数列查出数列x中的最大值赋予中的最大值赋予yy=9y,l=max(x)%查查出出数数列列x中中的的最最大大值值及及其其该该元元素素的的位位置置赋予赋予y,ly=9l=3例例分分别别查查找找下下面面34的的二二维维数数组组x中中各列和各行元素中的最大值。各列和各行元素中的最大值。x=1 8 4 2;9 6 2 5;3 6 7 1%产生二维数组产生二维数组xx=1 8 4 2 9 6 2 5 3 6 7 1
6、y=max(x)%查查出出二二维维数数组组x中中各各列列元元素素的最大值产生赋予行向量的最大值产生赋予行向量yy=9 8 7 5y,l=max(x)%查查出出二二维维数数组组x中中各各列列元元素素的的最最大值及其这些大值及其这些%元素的行下标赋予元素的行下标赋予y,ly=9 8 7 5l=2 1 3 2y,l=max(x,1)%本本命命令令的的执执行行结结果果与与上上面面命命令完全相同令完全相同y=9 8 7 5l=2 1 3 2y,l=max(x,2)%由由于于本本命命令令中中DIM=2,故故查查找操作在各行中进行找操作在各行中进行y=8 9 7l=2 1 3例例试试取取下下面面两两个个23
7、的的二二维维数数组组x、y所所有有同同一一位置上的元素值大者构成一个新矩阵位置上的元素值大者构成一个新矩阵p。x=4 5 6;1 4 8%产生二维数组产生二维数组xx=4 5 6 1 4 8y=1 7 5;4 5 7%产生二维数组产生二维数组yy=1 7 5 4 5 7p=max(x,y)%在在x,y同同一一位位置置上上的的两两个个元元素素中查找出最大值中查找出最大值%赋赋予予与与x,y同同样样大大小小的的二二维维数数组组pp=4 7 6 4 5 82、查取最小值、查取最小值MIN函函数数用用来来查查取取数数据据序序列列的的最最小小值值。它它的的用用法法与与命命令令格格式式与与MAX函函数数完
8、完全全一一样,所不同的是执行的结果是最小值。样,所不同的是执行的结果是最小值。3、求中值、求中值所谓中值,是指在数据序列中其值的大所谓中值,是指在数据序列中其值的大小恰好在中间。例如,数据序列小恰好在中间。例如,数据序列9,-2,5,7,12的中值为的中值为7。如果为偶数个时,则中值等于中间的两如果为偶数个时,则中值等于中间的两项之平均值。项之平均值。MEDIAN函数调用的命令格式有:函数调用的命令格式有:Y=median(X):将将median(X)返返回回矩矩阵阵X各各列列元元素的中值赋予行向量素的中值赋予行向量Y。若。若X为向量,则为向量,则Y为单变量。为单变量。Y=median(X,D
9、IM):按按数数组组X的的第第DIM维维方方向向的的元元素素求求其其中中值值赋赋予予向向量量Y。若若DIM=1,为为按按列列操操作作;若若DIM=2,为为按按行行操操作作。若若X为为二二维维数数组组,Y为为一一个个向量;若向量;若X为一维数组,则为一维数组,则Y为单变量。为单变量。例例试分别求下面数列x1与x2的中值。x1=9-2 5 7 12;%奇数个元素奇数个元素y1=median(x)y1=7x2=9-2 5 6 7 12;%偶数个元素偶数个元素y2=median(x)y2=6.5000例例对下面二维数组对下面二维数组x,试从不同维方向求出其中值。,试从不同维方向求出其中值。x=1 8
10、4 2;9 6 2 5;3 6 7 1%产生一个二维数组产生一个二维数组xx=1 8 4 2 9 6 2 5 3 6 7 1y0=median(x)%按列操作按列操作y0=3 6 4 2y1=median(x,1)%此此时时DIM=1,故故按按列列操操作作,结结果果y1为为行行向量向量y1=3 6 4 2y2=median(x,2)%此此时时DIM=2,故故按按行行操操作作,结结果果y2为为列列向量向量y2=3.0000 5.5000 4.50004、求和、求和命令格式有:命令格式有:Y=sum(X):将将sum(X)返返回回矩矩阵阵X各各列列元元素素之之和和赋赋予行向量予行向量Y;若;若X为
11、向量,则为向量,则Y为单变量。为单变量。Y=sum(X,DIM):按按数数组组X的的第第DIM维维的的方方向向的的元元素素求求其其和和赋赋予予Y。若若DIM=1,为为按按列列操操作作;若若DIM=2,为为按按行行操操作作。若若X为为二二维维数数组组,Y为为一一个个向向量;若量;若X为一维数组,则为一维数组,则Y为单变量。为单变量。例如:例如:x=4 5 6;1 4 8x=4 5 6 1 4 8y=sum(x,1)y=5 9 14y=sum(x,2)y=15 135、求平均值、求平均值MEAN函数调用的命令格式有:函数调用的命令格式有:Y=mean(X):将将mean(X)返返回回矩矩阵阵X各各
12、列列元元素素之之的平均值赋予行向量的平均值赋予行向量Y。若。若X为向量,则为向量,则Y为单变量。为单变量。Y=mean(X,DIM):按按数数组组X的的第第DIM维维的的方方向向的的元元素素求求其其平平均均值值赋赋予予向向量量Y。若若DIM=1,为为按按列列操操作作;若若DIM=2,为为按按行行操操作作。若若X为为二二维维数数组组,Y为为一个向量;若一个向量;若X为一维数组,则为一维数组,则Y为单变量。为单变量。例如:x=4 5 6;1 4 8;y1=mean(x,1)y1=2.5000 4.5000 7.0000y2=mean(x,2)y2=5.0000 4.33336、求积、求积命令格式有
13、:命令格式有:Y=prod(X):将将prod(X)返返回回矩矩阵阵X各各列列元元素素之之积积赋予行向量赋予行向量Y。若。若X为向量,则为向量,则Y为单变量。为单变量。Y=prod(X,DIM):按按数数组组X的的第第DIM维维的的方方向向的的元元素素求求其其积积赋赋予予向向量量Y。若若DIM=1,为为按按列列操操作作;若若DIM=2,为为按按行行操操作作。若若X为为二二维维数数组组,Y为为一一个个向量;若向量;若X为一维数组,则为一维数组,则Y为单变量。为单变量。例如:例如:x=4 5 6;1 4 8;y1=prod(x,1)y1=4 20 48y2=prod(x,2)y2=120 327、
14、求累计和、累积积求累计和、累积积在在MATLAB中,使用中,使用cumsum和和cumprod函数能方便地函数能方便地求得向量和矩阵元素的累加和与累乘积向量,函数的求得向量和矩阵元素的累加和与累乘积向量,函数的调用格式为:调用格式为:cumsum(X):返回向量:返回向量X累加和向量。累加和向量。cumprod(X):返回向量:返回向量X累乘积向量。累乘积向量。cumsum(A):返回一个矩阵,其第:返回一个矩阵,其第i列是列是A的第的第i列的累加列的累加和向量。和向量。cumprod(A):返回一个矩阵,其第:返回一个矩阵,其第i列是列是A的第的第i列的累列的累乘积向量。乘积向量。cumsu
15、m(A,dim):当:当dim为为1时,该函数等同于时,该函数等同于cumsum(A);当;当dim为为2时,返回一个矩阵,其第时,返回一个矩阵,其第i行行是是A的第的第i行的累加和向量。行的累加和向量。cumprod(A,dim):当:当dim为为1时,该函数等同于时,该函数等同于cumprod(A);当;当dim为为2时,返回一个向量,其第时,返回一个向量,其第i行行是是A的第的第i行的累乘积向量。行的累乘积向量。8、标准方差与相关系数标准方差与相关系数1求标准方差求标准方差在在MATLAB中,提供了计算数据序列的标准方中,提供了计算数据序列的标准方差的函数差的函数std。对于向量。对于向
16、量X,std(X)返回一个标返回一个标准方差。对于矩阵准方差。对于矩阵A,std(A)返回一个行向量,返回一个行向量,它的各个元素便是矩阵它的各个元素便是矩阵A各列或各行的标准方各列或各行的标准方差。差。std函数的一般调用格式为:函数的一般调用格式为:Y=std(A,flag,dim)其中其中dim取取1或或2。当。当dim=1时,求各列元素的标时,求各列元素的标准方差;当准方差;当dim=2时,则求各行元素的标准方时,则求各行元素的标准方差。差。flag取取0或或1,当,当flag=0时,按时,按1所列公式所列公式计算标准方差,当计算标准方差,当flag=1时,按时,按2所列公式计所列公式
17、计算标准方差。缺省算标准方差。缺省flag=0,dim=1。2相关系数相关系数MATLAB提供了提供了corrcoef函数,可以求出数据的函数,可以求出数据的相关系数矩阵。相关系数矩阵。corrcoef函数的调用格式为:函数的调用格式为:corrcoef(X):返回从矩阵:返回从矩阵X形成的一个相关系数形成的一个相关系数矩阵。此相关系数矩阵的大小与矩阵矩阵。此相关系数矩阵的大小与矩阵X一样。一样。它把矩阵它把矩阵X的每列作为一个变量,然后求它们的每列作为一个变量,然后求它们的相关系数。的相关系数。corrcoef(X,Y):在这里,:在这里,X,Y是向量,它们与是向量,它们与corrcoef(
18、X,Y)的作用一样。的作用一样。例生成满足正态分布的例生成满足正态分布的100005随机矩阵,随机矩阵,然后求各列元素的均值和标准方差,再然后求各列元素的均值和标准方差,再求这求这5列随机数据的相关系数矩阵。列随机数据的相关系数矩阵。命令如下:命令如下:X=randn(10000,5);M=mean(X)D=std(X)R=corrcoef(X)9、排序排序MATLAB中对向量中对向量X是排序函数是是排序函数是sort(X),函,函数返回一个对数返回一个对X中的元素按升序排列的新向量。中的元素按升序排列的新向量。sort函数也可以对矩阵函数也可以对矩阵A的各列或各行重新排序,的各列或各行重新排序,其调用格式为:其调用格式为:Y,I=sort(A,dim)其中其中dim指明对指明对A的列还是行进行排序。若的列还是行进行排序。若dim=1,则按列排;若,则按列排;若dim=2,则按行排。,则按行排。Y是排序后的矩阵,而是排序后的矩阵,而I记录记录Y中的元素在中的元素在A中位中位置。置。