使用Matlab求解定积分/不定积分

版权声明:希望我的博客可以为别人带去知识与便利,让那些像我曾经一样迷茫的小伙伴不再迷茫~ https://blog.csdn.net/qq_34374664/article/details/79186465

一、符号积分

求符号积分函数:int

格式:int(f,x,a,b)

功能:计算定积分

格式:int(f,x)

功能:计算不定积分

使用int函数之前,先用syms声明x是符号变量

例:


代码:

 syms x
 y1=1/(1+x^4);
 y2=(x*exp(x))/(1+x)^2;
 y3=1/(x^2+2*x+3);
 fy1=int(y1)
 fy2=int(y2,0,1)
 fy3=int(y3,-inf,+inf)

二、数值积分

      在科学研究和工程技术中,经常遇到积分的计算,虽然有些函数的不定积分可以求出其初等函数表示式,但有更多的函数,它们的不定积分不是初等函数,这样就无法利用牛顿莱布尼兹公式求出其定积分,甚至经常遇到只知道函数在一些离散点的值,但函数表达式未知的情况,在上述情况下就必须以数值方法求定积分的近似值。用数值方法求定积分的近似值,通常称为数值积分。

(1) 用梯形法计算积分;

适用于被积函数为离散数据时,求函数的定积分。该函数调用格式:I=trapz(x,y)
例:

clc,clear
format long
ac=@(x)sin(x)./x
x1=pi/4:pi/50:pi/2;
y1=ac(x1);
s1=trapz(x1,y1)
x2=pi/4:pi/100:pi/2;
y2=ac(x2);
s2=trapz(x2,y2)

(2) 基于变步长辛普森法计算积分

该函数调用格式:[I,n]=quad(‘fname’,a,b,Tol,trace)
其中:‘fname是被积函数名
      a,b是积分上下限
      Tol是精度控制值,省却时取0.001
      Trace:控制是否显示展现积分过程,取0不展现
      I:积分值
      n:被积函数调用次数
例:


ac=@(x)sin(x)./x
s=quad(ac,pi/4,pi/2)

(3) 高精度Lobatto积分法,

     格式:z = quadl(Fun,a,b)

(4) 自适应Gauss-Kronrod数值积分

       z = quadgk(Fun,a,b)

(5) 积分法矢量化自适应simpson数值积分

     格式:z = quadv(Fun,a,b)
      一次可以计算多个积分


   F=@(x,n)1./((1:n)+x.^2);
      quadv(@(x)F(x,6),0,1)

三、数值二重积分

 I=dblquad(f,a,b,c,d,tol,trace),求f(x,y)在[a,b]×[c,d]区域上的二重积分。

例:

计算二重积分:

其中

 f=@(x,y)exp(-x.^2/2).*sin(x.^2+y)
 I=dblquad(f,-2,2,-1,1)


阅读更多
换一批

没有更多推荐了,返回首页