首页 > 其他分享 >日报 数学

日报 数学

时间:2023-06-10 11:45:29浏览次数:43  
标签:xm 日报 fx1 数学 alList x2 fprintf x1

 工程数学实验

 1. 算法步骤

    黄金分割法也叫0.618法,是一种基于区间收缩的极小值搜索算法。

比如以 [ a , b ] [a,b][a,b] 为区间,产生两个内点

x 1 = a + 0.382 ∗ ( b − a ) x 2 = a + 0.618 ∗ ( b − a ) x_1 = a + 0.382*(b-a)\\ x_2 = a + 0.618*(b-a)

x

1

 =a+0.382∗(b−a)

x

2

 =a+0.618∗(b−a)

 

然后根据 f ( x 1 ) , f ( x 2 ) f(x_1),f(x_2)f(x

1

 ),f(x

2

 ) 的大小进行区间更新:

 

如果 f ( x 1 ) < f ( x 2 ) f(x_1)<f(x_2)f(x

1

 )<f(x

2

 ),区间变为 [ x 1 , b ] [x_1,b][x

1

 ,b]

如果 f ( x 1 ) &gt; f ( x 2 ) f(x_1)&gt;f(x_2)f(x

1

 )>f(x

2

 ),区间变为 [ a , x 2 ] [a,x_2][a,x

2

 ]

 

  2. 代码

封装好的golds函数:

function [xm,fm,aList,bList,alList,akList] = golds(f,a,b,tol)

% f: 待优化的目标函数

% a,b: 初始区间

% tol: 精度要求

% xm,fm: 最优解和相应的最优函数值

 

% 黄金分割比例

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

% 初始值

L = b-a;

x1 = a + (1-r)*L;

x2 = a + r*L;

fx1 = f(x1);

fx2 = f(x2);

 

% 记录每次迭代的值

i = 1;

aList(i) = a;

bList(i) = b;

alList(i) = x1;

akList(i) = x2;

 

% 迭代计算

while L > tol

    if fx1 > fx2

        a = x1;

        x1 = x2;

        fx1 = fx2;

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

        fx2 = f(x2);

    else

        b = x2;

        x2 = x1;

        fx2 = fx1;

        x1 = a + (1-r)*(b-a);

        fx1 = f(x1);

    end

    i = i+1;

    aList(i) = a;

    bList(i) = b;

    alList(i) = x1;

    akList(i) = x2;

    L = b-a;

end

 

% 输出结果

xm = (a+b)/2;

fm = f(xm);

end

 

然后调用 golds 函数:

% 定义函数

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

% 定义区间和精度

a = 0; b = 1; tol = 1e-6;

% 调用 golds 函数求解

[xm,fm,aList,bList,alList,akList] = golds(f,a,b,tol);

% 输出结果

fprintf('The minimum point is %f, and the minimum value is %f.\n', xm, fm);

fprintf('The a values are:\n'); disp(aList);

fprintf('The b values are:\n'); disp(bList);

fprintf('The al values are:\n'); disp(alList);

fprintf('The ak values are:\n'); disp(akList);

标签:xm,日报,fx1,数学,alList,x2,fprintf,x1
From: https://www.cnblogs.com/yankeqi/p/17470988.html

相关文章

  • 日报
    工程数学实验1.算法步骤   首先定义了目标函数f,然后设置了多个不同的初始点,和最大迭代次数和精度要求。接着进行循环,每次取出一个初始点x0,并把迭代点x初始化为它。同时设定步长a和梯度的范数grad_norm的初始值为正无穷。然后进入迭代循环:每次计算目标函数的梯度grad,并根......
  • 日报 事后诸葛亮
    我们的软件一开始的首要目的就是实现人像衣像的结合,从而达到虚拟试衣的目标。整体方向还算很清楚,但却是缺乏对典型用户和典型场景精确的描述。项目实施之前并没有制定太多的计划,这就直接导致后续遇到问题的时候比较手足无措。当遇到团队成员意见分歧时,我们一般通过商讨采用最直......
  • [Week 20]每日一题(C++,图论,数学,搜索)
    目录T1[Daimayuan]Collision(C++,多源最短路)题目描述输入描述输出描述样例输入1样例输出1样例输入2样例输处2数据范围解题思路T2[Daimayuan]农田划分(C++,数学,BFS)题目描述题目输入题目输出样例输入1样例输出1样例输入2样例输出2数据范围解题思路T3[Daimayuan]三段式(C++,数组前缀......
  • Python使用tkinter组件Label显示简单数学公式
    任务描述:使用Python+tkinter编写GUI程序界面,使用Label组件显示简单数学公式。参考代码:运行效果:......
  • Python助力中学数学教学:绘图验证反比例函数与矩形交点的关系
    昨天下午,我正在看书,娃过来说“老爸,考你个数学题看你会不会啊”,我一想不过是九年级的数学题而已,岂能难的倒我,于是欣然答应。题目如下:如图,矩形左下角O为坐标原点,A为x正轴上一点,C为y正轴上一点,反比例函数的图像与矩形OABC的边AB交于E点,与BC交于D点。已知三角形ODE的面积为5,且线段BD长......
  • 人民日报推荐:2023年必读的100本经典好书
    中国篇 1.《论语·大学·中庸》  儒家学说经典合辑,阐述儒学哲学核心思想,汇集学习与传承的篇章。2.《干家诗·神童诗·名贤集·增广贤文》  行孝道、做善事,珍惜时间,勤学苦读体现了其独特的文化魅力和思想价值。3.《弟子规·三字经·百家姓·干字文》  被......
  • 《挑战全球数学家》 回复
    《挑战全球数学家》     https://tieba.baidu.com/p/8452350505      回复 7楼 @彐卅xs ,   其实也不远,选一个领域方向,比如代数或几何,再细分的我也不知道,找几题看一看,做一做,就差不多了。 (滑稽)  主要是限制时间做比较难,不限时间的话可以慢......
  • InfluxDB:如何进行连接,数学测量
    如果您是InfluxData社区的成员,那么您可能希望在某些时候跨测量执行数学运算。你做了一些谷歌搜索并偶然发现了这个GitHub问题3552并且流下了一滴小小的泪水。好吧,今天我成了好消息的承载者。InfluxData发布了Flux的技术预览,Flux是一种新的查询语言和时间序列数据引擎,它具有跨测量执......
  • 【数学】各种积性函数的线性筛法
    【数学】各种积性函数的线性筛法前置芝士:几种特殊的积性函数的定义及基本性质。定义积性函数:若函数\(f(x)\)满足\(f(x)=1\)且\(\forallx,y\inN^+,gcd(x,y)=1\),都有\(f(xy)=f(x)f(y)\),则\(f(x)\)为积性函数。完全积性函数:若函数满足\(f(x)=1\)且\(\forallx,y\in......
  • 离散数学(屈婉玲)第二版 第五部分 图论 总结
    第5部分  图论前言:图是我们日常生活中一个很常见的概念,我们学习时会画思维导图,思维导图有节点,有路线;生活中会用到地图导航,有起点有终点有路线。而图论中的图便是生活中以及数学中具象事物抽象化的体现。前言的前言:若有错误之处或不完整之处希望指出,虚心接受任何批评和建议!一.......