C语言-用牛顿迭代法和二分法求方程

更新时间:2024-06-04 06:42:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1.用牛顿迭代法求该方程在1.5附近的根:2X^3-4X^2+3X-6=0

#include #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 #include main() {

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; }

本文来源:https://www.bwwdw.com/article/ju16.html

Top