数值分析-二分法 实验报告
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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,我的程序路在一个函数中做不到这一点,在这个程序中就要另外设一个函数来运算。总体通过几个函数的相互调用,以及递归方法,完成了这个二分法的计算。