C语言之基本算法23—二分法求方程近似根

原创 2015年07月10日 11:08:37
//二分法!
/*
========================================================
题目:用二分法求解方程3x^3-2x^2-16=0的近似解。
=========================================================
*/


#include <stdio.h>
#include <math.h>
double hs(double t)
{
return 3*t*t*t-2*t*t-16;//注意一定是单调函数,否则会得到局部解。考试时如果该函数是单调的,就可以用二分法快速求解!
}
void main()
{
double x0,x1,x2,f0,f1,f2;
printf("方程为:\n");
printf("3x^3-2x^2-16=0\n");
while ((f1*f2)>0)
{
printf("边界:\nx1=");
scanf("%lf",&x1);
printf("x2=");
scanf("%lf",&x2);
f1=hs(x1);
f2=hs(x2);
if((f1*f2)>0)
printf("\n请扩大区间!重新输入");
}
while(fabs(f0)>1e-9)
{
x0=(x1+x2)/2;
f0=hs(x0);
if ((f0*f1)>0)
{
x1=x0;
f1=f0;
}
else
{
x2=x0;
f2=f0;
}
}
printf("解得:\nx=%.4lf\n",x0);
}


/*
========================================================

评:思路是先找到两个不点使得对应的函数值异号(在零点两侧),这可以

通过将两点距离放大来实现,然后不断更新区间,总使得两点异号直到区间

足够小,则可近似得到此问题的解。二分法最符合人的思维模式,逻辑简单!

容易掌握!相比牛顿迭代法和穷举法,写程序略显麻烦!

=========================================================
*/
版权声明:博主文章可以被非商用转载,但请务必注明出处,因水平有限,难免出错,在此免责。 举报

相关文章推荐

C语言之基本算法19—枚举勾股数

/* ================================================================== 题目:求100内的勾股数! =============...

C语言之基本算法01—完全数

//枚举法 /* ================================================================== 题目:求10000内的完全数(如:6=1*...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

C语言之基本算法09—各位全是a的数列之和

/* ================================================================== 题目:数列为a,aa,aaa,……。求a+aa+aaa+...

C语言之基本算法16—条件全排列

/* ================================================================== 题目:求一个三位数ABC,A>B>C,ABC-CBA=4...

C语言之基本算法15—前三位和后三位都是完全平方数的六位完全平方数

/* ================================================================== 题目:一个六位数是完全平方数,前三位和后三位都是完全平方数。...

C语言之基本算法05—韩信点兵

//枚举法 /* ================================================================== 题目:韩信带兵1500人,死四五百,站3人一排多...

C语言之基本算法17—四位数,含7,不能被7整除!

/* ================================================================== 题目:四位数,含7,不能被7整除!编程求出所有这样的四位数!...

C语言之基本算法29—整数任意次方的最后三位数(精度问题)

//精度问题! /* ================================================================== 题目: 求整数的任意次方最后三位数!...

编程:编写一个截取字符串的函数,(网上流传的答案有的是错的)输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4

网上流传的答案是错误的:在此更正一下Java代码 public class StringSplit {
  • zoucui
  • zoucui
  • 2010-05-26 17:58
  • 1079

C语言之基本算法26—佩尔方程求解

//穷举法! /* ====================================================== 题目:求佩尔方程x*x-73*y*y=1的解。 =======...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)