Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
 
 
主题工具 显示模式
旧 2013-07-02, 13:51   #1
xuchen11
初级会员
 
注册日期: 2013-07-02
帖子: 3
声望力: 0
xuchen11 正向着好的方向发展
默认 求助!类似伽玛函数 带参变量广义积分 积分结果是求极限

请各位 或版主帮个忙 我要算一个概率密度函数 而且里面还有变量 k n ; 在给k取2 n取3 的时候 概率密度函数 f(z)
积分如下 syms z; syms z; int(x^5*z^2*exp(-x*(z+1)/2)/2^7,x,0,inf) 自己手动算完的结果是 f(z)=60*z^2/(z+1)^6.经检验确实算得没错,是个概率密度函数。手动计算用了 伽玛函数的性质 伽玛(n)=(n-1)!
下面说说matlab的计算结果 请各位帮助
计算方法一:
syms z; syms z; int(x^5*z^2*exp(-x*(z+1)/2)/2^7,x,0,inf)
结果:
Definite integration: Can't determine if the integral is convergent.Need to know the sign of --> 1/2+1/2*zWill now try indefinite
??? Error using ==> sym/sym (char2sym)
integration and then take limits.limit(-1/64*z^2*(exp(-1/2*x*(1+z))*x^5+5*exp(-1/2*x*(1+z))*x^5*z+10*x^5*z^2*exp(-1/2*x*(1+z))+10*exp(-1/2*x*(1+z))*x^5*z^3+5*exp(-1/2*x*(1+z))*x^5*z^4+exp(-1/2*x*(1+z))*x^5*z^5+10*exp(-1/2*x*(1+z))*x^4+40*exp(-1/2*x*(1+z))*x^4*z+60*exp(-1/2*x*(1+z))*x^4*z^2+40*exp(-1/2*x*(1+z))*x^4*z^3+10*exp(-1/2*x*(1+z))*x^4*z^4+80*exp(-1/2*x*(1+z))*x^3+240*exp(-1/2*x*(1+z))*x^3*z+240*exp(-1/2*x*(1+z))*x^3*z^2+80*exp(-1/2*x*(1+z))*x^3*z^3+480*exp(-1/2*x*(1+z))*x^2+960*exp(-1/2*x*(1+z))*x^2*z+480*exp(-1/2*x*(1+z))*x^2*z^2+1920*exp(-1/2*x*(1+z))*x+1920*exp(-1/2*x*(1+z))*x*z+3840*exp(-1/2*x*(1+z))-3840)/(1+z)^6,x = inf) is not a valid symbolic expression.

Error in ==> D:\MATLAB6p5\toolbox\symbolic\@sym\sym.m
On line 92 ==> S = char2sym(x);

Error in ==> D:\MATLAB6p5\toolbox\symbolic\@sym\maple.m
On line 81 ==> result = sym(result);

Error in ==> D:\MATLAB6p5\toolbox\symbolic\@sym\int.m
On line 51 ==> r = maple('map','int',f,[x.s '=' a.s '..' b.s]);

这里提示错误 在积分过程中 被积函数中 z^2 没有用 因此 我把它去掉 再来计算:
计算方法二:
syms z; syms z; int(x^5*exp(-x*(z+1)/2)/2^7,x,0,inf)

结果
ans =

limit(-1/64*(exp(-1/2*x*(1+z))*x^5+5*exp(-1/2*x*(1+z))*x^5*z+10*exp(-1/2*x*(1+z))*x^5*z^2+10*exp(-1/2*x*(1+z))*x^5*z^3+5*exp(-1/2*x*(1+z))*x^5*z^4+exp(-1/2*x*(1+z))*x^5*z^5+10*exp(-1/2*x*(1+z))*x^4+40*exp(-1/2*x*(1+z))*x^4*z+60*exp(-1/2*x*(1+z))*x^4*z^2+40*exp(-1/2*x*(1+z))*x^4*z^3+10*exp(-1/2*x*(1+z))*x^4*z^4+80*exp(-1/2*x*(1+z))*x^3+240*exp(-1/2*x*(1+z))*x^3*z+240*exp(-1/2*x*(1+z))*x^3*z^2+80*exp(-1/2*x*(1+z))*x^3*z^3+480*exp(-1/2*x*(1+z))*x^2+960*exp(-1/2*x*(1+z))*x^2*z+480*exp(-1/2*x*(1+z))*x^2*z^2+1920*exp(-1/2*x*(1+z))*x+1920*exp(-1/2*x*(1+z))*x*z+3840*exp(-1/2*x*(1+z))-3840)/(1+z)^6,x = inf)



是个极限形式 因此我求了极限
>> syms z;limit(-1/64*(exp(-1/2*x*(1+z))*x^5+5*exp(-1/2*x*(1+z))*x^5*z+10*exp(-1/2*x*(1+z))*x^5*z^2+10*exp(-1/2*x*(1+z))*x^5*z^3+5*exp(-1/2*x*(1+z))*x^5*z^4+exp(-1/2*x*(1+z))*x^5*z^5+10*exp(-1/2*x*(1+z))*x^4+40*exp(-1/2*x*(1+z))*x^4*z+60*exp(-1/2*x*(1+z))*x^4*z^2+40*exp(-1/2*x*(1+z))*x^4*z^3+10*exp(-1/2*x*(1+z))*x^4*z^4+80*exp(-1/2*x*(1+z))*x^3+240*exp(-1/2*x*(1+z))*x^3*z+240*exp(-1/2*x*(1+z))*x^3*z^2+80*exp(-1/2*x*(1+z))*x^3*z^3+480*exp(-1/2*x*(1+z))*x^2+960*exp(-1/2*x*(1+z))*x^2*z+480*exp(-1/2*x*(1+z))*x^2*z^2+1920*exp(-1/2*x*(1+z))*x+1920*exp(-1/2*x*(1+z))*x*z+3840*exp(-1/2*x*(1+z))-3840)/(1+z)^6,x,inf)


结果:
ans =

limit((-1/64*exp(-1/2*x*(1+z))*x^5-5/64*exp(-1/2*x*(1+z))*x^5*z-5/32*exp(-1/2*x*(1+z))*x^5*z^2-5/32*exp(-1/2*x*(1+z))*x^5*z^3-5/64*exp(-1/2*x*(1+z))*x^5*z^4-1/64*exp(-1/2*x*(1+z))*x^5*z^5-5/32*exp(-1/2*x*(1+z))*x^4-5/8*exp(-1/2*x*(1+z))*x^4*z-15/16*exp(-1/2*x*(1+z))*x^4*z^2-5/8*exp(-1/2*x*(1+z))*x^4*z^3-5/32*exp(-1/2*x*(1+z))*x^4*z^4-5/4*exp(-1/2*x*(1+z))*x^3-15/4*exp(-1/2*x*(1+z))*x^3*z-15/4*exp(-1/2*x*(1+z))*x^3*z^2-5/4*exp(-1/2*x*(1+z))*x^3*z^3-15/2*exp(-1/2*x*(1+z))*x^2-15*exp(-1/2*x*(1+z))*x^2*z-15/2*exp(-1/2*x*(1+z))*x^2*z^2-30*exp(-1/2*x*(1+z))*x-30*exp(-1/2*x*(1+z))*x*z-60*exp(-1/2*x*(1+z))+60)/(1+z)^6,x = inf)


事实上这个结果是对的 只是matlab 还是没有真正的求极限 这个结果的表达式虽然长 ,但是前面那些求和项都是零 和我手动自己算的结果是一致的。
看上去 手动算还要快一些 问题是 我要求 更一般的情况 怎么样能让matlab直接出最终结果 而不是极限式子呢。

例如我想求 k=4 n=3这种情况下的密度函数 f(z) 其积分形式为syms x; syms z; int(x^5*z^2*exp(-x*(z+1)/2)*2^(-8)*12*(-1/8*z^2*x^2*exp(-1/2*z*x)-1/2*z*x*exp(-1/2*z*x)-exp(-1/2*z*x)+1/8*x^2*exp(-1/2*x)+1/2*x*exp(-1/2*x)+exp(-1/2*x))^2,x,0,inf) 这个式子我没写错。然后matlab 也计算出结果了 我手动算得结果 是12项关于z的函数求和。 但是matlab算出了 非常非常长 带极限的式子 我脑袋都大了 请大家帮帮忙 应该怎么办 谢谢了!!!!!!!!!!!!!!!!!!!!!! 我Q 203零3662 如果帮我搞定 可以酬谢 非常感
xuchen11 当前离线   回复时引用此帖
 

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 17:15


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.