質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

743閲覧

Jupyterでソースコードを動かしたい

aa-

総合スコア1

Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2022/01/09 01:58

編集2022/01/09 02:40

前提・実現したいこと

発生している問題・エラーメッセージ

Jupyterでプログラムを動かそうとしたところ、In[*]となってしまい、プログラムを動作、描画することができませんでした。初学者ですのでわからないことが多いですが、どうぞよろしくお願いします。

該当のソースコード

import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D LIMIT = 1000 # 反復回数の上限 N = 101 # x軸方向の分割数 M = 101 # y軸方向の分割数 def iteration(u): """1回分の反復計算""" u_next = [[0 for i in range(N)] for j in range(M)] # 次ステップのuij for i in range(1, N - 1): for j in range(1, M - 1): u_next[i][j] = (u[i][j - 1] + u[i -1][j] + u[i + 1][j] + u[i][j + 1]) / 4 for i in range(1, N - 1): for j in range(1, M - 1): u[i][j] = u_next[i][j] u = [[0 for i in range(N)] for j in range(M)] # uijの初期化 for i in range(M): u[i][0] = 100 for i in range(LIMIT): iteration(u) print(u) # 結果の出力 x = np.arange(0, N) y = np.arange(0, M) X, Y = np.meshgrid(x, y) fig = plt.figure() ax = Axes3D(fig) U = np.array(u) #ax.plot_wireframe(X, Y, U) # wireframe形式 surf = ax.plot_surface(X, Y, U, cmap = "plasma", alpha = 0.8) # surface形式 fig.colorbar(surf) plt.show()
Python

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

こんにちは。
関連した質問がありましたので、もしかしたら参考になるかもしれません。

https://teratail.com/questions/107521
https://ja.stackoverflow.com/questions/64014/pythonのセルが実行出来ません

どちらも Kernel -> Restart で解消されているようです。

添付いただいたソースコードはインデントが省略されてしまっているので、コード面からは現時点でコメントができないのですが、まずは上記を参考にしてみて、その後エラーが違うものになったら、スクリーンショットやメッセージを添えていただければと思います。

投稿2022/01/09 02:29

suama

総合スコア1997

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aa-

2022/01/09 02:35

ご回答ありがとうございます。そちらの質問は拝見させていただきましたが、同様の操作でもうまくいきませんでした。
suama

2022/01/09 02:46

ありがとうございます。お試しいただいた上ですね。失礼いたしました。 ソースコードも再添付してくださってありがとうございます!
suama

2022/01/09 03:13 編集

単純にデータ量が多くて集計に時間がかかっているのかもしれませんね。 LIMIT = 1000 とありますが、まずはここを1とか5くらいに減らすとどうでしょう?コード上のエラーか、処理の速度の問題かの切り分けのため。
aa-

2022/01/10 10:58

ありがとうございます。試してみましたが、計算結果は表示されませんでした。プログラムが実行されずに次の行にいってしまいます。悲しい????
aa-

2022/01/10 11:00

何か使えないツールが自分の環境であるのかな~とも思い、調べてみてはいるのですが、それが何かはわからないので困ったものです。
suama

2022/01/10 11:35 編集

Jupyter あまり詳しくなくてもうしわけないですが、処理の数と環境でしょうか。 試しにご提示いただいたソースコードを、 https://https://jupyter.org/try で実行してみました。 以下のように定数を減らすと、10秒以内にデータの配列が出力されて、グラフも描画されました。 ----- LIMIT = 1000 # 反復回数の上限 N = 10 # x軸方向の分割数 M = 10 # y軸方向の分割数 ----- (値は適当に小さくしています。申し訳ありません) ひとまず plt.show() まではエラーなく進んだのは確認できています。 定数を多くしていくと、画面したの Busy の表示がなかなか消えません。 処理が終わると idle に変わります。 (ただし、もともとの数だと、20分待っても終わらないです) 参考になりましたら...。
aa-

2022/01/10 11:58

ありがとうございます。提示していただいた通り定数を減らしたところうまくいきました。単純に処理時間の問題だったようです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問