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语言用二分法求方程的近似解的方法

C语言用二分法求方程的近似解的方法 基础知识以下地址:http://jingyan.baidu.com/article/597a06438def54312a524376.html 我的...

数值作业:二分法求方程的根之C语言实现代码

二分法是求方程近似解的一种简单直观的方法,设函数f(x)在[a,b]上连续,且f(a)*f(b)...

C代码:二分法求三次方程近似根

二分法C代码
  • Setoge
  • Setoge
  • 2016年07月19日 22:45
  • 210

二分法求方程根--C语言

1088: 习题5-15 二分法求方程的根 时间限制: 1 Sec  内存限制: 12 MB 提交: 43  解决: 24 [提交][状态][讨论版] 题目描述 用二分法求下面方程在...
  • BBHHTT
  • BBHHTT
  • 2017年07月19日 20:22
  • 426

用二分法求方程近似解

  • 2010年03月22日 17:43
  • 2KB
  • 下载

二分法求方程的近似解

这几天好多次都遇到了二分法求方程的解。今天就花了点时间学了一下。其实,说起来也没有什么。高中的时候思想都是有的,只是当时,由于计算繁杂,不作为学习的重点。可是现在不一样了,我们现在,不需要计算,只需要...

二分法——求近似方程的解

二分法求近似方程的解的原理我就不讲了,就是类似于零点存在定理之类的东西。 所以直接以实例来讲述: 例1:用二分法求方程x^3+4x-10=0在区间[1,2]内的根(精确到0.00001) 首先我...

C语言(11)--回文日、确定等式、fflush(stdin)、将十进制数转换成n进制数、二分法解方程

1、回文日、 2、确定等式 3、fflush(stdin) 4、将十进制数转换成n进制数 5、二分法解方程 当年份确定后,如2015年,就看20155102能否构成一个合法的日期,其中51部分是...
  • Ramay7
  • Ramay7
  • 2015年09月09日 19:10
  • 554

牛顿迭代法求近似根与二分法求根

牛顿迭代法设r是f(x) = 0的根,选取x0作为r初始近似值,过点(x0,f(x0))做曲线y = f(x)的切线L,L的方程为y = f(x0)+f’(x0)(x-x0),求出L与x轴交点的横坐标...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C语言之基本算法23—二分法求方程近似根
举报原因:
原因补充:

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