工程数学上机实验(三)

 

newton.m

  % 定义目标函数及其梯度和海森矩阵
  f = @(x) 100*(x(2)-x(1)^2)^2 + (1-x(1))^2;
  grad_f = @(x) [400*x(1)^3-400*x(1)*x(2)+2*x(1)-2;
  200*(x(2)-x(1)^2)];
  hes_f = @(x) [1200*x(1)^2-400*x(2)+2, -400*x(1);
  -400*x(1), 200];
   
  % 初始值和终止准则
  x0_list = [1.2, 1.2; -1.2, 1.2; -1.2, -1.2; 1.2, -1.2; 0, 0]; % 多个不同的初始点
  tol = 1e-5;
   
  for i = 1:length(x0_list)
  x0 = x0_list(i,:);
  x = x0';
  iter = 0;
  grad_norm = inf; % 初始化为正无穷
  while grad_norm > tol
  iter = iter + 1;
  grad = grad_f(x);
  hes = hes_f(x);
  d = -hes \ grad;
  x_new = x + d;
  grad_norm = norm(grad);
  x = x_new;
  end
  fprintf('初始点 (%g, %g)\n', x0(1), x0(2));
  fprintf('迭代次数: %d\n', iter);
  fprintf('最优解: (%g, %g)\n', x(1), x(2));
  fprintf('最优函数值: %g\n', f(x));
  fprintf('\n');
  end

运行结果:

posted @   意い十三章  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
点击右上角即可分享
微信分享提示