定数変化法をやろう

1。定数変化法
[size=150][b]このワークシートは[url=https://www.geogebra.org/m/twxxx3yq]Math by Code[/url]の一部です。[br][br][/b]前回まで、定数係数非同次の微分方程式を未定係数法で解きました。[br]今回は、[b]定数変化法[/b]で解いてみましょう。[br][br]その前に、微分方程式の具体にいろいろ触れてきたので、[br]まとめもかねて、一般論からやってみよう。[br][/size]・同次式 [b]y"+p(x)y'+q(x)y=0[br][/b] 一般解は線形独立な基底y1,y2の一次結合c1y1+c2y2。[br] もし、y1=ky2のように基底が比例する場合は、従属という。[br] [b]ロンスキー行列式W[/b]=[math]\left|\begin{matrix}y1,y2\\y1',y2'\end{matrix}\right|=y1y2'-y2y1'[/math]で判定できる。[br] W≠0となるx1があれば独立。[br]・非同次式 [b]y"+p(x)y'+q(x)y=r(x)[br] 一般解はy=y0+ys[br][/b] y"+p(x)y'+q(x)y=0の一般解をy0=c1y1+c2y2、 y"+p(x)y'+q(x)y=r(x)の特解をysとする。[br] 特解ysはy0のc1,c2に特定の値を入れて y"+p(x)y'+q(x)y=r(x)となるもの。[br][br][b][size=150]<定数変化法で線形方程式を解く>[br][/size][/b]2階線形非同次微分方程式[b]y"+p(x)y'+q(x)y=r(x) [/b]p(x),q(x),r(x)は連続関数、y1, y2を解の基底 [br] 特解ysは[b]ys(x)= -y1∫y2 r /W dx + y2∫y1 r / W dx[/b] (Wはロンスキー行列式)[br][color=#0000ff][br](例)[br][/color] y" -3y’+2y=2x+1 [br] 同次式の一般解がt[sup]2[/sup]-3t+2=0の解がt=1,2からy1=e[sup]1x[/sup],y2=e[sup]2x[br][/sup] ロンスキー行列式W=e[sup]1x[/sup](e[sup]2x[/sup])'-(e[sup]1x[/sup])'e[sup]2x[/sup]=2e[sup]3x[/sup]-e[sup]3x[/sup]=e[sup]3x[/sup] は正。[br]  特解は定数変化法でys=[b] -y1∫y2 r /W dx + y2∫y1 r / W dx[/b][br] =-e[sup]1x[/sup][b]∫([/b]e[sup]2x[/sup])(2x+1)/e[sup]3x[/sup]dx+e[sup]2x[/sup][b]∫([/b]e[sup]1x[/sup])(2x+1)/e[sup]3x[/sup]dx[br] =-e[sup]1x[/sup][b]∫[/b](2x+1)e[sup]-x[/sup]dx+e[sup]2x[/sup][b]∫[/b](2x+1)e[sup]-2x[/sup]dx[br] =-e[sup]1x[/sup]{(2x+1)(-e[sup]-x[/sup])+[b]∫[/b]2e[sup]-x[/sup]dx }+e[sup]2x[/sup]{(2x+1)(-1/2e[sup]-2x[/sup])-∫(-e[sup]-2x[/sup])dx (部分積分した)[br] =-e[sup]1x[/sup]{(2x+1)(-e[sup]-x[/sup])+([b]-[/b]2e[sup]-x[/sup]) }+e[sup]2x[/sup]{(2x+1)(-1/2e[sup]-2x[/sup])-(1/2e[sup]-2x[/sup])} [br] =(2x+1)+[b]2[/b] +{(2x+1)(-1/2)-1/2} =2x+3-x-1=x+2[br] 非同次の一般解はys+y=x+2+Ae[sup]1x[/sup]+Be[sup]2x[/sup][color=#0000ff][br](例)[br][/color] y" +2y’+y=4e[sup]x[/sup] [br] 同次式の一般解が(t+1)[sup]2[/sup]=0の解t=-1から、y1=e[sup]-x[/sup], y2=xe[sup]-x[/sup][br] ロンスキー行列式W=e[sup]-x[/sup](xe[sup]-x[/sup])'-(e[sup]-x[/sup])'xe[sup]-x[/sup]=e[sup]-x[/sup](e[sup]-x[/sup]-xe[sup]-x[/sup])-(-e[sup]-x[/sup])xe[sup]-x[br][/sup] =e[sup]-2x[/sup]-xe[sup]-2x[/sup]+xe[sup]-2x[/sup]=e[sup]-2x[/sup][br]  特解が定数変化法でys=[b] -y1∫y2 r /W dx + y2∫y1 r / W dx[/b][br] =-e[sup]-x[/sup][b]∫(x[/b]e-[sup]x[/sup])(4e[sup]x[/sup])/e[sup]-2x[/sup]dx+[b]x[/b]e[sup]-x[/sup][b]∫([/b]e[sup]-x[/sup])(4e[sup]x[/sup])/e[sup]-2x[/sup]dx[br] =-4e[sup]-x[/sup][b]∫x[/b]e[sup]2x[/sup]dx+4[b]x[/b]e[sup]-x[/sup][b]∫[/b]e[sup]2x[/sup]dx[br] =-4e[sup]-x[/sup][b]{(1/2x[/b]e[sup]2x[/sup])-1/2[b]∫[/b](e[sup]2x[/sup])dx} +4[b]x[/b]e[sup]-x[/sup][b](1/2[/b]e[sup]2x[/sup]) (部分積分した)[br] =-4e[sup]-x[/sup][b]{(1/2x[/b]e[sup]2x[/sup])-1/2(1/2e[sup]2x[/sup])} +4[b]x[/b]e[sup]-x[/sup][b](1/2[/b]e[sup]2x[/sup])[br] =-[b]2x[/b]e[sup]x [/sup]+e[sup]x[/sup] +2[b]x[/b]e[sup]x[/sup][br] =e[sup]x[/sup] [br] 非同次の一般解はys+y= e[sup]x[/sup]+Ae[sup]-x[/sup]+Bxe[sup]-x[/sup]
2.定数でないときも定数変化法で
未定係数法でやるのと同じ一般解がでましたね。[br]でも部分積分の嵐で、計算が大変でした。[br]定数変化法は部分積分をはじめとして、公式を駆使することが必要になります。[br]定数係数ならば未定係数法でカンタンに解けるので、あえて使わなくてもよいでしょう。[br]力を発揮するのは、係数がxの関数のときです。[br][br][b][size=150]<オイラー・コーシー方程式>[br][/size][/b]オイラー・コーシー方程式[b]x[sup]2[/sup]y'' + axy'+ by=0[/b][br]は微分の階数分だけxの次数を上げているのでyはべき関数と予想がつくね。[br]y=x[sup]m[/sup]とおいて、y'=mx[sup](m-1)[/sup], y''=m(m-1) x[sup](m-2)[/sup]から、方程式に代入すると、[br]左辺=x[sup]m[/sup]{m(m-1)+am+b}=0 両辺をx[sup]m[/sup]で割ると、[b][color=#0000ff]特性方程式m[sup]2[/sup]+(a-1)m+b=0[/color][/b]ができる。[br]・mが2実数解m1,m2を持つと、y=c1x[sup]m1[/sup]+c2x[sup]m2[/sup][br]・mが重複解をもつのはm=(1-a)/2のとき、y1=x[sup]m[/sup]、y2=lnx y1とすると線形独立になる。[br]y=c1y1+c2y2[br]・mが複素数解m+ni, m-niを持つとき、x^in=(e^lnx)^in=e^(in lnx)から[br]x^(m+ni)=x^m e^(in lnx)=x^m(cos(n lnx) + i sin (n lnx))[br]x^(m-ni)=x^m e^(-in lnx)=x^m(cos(n lnx) - i sin (n lnx))[br]これから、y1= x^m(cos(n lnx)), y2=x^m(sin(n lnx))[br][color=#0000ff](例)[br][/color][b]x[sup]2[/sup]y'' -2.5xy' -2y=0[/b][br]特性方程式m[sup]2[/sup]+(a-1)m+b=m[sup]2[/sup]-3.5m-2=0 の解はm=-0.5,4 一般解はy=c1x[sup]-0.5[/sup]+c2x[sup]4[/sup][br][color=#0000ff](例)[br][/color][b]x[sup]2[/sup]y'' -3xy' +4y=0[/b][br]特性方程式m[sup]2[/sup]+(a-1)m+b=m[sup]2[/sup]-4m+4=0 の解はm=2 一般解はy=x[sup]2[/sup](c1+c2 ln x)[br][color=#0000ff](例)[br][/color][b]x[sup]2[/sup]y'' +7xy' +13y=0[/b][br]特性方程式t[sup]2[/sup]+(a-1)t+b=t[sup]2[/sup]+6t+13=0 の解はt=-3±2i 一般解はy=x[sup]-3[/sup](Acos(2 lnx) + Bsin(2 ln x))[br][br][b][size=150]<定数変化法で解く>[br][/size][br][color=#0000ff]オイラー・コーシー方程式の非同次版にとりくもう。[/color][color=#0000ff][br]x[sup]2[/sup]y'' -2xy' +2y=x[sup]3[/sup]lnx[br][/color][/b]m[sup]2[/sup]+(a-1)m+b=m[sup]2[/sup]-3m+2=0 の解はm=1,2 解の基底はy1=x, y2=x[sup]2[/sup] で、一般解はy=c1x[sup]1[/sup]+c2x[sup]2[/sup][br]ここで、方程式の[b]両辺をx[sup]2[/sup]で割り標準形[/b]にすると、[br]y′′−2​ y′/x+2 y/x[sup]2[/sup]=x ln(x) となり、[b]非同次項をf(x)=xln(x)[/b] とします。[br]ロンスキー行列式 W=x(x[sup]2[/sup])'-(x)'x[sup]2[/sup][img width=0.333em,height=2.400em]data:image/svg+xml;utf8,<svg xmlns=[/img]=2x[sup]2[/sup]-x[sup]2[/sup]=x[sup]2[/sup][br]特解は定数変化法で[br]ys=[b] -y1∫y2 f(x) /W dx + y2∫y1 f(x) / W dx[/b][br]=-x∫x[sup]2[/sup]xlnx/x[sup]2[/sup] dx+x[sup]2[/sup]∫x xlnx/x[sup]2[/sup] dx[br]= -x∫x*lnx dx +x[sup]2[/sup]∫1*lnx dx [br]= -x{(lnx *1/2 x[sup]2[/sup])- ∫(1/x*1/2 x[sup]2[/sup]) dx} +x[sup]2[/sup]{(lnx *x)- ∫(1/x*x) dx} (部分積分)[br]= -1/2x{(lnx *x[sup]2[/sup])- ∫ x dx} +x[sup]2[/sup]{(lnx *x)- ∫1 dx} [br]= -1/2x(lnx * x[sup]2[/sup])- 1/2 x[sup]2[/sup] ) +x[sup]2[/sup](lnx *x- x ) [br]= -1/2 lnx * x[sup]3[/sup]+ 1/4 x3 +lnx *x3- x3 [br][b]= 1/2 lnx * x3 -3/4 x3  [br][/b]一般解はy+ys[b]= 1/2 lnx * x3 -3/4 x[sup]3[/sup] +c1x[sup]1[/sup]+c2x[sup]2[/sup][/b]
2.実装
[color=#9900ff][b][u][size=150]質問:オイラー・コーシー方程式を解析的に解くコードはどうかいたらよいですか。[br][/size][/u][/b][/color][br][b][size=150]<Sympy>[/size][/b][br]sympyでは、同次と同じように非同次が解けるはずです。[br][b]y = Function('y')(x)[/b]とかいておくと、yがxの関数であることを宣言しているので、[br]それ以降いちいち、yをy(x)と書く必要がないようです。[br]微分方程式はEq(左辺, 右辺 )とかきます。[br]これをy=の形の一般解を得るために[b]nsolve(微分方程式, y)[/b]とかけばよいね。[br][b]x[sup]2[/sup]y'' -2.5xy' -2y=0[/b][br][b]x[sup]2[/sup]y'' -3xy' +4y=0[/b][br][b]x[sup]2[/sup]y'' +7xy' +13y=0[/b][br][b][color=#0000ff]x[sup]2[/sup]y'' -2xy' +2y=x[sup]3[/sup]lnx[br][/color][/b][br]を解いてみよう。[br][br]#[IN]Python[br]#===========================[br][color=#0000ff]from [/color][url=http://sympy.abc/]sympy.abc[/url][color=#0000ff] import *[br]from sympy import *[br]y = Function('y')(x)[br]ddy=Derivative(y, x, 2)[br]dy=Derivative(y, x)[/color]
[b][size=150]<Geogebra>[br][/size][/b]CASで非線形は解析的には解けません。?と出るだけです。[br]数式でも非線形は解析的には解けません。[br][br]ただし、具体的に数値を与えると、数値解を求められます。[br]SolveODE(b(x), c(x), f(x), x開始値, y開始値, y’開始値, x終了値, 間隔)[br]2階の常微分方程式 y′′+b(x)y′+c(x)y=f(x)が解けます。[br][color=#0000ff](例)[br][/color][code]SolveODE(x^2, 2x, 2x^2 + x, x(A), y(A), 0, 5, 0.1)[/code] は,あらかじめ定義した [i]A[/i] を出発点として2階の常微分方程式を解く.[br][table][tr][td][/td][td]常に結果を軌跡として返す.アルゴリズムは現在のところ [url=https://ja.wikipedia.org/wiki/%E3%83%AB%E3%83%B3%E3%82%B2%EF%BC%9D%E3%82%AF%E3%83%83%E3%82%BF%E6%B3%95]ルンゲ=クッタ法[/url] に基づく.[br][/td][/tr][/table]

Information: 定数変化法をやろう