我们已为描述的示例问题提供了实现代码。
我们展示这些示例及其详细输出结果。我们包含这些输出,以便读者可以检查其软件包副本是否正常执行。用户应在以下目录中运行 MATLAB(版本5或兼容版本):
>> !ls Fline.m dgrad.m grad.m move.m sg_min.m README dimension.m gradline.m nosym.m sg_newton.m clamp.m dtangent.m invdgrad_CG.m partition.m sg_prcg.m connection.m examples invdgrad_MINRES.m sg_dog.m tangent.m dFline.m finitediff ip.m sg_frcg.m(注意,可能还存在额外的子目录
docs/
或@cell/
。)
每个示例问题在examples
子目录中都有相应的子目录。
>> !ls examples jordan ldatoy procrustes simdiag simschur tracemin这些子目录中的每一个都包含F(Y)(dF(Y)和ddF(Y,H))的实现,设置F(Y)的全局参数(此函数必须在其他任何函数之前调用),一个用于生成初始猜测的
guess
函数,以及可能用于计算F(Y)、相关量或特定问题实例的一些辅助函数。
>> !ls examples/ldatoy F.m dF.m guess.m Kinetic.m ddF.m parameters.m >> !ls examples/jordan Block.m dBlock.m ddF.m guess.m post.m F.m dF.m frank.m parameters.m
我们在支持的优化模式('newton'、'dog'、'frcg'和'prcg')和'euclidean'度量下执行了这些示例。对于相同问题的不同实例,不同的模式可能表现最佳,因此读者不应认为某种特定模式在所有实例中都会表现出优越性能。