用牛顿迭代法求根,方程ax^3 + bx^2 + cx + d =0;系数a,b,c,d的值依次为1,2,3,4由主函数输入——C语言

1 概述

用牛顿迭代法求根,方程ax^3 + bx^2 + cx + d =0;系数a,b,c,d的值依次为1,2,3,4由主函数输入。

1.1 牛顿迭代法

2 解法

//C程序设计第五版(谭浩强)
//章节:第七章 用函数实现模块化程序设计 
//练习7.12 用牛顿迭代法求根,方程ax^3 + bx^2 + cx + d =0;系数a,b,c,d的值依次为1,2,3,4由主函数输入。
// 求x在1附近的一个实根,求出根后由主函数输出 
#include <stdio.h>
#include <math.h>

int main()
{
    
    
 	double  newton_iteration_algorithm(double x);
 	double x;
 	printf("请输入x:");
 	scanf("%lf", &x);
 	printf("方程在 %lf 附近的实根为: %lf\n",x,newton_iteration_algorithm(x));
 	return 0;
}

double  newton_iteration_algorithm(double x)
{
    
    
	double r[100];
	int i=0;
	r[0] = x;
	do{
    
    	
		r[i+1] = r[i] - (r[i]*r[i]*r[i]+2*r[i]*r[i]+3*r[i]+4)/(3*r[i]*r[i]+4*r[i]+3);
		i++;
	}while(fabs(r[i]-r[i-1])>=1e-6);
	return r[i];
}

猜你喜欢

转载自blog.csdn.net/qq_41800366/article/details/97100364
今日推荐