はじめに
数式お絵描きとは「Desmos」「GeoGebra」「GRAPES」などといった数学ソフトウェアに、数式を並べることで曲線や領域を表現するお絵かきのことです。数式の中にパラメータを用意すれば、グラフが変化する作品も作れます。
例. メタモンのへんしん by コロちゃんぬ
www.desmos.com
メタモンの作り方はコチラをどうぞ:
corollary2525.hatenablog.com
数式お絵描きで表現したい曲線は区分的になめらかなものがほとんどなので、描きたい曲線を適当に分割し、目分量で近似した数式を1つ1つ書けばなんでも描けます。
例. 直線と放物線で作成した Deadpool by Yousef Hassenさん
www.desmos.com
ただ、分割する作戦で数式お絵かきをすると、複雑であればあるほど数式を多く並べる必要があり、数式の管理が大変です。
突然ですが、次のような曲線を描くことを考えましょう:
はい、つながった3つの円ですね。純然たる3つの円です。
表現方法は色々ありますが、例えば
のように、変数の条件を課した円の方程式を3つ並べれば絵を描くことができます。
これでもいいのですが…式が増えると動作が重くなる原因になりますし、あとで円の位置を微調整したいと思ったとき、変数の条件もいじる必要があるのが面倒くさいんですよね。
できることなら1本の式で表現した方が管理しやすいですし、その方が“数式映え”しますよね。
そんなときに便利なのがとです!これらを上手く使えば、2つ以上の曲線に沿うような道を「お手軽に」「一本の式」にまとめることができ、煩わしい変数の範囲指定も不要になります!
それでは、数式お絵かきを始めます!
minの使い方
まずは下準備として、 を使ってこの曲線を1本の式で表現します。
円を2つ用意します。
そして
\begin{align*}
\color{red}{x^2+y^2-1}=0\\
\color{blue}{(x-0.95)^2+(y-0.95)^2-0.55^2}=0
\end{align*}のように「=0」の形(陰関数表示)にし、左辺のをとって「=0」にすると…!?
所望の曲線が得られてしまいます!簡単でしょう?
なぜこれでよいのか、仕組みを解説しましょう。
minとmaxの秘密
実数に対して、
- はとのうち、小さい方を表します。
- はとのうち、大きい方を表します。
\begin{align*}
\min(a, b) & := \begin{cases}
a & \text{if}\; a\le b\\
b & \text{if}\; a>b
\end{cases},\\
\max(a, b) & := \begin{cases}
a & \text{if}\; a\ge b\\
b & \text{if}\; a < b
\end{cases}
\end{align*}ですね。あるいは絶対値を用いて,と表すこともできます。また、のように中括弧{}を用いる記法もよく見るのですが、本記事ではふつうの括弧()を使うことにします。
例えば
\begin{equation*}
\min(2,3)=2,\quad\max(3,4)=4
\end{equation*}といった感じです。
について
それでは、,を実数として、次のような式を考えてみましょう:
\begin{equation*}
\min(a,b)=0.
\end{equation*}この式を言葉で表すなら、
ですね。ということは、とのどちらかはちょうど0のはずです。また、小さい方が0なので、そうでない方は0以上でなければいけません。ということで、次のように言いかえることができます:
\begin{equation*}
\min(a,b)=0\iff
\begin{cases}
a=0 \;\text{かつ} \; b\ge0,\\
b=0 \;\text{かつ} \;a\ge0.
\end{cases}\end{equation*}
という式は、上記の場合分けを1つの式にまとめた式だったのです。
これを応用して、aとbに円の方程式
\begin{align*}
\color{red}{x^2+y^2-1}=0\\
\color{blue}{(x-0.95)^2+(y-0.95)^2-0.55^2}=0
\end{align*}の左辺を代入します。
\begin{equation*}
\min(\color{red}{x^2+y^2-1}, \color{blue}{(x-0.95)^2+(y-0.95)^2-0.55^2})=0
\end{equation*}
\begin{equation*}
\begin{cases}
\color{red}{x^2+y^2-1}=0 \quad\text{かつ}\quad \color{blue}{(x-0.95)^2+(y-0.95)^2-0.55^2}\ge0,\\
\color{blue}{(x-0.95)^2+(y-0.95)^2-0.55^2}=0 \quad\text{かつ}\quad \color{red}{x^2+y^2-1}\ge0
\end{cases}
\end{equation*}
- 赤い円の円周上であり、青い円の外部にある点の集まりと
- 青い円の円周上であり、赤い円の外部にある点の集まり
を表すので、図示するとこうなります。
ハハッ 変数の範囲指定も不要だし、お手軽だネッ!
について
次はです。と同様に、 は次のように言いかえることができます:
\begin{equation*}
\max(a,b)=0\iff
\begin{cases}
a=0 \;\text{かつ} \; b\le0,\\
b=0 \;\text{かつ} \; a\le0.
\end{cases}
\end{equation*}
では、aとbに円の方程式
\begin{align*}
\color{red}{x^2+y^2-1}=0\\
\color{blue}{(x-0.95)^2+(y-0.95)^2-0.55^2}=0
\end{align*}の左辺を代入してみましょう。
\begin{equation*}
\max(\color{red}{x^2+y^2-1}, \color{blue}{(x-0.95)^2+(y-0.95)^2-0.55^2})=0
\end{equation*}
これはどんな曲線を表すでしょう?
感づいている方も多いと思いますが、こうなります!
なるほど、数式お絵かきではminは和集合、maxは共通部分みたいな役割を果たすんですね!?
………私も最初そう考えたのですが、逆にminは共通部分、maxは和集合をとる操作と考えた方が汎用性が高いと個人的に思います。
逆じゃん!どういうこと!?まあまあ、詳しくは記事の後半で。
minとmaxの役割には数学的な正しさがあるわけではなく、あくまで個人の解釈によるものです。詳細は記事の後半でも追記しますが、minとmaxは符号の付け方によって互いに逆の役割を持たせることができます。ということで、円の方程式の場合に対応させて覚えたければ「minは和集合、maxは共通部分」と考えても問題ありません。実際、関数アートをしている方の多くは私の考え方と逆の立場のような気がします。
数式お絵かきチキンレース
それでは、minとmaxを駆使して絵を完成させていきましょう。
Step1 輪郭
“3つの円の外側”を表したければ,3つの円の方程式を用意すれば作れます。
これはちょっとしたテクニックですが、軸に関して対称の曲線を描きたい場合、をすべてに置き換えればよいので、式を短くできます。
もうちょっとこだわるとこうですかね。
ここで、で,は楕円の方程式をちょっと回転させたものを左右対称に描いた部分、残りは2次関数であごを表現しています(2次関数は無限に伸びていくので、での高さで打ち止めにしています)。
Step2 長方形
次は都合により(?)ここで長方形を作ろうと思います。まずは正方形から。
あ、ちなみにこの正方形をとに関する式で表したことありますか?
(このあとすぐ想定解が出てきますので、一度自分で考えたい方はスクロールを止めてください)
想定解としては
\begin{equation*}
|x+y|+|x-y|=2
\end{equation*}がありますが、による表現もあります。
これは距離(チェビシェフ距離)と呼ばれる距離関数による“単位円”*1を表しているので、楕円の方程式と同じ要領で長方形を作成できます!
今回の場合、長軸の長さが,短軸の長さがの楕円を軸方向にだけ平行移動したような感覚で長方形を作り,不等式で領域を表現しています。
これで安心して絵が描けますね(?)
この調子でどんどんお絵かきしていきましょう!
Step3 顔(生え際?)
式が長くなってきたので独自に関数を定義しました。は口元を表すななめの楕円、は目元を表す縦長の楕円です。ちなみにはマウスのmです。口の方のマウスね。
Step4 耳の領域
赤の部分、青の部分はそれぞれStep1、Step3で作ったものです。さりげなく青の式に「マイナス」が付いていますが、これは集合演算でいうところの補集合をとる操作になります(後述)。
Step5 口
シンプルに2次関数で仕上げてみました。
Step6 舌
は舌を表す楕円、もう一方は下唇を表しています。
Step7 あごのしわ
完成まであと少しです!
Step8 鼻
鼻および鼻のてかりもすべて楕円で作ってみました。
Step9 高い鼻を表現
シンプル イズ ベスト
Step10 目
楕円の式を少し弄って、4乗にしている箇所がこだわりポイント。
仕上げ
ということで、10本の式で絵が完成しました!
目隠しがなければ9本でいけますネ!
仕上げに背景を作ってエレクトリカルにするとよいでしょう。
さりげなく関数にはパラメータを仕込んでいて*2、これを動かすとちょっと賑やかになります。
毒を食らわば皿マデ!ハハッ!
minは共通部分、maxは和集合
お絵かきはここまでにして、とについてもう少し掘り下げていこうと思います。
とには次のような関係があります:
\begin{align*}
-\min(a,b)&=\max(-a,-b)\\
-\max(a,b)&=\min(-a,-b)\\
\min(a,\max(b,c))&=\max(\min(a,b),\min(a,c))\\
\max(a,\min(b,c))&=\min(\max(a,b),\max(a,c))
\end{align*}
これらの等式、何かに似ていませんか?
そうです。「ド・モルガンの法則」と「分配法則」ですね。
\begin{align*}
-\min(a,b)&=\max(-a,-b),\\
-\max(a,b)&=\min(-a,-b)
\end{align*}は
\begin{align*}
\overline{A\cap B}=\overline{A}\cup\overline{B},\\
\overline{A\cup B}=\overline{A}\cap\overline{B}
\end{align*}にそっくりですよね。分配法則は若干見えにくいですが、仮に
\begin{align*}
\min(a,b)&=a\;\text{m}\; b,\\
\max(a,b)&=a\;\text{M}\; b
\end{align*}と書き直すことにすれば、
\begin{align*}
\min(a,\max(b,c))=\max(\min(a,b),\min(a,c)),\\
\max(a,\min(b,c))=\min(\max(a,b),\max(a,c))
\end{align*}
\begin{align*}
a\;\text{m}\; (b\;\text{M}\; c)=(a\;\text{m}\; b)\;\text{M}\; (a\;\text{m}\; c),\\
a\;\text{M}\; (b\;\text{m}\; c)=(a\;\text{M}\; b)\;\text{m}\; (a\;\text{M}\; c)
\end{align*}となるので、分配法則
\begin{align*}
A\cap (B\cup C)=(A\cap B)\cup(A\cap C),\\
A\cup (B\cap C)=(A\cup B)\cap(A\cup C)
\end{align*}っぽく見えると思います。
あとは、やをとる操作は共通部分「」と和集合「」どちらに対応するのかについてです。簡単に説明すると、任意の実数,に対して
\begin{equation*}
\min(a, b)\le\max(a, b)
\end{equation*}であり、集合の任意の部分集合,に対して
\begin{equation*}
A\cap B\subset A\cup B
\end{equation*}であるから、minは共通部分、maxは和集合と対応すると考えることができます。
しかし、minとmaxの秘密の節で紹介した図では、が和集合、が共通部分のように見えました。これはなぜでしょうか?
円ではなくて放物線で考えてみます。
と を並べてみました。
このとき、 はこのようになります。
あれ? “共通部分っぽい操作” に見えるかも?
この現象は次のように考えると説明がつきます。
放物線より上側の領域 (赤) と (青) を図示してみました。
この2つの領域の共通部分(紫)は を表しており、「」のときは紫の領域の境界線上になります。
円の場合に戻りましょう。不等号の向きに注意して、円の外部の領域
\begin{equation*}
x^2+y^2-1\color{red}{\ge} 0,\quad(x-1)^2+y^2-1\color{red}{\ge} 0
\end{equation*}を考えます。
この2つの領域の共通部分はここですね?
円の場合で考えたとき、和集合っぽい操作に見えた原因はこれです。「2つの円の内部の和集合」をとっているのではなく、「2つの円の外部の共通部分」をとっていたのでした!やを使って数式お絵かきをする際はご注意ください。
また、 の場合は「2つの円の外部の和集合」なので次の緑の領域を表します。
さらに、 や の中にマイナスをかけると「領域が反転」するので、より複雑な領域を表示したいときに便利です。
実際に数式を表示させて納得するもいいですし、証明が気になる人は の同値な言い換えに戻って証明してもよいでしょう。
私とは逆の考え方「minは和集合、maxは共通部分」をする場合は、不等号の向きを逆にして , で考えてください。min、maxにおけるド・モルガンの法則により
\begin{align*}
\min(f, g)\le0&\iff\max(-f, -g)\ge0,\\
\max(f, g)\le0&\iff\min(-f, -g)\ge0
\end{align*}となるため、役割を反転させることができます。関数アート(数式お絵かき)で使うときは不等号と符号に気を付けてください。ちなみに、欲しい図形が複雑になってくると考えるのが面倒になるので、欲しい図形が得られるまでmax・minの選択とマイナスの有無を選び続けるのもアリだと思います。
まとめ
数式お絵かきにおける と の使い勝手、いかがでしたでしょうか。皆様の今後の数式お絵かきの参考になれば幸いです。数式お絵かき初心者の方も、まずは「3つの円」から始めてみてはいかがでしょうか?DesmosはWebで気軽に遊べるのでオススメです。
www.desmos.com
それでは、よき数式お絵かきライフを!
thank Q for rEaDing.φ(・▽・ )
おまけ
最後まで読んでいただきありがとうございます。読者プレゼントとして、本日の作品のリンクを張っておきます。
minとmax
お絵かきの解説中に出てきた謎の関数の正体が分かるかもしれません。