1.用牛顿迭代法求该方程在1.5附近的根:2X^3-4X^2+3X-6=0
#include
double func(double x) //函数 {return 2*x*x*x-4*x*x+3*x-6.0;}
double func1(double x) //导函数 {return 6*x*x-8*x+3;}
double root(double num) {
double x0,x1; x0=num;
if(func1(x0)==0.0) //若通过初值,函数返回值为0 {printf(\迭代过程中导数为0!\\n\ x1=x0-func(x0)/func1(x0); while((fabs(x1-x0))>1e-6) {
x0=x1;
x1=x0-func(x0)/func1(x0); }
printf(\该方程在1.5附近的根为:%lf。\\n\return x1; }
main() {
root(1.5); }
2.用二分法求该方程的根:2X^3-4X^2+3X-6=0
#include
double func(double x);
double root(double a,double b); root(-10,10); }
double func(double x) //函数 {
return 2*x*x*x-4*x*x+3*x-6.0;}
double root(double a,double b) {
double x; x=(a+b)/2;
if(func(x)==0.0) //若通过初值,函数返回值x
{printf(\该方程在-10到10区间内的根为:%lf,\\n\ else
while(fabs(func(x))>1e-6) {
if(func(x)*func(a)>0) a=x; else b=x; x=(a+b)/2; }
printf(\该方程在-10到10区间内的根为:%lf。\\n\return x; }