楼主: nankaiwjg
6034 2

求助关于R数值积分的问题 [推广有奖]

  • 0关注
  • 0粉丝

硕士生

83%

还不是VIP/贵宾

-

威望
0
论坛币
33 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1259 点
帖子
56
精华
0
在线时间
386 小时
注册时间
2006-12-11
最后登录
2024-5-13

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
R的数值积分要使用integrate命令,我在做循环运算的时候遇到下列问题:

# f是被积函数,显然f在0出是无限的
f <- function(x) {return(1/x)}

# 循环运算
for (i in 0:4) {
g[i] <- integrate(f, lower=i, upper=7, stop.on.error=FALSE
}
g                           # 输出g

# 错误信息
错误于integrate(f, lower = i, upper = 7, stop.on.error = FALSE) :
  non-finite function value
错误: 找不到对象'g'

# 我的问题
从上面的结果可以看出,当integrate发生一次循环发生错误后(显然第一次便发生这种情况),
就跳出了整个循环(因为g不存在)。我的期望是,如果integrate的一次循环发生错误,就让它
跳到下一次循环,而不要跳出整个循环。请问各位高手,如何才能实现我的期望呢?我尝试了
很多,一直无法实现。
二维码

扫码加我 拉你入群

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

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

关键词:数值积分 integrate Rate Inte int 求助 数值积分

回帖推荐

qoiqpwqr 发表于2楼  查看完整内容

你的错误信息是因为你没有给g赋初值,而不是循环发生错误。 还有integrate的结果不是一个数,而是一个list,应该用integrate(...)$value 虽然当积分限从0开始的时候积分是发散的,但是此处的数值积分不会有这个错误。所以R不会报任何的错误。
沙发
qoiqpwqr 发表于 2010-12-28 22:41:17 |只看作者 |坛友微信交流群
你的错误信息是因为你没有给g赋初值,而不是循环发生错误。
还有integrate的结果不是一个数,而是一个list,应该用integrate(...)$value
虽然当积分限从0开始的时候积分是发散的,但是此处的数值积分不会有这个错误。所以R不会报任何的错误。

使用道具

藤椅
nankaiwjg 发表于 2010-12-29 09:35:03 |只看作者 |坛友微信交流群
再问:
    非常谢谢楼上的回复,但不好意思,实在抱歉,仓促间,没将问题想好。下面是我真正想问的问题(试了很多遍了)

m <- rep(NA, 6)                                     # 对m进行赋值,等同于原来的g, 无论是NA,还是0,结果都相仿

f <- function(x) {return(1/x)}                  # 被积函数

for (i in -1:4) {
m[i+2] <- integrate(f, lower=i, upper=7, stop.on.error=FALSE)$value        # 循环,赋值
}
m                                                                              # 输出m

输出结果:
错误于integrate(f, lower = i, upper = 7, stop.on.error = FALSE) :
  non-finite function value
> m
[1] NA NA NA NA NA NA

# 评论: 其实,在第一次循环时,就会发生积分函数值无限的错误,但这个错误导致后面的
         循环无法进行。这是因为,如果后面的循环可以进行,那么m的第二、三、四、五和六
         个元素不应该还是原来的空值。我的期望结果是,即使一次积分运算发生错误,如何让
         它进行 下一次积分,而不是跳出整个循环?

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-13 21:29