关闭

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

标签: C语言二分法求方程近似解
2689人阅读 评论(0) 收藏 举报
分类:
//二分法!
/*
========================================================
题目:用二分法求解方程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);
}


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

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

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

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

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

=========================================================
*/
0
0
查看评论

C语言用二分法求方程的近似解的方法

C语言用二分法求方程的近似解的方法 基础知识以下地址:http://jingyan.baidu.com/article/597a06438def54312a524376.html 我的应用如下:求x^5+x^3+7=0,求取x的值是多少? 编译环境:Window8 +C Fre...
  • jone741852963
  • jone741852963
  • 2014-03-06 18:26
  • 7670

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

二分法是求方程近似解的一种简单直观的方法,设函数f(x)在[a,b]上连续,且f(a)*f(b)<0,则表明f(x)在[a,b]上至少有一个零点,这是微积分中的介值定理(不得不吐槽一下大学微分方程老师讲课跟个煞笔一样,反正我是重来没听的).然后通过二分区间,缩小区间范围,当小到一定的精确度的时...
  • Chen_dSir
  • Chen_dSir
  • 2017-04-19 18:05
  • 5378

开根号的几种算法实现

  • 2014-10-19 22:06
  • 8KB
  • 下载

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

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

c语言:用二分法求方程在(-10,10)之间的根:2x^3-4x^2+3x-6=0.

用二分法求方程在(-10,10)之间的根:2x^3-4x^2+3x-6=0.解:x1程序:#include#includeint main(){ float x0,x1,x2,fx0,fx1,fx2; do { printf("输入x1,x2的值:"); scanf(&quo...
  • yanxiaolx
  • yanxiaolx
  • 2016-05-29 13:40
  • 2591

二分法C语言程序

  • 2014-01-09 22:32
  • 1KB
  • 下载

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

//二分法! /* ======================================================== 题目:用二分法求解方程3x^3-2x^2-16=0的近似解。 ================================================...
  • LZX19901012
  • LZX19901012
  • 2015-07-10 11:08
  • 2689

C语言之基本算法25—牛顿迭代法求方程近似根

//牛顿迭代法! /* ============================================================ 题目:用牛顿迭代法求解3*x*x*x-2*x*x-16=0的近似解。 ======================================...
  • LZX19901012
  • LZX19901012
  • 2015-07-10 12:07
  • 1717

用牛顿迭代法和二分法求方程的根【C语言】

1.用牛顿迭代法求该方程在1.5附近的根:2X^3-4X^2+3X-6=0 #include #include double func(double x) //函数 {return 2*x*x*x-4*x*x+3*x-6.0;} double func1(double x) //导函数 {...
  • huixingshao
  • huixingshao
  • 2016-04-06 13:24
  • 2872

二分法求方程的根

参考代码如下:
  • iamzxf
  • iamzxf
  • 2014-11-03 16:28
  • 1854
    个人资料
    • 访问:176992次
    • 积分:2961
    • 等级:
    • 排名:第14068名
    • 原创:116篇
    • 转载:3篇
    • 译文:0篇
    • 评论:26条