高校数学10分プログラミング(数学Ⅱ編 4.指数関数と対数関数)3日目「対数の値を計算する」解説
マガジンリスト > 数学Ⅱ編 4.指数関数と対数関数 > 3日目 解説
本日の課題、おつかれさまでした。
課題の対数の値を計算するプログラムを作成することができたでしょうか。
解答例
今回の課題の対数の値を計算するプログラムの例を示します。
// 対数を計算する
void setup(){
// (1)
float a01 = logarithm(6.0,4.0) + logarithm(6.0, 9.0);
println("(1):", a01);
// (2)
float a02 = logarithm(10.0,25.0) + logarithm(10.0, 4.0);
println("(2):", a02);
// (3)
float a03 = logarithm(3.0,18.0) - logarithm(3.0, 2.0);
println("(3):", a03);
// (4)
float a04 = logarithm(2.0,2.0*sqrt(6.0)) - logarithm(2.0, sqrt(3.0));
println("(4):", a04);
// (5)
float a05 = 2.0*logarithm(2.0,sqrt(2.0)) - 0.5 * logarithm(2.0, 3.0)
+ logarithm(2.0, sqrt(3.0)/2.0);
println("(5):", a05);
}
// 底aを持つ対数を計算する関数
float logarithm(
float a, // 底
float x // 真数
){
return log(x)/log(a);
}
ソースコード1 対数の値を計算するプログラム
ソースコード1を、Processingの開発環境ウィンドウを開いて(スケッチ名を「calc_logarithms」としています)、テキストエディタ部分に書いて実行すると、コンソールに
(1): 2.0
(2): 2.0
(3): 2.0
(4): 1.5
(5): -8.940697E-8
と出力されます(図1)。
今回の課題の対数の値は、対数の性質②を用いると、
(1) $${ \log_6 4 + \log_6 9 =2}$$
(2) $${ \log_{10} 25 + \log_{10} 4 =2 }$$
(3) $${ \log_3 18 - \log_3 2 =2}$$
(4) $${ \log_2 2\sqrt{6} - \log_2 \sqrt{3} = 1.5}$$
(5) $${ 2 \log_2 \sqrt{2} - \frac{1}{2} \log_2 3 + \log_2 \frac{\sqrt{3}}{2} = 0 }$$
と式変形だけで計算することができ、これらの結果とプログラムで計算した結果とが丸め誤差の範囲内で一致していることがわかります。
本日は以上です。
明日は、対数関数のグラフを描くプログラムを考えていきます。
明日もよろしくお願いします。
読んだ感想などをお寄せください
本記事を読んだ感想や質問などを以下のお問い合せフォームからお寄せください。(お問合せフォームの本文に、本記事のタイトルを入れてください。)
MK’s papa