好贷网好贷款

算法小题二(求高次方程的一个实根2x^4-4x^3+6X^2-8x-8=0)

发布时间:2016-12-4 22:29:43 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"算法小题二(求高次方程的一个实根2x^4-4x^3+6X^2-8x-8=0)",主要涉及到算法小题二(求高次方程的一个实根2x^4-4x^3+6X^2-8x-8=0)方面的内容,对于算法小题二(求高次方程的一个实根2x^4-4x^3+6X^2-8x-8=0)感兴趣的同学可以参考一下。

 求高次方程的一个实根2x^4-4x^3+6X^2-8x-8=0(精度要求10^-3)   算法分析如下:求高次方程的一个实根的算法有很多种,这里介绍一种二分法.         设高次方程f(x)=0,则用二分法求其一个实根的算法如下        1,输入初值x1和x2,计算它们对应的函数值y1 = f(x1), y2 = f(x2).若y1 和 y2同号,说明x1和x2之间没有实根转第一步重新输入;否则说明  x1,x2之间有实根,转为第二步.        2,计算中间位置 x= (x1+x2)/2        3,计算x1点x点函数值y1=f(x1),y=f(x)。若函数值y=0则算法结束,x就是这个高次方根的一个实根,否则转为4步        4,若函数值y和y1同号,说明实根在x1和x2之间,则令x1=x,转为第2;否则,说明实根在x1到x之间,x2=x,转第2 #include<stdio.h> #include <math.h> /*程序使用了求绝对值的函数fabs()*/ int main() { float x1, x2, x , y1, y2, y; do { printf("进入do"); scanf("%f,%f",&x1,&x2); y1= 2*x1*x1*x1*x1-4*x1*x1*x1+6*x1*x1-8*x1-8; y2= 2*x2*x2*x2*x2-4*x2*x2*x2+6*x2*x2-8*x2-8; printf("y1*y2 = %d y1*y2>0为:%d",y1*y2,(y1*y2)>0); }while((y1*y2)>0); while(1) /*这是个条件恒真的死循环*/ { x=(x1+x2)/2; y= 2*x*x*x*x-4*x*x*x+6*x*x-8*x-8; y1 = 2*x1*x1*x1*x1 -4 *x1*x1*x1+6*x1*x1-8*x1-8; if(fabs(y)<1e-5)break; /*找到根后强迫退出*/ else if(y*y>0)x1=x; else x2 =x; } printf("x=%f/n",x); /*本方程在0-10间有个实根为2.0*/ }

上一篇:07-linux中安装jdk
下一篇:Treasure of the Chimp Island hdu bfs

相关文章

相关评论