牛顿迭代法 一元非线性方程求根 C语言实现
2017-12-12 20:45
501 查看
牛顿迭代法 一元非线性方程求根 C语言实现
标签:计算方法实验
/* 本实验用牛顿迭代法求f(x) = x - e^(-x) = 0在区间[0, 1]的根。 */ #include <stdio.h> #include <math.h> #define maxrept 1000 //最大迭代次数 double f(double x){ //函数f(x) return (x - exp(-x)); } double df(double x){ //f(x)的导数 return (1 + exp(-x)); } double iterate(double x){ //牛顿迭代函数 return (x - f(x) / df(x)); } int main(){ double x1, d; double x0 = 0.5; //迭代初值x0 double eps = 0.00001; //求解精度eps int k = 0; //迭代次数 do{ k++; x1 = iterate(x0); printf("%d %f\n", k, x1); d = fabs(x1 - x0); x0 = x1; }while(d >= eps && k < maxrept); if(k < maxrept) printf("the root of f(x) = 0 is : x = %f, k = %d\n", x1, k); else printf("\nthe iteration is failed!\n"); return 0; }
实验结果:
相关文章推荐
- 不动点迭代法 一元非线性方程求根 C语言实现
- 斯特芬森加速迭代法(Steffensen)-埃特金方法(Aitken) 一元非线性方程求根 C语言实现
- 弦截法 一元非线性方程求根 C语言实现
- 二分法 一元非线性方程求根 C语言实现
- 用java的jni调用C语言的API,实现带图形界面的一元稀疏多项式计算器
- C语言实现一元多项式求积
- matlab实现牛顿迭代法求解非线性方程组
- C语言:用链表实现一元多项式的加法
- PAT Basic 1010. 一元多项式求导 (25)(C语言实现)
- 牛顿迭代法解非线性方程matlab实现
- 牛顿迭代法 c语言实现
- 牛顿迭代法(用c语言实现)
- C语言实现一元多项式的加减运算
- 华为面试题:一元多项式的化简 C语言实现源码
- 数值分析——c++实现非线性方程求根的方法
- 一元多项式的乘法运算(C语言)实现
- 一元多项式加减乘除运算-C语言实现
- PAT 3-04 一元多项式的乘法与加法运算(C语言实现)
- matlab实现牛顿迭代法求解非线性方程组
- CLHLock的C语言实现