CodeIQ MAGAZINECodeIQ MAGAZINE

物理における『微分方程式』の活用─プログラマのための数学勉強会6

2015.07.14 Category:勉強会・イベント Tag: , ,

  • 16
  • このエントリーをはてなブックマークに追加

「プログラマのための数学勉強会」シリーズ第5回目は、理化学研究所 iTHES(理論科学連携研究推進グループ)の久徳浩太郎氏。タイトルは「物理における微分方程式と数値計算」。

物理が専門ではあるが、プログラムも数学も使っているという久徳氏の講義をダイジェストレポートでお届けする。
by 馬場美由紀 (CodeIQ中の人)

物理における微分方程式の活用

久徳浩太郎氏が所属している理化学研究所 iTHES(理論科学連携研究推進グループ)は、理論化学を研究しているグループ。また同グループでは産学連携も積極的に推進しているという。

そんな中で久徳氏は宇宙物理や理論物理を研究している。つまり今回唯一の物理屋。しかし「物理屋はいろんなものを使っており、プログラムも数学も使っている」のだそうだ。

久徳氏は冒頭で理研に設置されているスーパーコンピュータ「京」で中性子星という天体がぶつかるところのシミュレーション動画を披露し、まずは参加者の関心を引きつけた。実はこれにも今日のテーマである微分方程式が使われているという。

まずは常微分方式について解説について。常微分方程式とは、変数x_i(t),i=1~kについて(k=1でもよい)、以下のような式が成り立っていることである。

つまり「独立変数tが変化したときに未知関数x_i(t)がどう変化するか」を表すものだ。

二次関数を復習。以下の図を見れば分かるとおり、赤い線が二次関数。どこをも見ても直線にはなっていないが、どこに対しても接線を引くことができる。

「その方向きが導関数だ」と久徳氏は解説する。また傾きは関数の変化率を表しているので、微分、あるいは導関数は関数の変化率を表す。この図の場合x=0のときは導関数が0、x=4のときは傾きが4なので、導関数も4となる。

微分方程式の例として久徳氏が紹介したのは力学のニュートンの運動方程式である。ニュートンの運動方程式とは、質量mの位置xの力Fによる時間変化を表したものだ。

これは図の様に2つの式で表せる。これを解く場合は式の下に記された方法を使う。

上の式はxの変化率の変化率が右辺にある力で表されている。つまり上は二階微分の式。それを1回微分の式で書き直すことができる。それが下の式だ。vは速度。右側の式は時間に応じてどう変化するかという定理そのもの。これは速度を定義している式である。

速度の変化率に質量をかけたモノが、力とイコールということを言っている。これがニュートンの運動方程式である。これを使って力が加わったとき、モノはどう運動するかを求めていくことができる。

次に微分方程式をどうしたいか。微分方程式は位置がどこにあるかが分かるのが便利だという。微分方程式を解くということは、力を積分していくことで位置xを求めることでもある。つまり実際に起こっている現象と比べやすい。

本当は考えるべきことはたくさんあるが、今回はあまり立ち入らないで進めたいと挙げられた例が以下だ。

例1)等速直線運動

最初の例は等速直線運動で、力がかかっていないときの運動。式で書くと次の通り。

これを解く場合は以下となる。

速度の変化率がゼロ。最初の速度が変わらない(傾きがゼロ)。最初の位置と速度を与えると、解が一つに決まる。初期条件が二つというのは本質的で、運動方程式は最初の式を見れば分かるとおり、2回の微分がある。xに戻すには2回の積分をしなければならない。1回につき1個の積分定数がでてくる。これを初期条件に与えることが多い。

例2)自由落下/等加速度運動

これは手からボールを離したら落ちるというような運動である。質量×重力加速度という式(地上の場合)となる。これをどう解くか。両辺mで割って積分する(両辺にmが現れるのは、物理的には等価原理ということを表している)。両辺mで積分する。

先ほどの等速直線運動と同じことをやっている。xの時間変化はこういう風になる。v_0tで上に上がっていこうとするが、-1/2gt^2があるから下に落ちてくる。

例3)単振動

単振動とはどんな動きかというと支点をばねにつないだときに、ばねが伸びると縮もうとしたり、ばねが縮むとそれを戻そうとしたりする運動である。これは単振動の運動方程式でフックの法則とも呼ぶ。

ωは角振動数。これを解くと、AとBは好きな定数(積分定数)。先に条件を与えてAとBを決めると運動が決まる。Dは位相。どちらも2つ定数が表れる。「物理をやっていると単振動は見ただけで答えが思いつく」と久徳氏。さらに、線形代数での解き方も披露した。

「線形な微分方程式に対して、線形代数の知識は非常に有効に使える」と久徳氏は語る。難しい問題では手では解けないという。例えば単振り子の運動。揺れが非常に小さいときは、単振動と同じ式になって簡単だが、普通の揺れの場合は手では解けないという。

微分方程式にもいろいろ種類があり、やっかいなのは線形vs非線形というところである。

やっかいなのは線形・非線形というところ。未知関数xの非線形項x^2、x(dx/dt)などの有無により、「まともに解ける方法がない」と久徳氏は言う。もちろん手で解けないのであれば、コンピュータ(数値計算)の出番である。

しかし、コンピュータ上で連続な関数を完全に表現するのは不可能である。そこで時間の刻みを無限に小さくして、その短い時間でどの位置になるかを見ていくことで、元の微分方程式の解に近づいていけるという。これが離散・差分化で、テイラー展開ともいう。

数値計算の際には、より適切な差分化の方法はないか考えること。そしてコードの信頼性や速度が十分かも検討することだ。理研でも、「京で使われるようなプログラムの正当性を検証するために、ブラックホールの周りでガウス・ボンネの定理が成り立つかテストをしたりしている」と久徳氏は、最後に簡単なまとめを行い、発表は終了した。

数学好きな人にはたまらない内容ばかりの「プログラマのための数学勉強会」。興味がわいた人は、ぜひ参加してみることをお勧めする。敷居が高いと感じるかもしれないが、「あっ、そう、そうそう」と思い出せるのではないだろうか。

CodeIQ高校 教育実習生 Lala*さんからの問題

「プログラマのための数学勉強会」バックナンバー

発表資料はこちら

Yahoo150522 from kyutoku

【動画】物理における微分方程式と数値計算

自分の書いたコードを誰かに評価されたいエンジニアは、けっこう多い?

ITエンジニアのための実務スキル評価サービス『CodeIQ』で出題されている「コード銀行」問題に挑戦すると、あなたのコードが評価されます。

評価(1)出題者からの評価  ⇒評価フィードバック例を見る

  • 企業ではたらくという観点からあなたのコードをチェックします
  • フィードバックされた観点をふまえてコードを書くと世の中の企業にとって「いいコード」が書けるようになります

評価(2)企業からの評価  ⇒評価フィードバック例を見る

  • 「あなたと一緒にはたらきたい」という企業からスカウトが届きます
  • あなたのコードが社会でどこまで通用するか、リアルな評価が得られます

興味を持った方はこちらからチャレンジを!

  • 16
  • このエントリーをはてなブックマークに追加

■関連記事

アドテクは新しい技術の宝庫!?──ヨッピーさんがインターネット広告の未来、面白さを探る... 1994年のバナー広告から始まったアドテク発展の歴史 今回インターネット広告とアドテクをテーマを選んだ理由は、「アドテクに携わっているエンジニアがすごく少ない」」っていう話を聞いたからなんですね。でもインターネットにおける広告の役割はビジネスにとってすごく大事なことだし、新しい技術もあれこれ入っ...
ヤフー・クックパッド・ピクシブの現場エンジニアが語った、HTTPS化の裏側と対応のコツとは?... 3名の登壇者と川田氏によるパネルディスカッション 2014年にGoogleがHTTPS化対応サイトを検索結果で優遇するロジックを実装したが、日本ではなかなかHTTPS化が進んでこなかった。 セキュリティリスクの低減、開発・運用の効率化、安全性や信頼性のアピールなどHTTPS化には多くのメリットが...
ソフトバンク・ヤフー・HDE人事責任者が明かした「最先端の採用手法」とは?... 事業とともに変化する採用への挑戦―ソフトバンク 第一部のセッションを務めたのはソフトバンクの小山亮氏。セッションタイトルは「新たな道を切り開け!『事業とともに変化する採用への挑戦』」。 小山氏は5年前にソフトバンクに転職。3年前より新卒採用をメインに担当している。 ▲ソフトバンク株式会社 人事...
ヤフーがAndroidアプリに関する技術や開発事例を共有する「CAMPFIRE Android」を開... Yahoo!知恵袋をRxJavaでフルリニューアル ヤフーのAndroidにおける技術情報を共有するMeetup「CAMPFIRE Android #1」が、4月19日にヤフーのコワーキングスペース「LODGE」で開催された。 「Yahoo! Japanでの取り組みや開発のコツを知ることができる...
営業・事務職もプログラミングを学びたい!「TECH::CAMP」イベントに96人の女性が参加... 女性がITの力で活躍する場を拡げるイベント「TECH LADY HOLYDAY」 「TECH LADY HOLYDAY」は、女性がITスキルの習得の魅力を知る機会、およびスキル習得アクションの機会を提供する女性のためのイベントだ。 ITの力で活躍する場を拡げることを目的に、「世の中にサービスを生...
データビジュアライゼーションから圏論・Haskellまで──プログラマのための数学勉強会【第6回】... 今回のテーマと目次 「プログラマのための数学勉強会」第6回のセッションテーマは以下のとおり。 心地よさと数字 難易度★☆☆ 数学がデジタルアートに! 高速なシェーダで可視化する数学の世界 難易度★☆☆ Wolfram Language コトハジメ ~ Wolfram Alpha って聞いたこと...

今週のPickUPレポート

新着記事

週間ランキング

CodeIQとは

CodeIQ(コードアイキュー)とは、自分の実力を知りたいITエンジニア向けの、実務スキル評価サービスです。

CodeIQご利用にあたって
関連サイト
codeiq

リクルートグループサイトへ