sum2mat_JPH {lazy.symbolic}R Documentation

総和記号を行列表現に変換する

Description

英語のヘルプファイルは: sum2mat

Arguments

sexpr

入力の総和記号式

expand

= 0 の場合、処理前に入力を展開しない

deparse_result

= FALSE の場合、結果を R の expression として返す。

print

= 0 の場合、結果を表示しない

debug

= 1 の場合、デバッグ情報を表示

Details

添字 k に関する式の総和は以下のように表現されます。
s( exp, {sub} )
または
s( exp, {sub, from, to} )
ただし、本関数では添字は省略形 {sub} で与える必要があり、 完全形 {sub,from,to} は使用できません。

総和記号の本体は 1 項のみである必要があります。以下を比較してください:
sum2mat("s(a+b,{k})", expand=0)

sum2mat("s(a+b,{k})")
デフォルトの expand=1 オプションでは、総和記号本体が展開されます。

式中に複数の総和がある場合は、呼び出し前に sumMoveIn を使用してください。下記例参照。

入力式が非常に複雑な場合、結果が正しくない可能性があります。

Value

添字付きの対応する行列表現(文字列または式)

Author(s)

Dr. Kentaro Fukushima

Examples

sexpr="s(A[i,j]*b[j],{j})" |> sum2mat()
sexpr="s(A[j,i]*b[j],{j})" |> sum2mat()
sexpr="s(b[i]*A[i,j],{i})" |> sum2mat()
sexpr="s(b[j]*A[i,j],{j})" |> sum2mat()

sexpr="s(A[i,k]*B[k,j],{k}) + s(A[i,k]*B[j,k],{k})" |> sum2mat()
sexpr="s(A[k,i]*B[k,j],{k}) + s(A[k,i]*B[j,k],{k})" |> sum2mat()
sexpr="s(A[i,k]*B[k,j] + A[i,k]*B[j,k],{k})" |> sum2mat()

sexpr="A[i,j]" |> sum2mat()
sexpr="A[i,j]*D[j,j]" |> sum2mat()
sexpr="A[i,j]*D[i,i]" |> sum2mat()
sexpr="D[i,i]*A[i,j]" |> sum2mat()

sexpr="A[i,j]+B[i,j]" |> sum2mat()
sexpr="-A[i,j]-B[i,j]+C[i,j]" |> sum2mat()

sexpr="s(A[i,j],{j})" |> sum2mat()
sexpr="s(A[i,j],{i})" |> sum2mat()
sexpr="s(A[i,j]*D[j,j],{j})" |> sum2mat()

sexpr="s(s(A[i,j]*B[j,k],{k}),{j})" |> sum2mat()
sexpr="s(s(A[i,j]*B[j,k],{k}),{j})" |> sumMoveIn() |> sum2mat()

## Not run: 
library(htmltools)
# LaTeX出力
sexpr="s(A[i,j]*b[j],{j})" |> sum2mat()
|> to_latex(mat2sum=TRUE, print_html=TRUE)

sexpr="s(A[i,j]*b[j],{j})" |> sum2mat(deparse_result=FALSE)
|> to_latex(mat2sum=TRUE, print_html=TRUE)

## End(Not run)


[Package lazy.symbolic version 1.0.0.20250830 ]