MATLAB中计算定积分时可否将一个函数作为积分变量?

比如说我想计算:其定积分确实可用图像求得,但是可否用MATLAB代码实现计算,谢谢... 比如说我想计算:

其定积分确实可用图像求得,但是可否用MATLAB代码实现计算,谢谢
展开
 我来答
tianxiawulang
推荐于2016-09-16 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2607万
展开全部

提供两种解法供参考。

 

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代替。

更多追问追答
追问

用第二种方法求:

出现了问题。

我用的是 MATLAB R2010b,能否帮助解决一下,谢谢!

追答

我现在有点疑惑,积分上下限(0,0.25)究竟是指x,还是指x^2

之前我理解为x,但现在觉得,也许之前理解错了。

yyy名
2014-06-26 · TA获得超过167个赞
知道小有建树答主
回答量:98
采纳率:100%
帮助的人:81.7万
展开全部

1  用diff(1/x) 求出 (1/x) 的微分,

则可求相对于dx的被积函数-(1/x + 1)^x/x^3


syms x
((1+1/x)^x/x)*diff(1/x)


2  用数值积分求出的值。

F = @(x) -(1+1./x).^x./x.^3 ;
Q1 = quadgk(F,0,1)  %  积分下限为0
Q2 = quadgk(F,0.1,1)  %  积分下限为0.1
Q3 = quadgk(F,0.001,1)  %  积分下限为0.001


3    计算结果:


积分下限为0
Q1 = -Inf

积分下限为0.1
Q2 = -68.6335

积分下限为0.01
Q3 = -5.0597e+005
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
WM_THU
2014-06-25 · TA获得超过7164个赞
知道大有可为答主
回答量:4285
采纳率:80%
帮助的人:3901万
展开全部
不能直接求,还是要变形成普通定积分。
追问
可以写一下代码吗?谢谢!
追答
做数学变形,这怎么写代码。。当然得自己动手算。
题主先把式子变成dx的积分,然后我才能写代码。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
东南一四
2014-06-25
知道答主
回答量:10
采纳率:0%
帮助的人:7.7万
展开全部
可以把d(1/x)改成 diff(1/x)dx, 但是为什么我转成dx还是求不出来?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
33...2@qq.com
2014-06-25 · 贡献了超过107个回答
知道答主
回答量:107
采纳率:0%
帮助的人:39.7万
展开全部
可以的
追问
可以写一下代码吗?谢谢!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式