C语言编程中,牛顿迭代法是什么?
的有关信息介绍如下:
牛顿迭代法是一种常用的计算方法,这个大学大三应该学过。具体为:设r是f(x) = 0的根,选取x0作为r初始近似值,过点(x0,f(x0))做曲线y = f(x)的切线L,L的方程为y = f(x0)+f'(x0)(x-x0),求出L与x轴交点的横坐标 x1 = x0-f(x0)/f'(x0),称x1为r的一次近似值。过点(x1,f(x1))做曲线y = f(x)的切线,并求该切线与x轴交点的横坐标 x2 = x1-f(x1)/f'(x1),称x2为r的二次近似值。重复以上过程,得r的近似值序列,其中x(n+1)=x(n)-f(x(n))/f'(x(n)),称为r的n+1次近似值,上式称为牛顿迭代公式。 你把这段文字认真仔细慢慢读一遍,把给的方程式写出来,然后照这个在纸上画出图形,就会明白牛顿迭代法的概要了。 你讲的xopint?root?float?这些都是自己定义的函数。float是c语言中定义浮点型变量的写法。#include #include void main(){ float f(float); float xpoint(float,float); float root(float,float); float x,x1,x2,f1,f2; do { printf("输入x1,x2\n\n"); scanf("%f%f",&x1,&x2); f1=f(x1); f2=f(x2); }while(f1*f2>0); x=root(x1,x2); printf("方程在1.5附近的根为:%f\n\n",x);}float f(float x)//定义一个f函数,返回值y{ float y; y=2*x*x*x-4*x*x+3*x-6; return(y);}float xpoint(float x1,float x2)//定义一个带返回值的函数即y,也就是求y的函数,main()中调用{ float y; y=(x1*f(x2)-x2*f(x1))/(f(x2)-f(x1)); return(y);}float root(float x1,float x2)//这也是定义一个函数,是求根的函数,利用了上面自己定义的函数{ float x,y,y1; y1=f(x1); do { x=xpoint(x1,x2); y=f(x); if(y*y1>0) { y1=y; x1=x; } else x2=x; }while(fabs(y)>1e-4); return(x);} 建议你看看c 语言教程,上面讲得很详细噢。