码迷,mamicode.com
首页 > 其他好文 > 详细

弦截法求一元三次方程的近似解

时间:2014-09-06 22:31:23      阅读:354      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   io   2014   div   问题   sp   


1
#include<stdio.h> 2 #include<math.h> 3 4 //计算一元三次方程的根大致分布位置 5 6 //计算的方程为 x*x*x-8*x*x+12*x-30=0 7 8 //计算函数值 9 float f(float x) 10 { 11 return ((x-8.0)*x+12.0)*x-30.0; 12 } 13 14 //计算弦与坐标x轴的交点 15 16 float xpoint(float x1,float x2) 17 { 18 return ((x1*f(x2)-x2*f(x1)))/(f(x2)-f(x1)); 19 } 20 21 //求解区间内是否有实根 22 23 float root(float x1,float x2) 24 { 25 float x,y,y1; 26 y1=f(x1); 27 do 28 { 29 x=xpoint(x1,x2); 30 y=f(x); 31 if(y*y1 > 0) //同号 32 { 33 y1=y; 34 x1=x; 35 } 36 else 37 { 38 x2=x; 39 } 40 }while(fabs(y)>=0.0001); 41 return x; 42 } 43 44 int main(void) 45 { 46 float x1=6,x2=8; 47 48 //此处应当加入判断,只有当输入的区间端点使f()的同号的时候才进行进一步计算 49 50 float x; 51 52 x=root(x1,x2); 53 54 printf("root in 6-8 is %5f\n",x); 55 return 0; 56 }

 

主要就是根的计算的问题,如何判断和重新划分区间是个比较难的地方。

 

计算交点的公式:

bubuko.com,布布扣

弦截法求一元三次方程的近似解

标签:style   blog   http   color   io   2014   div   问题   sp   

原文地址:http://www.cnblogs.com/lhyz/p/3959872.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!