5

これから関数グラフアートを始めたい人へ

2731
0

はじめに

この記事では関数アートをしたことがない人向けです.
また,今回使う関数描画ソフトはdesmosであり,他のソフトではうまく表示できなかったり,使えない関数がある可能性があります.
この記事で特に明記されてない関数は全て,実数値によって定義され,実数値をとるような関数とします.
この記事で登場する右側という単語はx軸の正の方向を指します.

また,今回は曲線をつなげる場合と領域をつなげる場合を扱います.

関数アートを始める前に

今回はdesmosで関数アートをするのでdesmosのアカウントを作りましょう!
アカウントがあると関数アートのデータを保存することができるのでとても便利です.

曲線どうしを繋げたい!!

2つの曲線を繋げる方法として真っ先に思いつくものとしてこれだと思います.

x=aRで左側にy=f(x)
右側にy=g(x)を繋げたいとき
y={f(x)(x<a)g(x)(xa)

(desmosではこの表記ができないので,2つの式で表すことになります.)

たしかにこれならグラフを繋げることはできますが,x=aで傾きが急に変わったり,曲線が不連続になったりする場合がありますね.
それはちょっと不細工な気がします!!
曲線が不連続になる例!FORMULA[6][-772263522][0] のとき 曲線が不連続になる例a=0,f(x)=x,g(x)=cosx のとき

そう感じる場合は次のようにすると気持ちよく繋げられます.

x=aRで左側にy=f(x)
右側にy=g(x)を繋げたいとき
y=f(x)1+eb1(xa)+g(x)1+eb2(xa)(b1,b2>0)

なにやらややこしそうな見た目をしていますがx<aのとき11+eb1(xa)1に,11+eb2(xa)0に近づき,x>aのとき11+eb1(xa)0に,11+eb2(xa)1に近づくので

y=f(x)1+eb1(xa)+g(x)1+eb2(xa){f(x)(x<a)g(x)(x>a)
となることが分かります.
(ただし,f(x)g(x)が大きすぎず,b1,b2が小さすぎないとします.)
これで違和感なく繋がります.やった!
!FORMULA[25][157904164][0]
!FORMULA[26][-1700073574][0]のとき a=0,b1=b2=1,f(x)=x,
g(x)=cosxのとき

また,3つ以上の曲線を繋げたいときは以下のようになります.

  • x=a1の左側にy=f0(x)
  • x=ai1x=aiの間にy=fi(x)(i=1,2,,n)
  • x=anの右側にy=fn(x)
    となるようにグラフを繋げたいとき,
    (a1<a2<<an)
    y=f0(x)1+eb0(xa0)+i=1n1(fi(x)1+ebi(xai)fi(x)1+eci(xai))+fn(x)1+ecn(xa0)

(b0,b1,,bn1,c1,c2,,cn>0)

領域どうしを繋げたい!!

次は領域を繋げましょう.領域を繋げる方法として次の方法があります.

領域F:f(x,y)0と領域G:g(x,y)0において,
FGの領域はmin{f(x,y),g(x,y)}0
FGの領域はmax{f(x,y),g(x,y)}0
と表せます.

ここにあるmin{a,b}(a,bR)というのはabのうち大きくないほうの値をとり,max{a,b}(a,bR)というのはabのうち小さくないほうの値をとる関数です.

(ただし,desmosではmin(a,b)だったりmax(a,b)と入力します.)

FG について

(x,y)が領域F内にあるときf(x,y)0
(x,y)が領域G内にあるときg(x,y)0
を満たすので点(x,y)FGの少なくともどちらかにあるとき,f(x,y)g(x,y)少なくとも一方は0以下なので
min{f(x,y),g(x,y)}0
また,点(x,y)FGのどちらにもないとき,f(x,y)g(x,y)のどちらも0より大きいのでmin{f(x,y),g(x,y)}0を満たしません.

FG について

(x,y)FGのどちらにもあるとき,f(x,y)g(x,y)はどちらも0以下なので
max{f(x,y),g(x,y)}0
また,点(x,y)FGの少なくともどちらか一方にないとき,f(x,y)g(x,y)の少なくとも1つは0より大きいのでmax{f(x,y),g(x,y)}0を満たしません.

これらのことから示すことができました.

多分これさえ知っておけば大体の関数アートは描けると思います!!!!!!

!FORMULA[88][-1166097153][0] min{x2+y21,2|x|+y}0
!FORMULA[89][758509863][0] max{x2+y21,x|y|}0

たしかにこれで領域をつなげることができましたが,もっと緩やかに繋げることはできないでしょうか?
緩やかに繋げる方法として以下のものがあります.

領域F:f(x,y)0と領域G:g(x,y)0において,
FGを緩やかに繋げ,FGのような形になったものは
eaf(x,y)+ebg(x,y)1(aR+)
FGを緩やかに繋げ,FGのような形になったものは
eaf(x,y)+ebg(x,y)1(a,b>0)
と表せます.

(x,y)が領域F内にあるとき,
f(x,y)0なので,eaf(x,y)1となるのでeaf(x,y)+ebg(x,y)1(ebg(x,y)>0)
(x,y)が領域G内にあるときも同様に言えます.

また,点(x,y)が領域FGの少なくとも一方にないとき,
f(x,y)g(x,y)の少なくとも一方が0より大きいので,
eaf(x,y)ebg(x,y)の少なくとも一方が1より大きくなりますから,
その時点でeaf(x,y)+ebg(x,y)1を満たしません.

こういうのは実際にグラフを見てもらったほうが分かると思います.
!FORMULA[117][-1441646955][0] e(x2+y21)+e(xy)1

!FORMULA[118][332295444][0] e5(x2+y21)+e5(y2x2)1

練習

というわけで何か描いてみましょう!!

いきなり複雑なものを描くのは大変なので最初は簡単な図形や文字を描くのをおすすめします!
僕のおすすめはMathlogのアイコンです!その図形はminmaxをうまいこと使って完成でき,それほど複雑な図形じゃないのでおすすめします.
また,自分が作ったMathlogのアイコンの関数アートを ここ においときます.

おわり!!!!

この記事を読んで関数アートを始めてくれる人がいたらいいなぁって思ってます!!!!!

みんなも関数アートやろう!!!!
投稿日:202438
更新日:320
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。
バッチを贈って投稿者を応援しよう

バッチを贈ると投稿者に現金やAmazonのギフトカードが還元されます。

投稿者

よね
よね
7
2885

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中
  1. はじめに
  2. 関数アートを始める前に
  3. 曲線どうしを繋げたい!!
  4. 領域どうしを繋げたい!!
  5. 練習
  6. おわり!!!!