この記事では関数アートをしたことがない人向けです.
また,今回使う関数描画ソフトはdesmosであり,他のソフトではうまく表示できなかったり,使えない関数がある可能性があります.
この記事で特に明記されてない関数は全て,実数値によって定義され,実数値をとるような関数とします.
この記事で登場する右側という単語は$x$軸の正の方向を指します.
また,今回は曲線をつなげる場合と領域をつなげる場合を扱います.
今回はdesmosで関数アートをするのでdesmosのアカウントを作りましょう!
アカウントがあると関数アートのデータを保存することができるのでとても便利です.
2つの曲線を繋げる方法として真っ先に思いつくものとしてこれだと思います.
$x=a \in \mathbb{R} $で左側に$y=f(x)$,
右側に$y=g(x)$を繋げたいとき
$$ y=\begin{eqnarray}
\left\{
\begin{array}{l}
f(x) & (x \lt a)\\
g(x) & (x \geq a)
\end{array}
\right.
\end{eqnarray} $$
(desmosではこの表記ができないので,2つの式で表すことになります.)
たしかにこれならグラフを繋げることはできますが,$x=a$で傾きが急に変わったり,曲線が不連続になったりする場合がありますね.
それはちょっと不細工な気がします!!
曲線が不連続になる例$a=0,f(x)=x,g(x)= \cos x $ のとき
そう感じる場合は次のようにすると気持ちよく繋げられます.
$x=a \in \mathbb{R}$で左側に$y=f(x)$,
右側に$y=g(x)$を繋げたいとき
$$ y= \frac{f(x)}{1+e^{b_{1}(x-a)}}+\frac{g(x)}{1+e^{-b_{2}(x-a)}} \quad (b_{1},b_{2} >0 )$$
なにやらややこしそうな見た目をしていますが$x< a$のとき$\frac{1}{1+e^{b_{1}(x-a)}}$は$1$に,$\frac{1}{1+e^{-b_{2}(x-a)}}$は$0$に近づき,$x>a$のとき$\frac{1}{1+e^{b_{1}(x-a)}}$は$0$に,$\frac{1}{1+e^{-b_{2}(x-a)}}$は$1$に近づくので
$$y=\frac{f(x)}{1+e^{b_{1}(x-a)}}+\frac{g(x)}{1+e^{-b_{2}(x-a)}} \approx \begin{eqnarray}
\left\{
\begin{array}{l}
f(x) & (x< a)\\
g(x) & (x>a)
\end{array}
\right.
\end{eqnarray} $$
となることが分かります.
(ただし,$f(x)$や$g(x)$が大きすぎず,$b_{1},b_{2}$が小さすぎないとします.)
これで違和感なく繋がります.やった!
$a=0,b_{1}=b_{2}=1,f(x)=x,$
$g(x)=\cos x$のとき
また,3つ以上の曲線を繋げたいときは以下のようになります.
$$(b_{0},b_{1},\cdots,b_{n-1},c_{1},c_{2},\cdots,c_{n} >0 )$$
次は領域を繋げましょう.領域を繋げる方法として次の方法があります.
領域$F:f(x,y) \leq 0 $と領域$G:g(x,y) \leq 0 $において,
$F\cup G$の領域は$$ \min \lbrace f(x,y),g(x,y) \rbrace \leq 0$$
$F \cap G$の領域は$$ \max \lbrace f(x,y),g(x,y) \rbrace \leq 0$$
と表せます.
ここにある$\min \lbrace a,b\rbrace \quad (a,b \in \mathbb{R} )$というのは$a$と$b$のうち大きくないほうの値をとり,$\max \lbrace a,b\rbrace \quad (a,b \in \mathbb{R} )$というのは$a$と$b$のうち小さくないほうの値をとる関数です.
(ただし,desmosでは$\min (a,b)$だったり$\max (a,b)$と入力します.)
点$(x,y)$が領域$F$内にあるとき$f(x,y) \leq 0$
点$(x,y)$が領域$G$内にあるとき$g(x,y) \leq 0$
を満たすので点$(x,y)$が$F$か$G$の少なくともどちらかにあるとき,$f(x,y)$か$g(x,y)$少なくとも一方は$0$以下なので
$$ \min \lbrace f(x,y),g(x,y) \rbrace \leq 0$$
また,点$(x,y)$が$F$と$G$のどちらにもないとき,$f(x,y)$か$g(x,y)$のどちらも$0$より大きいので$ \min \lbrace f(x,y),g(x,y) \rbrace \leq 0$を満たしません.
点$(x,y)$が$F$と$G$のどちらにもあるとき,$f(x,y)$と$g(x,y)$はどちらも$0$以下なので
$$ \max \lbrace f(x,y),g(x,y) \rbrace \leq 0$$
また,点$(x,y)$が$F$と$G$の少なくともどちらか一方にないとき,$f(x,y)$か$g(x,y)$の少なくとも$1$つは$0$より大きいので$ \max \lbrace f(x,y),g(x,y) \rbrace \leq 0$を満たしません.
これらのことから示すことができました.
多分これさえ知っておけば大体の関数アートは描けると思います!!!!!!
$ \min \lbrace x^{2}+y^{2}-1,2 \left| x \right| +y \rbrace \leq 0$
$ \max \lbrace x^{2}+y^{2}-1,x-\left| y \right| \rbrace \leq 0$
たしかにこれで領域をつなげることができましたが,もっと緩やかに繋げることはできないでしょうか?
緩やかに繋げる方法として以下のものがあります.
領域$F:f(x,y) \leq 0 $と領域$G:g(x,y) \leq 0 $において,
$F$と$G$を緩やかに繋げ,$F\cup G$のような形になったものは
$$e^{-af(x,y)}+e^{-bg(x,y)} \geq 1 \quad (a \in \mathbb{R}^+)$$
$F$と$G$を緩やかに繋げ,$F\cap G$のような形になったものは
$$e^{af(x,y)}+e^{bg(x,y)} \leq 1 \quad (a , b> 0)$$
と表せます.
点$(x,y)$が領域$F$内にあるとき,
$f(x,y) \leq 0$なので,$e^{-af(x,y)}\geq 1$となるので$e^{-af(x,y)}+e^{-bg(x,y)} \geq 1 \quad (\because e^{-bg(x,y)} \gt 0 )$
点$(x,y)$が領域$G$内にあるときも同様に言えます.
また,点$(x,y)$が領域$F$と$G$の少なくとも一方にないとき,
$f(x,y)$と$g(x,y)$の少なくとも一方が$0$より大きいので,
$e^{af(x,y)}$か$e^{bg(x,y)}$の少なくとも一方が$1$より大きくなりますから,
その時点で$e^{af(x,y)}+e^{bg(x,y)} \leq 1$を満たしません.
こういうのは実際にグラフを見てもらったほうが分かると思います.
$e^{-(x^2+y^2-1)}+e^{-(x-y)} \geq 1$
$e^{5(x^{2}+y^{2}-1)}+e^{5(y-2x^{2})} \leq 1$
というわけで何か描いてみましょう!!
いきなり複雑なものを描くのは大変なので最初は簡単な図形や文字を描くのをおすすめします!
僕のおすすめは以前
contrailさんに関数アートを教えたときにMathlogのアイコンを描くことになったのですが
,その図形は$\min $や$\max$をうまいこと使って完成でき,それほど複雑な図形じゃないのでとてもおすすめします.
また,自分が作ったMathlogのアイコンの関数アートを
ここ
においときます.
この記事を読んで関数アートを始めてくれる人がいたらいいなぁって思ってます!!!!!