RSolveValue[eqn,expr,n]
独立変数 n を持つ常差分方程式 eqn の記号解によって決定された expr の値を与える.
RSolveValue[{eqn1,eqn2,…},expr,…]
差分方程式のリストについての記号解を用いる.
RSolveValue[eqn,expr,{n1,n2,…}]
偏再帰方程式 eqn の解を用いる.
RSolveValue
RSolveValue[eqn,expr,n]
独立変数 n を持つ常差分方程式 eqn の記号解によって決定された expr の値を与える.
RSolveValue[{eqn1,eqn2,…},expr,…]
差分方程式のリストについての記号解を用いる.
RSolveValue[eqn,expr,{n1,n2,…}]
偏再帰方程式 eqn の解を用いる.
詳細とオプション
- RSolveValue[eqn,a,n]は a についての解を純関数として返す.
- この方程式は a[n+λ]の形のオブジェクトを含むことができる.ただし,λ は定数,あるいは,一般に,a[ψ[n]],a[ψ[ψ[n]]],a[ψ[…[ψ[n]]…]]の形のオブジェクトである.ψ は以下の形を取ることができる.
-
n+λ 算術差分方程式 μ n 幾何方程式あるいは
差分方程式μ n+λ 算術幾何関数差分方程式 μ nα 幾何ベキ関数差分方程式 
線形分数関数差分方程式 - 端末条件の指定のために,a[0]==val のような方程式を与えることができる.
- 端末条件が十分に指定されていない場合,RSolveValueは未定定数が導入される一般解を使う.
- a∈Vectors[p]あるいは a∈Matrices[{m,p}]という指定を使って従属変数 a がベクトル値あるいは行列値の変数であるを示すことができる.a はVectorSymbolまたはMatrixSymbolとして指定することもできる. » »
- RSolveValueによって導入される定数には,連続する整数で指標が付けられる.オプションGeneratedParametersで,各指標に適用される関数が指定される.デフォルトはGeneratedParameters->Cで,この場合は定数C[1], C[2], …が与えられる.
- GeneratedParameters->(Module[{C},C]&)は,RSolveValueを起動し直した後までも,積分定数が一意的であることを保証する.
- 偏再帰方程式については,RSolveValueは任意の関数C[n][…]を生成する.
- RSolveValueが与える解は,Sumでは明示的に実行できない総和を含むことがある.そのような総和には,局所名があるダミー変数が使われる.
- RSolveValue[eqn,a[Infinity],n]は,Infinityにおける解 a の極限値を与える.
- RSolveValueは,常差分方程式および
差分方程式の両方を扱うことができる. - RSolveValueは,常差分方程式と同様に差分代数方程式も扱うことができる.
- RSolveValueは,定数係数を持つ任意階数の線形再帰方程式を解くことができる.また,定数係数を持たない二階までの多くの線形方程式や多くの非線形方程式を解くことができる.
- RSolveValue[u[t]sys,resp,t]は,離散時間モデルを解く際に使うことができる.sys はTransferFunctionModelまたはStateSpaceModelでよく,応答関数 resp は以下のいずれかでよい. »
-
"StateResponse" 入力
に対する sys の状態応答"OutputResponse" 入力
に対する sys の出力応答
例題
すべて開く すべて閉じる例 (4)
RSolveValue[a[n + 1] - 2a[n] == 1, a[n], n]RSolveValue[{a[n + 1] - 2a[n] == 1, a[0] == 1}, a[n], n]sol = RSolveValue[{a[n + 1] - 2a[n] == 1, a[0] == 1}, a, n]DiscretePlot[sol[n], {n, 0, 7}]RSolveValue[a[n] == Sqrt[n]a[Sqrt[n]] + n, a[n], n]RSolveValue[{a[n + 1] == 2a[n], a[0] == 1}, a[3], n]RSolveValue[{a[n + 1] == 2a[n], a[0] == 1}, {a[3], a[4]}, n]スコープ (54)
基本的な用法 (9)
RSolveValue[a[n + 1] == 3a[n], a[n], n]sol = RSolveValue[{a[n + 1] == 3a[n], a[0] == 1}, a[n], n]sol = RSolveValue[{a[n + 1] == 2 a[n] + 5, a[0] == 3}, a[n], n]DiscretePlot[sol, {n, 0, 10}]Table[sol, {n, 0, 10}]eqns = {a[n + 1] == 4a[n] + k E ^ n, a[0] == 3};sol = RSolveValue[eqns, a, n]eqns /. {a -> sol}//SimplifyRSolveValue[a[n + 2] - 5a[n + 1] + 6a[n] == n, a[n], n]RSolveValue[{a[n + 2] - 5a[n + 1] + 6a[n] == n, a[0] == 1, a[1] == 3}, a[n], n]eqns = {a[n + 1] - b[n] == 2, a[n] - 3 b[n + 1] == 5, a[0] == 3, b[0] == 1};{sol1, sol2} = RSolveValue[eqns, {a, b}, n]DiscretePlot[Evaluate[{sol1[n], sol2[n]}], {n, 0, 20}]eqns /. {a -> sol1, b -> sol2}//SimplifyRSolveValue[{x[n + 1] == (1 + x[n]) ^ 2, x[0] == 0}, x[5], n]Infinityにおける解の極限値を計算する:
RSolveValue[{x[n + 1] == (7 + x[n]) / (1 + x[n]), x[1] == 3}, x[∞], n]sol = RSolveValue[7a[m + 1, n] - 6a[m, n + 1] == m, a[m, n], {m, n}]sol1 = sol /. C[1] -> CosDiscretePlot3D[sol1, {m, 0, 15}, {n, 0, 15}]RSolveValue[a[n + 2] - 7a[n + 1] + 12a[n] == 1, a[n], n]RSolveValue[a[n + 2] - 7a[n + 1] + 12a[n] == 1, a[n], n, GeneratedParameters -> f]線形差分方程式 (7)
RSolveValue[{a[n + 1] == c a[n], a[0] == 1}, a, n]RSolveValue[a[n + 1] == (n ^ 2 - 1 / 4) / (n + 1) a[n], a[n], n]RSolveValue[a[n + 3] == 2a[n], a, n]RSolveValue[{a[n + 3] == 2a[n], a[0] == 1, a[1] == 2, a[2] == -1}, a[n], n]DiscretePlot[%, {n, 15}, Filling -> Axis]RSolveValue[a[n + 2] - 4a[n + 1] + 3a[n] == n 4 ^ n, a[n], n]RSolveValue[(n + 4) a[n + 2] - a[n + 1] - (n + 1)a[n] == 0, a[n], n]RSolveValue[a[n + 2] == (n + 1)2 ^ n a[n], a[n], n]RSolveValue[2 a[n] - 2 n (-a[n] + a[n + 1]) + n (1 + n) (a[n] - 2 a[n + 1] + a[n + 2]) == 0, a, n]RSolveValue[(n + 2)a[n + 2] == (2 n + 3) x a[n + 1] - (n + 1) a[n], a, n]RSolveValue[a[n] == 2(1 + n) / (b + c z) a[n + 1] - a[n + 2], a[n], n]RSolveValue[a[n] == 2(n + 1) / n(c * z + d) a[n + 1] - (n + 2) / n a[n + 2], a, n]RSolveValue[ a[n + 2] + (2n + 1) a[n + 1] + n ^ 2 a[n] == 0, a[n], n ]RSolveValue[ y[k + 4] + 4y[k + 2] - 3 y[k + 1] + 2 y[k] == (2k^2 + 3k - 4) 2^3k, y[k], k ]非線形差分方程式 (5)
RSolveValue[a[n + 1] == 2(1 - a[n])a[n], a[n], n]RSolveValue[a[n + 1] == -2(1 - a[n])a[n], a[n], n]RSolveValue[a[n + 1] == 4(1 - a[n])a[n], a[n], n]RSolveValue[a[n + 1] == -(a[n] + 15) / (a[n] + 7), a[n], n]RSolveValue[ a[n + 1] a[n] - 2 a[n] + 2 == 0, a, n]RSolveValue[a[n + 1] == (40 + 21 a[n] - 24 a[n] ^ 2 + 4 a[n] ^ 3) / 9, a[n], n]RSolveValue[a[n + 1] == (-7300 + 9600 a[n] + 300 a[n] ^ 2 - 200 a[n] ^ 3 + a[n] ^ 4/2108 + 584 a[n] - 288 a[n] ^ 2 - 4 a[n] ^ 3 + a[n] ^ 4), a[n], n]RSolveValue[a[n + 1] == (-168 - 36 a[n] + 12 a[n] ^ 2 - a[n] ^ 3/-88 - 12 a[n] + 3 a[n] ^ 2), a[n], n]RSolveValue[ a[n + 2] == a[n + 1] a[n] ^ 2, a[n], n]RSolveValue[ a[n + 2] == b ^ n a[n + 1] a[n] ^ 2, a[n], n]RSolveValue[{a[n + 1] == Sum[a[m] a[n - m], {m, 0, n}], a[0] == 1}, a[n], n]差分方程式系 (8)
RSolveValue[{y[n + 1] + z[n] == 3, y[n] + 2 z[n + 1] == 1}, {y[n], z[n]}, n]{sol1, sol2} = RSolveValue[{y[n + 1] + z[n] == 3, y[n] + 2 z[n + 1] == 1, y[0] == 5, z[0] == 1}, {y, z}, n]ListPlot[Transpose @ Table[{sol1[n], sol2[n]}, {n, 0, 15}], Filling -> Axis]RSolveValue[{y[n + 1] == (3y[n]/1 + y[n] + z[n]), z[n + 1] == (z[n]/1 + y[n] + z[n])}, {y[n], z[n]}, n]RSolveValue[{x[n + 1] == (x[n] + 3 y[n]/4 + x[n] + y[n] + z[n]), y[n + 1] == (y[n] + 2 z[n]/4 + x[n] + y[n] + z[n]), z[n + 1] == (z[n]/4 + x[n] + y[n] + z[n])}, {x[n], y[n], z[n]}, n]RSolveValue[{y[n + 1] == (n + 1) / 2 ^ n y[n], z[n + 1] == n ^ 2 z[n]}, {y[n], z[n]}, n]RSolveValue[ {-((1 + 3 n + n ^ 2) x[n]/n ^ 2) + x[n + 1] + (y[n]/n) + ((1 + 2 n) z[n]/n ^ 2) == 0, -y[n] + (n ^ 2y[n + 1] + (1 + 2 n) (-x[n] + z[n])/n ^ 2) == 0, (-x[n] + y[n] - n z[n] + n z[n + 1]/n) == 0}, {x, y, z}, n ]RSolveValue[{y[n + 1] + z[n + 1] == y[n] - 3z[n], y[n] + 2z[n] == 1}, {y[n], z[n]}, n]RSolveValue[{x[n + 1] == x[n] + 2y[n], y[n] == x[n] + 2 ^ n, x[n] + z[n] == 0}, {x[n], y[n], z[n]}, n]a = {{n, 1}, {1, 0}};RSolveValue[x[n + 1] == a.x[n], Element[x[n], Vectors[2]], n]
をVectorSymbolとして定義することもできる:
x = VectorSymbol["x", 2]RSolveValue[x[n + 1] == a.x[n], x[n], n]a = {{0, 1}, {-1, 0}};
x0 = {{1, 2}, {3, 4}};RSolveValue[{x[n + 1] == a.x[n], x[0] == x0}, Element[x[n], Matrices[{2, 2}]], n]//MatrixForm
をMatrixSymbolとして定義することもできる:
x = MatrixSymbol["x", {2, 2}]RSolveValue[{x[n + 1] == a.x[n], x[0] == x0}, x[n], n]//MatrixFormA = {{2, 1}, {-2, 0}};
B = {3t, 4}Exp[2t];RSolveValue[x[t + 1] + A.x[t] == B, Element[x[t], Vectors[2]], t]偏差分方程式 (3)
RSolveValue[a[m + 1, n] - 3 / 4a[m, n + 1] == 0, a[m, n], {m, n}]% /. C[1] -> Function[k, Sin[2k]]Plot3D[%, {m, 0, 10}, {n, 0, 10}, PlotRange -> All]RSolveValue[ a[m + 2, n] == 4a[m, n + 1], a[m, n], {m, n}]RSolveValue[ a[m + 3, n] - 3a[m + 2, n + 1] + 3a[m + 1, n + 2] - a[m, n + 3] == 0, a[m, n], {m, n}]RSolveValue[a[m + 4, n] - 4a[m + 3, n + 1] + 6a[m + 2, n + 2] - 4a[m + 1, n + 3] + a[m, n + 4] == 0, a, {m, n}]RSolveValue[a[m + 1, n] - 4a[m, n + 1] == 6m ^ 2 n + 4, a[m, n], {m, n}]RSolveValue[ a[m, n] - m a[m - 1, n - 1] == 0, a[m, n], {m, n}]RSolveValue[a[m, n] == m ^ 3a[m + 1, n + 1] , a, {m, n}]q差分方程式 (6)
RSolveValue[a[q n] == 2a[n], a[n], n]RSolveValue[a[n] == 2a[n / q], a[n], n]RSolveValue[{a[n] == 2a[n / q], a[1] == 1}, a[n], n]RSolveValue[a[q n] + a[n / q] == 0, a[n], n]RSolveValue[a[n] == a[n / q ^ 3], a, n]RSolveValue[a[q ^ 2 n] + a[n] == n, a[n], n]RSolveValue[{a[n] == 3 a[n / 2] + n, a[1] == 1}, a[n], n]DiscretePlot[%, {n, 1, 10}, Filling -> Axis]RSolveValue[a[q n] == n a[n], a, n]RSolveValue[a[q ^ 2 n] == n a[n], a, n]RSolveValue[ a[q n] == a[n] ^ 2, a, n]RSolveValue[a[q n] == -(a[n] + 15) / (a[n] + 7), a[n], n]RSolveValue[{y[q ^ 2 n] - z[q n] == 0, z[q n] - 5 y[n] == 0}, {y[n], z[n]}, n]関数差分方程式 (4)
sol = RSolveValue[y[n + (1/3)] == 2 y[n + (1/6)] + n^2, y, n]y[n + 1 / 3] == 2y[n + 1 / 6] + n ^ 2 /. {y -> sol}//FullSimplifysol = RSolveValue[{y[n] == 2^n y[(n/2) + 1], y[3] == 4}, y, n]ListLogPlot[Table[sol[n], {n, 3, 10}], Filling -> Axis]sol = RSolveValue[{y[(2 n - 1/-n + 2)] == 3 y[n] + 5, y[4] == 3}, y, n]Table[sol[n], {n, 4, 10}]sol = RSolveValue[y[n] == Log[2, n] + 2 y[4 Sqrt[n]], y, n]y[n] == Log[2, n] + 2 y[4 Sqrt[n]] /. {y -> sol}//FullSimplify回帰数列の極限 (5)
RSolveValue[{x[n + 1] == (x[n] + n x[n - 1]) / (n + 1), x[0] == 0, x[1] == 1}, x[∞], n]N[%]ListPlot[RecurrenceTable[{x[n + 1] == (x[n] + (n x[n - 1])) / (n + 1), x[0] == 0, x[1] == 1}, x[n]//Evaluate, {n, 1, 50}], PlotStyle -> Red]RSolveValue[{x[n + 1] == x[n] ^ 2 + 1 / 4, x[0] == 1 / 3}, x[∞], n]ListPlot[RecurrenceTable[{x[n + 1] == x[n] ^ 2 + 1 / 4, x[0] == 1. / 3}, x[n]//Evaluate, {n, 0, 20}], PlotStyle -> Red]RSolveValue[{x[n + 1] == Cos[x[n]] / 2, x[1] == π / 3}, x[∞], n]N[%]ListPlot[RecurrenceTable[{x[n + 1] == Cos[x[n]] / 2, x[1] == π / 3}, x[n], {n, 1, 15}], PlotStyle -> Red]RSolveValue[{x[n + 2] == (x[n + 1] + x[n]) / 2, x[0] == 0, x[1] == 1}, x[∞], n]ListPlot[RecurrenceTable[{x[n + 2] == (x[n + 1] + x[n]) / 2, x[0] == 0, x[1] == 1}, x[n], {n, 1, 25}], PlotStyle -> Red]差分方程式を満足するフィボナッチ数列について,隣接項の比,f[n+1]/f[n]の極限を計算する:
fibeqn = {f[n] == f[n - 1] + f[n - 2], f[0] == 0, f[1] == 1};frat = RSolveValue[fibeqn, f[n + 1] / f[n], n]DiscreteLimitを使って比の極限を計算する:
ratlim = DiscreteLimit[frat, n -> ∞]N[%]ListPlot[Table[frat, {n, 1, 25}], PlotStyle -> Red]代りに,RSolveValueの中でDiscreteLimitを使って極限を計算する:
RSolveValue[fibeqn, DiscreteLimit[f[n + 1] / f[n], n -> ∞], n]系のモデル (7)
正弦波入力に対する離散時間StateSpaceModelのOutputResponseとStateResponseを計算する:
ssm = StateSpaceModel[{{{a}}, {{b}}, {{c}}, {{d}}}, SamplingPeriod -> 1]RSolveValue[Sin[t] -> ssm, "StateResponse", t]RSolveValue[Sin[t] -> ssm, "OutputResponse", t]tfm = TransferFunctionModel[{{{1}}, 1 + s}, s, SamplingPeriod -> 0.1]RSolveValue[Sin[10t] -> tfm, "OutputResponse", t]RSolveValue[{0 -> StateSpaceModel[{{{-2, 0.8, 0}, {-0.8, -2, 0}, {0, 0, -1}}, {{1}, {0}, {-1}}, {{1, 0, 0}}, {{0}}},
SamplingPeriod -> 0.2, SystemsModelLabels -> None], {1, 2, 3}}, "OutputResponse", t]τ = 1.5;
sr = RSolveValue[UnitStep[k] -> StateSpaceModel[{{{0, 1}, {-1/20, 3/5}}, {{0}, {1}}, {{0, 1}}, {{0}}},
SamplingPeriod -> τ, SystemsModelLabels -> None], "StateResponse", k]ListStepPlot[Table[sr, {k, 0, 8}], DataRange -> {0, 8 τ}]RSolveValue[{u[k] -> StateSpaceModel[{{{a}}, {{b}}}, SamplingPeriod -> T,
SystemsModelLabels -> None], {Subscript[x, 0]}}, "StateResponse", k]RSolveValue[{1 -> StateSpaceModel[{{{a}}, {{b}}, {{c}}, {{d}}},
SamplingPeriod -> T, SystemsModelLabels -> None], {Subscript[x, 0]}}, "OutputResponse", k]or = RSolveValue[Sqrt[k] -> TransferFunctionModel[{{{(1 + z)*τ^2}}, 2*(-1 + z)^2},
z, SamplingPeriod -> τ], "OutputResponse", k]ListStepPlot[Table[or /. τ -> 0.1, {k, Range[20]}], DataRange -> {0, 20 0.1}]一般化と拡張 (2)
RSolveValue[{a[n + 1] == a[n] + 1, a[0] == 0}, a[n] ^ 2, n]RSolveValue[{a[n + 2] == 4a[n]}, a[n], n]RSolveValue[{a[n + 2] == 4a[n], a[0] == 1}, a[n], n]RSolveValue[{a[n + 2] == 4a[n], a[0] == 1, a[1] == 4}, a[n], n]オプション (3)
GeneratedParameters (1)
Method (1)
RSolveValue[{a[n + 1] - 2a[n] == 0, a[0] == 1}, a[n], n]DifferenceRootによって解を取得する:
RSolveValue[{a[n + 1] - 2a[n] == 0, a[0] == 1}, a[n], n, Method -> "Holonomic"]Assumptions (1)
RSolveValue[{a[n + 2] == λ a[n], a[0] == 0, a[1] == 1}, a[n], n]Assumptionsを使ってパラメータ λ は正であると指定する:
RSolveValue[{a[n + 2] == λ a[n], a[0] == 0, a[1] == 1}, a[n], n, Assumptions -> λ > 0]Simplify[%]アプリケーション (13)
これは,年nにおける量a[n]をモデル化する.ただし,利子rは元金pに対してのみ払われる:
RSolveValue[{a[n + 1] == a[n] + r p, a[0] == p}, a[n], n]//Factor以下では,利子は現行の値a[n]について払われる.つまり,複利である:
RSolveValue[{a[n + 1] == (1 + r)a[n], a[0] == p}, a[n], n]以下では,a[n]は,n枚の円板についての「ハノイの塔」問題で必要な移動回数を表している:
RSolveValue[{a[n + 1] == 2a[n] + 1, a[1] == 1}, a[n], n]以下では,a[n]は n×3の空間を2×1のタイルで埋めるのに何通りあるかを表している:
sol = RSolveValue[{a[n + 4] - 4a[n + 2] + a[n] == 0, a[1] == 0, a[2] == 3, a[3] == 0, a[4] == 11}, a, n]Table[Evaluate[sol[n]], {n, 2, 20, 2}]//FullSimplifyRSolveValue[b[n] == b[n / 2] + 1 && b[1] == 1, b[n], n]RSolveValue[f[n] == 2 f[n / 2] + (3 / 2)n, f[n], n]RSolveValue[{x[n + 1] == Sqrt[6 + x[n]], x[1] == Sqrt[6]}, x[3], n]RSolveValue[{x[n + 1] == Sqrt[6 + x[n]], x[1] == Sqrt[6]}, x[∞], n]ListPlot[RecurrenceTable[{x[n + 1] == Sqrt[6 + x[n]], x[1] == Sqrt[6]}, x[n], {n, 1, 15}], PlotStyle -> Red]RSolveValue[{e[n + 1] == 1 / n(Exp[-x] - x e[n]), e[1] == Gamma[0, x]}, e[n], n]RSolveValue[{i[n + 2] - 2Cos[ϕ]i[n + 1] + i[n] == 0, i[0] == 0, i[1] == Pi}, i[n], n]RSolveValue[{n a[n] == 2a[n - 2], a[0] == 1, a[1] == 0}, a[n], n]Table[%, {n, 0, 10}]DSolveValue[{y'[x] == 2x y[x], y[0] == 1}, y[x], x]Series[%, {x, 0, 10}]SeriesCoefficient[Exp[x ^ 2], {x, 0, n}]Table[%, {n, 0, 10}]対角要素がc, a, bである n×n 三重対角行列の行列式は以下を満たす:
RSolveValue[{d[n + 2] == a d[n + 1] - b c d[n], d[1] == a, d[2] == a ^ 2 - b c}, d[n], n]Table[%, {n, 2, 5}]//SimplifyTable[Det @SparseArray[{Band[{1, 1}] -> a, Band[{1, 2}] -> b, Band[{2, 1}] -> c}, {n, n}], {n, 2, 5}]これは,次元 n の単位球の表面積 s[n]のモデルである:
RSolveValue[{s[n + 2] == 2Pi / n s[n], s[2] == 2Pi, s[3] == 4Pi}, s[n], n]Table[%, {n, 2, 10}]RSolveValue[{v[n] == 2Pi v[n - 2] / n, v[2] == Pi, v[3] == 4 / 3Pi}, v[n], n]Table[%, {n, 2, 10}]RSolveValue[y[n + 1] == (1 / 2)(y[n] + 3 / y[n]) && y[0] == 1 / 5, y[n], n]Table[%, {n, 1., 6}]//Chopsol = RSolveValue[ {(101 y[n]/100) - 2 y[n + 1] + y[n + 2] == 0, y[0] == 1, y[1] == 1}, y, n]Plot[sol[k], {k, 0, 10}]dsol = DSolveValue[ y''[x] + 1 / 100y[x] == 0 && y[0] == 1 && y[1] == 1, y, x]Plot[dsol[x], {x, 0, 10}]ksol = RSolveValue[ {t[n] == 3 t[n / 2 + 1] + n , t[3] == 1}, t[n], n ]DiscretePlot[{ksol, n ^ 2}, {n, 5, 300}, PlotLegends -> {"Karatsuba", "Schoolbook"}]大きい n について,線形回帰の第 n
項を効率良く計算する:
RSolveValue[{x[n + 4] == 3x[n + 3] + x[n + 2] + x[n + 1] + 4 x[n], x[1] == 1, x[2] == -37, x[3] == 9, x[4] == 80}, x[500], n]//AbsoluteTimingRSolveValue[{x[n + 4] == 3x[n + 3] + x[n + 2] + x[n + 1] + 4 x[n], x[1] == 1, x[2] == -37, x[3] == 9, x[4] == 80}, x[500000], n];//AbsoluteTiming特性と関係 (10)
RSolveValueは解についての式を返す:
RSolveValue[a[n + 1] - 2a[n] == 1, a[n], n]RSolveは解についての規則を返す:
RSolve[a[n + 1] - 2a[n] == 1, a[n], n]sol = RSolveValue[{a[n + 2] == a[n], a[0] == 1, a[1] == 2}, a, n]{a[n + 2] == a[n], a[0] == 1, a[1] == 2} /. {a -> sol}//SimplifySumに対応する差分方程式:
RSolveValue[a[n + 1] - a[n] == n ^ 2 && a[0] == 0, a[n], n]//ExpandSum[i ^ 2, {i, 0, n - 1}]//ExpandProductに対応する差分方程式:
RSolveValue[a[n + 1] == n a[n] && a[1] == 1, a[n], n]//FunctionExpandProduct[i, {i, 1, n - 1}]//FunctionExpandRSolveValueは差分方程式の記号解を求める:
RSolveValue[{a[n + 1] == 2a[n] + 1, a[0] == 7}, a[n], n]Table[%, {n, 0, 7}]RecurrenceTableは,同じ問題についての手続き的解を生成する:
RecurrenceTable[{a[n + 1] == 2a[n] + 1, a[0] == 7}, a, {n, 0, 7}]FindLinearRecurrenceは,リストについての最小線形再帰を求める:
FindLinearRecurrence[Table[Fibonacci[k], {k, 7}]]RSolveValueは,再帰を満足する数列を求める:
RSolveValue[{a[n] == %.{a[n - 1], a[n - 2]}, a[1] == 1, a[2] == 1}, a[n], n]LinearRecurrenceは線形回帰の第 n
項を生成する:
LinearRecurrence[{1, 1}, {1, 1}, {7}]RSolveValueを使って同じ結果を得る:
RSolveValue[{a[n + 2] == a[n + 1] + a[n], a[0] == 1, a[1] == 1}, a[6], n]RecurrenceFilterを使って信号にフィルタをかける:
RecurrenceFilter[{{1, -(1/2)}, {1}}, {1, 0, 0, 0, 0, 0, 0, 0}]RSolveValueを使って対応する差分方程式を解く:
RSolveValue[{y[n] - (1/2)y[n - 1] == DiscreteDelta[n], y[-1] == 0}, y[n], n]Table[%, {n, 0, 7}]ARProcessに基づいて時系列の次の値を予測する:
proc = ARProcess[{a[2], a[1]}, v];TimeSeriesForecast[proc, {3, 5}]RSolveValueを使って同じ結果を得る:
RSolveValue[{x[n + 1] == a[2] x[n] + a[1]x[n - 1], x[1] == 3, x[2] == 5}, x[3], n]//SimplifyRFixedPointsを使って2つの再帰方程式の系の固定点を求める:
RFixedPoints[{a[n + 1] - b[n] == 2, a[n] - 3 b[n + 1] == 5}, {a, b}, n]RStabilityConditionsを使って固定点の安定性を解析する:
RStabilityConditions[{a[n + 1] - b[n] == 2, a[n] - 3 b[n + 1] == 5}, {a, b}, n]sol = RSolveValue[{a[n + 1] - b[n] == 2, a[n] - 3 b[n + 1] == 5, a[0] == 1 / 2, b[0] == -3 / 2}, {a[n], b[n]}, n]sol = RSolveValue[{a[n + 1] - b[n] == 2, a[n] - 3 b[n + 1] == 5, a[0] == 3, b[0] == 1}, {a[n], b[n]}, n]DiscretePlot[Evaluate[sol], {n, 0, 20}]考えられる問題 (4)
RSolveValue[{x[K + 1] == x[K] + Prime[K]}, x[K], K]RSolveValue[{x[C + 1] == x[C] + Prime[C]}, x[C], C]RSolveValue[{x[k + 1] == x[k] + Prime[k]}, x[k], k]RSolveValue[{x[c + 1] == x[c] + Prime[c]}, x[c], c]RSolveValue[a[n + 1] == 2a[n] && a[0] == 1, a, n]a[n + 1] == 2a[n] && a[0] == 1 /. a -> Function[n, 2 ^ n + a Sin[Pi n]]Simplify[ %, n∈Integers ]RSolveValueは,解に複数の分枝が含まれる場合は,1つの分枝しか返さない:
RSolveValue[{a[n + 1] == 2a[n], a[1] ^ 2 == 1}, a[n], n]RSolveを使って解のすべての分枝を得る:
RSolve[{a[n + 1] == 2a[n], a[1] ^ 2 == 1}, a[n], n]eqn = Subscript[a, n + 1] - 2 Subscript[a, n] == 1;Subscript[sol, n_] = RSolveValue[eqn, Subscript[a, n], n]Simplify[eqn /. {a -> sol}]おもしろい例題 (1)
テクニカルノート
関連するガイド
-
▪
- 離散微積分 ▪
- 記号的なベクトル,行列,配列
テキスト
Wolfram Research (2014), RSolveValue, Wolfram言語関数, https://reference.wolfram.com/language/ref/RSolveValue.html (2025年に更新).
CMS
Wolfram Language. 2014. "RSolveValue." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2025. https://reference.wolfram.com/language/ref/RSolveValue.html.
APA
Wolfram Language. (2014). RSolveValue. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/RSolveValue.html
BibTeX
@misc{reference.wolfram_2026_rsolvevalue, author="Wolfram Research", title="{RSolveValue}", year="2025", howpublished="\url{https://reference.wolfram.com/language/ref/RSolveValue.html}", note=[Accessed: 10-July-2026]}
BibLaTeX
@online{reference.wolfram_2026_rsolvevalue, organization={Wolfram Research}, title={RSolveValue}, year={2025}, url={https://reference.wolfram.com/language/ref/RSolveValue.html}, note=[Accessed: 10-July-2026]}