SymPyの二重根号ソルバで遊んでみた

投稿者: | 2017年10月17日


個人的には、シンボリック計算といえば二重根号が重要だと思っている。\(\sqrt{8+2\sqrt{15}}=\sqrt{3}+\sqrt{5}\)とかというやつだ。二重根号外しを二重にやらなければいけないケースにどのくらい対応できているか試してみた。

今回のコードはすべてここにおいてある。

まず、
\[
\sqrt{2}+\sqrt{3}=\sqrt{\left(\sqrt{2}+\sqrt{3}\right)^2}=\sqrt{2\sqrt{6}+5}
=\sqrt{\sqrt{\left(2\sqrt{6}+5\right)^2}} = \sqrt{\sqrt{20\sqrt{6}+49}}
\]
を正しく計算できるか試してみる。


\(\sqrt{\sqrt{}}\)が勝手に\(\sqrt[4]{}\)にまとめられてて、ここがネックになってここから動かないようだ。

次に
$$
\sqrt{2}+\sqrt{3}=\sqrt{2\sqrt{6}+5}=\sqrt{1+(2\sqrt{6}+4)}
=\sqrt{1+\sqrt{\left(2\sqrt{6}+4\right)^2}} = \sqrt{1+\sqrt{16\sqrt{6}+40}}
$$
を計算できるか試してみる。


今度はうまくいった。

つまり2つのルートが勝手に結合されてしまうケースではうまくいかないが、そうでない場合はうまくいくようだ。勝手に結合されるケースでももしかしたらヒントかなにかを与えたらうまくいくのかもしれないが、よくわからない。

最後に高校数学の公式の復習。

定理:
$$\sqrt{(a+b)+2\sqrt{ab}}=\sqrt{a}+\sqrt{b}$$
$$\sqrt{(a+b)-2\sqrt{ab}}=\sqrt{a}-\sqrt{b}$$
(ただし\(a>b\)とする)

証明:(上の式だけ)
$$\sqrt{(a+b)+2\sqrt{ab}}=\sqrt{(\sqrt{a})^2+2\sqrt{a}\sqrt{b}+(\sqrt{b})^2}
=\sqrt{ \left(\sqrt{a}+\sqrt{b}\right)^2}=\sqrt{a}+\sqrt{b}
$$

最後に昔の恩師の書いた高校数学の参考書へのアフィリエイトリンクを貼っておく。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です