数值分析-二分法 实验报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数值分析实验报告

1. 二分法

1.C++实验代码:

#include

using namespace std;

int A=0,B=1,t=0;

double c;

double fun(double x)

{

double y=x*x*x-x*x-2*x+1;

return y;

}

double time(int t)

{

int s=1;

for(int i=0;i<=t;i++)

s=s*2;

return s;

}

double jisuan(double a,double b)

{

if (fun(a)*fun(b)<0)

{

c=(a+b)/2;

if ((B-A)/time(t)<0.0005)

return c;

else

if (fun(a)*fun(c)<0)

{

b=c;

t++;

jisuan(a,b);

}

else

if (fun(c)*fun(b)<0)

{

a=c;

t++;

jisuan(a,b);

}

}

}

void main()

{

jisuan(0,1);

cout<<"在误差范围内的函数根的值为:x="<

cout<<"迭代次数为:"<

system("pause");

}

2.实验结果:

3.实验中碰到的问题:

本来是打算用可输入式子然后用二分法计算的,但在编程的时候发现貌似很复杂还要区分数字和计算符号,所以先直接用题目中的式子先写算法了。或者笔算很简单的算法,在计算机实现起来还是有点难度的,比如每算一次区间长度都要除2,我的程序路在一个函数中做不到这一点,在这个程序中就要另外设一个函数来运算。总体通过几个函数的相互调用,以及递归方法,完成了这个二分法的计算。

相关文档
最新文档