午後のひとときに、数学の問題を解いてみる。
問題
9x+15x=25x
を解け
フェルマーの最終定理より、
xが自然数とすると、x<3となり、
x=1、x=2では解を持たない。
よって、xは自然数ではない。
フェルマーの最終定理を出さずとも、
数字の並びを見れば、ピンと来るかもしれないが、
9=32
25=52
15=3×5
左辺を3でくくると、
3x(3x+5x)=25x
となり、3と25は互いに素なので、共通の約数は1のみ。
つまりx=0を入れると、左辺は2、右辺は1となり、不適。
両辺を一番小さな項で割る。
9xで割ると、
1+(15/9)x=(25/9)x
1+(5/3)x=((5/3)2)x
1+(5/3)x=((5/3)x)2
t=(5/3)xとおくと、
1+t=t2
t2-t-1=0
解の公式より、
t=(1±√5)/2
t>0より、
t=(1+√5)/2
(5/3)x=(1+√5)/2
x=log(5/3)((1+√5)/2)
ふと思ったんだけど、対数って、どの形で答えるのが正解なんだろうか?
底を10、つまり常用対数で答えるのが良いのか、
底をe、つまり自然対数で答えるのが良いのか、
上記のように、底は1や負数でなければ良いのか、
底や真数が分数の形のままで良いのか、
悩んでしまった。
例えば、解を一意(ユニーク)にするために、分母の有理化をしたりするのと同様に、
対数も何かしら決まりがあるのでは?
と考えてしまったのだ。
例えば、問題文に「対数を使うならば、自然対数logで示せ」とあれば、
x=log(5/3)((1+√5)/2) ...(1)
x=log((1+√5)/2)/log(5/3) ...(2)
x=(log((1+√5)-log(2))/(log(5)-log(3)) ...(3)
x=log(3/5)(-1+√5)/2 ...(1')
x=log((-1+√5)/2)/log(3/5) ...(2')
x=(log(-1+√5)-log(2))/(log(3)-log(5)) ...(3')
x=log(3/5)(√5-1)/2 ...(1'')
x=log((√5-1)/2)/log(3/5) ...(2'')
x=(log(√5-1)-log(2))/(log(3)-log(5)) ...(3'')
のように、9通りも書けてしまう。
もっと言えば、(3')、(3'')は分母も分子も小さい方から大きい方を引いているので、
x=(log(2)-log(-1+√5))/(log(5)-log(3)) ...(4')
x=(log(2)-log(√5-1))/(log(5)-log(3)) ...(4''')
表記として、どれがベストなのか、ベターなのかという話しです。
例えば、問題文にいくつかの常用対数が表で表されており、xの小数点以下第n位までを求めさせるような計算では、(1)、(1')、(1'')の状態では、まだまだであり、(2)、(2')、(2'')ないし、(3)、(3')、(3'')まで展開する必要性があるだろう。
常用対数表があったとして、
(2)で計算すると、
log10(1.62)=0.2095
log10(1.67)=0.2227
x=0.2095/0.2227
=0.94072743601257296811854512797485
(2')ないし(2'')で計算すると、
log10(0.62)=-0.2076
log10(0.60)=-0.2218
x=(-0.2076)/(-0.2218)
=0.93597835888187556357078449053201
(3)で計算すると、
log10(3.24)=0.5105
log10(2.00)=0.3010
log10(5.00)=0.6990
log10(3.00)=0.4771
となれば、
x=(0.5105-0.3010)/(0.6990-0.4771)
=0.2095/0.2219
=0.94411897251013970256872465074358...
(3')ないし(3'')で計算すると、
log10(1.24)=0.0934
となれば、
x=(0.0934-0.3010)/(0.4771-0.6990)
=(-0.2076)/(-0.2219)
=0.93555655700766110860748084722848
自然対数表があったとして、
(2)で計算すると、
loge1.62=0.48243
loge1.67=0.51282
x=0.48243/0.51282
=0.94073944073944073944073944073944
(2')ないし(2'')で計算すると、
loge0.62=-0.47804
loge0.60=-0.51083
x=(-0.47804)/(-0.51083)
=0.93581034786523892488694869134546
(3)で計算すると、
loge3.24=1.17557
loge2.00=0.69315
loge5.00=1.60944
loge3.00=1.09861
であれば、
x=(1.17557-0.69315)/(1.60944-1.09861)
=0.48242/0.51083
=0.94438462893721981872638646907973
(3')ないし(3'')で計算すると、
loge1.24=0.21151
であれば、
x=(0.21151-0.69315)/(1.09861-1.60944)
=(-0.48164)/(-0.51083)
=0.94285770217097664585087015249692
このように、値がバラバラになる。
いずれであっても、電卓などでxの値を求めると、
0.94202757784924014969112822630791
一番精度が出たのは、
常用対数表ならば、(2)
自然対数表ならば、(3')ないし(3'')
という結果となっている。
小数点以下第3位で四捨五入したならば、いずれも0.94とはなる。
例えばペーパーテストとして、採点する側からしたら、解が統一されていないと、採点が大変だろう。
また、対数を習った年代によっては、logという底が省略された記述が、常用対数だった時代と、自然対数だった時代があるようです。
また、LN(Natural Logarithm/自然対数)を使う記述や、電卓や、プログラミング言語があったりもします。
大抵のプログラミング言語は、ln関数、log10関数、log関数と3つのうちのいずれかが用意されているのですが、
対数の性質上、ln関数だけ、log10関数だけであっても、ln(a)/ln(b)やlog(a)/log(b)とすることで、真数をa、底をbとすることが容易に行えるので、どちらか1方でも問題はあまりない。
しかし、進数aと底bを与えるlog関数では、log(a,b)なのか、log(b,a)なのか、真数と底を与える順番がまちまちであったりする。
これの最も馬鹿げているのがExcelです。
エクセルのワークシート関数には、LN関数、LOG10関数、LOG関数の3種類が容易されており、LOG関数は底を省略出来る仕様になっており、真数、底の順番である。
=LOG(10)
のように記述すれば、1が返ってくるので、底を省略すると常用対数、つまり底のデフォルト値が10であることがわかります。
方や、ExcelやWordにはVBAというマクロ言語があり、対数関連の関数はlog関数のみで、底は指定出来ず、自然対数となっています。
こんな感じで、対数の記述は混乱しているのです。
せめて、数学の世界では混乱しないようにしなければならないでしょう。
ならば、どうすれば良いのかを、考えねばならないでしょうね。
ではでは
↧
解が対数になるような場合
↧