1

連立方程式とヤコビ行列を含む 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  

私は最終的に収束を確認し、エラーノルムを保存し、収束せずに最大反復回数に達したかどうかも確認したいと考えています。ここまでは大丈夫そうですか?

4

0 に答える 0