azure011328

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
统计
 

乒乓球的考试项目比我想象的要简单了 希望今年技术组合也可以拿满分!

平平无奇上机实验课的一天 今天写了实验一 写了电子版以后又手写了一份 

加强了点印象

下午又继续完善了一下matlab的实验二 进行最速下降法的编写

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
% 定义目标函数
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;
% 最速下降法求解
% 设定初始点和迭代终止准则
x0_list = [2,-1,0.5,0;-1,-1,-1,-1;1,1,1,1 ;0.1,0.1,0.1,0.1]; % 多个不同的初始点
max_iter = 10000;
tol = 1e-5;
for i = 1:4
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 = [2*(x(1)+10*x(2))+40*(x(1)-x(4))^3;
20*(x(1)+10*x(2))+4*(x(2)-2*x(3))^3;
10*(x(3)-x(4))-8*(x(2)-2*x(3))^3;
-10*(x(3)-x(4))-40*(x(1)-x(4))^3];
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('初始点 (%g, %g,%g,%g)\n', x0(1), x0(2),x0(3),x0(4));
fprintf('迭代次数: %d\n', iter);
fprintf('最优点: (%g, %g,%g,%g)\n', x(1), x(2),x(3),x(4));
fprintf('最优函数值: %g\n', f(x));
fprintf('\n');
end

  

posted on   淮竹i  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
 
点击右上角即可分享
微信分享提示