资源描述
三 . 二分法及其 MATLAB程序 1. 用二分法求方程 f(x)=0的根 x*的近似值 xk 的步骤 步骤 1. 若对于 ab, 有 f(a)f(b)0, 则在 (a, b)内 f(x)=0至少有一个根 . 步骤 2. 取 a, b的中点 1 ,2 abx 计算 1fx 步骤 3. 若 则 x1是 f(x)=0的根 , 停止计算 , 1 0,fx 若 则在 (a, x1 )内 f(x)=0至少有一个根 . 1 0,f a f x 取 a1=a, b1=x1; 若 1 0,f a f x 则取 a1=x1, b1=b; 运行后输出结果 x*=x1. 1. 用二分法求方程 f(x)=0的根 x*的近似值 xk 的步骤 步骤 1. 若对于 ab, 有 f(a)f(b)0, 则在 (a, b)内 f(x)=0至少有一个根 . 步骤 2. 取 a, b的中点 1 ,2 abx 计算 1fx 步骤 3. 若 则 x1是 f(x)=0的根 , 停止计算 , 1 0,fx 若 则在 (a, x1 )内 f(x)=0至少有一个根 . 1 0,f a f x 取 a1=a, b1=x1; 若 1 0,f a f x 则取 a1=x1, b1=b; 步骤 4. 若 1 , 2 kkba 为 预 先 给 定 的 要 求 精 度 退出计算 , 运行后输出结果 x*=x1. 运行后输出结果 ;2kkabx 反之 , 返回步骤 1, 重复步骤 1,2,3. 2. 二分法的 matlab主程序 求解方程 f(x)=0在开区间 (a,b)内的一个根的前提条 件是 f(x)在闭区间 a,b上连续 , 且 f(a)f(b)0, disp(注意: ya*yb0,请重新调整区间端点 a和 b.), return end max1=-1+ceil(log(b-a)- log(abtol)/ log(2); for k=1: max1+1 a;ya=fun(a); b;yb=fun(b); x=(a+b)/2; yx=fun(x); wuca=abs(b-a)/2; k=k-1; k,a,b,x,wuca,ya,yb,yx if yx=0 a=x; b=x; elseif yb*yx0 b=x;yb=yx; else a=x; ya=yx; end if b-ak, x, wuca, yx=erfen(a, b, abtol) 练习 : 确定方程 3x2-ex=0 的实根的分布情况,并用二分法 求在开区间 (-1, 0)内的实根的近似值 , 要求精度为 0.0005.
展开阅读全文