私は Octave の初心者ですが、誰かが私のコードを手伝ってくれませんか?
A = zeros(40);
format long
function xn=xnf(n,xn,c)
if n<=40
xn = xn^2+c;
A(n,n)=xn;
n++;
xnf(n,xn,c);
end
end
xnf(1,2,-2)
xn 値を行列に追加したいのですが、常にゼロ値しかありません - なぜですか?
私は Octave についてほとんど知りませんが、matlab では、値 xn を行列 A に追加したい場合、行列 A が必要な場合は、そのようにします。
function A=xnf(n,xn,c,A)
if n<=40
xn = xn^2+c;
A(n,n)=xn;
n=n+1;
A=xnf(n,xn,c,A);
end
end
関数内で使用されているすべての変数は、戻ると削除されるため、A マトリックスが必要な場合は必ず返すようにしてください。
指定した値 ( n=1
、xn=2
、c=-2
) の場合、得られる行列は、主対角線に沿って 2 で、それ以外はすべてゼロであり、 で作成できますA=diag(2*ones(40,1))
。
パラメータを変更する場合、このコードは Matlab で機能するため、オクターブで機能するはずです。
N=40;
V=zeros(1,N);
V(1)=xn;
for i=2:N
V(i)=V(i-1)^2+c;
end
A=diag(V);