1
私は、4つのODE:dX/dt = F(X)のシステムを考えてみましょう。ここでXはベクトル(4次元)で、F:R^4→R^4です。 FはvectorDE_total_functionと呼ばれ、私はRK-4を使って解を計算しようとしています。Runge-Kutta of fourthth
def solvingDES():
previous_vector = np.array ([theta_1, omega_1, theta_2, omega_2]);
for current_time in time:
temp_vector = previous_vector;
RK_vector = np.array([0.0,0.0,0.0,0.0]);
for c in [6,3,3,6]:
RK_vector = vectorDE_total_function(previous_vector + c * RK_vector/6) * time_step;
temp_vector += RK_vector/c;
previous_vector = temp_vector;
current_time += 1;
私はどこかに間違っているように見えますが、どこがわからないのですか。それは正当だと思われますか?
私は「何か」とは分かりません。割り当てよりむしろバインディングですか? – EzWin
ベクトル変数は、実際のメモリオブジェクトへの参照またはポインタです。したがって、 '='はポインタのコピーです。おそらく、確かに、いくつかの参照カウントではありません。 - '+ ='も左辺のオブジェクトに作用しているので、 'a = a + b'とは異なり、新しいaが新しいオブジェクトで、' a + = b'の 'a'は以前と同じオブジェクト。したがって、 'temp_vector + = RK_vector/c;'はポインタの一致を破らず、 '' previous_vector''( "...")を "変更"します。 – LutzL
だから、バインディングではありません。これは、2つのオブジェクトをあるイベント処理メカニズム、つまりオブジェクトAの変更によって同期させ、オブジェクトBのメソッドを呼び出すようにします。その種類のものはここにはありません。 – LutzL