- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
方程求根二分法精选
PAGE
PAGE 5
实 验 报 告
实验项目非线性方程求解方法实验日期2016.09.02理论内容非线性方程求根的二分法授课日期2016.09.02实验室名称文理馆 203微机编号E1实验目的及要求:
1、?使学生掌握非线性方程求解二分法的基本理论。
2、使学生借助于计算机这一高效计算工具和本课程中的基本数值计算方法来解决某些数学问题,获取其近似解,培养学生的科学计算能力。
实验内容:
编写非线性方程求根二分法的通用子程序。
1、求方程在区间[1,2]内的近似根,要求误差不超过。
2、用二分法计算方程在[1,2]内的根。()
实验步骤及程序:
1、二分法计算流程图
开始
输入 a,b,ε
fx?y0
a+b2?x
fx?y
yy00?
x?b
x?a
b-aε?
输入x,y
结束
1
2
≤
3
4
继续二分
≥
2、二分法源程序:
public class Demo01 {
public static void main(String[] args) {
double temp = 1.0;
double y = (double) 1.0;
double a = 1;
double b = 2;
for (int i = 2; i 300; i++) {
y = (a + b) / ((double) 2.0);
temp = y * y * y - y - 1;
System.out.print(a + |);
System.out.print(y + |);
System.out.print(b + \n);
if (temp 0) {
b = y;
} else {
a = y;
}
if (b - a = (1/2)*Math.pow(10,-2)) {
System.out.println(y);
break;
}
}
}
}
public class Demo02 {
public static void main(String[] args) {
double temp = 1.0;
double y = (double) 1.0;
double a = 1;
double b = 2;
for (int i = 2; i 300; i++) {
y = (a + b) / ((double) 2.0);
temp = Math.sin(y)-y*y/2;
System.out.print(a + |);
System.out.print(y + |);
System.out.print(b + \n);
if (temp 0) {
b = y;
} else {
a = y;
}
if (b - a = 5*Math.pow(0.1, 6)) {
System.out.println(y);
break;
}
}
}
}结果分析与讨论:
方程1:
经过JAVA程序编程,进行15次迭代后得出:
方程的近似根:1.32470703125
方程2:
经过JAVA程序编程,进行15次迭代后得出:
方程的近似根:1.4044151306152344
实验中我们运用JAVA语言对方程求根二分法进行了编译,在编译的过程中我们发现,在求根时往往会进行多次的迭代才能得出近似解,而迭代次数越高方程的近似根就会越接近我们所需要的解,虽然我们得到了最终结果但是这种方法所体现时间复杂度非常的高,计算量庞大,在计算误差精确度位数比较高时,我们需对二分法进行改进。实验报告评分标准
文档评论(0)