MATLAB数学应用软件11-zhj_第1页
MATLAB数学应用软件11-zhj_第2页
MATLAB数学应用软件11-zhj_第3页
MATLAB数学应用软件11-zhj_第4页
MATLAB数学应用软件11-zhj_第5页
已阅读5页,还剩183页未读 继续免费阅读

下载本文档

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

文档简介

数学应用软件,第11讲上机练习高等数学计算有关函数主讲赵慧杰,第6章高等数学计算,函数和极限导数极限和导数的应用不定积分和定积分空间解析几何与向量代数多元函数的极限和求导级数微分方程,2020/5/10,3,函数,复合函数运算符号表达式的复合函数运算主要是通过函数compose来实现的。反函数符号表达式的反函数运算主要是通过函数finverse来实现的。函数的图形,2020/5/10,4,极限,符号极限由函数limit来实现。例:求数列的极限。解:在命令窗口键入下面的命令行:symsn;limit(n+(-1)(n-1)/n,n,inf)得ans=1,2020/5/10,5,导数,求函数的导数求隐函数的导数求参数方程确定的函数的导数,2020/5/10,6,求函数的导数,用diff函数进行函数求导。例:求函数的导数。解:在命令窗口键入下面的命令行:symsx;f=sym(x-1)3/(x+1);B=diff(f)得B=3*(x-1)2/(x+1)-(x-1)3/(x+1)2,2020/5/10,7,求隐函数的导数,对于隐函数F(x,y)=0,导数,2020/5/10,8,求参数方程确定的函数的导数,对于参数方程导数,2020/5/10,9,极限和导数的应用,渐近线极值拐点,2020/5/10,10,不定积分和定积分,不定积分求定积分定积分的近似计算定积分的应用多重积分,2020/5/10,11,不定积分,MATLAB中,用符号工具箱中的int函数求函数的不定积分和定积分。用int函数的前两种调用格式求不定积分。例:求不定积分。解:在命令窗口键入symsxnint(xn)或symsxnint(xn,x)得ans=x(n+1)/(n+1),2020/5/10,12,求定积分,用int函数的后两种调用格式求定积分。例:求定积分。解:在命令窗口键入symsxint(x7,0,1)得ans=1/8,2020/5/10,13,定积分的近似计算,用MATLAB提供的trapz函数可以用梯形法近似求取定积分的值。例:积分的精确值为2,下面用trapz函数在均匀间隔的网格上求该积分的数值近似。X=0:pi/100:pi;Y=sin(X);Z=trapz(X,Y)Z=1.9998,2020/5/10,14,定积分的应用,使用定积分,可以解决几何和物理中的很多实际问题,比如求平面图形的面积、求曲面围成的体积、求曲线的弧长、求功等。,2020/5/10,15,多重积分,可以用int函数求函数的多重积分。例:求二重积分。解:在命令窗口键入symsxy;int(int(x*y,y,2),y,1,2)得ans=9/8,2020/5/10,16,空间解析几何与向量代数,空间向量运算曲面及其方程,2020/5/10,17,空间向量运算,已知向量a=2,1,-1,b=1,-1,2,计算a+b,a-b,2a,ab,ab。,解:在命令窗口键入下面的命令行:a=21-1;b=1-12;c=a+bd=a-be=2*af=dot(a,b)g=cross(a,b),得c=301d=12-3e=42-2f=-1g=1-5-3,上面分别用dot和cross函数计算向量的点积和叉积,2020/5/10,18,曲面及其方程,利用MATLAB提供的绘图函数,可以绘制给定函数的曲面和二次曲面。相关内容,请参见6.2.4和6.2.5小节的介绍。,2020/5/10,19,多元函数的极限和求导,求多元函数的极限求多元函数的导数求二元隐函数的导数,2020/5/10,20,求多元函数的极限,例:求极限。解:在命令行键入symsxy;limit(sin(x+y)-sin(x)/y,y,0)ans=cos(x),2020/5/10,21,求多元函数的导数,用diff函数计算多元函数的偏导数,需要指定相对于哪个变量求偏导数。例:求函数f=sin(st)的偏导数。解:在命令窗口键入下面的命令行symsstf=sin(s*t)diff(f,t)ans=cos(s*t)*s,2020/5/10,22,求二元隐函数的导数,对于隐函数F(x,y,z)=0,导数,2020/5/10,23,级数,级数求和泰勒级数展开傅立叶级数展开,2020/5/10,24,级数求和,可以用symsum函数求级数的和。例:求级数和。解:在命令窗口键入symsxks1=symsum(1/k2,1,inf)s2=symsum(xk,k,0,inf)s1=1/6*pi2s2=-1/(x-1),2020/5/10,25,泰勒级数展开,用taylor函数进行泰勒级数展开。例:求函数的泰勒级数展开,取前7项。解:在命令窗口键入下面的代码symsxf=1/(5+4*cos(x)T=taylor(f,8)返回T=1/9+2/81*x2+5/1458*x4+49/131220*x6,2020/5/10,26,傅立叶级数展开,通过编写程序,可以实现函数的傅立叶级数展开。,2020/5/10,27,微分方程,微分方程可以通过函数dsolve求解。例:求微分方程的通解,y为应变量,t为默认的自变量。解:输入下面的命令行dsolve(Dy=1+y2)返回ans=tan(t+C1)即为所求的通解。下面指定初始条件y|x=0=1。y=dsolve(Dy=1+y2,y(0)=1)生成y=tan(t+1/4*pi),第7章线性代数,矩阵分析矩阵的分解线性方程组的求解矩阵的特征值和特征向量符号矩阵稀疏矩阵,2020/5/10,29,矩阵分析,矩阵的行列式矩阵的四则运算矩阵的幂和平方根矩阵的指数和对数矩阵的翻转矩阵的逆运算矩阵的迹,矩阵的范数矩阵的条件数矩阵的重塑矩阵的逻辑运算矩阵的初等变换矩阵的秩,2020/5/10,30,矩阵的行列式,可用函数det求矩阵的行列式大小。例:a=120;25-1;410-1;b=det(a)b=1,2020/5/10,31,矩阵的四则运算,数组和矩阵的加减运算使用加号和减号,即“+”和“-”。矩阵相乘使用“*”运算符。如果只是将两个矩阵中相同位置的元素相乘,使用“.*”运算符。矩阵除法有左除和右除的区别,分别使用“”和“/”运算符。与“”和“/”运算符相对应,也有“.”和“./”运算符,分别用于将两个矩阵中的对应元素相除。矩阵与常数的代数运算,可以直接使用上面的各种运算符。,2020/5/10,32,矩阵的幂和平方根,矩阵的幂运算使用运算符“”,幂运算具有类似Xp的形式。如果p是整数,则幂通过重复求平方来计算;如果该整数为负值,则首先计算X的逆;如果p取其他值,则计算需要用到特征值和特征矢量,即如果V,D=eig(X),则Xp=V*D.p/V。用sqrtm函数求矩阵的平方根。,2020/5/10,33,矩阵的指数和对数,矩阵的指数运算用expm函数实现。矩阵的对数运算用logm函数实现。,2020/5/10,34,矩阵的翻转,用fliplr函数左右翻转矩阵;用flipud函数上下翻转矩阵;用flipdim函数沿指定方向翻转矩阵;用transpose函数沿主对角线翻转矩阵。,2020/5/10,35,矩阵的逆运算,用函数inv实现矩阵的逆运算。由函数pinv实现矩阵的伪逆运算。,2020/5/10,36,矩阵的迹,矩阵的迹是指矩阵所有对角线元素的和。在MATLAB中,矩阵的迹可由函数trace计算得到。,2020/5/10,37,矩阵的范数,矩阵的范数运算可由函数norm来实现,具有norm(A),norm(A,1),norm(A,2),norm(A,inf),norm(A,fro)等形式,分别代表矩阵的范数运算、1-范数运算、7-范数运算、无穷大范数运算和F-范数运算。,2020/5/10,38,矩阵的条件数,条件数的值代表矩阵“病态”程度的大小。在MATLAB中,矩阵的条件数可分别由函数cond(A),condest(A)或rcond(A)计算得到,它们分别计算矩阵的条件数值、1-范数矩阵条件数值和矩阵的逆条件数值。,2020/5/10,39,矩阵的重塑,用reshape函数进行矩阵重塑。下面将一个34的矩阵重塑为26的。例:A=14710;25811;36912A=147102581136912B=reshape(A,2,6)B=135791124681012,2020/5/10,40,矩阵的逻辑运算,使用逻辑运算符,可以直接对数组或矩阵进行逻辑运算,包括逻辑非、逻辑或、逻辑与和逻辑异或运算。,2020/5/10,41,矩阵的初等变换,用rref函数进行矩阵的初等行变换。例:A=1218;12310;23113;1229A=121812310231131229B=rref(A)B=1003010200110000,2020/5/10,42,矩阵的秩,用函数rank求矩阵的秩。例:a=120;25-1;410-1;b=rank(a)b=3,2020/5/10,43,矩阵的分解,矩阵的LU分解矩阵的QR分解矩阵的QZ分解矩阵的乔累斯基分解矩阵的奇异值分解矩阵的特征值分解矩阵的Schur分解,2020/5/10,44,矩阵的LU分解,矩阵的LU分解是线性方程组求解方法中高斯消去法的基础,在MATLAB中由函数lu来实现。,2020/5/10,45,矩阵的QR分解,在MATLAB中,QR分解可由函数qr实现。常用的调用格式如下:B,C=qr(A)返回的矩阵C为上三角矩阵,矩阵B为满秩矩阵。Q,R,E=qr(A)返回的矩阵E是置换矩阵,矩阵R是上三角矩阵,矩阵Q是满秩矩阵。上述矩阵满足关系A*E=Q*R。,2020/5/10,46,矩阵的QZ分解,在MATLAB中,QZ分解可由函数qz来实现。qz函数常用的调用格式如下:AA,BB,Q,Z,V=qz(A,B)要求矩阵A,B是方阵。产生的矩阵AA,BB是上三角矩阵,Q,Z是正交矩阵,矩阵V是特征矢量矩阵。其中,满足Q*A*Z=AA与Q*B*Z=BB。AA,BB,Q,Z,V=qz(A,B,flag)对于方阵A,B的QZ分解取决于参数flag。参数flag可取complex与real。,2020/5/10,47,矩阵的乔累斯基分解,设矩阵A为n阶对称正定矩阵,则A矩阵可分解为LL,即A=LL。其中,矩阵L是上三角矩阵。此时,这种分解就称为乔累斯基分解。在MATLAB中,乔累斯基分解由函数chol实现。,2020/5/10,48,矩阵的奇异值分解,在MATLAB中,矩阵的奇异值分解由函数svd来实现,其调用格式为b,c,d=svd(A),2020/5/10,49,矩阵的特征值分解,在线性代数中,很多情况下需要求矩阵的特征值。MATLAB中求矩阵特征值的函数是eig和eigs。其中函数eigs主要应用于稀疏矩阵。,2020/5/10,50,矩阵的Schur分解,在MATLAB中,矩阵的Schur分解由Schur函数来实现,其调用格式为b,c=schur(A)其中c矩阵为Schur矩阵。,2020/5/10,51,线性方程组的求解,方形系统超定系统不定系统,2020/5/10,52,矩阵的特征值和特征向量,在MATLAB中,矩阵的特征值运算用函数eig或eigs实现。其中,eigs函数主要针对矩阵为稀疏矩阵的情况。,2020/5/10,53,符号矩阵,符号矩阵的四则运算符号矩阵的转置运算符号矩阵的行列式运算符号矩阵的求逆运算符号矩阵的求秩运算符号矩阵的常用函数运算符号矩阵常用线性方程(组)的求解,2020/5/10,54,稀疏矩阵,MATLAB中,创建稀疏矩阵一般用函数sparse或spdiags来实现。稀疏矩阵由于存储空间变小,而且MATLAB专门开发了针对它的算法,因此对稀疏矩阵的运算速度也非常快。,第8章概率论与数理统计的MATLAB实现,随机变量及其分布多维随机变量及其分布随机变量的数字特征样本描述参数估计假设检验方差分析一元线性回归,2020/5/10,56,随机变量及其分布,离散型随机变量及其分布律连续型随机变量及其概率密度分布函数逆累加分布函数,2020/5/10,57,离散型随机变量及其分布,二项分布泊松分布离散均匀分布几何分布超几何分布,2020/5/10,58,连续型随机变量及其概率密度,连续型均匀分布指数分布正态分布,2020/5/10,59,分布函数,对于离散型随机变量X,设x为任意实数,X的分布函数为对于连续型随机变量X,假设其概率密度为f(x),则其分布函数为,2020/5/10,60,逆累加分布函数,逆累加分布函数是累加分布函数的逆函数。利用逆累加分布函数,可以求得满足给定概率时随机变量对应的置信区间的最小值和最大值。,2020/5/10,61,多维随机变量及其分布,用mvnpdf和mvncdf函数可以计算二维正态分布随机变量在指定位置处的概率和累积分布函数值。下面左图和右图分别为二维正态分布随机变量的概率密度图和累积分布图。,2020/5/10,62,随机变量的数字特征,期望方差常见分布的数学期望和方差协方差和相关系数矩和协方差矩阵,2020/5/10,63,样本描述,集中趋势包括算术平均值、几何均值、调和均值、中值和截尾均值等。离中趋势包括均值绝对差、极差、方差和标准差等。抽样分布包括卡方分布、t分布和F分布等。,2020/5/10,64,参数估计,点估计可以用矩法和最大似然法进行参数估计。区间估计可以用mle函数,利用最大似然估计法进行参数的区间估计。常见分布的参数估计MATLAB统计工具箱提供了多种函数的参数估计函数,详见课本。,2020/5/10,65,假设检验,方差已知时的均值检验方差未知时单个正态总体均值的检验方差未知时两个正态总体均值差的检验基于成对数据的检验分布拟合检验,2020/5/10,66,方差已知时的均值检验,用ztest函数在给定方差的条件下检验单样本数据是否服从给定均值的正态分布。,2020/5/10,67,方差未知时单个正态总体均值的假设检验,t检验是用小样本检验总体参数,特点是在均方差不知道的情况下,可以检验样本平均数的显著性。用ttest函数进行样本均值的t检验。,2020/5/10,68,方差未知时两个正态总体均值差的检验,ttest2函数对两个样本的均值差异进行t检验。,2020/5/10,69,基于成对数据的检验,实际工作中为了比较两种方法或两种产品的差异,常常需要进行对比试验。这样得到的数据具有成对的特点。分析这种数据,还是需要t检验。前面用到的ttest函数可以进行检验。,2020/5/10,70,分布拟合检验,q-q图峰度-偏度检验秩和检验,2020/5/10,71,q-q图,q-q图用变量数据分布的分位数与所指定分布的分位数之间的关系曲线来检验数据的分布。如果两个样本来自同一分布,则图中数据点呈现直线关系,否则为曲线关系。,2020/5/10,72,峰度-偏度检验,峰度-偏度检验又称为Jarque-Bera检验,评价给定数据服从未知均值和方差的正态分布的假设是否成立。该检验基于数据样本的偏度和峰度。对于正态分布数据,样本偏度接近于0,样本峰度接近于3。,2020/5/10,73,秩和检验,秩和检验可检验两个总体是否相等。用ranksum函数检验两个样本是否取自中值相同的总体。,2020/5/10,74,方差分析,单因子方差分析用anova1函数进行单因子方差分析。双因子方差分析用anova2函数进行双因子方差分析。,2020/5/10,75,一元线性回归,进行一元线性回归MATLAB中可以使用polyfit函数实现一元线性回归。对于给定的数据,该函数返回一元线性回归方程的系数。可化为一元线性回归的曲线回归问题在实际应用过程中,人们遇到的更多是非线性问题,通过变换,有的非线性问题可以转换为线性问题,从而可以用线性回归的方法来处理。,第9章最优化方法的MATLAB实现,一维搜索问题线性规划无约束非线性最优化问题有约束非线性最优化问题,2020/5/10,77,一维搜索问题,求解单变量最优化问题的方法有很多种。如果函数的导数容易求得,一般来说首先考虑使用三次插值法,因为它具有较高的效率。对于只需要计算函数值的方法,二次插值法是一个很好的方法,它的收敛速度较快,在极小点所在区间较小时尤其如此。黄金分割法则是一种十分稳定的方法,并且计算简单。由于以上原因,MATLAB优化工具箱中用得较多的方法是二次插值法、三次插值法、二次三次混合插值法和黄金分割法。,2020/5/10,78,利用fminbnd函数找到固定区间内单变量函数的最小值。例:对边长为3m的正方形铁板,在4个角处剪去相等的正方形以制成方形无盖水槽,问如何剪法使水槽的容积最大?解:假设剪去的正方形的边长为x,则水槽的容积为现在要求在区间(0,1.5)上确定一个x,使最大化。因为优化工具箱中要求目标函数最小化,所以需要对目标函数进行转换,即要求最小化。首先编写M文件fminbndtest.m:functionf=myfun(x)f=-(3-2*x).2*x;然后调用fminbnd函数:x=fminbnd(fminbndtest,0,1.5)得到问题的解:x=0.5000即剪掉的正方形的边长为0.5m时水槽的容积最大。,2020/5/10,79,线性规划,线性规划问题的矩阵形式为线性规划的标准形式要求使目标函数最小化,约束条件取等式,变量b非负。不符合这几个条件的线性模型要首先转化成标准形式。在MATLAB工具箱中,可用linprog函数求解线性规划问题。,2020/5/10,80,无约束非线性最优化问题,求解无约束最优化问题的方法主要有两类,即直接搜索法和梯度法。直接搜索法适用于目标函数高度非线性,没有导数或导数很难计算的情况。常用的直接搜索法为单纯形法,此外还有Hooke-Jeeves搜索法、Pavell共轭方向法等。在函数的导数可求的情况下,梯度法是一种更优的方法。常见的梯度法有最速下降法、Newton法、Marquart法、共轭梯度法和拟牛顿法等。MATLAB优化工具箱中用于求解无约束非线性规划问题的函数有fminunc和fminsearch。,2020/5/10,81,有约束非线性最优化问题,有约束非线性最优化问题的数学模型为其中,x,b,beq,lb,和ub为矢量,A和Aeq为矩阵,c(x)和ceq(x)为函数,返回标量。f(x),c(x),和ceq(x)可以是非线性函数。利用fmincon函数求多变量有约束非线性函数的最小值。,第10章复变函数的MATLAB实现,构造复数(矩阵)复数运算复变函数的图形,2020/5/10,83,构造复数(矩阵),用complex函数构造复数。语法格式为c=complex(a,b)其中,a和b分别表示复数的实部和虚部,必须是标量或大小相同的向量、矩阵或多维数组。输出结果c=a+bi,其大小与输入参数的相同。,2020/5/10,84,复数的实部和虚部,用real函数返回复数的实部。用imag函数返回复数的虚部。,2020/5/10,85,共轭复数,用conj函数计算复数的共轭值。该函数的语法格式为ZC=conj(Z)其中Z为复数数组。,2020/5/10,86,复数的模,用abs函数求复数的模。该函数的调用格式为abs(Z)返回复数的模,等价于sqrt(real(Z).2+imag(Z).2)。,2020/5/10,87,复数的辐角,用angle计算复数的辐角。该函数的语法格式为P=angle(Z),2020/5/10,88,复数的乘除法,复数的乘除法运算由“*”和“/”实现。例:m=4+2i;n=2-5i;m*nans=18.0000-16.0000im/nans=-0.0690+0.8276i,2020/5/10,89,复数的指数运算,用exp函数进行复数的指数运算。该函数的调用格式为Y=exp(Z)其中Z为复数数组。,2020/5/10,90,复数的对数运算,用log函数进行复数的对数运算。该函数的调用格式为Y=log(Z)其中Z为复数数组。,2020/5/10,91,复数的平方根运算,用sqrt函数进行复数的平方根运算。该函数的调用格式为B=sqrt(Z)该函数返回复数数组Z中每个元素的平方根。,2020/5/10,92,复数的幂运算,复数的幂运算的形式为Zn,结果返回复数Z的次幂。例:(3+i)2ans=8.0000+6.0000i,2020/5/10,93,复数的三角函数运算,复数的三角函数运算函数参见下表。,2020/5/10,94,求方程的复数根,用solve函数可以求方程的复数根。例:解方程x2+1=0。z=solve(x2+1=0)z=i-i如果方程为多项式形式,可以用roots函数进行求解。,2020/5/10,95,复变函数的积分,利用int函数,可以求复变函数的不定积分和定积分。例:求积分。symsz;int(exp(z),z,-pi*i,0)ans=2,2020/5/10,96,绘复变函数的图形,绘二维图形绘三维图形,2020/5/10,97,复数(数组、矩阵)的图形,可以用plot函数绘复数(数组、矩阵)的图形。语法格式为plot(Z)其中,Z为复数向量或矩阵,等价于plot(real(Z),imag(Z)。,2020/5/10,98,复变函数的三维图形,假设f(z)为复变函数,在指定的范围内,用曲面的高度表示实部(real(f(z),颜色表示虚部(imag(f(z),颜色映射通过变化HSV颜色模型中的饱和度。用cplxmap函数绘制复变函数的图形,语法格式为cplxmap(z,f(z),bound),其中,z指定范围,f(z)为复变函数。用cplxgrid函数生成极坐标复数网格。z=cplxgrid(m)是一个(m+1)(2*m+1)的复数极坐标网格。,2020/5/10,99,复变函数的图形示例,绘函数f(z)=z的图形。colormap(hsv(64)z=cplxgrid(30);cplxmap(z,z)title(z)生成下图。,绘函数f(z)=z3的图形。cplxmap(z,z.3)title(z3)生成下图。,第11章运筹学的MATLAB实现,线性规划与非线性规划整数规划最大最小化多目标决策,2020/5/10,101,线性规划与非线性规划,线性和非线性最优化问题请参见第8章8.28.4节的内容。二次规划如果某非线性规划的目标函数为自变量的二次函数,约束条件全是线性函数,就称这种规划为二次规划。利用quadprog函数求解二次规划问题。,2020/5/10,102,整数规划,主要介绍0-1规划,0-1规划是一种特殊形式的整数规划。用bintprog函数求解0-1规划问题。,2020/5/10,103,最大最小化,最大最小化问题的数学模型为式中x,b,beq,lb和ub为矢量,A和Aeq为矩阵,c(x),ceq(x)和F(x)为函数,返回矢量。F(x),c(x)和ceq(x)可以是非线性函数。fminimax使多目标函数中的最坏情况达到最小化。,2020/5/10,104,多目标决策,多目标决策问题的数学模型为式中x,weight,goal,b,beq,lb和ub为矢量,A和Aeq为矩阵,c(x),ceq(x)和F(x)为函数,返回矢量。F(x),c(x)和ceq(x)可以是非线性函数。利用fgoalattain函数求解多目标达到问题。,第12章多元统计分析的MATLAB实现,多元线性回归分析聚类分析判别分析因子分析,2020/5/10,106,多元线性回归分析,多元线性回归的回归模型为y=b0+b1xi1+b2xi2+bnxin,i=1,2,n模型中各系数与常数项通常还是利用最小二乘法来求得。全回归分析回归诊断逐步回归分析,2020/5/10,107,全回归分析,用regress函数进行多元线性回归分析,利用该函数得到的是全回归结果。,2020/5/10,108,回归诊断,用regstats函数进行线性模型的回归诊断。,2020/5/10,109,逐步回归分析,用stepwise函数进行逐步回归,它使用交互环境(如下图)进行分析。,2020/5/10,110,聚类分析,主要介绍系统聚类分析方法。系统聚类法是聚类分析中应用最为广泛的一种方法,它的基本原理是:首先将一定数量的样品或指标各自看成一类,然后根据样品(或指标)的亲疏程度,将亲疏程度最高的两类进行合并。然后考虑合并后的类与其他类之间的亲疏程度,再进行合并。重复这一过程,直至将所有的样品(或指标)合并为一类。,2020/5/10,111,系统聚类分析用到的函数,2020/5/10,112,判别分析,判别分析是利用原有的分类信息,得到体现这种分类的函数关系式(称之为判别函数,一般是与分类相关的若干个指标的线性关系式),然后利用该函数去判断未知样品属于哪一类。对于给定的数据,用classify函数进行线性判别分析,用mahal函数计算马氏距离。,2020/5/10,113,因子分析,因子分析是一种降维方法。需要用模型解释数据内部的相关性时,使用因子分析法进行分析。MATLAB中,用factoran函数进行因子分析。,第13章计算方法的MATLAB实现,一元非线性方程求解线性方程组的数值解法非线性方程组的数值解法插值曲线拟合数值微分数值积分常微分方程的数值解,2020/5/10,115,一元非线性方程求解,可用fzero函数和roots函数求解一元非线性方程。用fzero函数求一元非线性方程的零点。用roots函数计算多项式的根。,2020/5/10,116,线性方程组的数值解法,基于矩阵变换的直接解法Jocabi迭代法Gauss-Seidel迭代法SOR(超松弛)迭代法,2020/5/10,117,非线性方程组的数值解法,不动点迭代法Newton迭代法拟Newton法,2020/5/10,118,插值,一维插值二维插值多维插值Lagrange插值Newton插值,2020/5/10,119,一维插值,多项式插值用函数interp1进行一维插值。可选的插值方法包括:最近邻插值线性插值三次样条插值三次插值FFT插值函数interpft用基于FFT的方法进行一维插值。,2020/5/10,120,二维插值,用函数interp2进行二维插值。可选的插值方法包括:最近邻插值双线性插值双三次插值,2020/5/10,121,多维插值,函数interp3进行三维插值,可选的插值方法包括:最近邻法线性插值三次插值用interpn函数进行更高维数据的插值,同样有最近邻插值、线性插值和三次插值三种方法。,2020/5/10,122,曲线拟合,最小二乘法多项式曲线拟合相关工具,2020/5/10,123,最小二乘法,最小二乘法通过最小化残差的平方和来获得待定系数的估计。常见的最小二乘法包括线性最小二乘、加权线性最小二乘、稳健最小二乘和非线性最小二乘等。求解非线性最小二乘问题的Gauss-Newton法和Levenberg-Marquart法是老牌算法。,2020/5/10,124,多项式曲线拟合,用polyfit函数计算拟合数据集的多项式在最小二乘意义上的系数,调用形式为p=polyfit(x,y,n)x和y是包含要拟合的x和y数据的矢量,n是多项式的阶次。,2020/5/10,125,拟合工具,MATLAB支持用下图所示的拟合界面进行曲线拟合。,2020/5/10,126,数值微分,数值微分运算数值梯度运算中心差分,2020/5/10,127,数值微分运算,可以用diff函数实现数值微分运算。例:x=375;042;diff(x)ans=-3-3-3,2020/5/10,128,数值梯度运算,用gradient函数进行数值梯度运算。例:v=-2:0.2:2;x,y=meshgrid(v);z=x.*exp(-x.2-y.2);px,py=gradient(z,.2,.2);contour(v,v,z),holdon,quiver(v,v,px,py),holdoff,2020/5/10,129,中心差分,使用del2函数可以实现中心差分。,2020/5/10,130,数值积分,梯形求积Simpson求积Lobatto求积Gauss求积Romberg求积二重积分三重积分,2020/5/10,131,常微分方程的数值解,显式和线性隐式常微分方程问题求解完全隐式常微分方程问题求解边界值常微分方程问题求解改进的Eulor法线性多步法,第14章偏微分方程数值解的MATLAB实现,一维偏微分方程的求解二维偏微分方程的求解用GUI求解偏微分方程,2020/5/10,133,一维偏微分方程的求解,MATLAB使用pdepe求解器求解一维PDE,要求一维PDE具有下面的形式:其中,。区间a,b必须是有界区间。m可以是0,1或2,分别表示平面对称、柱面对称和球面对称。如果m0,则a必须大于等于0。,2020/5/10,134,二维偏微分方程的求解,利用MATLAB提供的偏微分方程数值解工具箱,可以求解二维PDE问题。可求解的问题包括椭圆型问题、抛物型问题、双曲型问题、特征值问题和非线性问题等。该工具箱使用有限单元法进行数值求解。,2020/5/10,135,基本二维偏微分方程问题及其求解函数,基本二维偏微分方程问题及其求解函数如下表所示。,2020/5/10,136,用GUI求解偏微分方程,在MATLAB命令窗口中输入命令:pdetool,然后单击回车键,显示PDE图形用户界面,如下图所示。可以在该工具中可视地完成整个建模、求解和绘图任务。,2020/5/10,137,用GUI求解偏微分方程的基本步骤,一般地,利用PDE图形用户界面求解PDE问题的过程分为以下几步:选择应用模式;建立几何模型;定义边界条件;定义PDE类型和PDE系数;三角形网格剖分;PDE求解;解的图形表达。其中前5步可称为前处理,第7步可称为后处理。,第15章计算几何的MATLAB实现,点与多边形的包含关系矩形的集合运算凸包Delaunay剖分Voronoi图最近邻搜索,2020/5/10,139,点与多边形的包含关系,用inpolygon函数可以测试点是否位于在多边形区域内部。,2020/5/10,140,矩形的集合运算,MATLAB用rectint函数求矩形区域的交。,2020/5/10,141,凸包,二维点集的凸包N维点集的凸包,2020/5/10,142,二维点集的凸包,用convhull函数计算平面点集的凸包。例:下面的代码首先在极坐标中生成一系列点,用pol2cart函数将它们转换到笛卡儿坐标,然后用convhull函数计算点的凸包,用plot函数,用红色实线画出凸包线。xx=-1:.05:1;yy=abs(sqrt(xx);x,y=pol2cart(xx,yy);k=convhull(x,y);plot(x(k),y(k),r-,x,y,b+),2020/5/10,143,N维点集的凸包,用convhulln函数求N维点集的凸包。根据维数的不同,可用不同方法绘convhulln函数输出数据的图形。对于2维情况,使用plot函数绘图。对于3维情况,使用trisurf函数绘图。使用patch函数绘图,对小面颜色可以有更多的控制。对于3维以上的情况,不能绘图。,2020/5/10,144,Delaunay剖分,二维Delaunay剖分三维Delaunay剖分N维Delaunay剖分,2020/5/10,145,二维Delaunay剖分,对于给定的点集,Delaunay三角网是连接每个点及其相邻点的线段集。可以用delaunay函数实现二维Delaunay三角剖分,2020/5/10,146,三维Delaunay剖分,用delaunay3函数进行三维Delaunay剖分。,2020/5/10,147,N维Delaunay剖分,用delaunayn函数进行N维Delaunay剖分。,2020/5/10,148,Voronoi图,考虑共面点集P,对于P中的每个点Px,总存在一个多边形边界,边界内的点到该点的距离比到其他任何点的距离都小。称这个多边形边界为Voronoi多边形,给定点集的所有Voronoi多边形构成的集合称为Voronoi图。,Voronoi图与Delaunay三角网有关Delaunay三角形外接圆的圆心与Voronoi多边形的顶点重合,如右图所示。,2020/5/10,149,二维Voronoi图,用voronoi函数绘二维Voronoi图。例:下面的代码用voronoi函数绘10个随机点的Voronoi图。rand(state,5);x=rand(1,10);y=rand(1,10);voronoi(x,y),2020/5/10,150,N维Voronoi图,用voronoin函数绘N维Voronoi图。,2020/5/10,151,最近邻搜索,用desearch函数进行最近点搜索。用dsearchn函数进行N维最近点搜索。用tsearch函数搜索最近Delaunay三角形。,第16章科学计算可视化的MATLAB实现,曲面数据的可视化体数据的可视化,2020/5/10,153,曲面数据的可视化,表现标量特征等值线图表现矢量特征矢量图,2020/5/10,154,等值线图,等值线图通过将空间上一定范围内值相等的点依次连线来反映数据的分布特征。用contour函数生成二维等值线图。用contourf函数填充二维等值线图。用contour3函数绘三维等值线图。,2020/5/10,155,矢量图,矢量图用箭头显示图中各点处的矢量大小和方向。其中,箭头指示的方向为矢量的方向,箭头的长短表示矢量的大小。用quiver函数绘二维矢量图。用quiver3函数绘三维矢量图。,2020/5/10,156,体数据的可视化,表现标量特征表现矢量特征,2020/5/10,157,表现体数据的标量特征,可以用剖面图、等值面图、等帽盖图等表现体数据的标量特征。下面左图为剖面图,右图为等值面图和等帽盖图的叠加。,2020/5/10,158,表现体数据的矢量特征,科学计算中往往会生成大量矢量数据,使用特定图形表现数据特征,具有直观、高效的特点。MATLAB中提供的用于表现体数据矢量特征的图形有流线图、流管图、流沙图、流锥图、流带图和卷曲图等。下面左图为流线图,右图为流锥图。,第17章图形用户界面设计,图形用户界面开发环境(GUIDE)菜单控件对话框GUI设计实例,2020/5/10,160,图形用户界面开发环境,启动GUIDE输出编辑器GUIDE模板菜单编辑器对象属性查看器位置调整工具对象浏览器Tab顺序编辑器运行GUIGUIFIG文件和M文件,2020/5/10,161,启动GUIDE,在命令窗口中键入guide,启动GUIDE,显示下图所示的“GUIDEQuickStart”对话框。,2020/5/10,162,输出编辑器,在GUIDE中打开GUI以后,它显示在输出编辑器中。输出编辑器是所有GUIDE工具的控制面板。,2020/5/10,163,GUIDE模板,“GUIDEQuickStart”对话框提供了几种基本类型的GUI模板。使用模板的好处是可以通过修改模板来快速创建GUI。选择一种模板以后,它的预览效果显示在右面的面板中。,2020/5/10,164,菜单编辑器,利用菜单编辑器,可以创建、设置、修改下拉式菜单和弹出式菜单。在GUIDE中单击工具栏上的按钮,或者选择“Tools”菜单中的“MenuEditor”选项,打开菜单编辑器的界面,如下图所示。,2020/5/10,165,对象属性查看器,利用对象属性查看器,可以查看每个对象的属性值,也可以修改、设置对象的属性值,从对象设计编辑器界面工具栏上选择,或者选择“View”菜单下的“PropertyInspecter”选项,打开对象属性查看器,如右图所示。,2020/5/10,166,位置调整工具,利用对象对齐工具,可以很方便地对对象设计编辑器中对象设计区内多个对象的位置进行调整。从对象设计编辑器界面的工具栏上选择按钮,或者选择“Layout”菜单下的“AlignObjects”选项,可以打开对象位置调整器,如下图所示。,2020/5/10,167,对象浏览器,利用对象浏览器,可查看当前设计阶段的各个句柄图形对象。从对象设计编辑器界面的工具栏上选择,或者选择“Tools”菜单下的“ObjectBrowser”选项,可以打开对象浏览器,如下图所示。,2020/5/10,168,Tab顺序编辑器,利用Tab顺序编辑器,可以设置用户按下键盘上的Tab键时,对象被选中的先后顺序。单击工具栏上的按钮,或者选择“Tools”菜单下的“TabOrderEditor”选项,可以打开Tab顺序编辑器,如下图所示。,2020/5/10,16

温馨提示

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

评论

0/150

提交评论