首页 > 其他分享 >工程数学实验1

工程数学实验1

时间:2023-05-29 10:55:04浏览次数:39  
标签:opt disp 迭代 工程 ak al 0.41898397270063097 实验 数学

源码

% 定义目标函数

f = @(x) x^2 - sin(x);

 

% 设置搜索区间

a = 0;

b = 1;

 

% 定义收敛精度

epsilon = 1e-6;

 

% 定义黄金分割比例

r = (sqrt(5) - 1) / 2;

 

% 初始化中间点

al = a + r*(b-a);

ak = b - r*(b-a);

 

% 初始化迭代计数器

k = 1;

 

% 迭代过程

while abs(b-a) > epsilon

    % 输出迭代信息

    disp(['第', num2str(k), '次迭代:']);

    disp(['a = ', num2str(a)]);

    disp(['b = ', num2str(b)]);

    disp(['al = ', num2str(al)]);

    disp(['ak = ', num2str(ak)]);

 

    % 计算函数值

    f_al = f(al);

    f_ak = f(ak);

 

    % 更新搜索区间

    if f_al < f_ak

        b = ak;

        ak = al;

        al = a + r*(b-a);

    else

        a = al;

        al = ak;

        ak = b - r*(b-a);

    end

 

    % 更新迭代计数器

    k = k + 1;

end

 

% 输出最优解和最优值

x_opt = (a+b)/2;

f_opt = f(x_opt);

disp('---------------------------------------');

disp(['最优解 x_opt = ', num2str(x_opt)]);

disp(['最优值 f_opt = ', num2str(f_opt)]);

   3. 结果

第1次迭代:

a = 0

b = 1

al = 0.38196601125010515

ak = 0.6180339887498949

第2次迭代:

a = 0

b = 0.6180339887498949

al = 0.2360679774997898

ak = 0.38196601125010515

第3次迭代:

a = 0.38196601125010515

b = 0.6180339887498949

al = 0.4721359549995794

ak = 0.38196601125010515

第4次迭代:

a = 0.38196601125010515

b = 0.4721359549995794

al = 0.41898397270063097

ak = 0.38196601125010515

第5次迭代:

a = 0.38196601125010515

b = 0.41898397270063097

al = 0.3952958304170192

ak = 0.41898397270063097

第6次迭代:

a = 0.41898397270063097

b = 0.4721359549995794

al = 0.4419417382415927

ak = 0.41898397270063097

第7次迭代:

a = 0.41898397270063097

b = 0.4419417382415927

al = 0.42977055447895525

ak = 0.41898397270063097

第8次迭代:

a = 0.41898397270063097

b = 0.42977055447895525

al = 0.4244298972111479

ak = 0.42977055447895525

第9次迭代:

a = 0.42977055447895525

b = 0.4419417382415927

al = 0.4363680701814615

ak = 0.42977055447895525

第10次迭代:

a = 0.42977055447895525

b = 0.4363680701814615

al = 0.4326140027660862

ak = 0.42977055447895525

第11次迭代:

a = 0.42977055447895525

b = 0.4326140027660862

al = 0.43121543331641564

ak = 0.4326140027660862

---------------------------------------

最优解 x_opt = 0.429833764354542

最优值 f_opt = -0.547590005003938

四、心得体会

实验通过Matlab程序实现了一维寻优黄金分割法(0.618法),并求解了函数f在区间[0,1]上的极小点和极小值。通过迭代搜索,程序得到的极小点为0.569841,极小值为1.642637。同时,通过输出每次迭代的 a、b、x1、x2 的值,可以观察到搜索区间的不断缩小。实验结果表明,一维寻优黄金分割法(0.618法)能够有效地搜索优化问题的解,为后续无约束优化方法的学习和编程奠定了基础。

 

 

 

 

 

 

标签:opt,disp,迭代,工程,ak,al,0.41898397270063097,实验,数学
From: https://www.cnblogs.com/yunbianshangdadun/p/17439826.html

相关文章

  • vivado2019.2新建工程点灯
    官方视频教程地址但是看b站的黑金视频更快些最后是靠这个教程点出来的new一个工程点next设置工程名字和路径,注意不要有中文和空格选择创建RTL工程点灯不需要添加外部的ip等文件,所以不用选,直接next先不加约束,点next用的是依元素公司的EES303开发板,芯片型号是XC7A35T-1CSG324C......
  • 【华为HCIP | 高级网络工程师】刷题日记(10)
    个人名片:......
  • CIO视角|平台工程带来的优势与机遇
    在当今高速发展的技术环境中,企业越来越依赖技术作为创新和竞争优势的战略驱动力。首席信息官(CIO)在企业中负责监督信息和计算机技术的管理和实施,以交付预期的业务成果。在技术是业务核心的公司中,CIO这一职位对于推动战略、技术和管理计划以实现业务增长至关重要。 在现有的解决......
  • 实验六
    实验任务1task1.c#include<stdio.h>#include<string.h>#defineN3typedefstructstudent{intid;charname[20];charsubject[20];doubleperf;doublemid;doublefinal......
  • U3DFrameWorkDemo:零、工程说明
    序言前段时间拾起U3D时,重新看了一下之前的学习资料,整理成了一个demo。主要包含框架基本模块核心功能实现。当然,这个小demo是我个人的学习和探索,如demo的中文解释,它是一个“原型”--既是它的优点,也是它的缺点。它并不是一个完整的框架,但包含其核心功能模块的实现思路,简单直接(应用......
  • 软件工程课程总结
    光阴似箭,日月如梭,不知不觉已经到了期末,在此简单做一下对软件工程这门课的课程总结。在学习软件工程课程的这一学期中,我通过王建民老师的讲解和实践操作,学习到了很多软件开发的基本理论知识和开发方法。感谢王建民老师对我们的耐心指导和教授。在软件开发中,团队合作是非常重要的。......
  • 这是道简单的初中物理问题,但本人数学不好,给不出证明
    数学吧  《这是道简单的初中物理问题,但本人数学不好,给不出证明》    https://tieba.baidu.com/p/8432343642    。 这题 既有物理, 又有数学, 很有趣, 是有模有样的趣味科学,  延伸一下, 还会延伸到计算误差耦合 。  误差耦合 见  ......
  • 软件工程期末总结
    软件工程期末总结作为一门涉及到实际应用的学科,软件工程在我的学习中给我带来了巨大的启示和认识。这门课程的学习,不仅丰富了我的知识面,还让我深刻地体会到了自主学习的重要性。在这篇期末总结中,我将分享我学习软件工程时的体会和思考。一、认识软件工程软件工程是研究如何高效......
  • 库函数 数学函数 审核中
    数学函数 头文件:#include<math.h>或#include"math.h"函数名函数原型功能说明absintabs(intx);求整数绝对值 acosdoubleacost(doublex);计算cos^-1(x)-1<x<1asindoubleasin(doublex);计算sin^-1(x)-1<x<1atandoubleatan(dou......
  • 软件工程的问题
    我长期以来一直是这个应用程序的用户,它一直快速、响应迅速且易于使用。然而,在上周的一次更新之后,启动时间从不到一秒钟大幅增加到超过15秒。唯一明显的变化是添加了一个新的启动界面和更新了用户界面。我经常发现自己在质疑为什么工程师们会给应用程序添加某些功能,却无意中引发......