如何用matlab求积分

如题所述

1、使用int函数,函数由integrate缩写而来,int 函数表达式,变量,积分上限,积分下限。

2、比如求一个Fx = a*x^2,在区间(m,n)对x进行积分,

首先要将 m,x,a,b 这四个变量定义为符号变量

syms m x a b;

Fx = a*x^2;

int(Fx,x,m,n)

3、通过上面这个方法,就能够求得任意一个函数在给定区间的积分,如果想看到书写的格式,可以用pretty命令,这样显示更接近平常的表示方法。

1、在matlab中,积分运算有多种方式,为了便于查看不同方式处理异同,以下面这个积分为例:

2、梯形积分法

第一种,采用最简单的方式,以函数trapz为例,z = trapz(x,y) 其中x表示积分区间的离散化向量,y是与x同维数的向量,表示被积函数,z是返回的积分近似值。

clc,clear。

% 梯形积分法

x = -1:0.001:1,

y = exp(-x.^2),

s = trapz(x,y)

% 计算结果: s =  1.4936

3、高精度数值积分(1)

为了克服梯形积分法精度低的问题,可以采用高精度积分方式,第一种可以采用 z = quad(Fun,a,b) 该方式是自适应步长Simpson计分法求得函数Fun在区间[a,b]上定积分,如下:

clc;clear;

% 梯形积分法

s = quad(inline('exp(-x.^2)'),-1,1)

% 计算结果: s =  1.4936

4、高精度数据积分(2)

采用高精度Lobatto积分法,格式: z = quadl(Fun,a,b)

clc;clear;

% 梯形积分法

s = quadl(inline('exp(-x.^2)'),-1,1)

% 计算结果: s =  1.4936

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-02-22
用函数int.

符号积分命令int  
int(fun):求函数fun的不定积分;
int(fun,var):求函数fun关于变量var的不定积分;
int(fun, var, a,b,):求函数fun的在[a,b]间的定积分或广义积分;
示例  
>> clear;syms x y z;
>> int(sin(x*y+z),z)
ans =
-cos(x*y+z)
帮助  
在MATLAB命令窗口中输入doc int查看int的帮助信息。本回答被网友采纳
第2个回答  2012-09-21
举个例子:函数是w(x,y),y上下限是a到b,x上下线限是0到sqrt(1600-y^2),这样的二重积分
你可以用一个函数quad2d()
y1=quad2d(@(x,y)w(x,y),a,b,0,@(y)sqrt(1600-y^2))
也可以用两次积分:
y2 =quadl(@(x) arrayfun(@(x) quadl(@(y)w(x,y),a,b),x),0,sqrt(1600-y^2))
或者
y3 = dblquad(@(x,y)w(x,y).*(y>=a & y<=b),0,sqrt(1600-b^2),a,b)
第3个回答  2012-09-23
有两种方式:
方式一:用符号函数int,求符号表达式的积分(精确的解析解)
方式二:用quad函数,求函数的数值积分(近似的数值解)
第4个回答  2020-05-21
相似回答