方程:2x³-4x²+3x-6=0;
切线法_百度百科
#include#include int main(){ float x=1.5,x1,y,k; //牛顿迭代法(牛顿切线法) while(1){ y=x*(2*x*(x-2)+3)-6;//求该点纵坐标值 if(y==0)break; //若该点纵坐标值为0即得到零点,结束循环 k=2*x*(3*x-4)+3; //求该点斜率 x1=x-y/k; //求得切线与横坐标的交点 x=x1; //重新赋值进行迭代 } printf("方程在1.5附近的根为:%f",x1); return 0; }
二分法:二分法(数学领域术语)_百度百科
#includeint main(){ float x1=-10,x2=10,x; float y1,y2,y;; while(1){ x=(x1+x2)/2; //计算区间中点 y=x*(2*x*(x-2)+3)-6; //计算中点函数值 y1=x1*(2*x1*(x1-2)+3)-6; //计算原区间左端函数值 y2=x2*(2*x2*(x2-2)+3)-6; //计算原区间右端函数值 if(y==0)break; //如果函数值为零(即找到了零点)跳出循环 else if(y*y1>0) x1=x; //如果中点函数值和左端函数值同号则将中点作为新区间的左端 else if(y*y2>0) x2=x; //如果中点函数值和右端函数值同号则将中点作为新区间的右端 } printf("方程在(-10,10)内的根为:%f",x); return 0; }



