Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2009-06-02, 16:05   #1
fgh1124
初级会员
 
注册日期: 2009-06-02
年龄: 38
帖子: 2
声望力: 0
fgh1124 正向着好的方向发展
默认 程序报错求助

俺是一个绝对的菜鸟,最近写了一个计算bayes 释然比的函数,如下,可是当数据大到一定程度就报错:

function [z] = bayes(n,k,m,l)
syms r1 r2;
a = int (nchoosek(n,k)*r1^k*(1-r1)^(n-k), 0,1);
b = int (nchoosek(m,l)*r2^l*(1-r2)^(m-l), 0,1);
y = int(int (1/a*1/b*nchoosek(n,k)*r1^k*(1-r1)^(n-k)*nchoosek(m,l)*r2^l*(1-r2)^(m-l),r2,0,r1),r1,0,1);
z = double (log10(y/(1-y)));

运行:bayes(1823,2,200,4)

显示如下错误:

>> bayes(1823,3,200,4)
??? Error using ==> sym.maple
Error, (in series/power) integer too large in context

Error in ==> sym.int at 51
r = reshape(maple('map','int',f(,[x.s '=(' a.s ')..(' b.s ')']),size(f));

Error in ==> bayes at 5
y = int(int (1/a*1/b*nchoosek(n,k)*r1^k*(1-r1)^(n-k)*nchoosek(m,l)*r2^l*(1-r2)^(m-l),r2,0,r1),r1,0,1);

请问如果运算这种大数的时候怎么改正
fgh1124 当前离线   回复时引用此帖
旧 2009-06-02, 18:48   #2
TTT_IOU
普通会员
 
注册日期: 2009-02-22
帖子: 91
声望力: 18
TTT_IOU 正向着好的方向发展
默认 回复: 程序报错求助

没问题的
>> bayes(1823,2,200,4)

ans =

-3.7866
不知道答案对否,不过运行时间有点长的!!!
TTT_IOU 当前离线   回复时引用此帖
旧 2009-06-03, 10:21   #3
fgh1124
初级会员
 
注册日期: 2009-06-02
年龄: 38
帖子: 2
声望力: 0
fgh1124 正向着好的方向发展
默认 回复: 程序报错求助

引用:
作者: TTT_IOU 查看帖子
没问题的
>> bayes(1823,2,200,4)

ans =

-3.7866
不知道答案对否,不过运行时间有点长的!!!
对,可能是我计算机本身设置问题,我想问一下你装的是什么版本
fgh1124 当前离线   回复时引用此帖
旧 2009-06-03, 11:13   #4
TTT_IOU
普通会员
 
注册日期: 2009-02-22
帖子: 91
声望力: 18
TTT_IOU 正向着好的方向发展
默认 回复: 程序报错求助

试过好几个版本的,因为自己的系统是vista,觉得7.0的不错,后来又装新版本的,08a的还可以,目前在用,08b和09a的自己运行一个在7.0上能运行的程序而它们却运行不了,所以还是觉得08a好用,仅供参考!!!!
TTT_IOU 当前离线   回复时引用此帖
回复


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

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



所有时间均为北京时间。现在的时间是 06:37


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