《MATLAB第4章-高等数学运算(2)课件》由会员分享,可在线阅读,更多相关《MATLAB第4章-高等数学运算(2)课件(27页珍藏版)》请在金锄头文库上搜索。
1、4.1空间解析几何与向量代数4.1.1向量代数的运算4.1.2空间曲面和曲线的绘制4.2多元函数微分学的应用4.2.1空间曲线的切线与法平面4.2.2方向导数和梯度4.2.3多元函数的极值及其求法4.2.4最小二乘法(曲线拟合)4.2.5数据插值运算4.3无穷级数4.3.1函数的幂级数展开4.3.2傅里叶级数展开4.4微分方程的求解4.4.1微分方程的解析解4.4.2微分方程的数值解第4章 高等数学运算(2)4.1空间解析几何与向量代数空间解析几何与向量代数 空间解析几何与向量代数是多元函数的微分或求导、重积分和曲面积分的基础。结合MATLAB语言的编程特点,本节介绍MATLAB在向量代数运算
2、向量代数运算中的基本命令格式和使用方法,包括向量的加减运算、数量积(点积或内积)、向量积(叉积或外积)和混合积的运算方法;介绍空间曲线、空间直线、空间曲面和二次曲面的方程表达, 以及它们之间的关系运算和空间绘图。4.1.1向量代数的运算向量代数的运算 向量代数的运算可分为向量、空间距离、空间直线间的夹角、空间直线与平面、及平面间的夹角等计算。 1. 向量的向量的计算算2. 2. 空间距离的计算空间距离的计算 空间距离可以根据距离公式进行计算。如空间一点P0(x0,y0,z0)到平面S:Ax+By+Cz+D=0的距离的计算公式为例例4-3 求点(2,1,3)到平面S:x+3y-2z-1=0的距离
3、。程序:clear; P=2,1,3; S=1,3,-2; D=-1;d=abs(sum(P.*S)+D)/sqrt(sum(S.2) %计算P到S的距离d = 0.53454.1.1向量代数的运算向量代数的运算3. 3. 夹角的计算夹角的计算 设一个平面方程为S: Ax+By+Cz=0,则n=(A,B,C)表示S平面的一个法线向量。设一个直线方程L的方向向量为s=(u,v,w),则由两个平面S1: A1x+B1y+C1z=0,S2: A2x+B2y+C2z=0, 相交所构成的直线L的方向向量为s=n1n2=(u,v,w)其中,n1=(A1,B1,C1),n2=(A2,B2,C2)4.1.1向
4、量代数的运算向量代数的运算4.1.2空间曲面和曲线的绘制空间曲面和曲线的绘制在第1章中对三维图形的绘制方法作了一般性介绍。下面结合空间曲面和曲线的概念与特点作进一步介绍。1. 1. 空间曲面的绘制空间曲面的绘制 在绘制空间曲面之前,首先应将空间曲面方程写成z=f(x,y)的形式,分别指定x轴和y轴上的取值范围和取值点并生成坐标向量x和y;再利用命令语句X,Y=meshgrid(x,y)生成x-y平面上的网格点矩阵X,Y以及求解出对应的空间值Z=f(X,Y);最后利用绘图语句,如mesh(z)或mesh(X,Y,z),绘制出三维图形。其它绘图命令格式可参考章节1.7.3中的内容。2. 2. 空间
5、旋转面的绘制空间旋转面的绘制 绘制旋转面的基本命令格式为 cylinder(z)或cylinder(z,n)命令函数cylinder(z,n)的功能是生成旋转面的网格矩阵。MATLAB指定的是以z轴为旋转轴,即沿任何轴旋转的结果均转为z轴旋转。n是指定旋转圆周上母线的分格线的条数,缺省时是20(与cylinder(z)相同)。4.1.2空间曲面和曲线的绘制空间曲面和曲线的绘制3.3.空间曲线的绘制空间曲线的绘制4.2 元函数微分学的应用元函数微分学的应用 多元函数的极限、求导方法已在章节3.1和3.3中作了介绍,本节进一步介绍多元函数微分计算在梯度、方向导数等方面的应用。4.2.1 空间曲线的
6、切线与法平面空间曲线的切线与法平面4.2.2方向导数和梯度方向导数和梯度 由方向导数和梯度的概念可知, 方向导数表示函数在某一点上沿某一方向的变化率,而其模值最大的方向导数就是该点的梯度。一元函数的导数就是它的方向导数和梯度。曲面的法线与曲面的梯度垂直。如果二元函数z=f(x,y)在点P0(x0,y0)可微,则函数在该点上沿任一方向l的方向导数为4.2.3 多元函数的极值及其求法多元函数的极值及其求法1. 多元函数的极多元函数的极值分析分析 若z=f(x,y)在(x0,y0)的某个域内连续且存在一、二阶连续偏导,且fx(x0,y0)=0,fy(x0,y0)=0。令A= fxx(x0,y0),B
7、=fxy(x0,y0),C= fyy(x0,y0),则有:当AC-B20时,有极值,且A0时有极小值;当AC-B20时没有极值;当AC-B2=0时极值不确定,需进一步分析。2. 多元函数的条件极值多元函数的条件极值(拉格朗日乘数法拉格朗日乘数法)(1) 二元函数拉格朗日乘数法二元函数拉格朗日乘数法函数z=f(x,y)在约束方程(x,y)=0下取极值的拉格朗日函数为L(x,y)= f(x,y)+(x,y)其中为参数。对L求x,y的一阶偏导数,并使之为零。再考虑条件函数(x,y)=0,则可得到极值求解方程组(2) 三元函数拉格朗日乘数法三元函数拉格朗日乘数法 同理可得三元函数u=f(x,y,z)在
8、(x,y,z)=0, (x,y,z)=0下取极值的拉格朗日函数 L(x,y,z)= f(x,y,z)+ (x,y,z)+(x,y,z)的极值求解方程组 4.2.3 多元函数的极值及其求法多元函数的极值及其求法4.2.4 最小二乘法最小二乘法(曲线拟合曲线拟合)曲线拟合是指: 根据一组实测数据xi,yi,i=1,2,3,.,n,通过逼近或估计方法得到一个近似函数y=f(x),使得f(xi)与yi之间的偏差在整体上最小,称为最佳曲线拟合。最小二乘法是数据的曲线拟合的常用方法之一,是指在各数据点上,f(x)与f(xi)的偏差的平方和取最小值条件下的线性拟合, 即最小方差曲线拟合。MATLAB给出的常
9、用的最小二乘(也称多项式)拟合命令的调用格式为:P=polyfit(X,Y,n)其中,X=xi,Y=yi;n为指定的拟合曲线的多项式阶次。4.2.5 数据插值运算数据插值运算数据插值运算是指在原有实测数据的自变量之间插入一些值,利用插值方法得到对应的函数值。MATLAB插值函数命令可直接得到这些插值点上的函数值。常用的一元插值函数命令格式为: yi = interp1(x,Y,xi) yi = interp1(Y,xi) yi = interp1(x,Y,xi,method)其中,x,Y 为原始测量数据向量;xi 为插值点向量;yi为xi对应的插值运算值;method为插值运算时采用的数值处理
10、方法。4.3无穷级数无穷级数在章节2.2和31.3中已介绍了关于常数项级数和函数级数的求和、极限与收敛等问题。本节主要讨论无穷级数,如幂级数或傅立叶级数的展开表示及相关运算。无穷级数的一般可表示为:4.3.1 函数的幂级数展开函数的幂级数展开 函数f(x)能在x=x0处展开成幂级数的条件是f(x)在点x0的某一邻域(收敛半径)内具有直到(n+1)阶导数。在该邻域内f(x)的n阶泰勒级数公式为MATLAB的泰勒级数展开命令格式为: y=taylor(f,x,k) y=taylor(f,x,k) 在x=0处将符号函数f展开为k-1阶泰勒级数(麦克劳林级数),k缺省时前6项和。 y=taylor(f
11、,x,k,x0) y=taylor(f,x,k,x0) 在x=x0处将符号函数f展开为k-1阶泰勒级数。或 y=y=taylortaylor(f ,(f ,x,kx,k) ) y=y=taylortaylor(f ,x,k,x0)(f ,x,k,x0)2024/7/22184.3.2 傅里叶级数展开傅里叶级数展开1 1 周期为周期为22的傅立叶级数的展开的傅立叶级数的展开设f(x)是周期为2的连续周期函数,且能展开成三角级数:2. 2. 周期为周期为2 2l l的傅立叶级数的展开的傅立叶级数的展开 对于以2为周期的函数,其三角级数的角频率为=2f,周期为T=1/f= 2/,即周期为T所对应的角
12、频率为=2/T。对于周期为2l时,则角频率为=/l。作变量代换z=x/l,则-lxl时,有-z。所以对于周期为2l、变量为z的函数f(z),其傅立叶级数同样是4.3.2 傅里叶级数展开傅里叶级数展开3. 3. 周期为周期为2 2l l的傅立叶级数的复数形式的傅立叶级数的复数形式4.3.2 傅里叶级数展开傅里叶级数展开4.4 微分方程的求解微分方程的求解 通常,微分方程可分为常微分方程(由一元函数构成的一阶或高阶微分方程)和偏微分方程(由多元函数构成的一阶或高阶微分方程组);求解条件可分为通解(一般解)和初值条件解(特解);求解方法可分为解析解和数值解。MATLAB提供了两类常用的解析解和数值解
13、的函数命令格式,可满足上述微分方程的求解问题。微分方程的求解是一较复杂和繁琐的过程,需要利用微分方程的结构特点采用合适的变换方法和求解技巧。使用MATLAB求解时一般不需考虑太多的因素,但需要注意求解过程的方式方法,否则可能会出现不正确的结果。 4.4.1 微分方程的解析解微分方程的解析解常用求解微分方程解析解的命令格式与常用求解微分方程解析解的命令格式与说明表明表4-3。2. 2. 特殊问题的求解特殊问题的求解1. 1. 一般问题的求解一般问题的求解4.4.1 微分方程的解析解微分方程的解析解4.4.2 微分方程的数值解微分方程的数值解在许多情况下,尽管对简单的微分方程,其解析解也不存在,因
14、而用dsolve()将无法得到期望的结果。如单摆运动方程就是如此。在工程实践中,微分方程的数值解是一种有效的处理方法。对用dsolve()无法求解的微分方程,利用数值解数值解的方法,通常都能得到很好的求解结果。1. 1. 数值解的命令格式数值解的命令格式4.4.2 微分方程的数值解微分方程的数值解1. 1. 数值解的命令格式数值解的命令格式MATLAB提供了一类求解微分方程y=f(t,y)的数值解方法,称为微分方程数值解求解器(solver)。其通用格式为:T,Y=solver(odefun,tspan,y0,options) 其中,返回向量T是数值解函数值y所对应的横坐标向量(这里以时间为变
15、量); 返回量Y是对应于T和由各数值解函数值列向量所组成的解矩阵;4.4.2 微分方程的数值解微分方程的数值解2. Solver2. Solver数值解实现的步骤数值解实现的步骤1) 将高阶微分方程转化为一阶微分方程组。根据建立的微分方程(组)及初始条件,通过变量代换分别将微分方程(组)及初始条件转换为一阶微分方程组和初值的向量表示;2)建立方程组的M函数文件;3) 设置其它参数:自变量取值区间tspan, 初值向量y0, 和误差容限选项options(可省略);4)选择合适的solver类型, 并给出函数文件及参数。求出原函数和其各阶导数函数的解。4.4.2 微分方程的数值解微分方程的数值解