本文共 637 字,大约阅读时间需要 2 分钟。
/* 本实验用迭代法求方程f(x) = e^(-x) - x + 1的根。*/#include#include #define maxrept 1000 //最大迭代次数double fa(double x){ //迭代函数fa(x) return exp(-x) + 1;}int main(){ double x1, d; double x0 = 100; //迭代初值x0 double eps = 0.0005; //求解精度eps int k = 0; //迭代次数 do{ k++; x1 = fa(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("the iteration is failed!\n"); //要求迭代公式收敛,否则会出现溢出 return 0;}
实验结果: