2024年09月11日

一日一項目 今日はJuliaで四苦八苦 ま~たいへんねえ

コンピュータ言語でもニッチ言語というのがあってな(笑) Julia言語ってニッチの典型だろ。知らんけど。Juliaが検索するが良い。裸のきれいなおねーちゃんが出てくるで。びっくりしたなあ、モー。
そういうわけで久しぶりにJuliaを使ってみた。インタープリター言語でありPythonと似ている。C系では int main() { ここに コードを書く }という構成だがJuliaはPythonと同じく上から順に実行するのである。どや。

で、今日の四苦八苦
∑(1/n)の計算をする。Copilot先生に訊いたら次のコードが出てきたのである。
image

下は略・・・・

これずワタクシのDELL OPTIPLEX 7010SFF Win 11 23H2(非推奨PC)ではエラーだすのであーーーた。
Copilot先生、エラー出ましたで・・・・と再度質問するワタクシ。すると次のように
image

ワタクシの関数名がダーーミだったようでしてね。コンコンチキ!!  関数名を変更したら動作しましたのですわっとっと。

エラーの原因は、Base.sumという名前が既にJuliaの標準ライブラリで使用されているためです。関数名を変更することで解決できます。

というのがなあ、この例題はあんたが出してきたのだで・・・(´・ω・`) わかってんなら初めから問題のないコードを出せやあぁぁぁぁ プギャあ!!

蛇足 つまり蛇の足 なんですとおぉぉぉぉ
ワタクシは∑(1/n)をn = 100000兆まで計算してみたいと思ったのだが時間が数年は掛かりそうなので辞めた(笑) n = 10億とか、手頃な数値まで計算しませう。
Python, Julia, C++での比較をしたい。
結論。C++が最も速い。これは予想通り。
次がPythonかJuliaか。ここがな。Pythonで numbaのjit使ってJITコンパイラを利用する場合とJuliaは同等であった。Juliaが高速だとJuliae一派は宣伝しているのだが、それはJITを活用しているからである。Pythonは numbaのjitを使うとJulia同等である。上の級数和の場合には。

うーむ。するってーと、ひょっとこしてPythonは def main() : というの書いて、それを@jitすれば常に高速化するってか。Juliaってそれと同等の事をやってんじゃね? 

とにかく、数値計算をPythonでする場合には @jit を使えって事だ。

とはいうものの、JIT使ってのJulia, Python よりもc/c++がかなり速い結果出したの。上の級数和では。

だったら初めからc/c++で書けばいいじゃあーーーーーーーん!!  そだねえ。

こうなるとニッチコンピュータ言語のJuliaを使うメリットは消滅しました(笑)

やっぱ、漢はc/c++だぜ。どやLaughing out loudOpen-mouthed smileConfused smileSmileSick smileBe right backSmile with tongue outShiftyConfused smile

Python, Juliaはグラフ描画が容易。計算してグラフ出すっての簡単。だがc/c++でも簡単。gnuplot使えばよい。計算結果をtext fileとして保存すれば手動でgnuplot起動してグラフ化、あるいはコードの中でgnuplot呼び出しても良い。
ま~そういうわけなので重量級言語としてc/c++, 軽量系言語としてPython, ニッチ言語としてJuliaをいじってアーーーソブなのであるぞの。ま~ ま~ 暇つぶし。カネかからんし(笑)

蛇足の蛇足 計算してグラフ描画 wxMaximaというものがありまして\(^o^)/
大量の計算。時間がかかる計算をするのには適さないが数式書いてグラフ化するという用途では十分に楽勝。PythonでNumpy, Scipyで計算してmatplotlibでグラフ化するよりも容易の容易で よーーーい・どーーーーん!!  どや

posted by toinohni at 16:06| 東京 ☀| Comment(0) | ソフト系雑学 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
コチラをクリックしてください