首页 > 其他分享 >2024/6/5 工程数学 实验四

2024/6/5 工程数学 实验四

时间:2024-06-05 10:22:44浏览次数:20  
标签:10 %. iter 2024 实验 alpha 数学 x0 grad

f(x)=(x1​+10x2​)2+5(x3​−x4​)2+(x2​−2x3​)4+10(x1​−x4​)4

我们将这个函数实现为MATLAB代码,并使用FR共轭梯度法对其进行优化。首先需要定义目标函数及其梯度。然后,使用前面介绍的FR共轭梯度法进行优化。

目标函数和梯度的定义

我们需要先定义目标函数 f(x)f(x)f(x) 及其梯度 ∇f(x)\nabla f(x)∇f(x)。

 1 function [x, fval, iter] = fr_cg(f, grad_f, x0, tol, max_iter)
 2     % f: 待优化的目标函数句柄
 3     % grad_f: 目标函数的梯度句柄
 4     % x0: 初始点
 5     % tol: 终止准则
 6     % max_iter: 最大迭代次数
 7 
 8     % 初始化
 9     x = x0;
10     g = grad_f(x);
11     d = -g;
12     iter = 0;
13     
14     while norm(g) > tol && iter < max_iter
15         % 计算步长alpha
16         alpha = line_search(f, grad_f, x, d);
17         
18         % 更新x
19         x_new = x + alpha * d;
20         
21         % 计算新的梯度
22         g_new = grad_f(x_new);
23         
24         % 计算beta
25         beta = (g_new' * g_new) / (g' * g);
26         
27         % 更新搜索方向
28         d = -g_new + beta * d;
29         
30         % 更新x和g
31         x = x_new;
32         g = g_new;
33         
34         % 增加迭代次数
35         iter = iter + 1;
36     end
37     
38     fval = f(x);
39 end
40 
41 function alpha = line_search(f, grad_f, x, d)
42     % 使用简单的线搜索方法来确定步长alpha
43     alpha = 1;
44     rho = 0.8;
45     c = 1e-4;
46     
47     while f(x + alpha * d) > f(x) + c * alpha * grad_f(x)' * d
48         alpha = rho * alpha;
49     end
50 end
 1 % 定义目标函数
 2 f = @(x) (x(1) + 10 * x(2))^2 + 5 * (x(3) - x(4))^2 + (x(2) - 2 * x(3))^4 + 10 * (x(1) - x(4))^4;
 3 
 4 % 定义目标函数的梯度
 5 grad_f = @(x) [2 * (x(1) + 10 * x(2)) + 40 * (x(1) - x(4))^3;
 6                20 * (x(1) + 10 * x(2)) + 4 * (x(2) - 2 * x(3))^3;
 7                10 * (x(3) - x(4)) - 8 * (x(2) - 2 * x(3))^3;
 8                -10 * (x(3) - x(4)) - 40 * (x(1) - x(4))^3];
 9 
10 % 选取初始点
11 initial_points = [0, 0, 0, 0; 1, 1, 1, 1; -1, -1, -1, -1];
12 
13 % 设置终止准则和最大迭代次数
14 tol = 1e-6;
15 max_iter = 1000;
16 
17 % 运行实验并输出结果
18 for i = 1:size(initial_points, 1)
19     x0 = initial_points(i, :)';
20     [x, fval, iter] = fr_cg(f, grad_f, x0, tol, max_iter);
21     fprintf('初始点: (%.1f, %.1f, %.1f, %.1f)\n', x0(1), x0(2), x0(3), x0(4));
22     fprintf('最优解: (%.6f, %.6f, %.6f, %.6f)\n', x(1), x(2), x(3), x(4));
23     fprintf('最优值: %.6f\n', fval);
24     fprintf('迭代次数: %d\n', iter);
25     fprintf('-----------------------------\n');
26 end

 

标签:10,%.,iter,2024,实验,alpha,数学,x0,grad
From: https://www.cnblogs.com/Lyh3012648079/p/18232430

相关文章

  • 赶紧收藏!2024 年最常见 20道 Kafka面试题(八)
    上一篇地址:赶紧收藏!2024年最常见20道Kafka面试题(七)-CSDN博客十五、Kafka中生产者运行流程是怎样的?Kafka生产者的运行流程涉及多个步骤,这些步骤确保了消息能够高效、可靠地从生产者发送到Kafka集群。以下是生产者运行流程的详细步骤:初始化:首先,生产者需要初始化,这包括设......
  • 第三届机器人、人工智能与信息工程国际学术会议(RAIIE 2024)
    【ACM独立出版/Fellow大咖云集】2024年第二届机器人、人工智能与信息工程国际学术会议(RAIIE2024)20243rdInternationalSymposiumonRobotics,ArtificialIntelligenceandInformationEngineering大会官网:https://ais.cn/u/juURra大会时间:2024年07月05-07日大会地点:新......
  • 2024奥维互动地图最新
    随着科技的飞速发展,地图服务已经成为我们日常生活中不可或缺的一部分。在这个信息爆炸的时代,一款优秀的互动地图不仅能为我们提供准确的导航,还能带来丰富的用户体验。而作为业界翘楚的奥维互动地图,在2024年迎来了其图源的全面升级与创新。奥维互动地图介绍:奥维互动地图是一......
  • 2024玩转短视频红利,拆解爆款短视频隐藏的秘密,普通人也能月入过万
    大家好!今天我们要一起探索短视频的神奇世界,学习如何制作出让人眼前一亮的爆款视频,让普通人也能实现月入过万的梦想。课程目录概览:这是一份精心设计的课程目录,每一课都是通往成功的阶梯。基础篇:第1课:我们从分析用户需求开始,就像侦探一样,找出爆款视频背后的五层逻辑。第2......
  • 实验六
    **TASK1**点击查看代码//P286例8.17//对教材上的程序作了微调整,把输出学生信息单独编写成一个函数模块//打印不及格学生信息和所有学生信息程分别调用#include<stdio.h>#include<string.h>#defineN3 //运行程序输入测试时,可以把这个数组改小一些输入测试......
  • 【教学类-13-05】20240604《数字色块图-5*7*8-A4横板-横切》中4班
    背景需求:【教学类-13-04】20230404《数字色块图+判断密码是否正确-5*7*8-A4横板-横切》(中班主题《我爱我家》)_图案密码色块-CSDN博客文章浏览阅读530次。【教学类-13-04】20230404《数字色块图+判断密码是否正确-5*7*8-A4横板-横切》(中班主题《我爱我家》)_图案密码色块......
  • 实验10 数据库索引创建与管理操作
    1、使用MySQL Navicat图形工具创建、管理索引在JXGL数据库中进行以下操作:创建索引。为students表的sname字段创建索引ix_sname。CREATEINDEXix_snameonstudents(sname)在students表的class和sdept字段上创建名为ix_cs的组合索引。CREATEINDEXix_csonstud......
  • 实验一 交换网络组建
    1.简单局域网环境的搭建第一部分流程如下:(1)分配一个192.168.1.0/24的网段(2)给3个主机分配IP地址依次为192.168.1.1、192.168.1.2、192.168.1.3(3)熟悉基本的命令,如ping命令、ipconfig命令、tracert命令(4)实现同路由器下的主机连通性测试1.1特定网段192.168.168.1.......
  • 2024AIGC应用层十大趋势
    或许你已经关注到了,过去一年,各种大模型、AIGC应用,已经像电子氧气一样:无、处、不、在。而且这种“无处不在”可能还会超出你的预期和想象。IDC发布的《2024AIGC应用层十大趋势》报告就明确了“被AIGC包围”,确实是事实。除此之外,这份权威报告里,还有几点AI的方向也给我激动坏了——......
  • LitCTF 2024(公开赛道)部分 wp
    目录文章目录一、MISC1、涐贪恋和伱、甾―⑺dé毎兮毎秒2、你说得对,但__3、原铁,启动!4、EverywhereWeGo5、盯帧珍珠6、舔到最后应有尽有7、关键,太关键了!8、女装照流量9、Thelove二、CRYPTO1、small_e2、common_primes3、CRT4、little_fermat5、真·EasyRSA三、REVE......