markdown
ジョルダン標準形の入口md ac9ffb5
lecture/math/linear-algebra/introduction-to-jordan-canonical-form.lecture.n.md
Download PDF

ジョルダン標準形ひょうじゅんけい入口いりぐち

date2026-07-14document_iddoc_6297f7b73c14ac625d50b253f3e7bb25descriptionジョルダン標準形を、対角化できない行列を固有値と nilpotent 成分に分けて理解するための入口として整理する講義である。prerequisites固有値と固有ベクトル / 対角化の基本 / 最小多項式の基本type講義content_typelecturestatusactiverelateddata/lecture/math/linear-algebra/linear-algebra-portal.lecture.n.md / data/lecture/math/linear-algebra/diagonalization-basics.lecture.n.md / data/lecture/math/linear-algebra/minimal-polynomial-basics.lecture.n.md / data/exercise/math/linear-algebra/eigenvalues-diagonalization-and-extensions.exercise.n.md
mathlinear-algebraundergraduatelecture

Introduction to Jordan normal formジョルダン標準形ひょうじゅんけい

1導入どうにゅう

この講義こうぎ重要じゅうようなのは、ジョルダン標準形ひょうじゅんけいは、対角化たいかくかdiagonalizationできない行列ぎょうれつmatrix完全かんぜんあきらめるのではなく、対角行列たいかくぎょうれつdiagonal matrixちかかたちまで整理せいりする方法ほうほうであるということである。

対角化たいかくかdiagonalizationは、固有ベクトルeigenvectorだけで基底きていbasis構成こうせいできる場合ばあい理想形りそうけいである。しかし、固有ベクトルeigenvector不足ふそくする行列ぎょうれつmatrix存在そんざいする。その場合ばあい一般化いっぱんか固有ベクトルeigenvector導入どうにゅうすると、行列ぎょうれつmatrixはジョルダンブロックの直和ちょくわとして表示ひょうじできる。

1Introduction

The key point of this lecture is that Jordan normal formジョルダン標準形ひょうじゅんけい does not give up on matrices that cannot be diagonalized. Instead, it organizes them into a form as close to diagonal as possible.

Diagonalization対角化たいかくか is the ideal case in which eigenvectors固有こゆうベクトル alone form a basis基底きてい. When there are not enough eigenvectors固有こゆうベクトル, generalized eigenvectors一般化いっぱんか固有こゆうベクトル complete the missing directions, and the matrix becomes a direct sum of Jordan blocks.

2用語ようご定義ていぎ

一般化いっぱんか固有こゆうベクトルGeneralized eigenvector とは、固有値こゆうちeigenvalue λたいして、ある正整数せいせいすう k

(A-λI)kv=0

たす v0 のことである。

ジョルダンブロックJordan block とは、

Jk(λ)=(λ1000λ100001000λ)

定義ていぎされる k×k 行列ぎょうれつmatrixである。これは

Jk(λ)=λI+N

あらわせる。ここで N上隣うえどなり成分せいぶんcomponentだけが 1 の冪零行列べきれいぎょうれつである。

2Terms and definitions

A generalized eigenvector一般化いっぱんか固有こゆうベクトル for an eigenvalue固有値こゆうち λ is a nonzero vector v such that

(A-λI)kv=0

for some positive integer k.

A Jordan blockジョルダンブロック is

Jk(λ)=(λ1000λ100001000λ).

It can be written as

Jk(λ)=λI+N,

where N is nilpotent and has ones just above the diagonal.

3方針ほうしん

方針ほうしんは、固有値こゆうちeigenvalueごとに対角成分たいかくせいぶん λI と、対角化たいかくかdiagonalizationさまたげる冪零成分べきれいせいぶん N分離ぶんりすることである。

data/lecture/math/linear-algebra/diagonalization-basics.lecture.n.md

3Plan

For each eigenvalue固有値こゆうち λ, separate the diagonal part λI from the nilpotent part N that prevents diagonalization.

data/lecture/math/linear-algebra/diagonalization-basics.lecture.n.md

4直感的ちょっかんてき説明せつめい

対角行列たいかくぎょうれつdiagonal matrixでは、各基底かくきていベクトルが自分自身じぶんじしん方向ほうこう伸縮しんしゅくするだけである。ジョルダンブロックでは、それにくわえてとなり方向ほうこう少量しょうりょう混合こんごうのこる。

この混合こんごう冪零成分べきれいせいぶんである。何度なんど作用さようさせると消滅しょうめつするため、完全かんぜん対角化たいかくかdiagonalizationではないが、構造こうぞうstructure明確めいかく記述きじゅつできる。

4Intuitive explanation

In a diagonal matrix, each basis基底きてい vector is only scaled in its own direction. In a Jordan blockジョルダンブロック, a small coupling to the neighboring direction remains. This coupling is nilpotent: after applying it enough times, it disappears.

Therefore a Jordan blockジョルダンブロック is not fully diagonal, but its structure is still explicit: eigenvalue固有値こゆうち plus nilpotent drift along a chain.

5厳密げんみつ説明せつめい

5.11. 標準形ひょうじゅんけい

複素数体ふくそすうたいのような代数的閉体だいすうてきへいたいうえでは、任意にんい正方行列せいほうぎょうれつsquare matrix A は、ある正則行列せいそくぎょうれつ P によって

P-1AP=J

表示ひょうじできる。ここで J はジョルダンブロックを対角方向たいかくほうこうならべた行列ぎょうれつmatrixである。

ジョルダン標準形ひょうじゅんけいは、ブロックの順序じゅんじょのぞいて一意いちいである。したがって「どの固有値こゆうちeigenvalueに、どのおおきさのブロックがいくつ存在そんざいするか」は、基底きていbasis選択せんたく依存いぞんしない不変量ふへんりょうである。

5.22. 対角化たいかくかdiagonalizationとの関係かんけい

ジョルダンブロックのおおきさがすべて 1 なら、ジョルダン標準形ひょうじゅんけい対角行列たいかくぎょうれつdiagonal matrixである。したがって

[PARSE ERROR: Undefined("Command(\"boxed\")")]Aが対角化可能すべてのジョルダンブロックの大きさが1

である。

5.33. 最小多項式さいしょうたこうしきminimal polynomialとの関係かんけい

固有値こゆうちeigenvalue λ対応たいおうする最大さいだいのジョルダンブロックのおおきさを sλ とすると、最小多項式さいしょうたこうしきminimal polynomialには

(t-λ)sλ

因子いんしとしてあらわれる。したがって最小多項式さいしょうたこうしきminimal polynomial指数しすうは、対角化たいかくかdiagonalizationからの逸脱いつだつ測定そくていする。

5.44. ジョルダン

ジョルダンブロックを構成こうせいする基底きていbasisは、一般化いっぱんか固有ベクトルeigenvectorれつcolumnとして考察こうさつできる。固有値こゆうちeigenvalue λたいして

(A-λI)v1=0,(A-λI)v2=v1,[PARSE ERROR: Undefined("Command(\"dots\")")],(A-λI)vk=vk-1

たすれつcolumnをジョルダンという。v1固有ベクトルeigenvectorであり、v2,[PARSE ERROR: Undefined("Command(\"dots\")")],vk一般化いっぱんか固有ベクトルeigenvectorである。このくさり基底きていbasisとして採用さいようすると、行列ぎょうれつmatrix表示ひょうじにジョルダンブロックがあらわれる。

5.55. 一般化固有空間いっぱんかこゆうくうかんとブロックサイズ

固有値こゆうちeigenvalue λたいする一般化固有空間いっぱんかこゆうくうかんgeneralized eigenspace

Gλ=ker(A-λI)N

である。ここで N十分じゅうぶんおおきい整数せいすうで、有限次元ゆうげんじげんでは N=n としてよい。この空間くうかんλ対応たいおうするすべてのジョルダンブロックをあつめる。

dimker(A-λI)

λ のジョルダンブロックの個数こすうであり、

dimker(A-λI)r

かたはジョルダン成長せいちょう記録きろくして、ブロックサイズをめる。

5Precise explanation

5.11. Standard form

Over an algebraically closed field such as C, every square matrix正方行列せいほうぎょうれつ A has a Jordan normal formジョルダン標準形ひょうじゅんけい: there exists an invertible可逆かぎゃく matrix P such that

P-1AP=J,

where J is a block diagonal matrix whose blocks are Jordan blocks.

More explicitly,

P-1AP=diag(Jk1(λ1),,Jks(λs)).

The form is unique up to reordering of the blocks.

5.22. Relation with diagonalization

If every Jordan blockジョルダンブロック has size 1, then the Jordan form is diagonal. Thus

[PARSE ERROR: Undefined("Command(\"boxed\")")]AisdiagonalizableallJordanblockshavesize1.

5.33. Relation with the minimal polynomial最小多項式さいしょうたこうしき

If sλ is the largest Jordan blockジョルダンブロック size for eigenvalue固有値こゆうち λ, then the minimal polynomial最小多項式さいしょうたこうしき contains the factor

(t-λ)sλ.

Thus the exponent in the minimal polynomial最小多項式さいしょうたこうしき measures the obstruction to diagonalization.

5.44. Jordan chains

A Jordan blockジョルダンブロック corresponds to a chain of generalized eigenvectors一般化いっぱんか固有こゆうベクトル:

(A-λI)v1=0,(A-λI)v2=v1,,(A-λI)vk=vk-1.

Here v1 is an eigenvector固有こゆうベクトル, and v2,,vk are generalized eigenvectors一般化いっぱんか固有こゆうベクトル. Using such chains as a basis基底きてい produces Jordan blocks in the matrix representation.

5.55. Generalized eigenspaces and block sizes

The generalized eigenspace一般化固有空間いっぱんかこゆうくうかん for λ is

Gλ=ker(A-λI)N

for sufficiently large N; in finite dimension one may take N=n. This space collects all Jordan blocks for λ.

The dimension of

ker(A-λI)

is the number of Jordan blocks for λ. The sequence of dimensions of

ker(A-λI)r

records how chains grow and determines the block sizes.

6具体例ぐたいていれい

A=(1101)

J2(1) そのものである。固有値こゆうちeigenvalue1 だけであるが、固有空間こゆうくうかんeigenspace

ker(A-I)=span{(10)}

であり、次元じげんdimensionは 1 である。したがって R2基底きていbasis固有ベクトルeigenvectorだけで構成こうせいできない。

しかし

(A-I)2=0

であるため、一般化いっぱんか固有ベクトルeigenvector導入どうにゅうすると構造こうぞうstructure記述きじゅつできる。

このれいでは v1=e1v2=e2 とすると

(A-I)v1=0,(A-I)v2=v1

である。したがって v1,v2ながさ 2 のジョルダン構成こうせいする。v2固有ベクトルeigenvectorではないが、A-I を 1 かい作用さようさせると固有ベクトルeigenvector移行いこうする。この構成こうせいが、不足ふそくした固有ベクトルeigenvector一般化いっぱんか固有ベクトルeigenvector補完ほかんする仕組しくみである。

6Concrete examples

For

A=(1101),

we have A=J2(1). The only eigenvalue固有値こゆうち is 1, and

ker(A-I)=span{(10)},

so there is only one eigenvector固有こゆうベクトル direction. But

(A-I)2=0.

With v1=e1 and v2=e2,

(A-I)v1=0,(A-I)v2=v1.

Thus v1,v2 form a Jordan chain of length 2.

For a 3 by 3 block,

J=(210021002)=2I+N.

Here

N2=(001000000),N3=0.

Therefore

(J-2I)3=0,(J-2I)20,

and the minimal polynomial最小多項式さいしょうたこうしき is

mJ(t)=(t-2)3.

7見分みわかた:AM、GM、ブロック

固有値こゆうちeigenvalue λ について:

  • 代数的重複度だいすうてきちょうふくどalgebraic multiplicityは、λ対応たいおうするジョルダンブロックのおおきさの総和そうわである。
  • 幾何的重複度きかてきちょうふくどgeometric multiplicityは、λ対応たいおうするジョルダンブロックの個数こすうである。
  • 最小多項式さいしょうたこうしきminimal polynomial(t-λ)指数しすうは、λ対応たいおうする最大さいだいブロックサイズである。

したがって AM と GM が一致いっちすることは、すべてのブロックがおおきさ 1 であることを意味いみする。

8数値計算上すうちけいさんじょう注意ちゅうい

ジョルダン標準形ひょうじゅんけいは、理論上りろんじょう強力きょうりょくである。ただし数値計算すうちけいさんでは不安定ふあんていになりやすい。そのため実際じっさい計算けいさんでは、特異値分解とくいちぶんかいsingular value decompositionSVDやシュール分解ぶんかい選択せんたくされることがおおい。

data/lecture/math/linear-algebra/introduction-to-singular-value-decomposition.lecture.n.md

7How to read AM, GM, and blocks

For an eigenvalue固有値こゆうち λ:

  • The algebraic multiplicity代数的重複度だいすうてきちょうふくど is the sum of the sizes of all Jordan blocks for λ.
  • The geometric multiplicity幾何的重複度きかてきちょうふくど is the number of Jordan blocks for λ.
  • The exponent of (t-λ) in the minimal polynomial最小多項式さいしょうたこうしき is the largest block size for λ.

Thus AM equals GM exactly when all blocks for that eigenvalue固有値こゆうち have size 1.

8Numerical warning

Jordan normal formジョルダン標準形ひょうじゅんけい is extremely useful for theoretical classification, but it is numerically unstable. Small perturbations can split or merge apparent Jordan behavior. In practical computation, Schur decomposition or SVD is often preferred.

data/lecture/math/linear-algebra/introduction-to-singular-value-decomposition.lecture.n.md

9判定基準はんていきじゅん

  • 固有ベクトルeigenvector不足ふそくするとき、一般化いっぱんか固有ベクトルeigenvector導入どうにゅうする。
  • ジョルダンブロックのおおきさが 1 だけなら対角化可能たいかくかかのうである。
  • 最大さいだいのブロックサイズは最小多項式さいしょうたこうしきminimal polynomial重根じゅうこん指数しすう対応たいおうする。
  • ジョルダン標準形ひょうじゅんけいは、ブロックの順序じゅんじょのぞいて一意いちいである。

9Criteria

  • When eigenvectors固有こゆうベクトル are insufficient, introduce generalized eigenvectors一般化いっぱんか固有こゆうベクトル.
  • A matrix is diagonalizable exactly when all Jordan blocks have size 1.
  • The largest block size is the exponent in the minimal polynomial最小多項式さいしょうたこうしき.
  • Jordan normal formジョルダン標準形ひょうじゅんけい is unique up to block order.
  • The result is naturally stated over a field where the characteristic polynomial特性多項式とくせいたこうしき splits.

10どこまで成立せいりつするか

ジョルダン標準形ひょうじゅんけいは、特性多項式とくせいたこうしきcharacteristic polynomial一次因子いちじいんし分解ぶんかいするたいうえ記述きじゅつされる。実数じっすうreal numberだけでは複素固有値ふくそこゆうちあらわれる場合ばあいがあるため、複素数ふくそすうcomplex number拡張かくちょうして考察こうさつすることが標準ひょうじゅんである。

10Scope and limitations

Jordan normal formジョルダン標準形ひょうじゅんけい is stated over fields where the characteristic polynomial特性多項式とくせいたこうしき splits into linear factors. Over the real numbers, complex eigenvalues固有値こゆうち may be missing, so one often extends to C.

11存在定理そんざいていり正確せいかくかたち

代数的閉体だいすうてきへいたい(たとえば C)のうえでは、任意にんい正方行列せいほうぎょうれつsquare matrix A はジョルダン標準形ひょうじゅんけいつ。つまり、ある可逆行列かぎゃくぎょうれつinvertible matrix P存在そんざいして

P-1AP=diag(Jk1(λ1),[PARSE ERROR: Undefined("Command(\"dots\")")],Jks(λs))

ける。ブロックの順序じゅんじょのぞけば、このかたち一意いちいである。

この定理ていりは「対角化たいかくかできない行列ぎょうれつにも標準形ひょうじゅんけいがある」という主張しゅちょうである。ただし、実数じっすう範囲はんいだけでは複素固有値ふくそこゆうち不足ふそくするため、通常つうじょうC じょうかんがえる。

12最終形さいしゅうけい

[PARSE ERROR: Undefined("Command(\"boxed\")")]P-1AP=J
[PARSE ERROR: Undefined("Command(\"boxed\")")]Jk(λ)=λI+N,Nk=0
[PARSE ERROR: Undefined("Command(\"boxed\")")]diagonalizableallJordanblockshavesize1
[PARSE ERROR: Undefined("Command(\"boxed\")")](A-λI)vj=vj-1がジョルダン鎖を定める

11Precise form of the existence theorem

Over an algebraically closed field, for example C, every square matrix正方行列せいほうぎょうれつ A has a Jordan normal formジョルダン標準形ひょうじゅんけい. That is, there exists an invertible matrix可逆行列かぎゃくぎょうれつ P such that

P-1AP=diag(Jk1(λ1),[PARSE ERROR: Undefined("Command(\"dots\")")],Jks(λs)).

This form is unique up to the order of the blocks. The theorem says that even a non-diagonalizable matrix still has a standard form. Over the real numbers alone, complex eigenvalues固有値こゆうち may be missing, so the usual setting is C.

12Final forms

[PARSE ERROR: Undefined("Command(\"boxed\")")]P-1AP=J
[PARSE ERROR: Undefined("Command(\"boxed\")")]Jk(λ)=λI+N,Nk=0
[PARSE ERROR: Undefined("Command(\"boxed\")")]diagonalizableallJordanblockshavesize1
[PARSE ERROR: Undefined("Command(\"boxed\")")](A-λI)vj=vj-1definesaJordanchain

13一般化固有空間いっぱんかこゆうくうかんとブロックサイズ

固有値こゆうちeigenvalue λたいする一般化固有空間いっぱんかこゆうくうかんgeneralized eigenspace

Gλ=ker(A-λI)N

である。ここで N十分じゅうぶんおおきい整数せいすうで、有限次元ゆうげんじげんでは N=n としてよい。Gλ は、λ対応たいおうするすべてのジョルダンブロックをあつめた空間くうかんである。

dimker(A-λI)

λ対応たいおうするジョルダンブロックの個数こすうあらわす。一方いっぽうdimker(A-λI)r は、ながr までのジョルダンがどれだけ蓄積ちくせきしているかをはかる。このれつかたから、ブロックサイズを復元ふくげんできる。

14一言ひとことでいうと

ジョルダン標準形ひょうじゅんけいは、対角化不可能たいかくかふかのう行列ぎょうれつmatrix固有値こゆうちeigenvalue部分ぶぶん冪零成分べきれいせいぶん分解ぶんかいして記述きじゅつする。

13Generalized eigenspaces and block sizes

The generalized eigenspace一般化固有空間いっぱんかこゆうくうかん for an eigenvalue固有値こゆうち λ is

Gλ=ker(A-λI)N,

where N is sufficiently large; in finite dimension one may take N=n. The space Gλ collects all Jordan blocks for λ.

The dimension

dimker(A-λI)

is the number of Jordan blocks for λ. The dimensions of

ker(A-λI)r

measure how chains of length up to r accumulate, and this growth recovers the block sizes.

14In one sentence

Jordan normal formジョルダン標準形ひょうじゅんけい decomposes a non-diagonalizable matrix into eigenvalue固有値こゆうち parts and nilpotent parts.

15計算例けいさんれい:3 のジョルダンブロック

J=(210021002)=2I+N,N=(010001000)

とする。このとき

N2=(001000000),N3=0

である。したがって

(J-2I)3=0,(J-2I)20

なので最小多項式さいしょうたこうしきminimal polynomial

mJ(t)=(t-2)3

である。固有値こゆうちは 2 だけだが、冪零成分べきれいせいぶんながさが 3 であるため、対角化たいかくかからとお構造こうぞうつ。

16演習えんしゅうリンク

data/exercise/math/linear-algebra/eigenvalues-diagonalization-and-extensions.exercise.n.md

15Calculation example: a 3 by 3 Jordan block

Let

J=(210021002)=2I+N,N=(010001000).

Then

N2=(001000000),N3=0.

Thus

(J-2I)3=0,(J-2I)20,

so the minimal polynomial最小多項式さいしょうたこうしき is

mJ(t)=(t-2)3.

The only eigenvalue固有値こゆうち is 2, but the nilpotent part has length 3, so the structure is far from diagonalizable.

16Exercise link

data/exercise/math/linear-algebra/eigenvalues-diagonalization-and-extensions.exercise.n.md

17見分みわかた:AM、GM、ブロック

固有値こゆうちeigenvalue λ について:

  • 代数的重複度だいすうてきちょうふくどalgebraic multiplicityは、λ対応たいおうするジョルダンブロックのおおきさの総和そうわである。
  • 幾何的重複度きかてきちょうふくどgeometric multiplicityは、λ対応たいおうするジョルダンブロックの個数こすうである。
  • 最小多項式さいしょうたこうしきminimal polynomial(t-λ)指数しすうは、λ対応たいおうする最大さいだいブロックサイズである。

したがって、AM と GM が一致いっちすることは、すべてのブロックがおおきさ 1 であること、つまり対角化可能たいかくかかのうであることを意味いみする。

18注意ちゅうい理論りろん数値計算すうちけいさんちが

ジョルダン標準形ひょうじゅんけい理論上りろんじょう分類ぶんるいには非常ひじょう強力きょうりょくである。しかし、固有値こゆうち近接きんせつしている行列ぎょうれつ摂動せつどうける行列ぎょうれつでは、ジョルダンブロックのおおきさは不安定ふあんてい変化へんかしうる。そのため、実際じっさい数値計算すうちけいさんではシュール分解ぶんかいや SVD がこのまれる。

data/lecture/math/linear-algebra/introduction-to-singular-value-decomposition.lecture.n.md

19最終形さいしゅうけい

[PARSE ERROR: Undefined("Command(\"boxed\")")]P-1AP=J
[PARSE ERROR: Undefined("Command(\"boxed\")")]Jk(λ)=λI+N,Nk=0
[PARSE ERROR: Undefined("Command(\"boxed\")")]diagonalizableallJordanblockshavesize1
[PARSE ERROR: Undefined("Command(\"boxed\")")](A-λI)vj=vj-1がジョルダン鎖を定める

20一言ひとことでいうと

  • ジョルダン標準形ひょうじゅんけいは、対角化たいかくかdiagonalizationできない行列ぎょうれつmatrixを、固有値こゆうちeigenvalue冪零成分べきれいせいぶん分解ぶんかいして記述きじゅつする標準形ひょうじゅんけいである。

21演習えんしゅうリンク

data/exercise/math/linear-algebra/eigenvalues-diagonalization-and-extensions.exercise.n.md

22関連かんれんリンク

data/lecture/math/linear-algebra/diagonalization-basics.lecture.n.md data/lecture/math/linear-algebra/minimal-polynomial-basics.lecture.n.md data/lecture/math/linear-algebra/eigenvalues-and-eigenvectors.lecture.n.md

17How to read AM, GM, and blocks

For an eigenvalue固有値こゆうち λ:

  • The algebraic multiplicity代数的重複度だいすうてきちょうふくど is the sum of the sizes of all Jordan blocks for λ.
  • The geometric multiplicity幾何的重複度きかてきちょうふくど is the number of Jordan blocks for λ.
  • The exponent of (t-λ) in the minimal polynomial最小多項式さいしょうたこうしき is the largest block size for λ.

Thus AM equals GM exactly when all blocks for that eigenvalue固有値こゆうち have size 1, meaning that the corresponding part is diagonalizable.

18Warning: theory versus numerical computation

Jordan normal formジョルダン標準形ひょうじゅんけい is powerful for theoretical classification. However, for matrices with close eigenvalues固有値こゆうち or small perturbations, Jordan block sizes can change unstably. Practical numerical computation often prefers Schur decomposition or SVD.

data/lecture/math/linear-algebra/introduction-to-singular-value-decomposition.lecture.n.md

19Final forms

[PARSE ERROR: Undefined("Command(\"boxed\")")]P-1AP=J
[PARSE ERROR: Undefined("Command(\"boxed\")")]Jk(λ)=λI+N,Nk=0
[PARSE ERROR: Undefined("Command(\"boxed\")")]diagonalizableallJordanblockshavesize1
[PARSE ERROR: Undefined("Command(\"boxed\")")](A-λI)vj=vj-1definesaJordanchain

20In one sentence

  • Jordan normal formジョルダン標準形ひょうじゅんけい describes a non-diagonalizable matrix行列ぎょうれつ by decomposing it into eigenvalue固有値こゆうち parts and nilpotent parts.

21Exercise link

data/exercise/math/linear-algebra/eigenvalues-diagonalization-and-extensions.exercise.n.md

22Related links

data/lecture/math/linear-algebra/diagonalization-basics.lecture.n.md data/lecture/math/linear-algebra/minimal-polynomial-basics.lecture.n.md data/lecture/math/linear-algebra/eigenvalues-and-eigenvectors.lecture.n.md
raw .n.md をコピー
loc をコピー (filepath:line ~ line)
copy share link
copy encoded share link
path をコピー
copy share link
copy encoded share link
copy share link
copy encoded share link
タブを全て閉じる