前提
初心者なので、何かおかしいことを聞いていたらすいません。
ローカル環境のpythonで書いたコードなのですがエラーも出ず、なにも出力されません。
どうしてでしょうか?
環境はmacbook pro(2019年購入)のターミナルです(VSC使用)
実現したいこと
・自然発生する交通渋滞のようなアニメーションを作りたい。
・下記の式の数理モデルシミュレーション


発生している問題・エラーメッセージ
エラーメッセージはなし 出力されない。
python
import numpy as np from scipy.integrate import odeint def trafficJam(f, t, a, c, L): """ 微分方程式の定義(odeint) f = [x, v] """ x, v = f[:N], f[N:] def V(h): return np.tanh(h - c) + np.tanh(c) x_dot = v x = np.append(x, [x[0]]) diff_x = np.diff(x) diff_x = np.array([i if i > 0 else L + i for i in diff_x]) v_dot = a * (V(diff_x) - v) return np.append(x_dot, v_dot) # 各定数 N, a, c, L = 30, 1.3, 2, 60 # 初期位置 x = np.arange(N) * L / N # 初期速度 v = [(1 + np.tanh(c)) / 2] + ([1 + np.tanh(c)] * (N - 1)) # 最初の1台がブレーキをかける # 時刻 t = np.arange(0, 200, 0.1) # 微分方程式を解く var = odeint(trafficJam, np.append(x, v), t, args=(a, c, L), full_output=False) x_arr, v_arr = var[:, :N], var[:, N:]
試したこと
なにが足りないのかを調べました。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
> どうしてでしょうか?
何も出力していないからです。
回答ありがとうございます。
returnではないのですか?
そこではなく、スクリプトの最後に、
print(x_arr)
とか
print(v_arr)
などを追加する必要があります。
アニメーションの出力もprintでいいのですか?
いいえ、前回の質問でコメントした様に、例の Qiita の記事のコメント欄に投稿者の方が書いて下さっているコードを追加する必要があります。
ただ下に貼ればいいですか?
それでもできなかったです。
「できなかった」と書かれても何も判りません。具体的に、例えばこんなエラーメッセージがでました、などの情報を質問に追記してください。ちなみに、こちらの環境で実行した場合は何ら問題なくアニメーションが表示されて output.mp4 ファイルが保存されています。
pltとsbnが未定義、と出ました。
pltの方は
import matplotlib.pyplot as plt
でいいのかなと思い記述しましたが、
sbnのほうは調べてもわかりませんでした。
ちなみにsbnの行を消して実行もしてみたのですが、
raise RuntimeError(f"Requested MovieWriter ({name}) not available")
RuntimeError: Requested MovieWriter (ffmpeg) not available
というエラーメッセージが出ました。
ffmpegは調べてインストールしたはずなのですがなぜできないのでしょうか、、、
質問を編集しないと他の人(回答をしようと考えている人達)に伝わりませんよ。
> ffmpegは調べてインストールしたはずなのですが
実際にはインストールに失敗しているか、PATH の設定が為されていないのでしょう。
ありがとうございます。
ffmpegの部分以外のところはどうでしょうか
ターミナルで
pip list
と打つと
ffmpeg-python 0.2.0
と出るので、インストールはできているのではないでしょうか
インストールする必要があるのは ffmpeg コマンドです。Python のモジュールではありません。Google Colaboratory であればデフォルトでインストールされているので、そちらを使う方がよいでしょう。
ffmegコマンドのインストールができているかはどうやってわかりますか?
Google Colaboratoryで色々問題が起きローカル環境に変更しました。melian様のアドバイスではなかったですかね?
もう少しローカルで頑張って模様と思います。
「ローカル環境はセットアップが難しいので〜」と聞きました。
はい、しかしできたのでローカルにしましたとも送りましたよ!