matlab数值分析二分法,数值分析二分法实验.ppt

数值分析二分法实验

数值分析实验-二分法 RoJ 2011.10.15 用二分法求 的正根(精确到小数点后3位 ) 1.绘制函数图形 >> ezplot('x^3+x^2-3*x-3',[-2,2]) >> grid on 2.可见-1为一个根,另外两个根分别在-1.5和1.5左右,确定这两个根: >> fzero('x^3+x^2-3*x-3',-1.5) ans = -1.7321 >> fzero('x^3+x^2-3*x-3',1.5) ans = 1.7321(正根) 3.根号3的15位精确值(>> format long >> sqrt(3) ans = 1.732050807568877) 二分法实现程序1(bisect.m) %二分法(Bisection Method) %fun 为 f(x)的表达式 %[a,b]为求根区间 %tol为精度 %x为近似根 %k为迭代次数 function [x,k]=bisect(fun,a,b,tol) fa=feval(fun,a);fb=feval(fun,b);%求区间端点的函数值 if fa*fb>0 disp('[a,b]不包含根'); return; end k=0; %二分迭代次数置初值 while abs(b-a)/2>tol %当区间分半后长度小于等于给定精度,退出循环体 x=(a+b)/2;fx=feval(fun,x);%求区间中点函数值 if fx*fa<0 %判断两端点处函数值符号,做二分 b=x;fb=fx;%根在[a, x]内 else a=x;fa=fx;%根在[x, b]内 end k=k+1; %二分次数增加1 end x=(a+b)/2; %满足精度的根 运行结果: >> f=inline('x^3+x^2-3*x-3'); >> [x,k]=bisect(fun,1,2,1e-3) x = 1.7314 k = 10 注:该程序结果是在可接受的范围内, 两句在命令窗口的执行语句也可作为一个主程序存在一个文件中。如命名为bisexam.m,其内容为: f=inline('x^3+x^2-3*x-3'); [x,k]=bisect(fun,1,2,1e-3) 运行:>>bisexam和上面得到同样的结果 二分法实现程序2 function [c,err,yc]=bisect(f,a,b,delta) %Matlab Programs by John H. Mathews and Kurtis D. Fink,其参数注省略 ya=feval(f,a); yb=feval(f,b); if ya*yb > 0,end max1=1+round((log(b-a)-log(delta))/log(2));%由定理2-4确定最大迭代次数 for k=1:max1 c=(a+b)/2; yc=feval(f,c); if yc==0 a=c; b=c; elseif yb*yc>0 b=c; yb=yc; else a=c; ya=yc; end if b-a < delta, break,end end c=(a+b)/2; err=abs(b-a); yc=feval(f,c); 注:round(x), 朝最近方向取整 例如: >>round(-1.2),结果为-1 >>round(1.2),结果为1 运行结果: >> erfenfa c = 1.7319(满足精度的解) err = 9.7656e-004(误差) yc = -0.0011(在近似解处的函数值) 注:该例若显示迭代次数,也是10次,显然,结果要好于程序1。 Format命令只影响数据输出格式,对Matlab的内部计算和数据存储的数值精度不产生任何影响。   用户可以用format命令设置或改变数据输出格式。例如,若输入 》x = [ 4/3 1.2345e – 6 ] 那么,在不同的输出格式下的输出为 》format short 1.3333 0.0000 》format shorte 1.3333e + 00 1.2345e – 06 》format long 1.333333333333 0.00000123450000   asin 反正弦函数。 acos 反余弦函数。 atan

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值