- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
0618与二分法的学习
0.618法的实例研究:
一、算法理论
黄金分割法是用于一元函数在确定的初始区间内搜索极小点的一种方法。它是优化计算中的经典算法,以算法简单、效果明显而著称,是许多优化算法的基础。但它只适用于某个区间上的凸函数。其基本思想是:依照“去坏留好”原则,对称原则,以及等比收缩原则来逐步缩小搜索范围。
0.618法适用于单峰区间函数,即所在区间上。具体的说,对于单峰函数,只需选择两个试探点,即在区间中取点,,且,就可以将包含极小点的区间缩短。事实上,必有:若,则;若,则。
根据单峰函数这个性质,就可以不断迭代缩小包含极小点的区间。若进行次迭代后,有,那么我们在区间取两个试探点,,且,计算的值。如果,令,那么计算,如果(为所给的精度),则;如果 ,令,;如果,令,,如此继续。这样每次可将搜索区间缩小0.328倍或者0.618倍,直至缩为一点。黄金分割原理如图1所示,其中,区间长度为。该算法为收敛速度很快的一种搜索方法。
图1.
二、算法框图
三、算法程序
用,区间为,取0.01为例
用C语言编程程序如下:
#include stdio.h
#include math.h
#include stdlib.h
#define f(x) x*x-7*x+10
double hj(double *a,double *b,double e,int *n)
{
double x1,x2,s;
if(fabs(*b-*a)=e)
s=f((*b+*a)/2);
else
{
x1=*a+0.382*(*b-*a);
x2=*a+0.618*(*b-*a);
if(f(x1)f(x2))
*a=x1;
else
*b=x2;
*n=*n+1;
s=hj(a,b,e,n);
}
return s;
}
main()
{
double s,a,b,e;
int n=0;
printf(Please input left boundary right boundary precision:\n);
scanf(%lf%lf%lf,a,b,e);//输入区间 和精度 的值
s=hj(a,b,e,n);//调用hj函数,其中n代表迭代次数
printf(a=%lf,b=%lf,s=%lf,n=%d\n,a,b,s,n);
}
四、算法实现
方程为,区间是,精度是0.01。
解:运行程序
输入2 8 0.01
显示出运行结果
二分法求解单变量非线性方程及其应用与实现:
1. 引 言
在科学研究与工程技术中常会遇到求解非线性方程f(x)=0的问题。而方程f(x)是多项式或超越函数又分为代数方程或超越方程。对于不高于四次的代数方程已有求根公式,而高于四次的代数方程则无精确的求根公式,至于超越方程就更无法求其精确解了。因此,如何求得满足一定精度要求的方程的近似根也就成为了我们迫切需要解决的问题。近年来,随着数学科学研究的不断进展,又更新了许多方程求解的方法。我们知道,对于单变量非线性方程f(x)=0,一般都可采用迭代法求根,由此产生了二分法。
2. 二分法
一般地,对于函数f(x),如果存在实数c,当x=c时f(c)=0,那么把x=c叫做函数f(x)的零点。
解方程即要求f(x)的所有零点。
先找到a、b,使f(a),f(b)异号,说明在区间(a,b)内一定有零点,然后求f[(a+b)/2], 现在假设f(a)0,f(b)0,ab
①如果f[(a+b)/2]=0,该点就是零点,
如果f[(a+b)/2]0,则在区间((a+b)/2,b)内有零点,(a+b)/2=a,从①开始继续使用中点函数值判断。
如果f[(a+b)/2]0,则在区间(a,(a+b)/2)内有零点,(a+b)/2=b,从①开始继续使用中点函数值判断。
这样就可以不断接近零点。
通过每次把f(x)的零点所在小区间收缩一半的方法,使区间的两个端点逐步迫近函数的零点,以求得零点的近似值,这种方法叫做二分法。
给定精确度ξ,用二分法求函数f(x)零点近似值的步骤如下:
1. 确定区间[a,b],验证f(a)?f(b)0,给定精确度ξ.
2. 求区间(a,b)的中点c.
3. 计算f(c).
(1) 若f(c)=0,则c就是函数的零点;
(2) 若f(a)?f(c)0,则令b=c;
(3) 若f(c)?f(b)0,则令a=c.
4. 判断是否达到精确度ξ:即若┃a-b┃ξ,则得到零点近似值a(或b),否则重复2-4.
由于计算过程的具体运算复杂,但每一步的方式相同,所
您可能关注的文档
- 03020103东方园林绿地养护管理标准(见合同).docx
- 09会计高级财务管理复习题.doc
- 005胸腺肽alpha1_辅助治疗非小细胞肺癌临床试验样本估算及依据.doc
- 0-6岁学前儿童心理评估和咨询.doc
- 06G901-1混凝土结构施工钢筋排布规则与构造详图问题解答.doc
- -电子病历系统功能应用水平分级-可编辑.doc
- 06时间序列(包括了季节因素的处理详细过程).doc
- 09电气实习报告王健.doc
- 09级机制机化《特种加工离子束加工》课程论文.doc
- 1000W直叶片立轴风力机叶片气动设计简介.doc
- 四川省德阳市罗江中学2025届高三考前热身化学试卷含解析.doc
- 山东省枣庄现代实验学校2025届高三下学期第五次调研考试化学试题含解析.doc
- 吉林省长春市十一高中等九校教育联盟2025届高三一诊考试生物试卷含解析.doc
- 2025届江苏省盐城市伍佑中学高考仿真模拟化学试卷含解析.doc
- 2025届广西贺州中学高考冲刺押题(最后一卷)生物试卷含解析.doc
- 安徽省池州市贵池区2025届高三第一次模拟考试生物试卷含解析.doc
- 宁夏银川一中2025届高三(最后冲刺)化学试卷含解析.doc
- 广东省广州市增城区四校联考2025届高考压轴卷化学试卷含解析.doc
- 2025届邯郸市第一中学高考生物必刷试卷含解析.doc
- 2025届安徽省安庆市石化第一中学高考仿真卷化学试卷含解析.doc
文档评论(0)