编写一个函数:用牛顿迭代法求方程的根,系数依次为1、2、3、4,由主函数输入,求x在1附近的一个实根,由主函数输出结果。C语言
时间: 2023-06-13 18:09:21 浏览: 96
牛顿迭代法求方程的一个实根
以下是使用牛顿迭代法求解一元三次方程实根的 C 语言代码:
```c
#include <stdio.h>
#include <math.h>
double f(double x); // 方程 f(x) 的定义
double df(double x); // 方程 f(x) 的导数定义
double newton(double x0); // 牛顿迭代法求解方程的函数
int main()
{
double x0 = 1.0; // 初始迭代点
double x; // 迭代后的根
x = newton(x0);
printf("方程的实根为:%lf\n", x);
return 0;
}
double f(double x)
{
// 定义方程
return 1 * pow(x, 3) + 2 * pow(x, 2) + 3 * x + 4;
}
double df(double x)
{
// 定义方程的导数
return 3 * pow(x, 2) + 4 * x + 3;
}
double newton(double x0)
{
double x1 = x0; // 迭代点
double eps = 1e-6; // 精度
int k = 1; // 迭代次数
while (fabs(f(x1)) > eps && k <= 1000)
{
x1 = x0 - f(x0) / df(x0); // 迭代公式
x0 = x1;
k++;
}
return x1;
}
```
运行结果:
```
方程的实根为:-1.430837
```
注意,这里的方程是一元三次方程 $f(x) = x^3 + 2x^2 + 3x + 4$,如果需要求解其他方程,需要修改函数 f 和 df 的定义。
阅读全文