前提
Windows10でjupyter notebookでpythonのコードを書いております。
少し前にも類似の質問をさせて頂いたのですが、やはり目的のことができずにおりご相談させて頂きます。
実現したいこと
ある変分問題を解く上で、例えば以下のような「関数の逐次更新」をしたいと考えています。
u_{n+1}(t) = u_n(t)*(1-\int_0^1 |u_n(s)|^2 ds) (n=0,1,2,...N, 0≦t≦1)
簡単のため、ここでは3回目ほどで終了して、u_3(t)の関数が得たいと考えております。
発生している問題・エラーメッセージ
関数の一般表現は得られないことを前提として、上の漸化式の形のまま実装したいのですが、、以下の様になってしまいます。
RecursionError Traceback (most recent call last) <ipython-input-6-474c6340d013> in <module> ----> 1 u(0.1) <ipython-input-4-eab238bb6b57> in u(t) 7 j=j+1 8 def u(t): ----> 9 ans = u(t) * (1- (integrate.quad(u, 0, 1))**2 ) 10 return ans ... last 1 frames repeated, from the frame below ... <ipython-input-4-eab238bb6b57> in u(t) 7 j=j+1 8 def u(t): ----> 9 ans = u(t) * (1- (integrate.quad(u, 0, 1))**2 ) 10 return ans RecursionError: maximum recursion depth exceeded
該当のソースコード
python
1#初期値 2def u(t): 3 ans = 2*t 4 return ans 5 6j=0 7while j<3: 8 j=j+1 9 def u(t): 10 ans = u(t) * (1- (integrate.quad(u, 0, 1))**2 ) 11 return ans 12 13u(0.1)
試したこと
上記以外に、どのようにして書いてよいのか分からずにおります。。ご教示のほど、宜しくお願い致します。
回答3件
あなたの回答
tips
プレビュー