これは 1/n を 1 ~ 100000 まで足す計算である。その計算で時間差が激しい事に気づいたワタクシである。
最も速い記述 sum(1.0/x,x,1,n); 0.0094 sec
次が sum(x^-1.0,x,1,n); 0.156 sec
もっとも遅い sum(1/x, x, 1, n); 7.187 sec
なんでだろう、なんでだろう、なんでなんで。な―んでか? それはねえ・・・ワカラン(´・ω・`)
そこでCopilot先生に訊いてみた
この説明で理解できるワタクシではないのである。1/n の場合にはき記号計算をしようとして遅くなるって趣旨だが、それはなんなのさって(´・ω・`)
まあそういうわけなので数式は整数で書くな(笑) 係数も小数点ありで書け。そしたらwxMaximaは初めから数値計算をするって話だぞの。
いやー、ま~いいか。wxMaximaってLISPというコンピュータ言語で書かれているらしいということは知っているがここらの話は知らんのである。
何かやると何か起きる。弊害か副作用か予想外か。そういうものがあるから面白い。なにも問題がないのであれば、それはなにもやっとらんというだけの話だ(あくまでも個人の感想であり)
ただ、今回の問題に関してはCopilot先生に訊くと直ぐに回答があって良かった次第である。これをGoogle等で自分で検索するとワタクシはGoogle検索10段(自称)であるが解答までにもっと時間がかかったであろう。
こうなつたらワカラナイ事はCopilot先生やGemini先生に訊きまくる!! それでいいのだ。バカボンのパパなのだ。
蛇足 つまり蛇の足
wxMaximaで初めから数値計算しろという指令はできますか ワタクシの質問
Copilot先生の回答
はい、wxMaximaでは数値計算を行うための指令が用意されています。
具体的には、numer:true;というコマンドを使用することで、wxMaximaに数値計算を行うよう指示することができます。このコマンドは、以降の計算が数値的に行われるように設定します。
これは 1.0/n と書けば良いので使うことはなかろうワタクシの場合には。
今日はwxMaximaについての雑学が増えたのである。良きかな良きかな。