牛顿迭代法
设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次近似值,上式称为牛顿迭代公式。
****求1.5附近的根:
2x3-4x2+3x-6=0
代码如下:
//用牛顿迭代法求根
#include<stdio.h>
#include<math.h>
int main(){
double x1,x0,f,f1;
x1=1.5;
do{
x0=x1;
f=2*pow(x0,3)-4*pow(x0,2)+3*x0-6;
f1=6*pow(x0,2)-8*x0+3;
x1=x0-f/f1; //牛顿迭代公式&