楼主: ssjwzhang
1763 7

[问答] 在线等:请问数值积分出错是什么原因啊? [推广有奖]

  • 0关注
  • 0粉丝

大专生

90%

还不是VIP/贵宾

-

威望
0
论坛币
10 个
通用积分
40.9637
学术水平
2 点
热心指数
2 点
信用等级
2 点
经验
498 点
帖子
32
精华
0
在线时间
59 小时
注册时间
2008-12-1
最后登录
2023-10-12

楼主
ssjwzhang 发表于 2012-10-10 11:36:35 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
integ_fw<-0
        for (i in 1:3){
               
                fw<-function(t) c*lambda^r/gamma(r)*(c*t+k-1)^(r-1)*exp(-lambda*(c*t+k-1))*(1/(var_y+t))
        
        integ_fw<-integrate(fw,0,Inf)$value
        }

上面一段程序中,fw函数表达式中除t外均是已知常数,var_y是一个已知的3维向量,错误提示是:
Error in integ_fw<-integrate(fw,0,Inf)$value :
  non-finite function value


请问是怎么回事?怎么解决?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:是什么原因 数值积分 在线等 Inte int 原因 积分 function 表达式 Error

沙发
qoiqpwqr 发表于 2012-10-10 19:40:32
可能是你的积分限里面的无穷的问题,换个数试试看。

藤椅
ssjwzhang 发表于 2012-10-11 15:34:48
把无穷换成1000还是同样问题,我是想算0到无穷的积分的

板凳
qoiqpwqr 发表于 2012-10-11 19:39:28
var_y不能是一个向量,必须是一个数

报纸
ssjwzhang 发表于 2012-10-12 07:56:55
发现程序粘贴的时候少了下表,程序其实是下面的:
integ_fw<-0
        for (i in 1:3){
               
                fw<-function(t) c*lambda^r/gamma(r)*(c*t+k-1)^(r-1)*exp(-lambda*(c*t+k-1))*(1/(var_y[i]+t))
        
        integ_fw[i]<-integrate(fw,0,Inf)$value
        }

地板
ssjwzhang 发表于 2012-10-12 07:58:56
不好意思啊,版主。其实我是做模拟的,有时候报错,所以想搞明白。附件是完整程序。 macro.doc (28 KB)



7
qoiqpwqr 发表于 2012-10-12 08:46:44
你的函数是不是要返回integ_fw的值?

我试了一下,模拟了很多次都没有任何问题啊。
已有 1 人评分经验 收起 理由
ltx5151 + 20 热心帮助其他会员

总评分: 经验 + 20   查看全部评分

8
ssjwzhang 发表于 2012-10-14 09:50:34
版主对的,我也不太明白,这个程序是从原来的大程序中抽出来改了一下的,可能原来的程序中某个小问题没发现的。现在这样确实可以啊,谢谢!

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-1 03:56