私がやろうとしているのは、非再結合三項ツリーの構造をエミュレートする一連のベクトルを生成することです。これが私のコードです:
function Trinomial_tree
S{1}(1) = 100;
w{1} = 1.4;
w{2} = 1.1;
w{3} = 0.7;
T = 2;
%Compiling the w's into a vector
w = [w{1}, w{2}, w{3}];
%Actual vector-content generation goes here, right now the k-allocation
%doesn't work as intended. In the second run with i=3, k seems to be
%fixed on 3
%{
for i = 2:(T+1)
S{i} = zeros(1, 3^(1i-1));
end
%}
for i = 2:(T+1)
S{i} = Node(w, T, i, S{i-1});
end
display(S{1})
display(S{2})
display(S{3})
end
ノード関数は次のとおりです。
function [S] = Node(w, T, i, S_1)
%Compute the continuing node of a point
%Pre-allocation
S = zeros(1, 3^(i-1));
%Nested loop which generates the different nodes
for k = 1:(3^(i-2))
for j = 1:((3^T)-2):3
S(j) = S_1(k) * w(1);
S(j+1) = S_1(k) * w(2);
S(j+2) = S_1(k) * w(3);
end
end
さまざまなテストトライアルを実行しましたが、常に同じ問題で終了します。node.m 関数は、時間 t=2 で行ベクトルの最初の 3 つのエントリのみを編集し、他の 6 つのエントリは除外します。時間 t=1 でベクトルの次の値を取らないように、ループ内で間違いを犯したようです。
また、私が見落としていたはるかに簡単で明白な解決策がある一方で、問題を信じられないほど複雑にしている可能性もあります。
どんな助けでも大歓迎です。