您的位置:首页 > 编程语言 > MATLAB

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

2018-01-28 14:31 3719 查看

一、符号积分

求符号积分函数: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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: