Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

changeIntegrationVariable

説明

G = changeIntegrationVariable(F,old,new)F の積分への代入により積分を適用し、oldnew で置き換えられます。oldF の積分の前の積分変数に依存し、new は新しい積分変数に依存しなければなりません。詳細については、代入による積分を参照してください。

F で積分を指定する場合、'Hold' オプションが true に設定された関数 int を使用して、積分の未評価形式を返すことができます。その後、changeIntegrationVariable を使用して代入による積分の手順を表示できます。

すべて折りたたむ

変数の変更を定積分 abf(x+c)dx に適用します。

積分を定義します。

syms f(x) y a b c
F = int(f(x+c),a,b)
F = 

abf(c+x)dxint(f(c + x), x, a, b)

y への積分で変数 x+c を変更します。

G = changeIntegrationVariable(F,x+c,y)
G = 

a+cb+cf(y)dyint(f(y), y, a + c, b + c)

代入による積分を使用して cos(log(x))dx の積分を求めます。

'Hold' オプションを true に設定することにより、評価せずに積分を定義します。

syms x t
F = int(cos(log(x)),'Hold',true)
F = 

cos(log(x))dxint(cos(log(x)), x, 'Hold = TRUE', true)

log(x)t を代入します。

G = changeIntegrationVariable(F,log(x),t) 
G = 

etcos(t)dtint(exp(t)*cos(t), t, 'Hold = TRUE', true)

G の積分を評価するには、関数 release を使用して 'Hold' オプションを無視します。

H = release(G)
H = 

etcos(t)+sin(t)2(exp(t)*(cos(t) + sin(t)))/2

t の代わりに、log(x) を復元します。

H = simplify(subs(H,t,log(x)))
H = 

2xsin(π4+log(x))2(sqrt(sym(2))*x*sin(sym(pi)/4 + log(x)))/2

'Hold' オプションを true に設定せずに、結果を int から返される積分結果と比較します。

Fcalc = int(cos(log(x)))
Fcalc = 

2xsin(π4+log(x))2(sqrt(sym(2))*x*sin(sym(pi)/4 + log(x)))/2

積分 xtan(log(x))dx の閉形式の解を求めます。

関数intを使用して積分を定義します。

syms x
F = int(x*tan(log(x)),x)
F = 

xtan(log(x))dxint(x*tan(log(x)), x)

関数 int は積分の閉形式の解を求めることができません。

log(x)t を代入します。代入による積分を適用します。

syms t
G = changeIntegrationVariable(F,log(x),t)
G = 

e2t2Fhypergeom1(1,-i; 1-i; -e2ti)i2+et2+2i2Fhypergeom1(1,1-i; 2-i; -e2ti)-14-14i(exp((2*t))*hypergeom([1, -sym(1i)], [1 - sym(1i)], -exp((2*t*sym(1i))))*sym(1i))/2 + exp((t*(sym(2) + 2i)))*hypergeom([1, 1 - sym(1i)], [2 - sym(1i)], -exp((2*t*sym(1i))))*(- sym(1/4) - sym(1/4)*sym(1i))

閉形式の解は超幾何関数で表されます。超幾何関数の詳細については、hypergeomを参照してください。

積分 01esin(x)dx を数値的に高い精度で計算します。

積分 01esin(x)dx を定義します。積分への閉形式の解は存在しません。

syms x
F = int(exp(sqrt(sin(x))),x,0,1)
F = 

01esin(x)dxint(exp(sqrt(sin(x))), x, 0, 1)

vpaを使用して積分を数値的に有効桁数 10 桁まで計算できます。

F10 = vpa(F,10)
F10 = 1.944268879vpa('1.944268879')

代わりに、関数vpaintegralを使用して相対許容誤差を指定することもできます。

Fvpa = vpaintegral(exp(sqrt(sin(x))),x,0,1,'RelTol',1e-10)
Fvpa = 1.944268879vpa('1.944268879')

関数 vpa で有効桁数 70 桁の数値積分を求めることはできず、vpaintegral の形式で未評価の積分が返されます。

F70 = vpa(F,70)
F70 = 1.944268879138581167466225761060083173280747314051712224507065962575967vpa('1.944268879138581167466225761060083173280747314051712224507065962575967')

高精度の数値積分を求めるために、変数の変更を実行できます。式 sin(x)t を代入します。積分を数値的に有効桁数 70 桁まで計算します。

syms t;
G = changeIntegrationVariable(F,sqrt(sin(x)),t)
G = 

0sin(1)2tet1-t4dtint((2*t*exp(t))/sqrt(1 - t^4), t, 0, sqrt(sin(sym(1))))

G70 = vpa(G,70)
G70 = 1.944268879138581167466225761060083173280747314051712224507065962575967vpa('1.944268879138581167466225761060083173280747314051712224507065962575967')

入力引数

すべて折りたたむ

積分を含む式。シンボリック式、シンボリック関数、シンボリック ベクトルまたはシンボリック行列として指定します。

代入される部分式。シンボリック スカラー変数、シンボリック式、またはシンボリック関数として指定します。oldF の積分の前の積分変数に依存しなければなりません。

新しい部分式。シンボリック スカラー変数、シンボリック式、またはシンボリック関数として指定します。new は新しい積分変数に依存しなければなりません。

詳細

すべて折りたたむ

代入による積分

数学的な観点から、代入ルールは不定積分に対しては次のように

f(g(x))g'(x)dx=(f(t)dt)|t=g(x)

定積分に対しては次のように正式に定義されます。

abf(g(x))g'(x)dx=g(a)g(b)f(t)dt.

R2019b で導入