プログラマのための熱力学入門

はじめに

プログラムを書けるレベルの論理的思考力を持った人(全世界の5~6割くらいの人が当てはまると思われる)に対しては、数学や物理学等における概念を容易に説明できるはずだ、という信念がいつの日からかふつふつと湧き上がってきた。

本ブログによる一連のシリーズはそれを実際にやってみようという試みである。

熱力学の動機

19世紀頃、それまで人類は馬や牛などの動物を働かせて少々のラクをすることは出来ていたものの、基本的には人の労働力によって多くの仕事をこなしていた。

しかし、蒸気機関のような「燃料を労働力に変える技術」が実用レベルに達したことにより、産業革命が起こった。人類全体の富は爆増した。

そんな時代に多くの物理学者たちが、「燃料(すなわち熱)」と「力」の関係を体系的に説明する物理法則を整備しようと、実験および理論的考察を繰り返した。

そうして完成したのが熱力学という理論である。


熱力学の成果として最もメジャーなものは「エネルギー」という概念である。日常生活でも普通に使われるなじみ深いこの概念のおかげで、熱力学の勉強が捗りやすくもなるが、逆にその日常イメージによる先入観が熱力学上の諸概念の理解を妨げることもしばしばあるので注意を要する。

熱力学的な「平衡状態」

熱力学で第一に重要なのは「平衡状態」という概念である。これは簡単であり、物質が変化している途中のことは「理論の適用対象外」として考えず、物質が安定している、すなわちほっといても変化しないような状態のことだけを考えようということで導入された概念である。

物質は一般には変化に富むものであるはずだから、そのような平衡状態に限定したような理論はあまり便利ではないのではないか?と思われるかもしれない。

しかしそうではないのである。というのも、

「物質が変化する前の『平衡状態』」と「その物質が変化した後の『平衡状態』」の間の関係については熱力学の適用対象となり、うまく説明することができるのである。

ここが熱力学という理論における最大の「なるほどポイント」である。

「うまいこと要件を絞ったなぁ」と思わないだろうか?

本記事では以降、「状態」といった場合、それは平衡状態のみを指すことにする。

状態は何によって決まるか?

2つの状態Aと状態Bが「同じか?それとも異なるか?」はどうやって見分けたらよいだろう?

例えば、200ミリリットルの水と200ミリリットルのお湯は「同じ状態」だろうか?

直感的に、違うだろう。両者の温度が違うのだから。

では同じ温度と体積の物体があったとして、圧力が違ったら状態は異なるのだろうか?

そもそも、温度と体積が同じなのに圧力だけが違うようなことがあるのだろうか?

これについては、物理実験をしてみないと何ともいえない気がする。実際、物理学者たちは色々な実験を行って、何によって状態が決まるのかを突き止めようとした。

「色々な実験」という言い方は曖昧なので、以下のようにちゃんと定式化しよう。

  • 「物理量として圧力や体積や温度や質量、さらには重力や磁石や静電気やいろんなものが考えられる。その中でまず熱力学的な物理量X1,X2,...,Xnというものを定める」

つまり熱力学と関係ある物理量を弁別し、その上で、

  • 「熱力学的なn個の物理量X1,X2,X3,...,Xnのうち、全部ではなくそれより少ないm個(< n個)が決まればそれ以外がすべて決まるという法則性があるとき、その『m個の物理量によって状態が決まる』と結論付ける」ことを目的とする色々な実験を行った

ということだ。つまり各ケースで、状態を決めるのに最低限必要な物理量はどれかを突き止める実験や理論的な考察を行ったのだ。

組み合わせが膨大で大変そうに見えるだろう?実際、そうである。状態は実にいろんな表し方が可能であった。

なので、それらをどううまく整理したらよいかが大きな課題となった。そこで物理学者たちが採用した戦略は、

  • 「状態を表す標準パターンを決めて、それ以外のパターンは数式を変形することで(数学的に同値な命題として)得られるような法則として整理しよう」

というものである。そうすれば、最低限必要なパターンだけに絞って法則化しておけばあとは数式変形でご自由にどうぞ、となるからだ。

なかなかうまいこと考えたなぁ、という感想を持たれないだろうか? 実はこの、

  • 「根元的な法則としてはなるべく少ないパターンだけを決めておいて、そこから数学的に導かれる帰結として関連する派生法則を(暗に含む)理論を作る」

という戦略は物理学の常套手段なのである。ルネサンス時代から産業革命時代にいたる数世紀の間に、この戦略が成熟してきていたという背景があった。

その根元的なパターンを本記事独自の用語として「標準パターン」とでも呼んでおこう。

標準パターンは4種類のエネルギー的な物理量

さて、その標準パターンであるが、最終的に熱力学としては4つの標準パターンを用意した。この4パターンは、「根元的な法則」として4つとも必要というわけではなく、4パターンのうちいずれも根元的な法則として使うことができる。

いわば、理論を4つ作ったわけだ。なぜ4つも作ったかというと、どれも一長一短だからである。なので4つ示しておいてケースバイケースで自由に選んで使ってもらおうということだ。

この4つのパターンを区別するアルファベットを便宜的に導入しておこう。それぞれU,H,F,Gである。なぜシンプルにA,B,C,Dとしないのか!?と思われるかもしれないが、
記号の好みなんてなんでもいいじゃないか。受け入れよう。


さて、そのU,H,F,Gの4パターンの間には共通点がある。それは、そのいずれもが

  • 「単位がジュール(というエネルギーの単位)であるような2変数関数である」

というものだ。つまり「状態は2変数関数としてあらわされるような何らかのエネルギー量だ」ということだ。

例えばUパターンを説明しよう。これは「エントロピー」という変数と「体積」という変数をとる「内部エネルギー」という名前の2変数関数だ(エントロピーについては後で説明する)。Uというラベルは内部エネルギーの関数を表すのに典型的に用いられるアルファベットである。U,H,F,Gはみんなエネルギー関数でありそれらをまとめて「熱力学関数」と呼ぶ。

H,F,Gにはそれぞれ「エンタルピー」「ヘルムホルツの自由エネルギー」「ギブスの自由エネルギー」という名前がついている。もちろんいずれも単位は「ジュール」である。

ちなみに1ジュールは約0.24カロリーである。成人一人の一日に必要なカロリーが2000「キロ」カロリーくらいであることを考えると、1ジュールはかなり小さい印象を持つエネルギーの単位である。

ここまでの説明をまとめると、「状態は熱力学関数で表される」と一言でいえる。

以降では、4つの熱力学関数を一つずつ説明していく。その説明を読めば、なぜ物理学者たちが4種類も作ったのかが分かるだろう。


と、その前に、4パターン共通に説明できる部分として大切な概念である「独立変数と従属変数」について説明しておくことにしよう。

独立変数と従属変数

熱力学関数自体はいずれも何らかのエネルギー量だと説明した。ではその変数の候補としてはどんな物理量を使うのだろう?

圧力pや体積Vや温度Tといった物理量はもちろん候補に含まれる。その3つに加えてエントロピーSという物理量も理論上必要になる。
エントロピーについては詳しくは後で述べるが、ここでは圧力や体積や温度が「測れる量」であるのと同様、エントロピーも(測定の困難さはともかく)理論的には測ることが可能な量である、ということをとりあえず受け入れてほしい。

つまり、合計4つの物理量が変数の候補である。しかし前節で述べたように、熱力学関数は「2変数」関数なのであった。候補が4種類あるのに2変数関数でエネルギーすなわち状態が表されるとはどういうことだろう?残りの2つの候補はどうなるのだろう?


そのことを掘り下げるには、関数に「独立変数と従属変数」という概念を説明する必要がある。数式で表すと例えば、関数fについてxが独立変数でyが従属変数であるとは、f(x,y)=f(x)となることをいう。

つまり、内部エネルギーUにおいて、エントロピーSと体積Vが独立変数であり残りの圧力pと温度Tは従属変数であり、U(S,V,p,T)=U(S,V)と表されるということだ。

言葉で無理に表現しようとして難しい感じになってしまったが以上のことは「全微分」という概念を使うと次のように(より多くの情報をも含めて)かなりシンプルに表現できる。

dU = T * dS - p * dV

この式は、内部エネルギーという関数において

  • SとVが独立変数である
  • Tとpが従属変数である
  • UのSによる偏微分係数がTである
  • UのVによる偏微分係数が-pである

という4つの主張を一つの式で表した数式であり、見た目より情報がいっぱい詰まった数式なのである。

dという記号がついた「全微分」という数量は、解釈としては「微小変化」というイメージの数量なのだが、数学的にはそういうあいまいなものではなく「きちんと定義された数量」である。

どんな数量かというと、それは実は「ベクトル」なのである。引き続き次節で説明しよう。

微分は抽象ベクトルである

数学においてベクトル空間の理論が抽象的に定義されているおかげで、「微小量」のようなあいまいな数量概念を「全微分」という名の「抽象ベクトル」できちんと定義することができる。

ふつうの「数」の世界では、無限小という「抽象的な数」を足したり引いたりということをあいまいなく定義することは難しい。

しかし「抽象的なベクトル空間」の世界は、ベクトルの足し算や引き算や定数倍を定義することができる。そこで「無限小の概念をベクトルを使って表現しよう」というのが「全微分」という概念である。

そのように定義しておくと、「多変数関数の全微分」という操作を、「多変数関数からベクトルへの写像」として定義できる。

ベクトルを何か「方向と大きさを持った図形的な量」というイメージを持たれていたとしたら、ベクトルというものは案外それ以外のいろんな概念を表現するのに使えるのだな、という印象を持たれるのでないだろうか?

これはまさに数学の抽象化のもたらす力の賜物である。


熱力学では、U,H,F,Gという4つの熱力学関数のそれぞれと、p,V,S,Tという4つの物理量のそれぞれについて、頭にdを付けた合計8個の「全微分」という抽象的なベクトルを考えて、その間の関係をベクトル方程式である全微分方程式として記述した4パターンの方程式が基礎方程式になるのだ。


さてここで、

  • 「ベクトル空間だって?じゃあその次元は何次元だ?」

と思われるかもしれないので答えておこう。4次元である。

まず、p,V,S,Tの4つといずれかの熱力学関数1つで合計5次元となり、熱力学関数の全微分方程式(ベクトルの線形結合=0という形)によって1自由度減る。したがって5-1=4次元である。なので、いかなる全微分も4個の基底ベクトルの線形結合で表すことができる。そこで、一つ全微分をピックアップして、4つの基底ベクトルの線形結合で表し、両辺を積分すれば一つの4変数関数が得られるだろう。その関数のことを「完全な熱力学関数」あるいは「熱力学ポテンシャル」と呼んだりする。

また、熱力学においては全微分のことを完全微分と呼んだりもする。

 

なお、全微分をベクトルとみなす話にもし興味を持ったら、微分形式という数学を学ぶことをおすすめする。それは、全微分うしのベクトルの掛け算や、全微分のさらなる微分(外微分)、全微分積分、一般化された高次元版のストークスの定理、といった便利な数学的ツールがたくさん学べて熱力学だけでなく、ありとあらゆる数学・物理学・人工知能機械学習において使うことができる。 

不完全微分とは何か?

熱力学において全微分に対比される数量として、不完全微分というものがある。

不完全微分の代表的なものとして「微小仕事d'W」と「微小熱移動d'Q」がある。これは何かというと、確かに微小変化を表す数量ではあるけれども、全微分と違って、他の全微分との足し算や引き算の結果が全微分にならないような数量である。

通常、ベクトルどうしを足したり引いたりした結果は、ベクトルになるはずである。したがって不完全微分とは全微分たちがなすベクトル空間の中に仲間入りすることが出来ないようなベクトルとして不完全な数量である。

dにダッシュ記号がついてd'となっているところがポイントで、これは全微分ではなくて不完全微分ですよ、ということを明示するマークである。

不完全微分もベクトルと似た記号を使っていて、ベクトルと形式的にp*dV + d'Qのような足し算を無理やりして考えることができるが、その結果が何らかの必ず全微分になるという保証はない。

では何のためにそんな無理やりな足し算引き算を考えるのかというと、

「その後の自由な数式変形についての保証はしないけれども、ある特別な状況を説明をベクトル方程式として表現したい」

ときに便利なのである。

例えば温度と圧力が一定の時とか、特別な条件を加えると少しだけ別のベクトル方程式と組み合わせて数式を変形できることがあるのだ。

不完全微分は、条件付きで注意しながら数式を変形していかなければいけない数量で、時々全微分と足したり引いたりできるかもしれないという不完全な抽象ベクトルである。

エントロピー

さて、エントロピーの説明をしよう。これは非常に不思議な物理量であり、

dS = d'Q / T

と定義される。なんと不完全微分を(1/温度)倍したベクトルとして定義されるのである!dSは全微分なのに!

前節で不完全微分の「窓際感」を存分に述べた直後なので、急にこれはびっくりかもしれない。

定性的には「熱の出入りの相対的な大きさ」を表す数量であることが上の式からうかがえる。

なぜこれが全微分になるのかをきちんと説明するには、「準静的過程」と「カルノーサイクル」という思考実験における状態変化について説明する必要があり、短く説明するのが難しい。ここは熱力学の教科書に譲ろうと思う。散々引っ張った挙句、他所に丸投げというヒドいオチになってしまったことを深くお詫びする。

(ようやく)内部エネルギーの説明

さて、内部エネルギーについて説明しよう。

dU = T * dS - p * dV

なのであった。これは数学的にはこれまでさんざん述べたように抽象的なベクトルの方程式なのだが、ここでは物理学的な「解釈」としてdを「微小変化」と考えよう。

内部エネルギーの微小変化は、(1)温度にエントロピーの微小変化をかけたもの, から (2)圧力に体積の微小変化をかけたもの を引いたもの、であると主張している。

(1)は T * dS = T * (d'Q/T) = d'Q であり、(2)は p * dV = d'W (エンジンのなかのシリンダー中のガスがピストンを押す状況をイメージしよう)なので

dU = d'Q - d'W

と書き換えることができ、これは「内部エネルギーの変化は、外部からもらった熱から外部へした仕事を引いた残りある」という意味になる。

また、体積が一定すなわちdV=0の時はp * dV = 0, すなわちd'W=0となるから、

dU = d'Q

となる。つまり「体積が一定ならば内部エネルギーの変化は出入りする熱と同じである」という意味になる。

「内部エネルギーとは一定の体積を持つ物質に出入りした熱の履歴を合計したもの」と考えてもよいわけだ。

この何らかのエネルギーの出入りの「履歴」という考え方は、U,H,F,Gの4パターン共通に重要な考え方である。それぞれのエネルギー量が「どんなタイプのエネルギーの出入りの履歴をカウントするのか?」を理解することが本質的である。


さてここで、

「独立変数と従属変数が別のものだったら、一定とする物理量を体積V以外にとれるから、別のタイプの変化もうまく説明できるのではないか?」

という考えにいたるのは自然である。それで、U以外の残り3つのH,F,Gが考え出されたわけである。

エンタルピー

エンタルピーHに関する全微分形式での(ベクトル)方程式は

dH = T * dS + V * dp

というものになる。右辺の第1項目(T * dS)は内部エネルギーと全く一緒で、内部エネルギーとの違いは2項目のpとVの役割が入れ替わっているだけである。

エンタルピーは圧力が一定すなわちdp=0のときに

dH = T * dS = d'Q

となる。

本来、物質が熱をもらうと、体積が変化することによる外部への仕事(p * dV)と、それ自体の圧力の高まり (V * dp)という変化の、2つのことに熱エネルギーが配分される。

内部エネルギーは、もらった熱から外部への仕事(p * dV)の分をマイナスして、残りのエネルギーを履歴としてカウントするエネルギーであった。仮に熱の出入りがなくても自身の体積が膨張して温度が冷めることによって外部に仕事をするような場合、外部への仕事によるマイナスだけがカウントされる。圧力の高まりの分は(温度変化の副作用ともみなせるし)カウントしない。

 

エンタルピーは圧力が一定ならば、外部への仕事を割り引いたりせずにもらった熱をそのままカウントする。さらに圧力一定でもない場合、本来は温度変化による副作用であるはずの圧力の高まりによる(見かけ上の)エネルギー変化 V * dpをも(ある意味ダブルカウントにはなるが)カウントする。


外部への仕事を割り引かず、温度変化の副作用であるはずの圧力変化をもダブルカウントしてしまうような謎のエネルギー量であるエンタルピーは、一体何の役の立つのだろうか?

例えば「風船を温めたらどれだけ温度が上がるか?」みたいなケースで便利なのである。風船を温めると膨らむ。実際は膨らむとゴムの張力によって圧力も変わってしまうのだが、仮に圧力が一定で体積が変わるだけ、すなわち膨らむだけだとしよう。

それで「与えた熱のうちどれくらいが外部の仕事に使われて、その残りのエネルギーで温度上昇がどのくらいになるか」を計算したいのだが、それには外部にする仕事も含めてカウントするようなエネルギーの計算式を使う必要がある。それがエンタルピーというわけだ。

この問題は抽象化して考えれば「圧力が一定な(膨らむかもしれない)物質の比熱を求める問題」と考えることができる。

つまり「定圧比熱」を計算するときエンタルピーは必要なのである。(なお同様に「定積比熱」は内部エネルギーを使って計算できる。)


さて、エンタルピーHであるが、全微分形式ではなく元のUとHの関係式を明示的に

H = U + p * V

と書くことができる。これに「積の全微分の法則」というのを使うと、

d(p * V) = dp * V + p * dV

となるので、

dH = dU + p * dV + V * dp

であり、

dU = T * dS - p * dV

を代入すると

dH = T * dS - p * dV + p * dV + V * dp
= T * dS + V * dp

となって本節冒頭のdHの方程式が導かれる。

では、

H = U + p * V

の解釈について説明しよう。

これは物質が持っている(体積や圧力や温度や化学結合等に起因する諸々の)内部エネルギーに、圧力と体積という物質の「空間的な占有に起因するエネルギーの部分」を明示的にダブルカウントした、いわば人工的なエネルギー概念という解釈ができる。

定圧比熱を計算するのに便利である以外でのエンタルピーのユースケースとしては、「化学反応前後のエネルギー差」が挙げられる。化学反応によって生まれるエネルギーは、熱と仕事と物質の圧力変化に配分されるため、それらの合計を計算する必要がある。したがって、エネルギーの出入りの履歴のカウント方法としてエンタルピーがもっとも適したタイプのエネルギーということになる。


自由エネルギー F, G

dF = -p * dV - S * dT (ヘルムホルツの自由エネルギー)
dG = V * dp - S * dT (ギブスの自由エネルギー)

自由エネルギーというのは、物質が持っているエネルギーのうち物質が温度的に持っている部分を引いたエネルギーである。温度は自発的に下げることはできないので自由エネルギーとは物質から仕事として取り出すことの出来る上限だともいえる。

自由エネルギーがあるなら、ほっといてもそのエネルギーは何かに消費される。つまり「自由に使えるおこづかい」みたいな意味で「自由エネルギー」と呼んでいるのだ。

温度的なエネルギーは温度を維持するのに必要であって自由に取り出すことができない、いわば「維持費」とか「光熱費」みたいなものだ。

 

ヘルムホルツの自由エネルギーFは、意味としては「温度が一定の物質から仕事として取り出すことのできるエネルギーの上限」である。

例えば風船に針を刺したらとパン!と割れる。周りと比べて高い圧力をもった気体はそのままでいることはなく、勝手に体積を膨らませて外部へ仕事をすることによって自身のヘルムホルツ自由エネルギーを消費するのである。最大でどのくらい消費するかというと、物体の内部エネルギーから温度的なエネルギーつまり「光熱費」を除いた残りであり、

F = U - T * S

と表される。これが「ヘルムホルツの自由エネルギー」である。冒頭の数式は、この式を全微分形式で書いただけである。全微分で書くことで、p,V,S,Tの4つとの関係をより詳しく表されるので、ここでもやはり全微分形式の方程式がメインの法則になるのだ。

 

もう一つのギブスの自由エネルギーはエンタルピーを使って

G = H - T * S

と表される。冒頭のdGの式は同じくこれを全微分形式で表したものである。

エンタルピーの変化は化学反応によって生じるエネルギーを表すのに使われるのだった。よって、ギブスの自由エネルギーはエンタルピーから温度による「維持費」を引いた残り、すなわち化学エネルギーとして自由に取り出すことのできるエネルギー、と解釈することができる。

冒頭のdGの全微分方程式をみると、温度と圧力が一定のときにdG=0であり変化しないエネルギーであり温度と圧力が一定ならば物理的学には体積も一定であるので、そのことからも物体が化学物質としてもつ化学エネルギーあるいは水蒸気と水と氷といった「物質の相」が持つエネルギーといった解釈ができる。


例えば-5度に過冷却した水は放っておいても勝手に凍る。なぜなら、マイナス5℃で1気圧の水は液体でいるよりも氷でいるほうがギブスの自由エネルギーが小さいからである。
ふつう水が氷るときには凝固熱を発生するのでエンタルピーHは増えるのだが、同時に温度Tが上がる分によってそれが相殺され、もし温度上昇の影響がエンタルピー増による影響を上回れば、全体としてギブス自由エネルギーは下がる。

そうして水の一部が氷に変化して全体としてマイナス4.9℃になったする。それでもやっぱり氷のほうが自由エネルギーが低いのでということで、引き続き凝固熱によって温度が上がりつつ凍る、というのが温度が0℃以下である間続く。


なお、過冷却した水はちょっとした振動とかきっかけがない限りは氷にならなかったりとか、燃料には火をつけない限り燃えなかったりとか、自由エネルギーを持っていても自発的には変化が始まらない状況というのもよくある。これはいわゆる「非平衡状態」を経由する変化なので、熱力学の理論適用対象外、すなわち自由エネルギーだけでは本来は説明することができない。

熱力学関数どうしの関係

ここまで説明してきたように、4つの熱力学の間には

H = U + p * V
F = U - T * S
G = H - T * S

という関係があるので、4つのうちいずれか一つが分かれば残り3つは上の3つの方程式を使って求めることができる。したがって、導出しやすいものを一つ導出して、残りは上の式で計算すれば、4パターンすべて使うことができる。こういう理由で4パターンも存在しているのだ。

特にヘルムホルツの自由エネルギーは束縛変数がVとTであることが計算上都合がよいという理由で、統計力学のカノニカル集団という分子のあつまりを温度でグループ分けして計算するときに第一に計算する熱力学関数としてよく使われる。


また4つの全微分方程式を色々と数式変形していくことで、様々な条件における関係式(物理量Xが一定の時のYをZで偏微分した値とか)を計算することができる。

本記事の最初のほうで述べたように、熱力学は「根元的な4つの方程式から数式変形によって派生法則を導ける理論」をこのように実現しているのである。
数式変形によって得られる公式として特に重要なものとして、マクスウェルの関係式というのがある。これは数学的には4つの熱力学関数の「全微分可能条件」に相当する。

それらの各種の数式変形は「微分形式」を使うと非常に素早く行うことができる。マクスウェルの関係式などは数ステップで求めることが出来たりして非常に便利である。

というわけで

熱力学入門でした。

次回は続編として統計力学入門を書くかも(?)しれません。