次のことを実装したいと思います: 特定の機能に対してニュートン ラフソン アルゴリズムを実行するスクリプトを作成しました。ここで、以前に見つかったゼロを次の最初の開始点として使用して、それ自体を繰り返すスクリプトを書きたいと思います。
x=zeros(1,31);
for i=1:31
x(i)=(i-1)/10;
end
y0=0;
for i=1:length(x)
y0=newton(x(i),y0)
end
したがって、このスクリプトで newton(x,y0) を実行する必要があります。したがって、newton(0,0) で始まり、新しい値 y0 が検出され、スクリプトで newton(0.1,y0) などを実行する必要があります。値 y0 を見つけるために必要な反復を行います。
私の質問が明確であることを願っています。よろしくお願いします。
繰り返しますが、要素 0、0.1、0.2、...、3 を持つベクトル x があります。初期値 y0 で x(i) を実装すると、newton(x,y) によって値が返されます。次に、スクリプトで x の値 x(2) を使用して newton(x,y) を再度実行し、前に検出された y0 を実行したいので、ある種のループが必要ですが、実行できません.. :(
編集
これは私のnewton
機能です:
function nulpunt=newton(x,y0)
tolerantie=1e-8;
iteraties=0;
while (abs(functie1(y0,x))>tolerantie)
y0=y0-functie1(y0,x)/afgeleide_functie1(y0);
iteraties=iteraties+1;
end
if iteraties==100;
fprintf('Maximaal aantal iteraties bereikt')
else
fprintf('De benadering van het nulpunt y*(%.2f) is %.4f gevonden in %d iteraties.\n',x,y0,iteraties)
end
end