Mr. Will

Mr. Will

github
mastodon

「厳密さ」の混乱 - 数学

数学愛好者は常に数学の厳密さを称賛しますが、実際には、数学の厳密さは数学そのものではなく、それを使用する人に依存することが多いです。数学の特定の概念を学んでいない場合、関連する表現に初めて出会ったときには理解するのが難しいことがよくあります。このような現象は、数学には統一された定義や文法がないことを証明しています。これらはすべて、特定の概念を作成した数学者が自分の好みに従って定義したものです。次に、いくつかの例を挙げて、この混乱を体験してもらいます。

ルールのない命名#

同じ関数でも、三角関数は 3 文字で表されることがありますが、他の多くの関数ではできません。書くときに、複数の文字を持つ関数や他の記号は曖昧さを引き起こす可能性がありますが、数学ではこれを「慣例」と解釈します。

ほとんどの人は、手書きでサンセリフ体の文字を直接書くことはできません。書くときに、「sin\sin」と「sinsin」の違いはありません。この場合、sin\sinが定義されていない場合、それは完全にsins \cdot i \cdot nと見なすことができます。もちろん、si\rm{si}in\rm{in}などの関数を定義することもできますので、sin\sinsin\rm{si} \cdot \mathcal{n}ともsins \cdot \rm{in}ともなります。

上記の表現は少し厳密ではないかもしれませんが、数学には厳密な型がないため、sin\sinsin(x)\sin(x)sinx\sin xsi\rm{si}si(x)\rm{si} (\mathcal{x})in\rm{in}in(x)\rm{in} (\mathcal{x})などはすべて関数を表すことができますが、他の何かかもしれません。ただし、これは構文のハイライトで構文を書くことと何が違うのですか?ペンには色、太さ、ペン先の違いがありますが、それならば色、太さ、ペン先の構文を開発することもできるのではないでしょうか?変わり字体は数学者が発明したのでしょうか?聞かないで、聞いたら「慣例」と言います。

また、sin\sinが正弦であり、cos\cosが余弦であるなら、tan\tanは正接、cot\cotは余接としても非常に合理的に見えます。すべてが整然としていると感じるとき、あなたの平和を乱す非常に不快な関数のペアが現れます -sec\seccsc\csc。接頭辞「co\rm{co}」を追加して末尾の 2 文字を削除すると、名前が重複するため、新しい名前を適当に選ぶことができます。

不明瞭な文法#

数学者は文法を作り出すのが好きですが、彼らは美しい文法や記号を思いつくことができないようですので、同じ記号が似たような場所に置かれる場合、その意味は文脈から推測する必要があります。以下に例を挙げます:

f(x)(m+1)f(x)(m + 1)

ffの定義を知らない場合、これが関数であることはわかりますが、その戻り値の型はわかりません。しかし、数学では、関数が関数を返すことも許されているようです。例えば、次のように:

f(x)=g(x)f(x) = g(x)

見た目では戻り値の型とは関係がないように見えますが、数学は<variableName>(<parameter>)\texttt{<variableName>}(\texttt{<parameter>})の意味を明確に示していませんので、上記のf(x)f(x)は関数の戻り値として解釈することも関数として解釈することもできます。したがって、次のようになります:

f(x)(m+1)=(f(x))(m+1)=g(m+1)f(x)(m + 1) = (f(x))(m + 1) = g(m + 1)

しかし、これは間違った理解です。実際の式は単に乗算演算子を省略したものであり、g(x)g(x)とは関係ありません:

f(x)(m+1)=f(x)(m+1)f(x)(m + 1) = f(x) \cdot (m + 1)

この例は、数学者の省略の悪い習慣だけでなく、数学の中で同じ記号、同じ文法が複数の意味を持つことを示しています。省略が悪いというわけではありませんが、曖昧な省略は省略の欠点を十分に示しています。

高度に再利用可能で多義的な記号#

数列を学んだ人ならば、{an}\{ a_n \}は数列を表すことができることを知っていますが、数列を学んでいない場合、これは集合のように見えるでしょう。

次に、次の式を見てみましょう:

x(0,22)x \in \left( 0, 2\sqrt{2} \right)

この場合、(0,22)\left( 0, 2\sqrt{2} \right)は区間を表すことが明確ですが、次のように書いた場合:

x=(0,22)\textbf{x} = \left( 0, 2\sqrt{2} \right)

ここで、x\textbf{x}はベクトルです。幸いにも教科書では「x\vec{x}」という斜体と太字の「x」を区別するようにしています。

実際、私が「\in」と「==」を指定しなかった場合、あなたは「(0,22)\left( 0, 2\sqrt{2} \right)」の意味を理解することはできません。このような再利用はあまりにも軽率ではありませんか?

さらに理解しづらいのは、多くの人々が括弧を入れ子にするときに、異なる括弧を交互に使用することを推奨していることです:

1+[2+(3+4+[5+(6+7)])]\\{1 + [2 + (3 + \\{ 4 + [5 + (6 + 7)]\\})]\\}

これは括弧たちにとって本当に火をつけるものです。問題は、これを行うと見た目が悪くなり、書くたびに外側の括弧を変更する必要があることです。私はこのような式を書くためにネストのレベルを事前に計算する必要がありますか?少なくとも上記のように対応する括弧が少なくとも少し役に立つ場合、次のようにするのは本当にばかげています:

f[g(x)]=h{e+[12+i(x)]2}f\left[ g(x) \right] = h\left\{e + \left[ \frac{1}{2} + i(x) \right]^2 \right\}

関数の引数を識別するための括弧も上記のルールに従うことができることを示しています。これは、関数には独自の文法がないことを示しています。上記の例のffgghhiiは関数のように見えますが、それらが関数であると判断する理由は、見た目がそうであるからです。このような表現方法は、省略乗算のf[g(x)]f \cdot [g \cdot (x)]とは何の違いもありません。

制約の多い集合と区間#

型は厳密さの基礎ですが、数学はこの点に従いません。{1,π,e}\left\{ 1, \pi, e \right\}は集合を表しますが、点集合という言葉を聞いたことがあるはずです。いくつかの点を集合に入れることで、グラフで表現できる集合を作ることができます。例えば、{(1,1),(2,3),(4,9)}\left\{ (1, 1), (2, 3), (4, 9) \right\}です。また、[1,4]\left[1, 4\right]は区間です。それでは、これらを組み合わせてみましょう:

{1,π,e}[1,4]\left\{ 1, \pi, e \right\} \cup \left[1, 4\right]

上記の演算は合法です。区間と数の集合は合併することができることを示していますが、次のようにすると:

{1,π,e}[1,4]{(1,1),(2,3),(4,9)}\left\{ 1, \pi, e \right\} \cup \left[1, 4\right] \cup \left\{ (1, 1), (2, 3), (4, 9) \right\}

これは合法ではありません。これは、合併する集合の要素の型が同じでなければならないことを示していますが、ある区間が点で構成される集合と同じ型であることがわかります。この時点で、あなたは数学を弁護するかもしれません。区間と数の集合は元々同じ型であると言えるかもしれません。では、なぜ{1}\{ 1 \}は合法であり、[1,1][1, 1]は合法ではないのでしょうか?

集合は、配列でも数列でもないものです。集合には同じ要素が存在しないことを許容し、配列は許容しますが、これは許容する必要がないという理由で、{1}\left\{ 1 \right\}{1,1,1}\left\{ 1, 1, 1 \right\}を同等と見なすことができます。暗黙の型変換がどこにでもあるのなら、なぜ同じ要素を暗黙的に無視することはできないのでしょうか?暗黙の利点を十分に発揮し、欠点を避けることができました。そして、数列を学ぶと、数列はまさに配列の構築関数であり、本当に配列のようなものはベクトルです。

暗黙の型変換#

代数式を表すためにssを定義することができます:

s=3x2+6s = 3x^2 + 6

この場合、私はssを式の型と見なすべきだと思いますが、括弧を追加すると、それは関数になります:

s(x)=3x2+6s(x) = 3x^2 + 6

したがって、ssは暗黙的に関数に変換されます。次に、ssに「'」を追加すると、それは関数ssの導関数になります:

s(x)=6xs'(x) = 6x

したがって、導関数ss'も式と見なすことができるはずです。したがって、私たちは一周回って、式の型に導関数を持つことを証明しました。したがって、式にも導関数があります。

適用範囲が明確でない演算#

関数の戻り値に対して二乗演算を行うことができます:

(sinθ)2(\sin \theta)^2

そして、この表現は次のようにも書くことができます:

sin2θ\sin^2 \theta

このような省略形は、関数に対して二乗演算を行っていることを明示しており、その戻り値ではありません。このような構文が本当に合法である場合、次のようにもできるはずです:

(sinθ)12=sin12θ(\sin \theta)^{\frac{1}{2}} = \sin^{\frac{1}{2}} \theta

理論的には、これは平方根の形式で書くこともできます:

sinθ\sqrt{\sin} \theta

しかし、上記の表現は少なくとも私は見たことがありません。通常は次のように表されます:

sinθ\sqrt{\sin \theta}

したがって、指数を関数名の上付き文字に書く形式は、指数が整数であり、>1\gt 1である場合に限られます。

それ以外の場合、関数の指数が1-1の場合、それは元の関数の逆関数になります。例えば、sin1\sin^{-1}arcsin\arcsinを意味し、1sin\frac{1}{\sin}ではありません。指数が00または11の場合の意味は明確に定義されていません。

結論 - 厳密な表現と厳密な思考の両方が重要です#

思考の美学を追求する学問において、なぜこんなにも混乱した表現が構築されるのでしょうか?ここで、私はプログラミング言語に触れなければなりません。数学の表現に比べて、プログラミング言語の表現ははるかに厳密です。主流の言語は通常、統一された規格があり、表現と命名に厳格な規則がありますが、数学にはありません。若いプログラミング言語には重い歴史の負担がないため、以前の言語で解決できなかった問題を解決するために新しい文法を構築することができます。しかし、数学言語は歴史の中で形成されており、その問題を容易に解決することはできません。さらに、数学言語にはバージョンシステムがないため、更新や改訂の概念もありません。

数学言語の深刻な問題は解決策を待っていますが、どこから手を付ければよいのかわかりません。その代わりに、私たち一人一人が自分自身に厳格さを求めることから始めましょう。今から、自分の言語を規範化し、自分の表現を改善することで、少なくとも自分の作成物がこの混乱から抜け出すことができるでしょう。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。