連立方程式とヤコビ行列を含む m ファイルにニュートン法を実装するプログラムを作成しています
function x = fun(x,mode)
% compute F(x)
if mode == 1
x = [ 3*x(1)^2 + 5*x(2)^2 + x(2) - 1;
x(1)^2 - 6*x(1) - 3*x(2) - 2];
end
% compute the Jacobian DF(x)
if mode == 2
x = [ 1*x(1) 3*x(2)+1; 6*x(1)-2 -2];
end
return;
これが私が始めた計算ファイルです:
results.stat = 0;
if nargin == 3
epsilon = param.epsilon;
nMax = param.nMax;
else
epsilon = 1.0e-8;
nMax = 500;
end
F = fun(x,1)
J = fun(x,2)
end
for k = 1:nMax
dx = -J\f
x=x+dx
私は最終的に収束を確認し、エラーノルムを保存し、収束せずに最大反復回数に達したかどうかも確認したいと考えています。ここまでは大丈夫そうですか?