我如何在R中填充这个矩阵的条目?

发布于 2024-09-11 05:19:05 字数 437 浏览 3 评论 0原文

给定:

h_i=t_(i+1)-t_i for i=1,...,n-1 where n is a positive integer.

矩阵 Q 是一个 n by (n-2) 矩阵,其中条目为 q_(i,j) 其中 i=1,...,nj=2,...n-1 给出:

q_(j-1,j)=1/h_(j-1)
q_(j,j)=-(1/h_(j-1)+1/h_j)
q_(j+1,j)=1/h_j
q_(i,j)=0 for |i-j|>=2

我想得到一个矩阵 Q< /代码>。我如何在 R 中为这个矩阵编写程序?提前非常感谢。

Given:

h_i=t_(i+1)-t_i for i=1,...,n-1 where n is a positive integer.

The matrix Q is an n by (n-2) matrix with entries q_(i,j) with i=1,...,n and j=2,...n-1 given by:

q_(j-1,j)=1/h_(j-1)
q_(j,j)=-(1/h_(j-1)+1/h_j)
q_(j+1,j)=1/h_j
q_(i,j)=0 for |i-j|>=2

I want to get a matrix Q. How do i write a program for this matrix in R? Many thanx in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

短暂陪伴 2024-09-18 05:19:12

如果我正确地计算出下标,我认为这可以做到:

n <- 100
t <- sort(runif(n))
h <- diff(t)
Q <- matrix(0,n,n-2)
Q[row(Q)==col(Q)-1] <- 1/h[1:(n-3)]
Q[row(Q)==col(Q)+1] <- 1/h[1:(n-2)]
diag(Q) <- c(NA,-1/h[1:(n-3)] - 1/h[2:(n-2)])

If I've figured out the subscripts correctly, I think this will do it:

n <- 100
t <- sort(runif(n))
h <- diff(t)
Q <- matrix(0,n,n-2)
Q[row(Q)==col(Q)-1] <- 1/h[1:(n-3)]
Q[row(Q)==col(Q)+1] <- 1/h[1:(n-2)]
diag(Q) <- c(NA,-1/h[1:(n-3)] - 1/h[2:(n-2)])
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文