1

varMathematica 関数 Series[ ] に次のように変数、たとえば を入力する必要がありますSeries[A^2+B^2+C^2, var]。Series[ ] の構文は次のとおりです。

Series[f, {x, x_0, n}] は、点 x=x_0 に関する f の階数 n へのべき級数展開を生成します。
Series[f, {x, x_0, n}, {y, y_0, m}, ...] は、x、y などに関する級数展開を連続して見つけます。

Series[ ] を常に 1 次元で計算しているわけではない (つまり、反復ごとに常に変数であるとは限らない)Bため、次元の要求に適合するように適切にフォーマットする必要があります。注意点として、 Mathematica はリストが好きなので、縮退したテーブルには一連の outer があります。Cvar{}

前のコードが次の 2 つのセットのセットを生成するとします。

テーブル[1] = {{A、0、n}};
テーブル[2] = {{A、0、n}、{B、0、m}}; .

私の最善のアイデアは、文字列操作を使用することです(i = 2の場合):

文字列 = ToString[テーブル[i]]; .
str = StringReplacePart[string, {" ", " "}, {{1}, {StringLength[string], StringLength[string]}}]

次のステップは、 do を実行して andのstrような式に変換することですが、これは次のエラーを返します。varSeries[A^2 + B^2 + C^2, var]var= ToExpression[str]

ToExpression::sntx: "{A, 0, n}, {B, 0, m}" 内またはその前に無効な構文があります。
$失敗

適切な式への変換strを支援するか、この問題を処理する別の方法を提案してください。

4

2 に答える 2

2

私が正しく理解していれば、あなたは

table[2] = {{A, 0, n}, {B, 0, m}};

そこから取得しようとしています

Series[f[A,B],{A,0,n},{B,0,m}]

これはSequence、のように使用して行うことができます(何が起こっているかを確認できるように、未評価のままにするseries代わりに使用します):Series

series[f[A, B], Sequence @@ table[2]]
(*
-> series[f[A,B],{A,0,n},{B,0,m}]
*)

だから例えば

table[3] = {{A, 0, 2}, {B, 0, 2}};
Series[f[A, B], Sequence @@ table[3]]

適切なシリーズ拡張を提供します。

于 2011-07-29T11:49:53.593 に答える
1

より一般的にはFirstorまたはを使用して、必要な を取得できます。たとえば、LastPartList

var = {{x, 0, 3}, {x, 0, 5}};
Series[1/(1 + x), var[[1]]]

Out[1]= 1 - x + x^2 - x^3 + O[x]^4

Series[1/(1 + x), var[[2]]]

Out[2]= 1 - x + x^2 - x^3 + x^4 - x^5 + O[x]^6

編集:

複数の変数の場合、次のようにSlotSequence( ##) とともにApply( ) を使用できます@@

Series[Sin[u + w], ##] & @@ {{u, 0, 3}, {w, 0, 3}}
于 2011-07-29T06:41:18.907 に答える