学习matlab(六)——微分和积分

积分和微分是微积分的重要内容,本章将对积分和微分的内容进行详细的介绍。积分包括单变量数值积分、双重积分和三重积分等。然后介绍了常微分方程的符号解和数值解。最后介绍了如何求函数的最小值和零点。

0.数值积分

函数f(x)在区间[a, b]上的定积分,记作:

\int_{a}^{b}f(x)dx=\lim_{\Delta x\rightarrow 0}\sum_{i=1}^{n}f(\varepsilon _{i})\Delta x_{i}

其中f(x)称为被积函数,f(x)dx称为 被积表达式,x称为积分变量,a称为积分下限,b称为积分上限,区间[a, b]称为积分区间。

求解定积分的数值方法有很多,例如简单的梯形法、Simpson法和Romberg法等等都是数值分析课程中经常介绍的方法。它们的基本思想是将整个积分空间分割成若千个子空间。这样积分问题,就转换为求和问题。求取定积分的最直观的方法是用梯形法,用直线将这些点连接起来,定积分近似为用这些折线和x轴间围成的面积。在MATLAB中,采用函数trapz( )可以直接采用梯形法求解定积分的近似值。

利用矩形求面积,函数cumsum()采用矩形法求解定积分的近似值。该函数的调用格式为:y=cumsum(X, DIM):在第DIM维来计算定积分的近似值。y=cumsum(X):该函数采用矩形法计算定积分的近似值。、

在MATLAB中,采用函数quad( )来求解定积分的数值解,该函数采用自适应变步长的方法。该函数的调用格式为:y=quad(Fun, a, b):求函数Fun的定积分,定积分的下限为a,定积分的上限为b。y=quad(Fun, a, b, s):该函数的输入参数s用来指定误差限,默认值为10^-6。此外,还有函数quadI( ),其调用格式和函数quad( )完全一致,但是求解的精度和速度高于函数quad()。

在MATLAB中,可以通过函数dblquad( )计算双重积分的数值解,双重积分的格式为:

\int_{ym}^{yM}\int_{xm}^{xM}f(x,y)dxdy

该函数的调用格式为:q=dblquad(Fun, xm, xM, ym, yM):该函数计算矩形区域的双重积分。还有q=dblquad(Fun, xm, xM, ym, yM, ε)

在MATLAB中,可以通过函数triplequad( )计算三重积分的数值解,三重积分的格式为:

\int_{zm}^{zM}\int_{ym}^{yM}\int_{xm}^{xM}f(x,y,z)dxdydz

q=dblquad(Fun, xm, xM, ym, yM, zm, zM):该函数计算三重积分。q=dblquad(Fun, xm, xM, ym, yM, zm, zM, tol):该函数的输入参数tol是积分的精度控制量,默认为10^-6,为了提高计算的精度,可以选择更小的值。

1.数值微分

常微分方程( Ordinary Differential Equation, ODE) 求解是高等数学的基础内容,在实际中有广泛的应用。MATLAB提供了很多函数用于求解常微分方程,包括常微分方程的符号解和常微分方程的数值解。

在MATLAB中,采用函数dsolve()求解常微分方差的符号解。Dy表示一阶微分项,D2y表示二阶微分项。该函数的调用格式为:dsolve('equation'):该函数求微分方程的通解。dsolve('equation', 'condition'):该函数求微分方程的特解。dsolve('equation1', 'equation2', ... 'condation1','condition2'):该函数求解微分方程组。dsolve(...,'v'):该函数求解微分方程,并表示为v的函数。

对于大多数的微分方程,很难求出一般解,可以求满足规定精度的近似解,即数值解。在MATLAB 2010a中,提供了常微分方程的7种解法,它们是函数ode45( )、ode23()、ode113( )、ode15s( )、ode23s( )、 ode23t( )、ode23tb( )。

求函数的最小值和零点是工程上常见的问题,在MATLAB中提供了一些函数能够用于求解函数的最小值和零点。对于求解最大值的问题,可以在原函数上乘以1,然后求最小值。下面介绍如何求函数的极小值和零点。

在MATLAB中,采用函数fminbnd( )求解一元函数在给定的区间内的最小值,该函数的调用格式为:

x=fminbnd(fun, x1, x2):该函数在区间[x1, x2]内寻找函数fun的最小值,fun为匿名函数或函数句柄,x为最小值的自变量取值。x=fminbnd(fun, x1, x2, options):该函数采用options进行优化器的设置。options 可以采用函数optimset( )来设置。[x, fval]=fminbn(...):该函数返回输出变量最小值fval。

在MATLAB中,利用函数fzero( )求一元函数的零 点。用户可以指定一个区间或开始点。如果用户知道函数零点所在的区间,则可以使用一个包含两个元素的向量来指定区间。如果不知道取零点的区间,也可以指定一个开始点,函数在开始点附近寻找使函数值改变符号的区间,如果没有找到这样的区间,则返回值为NaN。x=fzero(fun, x0):该函数求一元函数fun的零点,返回值为零点的自变量的值。x=fzero(fun, x0, options):该函数通过options对优化器的参数进行设置。[x, fval}=fzer(...):该函数输出自变量为x时的函数值。



 

 

发布了363 篇原创文章 · 获赞 32 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/qq_35789421/article/details/104287108