美文网首页
牛顿迭代法求方程的根

牛顿迭代法求方程的根

作者: 一路向后 | 来源:发表于2021-10-17 19:31 被阅读0次

    1.问题描述

    编写牛顿迭代法求方程的根。方程为ax^3+bx^2+cx+d=0,系数a,b,c,d由主函数输入。求x在1附近的一个实根。求出根后,由主程序输出。
    牛顿迭代法的公式是:x=x_0-\frac{f({x_0})}{f(x)},设迭代到|x-x_0|\leqslant10^{-5}

    2.源码实现

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    int main()
    {
        float a, b, c, d;
        float u = 1, x;
        double s, t, r;
    
        printf("请输入方程的系数: ");
    
        scanf("%f %f %f %f", &a, &b, &c, &d);
    
        do {
            s = a*u*u*u + b*u*u + c*u + d;
            t = 3*a*u*u + 2*b*u + c;
            x = u - s / t;
            r = x - u;
            u = x;
        }
        while(r > 0.00001 || r < -0.00001);
    
        printf("所求方程的根为x=%f\n", x);
    
        return 0;
    }
    

    3.编译源码

    $ gcc -o test test.c -std=c89
    

    4.运行及其结果

    请输入方程的系数: 2 -4 3 -6
    所求方程的根为x=2.000000
    

    相关文章

      网友评论

          本文标题:牛顿迭代法求方程的根

          本文链接:https://www.haomeiwen.com/subject/zsmwoltx.html