こんにちは。今回は底が分数だったり, 底が小数だったりする場合の対数関数のグラフの書き方です。私もこれに気づいたときはひどく感心というか, そんなの知らないよと思ったのでここに書いておきます。
普通TikZではグラフは次のように書きます。
\draw[domain=-4:4] plot(\x, \x) node [above] {$y=x$};
ここでのグラフは次のように書きます。
\draw[domain=0.0625:4] plot(\x, {log2(\x)}) node [right] {$y=\log_2x$};
ではのグラフは,
\draw[domain=0.0625:4] plot(\x, {log0.5(\x)}) node [right] {$y=\log_{\frac12}x$};
と思うのが普通?ですが, これでは何にも描いてくれません。
log(1/2)(\x)としても同じことです。
これの解決方法は底変換の公式を用いることだったのです。
を底を10にすると,
なので,
これを用いて, 先のコマンドを次のように底変換したもので書き換えます。
\draw[domain=0.0625:4] plot(\x, {log10(\x)/log10(1/2)}) node [right] {$y=\log_{\frac12}x$};
これでのグラフを描いてくれます。
因みに, 底変換するときの底は10が無難です。それ以外では動作しないことが多いです。
グラフの精度を上げたいときは,
samples=100を定義域のところに追加すればいいです。
例えば, [samples=100,domain=0.0625:4]
このような感じです。100というのはプロット数だと思うので, 数を増やせばより精度は上がるでしょう。
それでは。