首页 > 其他分享 >日报

日报

时间:2023-06-10 11:33:56浏览次数:32  
标签:迭代 point 日报 步长 Optimal x0 grad

工程数学 实验

1. 算法步骤

    首先定义了目标函数f,然后设置了多个不同的初始点,和最大迭代次数和精度要求。接着进行循环,每次取出一个初始点x0,并把迭代点x初始化为它。同时设定步长a和梯度的范数grad_norm的初始值为正无穷。

然后进入迭代循环:每次计算目标函数的梯度grad,并根据负梯度方向计算下一个迭代点x_new。如果新的目标函数值f(x_new)比当前点f(x)更小,说明朝着正确的方向移动了,可以加大步长;否则说明步长过大会跳过最优点,需要缩小步长。最后更新梯度的范数grad_norm,如果达到精度要求或超过最大迭代次数就退出循环。

在循环结束后,输出迭代结果:初始点、迭代次数、最优点和最优函数值。最后把所有结果输出即可。

 

   2. 代码

% 定义目标函数

f = @(x) 100*(x(2)-x(1)^2)^2 + (1-x(1))^2;

 

% 最速下降法求解

% 设定初始点和迭代终止准则

x0_list = [-2, 2; -3, 3; 0.5, -1.5]; % 多个不同的初始点

max_iter = 10000;

tol = 1e-5;

 

for i = 1:length(x0_list)

    x0 = x0_list(i,:);

    x = x0';

    a = 0.01; % 步长

    iter = 0;

    grad_norm = inf; % 初始化为正无穷

    while grad_norm > tol && iter < max_iter

        iter = iter + 1;

        grad = [400*x(1)^3-400*x(1)*x(2)+2*x(1)-2;

                 200*(x(2)-x(1)^2)];

        x_new = x - a*grad;

        if f(x_new) < f(x)

            x = x_new;

            a = a * 1.1; % 放大步长

        else

            a = a * 0.5; % 缩小步长

        end

        grad_norm = norm(grad);

    end

    fprintf('Initial point (%g, %g)\n', x0(1), x0(2));

    fprintf('Number of iterations: %d\n', iter);

    fprintf('Optimal point: (%g, %g)\n', x(1), x(2));

    fprintf('Optimal function value: %g\n', f(x));

    fprintf('\n');

end

   3. 结果

Initial point (-2, 2)

Number of iterations: 413

Optimal point: (-0.300609, 0.00015509)

Optimal function value: 0.0110275

 

Initial point (-3, 3)

Number of iterations: 560

Optimal point: (-0.300585, 0.000152774)

Optimal function value: 0.0110275

 

Initial point (0.5, -1.5)

Number of iterations: 87

Optimal point: (1, 1)

Optimal function value: 0

 

四、心得体会

最速下降法是一种常用的数值优化算法,可以用来求解多元函数的最小值。在实验中,我更加熟练的掌握了该方法的使用。最速下降法是一种经典的优化算法,在很多场景下都具有实用价值。

标签:迭代,point,日报,步长,Optimal,x0,grad
From: https://www.cnblogs.com/yankeqi/p/17470964.html

相关文章

  • 日报 事后诸葛亮
    我们的软件一开始的首要目的就是实现人像衣像的结合,从而达到虚拟试衣的目标。整体方向还算很清楚,但却是缺乏对典型用户和典型场景精确的描述。项目实施之前并没有制定太多的计划,这就直接导致后续遇到问题的时候比较手足无措。当遇到团队成员意见分歧时,我们一般通过商讨采用最直......
  • 人民日报推荐:2023年必读的100本经典好书
    中国篇 1.《论语·大学·中庸》  儒家学说经典合辑,阐述儒学哲学核心思想,汇集学习与传承的篇章。2.《干家诗·神童诗·名贤集·增广贤文》  行孝道、做善事,珍惜时间,勤学苦读体现了其独特的文化魅力和思想价值。3.《弟子规·三字经·百家姓·干字文》  被......
  • 软件工程日报——个人总结
    今天,我想对自己进行一次个人总结1、回顾课程在我刚开始本学期的学习时,我写了一个开课博客,在博客中,我提到了本学期的目标:在保证软件工程不挂科的前提下,完成更多的安卓应用的开发,了解更多的软件知识,加强增删改查的练习;目标就是能够完成安卓应用的开发在结课之余,回顾这个学期的表......
  • 2023.6.3——软件工程日报
    所花时间(包括上课):6h代码量(行):0行博客量(篇):1篇今天,上午学习,下午学习。我了解到的知识点:1.了解了一些数据库的知识;2.了解了一些python的知识;3.了解了一些英语知识;5.了解了一些Javaweb的知识;4.了解了一些数学建模的知识;6.了解了一些计算机网络的知识;......
  • 2023.6.2——软件工程日报
    所花时间(包括上课):6h代码量(行):0行博客量(篇):1篇今天,上午学习,下午考web。我了解到的知识点:1.了解了一些数据库的知识;2.了解了一些python的知识;3.了解了一些英语知识;5.了解了一些Javaweb的知识;4.了解了一些数学建模的知识;6.了解了一些计算机网络的知识;......
  • 人民日报推荐的Excel表格打印技巧,太实用了!(推荐收藏)
    用Excel制作表格人人都会,但你能把表格打印得精准无误、无缺无漏吗?工作表很长,可只有第一页有标题行?明明只想打一页纸,却总是多两行数据跑到第二页上?人民日报推荐的Excel表格打印技巧,推荐收藏,有用!好了,以上就是今天的Excel干货技巧分享,你Get到了吗?别忘记动手练习鸭~小技巧也有大作用,每......
  • 2023.6.1——软件工程日报
    所花时间(包括上课):6h代码量(行):0行博客量(篇):1篇今天,上午学习,下午学习。我了解到的知识点:1.了解了一些数据库的知识;2.了解了一些python的知识;3.了解了一些英语知识;5.了解了一些Javaweb的知识;4.了解了一些数学建模的知识;6.了解了一些计算机网络的知识;......
  • 2023.5.31——软件工程日报
    所花时间(包括上课):6h代码量(行):0行博客量(篇):1篇今天,上午学习,下午考数据库。我了解到的知识点:1.了解了一些数据库的知识;2.了解了一些python的知识;3.了解了一些英语知识;5.了解了一些Javaweb的知识;4.了解了一些数学建模的知识;6.了解了一些计算机网络的知识;......
  • 今日报告
    总结--明天数据库考试,今天复习+打代码代码时间(包括上课):2.5h代码量(行):大概400行博客数量(篇):3篇了解到的相关知识点:1、数据库知识的查漏补缺;2、SpringBoot的相关应用;3、Web知识的复习;......
  • 2023.5.30——软件工程日报
    所花时间(包括上课):6h代码量(行):0行博客量(篇):1篇今天,上午学习,下午学习。我了解到的知识点:1.了解了一些数据库的知识;2.了解了一些python的知识;3.了解了一些英语知识;5.了解了一些Javaweb的知识;4.了解了一些数学建模的知识;6.了解了一些计算机网络的知识;......