正則(せいそく)とは?数学・情報科学での意味を完全解説

数学
スポンサーリンク

「正則」という言葉、聞いたことありますか?

数学やプログラミングを学ん

でいると、「正則」という言葉に出会うことがあります。

しかし、実はこの言葉、文脈によって全く違う意味を持つため、混乱することが多いのです。

この記事では、「正則」の主な3つの意味を、初心者の方にもわかりやすく解説します。

「正則」の3つの意味

「正則」という言葉は、主に以下の3つの文脈で使われます。

分野日本語英語意味
線形代数正則行列Regular Matrix / Invertible Matrix逆行列を持つ正方行列
複素解析正則関数Holomorphic Function / Regular Function複素数の領域で微分可能な関数
情報科学正規表現Regular Expression文字列パターンを表す表記法

注意:

  • 情報科学では「正規表現」と呼ばれますが、英語は”Regular Expression”で、”Regular”は「正則」とも訳せます。
  • 数学では「正則」、情報科学では「正規」と訳し分けられることが多いです。

「正則」の語源と共通点

「正則(Regular)」の意味:

英語の”Regular”には「規則的」「整った」「正常な」という意味があります。

数学や情報科学では、「ある概念に強い制限をかけたもの」という意味で使われます。

共通点:

  • 制限をかけることで、扱いやすくなる
  • 特別な性質を持つ
  • 理論的に重要

例:

  • 正則行列:逆行列を持つという制限 → 連立方程式が解ける
  • 正則関数:微分可能という制限 → 無限回微分可能、べき級数展開可能
  • 正規表現:正規文法で表現可能という制限 → 効率的にパターンマッチング可能

1. 正則行列(線形代数)

正則行列とは

正則行列(せいそくぎょうれつ、Regular Matrix)とは、逆行列を持つ正方行列のことです。

別名:

  • 可逆行列(Invertible Matrix)
  • 非特異行列(Non-singular Matrix)

逆行列とは

数学では、ある数 a に対して、a × (1/a) = 1 となる (1/a) を「逆数」と呼びます。

同様に、行列にも「逆行列」があります。

行列 A に対して、以下を満たす行列 B が存在するとき、B を A の逆行列と呼び、A⁻¹ と書きます。

条件:

A × B = B × A = I

ここで、I は単位行列(対角成分が1、それ以外が0の行列)です。

正則行列の定義

定義:

n次正方行列 A に対して、以下を満たす n次正方行列 A⁻¹ が存在するとき、A は正則行列である。

A × A⁻¹ = A⁻¹ × A = I

正則行列の例

例1:2×2行列

以下の行列 A は正則です。

A = [ 2  5 ]
    [ 1  3 ]

なぜなら、以下の行列 B が存在するからです。

B = [  3  -5 ]
    [ -1   2 ]

計算すると:

A × B = [ 2  5 ] × [  3  -5 ] = [ 1  0 ] = I
        [ 1  3 ]   [ -1   2 ]   [ 0  1 ]

B × A = [  3  -5 ] × [ 2  5 ] = [ 1  0 ] = I
        [ -1   2 ]   [ 1  3 ]   [ 0  1 ]

したがって、B = A⁻¹ です。

例2:正則でない行列

以下の行列 A は正則ではありません。

A = [ 0  0 ]
    [ 0  0 ]

どんな行列 B を持ってきても、A × B = I とはなりません。

正則行列の判定方法

行列 A が正則であるかどうかを判定する方法はいくつかあります。

方法1:行列式を計算

A が正則 ⇔ det(A) ≠ 0

行列式(Determinant)が0でなければ、正則です。

例:

A = [ 2  5 ]
    [ 1  3 ]

det(A) = 2 × 3 – 5 × 1 = 6 – 5 = 1 ≠ 0

したがって、A は正則です。

方法2:ランクを確認

A が n次正方行列で正則 ⇔ rank(A) = n

行列のランク(階数)が行列のサイズと等しければ、正則です。

方法3:固有値を確認

A が正則 ⇔ すべての固有値が0でない

固有値に0が含まれていなければ、正則です。

正則行列の性質

正則行列には、以下のような重要な性質があります。

性質1:逆行列の一意性

正則行列 A の逆行列 A⁻¹ は一意に定まります。

性質2:逆行列の逆行列

(A⁻¹)⁻¹ = A

逆行列の逆行列は、元の行列です。

性質3:転置と逆行列

(Aᵀ)⁻¹ = (A⁻¹)ᵀ

転置行列の逆行列は、逆行列の転置と等しいです。

性質4:積と逆行列

(A × B)⁻¹ = B⁻¹ × A⁻¹

積の逆行列は、逆行列の積(順序が逆)と等しいです。

性質5:行列式と逆行列

det(A⁻¹) = 1 / det(A)

逆行列の行列式は、元の行列の行列式の逆数です。

正則行列の応用

正則行列は、以下のような場面で重要です。

応用1:連立方程式を解く

連立一次方程式 Ax = b を考えます。

A が正則なら、両辺に左から A⁻¹ をかけて:

x = A⁻¹ × b

結論:

A が正則 ⇔ 連立方程式 Ax = b が一意の解を持つ

応用2:線形変換

行列は、ベクトル空間の線形変換を表します。

A が正則 ⇔ この線形変換は可逆(逆変換が存在)

応用3:一般線型群

n次正則行列の全体は、行列の積に関して一般線型群(General Linear Group)と呼ばれる群を成します。

これは、代数学や幾何学で重要な概念です。

2. 正則関数(複素解析)

正則関数とは

正則関数(せいそくかんすう、Holomorphic Function)とは、複素数の領域で微分可能な関数のことです。

別名:

  • 整型関数(Holomorphic Function)
  • 解析関数(Analytic Function)

注意:

複素解析では、「正則関数」「解析関数」「複素微分可能関数」はすべて同じ意味です。

複素関数の微分

複素関数 f(z) が点 a で微分可能とは、以下の極限が存在することです。

f'(a) = lim[h→0] (f(a+h) - f(a)) / h

重要なポイント:

この極限は、h が 0 に近づく「どの方向」からでも同じ値でなければなりません。

複素平面では、h は無数の方向から 0 に近づくことができます(例:実軸方向、虚軸方向、斜め方向など)。

これが、実関数の微分よりもはるかに強い条件です。

正則関数の定義

定義:

複素関数 f(z) が、領域 D 内のすべての点で微分可能であるとき、f(z) は D 上で正則である。

例:

  • f(z) = z²は、複素数全体で正則
  • f(z) = eᶻ は、複素数全体で正則
  • f(z) = 1/z は、z ≠ 0 で正則

コーシー・リーマンの方程式

複素関数 f(z) = u(x, y) + iv(x, y) が正則であるための必要十分条件は、コーシー・リーマンの方程式(Cauchy-Riemann Equations)を満たすことです。

コーシー・リーマンの方程式:

∂u/∂x = ∂v/∂y
∂u/∂y = -∂v/∂x

ここで、u(x, y) は実部、v(x, y) は虚部です。

例:f(z) = z² が正則であることを確認

z = x + iy とすると:

f(z) = z² = (x + iy)² = x² - y² + 2ixy

したがって、u(x, y) = x² – y²、v(x, y) = 2xy

偏微分すると:

∂u/∂x = 2x,  ∂v/∂y = 2x  → ∂u/∂x = ∂v/∂y ✓
∂u/∂y = -2y, ∂v/∂x = 2y  → ∂u/∂y = -∂v/∂x ✓

コーシー・リーマンの方程式を満たすので、f(z) = z² は正則です。

正則関数の驚くべき性質

正則関数には、実関数にはない驚くべき性質があります。

性質1:無限回微分可能

正則関数は、無限回微分可能です。

実関数では、1回微分可能でも2回微分可能とは限りませんが、複素関数では、1回微分可能なら無限回微分可能です。

性質2:べき級数展開可能(テイラー展開)

正則関数 f(z) は、任意の点 z₀ の周りでべき級数に展開できます。

f(z) = Σ[n=0 to ∞] (f⁽ⁿ⁾(z₀) / n!) (z - z₀)ⁿ

つまり、正則関数 = 解析関数です。

性質3:コーシーの積分定理

正則関数 f(z) を、閉曲線 C に沿って線積分すると、その値は 0 です(Cで囲まれた領域内で f(z) が正則であれば)。

∮_C f(z) dz = 0

性質4:コーシーの積分公式

正則関数 f(z) の値は、その点を囲む曲線上での積分で表せます。

f(z₀) = (1 / 2πi) ∮_C (f(z) / (z - z₀)) dz

性質5:リウヴィルの定理

複素数全体で有界な正則関数は、定数関数に限られます。

これは、実関数では成り立たない驚くべき定理です。

例えば、sin(x) は実数全体で有界ですが、定数関数ではありません。しかし、複素関数として sin(z) を考えると、複素数全体では有界ではありません。

正則関数の例

例1:多項式関数

f(z) = z²、f(z) = z³ + 2z + 1 など

すべての多項式関数は、複素数全体で正則です(整関数)。

例2:指数関数

f(z) = eᶻ

複素数全体で正則です。

例3:三角関数

f(z) = sin(z)、f(z) = cos(z)

複素数全体で正則です。

例4:有理関数

f(z) = 1/z

z ≠ 0 で正則です(z = 0 は極)。

例5:正則でない関数

f(z) = z̄(複素共役)

コーシー・リーマンの方程式を満たさないため、正則ではありません。

正則関数の応用

正則関数は、以下のような分野で重要です。

  • 複素解析:関数論の中心的な対象
  • 物理学:流体力学、電磁気学、量子力学
  • 工学:等角写像、信号処理
  • 数論:解析的整数論、リーマンゼータ関数

3. 正規表現(情報科学)

正規表現とは

正規表現(せいきひょうげん、Regular Expression)とは、文字列のパターンを表現するための表記法です。

英語:

  • Regular Expression
  • 略:regex、regexp、RE

注意:

日本語では「正規表現」と呼ばれますが、英語の”Regular”は「正則」とも訳せます。
数学では「正則表現」と訳されることもあります。

正規表現の目的

通常の検索では、「apple」のように具体的な文字列を指定します。

しかし、正規表現を使うと、「こんな感じの文字列」という曖昧なパターンを指定できます。

例:

  • 「a で始まる単語」
  • 「数字が3つ並んだ部分」
  • 「メールアドレスの形式」
  • 「電話番号の形式」

正規表現の基本

正規表現は、通常の文字と「メタ文字」と呼ばれる特別な記号を組み合わせて書きます。

基本的なメタ文字

メタ文字意味マッチする例
.任意の1文字a.cabc, a1c, a@c
*直前の文字の0回以上の繰り返しab*cac, abc, abbc, abbbc
+直前の文字の1回以上の繰り返しab+cabc, abbc, abbbc
?直前の文字の0回または1回ab?cac, abc
^行頭^abc行の先頭が”abc”
$行末abc$行の末尾が”abc”
[]いずれか1文字[abc]a, b, c
[^]否定(いずれでもない1文字)[^abc]a, b, c 以外
|またはcat|dogcat または dog
()グループ化(ab)+ab, abab, ababab

文字クラス

記号意味
\d数字(0-9)
\D数字以外
\w単語文字(英数字とアンダースコア)
\W単語文字以外
\s空白文字(スペース、タブ、改行など)
\S空白文字以外

正規表現の例

例1:電話番号

パターン:

\d{3}-\d{4}-\d{4}

意味:

  • \d{3}:数字3桁
  • -:ハイフン
  • \d{4}:数字4桁
  • -:ハイフン
  • \d{4}:数字4桁

マッチする例:

  • 090-1234-5678
  • 080-9876-5432

例2:メールアドレス

パターン(簡易版):

\w+@\w+\.\w+

意味:

  • \w+:単語文字の1回以上の繰り返し(ユーザー名)
  • @:アットマーク
  • \w+:単語文字の1回以上の繰り返し(ドメイン名)
  • \.:ドット(\でエスケープ)
  • \w+:単語文字の1回以上の繰り返し(トップレベルドメイン)

マッチする例:

  • user@example.com
  • test@mail.co

例3:日付(YYYY-MM-DD)

パターン:

\d{4}-\d{2}-\d{2}

意味:

  • \d{4}:数字4桁(年)
  • -:ハイフン
  • \d{2}:数字2桁(月)
  • -:ハイフン
  • \d{2}:数字2桁(日)

マッチする例:

  • 2025-01-05
  • 2024-12-31

正規表現の用途

正規表現は、以下のような場面で使われます。

用途1:文字列の検索

テキストエディタやプログラミング言語で、特定のパターンに一致する文字列を探す。

例:

  • ログファイルから、エラーメッセージを抽出
  • ソースコードから、特定の関数呼び出しを検索

用途2:文字列の置換

特定のパターンに一致する文字列を、別の文字列に置き換える。

例:

  • 電話番号の形式を統一(ハイフンあり/なし)
  • HTMLタグを削除

用途3:入力のバリデーション

ユーザーが入力した値が、想定した形式に一致しているかチェックする。

例:

  • メールアドレスの形式チェック
  • パスワードの強度チェック
  • 郵便番号の形式チェック

用途4:データの抽出

テキストから、特定のパターンに一致する部分を抽出する。

例:

  • ウェブページからURLを抽出
  • 文章から日付を抽出

正規表現を使えるツール・言語

正規表現は、多くのプログラミング言語やツールでサポートされています。

プログラミング言語:

  • Python:re モジュール
  • JavaScript:RegExp オブジェクト
  • Java:java.util.regex パッケージ
  • Perl:組み込みサポート
  • Ruby:Regexp クラス
  • PHP:preg_* 関数

ツール:

  • テキストエディタ:Visual Studio Code、Sublime Text、Vim、Emacs
  • コマンドラインツール:grep、sed、awk
  • データベース:MySQL、PostgreSQL(REGEXP演算子)

正規表現の注意点

注意1:処理系によって違いがある

正規表現の仕様は、処理系(言語やツール)によって微妙に異なります。

例:

  • Perlの正規表現
  • POSIX正規表現
  • PCRE(Perl互換正規表現)
  • ECMAScript正規表現

注意2:パフォーマンスに注意

複雑な正規表現は、処理に時間がかかることがあります。

対策:

  • できるだけシンプルな正規表現を使う
  • バックトラック(後戻り)を減らす

注意3:可読性に注意

複雑な正規表現は、読みにくく、メンテナンスが難しくなります。

対策:

  • コメントを付ける
  • 複雑な正規表現は、複数の簡単な正規表現に分割

よくある質問

Q: 「正則」と「正規」の違いは何ですか?

A: 基本的に同じ意味で、英語の”Regular”の訳語です。

  • 数学では「正則」と訳されることが多い(正則行列、正則関数)
  • 情報科学では「正規」と訳されることが多い(正規表現、正規化)

ただし、厳密に使い分けられているわけではなく、文脈によります。

Q: 正則行列と正方行列の違いは何ですか?

A: 正方行列は「行数と列数が同じ行列」です。正則行列は「正方行列のうち、逆行列を持つもの」です。

つまり、正則行列 ⊂ 正方行列(正則行列は正方行列の一部)です。

すべての正方行列が正則とは限りません。

Q: 複素関数で「正則」と「解析的」は同じですか?

A: はい、複素解析では同じ意味です。

歴史的には、「正則関数」は「微分可能な関数」、「解析関数」は「べき級数展開可能な関数」として定義されていましたが、複素関数ではこの2つが同値であることが証明されています。

したがって、現在では「正則関数」=「解析関数」として扱われます。

Q: 正規表現はどうやって勉強すればいいですか?

A: 以下のステップがおすすめです:

  1. 基本的なメタ文字を覚える., *, +, ?, ^, $, [], |, ()
  2. オンライン正規表現テスターを使って練習(regex101.comなど)
  3. 実際のテキストエディタで検索・置換に使ってみる
  4. プログラミング言語で実装してみる

Q: 正規表現で「すべてのメールアドレス」を完璧にマッチさせることはできますか?

A: 理論的には可能ですが、実際には非常に複雑になります。

メールアドレスの仕様(RFC 5322)は非常に複雑で、完璧な正規表現は数百文字にもなります。

実用的には、「ほとんどのメールアドレスにマッチする」簡易的な正規表現を使うことが多いです。

Q: なぜ「正則」という名前なのですか?

A: 英語の”Regular”には「規則的」「整った」「正常な」という意味があります。

数学や情報科学では、「ある概念に強い制限をかけたもの」という意味で使われます。

制限をかけることで、扱いやすく、理論的に重要な性質を持つようになるため、「正則」と呼ばれます。

Q: 正則行列の逆行列はどうやって求めますか?

A: 逆行列を求める方法は2通りあります:

方法1:掃き出し法(ガウス・ジョルダンの消去法)

  • (A | I) という拡大行列を作る
  • 行基本変形で (I | B) の形にする
  • B が逆行列 A⁻¹

方法2:余因子行列を使う

  • A⁻¹ = (1/det(A)) × (余因子行列の転置)

実際の計算では、掃き出し法の方が効率的です。

まとめ

「正則」について、重要なポイントをまとめます。

「正則」の3つの意味:

分野意味重要性
線形代数逆行列を持つ正方行列連立方程式、線形変換
複素解析複素数の領域で微分可能な関数関数論の中心的対象
情報科学文字列パターンを表す表記法(正規表現)文字列処理の基本ツール

1. 正則行列(線形代数)

  • 定義:逆行列を持つ正方行列
  • 判定:行列式が0でない ⇔ 正則
  • 応用:連立方程式を解く、線形変換
  • 性質:逆行列は一意、積の逆行列 = 逆行列の積(順序逆)

2. 正則関数(複素解析)

  • 定義:複素数の領域で微分可能な関数
  • 条件:コーシー・リーマンの方程式を満たす
  • 驚くべき性質:
  • 1回微分可能 → 無限回微分可能
  • 正則 = 解析的(べき級数展開可能)
  • リウヴィルの定理(有界な正則関数は定数)
  • 応用:複素解析、物理学、工学

3. 正規表現(情報科学)

  • 定義:文字列のパターンを表す表記法
  • 目的:「こんな感じの文字列」を指定
  • 基本:通常の文字 + メタ文字(特別な記号)
  • 用途:検索、置換、バリデーション、データ抽出
  • 注意:処理系によって仕様が異なる

共通点:

  • 英語は”Regular”
  • 「制限をかけることで、扱いやすくなる」
  • 理論的に重要

重要なポイント:

「正則」という言葉は、文脈によって全く違う意味を持ちます。

  • 線形代数を学んでいるなら、「正則 = 逆行列を持つ」
  • 複素解析を学んでいるなら、「正則 = 微分可能」
  • プログラミングをしているなら、「正規表現 = 文字列パターン」

文脈を理解して、適切に使い分けることが重要です。

この記事が、あなたの「正則」の理解の助けになれば幸いです!

コメント

タイトルとURLをコピーしました