LCP(線形相補性問題)のNewton-Fischer再構成を使用して、ニュートン方程式系の異なるサブソルバーの結果を分析しようとしています。今まで私は正確なソルバを実装しました - Gauss-Siedelと、bicg matlabをJ * h = -pの式のサブソルバーとして使用するニュートン修正法(ここで、Jはヤコビアンです、pはフィッシャー関数の値であり、hが私の実現ステップです)。私はbicgのsubsolverと正確なソルバーを実装したコードのbicg以外の反復サブソルバーは、MATLABのニュートン方程式を解くのに使用できますか?
パート:
if itt
% use iterative solver for newton eq
while ~all(fischer(x, A*x+b) == 0) & its < max_it
% compute the Jacobian
J = eval_jacobian(A, b, x);
% compute the value of the Fischer function
p = fischer(x, A*x + b);
% the natural merit function for convergence measure
residual(its) = .5*(p'*p);
% the newton eq, solve J*h = -p
h = bicg(J, -p, eps, s_its);
% update the solution vector
x = x + h;
% increment the iteration counter
its = its + 1;
end
else
% the exact solver for newton equation
while ~all(fischer(x, A*x+b) == 0) & its < max_it
% compute the Jacobian
J = eval_jacobian(A, b, x);
% compute the value of the Fischer function
p = fischer(x, A*x + b);
% the natural merit function for convergence measure
residual(its) = .5*(p'*p);
% the newton eq, solve J*h = -p
h = - J/p;
% update the solution vector
x = x + h;
% increment the iteration counter
its = its + 1;
end
だから、私の質問は、他の反復サブソルバーはあなたが使用する何でしょうか?私はmatlabでそれらのための関数がない場合、それらのためのコードを実装しても構いません。私はこれがもっと理論的な疑問であることを理解しています。 ありがとうございます。
これは魅力的な質問です。私はそれがSEの数学に属しているのかどうか疑問に思っていますか? – macduff