牛顿迭代法求根
2016-11-15 16:23
197 查看
Description
用牛顿迭代法求根。方程为ax 3 +bx 2 +cx+d=0 。系数a,b,c,d的值一次为1,2,3,4,由主函数输入。求x在1附近的一个实根。求出根后由主函数输出。结果保留两位小数。
Input
系数a,b,c,d的值
Output
x在1附近的一个实根
Sample Input
1 2 3 4
Sample Output
-1.65
HINT
主函数已给定如下,提交时不需要包含下述主函数
参考解答
Description
用牛顿迭代法求根。方程为ax 3 +bx 2 +cx+d=0 。系数a,b,c,d的值一次为1,2,3,4,由主函数输入。求x在1附近的一个实根。求出根后由主函数输出。结果保留两位小数。
Input
系数a,b,c,d的值
Output
x在1附近的一个实根
Sample Input
1 2 3 4
Sample Output
-1.65
HINT
主函数已给定如下,提交时不需要包含下述主函数
/* C代码 */ int main() { double solut(double ,double ,double ,double ); double a,b,c,d; scanf("%lf%lf%lf%lf",&a,&b,&c,&d); printf("%.2f",solut(a,b,c,d));; return 0; }
参考解答
#include<stdio.h> #include<math.h> int main() { double solut(double,double,double,double ); double a,b,c,d; scanf("%lf%lf%lf%lf",&a,&b,&c,&d); printf("%.2f",solut(a,b,c,d));; return 0; } double solut(double a,double b,double c,double d) { double x=1,x0; do { x0=x; x=x0-(((a*x+b)*x+c)*x+d)/((3*a*x+2*b)*x+c); } while(fabs(x-x0)>=1e-5); return x; }
相关文章推荐
- 牛顿迭代法 一元非线性方程求根 C语言实现
- 牛顿迭代法求近似根与二分法求根
- 方程求根(二分法和牛顿迭代法)
- C 迭代法求开方 牛顿迭代法求根近似值
- 习题 7.12 用牛顿迭代法求根。方程为ax^3+bx^2+cx+d=0,系数a,b,c,d的值依次为1,2,3,4,由主函数输入。求x在1附近的一个实根。求出根后由主函数输出。
- C的一些简单习题(9)--牛顿迭代法求根
- 三次函数求根-牛顿迭代法
- 第十一周oj题目牛顿迭代法求根
- 牛顿迭代法求多项式在1.5附近的值2*x的3次幂--4x平方+3*x-6=0的实现代码
- 牛顿迭代法
- 牛顿迭代法、双点割线法及改进的双点割线法的比较
- C++经典求根的方法,弦切法或弦截法
- 很牛的牛顿迭代法
- (matlab系列)非线性方程求根
- 【Machine Learning实验】牛顿迭代法
- 【算法王道】二分法和牛顿迭代法求平方根
- 牛顿迭代法
- leetcode:Sqrt(x) 牛顿迭代法求整数开方
- uva 10428 - The Roots(牛顿迭代法)
- 牛顿迭代法求函数值