- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Broyden方法求解非线性方程组的Matlab实现
Broyden方法求解非线性方程组的Matlab实现
注:matlab代码来自网络,仅供学习参考。
把以下代码复制在一个.m文件上
function [sol, it_hist, ierr] = brsola(x,f,tol, parms)
% Broydens Method solver, globally convergent
% solver for f(x) = 0, Armijo rule, one vector storage
%
% This code comes with no guarantee or warranty of any kind.
%
% function [sol, it_hist, ierr] = brsola(x,f,tol,parms)
%
% inputs:
% initial iterate = x
% function = f
% tol = [atol, rtol] relative/absolute
% error tolerances for the nonlinear iteration
% parms = [maxit, maxdim]
% maxit = maxmium number of nonlinear iterations
% default = 40
% maxdim = maximum number of Broyden iterations
% before restart, so maxdim-1 vectors are
% stored
% default = 40
%
% output:
% sol = solution
% it_hist(maxit,3) = scaled l2 norms of nonlinear residuals
% for the iteration, number function evaluations,
% and number of steplength reductions
% ierr = 0 upon successful termination
% ierr = 1 if after maxit iterations
% the termination criterion is not satsified.
% ierr = 2 failure in the line search. The iteration
% is terminated if too many steplength reductions
% are taken.
%
%
% internal parameter:
% debug = turns on/off iteration statistics display as
% the iteration progresses
%
% alpha = 1.d-4, parameter to measure sufficient decrease
%
% maxarm = 10, maximum number of steplength reductions before
% failure is reported
%
% set the debug parameter, 1 turns display on, otherwise off
%
debug=1;
%
% initialize it_hist, ierr, and set the iteration parameters
%
ierr = 0; maxit=40; maxdim=39;
it_histx=zeros(maxit,3);
maxarm=10;
%
if nargin == 4
maxit=parms(1); maxdim=parms(2)-1;
end
rtol=tol(2); atol=tol(1); n = length(x); fnrm=1; itc=0; nbroy=0;
%
% evaluate f at the initial iterate
% compu
文档评论(0)