gpt4 book ai didi

R 绘制积分

转载 作者:行者123 更新时间:2023-12-02 09:23:48 26 4
gpt4 key购买 nike

我在 R 中的积分函数方面遇到了一些问题。我正在尝试绘制积分 vo,但似乎我做得不正确。

t <- seq(0, 0.04, 0.0001)
vi <- function(x) {5 * sin(2 * pi * 50 * x)}
vo <- function(x) {integrate(vi, lower=0, upper=x)$value}

test_vect = Vectorize(vo, vectorize.args='x')
plot(t, vo(t)) # should be a cosine wave
plot(t, vi(t)) # sine wave

vo 应该是正弦波,但使用 test_vect 给出了错误的绘图,而使用 vo 直接给出了错误' x' 和 'y' 长度不同。有人可以帮我解决这个问题吗?

最佳答案

你已经在那里了。只需使用plot(t, test_vect(t))即可。您不能使用 vo,因为 integrate 不是矢量化函数。评估像 vo(0.002) 这样的单个点没有问题,但不能通过 vo(t) 为其提供向量。这就是为什么我们需要 Vectorize(vo)(t)

enter image description here

你说 test_vect 没有给出正确的图。当然?我们可以分析计算积分:

v <- function (x) (1-cos(100*pi*x)) / (20*pi)

那么我们来比较一下:

sum(abs(v(t) - test_vect(t)))
# [1] 2.136499e-15

它们是一样的!

关于R 绘制积分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39516198/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com