MATLAB で系列の合計を生成する

Ammar Ali 2024年2月16日
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() 関数の詳細については、この リンク を確認してください。

著者: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook