- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
黄金分割法求解/ = 8x3-2x:-7x + 3的]
=J
小值,区间[-10, 10],精度:
0. 001
C程序:
#include stdio.h
#include math.h
double eq(double x)
{ double y;
y 二0*x *x*x?2.0*x*x ?7.0 * x + 3.0; return y;
}
void main()
{
double al,a2,a3,a4,f2,f3,x;
al =-10.0; // 左边界
a4= 10.0;// 右边界
Labi:
a3 = al + 0.618 *(a4 ?al);
f3 = eq(a3);
Lab2:
a2 = al + 0.382 * (a4 - al);
f2 = eq(a2);
Lab3:
if(fabs(a4-al) 0.001)
{ x = (al + a4) / 2.0;
printf(x=%g fmin=%e \n,x,eq(x));
}
else
{
if (f2 f3) {a4=a3; a3 = a2; f3 = f2; goto Lab2;};
if (f2 == f3) {al=a2; a4=a3; goto Lab 1;};
if(f2 ⑶{al=a2; a2=a3; f2=f3;
a3 = al + 0.618*(a4-al); f3=eq(a3); goto Lab3;};
};
}
运行结果:
编程\安装\CYuYan\bin\wtep. exe
x=-9.99959 fmin=-8.126OO5e+OO3
Press any key to continue
」
J
—— C
0
7
8 / 宙 11
新建
晶
保存
剪切
复制
粘贴
查找
注释睡
撤销
重复
运行
调试
校正
对憑
VC6.0筆试机试教7
c, C/C++程序设计学习与实验系统
文件0)编辑0)运行? 工具? 帮助0)
信
X
-我的程序
0. 618c. c
+较件应用问题解答
+简单的入门程序实例
+ C语言学习方法指导
+ C/C卄语法参考
+ VC卄错误代码及程序实
+函数查询
+典型源程序
+常用自定义函数算法
+课程设计源程序
Turbo C2. 0常见错误令
Turbo C卄3. 0常见错乍
Visual C++6?0常见惜 C语言常见专业词汇分Z 运算符的优先级别次序 常见控需悖符表(免费) ASCII码宇符对照表(竟
nonameO. c
01
02
03
04
05
06
07
08
09
10
/* Note:Vour choice is C IDE */ ^include i,stdio.h ttinclude ,inath.hii double eq(double x)
{ double y;
y =8.0*x ? x * x - 2.0 ? x return y;
uoid nain()
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
cc
doublea1 =a4 =
Labi:
a3 -
f3 = Lab2:
a2 -
F2? Lab3:
a1 ,a2?a3,a4,F2,f3,x; -10.0; 〃左边界 10.0; //右边界
a1 ? 0.618 ? (a4 - a1); eq(a3);
a1 ? 0.382 ? (aU - a1); eq(a2);
if (Fabs(a4-a1) 0.001)
x ? (a1 ? aU) / 2.0;
printf (stx=%g fmin=^e \n,-,x,eq(x));
* x -7.0 ? x ? 3.0;
1
else
ifif
(F2 (F2 (F2 a3 二
F2; goto Lab2;};
F3) a4=a3; a3 = a2; f3
==F3) a1=a2; a4=a3; goto Labi
F3) a1=a2; a2=a3; F2=F3;
a1 ? 0.618?(a4 a1); F3-eq(a3); goto Lab3;};
2黄金分割法求解/ = 8.?-2x:-7x + 3的最小值,区间[-10, 10],精度:
0. 001
Matlab 程序:
? 建立M文件:func.m
function f=func (x)
f = 8.0*x * x * x - 2.0 * x * x -7.0 * x + 3.0
? 命令窗口:
al =-10; %左边界
a4= 10; %右边界
e = 0.001 ;% 精度
r = (sqrt (5)-1 )/2; %艮卩 0.618 a2 = al + (l?r) * (a4 ? al);
a3 = al
文档评论(0)