《基于MATLAB的高等数学问题求解》学习笔记

《基于MATLAB的高等数学问题求解》学习笔记
《基于MATLAB的高等数学问题求解》学习笔记

第六章:函数,极限与连续的MATLAB

1 映射与函数。

(1)集合(更多的是用于数组间的运算):ismember(一个个元素判断是否是子集,返回一个数组);intersect(求交集,返回结果数组);setdiff(a,b)(求差集,属于a不属于b的数组);union (求并集)。

(2)函数:定义方法:y=@(x)f(x);syms x y=f(x);y=sym(‘f(x)’);

求反函数:finverse(f,t);求复合函数f(g(x)):y=compose(f,g);

2 求极限。

(1)求数列极限:limit(xn, n, inf);limit(xn, inf)。

(2)求函数极限:limit(fx, x, x0(, ‘left’) );limit(fx, x, inf)。

3 函数的连续性与间断点。

(1)判断连续性的函数代码:P144。

(2)判断x0是否是函数f(x)的间断点的函数代码:(P146,文件夹MATLAB学习中的程序储存里)。

实际应用中,可以根据绘图来判定是否是间断点。

(3)求函数区间的方法:P215。

第七章:导数与微分的MATLAB求解

1 导数求解:

diff(fx,x,n)后面2个可以省略,则是求导函数;

隐函数的导数求解见P156的2个例子;稍微总结就是把y定义为y=sym(‘y(x)’),然后定义隐函数的表达式为F=…,把表达式等号右侧置为0,左侧为F函数表达式,之后:diff(F,x)。

参数方程确定的函数的导数P157。

2 洛必达法则:P168.

3 泰勒公式:

P172.另外,MATLAB有taylor(fx,x,n,a)。MATLAB提供了泰勒级数逼近分析界面:taylortool,

4 函数的凹凸性与曲线的单调性:

求函数单调区间及各个区间单调性的判定:P175。

求凹凸性与拐点的程序:P179。

求方程实根从而可以进行一些特殊数值表达式的求解(比如(-8)

^(1/3)的求解)的函数代码:P176。

5 函数的极值与最值:

求极值点与极值:P182。MATLAB自带求极小值的函数:[x,fval,exitflag,output]=fminbnd(fun,x1,x2,options,p1,p2,……)求在(x1,x2)范围内fun函数的极值,后面几项内容可以不填,那么输出的也只有前面两项了。余下的参数都是与优化有关的参数。在求极值的基础上可以进行最值的求取。

6 曲线的渐近线:

求曲线渐近线的代码:P186。

7 曲线的曲率:

求一般函数和由参数方程确定的函数的曲率的代码:curvature.m

绘制一般函数或者由参数方程决定的函数的渐屈线(曲率圆圆心形成坐标点形成的曲线)的代码:Evolute_Draw.m

8 求方程的近似解(待学习《数值分析》):

(1)逐步扫描法求根所有可能存在的区间代码:RootInterval.m。(2)二分法在MATLAB上的实现:bisect.m。(EZPLOT即:Easy to use function plotter。它是一个易用的一元函数绘图函数。特别是在绘制含有符号变量的函数的图像时,ezplot要比plot更方便。因为plot绘制图形时要指定自变量的范围,而ezplot无

需数据准备[1],直接绘出图形。)

(3)牛顿法及其在MATLAB上的实现:newton.m。

(4)MATLAB自带求解函数,求解一元函数的零点:[x, fval, exitflag, output]=fzero(fun, x0, options, p1, p2, ……);

求fun函数的零点,x0是初始值,可以是标量也可以是长度为2的向量,options是设置的过程参数,p1,p2是附加参数,x 是返回的根,fval是根x处的目标函数值,exitflag表明解存在的情况。注:xlim的代指功能,可以直接代指上次使用的取值范围。

9 导数的数值求解(待学习《数值分析》):

(1)插值型求导公式:polyfit函数:

Polyder函数:

k = polyder(p)返回多项式p的导数表达式的系数。

k = polyder(a,b)返回多项式a和b乘积的导数表达式系数。

[q,d] = polyder(b,a)返回多项式b/a的分子q和分母d。

求出插值函数并求在xi处n阶导的程序:poly_str.m。

(2)中心差分公式:仍用diff公式来求。自编函数:diff_ctr.m。

第八章:积分的MATLAB求解

1 不定积分与定积分求解与一部分应用:

(1)MATLAB:int(fx, x)。MATLAB自带求定积分函数:int(fx, x, a, b)。在[a,b]区间上的定积分。

(2)自编求解定积分的函数:int_geo.m。

(3)使用定积分求平面图形面积(平面坐标与极坐标):

GraphicArea.m。

(4)求两个函数交点从而确定区间的方法:CrossPoint.m。

(5)求立体体积并绘制出来:SolidVolume.m(求立体体积,其中包含子函数DrawSolid用来绘制图形)。

(6)平面曲线弧长计算(由参数方程表示的函数曲线,在直角坐标与曲线坐标下实现):ArcLength.m。

2 反常积分:

(1)积分区间涉及到无穷大的积分称为反常积分,可以收敛也可以发散:int(fx, x, -inf, a);int(fx, x, a, inf)。

(2)无界函数(存在瑕点)的反常积分:任然使用int函数。

(3)Γ函数(意义以及用途?)求积分:gamma(x),x为自变量的值,必须是实数。

3 积分的数值求解(待学习《数值分析》):

(1)定积分的数值求解:a.插值型求积方法Newton-Cotes公式(存在原理上的不理解,待学习《数值分析》):InterpolatoryQuad.m。

polyfit函数是matlab中用于进行曲线拟合的一个函数。其数

学基础是最小二乘法曲线拟合原理。曲线拟合:已知离散点上

的数据集,即已知在点集上的函数值,构造一个解析函数(其

图形为一曲线)使在原离散点上尽可能接近给定的值。调用方

法:polyfit(x,y,n)。用多项式求过已知点的表达式,其中x为源数据点对应的横坐标,可为行向量、矩阵,y为源数据点对应的纵坐标,可为行向量、矩阵,n为你要拟合的阶数,一阶直线拟合,二阶抛物线拟合,并非阶次越高越好,看拟合情况而定。

对之进行精确度上的改进,使用各种复化求积公式:程序见ComplexQuad.m。

(2)高斯求积方法:程序见Gauss_legendre.m。

(3)MATLAB自带定积分数值求解函数:trapz(x,y,dim)基于复化梯形公式编写的;quad(fun,a,b,tol,trace,p1,p2,……)辛普森法设计,还有更高精的quad1函数。

quad用的是Simpson积分法,在低精度的非光滑曲线计算中是最有效的。而quadl用的是Lobatto积分法,在高精度的光滑曲线计算中更为高效。

(4)反常积分的数值求解:a.遇到无界函数的反常积分时,优先使用MATLAB自带函数;b.无穷限的反常积分的无穷区间逼近法:求解程序:quad_inf.m。c.使用变量替换的方法把无穷区间变为有限区间的积分然后求解。d.MATLAB自带函数:

[q,errbnd]=quadgk(fun,a,b,param1,vall,param2,val2……)

第九章:级数的MATLAB求解

1 常数项级数及其审敛法

常数项级数(这里假设所有项均>=0)及其审敛法:

a.与等比级数比较:比值审敛法与根值审敛法,基于以上2种

方法的程序:PositiveIermSeries.m。

b.基于与p级数比较得出的审敛法,程序:LimitSeries.m。

c.交错级数审敛法:AlternatingSeries.m。

2 幂级数

(1)求幂级数的收敛半径(关于界点处的收敛情况要视情况而定):ConvergenceRadius.m。

(2)函数展开成幂级数:MATLAB自带的taylor求解.

3 傅里叶级数(展开成三角级数):

(1)函数的傅里叶级数的符号求解程序:fseriessym.m;利用数值积分求解傅里叶级数的程序:fseriesquad1.m。

(2)正弦级数与余弦级数(与函数的奇偶性有关,奇函数为正弦函数,偶函数为余弦函数,返回函数的性质):fseries.m。

4 级数求和与序列求和。

(1)常数项级数求和:MATLAB:symsum(s,v,a,b)来求。

(2)幂级数求和也是用symsum来求。

(3)序列求和经过变化后借用symsum求和。

第十章:代数方程组的MATLAB求解

1 线性方程组的求解。

(1)克莱姆法则的实现(求解恰定方程组):Cramer.m。程序中用到了MATLAB自带的函数det(A),求解行列式A的值。运行速度极慢。

(2)消去法及其MATLAB实现:A.上三角方程组的求解:TRIUEQU.m。B.高斯消去法:Gauss.m。C.矩阵分解法(LU分解):LU_Equ.m。D.迭代法(各种迭代法的集大成,查阅数值分析):Equ_iter.m。E.MATLAB自带求通解的函数(只能求线性方程组):null()(需要查阅线性代数相关书籍。)G.非齐次线性方程组求解:g1:恰定线性方程组:逆矩阵法:x=inv(A)*b;

左除法:x=A\b(这个好些)。g2:欠定线性方程组:左除法与伪逆法求特解,用null函数求通解。g3:超定线性方程组:(求最小二乘解)左除法:x=A\b;伪逆法:x=pinv(A)*b。(求非负最小二乘解)x=lsqnonneg(A,b)。综合的程序见LinearEqs.m(有具体求解通解以及特解的方法)。

2 多项式方程组的准解析解法:

用solve函数求解,要求内部是符号变量。

3 超越方程组的求解。

(1)牛顿法(查阅数值分析)及其MATLAB实现:Newtons.m。(2)超越方程组的MATLAB自带函数求解:使用fsolve函数,其参数类似于fzero函数。arrayfun函数用于对数组中每个元素进行相同的函数操作。

第十一章:向量代数与空间解析几何的MATLAB求解

1向量及其线性运算

(1)向量的绘制函数:P290(欠缺绘图函数)。

(2)MATLAB自带norm函数计算向量的模或者两点间的距离,鉴于不支持符号量的输入,编写了新的程序:P293。

(3)求向量方向余弦的函数(绘制或者计算):P295。

2 数量积,向量积与混合积

(1)两向量的数量积:dot(a,b)。

(2)两向量的向量积:cross(a,b)。

(3)两向量的混合积:(a×b)·c。

3 曲面及其方程

(1)绕x轴旋转方程为:f(x,±√y2+z2)=0,,绕y轴旋转方程为:f(y,±√x2+z2)=0,绕z轴旋转方程:f(±√x2+y2,z)=0。(2)MATLAB中提供了cylinder(r,n)函数来绘制绕z轴旋转的曲面。

更具有一般性的函数:P303。(没看懂,待复习绘图后看)(3)绘制柱面函数:P304。

(4)绘制二次曲面的MATLAB函数:P307。(没看懂,待复习绘图后看)

4 空间曲线及其方程

(1)

第十二章:多元函数微分学的MATLAB求解1多元函数的基本概念。

(1)多元函数在MATLAB中的定义方法:P323,建议使用syms x,y,z……f=……;f=(‘’);f=@(x,y,z)……。

(2)多元函数的极限求法:P326,求2次limit,一次求x0的,一次求y0的。

(3)多元函数连续性的定义。

2偏导数

求解程序:PartialDerivative.m。也可以用MATLAB中的diff函数P333,diff还可以求复合函数的偏导数。

隐函数的偏导数求解:P335——隐函数的存在定理以及求解公式。相

=F=-diff(f,xj)/diff(f,xi)。

应的MATLAB语句为:?xi

?xj

多个隐函数确定的偏导数求解公式以及隐函数存在定理P335。求解雅克比矩阵的方法:jacobian(f,v)。

两个二阶混合偏导数相等。

理解偏导数的几何意义。MATLAB中simple函数用来获取化简之后的最简表达式。

3全微分的求法

4多元函数的集合应用

绘制空间曲线在某点处的切线以及法平面:TangentNormPlane.m。适用于xyz均用参数t来表示,即用参数方程来表示。可以将其他形式的空间曲线表达式转化为参数方程形式,再进行求解。

绘制曲面上某点处的切平面和法线:TangentPlaneNormLine.m。

5方向导数与梯度

=(1)计算方向导数:DirectionalDerivative.m。使用公式为:?f

?l fx(x0,y0)cosα+fy(x0,y0)cosβ.

(2)dot函数:如果a,b均为实数的情况下,dot(a,b)与dot(b,

a)并无区别;但是在复数范围内取值,就是不同的情况了,MATLAB中的dot为内积函数,其定义为dot(A,B)= A'*B,即A的共轭转置乘以B,那么显然在复数范围内,dot(A,B)和dot(B,A)就是两个不同的向量了。

(3)matlab中三角函数sin、cos、tan等都是以弧度为单位的。如果想用角度有两种方法。一种是用sind、cosd、tand等,他们是角度为单位的另一种就是用deg2rad将角度转换为弧度。(4)梯度的概念及计算P346。

6多元函数的极值

(1)求二元函数的极值与极值点:Extremum2.m。MATLAB自带函数求取多元函数的极值:fminsearch(fun,x0,options,p1,p2)与fminunc(fun,x0,options,p1,p2)

(2)加ez的是处理符号函数的,不加ez的是处理数值函数的。mesh 的调用格式是mesh(X,Y,Z),其中X Y Z都必须是数值矩阵;

ezmesh的调用格式是ezmesh(FUN,DOMAIN),FUN为函数表达式,DOMAIN为自变量的取值范围。

(3)条件极值求法:P350。MATLAB自带公式:fmincon.m(参数太多,未懂)。

7多元函数的泰勒公式:mtaylor.m。

8最小二乘法及其MATLAB实现

通用最小二乘法求解程序:Least_square.m。实质就是在整个定义域范围里,函数拟合时使得函数算出来的值与该点真值的差最小。MATLAB中提供的求解最小二乘法类的函数:lsqcurvefit(fun,x0,xdata,ydata)。x0是最优化的初始值,该初值的选取要靠反复试验得出,最常见的是,第一步随意给一个,算出参数后,代入猜测的数据点的x值,以此为初值再次进行计算。

第十三章:重积分的MATLAB求解

1二重积分。

(1)计算:dbldefinition.m。

IN = inpolygon(X,Y,xv,yv)X,Y是待判断点的X和Y坐标,xv 和yv是多边形的顶点坐标,要顺时针或者逆时针饶一圈的,也就是xv(1)和xv(end),yv(1)和yv(end)是同一个值;IN是逻辑

量,1表示在多边形内,0表示在外面。

(2)二重积分的计算重要的是确定积分限,之后用2次int函数即可计算。

(3)fil(x1,y1,选项1,x2,y2,选项2,······)按向量元素的下标渐增次序依次用直线段连接x,y对应元素定义的数据点。假如这样连线所得的折线不封闭,那MATLAB会自动将折线首尾连接起来,形成封闭多边形。然后在多边形内部涂满指定颜色。(4)采用换元法进行计算,公式:

2三重积分

(1)进行三次积分运算,关键还是积分限的确定。理解代数限定法。(2)三重积分的换元法。公式见PPT。

3曲线积分

(1)第一类曲线积分的计算:ArcCurveInt.m。

(2)第二类曲线积分:CoordinateCurveInt.m。

4曲面积分,2类,见讲解视频。

5重积分的数值计算

(1)MATLAB矩形区域二重积分计算:dblquad(fun,a,b,c,d)。还可以继续设定参数进行运算。

(2)MATLAB一般区域二重积分计算:quad2d(fun,a,b,c,d),余下同上(效率最高)。也可以使用2次quad1函数进行计算。直接2次int,再用一次vpa函数。也可以使用区域延拓法(效率最低)。

(3)三重积分数值计算:使用MATLAB自带:triplequad(fun,a,b,c,d,e,f)函数。也可以直接3次int。

第十四章:常微分方程的求解

1几种常用微分方程的求解

(1)可分离变量方程的求解:SeparableVarseDe.m。

(2)齐次方程求解:HomogenDE.m。

(3)一阶线性微分方程求解套公式:

(4)伯努利方程的求解向一阶线性微分方程公式靠近,通过引入一个新的因子z进行变换。

(5)可降阶的高阶微分方程:。使用:ReduceDE1.m。

还可以解决以及类型的微分方程。

2高阶线性微分方程

(1)线性微分方程解的结构。

(2)MATLAB使用dsolve函数求解微分方程组。

3一阶微分方程初值问题的数值解

(1)数值分析里的Euler法:Explicit_Euler.m。

(2)经典4阶龙格库塔法:Classical_RK4.m。

4一阶微分方程组和高阶微分方程的数值解

(1)将第三节的单个一阶微分方程中的x,y代为向量,即可表示一阶微分方程组,解法:四阶龙格库塔法:Classical_RK4s.m。(2)高阶微分方程组解法:先化为一阶微分方程组问题,具体讲解见PPT。

(3)MATLAB自带函数:ode系列函数:

[t,y]=ode45(odefun,tspan,y0,options,p1,p2……)。参数解释:odefun代表等号右边表达式所组成的数组,tspan代表取值范

围,y0代表初值,options代表优化方法,p代表方程中的参数. 5边值问题的数值解

(1)线性方程边值问题的打靶法求解:lineshoot.m。

(2)非线性方程边值问题的打靶法,引入了牛顿迭代法进行求解:nlshoot.m。具体是利用了迭代公式:

(3)边值问题的MATLAB求解:

依次调用3个函数:bvpinit();bvpsolver();deval()。

第十五章:积分变换的MATLAB求解

1傅里叶变换

(1)MATLAB自带函数求取方法:求傅里叶变换fourier(fx,x,w);求逆傅里叶变换:ifourier(Fx,w,x)。

若令y=heaviside(x)则当x<0时,y的值为0;当x>0时,y 的值为1;当x等于0时,y=0.5。这是一个单位阶跃函数。

相关主题
相关文档
最新文档