関数電卓で、立方根や自然対数ln計算ができます。これらの計算をphpスクリプトで計算してみましょう。
関数電卓とは
関数電卓すごすぎて、関数電卓なみとか言ってられないわ
100cm3の箱の大きさはどのくらい?
1辺10cmの立方体の箱の体積は1000cm3(=1リットル)である。ではその10分の1の体積である100cm3の立方体を考えたときに、その1辺はどれだけになるか?
https://edu.casio.jp/cal/cal06/
ヒント
立方体の1辺の長さは体積の3乗根で与えられる
その前に、2乗と平方根のおさらいよ
正方形の1辺の長さをaとすれば、面積は、a2です。次のphpスクリプトで計算できます。
<?php
$a = 10;
$s = $a ** 2;
echo $s;
Code language: PHP (php)
実行すると、
100
Code language: plaintext (plaintext)
逆に、正方形の面積をsとしたとき、1辺の長さは、√s です。次のphpスクリプトで計算できます。
<?php
$s = 100;
$a = sqrt($s);
echo $a;
Code language: PHP (php)
実行すると、
10
Code language: plaintext (plaintext)
例題は、立方体だね。
立方体の1辺の長さをaとすれば、面積は、a3です。次のphpスクリプトで計算できます。
<?php
$a = 10;
$s = $a ** 3;
echo $s;
Code language: PHP (php)
実行すると、
1000
Code language: plaintext (plaintext)
逆に、立方体の体積をvとしたとき、一辺の長さは、3√v です。立方根3√v は、v1/3で計算します。
v1/3 は、PHPのpow関数を使って、pow($v, 1/3) と計算します。powはpowerの略です。
1/3は、0にならないの?
PHPでは、1/3は、0.33333333333333 なのよ。
<?php
$v = 100;
$a = pow($v, 1/3);
echo $a;
Code language: PHP (php)
実行すると、
4.6415888336128
Code language: plaintext (plaintext)
pow($v, 1/3) は、$v ** (1/3) とも書けます。
<?php
$v = 100;
$a = $v ** (1/3);
echo $a;
Code language: PHP (php)
実行すると、
4.6415888336128
Code language: plaintext (plaintext)
PHPのsqrt($s)は、pow($s, 0.5)とも書けるんだね
確かにそうだけど、sqrt関数の知名度が高いから、sqrt関数を使ったほうが無難ね
はがきを折った厚みで月へ行くには?
はがき一枚の厚みを0.23mmとする。一回折ると厚みは2倍となり、また何回でも折ることができるものと仮定すると、このはがきを何回折れば月までの距離を超える厚みになるか? (ただし、月までの距離を38万4400kmとする)
https://edu.casio.jp/cal/cal07/
ヒント
1回折り曲げるごとにはがきの厚みは2倍に増えていく。
x回折り曲げた時の厚みは(0.23×10-3)×2xm と表すことができる。
ハガキの厚みが0.23mm、メートルに換算して、変数$aに代入します。1mは、1000mm、つまり1mmは0.001mです。
<?php
$a = 0.23 * 0.001;
Code language: PHP (php)
月までの距離が38万4400km、メートルに換算して、変数$bに代入します。
// つづき
$b = 384400 * 1000;
Code language: PHP (php)
x回折り曲げた時の厚みが (0.23×10-3)×2x、これが38万4400km以上になるようなxを計算します。
関数電卓では、方程式を入力してソルブ機能を使っていますが、PHPにはこの機能はありません。
関数電卓は、方程式を入力すると、解を計算してくれるんだね
ここでは、方程式を解いて、log計算してみましょう。
a×2x = b
↓
↓両辺の自然対数を求めます
↓
ln(a×2x) = ln(b)
↓
↓ln(a×b) = ln(a) + ln(b)なので、
↓
ln(a) + ln(2x) = ln(b)
↓
↓ln(ab) = ln(a) × b なので、
↓
ln(a) + ln(2) × x = ln(b)
↓
↓xを左辺に移動して、整理します。
↓
x = (ln(b) - ln(a)) / ln(2)
自然対数lnは、PHPではlog関数で計算します。
// つづき
$x = (log($b) - log($a)) / log(2);
echo $x;
Code language: PHP (php)
エディター欄をまとめると、
<?php
$a = 0.23 * 0.001;
$b = 384400 * 1000;
$x = (log($b) - log($a)) / log(2);
echo $x;
Code language: PHP (php)
実行すると、
40.60411161359
Code language: plaintext (plaintext)
はがきを41回折ると、その厚みは月までの距離を上回ることがわかりました。
まとめ
平方根√は、sqrt関数で計算します。
立方根3√vは、v1/3なので、pow関数を使って、pow($v, 1/3)と計算します。
自然対数lnは、log関数で計算します。