数值分析二分法实验.ppt_第1页
数值分析二分法实验.ppt_第2页
数值分析二分法实验.ppt_第3页
数值分析二分法实验.ppt_第4页
数值分析二分法实验.ppt_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数值分析实验-二分法,RoJ 2011.10.15,用二分法求 的正根(精确到小数点后3位 ),1.绘制函数图形 ezplot(x3+x2-3*x-3,-2,2) grid on 2.可见-1为一个根,另外两个根分别在-1.5和1.5左右,确定这两个根: fzero(x3+x2-3*x-3,-1.5) ans = -1.7321 fzero(x3+x2-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*fb0 disp(a,b不包含根); return; end k=0; %二分迭代次数置初值 while abs(b-a)/2tol %当区间分半后长度小于等于给定精度,退出循环体 x=(a+b)/2;fx=feval(fun,x);%求区间中点函数值 if fx*fa0 %判断两端点处函数值符号,做二分 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(x3+x2-3*x-3); x,k=bisect(fun,1,2,1e-3) x = 1.7314 k = 10 注:该程序结果是在可接受的范围内, 两句在命令窗口的执行语句也可作为一个主程序存在一个文件中。如命名为bisexam.m,其内容为: f=inline(x3+x2-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*yc0 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 反正切函数。 sinh 双曲正弦函数。 cosh 双曲余弦函数。 tanh 双曲正切函数。 sqrt 方根函数。 real 复数的实部。 imag 复数的虚部。 round 最邻近整数截断(四舍五入)。 floor 不大于自变量的最大整数。 ceil 不小于自变量的最小整数。 exp 自然指数函数(以e 为底)。 log 自然对数函数(以e 为底)。,Matlab 的部分常用数学函数,bessel Bessel函数。 beta 完全与不完全Beta函数。 gamma 完全与不完全 。 rat 有理逼近。 erf 误差函数。 inv( A ) 方阵A 的逆矩阵。 lu( A ) 矩阵A 的列主元LU分解。 det( A ) 求方阵A 的行列式的值。 fmin 单变量函数的极小值。 fmins 多变量函数的极小值(无约束非线性优化)。 fzero 求单变量函数的零点。,plot 二维绘图,是将所给点列的相邻两点之间用直线连接。 plot3 三维空间绘图。 mesh 绘制三维网络曲面,三维消隐图。 surf 绘制三维彩色曲面。 title 题头标注。 xlable x 轴标注。 ylable y 轴标注。 text 任意定义的标注。 gtext 鼠标定位的标注。 grid 设置网格线。 subplot 在指定位置建立坐标。,Matlab 的部分常用绘图命令,Matlab的语言结构很简单,可归纳为 Matlab语言结构 = 窗口命令 + M 文件 在命令窗口输入的Matlab语句称为窗口命令,用以调用并执行M文件。M文件在记 事本窗口建立,扩展名为. m。M文件可以有很多个,它们可互相调用,也可自己调用自己。 注意:M文件要放在Matlab搜索路径下,且文件名不要与Matlab的内置函数重名。在功能上M文件分两种类型:,简单程序设计,1. 文本文件 文本文件包含一系列Matlab命令,当命令窗口调用它时,自动执行这些命令。文本文件的语句在工作空间中对全局变量进行运算。在文件运行过程中产生的所有变量都等价于直接从Matlab工作空间中建立,因而其他的文本文件和函数都可以访问这些变量。,2. 函数文件 函数文件的第1行是以function开头的语句(文本文件没有这一行),其中至少有一个输入或输出参数,然后是一系列Matlab语句。函数文件中定义的变量都是局部变量,它们只在本函数内有效。函数文件实际上定义的是一个Matlab的子函数,其作用与其他高级语言的子函数基本相同。,1. 用窗口命令调用函数文件的例子,下面是以squsum. m 为函数文件名的求矩阵元素平方和的函数文件: function y = squsum ( x ) m ,n = size ( x );%m为x的行数,n为x的列数 y = 0; for i = 1:m for j = 1:n y = y + x ( i,j ) * x ( i,j ); end end,引用函数的名称并代入相应的变量,即可在命令窗口调用M函数文件。上述程序,下面给出2个简单程序,说明编程的基本方法,的调用方式如下。由 A = 1,2,3,4,5 ; Asum = squsum ( A ) 可得Asum = 55。由 B = 1,1,1;6,6,6;8,8,8 ; Bsum = squsum(B) 可得Bsum = 303。,2. 用文本文件调用函数文件的例子,然后在命令窗口输入命令fig, 即可绘出函数的图形。这里,第一个函数的图形以实线绘出,第二个函数的图形以点划线给出。,function y = fun1(x) y = 10. /( 1+x. 2 ) ; 以及以fun2. m为函数文件名的函数文件 function y = fun2 ( x ) y = 5 + 4 * sin ( x ) ;,再建立一个以fig. m 为名的文本文件 x = -5 : 0.1: 5 y = fun1 ( x ); z = fun2 ( x ); plot ( x , y , x , z , - . );,虽然Matlab有丰富的函数库,并且在日益扩大,但毕竟是有限的,不可能覆盖各种数值计算方法。因此,用户总要针对具体问题编制部分或全部程序。结合本书的内容,将在以后各章若干Matlab函数文件,作为算法描述和方法应用的补充。,由上述例子可见,程序的一般结构和调用过程是 窗口命令文本文件函数文件,,其中后两个可以缺省。在通常情况下,一个作

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论