4.21打卡

发布时间 2023-04-21 23:22:36作者: new菜鸟

一、问越描述:

编写用牛顿迭代法求方程更的函数。方程为ax^3+ bx^2+cx+ d=0,系数a, b,c,d由主函数输入。求x在1附近的一个实根。求出根后,由主函数输出。牛顿迭代法的共识是: x= x0-f( x0 )/f´( x0 ) ,设迭代到|x-x0 | <=10e( -5).

二、设计思路:

1、输入系数a, b,cd;

2、构造迭代函效

3、迭代函数中预先定义x0,x = 1.5,f, fd每次循环x0=x,由x=x0-f /fd得出x,经|x-x0] >=1e-5决定是否进行迭代

4、输出

三、程序流程图

四、代码示例

 

#include<iostream>
#include<bits/stdc++.h> using namespace std; int nuidun(double a, double b, double c, double d){ double x0, f, fd, x = 1.5; do{ x0 = x; f = a * x0 * x0 * x0 + b * x0 * x0 + c * x0 + d; fd = 3 * a * x0 * x0 + 2 * b * x0 + c; x = x0 - f / fd; }while(fabs( x - x0) >= 1e-5); return x; } int main(){ double a, b, c, d, x = 1.5; double r; cin >> a >> b >> c >> d; r = nuidun(a, b, c, d); cout << r; return 0; }