お前らに問題9月19日(不定積分)の解答例 [広義積分]
お前らに問題9月19日の解答例
問題 次の不定積分を求めよ。
【解答例】
(1) とおくと、
(1)の別解
t=cosxとおくと、
となるから、
したがって、
(2) とおくと、
よって、
(解答終)
ところで、
だという話をしたよな。
上で求めた
と①は、どう見たって、この2つの式は同じものに見えない。
また、
となるので、もはや収集がつかない。
ネムネコは、途方に暮れるしかない。
さてさて、この解決困難な問題に答えてもらおうじゃないか。
【ヒント(?)】
ネムネコが使っているお絵かきソフトは「⑨こそ、この不定積分だ」と答えてくる(^^)
このソフトは海外の人が作ったものなので、実は、⑨が世界標準なのかもしれない。
たとえば、
なんて計算をしちゃっていいんですかい?
y=sin x とy=tan xのグラフはこうですよ。
結構、危ないことをやっているんじゃないですか(^^)
もっと詳しく言えば、
だよ。
何故ならば、左辺のという関数は、x=π/2で定義されていないんだから、x=π/2で微分可能なはずがない。
つまり、
お前らが高校で習って以来ずっと使い続けてきたであろう、
f(x)の原始関数の一つをF(x)とするとき、
が成り立つ、という微積分学の基本定理が使えない!!
痛烈なネコパンチが決まったと思うにゃ(^^)
今日のアニソン、「宇宙のステルヴィア」から『明日へのbrilliant road』 [今日のアニソン]
ネムネコ法、2次のルンゲクッタ法に勝つ!!(差分の基礎) [数値解析]
ネムネコ法、2次のルンゲクッタ法に勝つ!!(差分の基礎)
ネムネコが新たに提案した、差分を用いた1階常微分方程式の初期値問題に対する数値解法は、実際、どれくらい使い物になるのか、次の非線形常微分方程式の初期値問題に使ってみた。
ネムネコが提案した方法は、上の微分方程式を
と差分方程式に置き換えて解く方法。
この方法をネムネコ法と、ひとまず、仮称することにする。
(2)式の右辺第1項のは、前進差分法(陽解法)
に由来するものであり、第2項のは後退差分(陰解法)
に由来するもので、(2)式の打ち切り誤差はO(h³)で2次のルンゲ・クッタ法や修正オイラー法の誤差と同程度と考えられる。
ネムネコ法は、陽解法である修正オイラー法や2次ルンゲ・クッタ法とは異なり、の値を求めるためには超越方程式(2)を解く必要がある陰解法である。
(2)を(数値的に)解く必要があるので、修正オイラー法や2次のルンゲ・クッタ法のように表計算ソフトなどを使って簡単に微分方程式(1)の数値的な近似解を求められないという欠点がある。
なのですが、自分でプログラムを作ってこの問題を解くという場合には、これは必ずしも欠点にならない。というのは、(2)はニュートン法などを用いることによって簡単に数値的に解くことができるからだ。
そこで、プログラムを作り、解いてみた。
そして、Δx=0.1としてx=0〜1まで計算してみた結果は次のとおり。
厳密解とよく合っているじゃないのよ。我ながら驚きの結果!!
グラフにしてしまえば、厳密解との差がわからないほどよく合っているからね〜。
しかも、この計算結果は、Δx=0.1として2次のルンゲ・クッタ法を用いて解いた計算結果よりも精度が高いんだケロよ。
CASIOさんの高精度計算サイトの計算結果はコチラ。
スゴイにゃ、(仮称)ネムネコ法!!
そして、どうも、(仮称)ネムネコ法は、線形常微分方程式よりも非線形常微分方程式で強みを発揮するみたいだね。
この計算に使用したプログラムは次のとおり。
! ネムネコ法(^^ゞ
parameter (n=10)
real x(0:n) , y(0:n)
eps = 1.e-6
x = 0. ; y=0. ! 初期化
x(0)=0.; y(0)=0. ! 初期条件
dx =0.1 ! 分割の幅
do i = 1, n
x(i)= i*dx
yo = y(i-1);
! ニュートン法で非線形方程式解く
do k=1, 10
! yn = yo - (yo - dx*sin(yo)-y(i-1)-dx)/(1-dx*cos(yo))
yn= yo- (yo-0.5*dx*(sin(yo)+sin(y(i-1)))-y(i-1)-dx)/(1-0.5*dx*cos(yo))
err = abs(yn-yo)
if (abs(yn-yo).lt.eps*abs(yo)) exit ! 収束判定
yo=yn
end do
y(i)= yn ! 計算結果をセット
end do
! 計算結果の出力
write(*,*) ' x y(calc) y(exact)'
do i=0, n
write(*,100) x(i), y(i) , 2.*atan(x(i)/(2-x(i)))
end do
100 format(f10.7,1x,f10.7,1x,f10.7)
end
ちなみに、(1)の厳密解は、
などと求めることができる。
なお、
画像元:YouTubeの下の動画