首页 > 其他分享 >5.20

5.20

时间:2023-06-11 09:04:09浏览次数:40  
标签:opt iter fprintf 5.20 x0 grad norm

function [x_opt, f_opt, iter] = steepest_descent()

% 定义目标函数
f = @(x) 100*(x(1)^2 - x(2))^2 + (x(1) - 1)^2;

% 计算目标函数的梯度
grad_f = @(x) [400*x(1)*(x(1)^2 - x(2)) + 2*(x(1) - 1); -200*(x(1)^2 - x(2))];

% 定义终止准则
epsilon = 1e-5;

% 设置初始点
x0_list = [0, 0; -1, 1; 2, -2]; % 可根据需要尝试不同的初始点

for k = 1:size(x0_list, 1)
% 初始化变量
iter = 0;
x_opt = x0_list(k, :)';
f_opt = f(x_opt);
grad_norm = norm(grad_f(x_opt));

% 最速下降法迭代过程
while grad_norm >= epsilon
% 计算搜索方向
p = -grad_f(x_opt);

% 更新变量
alpha = line_search(x_opt, p, f, grad_f);
x_opt = x_opt + alpha * p;
f_opt = f(x_opt);
grad_norm = norm(grad_f(x_opt));

% 更新迭代次数
iter = iter + 1;
end

% 输出结果
fprintf('初始点:%s\n', mat2str(x0_list(k, :)));
fprintf('最优解:%s\n', mat2str(x_opt));
fprintf('最优值:%f\n', f_opt);
fprintf('迭代次数:%d\n', iter);
disp('----------------------');
end
end

function alpha = line_search(x, p, f, grad_f)
% 简单的线搜索方法:固定步长
alpha = 0.01;
end

标签:opt,iter,fprintf,5.20,x0,grad,norm
From: https://www.cnblogs.com/ruipengli/p/17472465.html

相关文章

  • 5.20每日总结(补)
     今天和队友总结了第一阶段,主要是验收第一阶段,在第一阶段任务完成后,有优点,也有不足,不足之处我们会根据老师的建议和要求在第二阶段改善,争取做到最好。第一阶段中,由于我们做的人脸识别系统缺少相应场景,在第二阶段中,我们会将产品放在场景中实践,在场景中可以使用,坚决以老师的要求:......
  • mysql5.5.20的安装步骤
    Mysql5.5.20的安装步骤:思路: 1. groupadd-rmysql useradd-gmysql-s/sbin/nologin-Mmysql tarzvxf/root/mysql-5.5.20-linux2.6-x86_64.tar.gz mkdir-p/usr/local/mysql mvmysql-5.5.20-linux2.6-x86_64/*/usr/local/mysql cd/usr/local/mysql/ chow......
  • 5.20 面向对象案例分析二
    classEmployee{privatelongempno;privateStringename;privatedoublesalary;privatedoublerate;publicEmployee(){}publicEmployee(longempno,Stringename,doublesalary,doublerate){this.empno=empno;this......
  • 5.20
    #include<stdio.h>main(){intm,n,temp,i;printf("Inputm&n:");scanf("%d%d",&m,&n);if(m<n){temp=m;m=n;n=temp;}for(i=n;i>0;i--)if(m%i==0&&n%i==0){printf("TheGCDof%dand%dis:%d\n",m,n,i);brea......
  • 2023.5.20
    今天学习了yolov5技术,但是配置还没弄好。哎。具体学习连接:yolov5环境准备  ......
  • 2023.5.20——软件工程日报
    所花时间(包括上课):6h代码量(行):0行博客量(篇):1篇今天,上午参观君乐宝企业,下午学习。我了解到的知识点:1.了解了一些数据库的知识;2.了解了一些python的知识;3.了解了一些英语知识;5.了解了一些Javaweb的知识;4.了解了一些数学建模的知识;6.了解了一些计算机网络的知识;......
  • day75(2023.5.20)
    1.通过Cookie实现客户端与服务端会话的维持 运行结果: 2.Cookie总结3.HttpSession对象的特点 4.HttpSession对象的创建 运行结果: 5.HttpSession对象的使用 运行结果:  6.HttpSession的销毁方式 运行结果: 在IE浏览器中......
  • 5.20
    代码时间:2h代码量(行):3百行相关事项:今天再次进行web实验四,通过使用JavaMVC模式设计简单的数据库管理系统,巩固使用JDBC技术访问数据库的方法,学习使用Java语言对服务器端进行编程,深入理解MVC网站设计模式的基本概念和框架结构。已经成功完成实验。。。。 今天的学校人格外的少......
  • 5.20打卡
      3.程序流程图4.代码实现#include<bits/stdc++.h>usingnamespacestd;intmain(){intt,a[5];longintk,i;for(i=95860;;i++){for(t=0,k=100000;k>=10;t++){a[t]=(i%k)/(k/10);k/=10;......
  • 5.20每日总结
    今天完成了人机交互设计的课堂作业,对一个搜索软件进行了一些评价。然后对整个团队中其他团队成员完成的任务自己也进行了一些了学习,弥补了自己的一些不足,然后对其他知识进行了期末的收尾和复习总结。......