首页 > 编程知识 正文

matlab计算微积分([MATLAB]数值微分与数值积分(diff/quad))

时间:2023-05-06 19:07:18 阅读:121337 作者:412

数值微分

)1)数值差分和差分商

去除x-0的这个过程,有差分和差分商,分别为前方差分、后方差分、中心差分的前方差商、后方差商、中心差商的公式,给出相应的公式:

)2)数值微分的实现

MATLAB提供了用于确定前向差异的函数diff,其调用格式有以下三种:

dx=diff(x ) :计算向量x的一阶前向差分,dx(I ) x ) I1 )-x ) I ),I=1,2,n-1.dx=diff(x,n ) 3360是向量x的n阶前向差分例如,diff(x,2 )=diff(diff ) x ).dx=diff(A ) a,n,dim ) :计算矩阵a的n阶差分,并且当dim=1时(默认状态),为每列计算差分dim=2,逐行计算差分。 例如:假设f(x )=sinx,在[ 0,2]的范围内随机采样,计算f ) ) x )的近似值,并与理论值f ) ) x )=cosx进行比较。

x=[0,sort (2* pi ) * rand (1,5000 ) ]、2*pi ); y=sin(x; f1=diff(y )./diff(x ) ) x; f2=cos(x ) 1:end-1 ); plot(x ) x (x (1:结束-1)、f1、x (1:结束-1)、f2 ); d=NORM(F1-F2 )。

二.数值积分

(1)数值积分的基本原理

牛顿-莱布尼茨公式:

)2)数值积分的实现

基于自适应zjdmg方法的[l,n]=quadl (文件名,a,b,tol,跟踪)基于自适应Gauss-Lobatto方法的[l,n]=quadl ) filename,a,b,跟踪tol用于控制积分精度,缺省情况下tol=10^(-6 ); trace控制是否表示积分过程,取0以外表示积分过程,取0则不表示,默认取trace=0; 返回自变量I即定积分的值,n是被积函数的调用次数

formatlongf=@(x )4./) 1x.^2; [I,n ]=四边形(f,0,1,1e-8 ); [I,n]=quad(f,0,1,1e-8 ) I=3.14159265373344n=61 [I,n]=quadl(f,0,1,1e-8 ) I=3.14159265358999

基于全局自适应积分法I=integral (文件名、a、b ),其中I是通过计算得到的积分; filename是可积函数,a和b分别是定积分的上限和下限,积分限制可以无限大。

基于自适应喜悦的蜡烛方法[I,err ]=quad GK (文件名,a,b ),其中err返回近似误差范围,其他参数的含义和用法与quad函数相同。 积分的上下限可以是无限大(-lnf或lnf ),也可以是复数。 积分的上下限为复数时,quadgk函数在复平面上求积分。

f=@(x ) sin(1./x )./x.^2; I=quadgk(f,2/pi,Inf )基于梯形积分法

I=trapz(x,y )其中,向量x,y定义函数关系y=f ) x。

可以用以下语句实现

(sum(diff(x ).* (y ) 1:结束-1) y (2:结束) ) ) ) ) ) ) ) )

x=1:6; y=[ 6,8,11,7,5,2 ]; plot(x,y,'-ko ' ); gridonaxis ([ 1,6,0,11 ]; ll=trapz(x,y ) ll=35I2=sum(diff ) x ).* (y ) 1:end-1 ) y(2:end ) )/2 ) I2=35

(3)多重定积分的数值求解

I=integral2(filename,a、b、c、d ) I=quad2d ) filename,a、b、c、d、too

I=integral3(文件名称、a、b、c、d、e、f ) I=三次四(文件名称、a、b、c、d、e、f、tol ) )。

f1=@(x,y ) exp(-x.^2/2).*sin ) x.^2y ); L1=quad2D(F1、- 2、2、- 1、1 ); F2=@(x,y,z )4*x.*z.*exp(-z.*z.*y.*x ); L1=integral3(F2,0,pi,0,pi,0,1 );

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。