複素数の関数を微分するとき、いちいち実部と虚部に分けて計算するのって面倒じゃないですか?
たとえば、f(z) = z·z̄(zとzの共役の積)のような関数を微分しようとすると、z = x + iy と書き直して、実部と虚部をそれぞれ計算して…という作業が必要になります。
「複素数のまま、もっと簡単に微分できないの?」
そんな願いを叶えてくれるのが、ウィルティンガー微分(Wirtinger derivative)という手法なんです。
この記事では、複素解析における重要な道具であるウィルティンガー微分について、基礎から応用まで丁寧に解説します。数学が苦手な方でも理解できるよう、具体例を交えながら説明していきますね。
ウィルティンガー微分とは?定義と基本概念

ウィルティンガー微分の定義
ウィルティンガー微分は、オーストリアの数学者ヴィルヘルム・ヴィルティンガー(Wilhelm Wirtinger)が1927年に導入した微分作用素です。
複素数 z = x + iy(x, y は実数)で表される複素関数 f(z) に対して、次のように定義されます:
∂f/∂z = (1/2)(∂f/∂x - i∂f/∂y)
∂f/∂z̄ = (1/2)(∂f/∂x + i∂f/∂y)
ここで:
- ∂f/∂z は z に関するウィルティンガー微分
- ∂f/∂z̄ は z̄(zの複素共役)に関するウィルティンガー微分
- ∂f/∂x と ∂f/∂y は通常の実変数に関する偏微分
難しそうに見えますが、要するに「zとz̄を独立な変数として扱って、普通の微分のように計算できるようにする」という仕組みなんです。
なぜウィルティンガー微分が必要なのか
普通の複素微分は、「正則関数(holomorphic function)」と呼ばれる特別な関数にしか使えません。
正則関数とは、複素平面上で微分可能な関数のことで、非常に美しい性質を持っています。しかし、実用的な問題では、正則ではない複素関数を扱う必要がよくあります。
例:
- |z|²(zの絶対値の2乗)= z·z̄
- Re(z)(zの実部)
- Im(z)(zの虚部)
これらの関数は正則ではないため、普通の複素微分では扱えません。でも、ウィルティンガー微分なら計算できるんです!
全微分とウィルティンガー微分の関係
全微分から導出する
ウィルティンガー微分がどう導かれるか、ステップを追って見ていきましょう。
実変数x, yの関数 f(x, y) の全微分は、次のように書けます:
df = (∂f/∂x)dx + (∂f/∂y)dy
ここで、複素数の関係式を使います:
z = x + iy
z̄ = x - iy
これを逆に解くと:
x = (z + z̄)/2
y = (z - z̄)/(2i)
これらを微分すると:
dx = (dz + dz̄)/2
dy = (dz - dz̄)/(2i)
この式を全微分の式に代入して整理すると、次のようになります:
df = [(1/2)(∂f/∂x - i∂f/∂y)]dz + [(1/2)(∂f/∂x + i∂f/∂y)]dz̄
この式の係数が、まさにウィルティンガー微分になっているわけです!
ウィルティンガー微分の基本的な性質
ウィルティンガー微分の素晴らしい点は、通常の微分と同じような計算規則が使えることです。
性質1:基本的な微分
最も基本的な計算から確認しましょう:
∂z/∂z = 1 (zをzで微分すると1)
∂z/∂z̄ = 0 (zをz̄ で微分すると0)
∂z̄/∂z = 0 (z̄をzで微分すると0)
∂z̄/∂z̄ = 1 (z̄をz̄ で微分すると1)
つまり、zとz̄を「独立な変数」として扱えるということです。
性質2:線形性
足し算や定数倍に対して、次の性質が成り立ちます:
∂(αf + βg)/∂z = α(∂f/∂z) + β(∂g/∂z)
これは通常の微分と全く同じですね。
性質3:積の法則
2つの関数の積を微分する場合も、普通の積の法則が使えます:
∂(fg)/∂z = (∂f/∂z)g + f(∂g/∂z)
性質4:べき乗の法則
べき乗関数の微分も、通常と同じルールです:
∂(z^n)/∂z = nz^(n-1)
性質5:連鎖律(チェインルール)
合成関数の微分でも、連鎖律が成り立ちます:
∂f(g(z))/∂z = (∂f/∂g)(∂g/∂z) + (∂f/∂ḡ)(∂ḡ/∂z)
これらの性質により、ウィルティンガー微分は「複素数を実部・虚部に分けずに、そのまま扱える微分」として機能するんです。
具体例で理解する!ウィルティンガー微分の計算

実際に計算してみることで、ウィルティンガー微分の使い方を理解しましょう。
例1:f(z) = |z|² を微分する
絶対値の2乗は、z·z̄ と書けます。これを微分してみましょう。
zとz̄を独立変数として扱うと:
∂(z·z̄)/∂z = z̄·(∂z/∂z) + z·(∂z̄/∂z) = z̄·1 + z·0 = z̄
∂(z·z̄)/∂z̄ = z̄·(∂z/∂z̄) + z·(∂z̄/∂z̄) = z̄·0 + z·1 = z
簡単ですね!実部・虚部に分けて計算するよりずっと楽です。
例2:f(z) = z⁴ + 2z·z̄ + z を微分する
この関数も、zとz̄を独立変数として扱って微分します:
∂f/∂z = 4z³ + 2z̄ + 1
∂f/∂z̄ = 2z
べき乗の法則と積の法則を使うだけで、すぐに答えが出ました!
例3:実部と虚部で確認する
f(z) = z² を考えます。z = x + iy とすると:
f(z) = (x + iy)² = x² - y² + 2ixy
実部u = x² – y²、虚部v = 2xy として、定義に従って計算すると:
∂f/∂z = (1/2)(∂f/∂x - i∂f/∂y)
= (1/2)[(2x + 2iy) - i(-2y + 2ix)]
= (1/2)[2x + 2iy + 2iy + 2x]
= 2x + 2iy = 2z
一方、zとz̄ を独立変数として扱うと:
∂(z²)/∂z = 2z
同じ答えになりました!ウィルティンガー微分の方がずっと簡単ですね。
コーシー・リーマンの方程式との深い関係
ウィルティンガー微分は、複素解析の基本であるコーシー・リーマンの方程式と密接に関係しています。
コーシー・リーマンの方程式とは
複素関数 f(z) = u(x,y) + iv(x,y) が正則(複素微分可能)であるための条件は、次の2つの式が成り立つことです:
∂u/∂x = ∂v/∂y
∂u/∂y = -∂v/∂x
これをコーシー・リーマンの方程式と呼びます。
ウィルティンガー微分で表すと
実は、コーシー・リーマンの方程式は、ウィルティンガー微分を使うと驚くほど簡潔に表現できます:
定理:関数f(z)が正則である ⇔ ∂f/∂z̄ = 0
つまり、「z̄に関するウィルティンガー微分がゼロ」というたった一つの条件で、正則性を判定できるんです!
証明のアイデア
f = u + iv として、∂f/∂z̄ を計算すると:
∂f/∂z̄ = (1/2)(∂f/∂x + i∂f/∂y)
= (1/2)[(∂u/∂x - ∂v/∂y) + i(∂v/∂x + ∂u/∂y)]
この実部と虚部がそれぞれ0になる条件が、まさにコーシー・リーマンの方程式なんです!
ウィルティンガー微分の実用的な応用

ウィルティンガー微分は、理論だけでなく実用面でも非常に重要です。
応用例1:複素信号処理
電気工学や通信工学では、信号を複素数で表すことがよくあります。
たとえば、無線通信の信号は振幅と位相を持つため、複素数として扱うと便利です。しかし、実際の信号処理では正則でない関数(電力、相関関数など)を扱う必要があります。
ウィルティンガー微分を使えば、これらの関数を複素数のまま最適化できるため、計算が大幅に簡単になります。
応用例2:機械学習と複素ニューラルネットワーク
近年、複素数値ニューラルネットワーク(Complex-Valued Neural Networks, CVNN)が注目されています。
ニューラルネットワークの学習では、損失関数を最小化するために微分(勾配)を計算する必要があります。しかし、損失関数は実数値なので正則ではありません。
ウィルティンガー微分を使うことで、複素パラメータに対する勾配を効率的に計算でき、勾配降下法やLevenberg-Marquardtアルゴリズムなどの最適化手法が適用できます。
応用例3:最適化問題
複素数を変数とする実数値の最適化問題は、量子力学、画像処理、経済学など様々な分野で登場します。
例:
実数値関数 f(z, z̄) を最小化する問題では、停留点(極値の候補)を見つけるために次の条件を使います:
∂f/∂z = 0 かつ ∂f/∂z̄ = 0
これは、実変数での「勾配がゼロ」という条件の複素版です。
応用例4:複素多変数解析
複数の複素変数を扱う多変数複素解析では、ウィルティンガー微分が不可欠です。
n個の複素変数 z₁, z₂, …, zₙ に対して、各変数とその共役に関するウィルティンガー微分を定義できます。これにより、多変数の正則関数の理論が展開されます。
ラプラス作用素との関係
ウィルティンガー微分には、もう一つ面白い性質があります。
ラプラス作用素の表現
2次元のラプラス作用素(ラプラシアン)は、通常次のように定義されます:
Δf = ∂²f/∂x² + ∂²f/∂y²
これをウィルティンガー微分で表すと:
Δf = 4·∂²f/(∂z∂z̄)
つまり、ラプラス作用素は「z微分とz̄ 微分を組み合わせたもの」として理解できるんです。
調和関数との関係
正則関数 f(z) の実部 u と虚部 v は、それぞれ調和関数(Δu = 0, Δv = 0 を満たす関数)になります。
これは、∂f/∂z̄ = 0(正則性の条件)から直接導けます:
Δf = 4·∂²f/(∂z∂z̄) = 4·∂(∂f/∂z̄)/∂z = 4·∂(0)/∂z = 0
したがって、Δu + iΔv = 0 となり、Δu = Δv = 0 が得られます。
ウィルティンガー微分を使うときの注意点
ウィルティンガー微分は非常に便利ですが、いくつか注意すべき点があります。
注意点1:形式的な計算規則として理解する
「zとz̄ を独立変数として扱う」という考え方は、厳密には数学的に少し微妙です。
実際には、z̄ = x – iy なので、zが決まればz̄ も自動的に決まります。しかし、計算上の便利な規則として、あたかも独立であるかのように扱うわけです。
これは「形式的な計算トリック」と理解すべきで、実際に独立変数があるわけではないことを覚えておきましょう。
注意点2:定義の一貫性
ウィルティンガー微分の定義は、文献によって係数の1/2がついたりつかなかったりすることがあります。
本記事では最も一般的な定義(1/2つき)を採用していますが、別の文献を読むときは定義を確認することが大切です。
注意点3:連鎖律の複雑さ
複数の複素変数がある場合、連鎖律は実変数の場合より複雑になります。
合成関数 f(g(z)) の微分では、g とその共役 ḡ の両方が関係するため、慎重に計算する必要があります。
ウィルティンガー微分の歴史的背景
ヴィルヘルム・ヴィルティンガー
ウィルティンガー微分は、オーストリアの数学者ヴィルヘルム・ヴィルティンガー(1865-1945)によって1927年に導入されました。
彼は複素多変数関数論の研究の中で、この微分作用素を発見しました。
より古い起源
実は、ウィルティンガー以前にも類似の考え方が存在していました。
フランスの数学者アンリ・ポアンカレが1899年の論文で、すでに類似の手法を使っていたことが知られています。また、ルーマニアの数学者ディミトリエ・ポンペイウも1912年に関連する定義を与えていました。
しかし、体系的に整理して広めたのがヴィルティンガーだったため、彼の名前がついています。
現代での普及
長い間、ウィルティンガー微分は主にドイツ語圏の数学者に知られる手法でした。
しかし、20世紀後半から信号処理や通信工学の分野で注目されるようになり、現在では工学系の教科書にも登場する標準的な手法となっています。
特に、2000年代以降の複素信号処理や機械学習の発展により、その重要性はさらに高まっています。
より深く:多変数への拡張

ウィルティンガー微分は、複数の複素変数にも自然に拡張できます。
多変数の定義
n個の複素変数 z = (z₁, z₂, …, zₙ) を持つ関数 f(z) に対して、各変数ごとのウィルティンガー微分を定義できます:
∂f/∂zⱼ = (1/2)(∂f/∂xⱼ - i∂f/∂yⱼ)
∂f/∂z̄ⱼ = (1/2)(∂f/∂xⱼ + i∂f/∂yⱼ)
ここで、zⱼ = xⱼ + iyⱼ です。
勾配ベクトルとヤコビ行列
多変数関数の場合、ウィルティンガー微分を並べて複素勾配ベクトルや複素ヤコビ行列を作ることができます。
これにより、多変数の最適化問題や統計的信号処理で、実変数の場合と同様の手法が使えるようになります。
実装例:プログラミングでの応用
ウィルティンガー微分は、プログラムでの実装も可能です。
自動微分との組み合わせ
現代の機械学習フレームワーク(PyTorch、TensorFlowなど)は、自動微分の機能を持っています。
ウィルティンガー微分も、自動微分の仕組みを使って実装できます。具体的には:
- 複素数z = x + iy を実数の組(x, y)として扱う
- 通常の実数微分 ∂f/∂x と ∂f/∂y を自動計算する
- それらを組み合わせて ∂f/∂z と ∂f/∂z̄ を計算する
プログラミング言語での例
Juliaというプログラミング言語では、複素数の自動微分ライブラリ(Zygote.jl)を使って、ウィルティンガー微分を計算できます。
Pythonでも、NumPyやSciPyを使って実装することが可能です。
まとめ:ウィルティンガー微分は複素解析の強力なツール
この記事のポイント:
- ウィルティンガー微分は、複素数を実部・虚部に分けずに微分できる手法
- 定義は ∂/∂z = (1/2)(∂/∂x – i∂/∂y) と ∂/∂z̄ = (1/2)(∂/∂x + i∂/∂y)
- zとz̄を独立変数として扱うことで、通常の微分と同じ計算規則が使える
- 正則性の判定が簡潔:∂f/∂z̄ = 0 ⇔ fは正則
- 信号処理、機械学習、最適化問題など、幅広い応用がある
- ラプラス作用素とも深い関係がある
- 多変数にも自然に拡張できる

コメント