如何用MATLAB求积分的数值解

我的具体积分如下:积分下限x0是未知常数,最后想积分出来一个带着x0的式子,但是积出来的结果很诡异,程序和结果如下:sita=10^(-3);tf=2*10^(-3);B=10^6;beta=sita*tf*B/log(2);syms x0 x;f=(1/10)*((1/(x0^(1/(1+beta))))*(1/(x^(beta/(1+beta)))))*exp(-x/10);f2=int(f,x,'x0',inf);结果:f2 = (10^(2318222640497235/9007199254740992)*igamma(2318222640497235/9007199254740992, x0/10) + limit(-10^(2318222640497235/9007199254740992)*igamma(2318222640497235/9007199254740992, x/10), x, Inf, 'Left'))/(10*x0^(4636445280994469/18014398509481984)) 大神们可以告诉我这个要怎么处理吗?拜托各位

对于你问题,可以这样解决。即

x=double(solve(f2))

根据你提供图片算式,发现你编写的算式代码有点问题。正确方式为

B=10^6;Tf=2*10^(-3);theta=10^(-3);

beta=theta*Tf*B/log(2); 

syms y x

eq0=(1/(x^(1/(beta+1))))*(1/(y^(beta/(beta+1))))*exp(-y/10);

f=int(eq0,y,x,+inf)-10;

x=double(solve(f))

运行结果

追问

太感谢您了!可是我把您的代码在我自己的MATLAB运行了一下,为啥出来的结果有问题呢?代码完全是您的呀?是我哪里设置有问题吗

追答

不会吧,用刚才上传的代码在Matlab2016a运行得到结果与在Matlab2010a是一样的。

可能你的版本有点问题。

追问

我再试试,总之太感谢您了,我现在采纳您的答案。

我再试试,总之太感谢您了,我现在采纳您的答案。

温馨提示:答案为网友推荐,仅供参考
相似回答