《MATLAB课程PPT第五章.ppt》由会员分享,可在线阅读,更多相关《MATLAB课程PPT第五章.ppt(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 第五章第五章 数据分析数据分析5.1 5.1 线性方程组线性方程组 5.1.1 5.1.1 线性方程求解线性方程求解 在矩阵的表示方法中,线性方程的求解可以表述为:给定两个在矩阵的表示方法中,线性方程的求解可以表述为:给定两个矩阵矩阵A A和和B B,求,求 X X 的唯一解使得:的唯一解使得:AX=BAX=B 或或 XA=BXA=B X=AB:X=AB:表示求矩阵方程表示求矩阵方程AX=BAX=B的解的解 X=B/A:X=B/A:表示求矩阵方程表示求矩阵方程XA=BXA=B的解的解 (B/A)=(AB)(B/A)=(AB)矩阵矩阵A A并不要求是方阵,若并不要求是方阵,若A A是是m*nm
2、*n的矩阵,则存在以的矩阵,则存在以下三种情况:下三种情况:1)m=n:1)m=n:适定方程组,寻求精确解;适定方程组,寻求精确解;2)mn:2)mn:超定方程组,寻求最小二乘解超定方程组,寻求最小二乘解;3)mn:3)mn:不定方程组,寻求基本解不定方程组,寻求基本解.对于不同的情况,左除算子采用不同的算法求解。对于不同的情况,左除算子采用不同的算法求解。5.1.1 5.1.1 线性方程求解线性方程求解5.1.1 5.1.1 线性方程求解线性方程求解 1 1、适定方程组:、适定方程组:一般形式的线性方程组为:一般形式的线性方程组为:Ax=b Ax=b 或或 AX=B AX=B 求解命令是:求
3、解命令是:x=Ab X=AB x=Ab X=AB 2 2、超定方程组:、超定方程组:对于超定方程,在对于超定方程,在MATLABMATLAB中,利用左除命令寻求它的最小二乘解,中,利用左除命令寻求它的最小二乘解,其调用格式是:其调用格式是:x=Ab x=Ab A*x A*x并不是精确的等于并不是精确的等于b b,但它们的差值小于原始数据的测量误差。,但它们的差值小于原始数据的测量误差。3 3、不定方程组:、不定方程组:解不唯一,解不唯一,MATLAB MATLAB 将寻求一个基本解,其中至多只有将寻求一个基本解,其中至多只有m m个非零元个非零元素。素。5.1.2 5.1.2 矩阵分解矩阵分解
4、MATLABMATLAB中几种常用的矩阵分解方法,相关的函数见下表:中几种常用的矩阵分解方法,相关的函数见下表:命命 令令功功 能能 说说 明明cholcholesky分分解解对称正定矩阵的分解,用于求解方程组对称正定矩阵的分解,用于求解方程组lu矩阵矩阵LU分解分解将矩阵采用将矩阵采用LU分解,直接求解线性方程组分解,直接求解线性方程组qr正交三角分正交三角分解解将矩阵分解为正交矩阵或酉矩阵和上三角将矩阵分解为正交矩阵或酉矩阵和上三角矩阵矩阵5.1.2 5.1.2 矩阵分解矩阵分解 Cholesky Cholesky 分解的函数分解的函数 chol chol 的调用格式为:的调用格式为:R=
5、chol(X):R=chol(X):X X是对称正定矩阵,是对称正定矩阵,R R是上三角阵是上三角阵(对角线为正对角线为正),使得,使得 R*R=X R*R=X,若,若X X是非正定的,将给出错误信息。是非正定的,将给出错误信息。R,p=chol(X):R,p=chol(X):不会给出错误信息,若不会给出错误信息,若X X是正定的,是正定的,p p等于等于0 0,R R同上;同上;若若X X不是正定的,则不是正定的,则p p为正整数,为正整数,R R是上三角矩阵,它的阶数为是上三角矩阵,它的阶数为q=p-1q=p-1,Cholesky Cholesky 分解允许对线性方程组分解允许对线性方程组
6、 A*x=bA*x=b 进行如下替换:进行如下替换:R*R*x=b R*R*x=b 由于左除算子可以处理三角矩阵,因此可以得出:由于左除算子可以处理三角矩阵,因此可以得出:x=R(Rb)x=R(Rb)一、一、CholeskyCholesky分解分解5.1.2 5.1.2 矩阵分解矩阵分解二、二、LU LU分解分解 函数函数lu lu 的调用格式:的调用格式:L,U=lu(A):L,U=lu(A):U U是上三角矩阵,是上三角矩阵,L L是是“心理上心理上”的下三角阵,实际的下三角阵,实际上,上,它是下三角阵和置换矩阵的乘积,结果使得:它是下三角阵和置换矩阵的乘积,结果使得:A=L*UA=L*U
7、 L,U,P=lu(A):L,U,P=lu(A):L L是下三角矩阵,上三角矩阵是下三角矩阵,上三角矩阵U U 和置换矩阵和置换矩阵P P,使,使得:得:P*A=L*U P*A=L*U LU LU 分解允许对线性方程分解允许对线性方程 A*x=bA*x=b 进行如下计算:进行如下计算:x=U(Lb)x=U(Lb)LULU分解分解或或 Gaussian Gaussian 消去法消去法,可以将任何方阵表示为,可以将任何方阵表示为一个下三角矩阵一个下三角矩阵L L和上三角矩阵和上三角矩阵U U的乘积的乘积,即:即:A=LUA=LU5.1.2 5.1.2 矩阵分解矩阵分解 三、正交分解三、正交分解 正
8、交分解正交分解或或QRQR分解分解,将方阵或矩形矩阵,将方阵或矩形矩阵A A分解为一个正交矩阵分解为一个正交矩阵Q Q和一个上三角矩阵和一个上三角矩阵R R 的乘积,即:的乘积,即:A=QR A=QR 或或 AP=QR AP=QR 函数函数qrqr的用法如下:的用法如下:Q,R=qr(X):Q,R=qr(X):上三角矩阵上三角矩阵R R和正交矩阵和正交矩阵Q Q,使得:,使得:X=Q*R(RX=Q*R(R与与X X同维同维)Q,R,E=qr(X):Q,R,E=qr(X):置换矩阵置换矩阵E E,使得:,使得:X*E=Q*R X*E=Q*R Q,R=qr(X,0)Q,R=qr(X,0)和和Q,R
9、,E=qr(X,0)Q,R,E=qr(X,0):其中,其中,E E是一个置换向量,是一个置换向量,使得:使得:Q*R=X(:,E)Q*R=X(:,E)。5.2 5.2 非线性数值计算非线性数值计算 5.2.1 5.2.1 非线性函数最小值点非线性函数最小值点 1 1、求单变量函数最小值点、求单变量函数最小值点 求单变量函数最小值点的函数是求单变量函数最小值点的函数是:fminbndfminbnd,其调用格式是:,其调用格式是:x,fval,exitflag,output=x,fval,exitflag,output=fminbnd(fun,x1,x2,options,p1,p2,)fminbn
10、d(fun,x1,x2,options,p1,p2,)fun fun 是被计算最小值点的单变量函数(目标函数)名称字符串;是被计算最小值点的单变量函数(目标函数)名称字符串;x1x1、x2x2是目标函数自变量的取值范围;是目标函数自变量的取值范围;p1p1、p2,p2,是向目标函数传是向目标函数传递的附加参数;递的附加参数;optionsoptions是一个结构类型的变量,用于指定算法的是一个结构类型的变量,用于指定算法的优化参数。该结构的内容用函数优化参数。该结构的内容用函数 optimset optimset 进行定义,若没有优化进行定义,若没有优化参数要设置,可以在参数要设置,可以在op
11、tionsoptions的位置用的位置用“”“”作为占位符。作为占位符。5.2.1 5.2.1 非线性函数最小值点非线性函数最小值点 1 1、求单变量函数最小值点、求单变量函数最小值点Display:Display:显示的层次,显示的层次,off off 不显示输出内容,不显示输出内容,iter iter 显示每次显示每次迭代的输出,迭代的输出,finalfinal只显示最后一次的输出;只显示最后一次的输出;MaxFunEvals:MaxFunEvals:所允许的函数的最大求值次数;所允许的函数的最大求值次数;MaxIter:MaxIter:所允许的最大迭代数;所允许的最大迭代数;TolX:T
12、olX:终止迭代的容差值终止迭代的容差值 函数函数fminbndfminbnd使用了结构使用了结构 options options 的四个域,它们的含的四个域,它们的含义如下:义如下:x,fval,exitflag,output=x,fval,exitflag,output=fminbnd(fun,x1,x2,options,p1,p2,)fminbnd(fun,x1,x2,options,p1,p2,)输出参数:输出参数:x x是是 fun fun 的最小值点的最小值点;fvalfval是目标函数在是目标函数在 x x 处处的值的值;exitflagexitflag描述函数描述函数fminb
13、ndfminbnd退出的情况,大于退出的情况,大于0 0表示函数表示函数收敛到了解收敛到了解x x,等于,等于0 0表示达到了所允许的函数最大求值次数。表示达到了所允许的函数最大求值次数。outputoutput是一个结构变量,包含了计算的信息,它共有三个是一个结构变量,包含了计算的信息,它共有三个域:域:5.2.1 5.2.1 非线性函数最小值点非线性函数最小值点 output.algorithm:output.algorithm:使用的算法;使用的算法;output.funcCount:output.funcCount:函数求值次数;函数求值次数;output.iterations:out
14、put.iterations:迭代次数。迭代次数。x,fval,exitflag,output=x,fval,exitflag,output=fminbnd(fun,x1,x2,options,p1,p2,)fminbnd(fun,x1,x2,options,p1,p2,)例:求内联函数例:求内联函数 f(x,a)=x4+2x2+2ax+5 的最小值。的最小值。5.2.1 5.2.1 非线性函数最小值点非线性函数最小值点 函数函数fminsearchfminsearch用于求多变量函数的最小值点,其调用格式是:用于求多变量函数的最小值点,其调用格式是:x,fval,exitflag,outpu
15、t=x,fval,exitflag,output=fminsearch(fun,x0,options,p1,p2,)fminsearch(fun,x0,options,p1,p2,)其中,其中,x0 x0 是最小值点的初始值,一般是猜测的;是最小值点的初始值,一般是猜测的;结构结构optionsoptions的域比函数的域比函数 fminbnd fminbnd 中增加一个中增加一个-TolFun,-TolFun,指终止计算的目标指终止计算的目标函数容差值函数容差值;退出标志退出标志 exitflag exitflag 也比函数也比函数 fminbnd fminbnd 中增加一种情况:小于中增加
16、一种情况:小于0 0,表示目标函数不收敛。,表示目标函数不收敛。2 2、求多变量函数最小值点、求多变量函数最小值点例:求函数例:求函数 f(x)=100(x2-x12)2+(a-x1)2 的最小值。的最小值。5.2.2 5.2.2 单变量函数零点单变量函数零点 求单变量函数零点的函数是求单变量函数零点的函数是fzerofzero,其调用格式是:,其调用格式是:x,fval,exitflag,output=x,fval,exitflag,output=fzero(fun,x0,options,p1,p2,)fzero(fun,x0,options,p1,p2,)其中,其中,参数参数 x0 x0
17、指定搜索的起始点,同时也预定搜索零点的大指定搜索的起始点,同时也预定搜索零点的大致位置;致位置;结构结构optionsoptions中只有两个域:中只有两个域:Display Display 和和 TolX TolX 输出参数输出参数 exitflag exitflag 大于大于0 0表示找到了函数的零点,小于表示找到了函数的零点,小于0 0表示表示没有找到零点或在搜索过程中遇到了无穷大的函数值。没有找到零点或在搜索过程中遇到了无穷大的函数值。例:求函数例:求函数 f(x)=x4-ax-5a+7 的零点的零点5.2.3 5.2.3 常微分方程(组)数值解常微分方程(组)数值解刚性问题刚性问题,
18、对于一个常微分方程组,如果其,对于一个常微分方程组,如果其 Jacobian Jacobian 矩阵的矩阵的特征值相差十分悬殊,那么这个方程组就称为刚性方程组。特征值相差十分悬殊,那么这个方程组就称为刚性方程组。七种函数对应解法的特点:七种函数对应解法的特点:1)ode45:1)ode45:四阶四阶/五阶龙格五阶龙格库塔法,单步解法,对很多问题都是库塔法,单步解法,对很多问题都是首先试用的最好方法,但不能解决刚性问题;首先试用的最好方法,但不能解决刚性问题;2)ode23:2)ode23:二阶二阶/三阶龙格三阶龙格库塔法,单步解法,在误差容许范围库塔法,单步解法,在误差容许范围较宽且存在轻微刚
19、性时比较宽且存在轻微刚性时比ode45ode45效果好;效果好;3)ode113:3)ode113:可变阶次可变阶次Adams-Bashforth-Moulton PECEAdams-Bashforth-Moulton PECE算法,多步算法,多步解法,比解法,比ode45ode45更适合于误差容许范围要求较严格的情况,不能解更适合于误差容许范围要求较严格的情况,不能解决刚性问题决刚性问题.MATLAB MATLAB提供了七种解法,分别由七个不同的函数来完成,提供了七种解法,分别由七个不同的函数来完成,它们是:它们是:ode45 ode23 ode113 ode15s ode23s ode23
20、t ode23tbode45 ode23 ode113 ode15s ode23s ode23t ode23tb5.2.3 5.2.3 常微分方程(组)数值解常微分方程(组)数值解4)ode15s:4)ode15s:可变阶次的数值微分公式算法,多步解法,若用可变阶次的数值微分公式算法,多步解法,若用ode45ode45效果很差或者失败,可以考虑试用效果很差或者失败,可以考虑试用ode15sode15s,且可解决刚,且可解决刚性问题;性问题;5)ode23s:5)ode23s:基于修正的基于修正的 Rosenbrock Rosenbrock 公式,单步解法,比公式,单步解法,比ode15sode
21、15s更适用于误差容许范围较宽的情况,可以解决一些采用更适用于误差容许范围较宽的情况,可以解决一些采用ode15sode15s效果不好的刚性问题;效果不好的刚性问题;6)ode23t:6)ode23t:采用自由内插法实现的梯形规则,适用于系统存在采用自由内插法实现的梯形规则,适用于系统存在适度刚性并要求无数值衰减的情况;适度刚性并要求无数值衰减的情况;7)ode23tb:7)ode23tb:龙格龙格库塔公式的第一级采用梯形规则、第二级采库塔公式的第一级采用梯形规则、第二级采用用GearGear法。对于误差容限较宽的情况,比法。对于误差容限较宽的情况,比ode15sode15s效果更好,可效果更
22、好,可解决刚性问题。解决刚性问题。5.2.3 5.2.3 常微分方程(组)数值解常微分方程(组)数值解 函数函数ode45ode45的调用格式为:的调用格式为:T,Y=ode45(F,tspan,y0,options,p1,p2,)T,Y=ode45(F,tspan,y0,options,p1,p2,)输入参数:输入参数:F F 是常微分方程组的文件名字符串是常微分方程组的文件名字符串;tspan;tspan是向是向量,一般形如:量,一般形如:t0 tfinal,t0 tfinal,指定求解的起始值和终止值,若需要指定求解的起始值和终止值,若需要得到指定时刻的结果,也可以采用得到指定时刻的结果
23、,也可以采用:t0,t1,tfinal;y0:t0,t1,tfinal;y0是初始是初始状态向量;状态向量;optionsoptions是一些可选的综合参数,由函数是一些可选的综合参数,由函数odesetodeset进行设进行设置。置。输出参数:输出参数:T T为时间列向量,为时间列向量,Y Y是数值解矩阵,它的每一行对应是数值解矩阵,它的每一行对应着列向量着列向量T T中的一个时间值。中的一个时间值。例例1 1:解常微分方程组,已知常微分方程组及初始条件如下:解常微分方程组,已知常微分方程组及初始条件如下:y1=y2y3 y1(0)=0y1=y2y3 y1(0)=0y2=-y1y3 y2(0
24、)=1y2=-y1y3 y2(0)=1y3=-2y1y2 y3(0)=-1y3=-2y1y2 y3(0)=-15.2.3 5.2.3 常微分方程常微分方程(组组)数值解数值解 例例2 2:解常微分方程组,已知二阶微分方程及初始条件:解常微分方程组,已知二阶微分方程及初始条件:y=1000(1-y y=1000(1-y2 2)y-y)y-y y(0)=0,y(0)=1 y(0)=0,y(0)=1 解:解:令令 y1=y,y2=y1,y1=y,y2=y1,则该方程化为如下的一阶常微分方程则该方程化为如下的一阶常微分方程组:组:y1=y2y1=y2y2=1000(1-y1y2=1000(1-y12
25、2)y2-y1)y2-y15.2.4 5.2.4 函数的数值积分函数的数值积分 求解函数的数值积分的函数为求解函数的数值积分的函数为 quadl quadl 和和 quad quad,其调用,其调用格式为:格式为:quadl(fun,a,b,Tol,p1,p2,)quadl(fun,a,b,Tol,p1,p2,)例例1 1:在区间在区间 0.01,1 0.01,1 上求上求 的数值积分,设置绝对的数值积分,设置绝对误差容限为误差容限为 1e-8 1e-8。例例2:在区间上求在区间上求 的数值积分。的数值积分。5.3 5.3 多项式多项式 5.3.1 5.3.1 多项式表示法多项式表示法 MAT
26、LAB MATLAB采用行向量表示多项式,将多项式的系数按降幂次序存采用行向量表示多项式,将多项式的系数按降幂次序存放在行向量中,多项式:放在行向量中,多项式:p(x)=ap(x)=a0 0 x xn n+a+a1 1x xn-1n-1+a+an-1n-1x+ax+an n的系数行向量的系数行向量为:为:p=ap=a0 0 a a1 1 a an n,注意顺序必须是从高次幂向低次幂。注意顺序必须是从高次幂向低次幂。为了将整个多项式输入为了将整个多项式输入MATLABMATLAB,可以采用类似于向量创建的方,可以采用类似于向量创建的方法,直接输入多项式的系数行向量。法,直接输入多项式的系数行向量
27、。例如:例如:多项式多项式 x x4 4+3x+3x2 2-5x+1-5x+1 可以采用系数向量可以采用系数向量1 0 3 5 1 0 3 5 11表示,注意多项式中缺少的幂次要用表示,注意多项式中缺少的幂次要用“0”“0”补齐。补齐。5.3.2 5.3.2 求多项式的根,由根创建多项式求多项式的根,由根创建多项式 函数函数rootsroots用于求多项式的根,其调用形式为:用于求多项式的根,其调用形式为:R=roots(C)R=roots(C)函数函数polypoly由给定的根创建多项式,其调用格式为:由给定的根创建多项式,其调用格式为:C=poly(R)C=poly(R)按照输入参数按照输
28、入参数R R的不同形式,该函数的输出参数的不同形式,该函数的输出参数C C有以下两有以下两种情况:种情况:1)R 1)R是向量,那么是向量,那么C C将是多项式系数行向量,且根向量为将是多项式系数行向量,且根向量为R R的;的;2)R 2)R为为N*NN*N矩阵,那么返回值矩阵,那么返回值C C将是矩阵将是矩阵R R特征多项式的系数行特征多项式的系数行向量,它由向量,它由N+1N+1个元素组成。个元素组成。例:例:求多项式求多项式 x x4 4-x-x3 3+9x-2+9x-2 的根的根5.3.3 5.3.3 多项式乘和除多项式乘和除 函数函数convconv用于实现向量的卷积运算,用于实现向
29、量的卷积运算,函数函数deconvdeconv用于实现向用于实现向量的解卷运算。量的解卷运算。函数函数convconv的调用格式是:的调用格式是:C=conv(a,b)C=conv(a,b)函数函数deconvdeconv的调用格式如下:的调用格式如下:q,r=deconv(c,a)q,r=deconv(c,a)例:多项式乘除运算:例:多项式乘除运算:以多项式以多项式 a(x)=x3-2x2+1 和和 b(x)=3x2-4x+5为例为例5.3.4 5.3.4 多项式导数多项式导数 函数函数 polyder polyder 可计算多项式的导数可计算多项式的导数,它即可以计算单个多它即可以计算单个
30、多项式的导数,又可以计算两个多项式积和商的导数。项式的导数,又可以计算两个多项式积和商的导数。函数函数 polyder polyder 的调用格式为:的调用格式为:polyder(p):polyder(p):计算系数向量为计算系数向量为p p的多项式的导数;的多项式的导数;polyder(a,b)polyder(a,b)或或 c=polyder(a,b):c=polyder(a,b):计算多项式计算多项式a*ba*b的导数;的导数;q,d=polyder(a,b):q,d=polyder(a,b):计算多项式的商计算多项式的商a/ba/b的导数,用的导数,用q/dq/d表示。表示。例:例:多项
31、式多项式 a(x)=3x a(x)=3x2 2+2x-7+2x-7 和和 b(x)=4x b(x)=4x3 3-3x-3x2 2+x-1+x-1 的导数的导数5.3.5 多项式的值多项式的值 函数函数 polyval polyval 用于计算给定的自变量值时,多项式的值用于计算给定的自变量值时,多项式的值 函数函数 polyval polyval 的调用格式:的调用格式:y=polyval(p,x)y=polyval(p,x)其中,其中,p p为多项式的系数向量,为多项式的系数向量,x x是指定的自变量的值。是指定的自变量的值。函数函数 polyvalm polyvalm 计算矩阵多项式的值,
32、即以矩阵整体作为多计算矩阵多项式的值,即以矩阵整体作为多项式的自变量进行计算。该函数用法为:项式的自变量进行计算。该函数用法为:y=polyvalm(p,x)y=polyvalm(p,x)例:例:求多项式的值,求多项式的值,p(x)=5x2+4x+3 5.3.6 5.3.6 多项式曲线拟合多项式曲线拟合 函数函数 polyfitpolyfit 用于对给定的数据进行多项式曲线拟用于对给定的数据进行多项式曲线拟合,最后给出拟合多项式系数,此函数的调用格式为:合,最后给出拟合多项式系数,此函数的调用格式为:p=polyfit(x,y,n)p=polyfit(x,y,n)其中,其中,x x和和y y是
33、数据的横纵坐标向量,是数据的横纵坐标向量,n n是规定的拟是规定的拟合多项式的阶数,合多项式的阶数,p p是返回多项式的系数向量。是返回多项式的系数向量。5.3.7 5.3.7 部分分式展开部分分式展开 函数函数 residueresidue 用于将两个多项式之比用部分分式展开,该函用于将两个多项式之比用部分分式展开,该函数的调用格式是:数的调用格式是:r,p,k=residue(a,b):求多项式之比求多项式之比a/b的部分分式展开,的部分分式展开,r是留数、是留数、p是极点、是极点、k是直接项是直接项;当没有重根时,存在:当没有重根时,存在:当存在重根时,有:当存在重根时,有:a,b=re
34、sidue(r,p,k):从部分分式得出多项式系数向量。从部分分式得出多项式系数向量。5.3.7 5.3.7 部分分式展开部分分式展开 例:例:把把 用部分分式展开用部分分式展开5.4 数据插值数据插值5.4.1 5.4.1 一维插值一维插值 命令命令 interp1 interp1 可以进行一维插值,此命令的调用格式:可以进行一维插值,此命令的调用格式:yi=interp1(x,y,xi)yi=interp1(x,y,xi)yi=interp1(x,y,xi,method)yi=interp1(x,y,xi,method)其中,其中,x,yx,y为原始的已知数据,为原始的已知数据,x x是横
35、坐标向量,必须是单调的;是横坐标向量,必须是单调的;y y是纵坐标向量或矩阵;是纵坐标向量或矩阵;xixi是指定插值点的横坐标,是指定插值点的横坐标,yiyi是在指定的是在指定的位置计算出的插值结果。位置计算出的插值结果。参数参数 method method 用来指定插值方法,具体插用来指定插值方法,具体插值方法如下:值方法如下:nearest:nearest:最近邻域插值最近邻域插值linear:linear:线性插值线性插值spline:spline:三次(立方)样条插值三次(立方)样条插值cubic:cubic:三次内插(立方插值)三次内插(立方插值)5.4.2 5.4.2 二维插值二维
36、插值 命令命令 interp2 interp2 可以进行二维插值可以进行二维插值,其调用格式:其调用格式:zi=interp2(x,y,z,xi,yi)zi=interp2(x,y,z,xi,yi)zi=interp2(x,y,z,xi,yi,method)zi=interp2(x,y,z,xi,yi,method)其中,其中,x x、y y和和z z是原始已知数据,是原始已知数据,x x和和y y是两个独立向量,且是两个独立向量,且必须都是单调的,必须都是单调的,z z是矩阵,是由是矩阵,是由x x和和y y确定的点上的值,确定的点上的值,z z和和x x、y y之间的关系是:之间的关系是:
37、z(i,z(i,:)=f(x,y(i):)=f(x,y(i)和和 z(:,j)=f(x(j),y)z(:,j)=f(x(j),y)若省略若省略x x和和y y,相当于,相当于x=1:n,y=1:m(mx=1:n,y=1:m(m、n n分别是矩阵分别是矩阵z z的行的行数和列数数和列数),),xixi和和yiyi是要进行插值的点,是要进行插值的点,zizi是与插值点对应的插是与插值点对应的插值结果;值结果;method method 指定插值方法:指定插值方法:linear:linear:双线性插值双线性插值 nearest:nearest:最近邻域插值最近邻域插值spline:spline:三
38、次(立方)样条插值三次(立方)样条插值 cubic:cubic:双三次插值双三次插值5.4.3 样条插值样条插值 进行三次样条插值的指令是进行三次样条插值的指令是 splinespline,此函数的调用格式有,此函数的调用格式有如下两种:如下两种:yi=spline(x,y,xi)pp=spline(x,y)yi=spline(x,y,xi)pp=spline(x,y)函数函数 spline spline 获取原始数据点获取原始数据点x x和和y y以及要进行插值的点以及要进行插值的点xixi的的横坐标横坐标 ,寻找拟合,寻找拟合x x和和y y的三次样条内插多项式,然后计算这些多的三次样条内
39、插多项式,然后计算这些多项式,对每个项式,对每个xixi值,寻找相应的值,寻找相应的yi;yi;第二种调用方式中,第二种调用方式中,spline spline 返回一个称为三次样条的返回一个称为三次样条的pppp形式形式或分段多项式形式的数组。这个数组包含了对于任意一组所期望或分段多项式形式的数组。这个数组包含了对于任意一组所期望的内插值和计算三次样条所必须的全部信息。的内插值和计算三次样条所必须的全部信息。得到得到pppp形式后,可以用形式后,可以用函数函数 ppval ppval 计算该三次样条,计算该三次样条,函数的用法为:函数的用法为:yi=ppval(pp,xi)yi=ppval(p
40、p,xi)函数函数unmkppunmkpp可把可把pppp形式分解成它的各个部分形式分解成它的各个部分,此函数此函数的调用格式是:的调用格式是:breaks,coefs,pieces,order,dim=unmkpp(pp)breaks,coefs,pieces,order,dim=unmkpp(pp)已知已知pppp形式的各个部分,可用形式的各个部分,可用函数函数mkppmkpp重构完整的重构完整的pppp形式形式:pp=mkpp(breaks,coefs,pieces,order,dim)pp=mkpp(breaks,coefs,pieces,order,dim)5.4.3 样条插值样条插
41、值5.5 基础运算基础运算基础运算函数及其功能表基础运算函数及其功能表函函 数数功功 能能函函 数数功功 能能maxmax求最大元素求最大元素minmin求最小元素求最小元素medianmedian找出中位元素找出中位元素meanmean求平均值求平均值stdstd求标准差求标准差sortsort把数组的列元素把数组的列元素按递增顺序排列按递增顺序排列sumsum求和求和 prodprod求积求积5.5 5.5 基础运算基础运算基础运算函数及其功能表(续)基础运算函数及其功能表(续)函函 数数功功 能能函函 数数功功 能能cumsumcumsum计算累加和计算累加和cumprodcumprod
42、计算累积积计算累积积permsperms把向量按所有可能变换把向量按所有可能变换组合成矩阵组合成矩阵primesprimes求出小于或等于求出小于或等于某值的所有素数某值的所有素数sortrowssortrows把数组的元素以某列为把数组的元素以某列为基准,按递增顺序排列基准,按递增顺序排列factorfactor计算素数因子计算素数因子varvar求方差求方差5.5 基础运算基础运算 (1)max(1)max:最大值指令最大值指令 ,调用格式:,调用格式:y=max(x):x y=max(x):x是向量或矩阵;是向量或矩阵;y,i=max(x):y,i=max(x):返回最大值和其在向量或矩
43、阵中的位置;返回最大值和其在向量或矩阵中的位置;M=max(x,y):M=max(x,y):是大小与和相同的矩阵,其值为中对应的是大小与和相同的矩阵,其值为中对应的 元素的最大值。元素的最大值。(2)min:(2)min:最小值指令,调用格式同最小值指令,调用格式同maxmax指令的调用格式。指令的调用格式。(3)median:(3)median:求向量或矩阵的中值,格式如下:求向量或矩阵的中值,格式如下:y=median(x)y=median(x)5.5 5.5 基础运算基础运算(4)mean:求向量或矩阵的平均值,格式如下:求向量或矩阵的平均值,格式如下:y=mean(x)(5)std:求
44、向量或矩阵的标准方差,格式为:求向量或矩阵的标准方差,格式为:y=std(x)(6)sort:对向量或矩阵中的元素进行升序排列,格式为:对向量或矩阵中的元素进行升序排列,格式为:y=sort(x)y,i=sort(x)5.5 基础运算基础运算(7)sum:求向量或矩阵中各元素的和,格式为:求向量或矩阵中各元素的和,格式为:y=sum(x)(8)prod:求向量或矩阵中各元素的积,调用格式为:求向量或矩阵中各元素的积,调用格式为:y=prod(x)(9)cumsum:求向量或矩阵的累加和,调用格式:求向量或矩阵的累加和,调用格式:y=cumsum(x)(10)cumprod:求向量或矩阵的累积积
45、,格式是:求向量或矩阵的累积积,格式是:y=cumprod(x)5.5 基础运算基础运算(11)perms:(11)perms:求向量按所有可能的变换组合出的矩阵,格式:求向量按所有可能的变换组合出的矩阵,格式:y=perms(x)y=perms(x)(12)primes:(12)primes:列出小于或等于某个数值的所有素数列出小于或等于某个数值的所有素数 (13)sortrows:(13)sortrows:把数组的元素以某列为基准,按递增的顺序排把数组的元素以某列为基准,按递增的顺序排列列 缺省时以第一列为基准缺省时以第一列为基准 (14)factor:(14)factor:计算素数因子计
46、算素数因子 (15)var:(15)var:求方差求方差 16 16、差分差分 函数函数 diff diff 用于计算向量或数组的有限差分,该函数的用于计算向量或数组的有限差分,该函数的调用方式是:调用方式是:Y=diff(X,n,dim)Y=diff(X,n,dim)其中,其中,X X是向量或数组,是向量或数组,n n是差分的阶数,是差分的阶数,dim dim 指定沿着指定沿着数组的哪一维进行差分运算,且数组的哪一维进行差分运算,且n n和和dimdim可以省略。可以省略。5.5 基础运算基础运算5.6 小结小结基础运算基础运算 线性方程组线性方程组非线性数值计算非线性数值计算 多项式多项式数据插值数据插值