弦截法是一种求方程根的基该方法,在计算机编程中经常使用。

他的思路是这种:任取两个数x1、x2,求得相应的函数值f(x1)、f(x2)。假设两函数值同号,则又一次取数。直到这两个函数值异号为止。

连接(x1,f(x1))与(x2,f(x2))这两点形成的直线与x轴相交于一点x。求得相应的f(x)。推断其与f(x1)、f(x2)中的哪个值同号。如f(x)与f(x1)同号,则f(x)为新的f(x1)。

将新的f(x1)与f(x2)连接,如此循环。

体现的是极限的思想

//弦截法求x*x*x-5*x*x+16*x-80=0的根
求x^3-5x^2+16x-80的值:
#include<math.h>
#include<stdio.h>
float f(float x)
{ //计算f(x)的值
return x*(x*x-5*x+16)-80;
}
float point(float x1,float x2)
{
//计算与x轴交点的x值
return (x1*f(x2)-x2*f(x1))/(f(x2)-f(x1));
}
void main()
{
//输入两个数x1,x2
float x1,x2,x;
do
{
printf("输入两个数x1,x2:");
scanf("%f%f",&x1,&x2)。
}
while (f(x1)*f(x2) >= 0); // 当输入两个数大于0为真时,继续又一次输入
//关键循环步骤:
do
{
x=point(x1,x2);//得到交点的值
if(f(x)*f(x1)>0)
x1=x;//新的x1
else
x2=x;
}
while (fabs(f(x)) > 0.0001); //0.0001为取值精度
printf("一个解为%f\n",x);
}

最新文章

  1. 我为NET狂官方面试题
  2. Lind.DDD.API核心技术分享
  3. eclipse for java developer和eclipse for java ee developer的区别
  4. 为bootstrap添加更多自定义图标
  5. MVC之过滤器
  6. Js 实现tab切换效果
  7. set -x与set +x指令
  8. C#自定义导出数据到Excel中的类封装
  9. 关于ONION/Wncry勒索病毒
  10. B+树介绍
  11. kube-proxy源代码分析
  12. 5.1 socket编程、简单并发服务器
  13. &lt;mvc:annotation-driven/&gt;的作用
  14. 用Spark查询HBase中的表数据
  15. python 报错 SyntaxError: Non-ASCII character
  16. C# Selenium with PhantomJSDriver get image width and height (获取图片的长和高)
  17. Access control allow origin 简单请求和复杂请求
  18. charles抓包--手机端
  19. [开源] angularjs + Asp.net 前后端分离解决方案
  20. oracle 插入大于4000字符的 clob代码

热门文章

  1. (转)解决office软件无法卸载也无法安装的顽固问题
  2. thinkphp配置设置
  3. 字符编码方式ASCII、Unicode、UTF-8
  4. dutacm.club_1094_等差区间_(线段树)(RMQ算法)
  5. HDU_1879_继续畅通工程
  6. Call stack Structure
  7. SpringBoot+Mybatis 自动创建数据表(适用mysql)
  8. php获取文件扩展名
  9. 02JavaScript基础语法及数据类型
  10. Controller传值到前端页面的几种方式