0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Eml関数で様々な初等関数を表したい。

0
Posted at

はじめに

$$ Eml(x, y) = exp(x) - ln(y) $$
という関数があります。これは、$exp(x)$や、$sin(x)$、$e$、そして$\pi$などいろいろな関数や定数を表すことができます。

 さて、実際に関数を作ってみたいわけですが、論文にはいくつかの関数の例はあるものの、示されていない関数ももちろんあるわけです。

 eml関数を色々いじって、いろいろな関数を作ってみたので、見ていきましょう。
 ただ、探索して最短のものを求めたわけじゃないので、式は肥大化してしまいました。

どうやって求めたか

もとめたプログラムはここに書いています。
順番に関数をemlで定義して、実際の数値でテストしました。
求めた関数であっていたようならそれを展開した結果を求めます。

具体的な関数

e
Eml(1, 1)
exp(x)
Eml(x, 1)
ln(x)
Eml(1, Eml(Eml(1, 1), x))
zero
Eml(1, Eml(Eml(1, 1), 1))
minus(x, y) = x - y
Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(x, 1))
neg(x) = -x
Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(x, 1))
plus(x, y) = x + y
Eml(Eml(1, Eml(Eml(1, 1), x)), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(y, 1)), 1))
mul(x, y) = x * y
Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), x)))), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(1, Eml(Eml(1, 1), y)), 1)), 1)), 1)
inv(x) = 1/x
Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(1, Eml(Eml(1, 1), x)), 1)), 1)
pow(x, y) = x^y
Eml(Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), y)))), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), x)))), 1)), 1)), 1), 1)
-1
Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(1, 1))
div(x, y) = x / y
Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), x)))), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(1, Eml(Eml(1, 1), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(1, Eml(Eml(1, 1), y)), 1)), 1))), 1)), 1)), 1)
sqrt(x)
Eml(Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(1, Eml(Eml(1, 1), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(1, Eml(Eml(1, 1), Eml(Eml(1, Eml(Eml(1, 1), 1)), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(1, 1)), 1)))), 1)), 1))), 1)), 1)), 1))))), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), x)))), 1)), 1)), 1), 1)
i
Eml(Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(1, Eml(Eml(1, 1), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(1, Eml(Eml(1, 1), Eml(Eml(1, Eml(Eml(1, 1), 1)), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(1, 1)), 1)))), 1)), 1))), 1)), 1)), 1))))), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(1, 1)))))), 1)), 1)), 1), 1)
pi
Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(1, Eml(Eml(1, 1), Eml(Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(1, Eml(Eml(1, 1), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(1, Eml(Eml(1, 1), Eml(Eml(1, Eml(Eml(1, 1), 1)), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(1, 1)), 1)))), 1)), 1))), 1)), 1)), 1))))), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(1, 1)))))), 1)), 1)), 1), 1))), 1)), 1))))), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(1, 1)))))), 1)), 1)), 1)
cosh(x)
Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), Eml(Eml(1, Eml(Eml(1, 1), Eml(x, 1))), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(x, 1)), 1), 1)), 1)))))), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(1, Eml(Eml(1, 1), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(1, Eml(Eml(1, 1), Eml(Eml(1, Eml(Eml(1, 1), 1)), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(1, 1)), 1)))), 1)), 1))), 1)), 1)), 1)
sinh(x)
Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), Eml(Eml(1, Eml(Eml(1, 1), Eml(x, 1))), Eml(Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(x, 1)), 1), 1)))))), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(1, Eml(Eml(1, 1), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(1, Eml(Eml(1, 1), Eml(Eml(1, Eml(Eml(1, 1), 1)), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(1, 1)), 1)))), 1)), 1))), 1)), 1)), 1)
cos(x)
Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), Eml(Eml(1, Eml(Eml(1, 1), Eml(Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), Eml(Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(1, Eml(Eml(1, 1), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(1, Eml(Eml(1, 1), Eml(Eml(1, Eml(Eml(1, 1), 1)), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(1, 1)), 1)))), 1)), 1))), 1)), 1)), 1))))), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(1, 1)))))), 1)), 1)), 1), 1))))), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(1, Eml(Eml(1, 1), x)), 1)), 1)), 1), 1))), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), Eml(Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(1, Eml(Eml(1, 1), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(1, Eml(Eml(1, 1), Eml(Eml(1, Eml(Eml(1, 1), 1)), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(1, 1)), 1)))), 1)), 1))), 1)), 1)), 1))))), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(1, 1)))))), 1)), 1)), 1), 1))))), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(1, Eml(Eml(1, 1), x)), 1)), 1)), 1), 1)), 1), 1)), 1)))))), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(1, Eml(Eml(1, 1), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(1, Eml(Eml(1, 1), Eml(Eml(1, Eml(Eml(1, 1), 1)), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(1, 1)), 1)))), 1)), 1))), 1)), 1)), 1)
sin(x)
Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), Eml(Eml(1, Eml(Eml(1, 1), Eml(Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), Eml(Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(1, Eml(Eml(1, 1), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(1, Eml(Eml(1, 1), Eml(Eml(1, Eml(Eml(1, 1), 1)), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(1, 1)), 1)))), 1)), 1))), 1)), 1)), 1))))), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(1, 1)))))), 1)), 1)), 1), 1))))), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(1, Eml(Eml(1, 1), x)), 1)), 1)), 1), 1))), Eml(Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), Eml(Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(1, Eml(Eml(1, 1), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(1, Eml(Eml(1, 1), Eml(Eml(1, Eml(Eml(1, 1), 1)), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(1, 1)), 1)))), 1)), 1))), 1)), 1)), 1))))), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(1, 1)))))), 1)), 1)), 1), 1))))), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(1, Eml(Eml(1, 1), x)), 1)), 1)), 1), 1)), 1), 1)))))), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(1, Eml(Eml(1, 1), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(1, Eml(Eml(1, 1), Eml(Eml(1, Eml(Eml(1, 1), 1)), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(1, 1)), 1)))), 1)), 1))), 1)), 1)), 1))))), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(1, Eml(Eml(1, 1), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(1, Eml(Eml(1, 1), Eml(Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(1, Eml(Eml(1, 1), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(1, Eml(Eml(1, 1), Eml(Eml(1, Eml(Eml(1, 1), 1)), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(1, 1)), 1)))), 1)), 1))), 1)), 1)), 1))))), Eml(Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), Eml(Eml(1, Eml(Eml(1, 1), Eml(1, Eml(Eml(1, 1), 1)))), Eml(1, 1)))))), 1)), 1)), 1), 1))), 1)), 1))), 1)), 1)), 1)

感想

絶対もっと簡単にできるとおもいます。
色々試すことができそうなので、やってみたい。
lnやiなどをつくるのは部品化した関数を組み合わせてパズルをしているみたいで結構楽しかったです。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?