0

Rで次の簡単な式を実装しようとしています:

  • 式1:

ここに画像の説明を入力

間隔の制限が非常に大きい場合 (たとえば、上限の値 = 5 ではなく 10,000)、R で積演算子を実装する方法がわかりません。

  • フォーミュラ 2

ここに画像の説明を入力

2 番目の式の入力例 (実際には、間隔 S の次元ははるかに大きい)

 S = list(c(1,0,0), c(0,1,0), c(0,0,1))
 X = c(1,2,3)

どんな助けでも大歓迎です!

4

4 に答える 4

1

最初の式については、対数スケールでこれを行う方が良いと述べられています.xの真の値が0に近い場合、log1p関数が役立つ場合があります.

一般に、これらのタイプの問題では、lapplyまたはsapplyを使用して、乗算または合計 (または何でも) する必要がある部分を計算し、次にsumまたはprodを使用して合計、乗算することができます。値を折りたたみ/結合したい場合は、次のような適切な機能を持たない演算子を使用するsumprod、関数を使用しReduceます。

于 2013-09-09T22:32:03.893 に答える
1
 S = list c((1,0,0), c(0,1,0), c(0,0,1))
 X = c(1,2,3)

 lapply( lapply(S, function(x) X %*% x %*% t(X) ) , sum)
[[1]]
[1] 6

[[2]]
[1] 12

[[3]]
[1] 18
于 2013-09-09T19:37:48.770 に答える