以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 算法理论与分析 』  (http://bbs.xml.org.cn/list.asp?boardid=60)
----  学数值分析的可能会有用,二分法和玄截法进行函数逼近  (http://bbs.xml.org.cn/dispbbs.asp?boardid=60&rootid=&id=87253)


--  作者:zry
--  发布时间:10/20/2010 8:07:00 PM

--  学数值分析的可能会有用,二分法和玄截法进行函数逼近
//如有任何疑问,留言或发邮件,欢迎交流。

#include<iostream.h>
#include<math.h>
#define pi acos(-1.)
double f(double x)
{
 double y;
 y=3*x+sin(x)-exp(x);
 return y;
}

double SubstenseTru(double a,double b,double e)       //弦截法
{

 for(double m=0.0;m-0.3604217>pow(10,-e)||0.3604217-m>pow(10,-e);1)
 {
  m=a-f(a)*(b-a)/(f(b)-f(a));
  cout<<m<<endl;
  if(f(a)*f(m)<0)
   b=m;
  else
   a=m;
 }
 return m;
}

double Dichotomy(double a,double b,double e)       //二分法
{

 for(double m=0;m-0.3604217>pow(10,-e)||0.3604217-m>pow(10,-e);1)
 {
  m=(a+b)*0.5;
  cout<<m<<endl;
  if(f(a)*f(m)<0)
   b=m;
  else
   a=m;

 }
 return m;
}

int main()
{
 double a,b,e;
 cout<<"Please input range from a to b,and the precision e: ";
 cin>>a>>b>>e;
    cout<<"二分法迭代过程为:"<<endl;
 Dichotomy(a,b,e);
 cout<<"弦截法迭代过程为:"<<endl;
 SubstenseTru(a,b,e);


 return 0;
}


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
62.500ms