如何用MATLAB求积分的数值解

我的具体积分如下:积分下限x0是未知常数,最后想积分出来一个带着x0的式子,但是积出来的结果很诡异,程序和结果如下:sita=10^(-3);tf=2*10^(-3);B... 我的具体积分如下:积分下限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)) 大神们可以告诉我这个要怎么处理吗?拜托各位 展开
 我来答
lhmhz
高粉答主

2017-04-23 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7264 获赞数:17018

向TA提问 私信TA
展开全部

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

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是一样的。

可能你的版本有点问题。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式