MATLAB で系列の合計を生成する
このチュートリアルでは、MATLAB で symsum()
関数を使用して系列の合計を生成する方法について説明します。
MATLAB で系列の合計を生成する
symsum()
関数を使用して、Matlab で系列の合計を生成できます。 シリーズの最初の n
項の合計を見つけることができます。
symsum()
関数の基本的な構文を以下に示します。
result = symsum(f,n,a,b);
上記の構文では、symsum()
関数は、a
から b
の範囲内の変数 n
内に格納された総和インデックスに関して、変数 f
に格納された系列の総和を見つけます。 変数 a
は範囲の下限を定義し、変数 b
は範囲の上限を定義します。
範囲は、symsum()
関数の 2 番目の引数で定義された変数に属します。 たとえば、1
から 15
までの範囲の一連の変数立方体の合計を見つけてみましょう。
コード例:
clc
clear
syms n
result = symsum(n^3,n,1,15)
出力:
result =
14400
上記のコードでは、関数は 1
から 15
までの n
の値をシリーズに入れ、結果を見つけ、最後にすべての評価結果を合計して最終結果を表示します。 syms
コマンドを使用してシンボリック変数を作成します。これは、そうしないと、MATLAB がそれらを通常の変数と見なし、それらの値を必要とするためです。
上記の例では、シリーズには変数が 1つしかありませんが、シリーズ n^k
のように、複数の変数を持つシリーズの合計を見つけることもできます。 この場合、結果は数値ではありません。 むしろ、他の変数の値がわからないため、区分関数になります。
たとえば、2つの変数を含む系列の合計を求めてみましょう。 以下のコードを参照してください。
clc
clear
syms n k
result = symsum(n^k,k,1,15)
出力:
result =
piecewise(n == 1, 15, n ~= 1, n^16/(n - 1) - n/(n - 1))
出力からわかるように、結果は symsum()
関数で値を指定していない変数を含む区分関数です。 symsum()
関数では 3 番目と 4 番目の引数がオプションであるため、範囲がわからない場合でも、シリーズの合計を見つけることができます。
たとえば、上記の関数の級数の範囲のない和を求めてみましょう。
コード例:
clc
clear
syms n k
result = symsum(n^k,k)
出力:
result =
piecewise(n == 1, k, n ~= 1, n^k/(n - 1))
変数の値を指定していないため、両方の変数が上記の出力に表示されます。 symsum()
関数を使用して多項式級数の和を求めることもできますが、関数には複数の変数が必要です。
1つの変数の境界を渡し、結果を他の変数の形式で返すことができます。その値を後で渡して数値結果を見つけることができます。 たとえば、多項式級数の和を求めてみましょう。
コード例:
clc
clear
syms n k
result(n) = symsum(n^k,k,1,8)
result(5)
出力:
result(n) =
n^8 + n^7 + n^6 + n^5 + n^4 + n^3 + n^2 + n
ans =
488280
上記のコードでは、1つの変数の境界を指定し、symsum()
は関数内に存在する他の変数の形式で多項式を返します。 その後、その変数に値を入力して多項式を評価すると、数値が得られます。
複数の変数を含む多項式を見つけることもできます。 symsum()
関数は、複数の変数を含む多項式を返します。
それらを評価するには、多項式内のすべての変数の値を渡して数値結果を見つける必要があります。 たとえば、3つの変数を含む多項式の和を求めてみましょう。
コード例:
clc
clear
syms n k x
result(n,x) = symsum(n^(x*k),k,1,8)
result(5,1)
出力:
result(n, x) =
n^x + n^(2*x) + n^(3*x) + n^(4*x) + n^(5*x) + n^(6*x) + n^(7*x) + n^(8*x)
ans =
488280
ご覧のとおり、出力多項式には 2つの変数が含まれており、数値結果を見つけるには 2つの値を入力する必要があります。 symsum()
関数の詳細については、この リンク を確認してください。