当前位置: 代码迷 >> C语言 >> 考级复习题,TC牛顿迭代法问题,高手素进!
  详细解决方案

考级复习题,TC牛顿迭代法问题,高手素进!

热度:419   发布时间:2005-07-05 15:43:00.0
考级复习题,TC牛顿迭代法问题,高手素进!
问题:求一个正的实数a的平方根,采用牛顿迭代法公式X1=(X0+a/X0)/2进行计算,只要计算所得的两个近似根之差的绝对值小于一个充分小的数,既|X1-X2|<E,则可认为得到根X1,记录迭代次数,并用三种方法(固定数组,链表和动态数组)储存每次计算的近似根,并统计储存空间的利用率,并绘制跟踪数据的图形。


望高手帮忙!
搜索更多相关的解决方案: 牛顿  复习题  迭代法  考级  

----------------解决方案--------------------------------------------------------

呵呵 问题太多了 不会哦!~
若是只求那还差不多


----------------解决方案--------------------------------------------------------
这个问题在老谭(c程序设计第二版)的书121页习题6.12有记载,你找本答案书看看。就会了!
----------------解决方案--------------------------------------------------------
float a,x,x0;
        int i=0;
        do           
        {
               printf("Input a=?");   
               scanf("%f",&a);          //输入将被迭代的值
        } while(a<0);
        
        x = a/4;                        //确定迭代的初始值
    do
        {
               i++;                     //计算迭代次数
               x0 = x; 
               x = (x0+a/x0)/2;         //按迭代公式进行迭代计算
 
        } while(i<20/*迭代次数在20次以内*/ 
          && (x-x0>1.e-5 || x-x0<=-1.e-5)/*迭代精确度控制,要小于0.0001*/);     
        
        printf("\na=%.6f,x=%.6f,i=%d",a,x,i);
        
        //暂停
        char c = getchar();
        if (c!=' ')
               getchar();
        return 0;





----------------解决方案--------------------------------------------------------
  相关解决方案