MATLAB中计算定积分时可否将一个函数作为积分变量?比如说我想计算:其定积分确实可用图像求得,但是可否用MATLAB代码实现计算,

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/28 15:08:34
MATLAB中计算定积分时可否将一个函数作为积分变量?比如说我想计算:其定积分确实可用图像求得,但是可否用MATLAB代码实现计算,

MATLAB中计算定积分时可否将一个函数作为积分变量?比如说我想计算:其定积分确实可用图像求得,但是可否用MATLAB代码实现计算,
MATLAB中计算定积分时可否将一个函数作为积分变量?
比如说我想计算:

其定积分确实可用图像求得,但是可否用MATLAB代码实现计算,

MATLAB中计算定积分时可否将一个函数作为积分变量?比如说我想计算:其定积分确实可用图像求得,但是可否用MATLAB代码实现计算,

提供两种解法供参考.

 

1、解析解法

作变量置换t=1/x,则积分上限为1,下限为inf:

>> syms x t
>> f=(1+1/x)^x/x;
>> f_t=subs(f,x,1/t);
>> int(f_t,inf,1)
ans =
-Inf

代码在2007b和2013a上实测通过.

 

2、数值解法

直接对关于x的函数1/x求微分,但得到的函数表达式用解析方法无法得到显式解,所以,使用数值方法积分:

>> syms x
>> f=(1+1/x)^x/x;
>> f_x=eval(['@(x)' vectorize(f*diff(1/x))]);
>> integral(f_x,0,1)
ans =
  -Inf

其中integral是2012a版之后才引入的函数,早期的版本可以使用quadgk代替.