二分法及其matlab程序-经典

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

三.二分法及其MATLAB程序1.用二分法求方程f(x)=0的根x*的近似值xk的步骤步骤1.若对于ab,有f(a)f(b)0,则在(a,b)内f(x)=0至少有一个根.步骤2.取a,b的中点1,2abx计算1fx步骤3.若则x1是f(x)=0的根,停止计算,10,fx若则在(a,x1)内f(x)=0至少有一个根.10,fafx取a1=a,b1=x1;若10,fafx则取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,2abx计算1fx步骤3.若则x1是f(x)=0的根,停止计算,10,fx若则在(a,x1)内f(x)=0至少有一个根.10,fafx取a1=a,b1=x1;若10,fafx则取a1=x1,b1=b;步骤4.若1,2kkba为预先给定的要求精度退出计算,运行后输出结果x*=x1.运行后输出结果;2kkabx反之,返回步骤1,重复步骤1,2,3.2.二分法的matlab主程序求解方程f(x)=0在开区间(a,b)内的一个根的前提条件是f(x)在闭区间[a,b]上连续,且f(a)f(b)0.输入的量:a和b是闭区间[a,b]的左右端点,abtol是预先给定的精度.运行后输出的量:k是使用二分法的次数.x是方程在(a,b)内的实根x*的近似值,其精度是abtol.wuca=|bk-ak|/2是使用k次二分法所得到的小区间的长度的一半,即实根x*的近似值x的绝对精度限,满足wuca≤abtol.yx=f(xk),即方程f(x)=0在实根x*的近似值x处的函数值.2.二分法的matlab主程序function[k,x,wuca,yx]=erfen(a,b,abtol)a(1)=a;b(1)=b;ya=fun(a(1));yb=fun(b(1));%程序中调用的fun.m为函数ifya*yb0,disp('注意:ya*yb0,请重新调整区间端点a和b.'),returnendmax1=-1+ceil((log(b-a)-log(abtol))/log(2));fork=1:max1+1a;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]ifyx==0a=x;b=x;elseifyb*yx0b=x;yb=yx;elsea=x;ya=yx;endifb-aabtol,return,endendk=max1;x;wuca;yx=fun(x);%ceil是上取整例:确定方程x3-x+4=0的实根的分布情况,并用二分法求在开区间(-2,-1)内的实根的近似值,要求精度为0.001.2kkab次数k左端点ak右端点bk中点xk函数值f(ak)函数值f(bk)函数值f(xk)0-2.0000-1.0000-1.50000.5000-2.00004.00002.12501-2.0000-1.5000-1.75000.2500-2.00002.12500.39062-2.0000-1.7500-1.87500.1250-2.00000.3906-0.71683-1.8750-1.7500-1.81250.0625-0.71680.3906-0.14184-1.8125-1.7500-1.78130.0313-0.14180.39060.12965-1.8125-1.7813-1.79690.0156-0.14180.1296-0.00486-1.7969-1.7813-1.78910.0078-0.00480.12960.06277-1.7969-1.7891-1.79300.0039-0.00480.06270.02908-1.7969-1.7930-1.79490.0020-0.00480.02900.01219-1.7969-1.7949-1.79590.0010-0.00480.01210.00373.用二分法求解方程f(x)=0在(a,b)内的近似根的步骤步骤1.建立名为fun.m的M文件如:步骤2.步骤3.在matlab工作窗口输入程序:其中输入的量:区间端点的值a,b和精度是abtol都是具体给定的数值,然后按运行键.运行后输出计算次数k、使用k次二分法所得到的小区间[ak,bk]的中点的值x和它的函数值y(x)及wuca=|bk-ak|/2.functiony1=fun(x)y1=f(x);将二分法的主程序保存名为erfen.m的M文件;[k,x,wuca,yx]=erfen(a,b,abtol)练习:确定方程3x2-ex=0的实根的分布情况,并用二分法求在开区间(-1,0)内的实根的近似值,要求精度为0.0005.

1 / 7
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功