Main Content

taylor

説明

T = taylor(f,var) は、点 var = 0 において、fテイラー級数展開を使用して最大 5 階まで f を近似します。var を指定しない場合、taylorsymvar(f,1) によって決定される既定の変数を使用します。

T = taylor(f,var,a) は、点 var = a において f のテイラー級数展開を使用して f を近似します。

T = taylor(___,Name,Value) は、前述の構文の入力引数の組み合わせのいずれかに加えて、1 つ以上の名前と値の引数を使用して、オプションを指定します。たとえば、テイラー級数展開の展開点、打ち切り階数、または階数モードを指定できます。

すべて折りたたむ

指数、正弦および余弦関数のマクローリン級数展開を最大 5 階まで求めます。

syms x
T1 = taylor(exp(x))
T1 = 

x5120+x424+x36+x22+x+1

T2 = taylor(sin(x))
T2 = 

x5120-x36+x

T3 = taylor(cos(x))
T3 = 

x424-x22+1

関数 sympref を使用して、シンボリックな多項式の出力順序を変更できます。多項式を昇順で再表示します。

sympref('PolynomialDisplayStyle','ascend');
T1
T1 = 

1+x+x22+x36+x424+x5120

T2
T2 = 

x-x36+x5120

T3
T3 = 

1-x22+x424

sympref を使用して設定した表示形式は、現在およびこれ以降の MATLAB® セッションを通じて維持されます。既定値に戻すには 'default' オプションを指定します。

sympref('default');

次の関数の x=1 におけるテイラー級数展開を求めます。展開点の既定値は 0 です。異なる展開点を指定するには、ExpansionPoint を使用します。

syms x
T = taylor(log(x),x,'ExpansionPoint',1)
T = 

x-x-122+x-133-x-144+x-155-1

または、展開点を taylor の 3 番目の引数として指定します。

T = taylor(acot(x),x,1)
T = 

π4-x2+x-124-x-1312+x-1540+12

f = sin(x)/x のマクローリン級数展開を求めます。既定の打ち切り階数は 6 です。この式のテイラー級数近似には 5 次の項がないため、taylor はこの式を 4 次多項式を使用して近似します。

syms x
f = sin(x)/x;
T6 = taylor(f,x);

Order を使用して、打ち切り階数を制御します。たとえば、最大 7 階と 9 階まで同じ式を近似します。

T8 = taylor(f,x,'Order',8);
T10 = taylor(f,x,'Order',10);

元の式 f とその近似 T6T8 および T10 をプロットします。近似の精度が打ち切り階数によってどう変わるかがわかります。

fplot([T6 T8 T10 f])
xlim([-4 4])
grid on
legend('approximation of sin(x)/x with error O(x^6)', ...
       'approximation of sin(x)/x with error O(x^8)', ...
       'approximation of sin(x)/x with error O(x^{10})', ...
       'sin(x)/x','Location','Best')
title('Taylor Series Expansion')

Figure contains an axes object. The axes object with title Taylor Series Expansion contains 4 objects of type functionline. These objects represent approximation of sin(x)/x with error O(x^6), approximation of sin(x)/x with error O(x^8), approximation of sin(x)/x with error O(x^{10}), sin(x)/x.

この式のテイラー級数展開を求めます。既定の設定では、taylor は計算された級数の打ち切り階数である絶対階数を使用します。

syms x
T = taylor(1/exp(x) - exp(x) + 2*x,x,'Order',5)
T = 

-x33

OrderMode を使用した相対打ち切り階数によるテイラー級数展開を求めます。式によっては、相対打ち切り階数がより正確な近似を提示する場合もあります。

T = taylor(1/exp(x) - exp(x) + 2*x,x,'Order',5,'OrderMode','relative')
T = 

-x72520-x560-x33

この多変数式のマクローリン級数展開を求めます。変数のベクトルを指定しない場合、taylorf を 1 つの独立変数の関数として処理します。

syms x y z
f = sin(x) + cos(y) + exp(z);
T = taylor(f)
T = 

x5120-x36+x+cos(y)+ez

変数のベクトルを指定して、多変数マクローリン級数展開を求めます。

syms x y z
f = sin(x) + cos(y) + exp(z);
T = taylor(f,[x,y,z])
T = 

x5120-x36+x+y424-y22+z5120+z424+z36+z22+z+2

関数 sympref を使用して、シンボリックな多項式の出力順序を変更できます。多項式を昇順で再表示します。

sympref('PolynomialDisplayStyle','ascend');
T
T = 

2+z+z22+z36+z424+z5120-y22+y424+x-x36+x5120

sympref を使用して設定した表示形式は、現在およびこれ以降の MATLAB セッションを通じて維持されます。既定値に戻すには 'default' オプションを指定します。

sympref('default');

変数のベクトルと展開点を定義する値のベクトルの両方を指定し、多変数テイラー級数展開を求めます。

syms x y
f = y*exp(x - 1) - x*log(y);
T = taylor(f,[x y],[1 1],'Order',3)
T = 

x+x-122+y-122

展開点をスカラー a として指定すると、taylor はそのスカラーを変数のベクトルと同じ長さのベクトルに変換します。展開ベクトルのすべての要素は、a と等しくなります。

T = taylor(f,[x y],1,'Order',3)
T = 

x+x-122+y-122

テイラー級数展開を使用して関数 f(x)=log(x+1) を近似するときの誤差推定を求めます。ここで、展開点 a=0 での最大 7 階までのテイラー近似 (打ち切り階数 n=8) について考えます。

テイラー近似の誤差または剰余は、次のラグランジュ形式で与えられます。

Rn-1(x)=fn(c)n!(x-a)n.

誤差推定の上限は、ax の間のすべての c に対して |fn(c)|M となるような正の実数 M を求めることによって計算できます。

Order8 として指定して、関数 f(x)=log(x+1) のテイラー級数展開を最大 7 階まで求めます。

syms x
f = log(x+1)
f = log(x+1)
T = taylor(f,'Order',8)
T = 

x77-x66+x55-x44+x33-x22+x

テイラー近似の誤差を推定するには、最初に項 f8(c) を計算します。

syms c
fn(c) = subs(diff(f,8),x,c)
fn(c) = 

-5040c+18

x の正の値の場合、誤差推定の上限は、関係 |f8(c)|5040 を使用して計算できます (c は正の値、かつ 0 から正の x の間になければならないため)。次に、R7(x) のラグランジュと関係 |f8(c)|5040 を使用して、誤差推定 Rupper(x) の上限を求めます。

Rupper(x) = 5040*x^8/factorial(8)
Rupper(x) = 

x88

x=0.5 でテイラー級数展開を評価します。テイラー近似で誤差推定の上限を求めます。

Teval = subs(T,x,0.5)
Teval = 

9092240

Rmax = double(Rupper(0.5))
Rmax = 4.8828e-04

比較のために、x=0.5 で当の関数を評価し、テイラー近似で剰余を求めます。

feval = subs(f,x,0.5)
feval = 

log(32)

R = double(abs(feval-Teval))
R = 3.3846e-04

入力引数

すべて折りたたむ

近似する入力。シンボリック式またはシンボリック関数として指定します。これには、シンボリック式またはシンボリック関数のベクトル、行列または多次元配列を指定することもできます。

展開変数。シンボリック変数として指定します。var を指定しない場合、taylorsymvar(f,1) によって決定される既定の変数を使用します。

展開点。数値あるいはシンボリック数、変数、関数または式として指定します。展開点は展開変数では変更できません。展開点は名前と値の引数として指定することもできます。展開点を両方の方法で指定した場合、名前と値の引数が優先されます。

名前と値の引数

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名、Value は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は関係ありません。

R2021a より前では、コンマを使用して名前と値の各ペアを区切り、Name を引用符で囲みます。

例: taylor(log(x),x,'ExpansionPoint',1,'Order',9)

展開点。数値あるいはシンボリック数、変数、関数または式として指定します。展開点は展開変数では変更できません。また、展開点は入力引数 a を使用して指定することもできます。展開点を両方の方法で指定した場合、名前と値の引数が優先されます。

テイラー級数展開の打ち切り階数。正の整数またはシンボリックな正の整数として指定します。taylor は、階数 n - 1 でテイラー級数近似を計算します。打ち切り階数 n は、O 項 O(varn) の指数です。

階数モード インジケーター。'absolute' または 'relative' として指定します。このインジケーターは、テイラー多項式近似を計算するときに、絶対階数と相対階数のいずれを使用するのかを指定します。

"絶対階数" は計算された級数の打ち切り階数です。"相対階数" n は、計算された級数の var の指数が、最小階数 m から最高指数 m + n - 1 の範囲であることを意味します。ここで、m + n は、O 項 O(varm + n) 内の var の指数です。

詳細

すべて折りたたむ

テイラー級数展開

テイラー級数展開では、解析関数 f(x) が、展開の点 x = a を中心とした項の無限和として表現されます。

f(x)=f(a)+f(a)1!(xa)+f(a)2!(xa)2+=m=0f(m)(a)m!(xa)m

テイラー級数展開では、関数が展開点付近で無限階となる導関数である必要があります。

マクローリン級数展開

x = 0 を中心としたテイラー級数展開は、マクローリン級数展開と呼ばれます。

f(x)=f(0)+f(0)1!x+f(0)2!x2+=m=0f(m)(0)m!xm

ヒント

  • 3 番目の引数 aExpansionPoint の両方を使用して展開点を指定した場合、ExpansionPoint で指定された値が優先されます。

  • var がベクトルの場合、展開点 avar と同じ長さのスカラーまたはベクトルでなければなりません。var がベクトルで a がスカラーの場合、avar と同じ長さのベクトルに展開され、すべての要素が a と等しくなります。

  • 展開点が無限大または負の無限大の場合、taylor はローラン級数展開を計算します。これは、1/var のべき級数です。

  • 関数 sympref を使用して、シンボリックな多項式の出力順序を変更できます。

  • taylor がテイラー級数展開を求められない場合は、series を使用して、より一般的なピュイズー級数展開を求めます。

バージョン履歴

R2006a より前に導入