技術屋にゃん兵衛のてくてくらぼ

気の向くままソフトについて書いてます。バリバリエンジニアではないのであくまでも初心者目線で。

WLJS Notebookを使ってWolfram言語を動かす

WLJS Notebookを使ってWolfram言語を動かす

 

以前に、Wolfram EngineにJupyterでアクセスしたり、VisualBasicでアクセスして実行する方法を試しました。VisualBasicでは、VBのコードを書く必要があったので、簡易に使うにはJupyterかなと思っていたのですが、もっと簡単な方法を提供してくれている人がいたので、それについて書きますね。

 

それは「WLJS Notebook」です。「WLJS」はおそらく「Wolfram Language JavaScript」を指しているんだと思います(あくまでも想像)。

JavaScriptでWolfram Engineにアクセスして実行できるスタンアロンに近いノートブックをが実現されています。

開発したのは、ドイツ・アウグスブルグ大学のKirill Vasin氏というロシア出身の物理学者です。

これはかなり優れものです。

 

WLJSのページはこちら

jerryi.github.io

 

結構頻繁にアップデートされていて、「この開発に彼は相当時間を使っているんだろうなー」と感じます。

 

Windowsで、ダウンロードして実行するまでを書きます。

Wolfram Engineは既にインストールされていて、Windowsで実行できる状態にあるとします。

これはつまり、Windowsのスタートメニューから「wolframscript (Wolfram Engine 13.x)」を選択すると、次の画面になることを指しています。

Wolfram Engineの実行

 

  1. まずは、WLJSのサイトからインストーラーをダウンロードします。画面の「Getting Started」をクリックします。

    WLJSのWebサイト
  2. Wolfram Engineのバージョンに注意してください。この記事を書いている時点では、13.0.1が推奨となっています。

    Wolfram Engineのバージョンに注意
  3. 少し下にスクロールするとインストーラーをダウンロードするリンクがあるので、今回は「Windows」を選択してダウンロードします。

    (2024/12/18にダウンロードしたときには、v0.6.4だったのに、この記事の時点2023/12/26ではv0.7.0になっていました。かなり、頻度が高いです。ただ、アップデート機能があるので大丈夫 <<商用製品みたい)

    Windows用インストーラーのダウンロード
  4. インストーラーをダブルクリックします。「認識されないアプリだよ」とWindows Defenderが怒ってきますが、ここはまずはアプリを信用するということで、「実行」します。

  5. インストール、セットアップしているときには、ずらずらとログが書きだされていきます。しばらく時間がかかるので、待ちます。ログ画面は、WLJSを実行中は閉じないので、終わったかどうか判断しにくいですが。

  6. インストールが終わると次の画面が表示されます。これがメイン画面です。もう動きます。

    WLJSのメイン画面
  7. 「File」->「New」を選択します。ファイル名は何かの辞書に基づいているのか、「xxxxxxd.wln」という名前がつけられます。

    新しいノートを作成
  8. 画面が次のようになります。「Type Wolfram Expression / .md / .html / .js」と書かれたところをクリックします。

  9. 入力プロンプトが表示されます。

    入力プロンプト
  10. 単純な「1+1」ではつまらないので、Wolfram言語らしく全微分をしてみます。

    Dt[a x + b, x]

  11. セルの右側の三角マークをクリックします。きちんと答えが返ってきました。いい感じ。

  12. 次のセルに移るには「+」をクリックします。

  13. グラフも書けるらしいので、次をやってみます。

    Plot[Sin[x], {x, 0, 6 Pi}]

  14. セルの右側の三角マークをクリックします。きちんと答えが返ってきました。いい感じ。

    グラフも描けた
    すぐに書けた。
  15. VisualBasicの時にはうまく出力できなかった凡例はどうか。

    Plot[{Sin[x], Sin[2 x], Sin[3 x]}, {x, 0, 2 Pi}, PlotLegends -> "Expressions"]

    凡例はエラーになった

    やはりこれは難しいか。

    前の時も思ったんですが、Wolfram Engine自体が受け付けていないのかも。

  16. 「PlotLegends」がなければ、うまく書けた。

  17. できるとは書いてあるが、3Dのプロットはどうか。

    Plot3D[Sin[x + y^2], {x, -3, 3}, {y, -2, 2}]

  18. デフォルトの表示範囲は少し問題があるが、実は、Mathematicaのように回転や拡大縮小はできる。素晴らしい!(軸目盛がないのは、これを書かせるのはやはり厳しんだろうな。。。)

    回転、拡大縮小も可能
  19. さて、このノートブックを保存することはできるのか。


    このコマンドでは、自動生成されたファイル名の「wln」ファイルに保存されます。

  20. WLJSが「ローカルのWeb機能+JavaScript」という仕組みであるため、作成したwlnファイルを取得するには「ダウンロード」を行います。

    (実は、実体をローカルから取り出すことも可能。場所は、「ユーザーのフォルダー>AppData>Roaming>wljs-frontend>Examples」にあります。)

    このwlnファイルは、WLJS用で、ダブルクリックするとWLJSが起動します。Mathematicaのnb形式ではないのでMathematicaで開くことはできないようです。

 

いっぱい試してみたわけではないですが、数式的な処理であれば、それなりに使えるのではないかと思いました。まあ、Mathematicaの置き換えにはなりませんね。

 

本人も書いています。「何年にもわたり、何十人もの人が開発したソフトを置き換えるものを1人で開発できるわけはない」。まさしくその通り。