⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 naemodel copy.m

📁 MDPSAS工具箱是马里兰大学开发的
💻 M
字号:
function A = naemodel(classname,var,param,solverset)% naemodel.m A nonlinear algebraic equation model (naemodel) object%            constructor method. Called as%%          A = naemodel(classname,var,param,solverset)%% INPUT PARAMETERS%  classname : a string of module class name%        var : a MATLAB assocarray object for the variables%      param : a MATLAB assocarray object for the parameters%  solverset : a MATLAB assocarray with the following keys%               nmax  : max Newton iterations (default = 10)%               lsmax : max line search iterations (default = 10)%               jup   : iterations performed before jacobian is%                              updated (default = 1)%               nkvec : number of Krylov vectors to be used%                              in newtonkrylov.m (default = 10)%               vmin  : lower bound on variable values after update%                              (default = [])%               vmax  : upper bound on variable values after update%                              (default = [])%               plot  : if set to 1, plots solutions at each iteration%                              (default = 0)%% OBJECTS RETURNED%          A : an naemodel object with data fields%               A.var       : variable names and values%               A.param     : parameter names and values%               A.id        : double value%               A.solverset : parameters for the various solvers%               A.resid     : residual value cell array%               A.residflag : 1 if the current residual is valid%                             0 if any state or parameter was reset% Copyright (c) by Raymond A. Adomaitis, 1998-2005if nargin < 3   param = assocarray;   endif nargin < 2   var = assocarray;   end   if nargin < 1   error('wrong input')   endif ~isa(var,'assocarray')   error('var must be an associative array (assocarray)')   endif ~isa(param,'assocarray')   error('param must be an associative array (assocarray)')   endif ~isa(classname,'char')    error('classname must be a char/string')end   % RAA 5/12/04% vmin = var;% vmax = vmin;% vkey = keys(vmin);% if ~( length(vkey) == 1 & isempty(vkey{1}) )%    for i = 1:length(vkey)%       vmin = setval(vmin,-1e99+0*getval(vmin,vkey{i}),vkey{i});%       vmax = setval(vmax, 1e99+0*getval(vmax,vkey{i}),vkey{i});%       end%    endif nargin < 4   vmin = [];   vmax = [];   solverset = assocarray({'nmax',10,'lsmax',10,'jup',1,'nkvec',10,'plot',0,...                           'vmin',vmin,'vmax',vmax});   endif ~isa(solverset,'assocarray')   error('solverset must be an associative array (assocarray)')   endsolverset = setval(solverset,vmin,'vmin');solverset = setval(solverset,vmax,'vmax');B = solver(classname,var,param,solverset);A = class(struct([]),'naemodel',B);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -