楼主: 13600171380
2218 3

[问答] R语言 求不规则曲线与y=0围成的面积 [推广有奖]

  • 0关注
  • 0粉丝

高中生

55%

还不是VIP/贵宾

-

威望
0
论坛币
5 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
86 点
帖子
5
精华
0
在线时间
53 小时
注册时间
2019-10-9
最后登录
2021-4-27

楼主
13600171380 学生认证  发表于 2021-3-14 14:58:21 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
捕获.PNG
这幅图是plot(as.numeric(ts(afew_sca$`United States`)), type="l")

为了求面积我试了用:
f = approxfun(x = 1:434, y = as.numeric(ts(afew_sca$`United States`)))
integrate(f,lower = 1+1e-05,upper = 434-1e-05,subdivisions = 1000)
但是报错
Error in integrate(f, lower = 1 + 1e-05, upper = 434 - 1e-05, subdivisions = 1000) : roundoff error was detected


去掉subdivisions = 1000:
f = approxfun(x = 1:434, y = as.numeric(ts(afew_sca$`United States`)))
integrate(f,lower = 1+1e-05,upper = 434-1e-05)

又有报错
Error in integrate(f, lower = 1 + 1e-05, upper = 434 - 1e-05) : maximum number of subdivisions reached


求大神指点!


二维码

扫码加我 拉你入群

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

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

关键词:R语言 不规则 integrate Division detected R语言 定积分

沙发
llb_321 在职认证  发表于 2021-3-14 22:41:27
你试试把subdivisions这个参数增大一些 ,比如1900,不行的话再大一些。

藤椅
13600171380 学生认证  发表于 2021-3-15 15:51:43
llb_321 发表于 2021-3-14 22:41
你试试把subdivisions这个参数增大一些 ,比如1900,不行的话再大一些。
设置成十万了还是有这个报错:
Error in integrate(f, lower = 2, upper = 433, subdivisions = 1e+06) : roundoff error was detected

想请教一下您求这种面积还有其他方法吗?

板凳
llb_321 在职认证  发表于 2021-3-15 16:12:05
用随机数测试了一下,没遇到roundoff error舍入误差的问题。猜还是原数据导致,但究竟何故不清楚。
approxfun本质是插值处理,所以你第二次报错是subdivisions太小导致的。

使用integrate()最简单。其他方法,可以写个循环,解相邻两个数据之间的面积,再累加在一起,其实还是定积分的概念,只不过可以验证一下是否还会报错。

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

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