14

対数を便利にしたかった

709
1
\newcommand{cop}[0]{\mathrm{co \pi}} \newcommand{genprodsum}[4]{{}^{#3}\!\!\underset{#1}{\overset{#2}{\Large \triangle{}}}#4} \newcommand{gprod}[3]{\underset{#1}{\overset{#2}{\prod{}}}#3} \newcommand{gsum}[3]{\underset{#1}{\overset{#2}{\sum{}}}#3} \newcommand{pan}[0]{\mathrm{\pi an}} \newcommand{pin}[0]{\mathrm{\pi in}} \newcommand{prodsum}[3]{\underset{#1}{\overset{#2}{\huge \triangle{}}}#3} \newcommand{tangle}[2]{\underset{#1}{\overset{#2}{\Large \mathrm{T}}}}}

こんにちは

最近は指数昇降という操作に関心があります。Nappleです。
その指数昇降を考えていて
「対数関数が0以下で定義されないのって不便だな〜」
と思ったので、今回の記事です。

対数関数

一旦おさらいです。

色々定義があるらしいですが、一番始めに聞くのは以下ではないでしょうか。

対数

1でない正の実数aおよびxに対して、
x=ap
を満たす実数pがただ一つに定まり、
p=logax
と表す時、paを底とするxの対数と呼ぶ。

特に底がeであるとき、lnxと書き、自然対数と呼ぶ。

以下が成り立ちます。

対数の性質

loga(xy)=loga(x)+loga(y)

証明は右辺左辺それぞれ、定義に従って変形すればできると思います。

問題点

このように定義された対数は、x>0においてのみ定義され、加えてloga(1)=0となります。
これによって、logaloga(x)logalogaloga(x)としていったときに、
それぞれの定義域はx>1, x>aと、どんどん正の方向にずれていってしまうのです。

対数の合成と定義域

logan(x)の定義域はx>a↑↑(n2)

これでは扱いづらいのでどうにかしようというのがこの記事の本題ですね。

1戦目

性質に基づく再定義

ここで、注目したいのは公式1の性質です。
対数の世界では積が和に、和が積になるわけですね。

では逆にこの性質をもとに対数を再定義してみればいいのではないでしょうか。

仮対数関数

任意のx, yについて、
L(xy)=L(x)+L(y)
を満たす関数Lを仮対数関数と呼ぶ。

仮対数の性質を考える

こうすれば、すべてのxで和↔積の性質を持つ関数が作れたでしょうか。検証しましょう。

L(x)=L(1x)=L(1)+L(x)

あれ?
もしL(1)0なら、L(x)L(x)になってしまいますから、L(1)=0とするしかありませんね。

L(1)=0

とりあえず先に進みましょう。
別にL(0)が定義できればもんだいないですからね。

L(0)=L(0x)=L(0)+L(x)

あれ??
どうやらL(0)は定義できないようです。

あ……

敗北

ということで、和↔積の性質のみから対数を再定義しても、x=0では定義できませんでした。

でも意外と良い

ちなみに、負の範囲ではどうかというと、

x0とする。
L(x2)=L((x)(x))=L(x)+L(x)=2L(x)L(x)=12L(x2)

という感じなので、L(0)が定義できないだけで、それ以外は大丈夫な感じがします。

同様にして、他の性質も導けます。

x0について、
L(x)=L(x)=1nL(xn)

x0とする。
L(x2)=L(xx)=2L(x)L(x)=12L(x2)=L(x)

x0,nNとする。
L(xn)=L(xn1x)=L(xn1)+L(x)==nL(x)

x,y0
L(xy)=L(x)L(y)

x,y0とする。
L(1)=L(x1x)0=L(x)+L(1x)L(1x)=L(x)
ゆえに、

L(xy)=L(x)+L(1y)=L(x)L(y)

2戦目

ずらしてみる

lnのテイラー展開って、よくf(x)=ln(1+x)として表現されるじゃないですか。あれって0まわりのテイラー展開ができないから、ちょうどf(0)=0になるln(1+x)を採用してると思うんですよ。テイラー展開もきれいな形になりますし。

じゃあln(1+x)のほうが対数として適切というか、こっちをメインにしてしまっても良いんじゃないでしょうか。

擬対数関数

x0について
Lpseudo(x):=ln(1+x)
を擬対数関数Lpseudo(x)と定義する。

性質

この定義だと、x0のすべての範囲で定義されていて、
その上Lpseudo(x)0なのがいいですね。素敵!

Lpseudon(x)の定義域はx0

しかし、失われているものがあります。

Lpseudo(x)+Lpseudo(y)=Lpseudo(xy+x+y)

Lpseudo(x)+Lpseudo(y)=ln(1+x)+ln(1+y)=ln((1+x)(1+y))=ln(xy+x+y+1)=Lpseudo(xy+x+y)

そう。余剰な項が出てきてしまうんです。
Lpseudo(x)+Lpseudo(y)=Lpseudo(xy)
が真に成り立つのはx+y=0のときだけと、まあちょっと扱いづらい感じもしますね。

おまけ的に、当然といえば当然ですが、以下も成り立ちます。

nN,
nLpseudo(x)=Lpseudo((1+x)n1)

まとめ

今回は2つのパターンで、対数関数を合成に耐えうる使いやすい関数にしようとしました。
結果的に完全無欠で強靭な関数は作れませんでしたが、ln(1+x)は将来性がありそうでした。
今後またもう少し詳しく見ていきたいですね。

それではまた〜

投稿日:20241218
更新日:113
OptHub AI Competition

この記事を高評価した人

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

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

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

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

投稿者

🤔 数学の専門ではないです。 思いついたことを書きます。

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中
  1. こんにちは
  2. 対数関数
  3. 問題点
  4. 1戦目
  5. 性質に基づく再定義
  6. 仮対数の性質を考える
  7. 敗北
  8. でも意外と良い
  9. 2戦目
  10. ずらしてみる
  11. 性質
  12. まとめ