c语言编程~ 解方程

来源:百度知道 编辑:UC知道 时间:2024/06/25 03:53:09
要求:(1)用牛顿法求解下列方程在1.8附近的根。(精确到10^-6);
x^3-5x^2+3x+5=0
(2)改变初始值、误差后重新求解。

参照(《c程序设计(第三版)》谭浩强 著)P130 习题6.12
用牛顿迭代法求下面方程在1.5附近的根:
2x^3-4x^2+3x-6=0
答案如下:
#include "stdio.h"
#include<math.h>
void main()
{
double f(double x);
double x1=-10.0,x2=10.0,xx;
while(1)
{
xx=(x1+x2)/2;
if(fabs(f(xx)-0)<1e-5)break;
if(f(xx)>0)x2=xx;
if(f(xx)<0)x1=xx;
}
printf("one foot of x is %f\n",xx);
}
double f(double x)
{
return (2*x*x*x-4*x*x+3*x-6);
}

采用C语言编程解方程,有两种情况:
1 简单的方程,比如一元一次方程,或者多元一次方程,以及一元二次方程等,这类数学上有固定的解题方法的,可以在程序中输入参数,并按照数学方法,进行求解。
2 复杂的方程,比如高次方程,或者积分方程等,对于这类问题,在数学上有着自己的解法,但是移植到计算机中操作会比较繁琐,不易于编程实现。所以这类方程在计算机领域中,专门开发了更高效的算法,不适于笔算,但更符合计算机的工作方式。这时需要查找或学习对应算法并实现。