问题描述
【项目2-二分法解方程】
二分法是在计算机科学中很重要的一种方法,用于查找产生二分查找算法,还可以用在很多场合。
可以用二分法解方程。
对于区间[a,b]上连续不断且f(a)·f(b)<0的函数y=f(x),通过不断地把函数f(x)的零点所在的区间一分为二,使区间的两个端点逐步逼近零点,进而得到零点近似值的方法叫二分法。编程序求解方程f(x)=2x^3-5x^2+3x-6=0,要求精确到0.00001
程序代码
#include <stdio.h>
/*
*csdn学院--2016级
*目的:让代码见证成长(作为一个初学的菜鸟,如
*大家有发现错误,欢迎指正!)
*文件名称:Myfun156.c
*问题描述:编程序求解方程
*f(x)=2x^3-5x^2+3x-6=0,
*要求精确到0.00001
*作者:小臣小仁
*完成日期:2017年5月27日
*/
double f(double);
int main()
{
double a,b,c;
do{
printf("请输入x1,和x2的区间:");
scanf("%lf %lf",&a,&b);
}while(f(a)*f(b)>=0);
printf("在区间[%.2lf,%.2lf]有一个解;\n",a,b);
do{
c=(a+b)/2;
if(f(a)*f(c)>0)
a=c;
else
b=c;
}while((f(c)<-1e-5)||(f(c)>1e-5));
printf("方程的解为:%.5f\n",c);
return 0;
}
double f(double x)
{
return (2*x*x*x-5*x*x+3*x-6);
}
输出结果
心得体会
作为一个大学二的菜鸟,开始慢慢前进,多多少少感到有收获,由于水平有限,多多少少有错,望包涵转存失败重新上传取消