Twitter

Twitterで数学に関する話題を発信しています。本家のサイトはログインしなければ閲覧できない仕様になってしまったので,当サイトに移して誰でも見られるようにしました。(2023.8.1)

浜田昌宏 / 浜田塾@hamadajuku

「αに-αを代入する」「nにn+1を代入する」のように,代入先と同じ文字を含む式を代入することがあります。このような場合,教科書は「代入する」ではなく「置き換える」と書いています。

浜田昌宏 / 浜田塾@hamadajuku

教科書は,同じ値のものに置き換える場合にしか「代入」と言わないようです。「x=3を代入」「t=a+bを代入」のように等式で表せる場合は「代入」ですが,「α=-α」や「n=n+1」は等式にするとおかしいので,「代入」ではなく「置き換え」と書いています。

浜田昌宏 / 浜田塾@hamadajuku

ただ,これは教材として表現を統一するという出版レベルの話ですから,受験生は気にせず「nにn+1を代入」と言っても構わないでしょう。
ただし,これを「n=n+1を代入」のように等式で書くのはおかしいので避けてください。

浜田昌宏 / 浜田塾@hamadajuku

ちなみにプログラミング言語では,等価と代入に同じ「=」ではなく,別々の表現をとっている場合が多いです。

浜田昌宏 / 浜田塾@hamadajuku

3項間漸化式 aₙ₊₂+paₙ₊₁+qaₙ=0 について,特性方程式 t²+pt+q=0 の解が虚数になる問題はあまり見かけませんが,実数解の場合と全く同じ手続きで解けます。

浜田昌宏 / 浜田塾@hamadajuku

例えば,a₁=1,a₂=1,aₙ₊₂+aₙ₊₁+2aₙ=0 の場合,特性方程式 t²+t+2=0 の解は,
α=(-1+√7i)/2
β=(-1-√7i)/2
これを使って一般項を求めると(求め方はいつも通り)
aₙ={(1-β)αⁿ⁻¹-(1-α)βⁿ⁻¹} / (α-β)
すべての項は整数なのに,一般項は虚数を使った表現になるのが面白いです。

浜田昌宏 / 浜田塾@hamadajuku

Maximaで確かめるためのスクリプトです。
a1:1$
a2:1$
kai:solve(t^2+t+2=0)$
p:rhs(kai[1])$
q:rhs(kai[2])$
define(
    a(n),
    ((a2-q*a1)*p^(n-1)-(a2-p*a1)*q^(n-1))
    /(p-q)
);
for i:1 thru 6 do (
    print("a",i,"=",ratsimp(a(i)))
)$

浜田昌宏 / 浜田塾@hamadajuku

limは基本的には極限値を返しますが,無限大に発散する場合にはlim𝑓(𝑥)=∞という書き方が認められています。認められた以上は正しいのですが,本来あまり行儀の良い書き方ではありません。

浜田昌宏 / 浜田塾@hamadajuku

limにとって∞や-∞は戻り値ではなく,JavaやC#で言うところの "例外" のようなものと考えられます。lim𝑓(𝑥)と書いてもコンパイルエラーにはなりませんが,参照すると戻り値が決定できずに例外が発生し,制御は例外処理に移ると考えるのが妥当でしょう。

浜田昌宏 / 浜田塾@hamadajuku

そういう意味では「lim𝑓(𝑥)は∞に発散する」くらいに書くのが正しいと思いますが,これを「lim𝑓(𝑥)=∞」と書くことが認められています。相等関係として扱うわけではないのに「=」を使うのは違和感があります。

浜田昌宏 / 浜田塾@hamadajuku

でもわざわざ「lim𝑓(𝑥)は∞に発散する」と書かされるのは面倒なので,ありがたく使います。

浜田昌宏 / 浜田塾@hamadajuku

一方で,極限がない場合のlimの扱いは不明確です。あくまで学校数学の話ですが,「lim𝑓(𝑥)は存在しない」と書いている教科書(e.g.啓林館)もあれば,lim𝑓(𝑥)と書くことを避けて「𝑥→𝑎のとき𝑓(𝑥)の極限はない」と書いている教科書(e.g.数研出版)もあります。

浜田昌宏 / 浜田塾@hamadajuku

ところが,振動する数列に関しては,調べた限りどの教科書も「lim𝑎ₙは振動する」とは書かず,「{𝑎ₙ}は振動する」と書いています。どうやらこの場合のlimは実行時の例外ではなくコンパイルエラーとみなされるようです。これはちょっとstrictすぎないかなと思います。

浜田昌宏 / 浜田塾@hamadajuku

あくまで出版物のルールです。受験生はあまり気にしなくていいでしょう。

浜田昌宏 / 浜田塾@hamadajuku

式には再帰性があり,型さえ合っていれば必ず入れ子にできます。

浜田昌宏 / 浜田塾@hamadajuku

「A={1,2,3} のとき,1∈A と書くのはいいとして,1∈{1,2,3} と書いてもいいのか?」という質問を受けたことがあります。もちろんいいです。確かに教科書では見かけませんが,それは書けないということではありません。

浜田昌宏 / 浜田塾@hamadajuku

共通テストの試行調査で,{1}⊂A と書かせる記述問題が出たことがありました。「B⊂Aは分かるが,{1}⊂A と書いてよいのか分からなかった」という人がいました。これも確かに教科書では見かけません。

浜田昌宏 / 浜田塾@hamadajuku

{1}⊂A という表記を見たことがなくても,B⊂A と B={1} という2つの式表現を認めるのであれば,{1}⊂A も当然認められることになります。

浜田昌宏 / 浜田塾@hamadajuku

ベクトルの内積についても言えます。ベクトルa,bの内積を a∙b と書くことと,そのベクトルを a=(1,2),b=(3,4) と表記できることの両方を認めるなら,当然その内積を (1,2)∙(3,4) とも書けることになります。

浜田昌宏 / 浜田塾@hamadajuku

これも,教科書に (1,2)∙(3,4) という表記はありませんが,そうは書けないという意味ではありません。

浜田昌宏 / 浜田塾@hamadajuku

以前に,集合やベクトルと同じように関数にもリテラル表記があってもいいのでは?という話をしたことがあります。例えば f(x)=2x の f だけを表現するのに,f={x↦2x} と書く話です。

浜田昌宏 / 浜田塾@hamadajuku

これも,f(5)=10 と f={x↦2x} の両方を認めるのであれば,必ず {x↦2x}(5)=10 と書けることになります。わざわざ「書ける」と言われなくても書けます。

浜田昌宏 / 浜田塾@hamadajuku

学校数学では,座標に相等関係も演算も定義されていません。そのため座標を代数的に扱うことはできず,リテラルとして表記する以外に何もできないという窮屈なことになっています。

浜田昌宏 / 浜田塾@hamadajuku

例えば,(1,2)+(3,4)=(4,6)や,(4,6)/2=(2,3)とは書けません。ベクトルと考えれば問題ないのですが,座標である限りはダメということになっています。

浜田昌宏 / 浜田塾@hamadajuku

座標を学習するのが中1,ベクトルを学習するのが高校の数学B(選択)と,カリキュラム上のギャップが大きいこともあり,学校数学では最後まで座標を代数的に扱うことができません。

浜田昌宏 / 浜田塾@hamadajuku

中学生にベクトルが無理なのは仕方ないとしても,順序対であれば中2の連立方程式で教えるので,座標にも順序対としての相等関係くらいは導入すればいいのにと思うことはあります。

浜田昌宏 / 浜田塾@hamadajuku

そうすると,座標を文字へ代入すること,例えばA=(1,2)という表記を認めることになりますが,A(1,2)だとAは点の名前だったのが,A=(1,2)だとAは座標そのものになり,その違いを意識させる必要はあるのかという疑問が起こります。

浜田昌宏 / 浜田塾@hamadajuku

ただ,△ABCや∠AやABがそうであるように,ある表現が図形を指すこともあれば,そのプロパティ(面積,角度,長さ)を指すこともあるという運用をすでにやっているので,座標もそうすればいいだろうと思います。

浜田昌宏 / 浜田塾@hamadajuku

オブジェクトとしての表記がそのプロパティも同時に表すというのはいい加減ですが,VBのdefault propertyと同じで,初学者にとっては助かる面があります。

浜田昌宏 / 浜田塾@hamadajuku

出版物では点の名前は「𝖠」のようにローマン体で表します。それが座標を表して相等関係をもつことになれば,「𝐴」のようにイタリック体にする必要があるのでは?という問題が起こります。どうでもいいと言われそうですが,これが一番悩むところかもしれません。

浜田昌宏 / 浜田塾@hamadajuku

本当は放物線 {(x,y) | y=x²} とか領域 {(x,y) | x²+y²<1} のように書くべきなのでしょうが,それは面倒なので,y=x² や x²+y²<1 だけ書いても図形を表すことになっています。

浜田昌宏 / 浜田塾@hamadajuku

集合ならば,例えば曲線C上の点を (1,1)∈C のように表現してよいことになります。しかし,学校数学では「曲線C」と書いたときのCは集合ではなく単なる曲線の名前という扱いになるので,残念ながらこのような式を書くことはできません。

浜田昌宏 / 浜田塾@hamadajuku

どうしても集合として扱いたい場合は,「C: y=x²」のような習慣的な表記に頼らず,「C={(x,y) | y=x²}」のように集合であることを明示すればよいと思います。