二分法
数学方面:
一般地,对于函数f(x),如果存在实数c,当x=c时f(c)=0,那么把x=c叫做函数f(x)的零点。
解方程即要求f(x)的所有零点。
先找到a、b,使f(a),f(b)异号,说明在区间(a,b)内一定有零点,然后求f[(a+b)/2],
现在假设f(a)0,f(b)0,ab
①如果f[(a+b)/2]=0,该点就是零点,
如果f[(a+b)/2]0,则在区间((a+b)/2,b)内有零点,(a+b)/2=a,从①开始继续使用
中点函数值判断。
如果f[(a+b)/2]0,则在区间(a,(a+b)/2)内有零点,(a+b)/2=b,从①开始继续使用
中点函数值判断。
这样就可以不断接近零点。
通过每次把f(x)的零点所在小区间收缩一半的方法,使区间的两个端点逐步迫近函数的零点,以求得零点的近似值,这种方法叫做二分法。
给定精确度ξ,用二分法求函数f(x)零点近似值的步骤如下:
1 确定区间[a,b],验证f(a)·f(b)0,给定精确度ξ.
2 求区间(a,b)的中点c.
3 计算f(c).
(1) 若f(c)=0,则c就是函数的零点;
(2) 若f(a)·f(c)0,则令b=c;
(3) 若f(c)·f(b)0,则令a=c.
4 判断是否达到精确度ξ:即若┃a-b┃ξ,则得到零点近似值a(或b),否则重复2-4.
由于计算过程的具体运算复杂,但每一步的方式相同,所以可通过编写程序来运算。
例:(C语言)
方程式为:f(x) = 0,示例中f(x) = 1+x-x^3
使用示例:
input a b e: 1 2 1e-5
solution: 1.32472
源码如下:
#include stdio.h
#include stdlib.h
#include math.h
#include assert.h
double f(double x)
{
return 1+x-x*x*x;
}
int main()
{
double a = 0, b = 0, e = 1e-5;
printf("input a b e: ");
scanf("%lf%lf%lf", a, b, e);
e = fabs(e);
if (fabs(f(a)) = e)
{
printf("solution: %lg\n", a);
}
else if (fabs(f(b)) = e)
{
printf("solution: %lg\n", b);
}
else if (f(a)*f(b) 0)
{
printf("f(%lg)*f(%lg) 0 ! need = 0 !\n", a, b);
}
else
{
while (fabs(b-a) e)
{
double c = (a+b)/2.0;
if (f(a)* f ( c ) 0)
b = c;
else
a = c;
}
printf("solution: %lg\n", (a+b)/2.0);
}
return 0;
}
例:C++语言[类C编写].
|f(x)|10^-5 f(x)=2x^3-4x^2+3x-6
#include"iostream"
#include"stdio.h"
#include"math.h"
#define null 0
double f(x)(double); //f(x)函数
void main()
{
double xa(null),xb(null),xc(null);
do
{
printf("请输入一个范围x0 x1:");
std::cinxaxb; //输入xa xb的值
printf("%f %f",xa,xb);
}
while(fx(xa)*fx(xb)=0); //判断输入范围内是否包含函数值0
do
{
if(fx((xc=(xa+xb)/2))*fx(xb)0) //二分法判断函数值包含0的X取值区间
{
xa=xc;
}
else
{
xb=xc;
}
}
while(fx(xc)pow(10.0,-5)||fx(xc)-1*pow(10.0,-5));//判断x根是否在接近函数值0的精确范围内
printf("\n 得数为:%f",xc);
}
double fx(double x)
{
return(2.0*pow(x,3)-4.0*pow(x,2)+3*x-6.0);
}
经济学方面:
传统的经济学家把经济分为实物经济和货币经济两部分,其中,经济理论分析实际变量的决定,而货币理论分析价格的决定,两者之间并没有多大的关系,这就是所谓的二分法。
从数学角度看,二分法, 又称分半法, 是一种方程式根的近似值求法.
若要求已知函数 f(x) = 0 的根 (x 的解), 则:
先定义一个区间 [a, b], 使其包含著方程式的根.
求该区间的中点, 并找出 f(m) 的值
若 f(m) 与 f(a) 正负号相同则取 [m, b] 为新的区间, 否则取 [a, m].
重覆第2步至理想精确度为止.
例子
例: 求方程 sinh x = cos x 的解, 其中 sinh 是双曲正弦、cos 是余弦 及 x 以弧度量度.
定义 f(x) = sinh x - cos x. 因此这里是要求 f(x) = 0 的根.
画出 y = f(x) 可大约得知其根约在 0.5 和 1 之间, 故使初始区间的 [0.5, 1].
此区间之中点为 0.75.
因 f(0.5) ≈ -0.3565, f(0.75) ≈ 0.0906, 其正负号不同, 故令新区间为 [0.5, 0.75]
又新区间的中点为 0.625, 而 f(0.625) ≈ -0.1445, 与 f(0.5) 正负号相同, 故新区间为 [0.625, 0.75].
不断重覆运算即得 f(x) = 0 的根约为 0.7033.
从哲学角度就是考虑问题的方法,要懂得考虑问题的利弊或正反两面.
二分法(Bisection method) 即一分为二的方法. 设[a,b]为R的闭区间. 逐次二分法就是造出如下的区间序列([an,bn]):a0=a,b0=b,且对任一自然数n,[an+1,bn+1]或者等于[an,cn],或者等于[cn,bn],其中cn表示[an,bn]的中点。
扩展资料
典型算法
算法:当数据量很大适宜采用该方法。采用二分法查找时,数据需是排好序的。
基本思想:假设数据是按升序排序的,对于给定值key,从序列的中间位置k开始比较,
如果当前位置arr[k]值等于key,则查找成功;
若key小于当前位置值arr[k],则在数列的前半段中查找,arr[low,mid-1];
若key大于当前位置值arr[k],则在数列的后半段中继续查找arr[mid+1,high],
直到找到为止,时间复杂度:O(log(n))。
参考资料:二分法(数学领域术语)百度百科
高中数学合集百度网盘下载
链接:
?pwd=1234
提取码:1234
简介:高中数学优质资料下载,包括:试题试卷、课件、教材、视频、各大名师网校合集。
二分法所属现代词,指的是数学领域的概念,在高中数学课程中会有学到,下面是我给大家带来的高考数学用二分法求函数零点的近似值知识点,希望对你有帮助。
高考数学用二分法求函数零点的近似值知识点
二分法的定义:
对于区间[a,b]上连续不断,且f(a)·f(b)0的函数y=f(x),通过不断把函数f(x)的零点所在的区间一分为二,使区间的两个端点逐步逼近零点,进而得到零点近似解的方法叫做二分法。
给定精确度ξ,用二分法求函数f(x)的零点的近似值的步骤:
(1)确定区间[a,b],验证f(a)·f(b)0,给定精确度ξ;
(2)求区间(a,b)的中点x1;
(3)计算f(x1),
①若f(x1)=0,则就是函数的零点;
②若f(a)·f(x1)0,则令b=x1(此时零点x0∈(a,x1));
③若f(x1)·f(b)0,则令a=x1(此时零点x0∈(x1,b));
(4)判断是否达到精确度ξ,即若|a-b|ξ,则达到零点近似值a(或b);否则重复(2)-(4)。
利用二分法求方程的近似解的特点:
(1)二分法的优点是思考方法非常简明,缺点是为了提高解的精确度,求解的过程比较长,有些计算不用计算工具甚至无法实施,往往需要借助于科学计算器.
(2)二分法是求实根的近似计算中行之有效的最简单的方法,它只要求函数是连续的,因此它的使用范围很广,并便于在计算机上实现,但是它不能求重根,也不能求虚根。
关于用二分法求函数零点近似值的步骤应注意以下几点:
①第一步中要使区间长度尽量小,f(a),f(b)的值比较容易计算,且f(a).f(b)0;
②根据函数的零点与相应方程根的关系,求函数的零点与求相应方程的根是等价的,对于求方程f(x)=g(x)的根,可以构造函数F(x)=f(x)-g(x),函数F(x)的零点即为方程f(x)=g(x)的根;
③设函数的零点为x0,则ax0b,作出数轴,在数轴上标出a,b,x0对应的点,如图,所以0x0-ab-a,a一bx0-b0.由于|a -b|ε,所以|x0 -a|b-aε,|x0 -b||a -b|ε即a或b作为函数的零点x0的近似值都达到给定的精确度ε
④我们可用二分法求方程的近似解.由于计算量大,而且是重复相同的步骤,因此,我们可以通过设计一定的计算程序,借助计算器或计算机完成计算.
数学用二分法求函数零点的近似值练习
用二分法求方程的近似解
在一个风雨交加的夜里,从某水库闸房到防洪指挥部的电话线路发生了故障.这是一条10 km长的线路,如何才能迅速查出故障所在?如果沿着线路一小段一小段查找,困难很多,每查一个点要爬一次电线杆,10 km长的线路,大约有200根电线杆,想一想,维修线路的工人师傅怎样工作才合理?
基础巩固
1.方程|x2-3|=a的实数解的个数为m,则m不可能等于()
A.1 B.2 C.3 D.4
解析:由图可知y=|x2-3|与y=a不可能是一个交点.
答案:A
2.对于函数f(x)=x2+mx+n,若f(a)0,f(b)0(ab),则在(a,b)内f(x)()
A.一定有零点 B.一定没有零点
C.可能有两个零点 D.至多有一个零点
解析:画y=f(x)的大致图象分析,也可取m,n,a,b的特殊值,很容易判断f(x)在(a,b)内可能有两个零点.
答案:C
3.已知函数f(x)在区间(0,a)上有唯一的零点(a0),在用二分法寻找零点的过程中,依次确定了零点所在的区间为0,a2,0,a4,0,a8,则下列说法中正确的是()
A.函数f(x)在区间0,a16无零点
B.函数f(x)在区间0,a16或a16,a8内有零点
C.函数f(x)在a16,a内无零点
D.函数f(x)在区间0,a16或a16,a8内有零点,或零点是a16
解析:由二分法求函数零点的原理可知选D.
答案:D
4.奇函数f(x)=x3+bx2+cx的三个零点是x1,x2,x3,满足x1x2+x2x3+x3x1=-2,则b+c=________.
解析:∵f(x)为奇函数,∴b=0,故f(x)=x3+cx有一个零点是0,不妨设x1=0,则x2,x3是x2+c=0的二根,故x2x3=c,由x1x2+x2x3+x3x1=-2得c=-2,故b+c=0-2=-2.
答案:-2
5.已知函数f(x)的图象是连续不断的,有如下的x,f(x)对应值:
x123456
f(x)1210-24-5-10
函数f(x)在区间[1,6]上的零点至少有__________个.