2009年02月09日

変分法 -デカルト座標における2点の最短経路を求める練習問題

前回変分法という方法をつかってオイラー方程式を求めた.

これを使って実際に問題を解いてみる.前回の冒頭の問題はこれ.

  >原点O(0,0)を出発し、点P(x, y)に至る最短の経路は何だろう。

x, yだと後々わかりにくくなるので,点Pは今回(a, b)とする.

最短の経路というのは,次の積分Iを最小とするようなものだった.

とりあえずこのままだと解けないので積分変数をxにする.xにするにはまずdsをdy, dxの関係から次のように変形する.おなじみ三平方の定理.

そうしたらこれを(2)へ代入する.積分変数はxになり,積分範囲は0〜aになる.

ここでの被積分関数がオイラー方程式におけるfなのだけれど,よく見るとこの関数にはyの値が関与していない.xとy'さえ与えればいいらしい.

ということは,オイラー方程式における第二項が0であって,次のように変形できる.

xで微分して0なのだから,関数fをy'で偏微分した値は定数じゃないといけない.また実際に関数fをy'で偏微分してみると,次の結果が得られる.

つまり,y' = dy/dx, xの増加量とyの増加量の比は常に一定でなければならない.

で,まあ残りは解くというようなレベルでもない微分方程式を解くだけなのでぱぱっと.

というわけで,原点O(0, 0)と点P(a, b)を結ぶ最短の経路は,y = (b/a)x という一次方程式でした.デカルト平面で最短経路をたどりたかったらまっすぐ進めばいいわけですね!!

----

…しかしこれだけだとあまりに簡単すぎる上,わざわざ計算する有難みがない.なのでもう一問くらいは練習する.

posted by Rion778 at 21:01 | Comment(0) | TrackBack(0) | 勉強ノート | このブログの読者になる | 更新情報をチェックする

変分法 ―変分問題からオイラー方程式まで

原点O(0,0)を出発し、点P(x, y)に至る最短の経路は何だろう。

…まあ普通に考えて直線なんだけど、直線かどうかはひとまずおいておく(たとえば座標の中に「動きにくい場所」 とかあったらそこをある程度避けるほうが効率的になる。このときは「最短経路」は時間にかかわったものになる)。

目的とするのはxとyを結びつけるような関数y(x)を求めることだ。

とりあえず経路を微小素片dsに分割する。そうすると、最短経路というのはこの微小素片dsの合計、 すなわち積分が最小となるようなものだ。dsの積分、つまり経路長をIとし、数式で表現すると次のようになる。

20090208eq01

ここでdsの進み方はわからないとして(もちろんy=axという一次式なんだけど)、たとえばx, y, y'(=dy/dx)という3つの値で決定されるf(x, y, y')という関数で表現できるものとしてみる。 なぜyについて1階の微分までしか含めないかというと、座標と速度さえ与えればその場に働く力などによってより高次の微分、 つまり加速度やその微分量などは自動的に決定してしまうからだ。座標だけでは不十分。なぜなら、 同じ座標でも質点はさまざまの速度を持つことができるから。

まあ細かいことはおいておいて、今のf(x, y, y')を利用して式(1)を変形する。式がx軸方向へdx進むとすれば、 その間に微小素片dsはf(x, y, y')dxだけ進む。これにより積分変数をsからxに置き換えて次式を得る。

20090208eq03

繰り返しになるけど、この積分を最小にするような関数y(x)を求めるのが目的だ。これは変分問題と呼ばれる。

ここで、そのような関数y0がわかってしまったとする。そしてy0に「小さな関数」 δyを足し、OとPを結ぶ新しい関数yを作る。この「小さな関数」は関数yの「変分」という。

20090208eq04

δyというのはyにδという微小量がかかっているわけではないことに注意。δyという2文字で1つの関数を表現し、 これは関数y0からのy軸方向の距離をあらわしており、その形は任意である。 (3)におけるy式はy0式と同様に点Oと点Pを通らなければならないので、 式δyは次の境界条件を満たしている必要がある。

20090208eq05

ここでyにδyを足したときの増加量をδIとし、次式を得る。

20090208eq06

このとき、2つの積分の差はy方向への微小な増分、y'方向への微小な増分それぞれの多項式だが、 もしも変分δyが十分に小さな関数ならば、それはyとy'についての一次式で近似される(cf. 全微分)。そして合計の増分は両者の和であるので次式を得る。

20090208eq07

ここで右辺の第二項のみ部分積分する。δy' = d(δy)/dxであることを利用する。

20090208eq08

このとき式(4)の条件から右辺第一項は0になる。

積分Iが最小になるということはδyをどのような方向への関数ととっても積分Iが必ず増加するという意味であり (通常の微分における極小値と同様)、これは積分Iの増加量δIに対する式yの増加量δyの比が0となるということに等しい。

20090208eq11

このとき右辺の分母は0でなければならないが、δyが任意であるため、それにかかる括弧の中身がいたるところで0となる必要がある。

20090208eq12

こうして微分方程式が得られた。Iを最小にする関数を求めることは、この微分方程式を解くということとなる。

変分法における式(9)はオイラー方程式と呼ばれる。

話を物理に移すと、力学系において運動は時刻と位置、加速度からなるある関数f(t, x, x')をt=0からt=tまで積分した際にそれを最小とするように起こる。「ある関数」というのは単に経路だったり、仕事量だったり、 屈折率だったり、場合によりけりだがこれの積分をまとめて「作用」とよび、作用が最小になるというこの原理を最小作用の原理 (またはハミルトンの原理)と呼ぶ。そして最小作用における関数f(t, x, x')は普通大文字のLで表し、ラグランジアンと呼ぶ。 またオイラー方程式はラグランジュ方程式と呼ばれる。

----

変分はいわば「関数の関数」の微分。理解のポイントは微分、偏微分、全微分、 部分積分といったモノをしっかり把握してるかどうかですね。

そのあたりがあいまいなまま「力学・場の理論」の文庫を買って最初の数ページから数年積読になってた。何事も基礎が大事。 独学だったんでどこが基礎なのか分からなかったというのもあるんだけど。

なんか思ったより疲れてしまったのでオイラー方程式を使って最初の問題を解くのは次の機会に。

参考

posted by Rion778 at 01:45 | Comment(0) | TrackBack(0) | 勉強ノート | このブログの読者になる | 更新情報をチェックする
2009年02月02日

あのころはC++に夢中だった…

とか思い始めたらだめ!絶対!

なんかこう、「懐かしさ」を感じると習慣を継続できなくなる癖がある。多分三日坊主っていうのはそういうことなんだろう。

1週間近くC++の勉強をサボってたら、再開に困難を感じていることに気づいたので急いで進めた。

今日は「明解C++」p.328まで。このペースで2月中旬くらいまでを目標に。

Amazonのレビューなんかを見ると 「C++の絵本」を併用したほうがいいよーとか書いてある。9章クラスの話あたりからわかりにくいよっていう話も見る。

今のところはなんとか大丈夫。10章だけどまだ行き詰ってはいない(演習問題はちょくちょく飛ばしてるけど)。

やっぱりCを先にやっといたのが正解だった。構造体の話が多少なり頭に残ってるから理解しやすいんだろう。 逆に合間合間のコラムからCの構造体についての理解も進む。

似たような内容を似たような説明で学習すると、新しい発見は少ないかもしれないけど定着がいい。

posted by Rion778 at 22:18 | Comment(0) | TrackBack(0) | diary | このブログの読者になる | 更新情報をチェックする
2009年02月01日

「このサイトはコンピュータに損害を与える可能性があります」

Googleの様子がおかしいのでついかっとなってやった。反省はしていない。

これで有害サイトの仲間入りだぜ!

ちなみにGoogleをググってもこうなる。

「健全サイト」認定を受けたmixiだってモバゲーだって…

いや、もしかしてアレか、そういうサイトを検索して、「このサイトは〜」 を含んだスクリーンショットを撮るためだけにGoogleが用意してくれたネタか?

もう直ってしまったようだ。

posted by Rion778 at 00:16 | Comment(0) | TrackBack(0) | diary | このブログの読者になる | 更新情報をチェックする
2009年01月26日

C→C++

Cの勉強は 「明解C言語 入門編」 を一通り読んだところでとりあえず終わりにして、先週本屋で 「明解 C++」 を買ってきた。

分厚い。200ページくらい多い。「入門編」ってついてないから?それとも「++」分?

今200ページ目を過ぎてポインタに入ってきたあたり。C++はCの拡張だけあってこの辺まではサクサクです。 著者も同じだしほぼCのおさらい。それにC++の方が自然な感じ。面倒なことをあまりやってない。

最初からC++でもよかった気もするけど、Cで一回やってるから、という理由ですぐ飲み込める場所も多い。「Cでは〜」 という記述も割と多いので、まあ、この順番は正解だったと思う。

それで、もうあと80ページほどで「クラス」ってやつの説明に入る。 どうもAmazonのレビューとか見てるとこの本だけだと理解が難しいらしい。さてどうなることやら。

できたら1月中には一通り終わらせたいところ。早く実用的な能力を身に着けたい。

posted by Rion778 at 01:25 | Comment(0) | TrackBack(0) | diary | このブログの読者になる | 更新情報をチェックする
2009年01月24日

「デフォルトって何ですか?」

「デフォルト」という単語は伝わらない場合がしばしばある。

デフォルトという単語をいつ覚えるかということを考えると、

  • PCつかってて覚えた。
  • TVゲームやってて覚えた。
  • 英単語として覚えた。

これくらいじゃない?

テレビとか新聞とかそういうメディアではほとんど使われないし、ちょっとした家電製品の説明書なら「デフォルトで〜」じゃなくて 「初期設定では〜」と書いてあるのが普通。

とかなんとか、そんな話を最初に聞いて「へー」と思ったのがたしか2〜3年前。 もうさすがに浸透してんじゃないかと思っていたけどそうでもない。やっぱ上記の理由で想像以上に使用する人種が限られている。 本当に聞いたことすらない、というような人がいる。「あんまりパソコンとか詳しくないんですよ」 というような人が知らなくても不思議じゃない。

便利な言葉だけど相手が知ってると思い込んで使ってると何かしらの齟齬を生んでしまうかも知れないので、 何か説明するようなときは気をつけないとダメだなと。相手が質問してくれたらいいけど、「知ってて当然」 みたいな雰囲気のことを尋ねるのは誰にでもできることではないだろうし、不愉快な気分にさせても面白くないし。

自分の知識の一般性を知っておくことと、相手の知識の分布をすばやく認識するってことは重要ですね。「常識」 なんてのは存在しないと思ってた方がいい。

posted by Rion778 at 16:29 | Comment(0) | TrackBack(0) | diary | このブログの読者になる | 更新情報をチェックする
2009年01月22日

数式画像の作り方[LaTeX]

Windowsさんむけ。pngとemf。

LaTeXの環境は一通りそろってて、dviが作れて、dvipngが入ってて、dvioutも入ってるとする。

・準備

雛形として、次のような.texファイルを作っておく。

\documentclass[12pt]{jarticle}
\usepackage{amsmath,amssymb,bm}
\begin{document}
\setcounter{equation}{3}
\thispagestyle{empty}
\Large{
\begin{align}
 x = y \notag
\end{align}
}
\end{document}

数式はalignの中に書く。もちろん、equation環境でもおk。利点はないと思うけど。

数式番号がほしければnotagをはずし、setcounterを目的の数式番号のひとつ前にセット。

そうしてdviファイルを作っておく。以下、math.dviというファイルが完成したとして解説。

1. png形式

ブログとかに貼り付けたいとき。

ここ (物理のかぎしっぽ)を参考にコマンドプロンプトで次のように入力

dvipng math.dvi -T tight --freetype0 -Q 5 --gamma 1.1

これでmath.pngが完成。

もしも背景色、文字色などのオプションをつけたいとき、くくるのがシングルクオーテーション「’」ではなくダブルクオーテーション 「"」でなければならないということに注意。

楽にやりたい場合、テキストファイルに上記コマンドを記述しておき、「hoge.bat」 などとしてmath.dviと同じフォルダに保存しておく。hoge.batをダブルクリックするだけで画像が吐き出される。

2. emf形式

こちらが詳しいです。 以下は私の確認用ですので、いろいろ知りたい人は向こうを参照するといいと思います。)

PowerpointとかWordとか、Office周りのモノに使いたいとき。論文に数式使いたいのに学会の指定がWord……! なんてことありますねたまに。そんなときに。

dvioutでmath.dviを開く。

Option → Setup parameters → Resolution

resolution dpi: を600とかその辺まで上げる。

Save(いらない?) → OK

Display → Region → ON

Shift+左クリックで左上頂点決定、Shift+右クリックで右下頂点決定

File → Save as Image → EMF in clipboard

WordとかPowerpointの貼り付けたい場所で「貼り付け」。

----

論文ならまだいいのかもしれないけど、 学会の要旨なんかは1枚に指定の体裁でおさめる必要があるからLaTeXだとちょっと難しいなぁ。

posted by Rion778 at 23:50 | Comment(0) | TrackBack(0) | PC関連。HTMLとか,Linuxとか,Rとか | このブログの読者になる | 更新情報をチェックする
2009年01月19日

卒論執筆でお世話になったWebサイト・本・ソフトウェア

世間では卒論などが追い込みの時期だろう。昨年の今頃は私もそんな中に。

ここで昨年を思い出しつつ、論文執筆の上でお世話になったリソースをまとめてみようかと思う (ちなみに私は分類で行くと理系だと思います)。

以下、自分が世話になったもののまとめなので、万人に役立つものではないだろうし、 また現在進行形で追い込んでいる学生に役立つものとも限らない。どっちかというとB1〜3、M1などが役に立つんじゃないだろうか。

Webサイト・本・ソフトウェア、それぞれ3つずつ。

Webサイト

東大で学んだ卒論の書き方論文の書き方

もはや説明するまでもない。年に一度、 秋から冬にかけてほぼ確実にはてなブックマークのホットエントリーに浮上してくる風物詩的ページ。

まずはここを読もう。いつでもここに戻ってみよう。

GoogleGoogle Scholar

論文・資料の検索に。

…は当然として、私は英語の表現方法がどうしても分からないときの答え合わせとして使った。 もちろん辞書や例文集は第一に頼るべきだが、その語句、節で検索することで、本当にそのような表現が論文において一般的であるか、 また自分の分野で使われているのかを確認することができる。また、思わぬ論文との出会いのきっかけにもなり、視野を広げるのにも役立つ。

Webcat Plus

キーワードだけでなく、文章でも文献検索ができる。「自分の大学の図書館にあの文献はあるだろうか?ないとしたら、どの大学、 図書館にお願いしたらいいんだろう?」そんなときに。

理科系の作文技術

もはや古典の感は否めないが、それでも論文執筆に当たって第一に読むべき本はこれ。冒頭で紹介した「東大で学んだ〜」と同じく、 執筆の前に読むべきで、執筆に詰まったら読むべきで、見直すときにも読むべき本。

基本的な部分はこの一冊がほとんど教えてくれる。

推計学のすすめ―決定と計画の科学

データ処理にあたって統計学が理解できていないと困るが、統計学はそれほど容易なものでもない。基本的な道具ですら、 少し突っ込むと手に負えない複雑さと難解さを垣間見せる。

そういったあまり見たくない一面を避けつつ、かつ雰囲気として理解しているべき最低限の部分を抑えているのがこの一冊。 統計学が推計学と呼ばれていたころの本だが、基礎部分が対象なので今でも通用する内容。

もちろん、統計学に自信のある人は特に読む必要はない。

卒論執筆に取り掛かってからというより、実験計画程度以前に読んでおくべき本。

統計でウソをつく法―数式を使わない統計学入門

データとはどういう形をしているもので、統計学をデータにどのように適用するか、また、 他人のデータをどのように読み取るべきかということを教えてくれる。 どちらかというとデータの取り扱いに関する哲学みたいなものを扱っていて、具体的な方法が詳細に述べられているわけではない。 それでも一度は目を通しておくべき。長く読まれているものにはやはりそれなりの理由がある。

半世紀もの昔からのロングセラーで、いまだにこの本に書かれているような「ウソをつく法」が使われているのかと思いたくなるが、 残念なことにいまだに使われている場合が多い。

これもできたら実験計画以前に読んでおくべき本。

ソフトウェア

(基本的にWindowsユーザー向けです。 MacとかLinuxとか使う人は大概が変態なので私よりずっとパソコン関係には詳しいだろうし、そもそも勝手にやるでしょう。)

TeX・ LaTeX

(リンク先はTeXに関する有用な情報源であるTeX Wiki)組版ソフト。特に数式の出力が綺麗。 TeXではHTMLのようなマークアップ言語を処理することで、 DVIやPDFといった形式の文書を作成できる。仕上がりは非常に綺麗で、 出版物に使用される例も多い。

学会によっては論文提出用にTeXのスタイルファイルを配布している場合もあり、覚えておいて損はない。 特に数式を使用する可能性のある人は覚えておくべき。Wordをメインに使う場合でも、 数式の可読性を高めるためにTeXで処理した数式を貼り付けると良いだろう。

綺麗な数式が書けるということ以外の利点は、文章の本体がテキストファイルとなることで、 複数のバックアップを用意に取れるということ、突然のエラーでデータが消失する危険性が減るということだろう。また、 完全に無料であるという点も重要。

欠点は導入と初期設定のわずらわしさにある。 ただし最近は必要なものをまとめてインストールしてくれるインストーラもあるのでそれほどでは無いように思う。また、 HTMLなどに慣れていない場合は覚えたりなれたりするのに多少の時間が必要かもしれない。

それとWeb上にはそれ単体で学習できるようないいリソースがあまり無いような気がする。私は[改訂第4版] LaTeX2ε美文書作成入門 という本を買って勉強した。後に辞書的にも使えるのでいい本だと思うが、 他のLaTeX関係の本を持っていないので比較はできない。まあでも一冊で済んでいるということはいい本なんだろう。

xyzzyというテキストエディタにKaTeXというモノを組み合わせて使うのがお勧め(参考: xyzzy + KaTeX [物理のかぎしっぽ])。

JabRef

(リンク先はJabRefの使用方法などを解説した「JabRefによるBibTeX文献管理とJab2HTML」) LaTeXではBibTeXというツールで文献管理ができる。 BibTeX形式で記述された文献リストのテキストファイルを所定の方法で処理することで、 LaTeX文書の中に自動で引用番号を振ったりできる。

また、BibTeX形式の文献情報提供がサポートされている場合も多い(たとえばGoogle Scholarなんかがそう)ため、 LaTeXとあわせて覚えておいて損はない。

JabRefはこのBibTeX形式の文献リストを管理するためのソフトウェアだが、検索機能はもちろんのこと、 論文ウェブサイトへのリンクを記憶したり、論文PDFをダウンロード・保存したりと文献の管理に有効な機能が多く含まれている。

そのため、たとえばBibTeXを使う気がなくとも文献管理ソフトとしてかなり有効なものである。フリーなのも重要。

R

(リンク先はRjpwiki)統計処理とグラフィックスに特化した言語、環境。

CUIなのでエクセルよりはとっつきにくいが、インタプリタ言語で入力内容を逐一解釈、実行してくれるので、 コンパイルが必要なC言語などに比べたらとっつきやすいだろう。 WindowsならRguiというRの作業を行うのに便利な環境とエディタが標準で付いてきて、 完全なCUIというわけでもなくなるのでとっつきやすさはさらに高い。

Rは多くの統計手法が「関数」の形で最初から用意されているのが特徴。t検定、分散分析、多重比較みたいな簡単なものから、 ブートストラップ、クラスタ分析など本当に数え切れないほどの手法がカバーされている。 テキストマイニングやマイクロアレイの解析だってできるし、画像も扱える。汎用性は極めて高い。

Excelとの連携性を高めた関数も多いので、別にExcelを窓から投げ捨てる必要もない。

最初にベクトルやデータフレームを丁寧に勉強し、次にExcelデータからそれらを作り出す方法を理解し、 その後に統計処理を行う関数の使い方やプログラミングへ進むと、統計に関しては比較的短期間で実用的なレベルの能力が身に付くと思う。

グラフは頑張れば綺麗なものも描けるけど、結構な勉強と慣れが必要。 ExcelやCalcの方が手っ取り早いし少ない労力で綺麗になると思う。

情報源として本を頼るのもいいけど、基本的なことならR-tipsでほとんど間に合う。 ありがたいことです。あと青木先生のWebサイトも同時にチェックしておきましょう。

フリー。驚くべきことにフリー。

----

これらは特に印象に残っているし、ほとんどは今でもお世話になっている。

あとはカフェインとブドウ糖とBGM。中毒にならない程度にほどほどに。

posted by Rion778 at 23:35 | Comment(0) | TrackBack(0) | 勉強ノート | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。