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

下载本文档

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

文档简介

数值分析实验-二分法,RoJ2011.10.15,用二分法求的正根(精确到小数点后3位),1.绘制函数图形ezplot(x3+x2-3*x-3,-2,2)gridon2.可见-1为一个根,另外两个根分别在-1.5和1.5左右,确定这两个根:fzero(x3+x2-3*x-3,-1.5)ans=-1.7321fzero(x3+x2-3*x-3,1.5)ans=1.7321(正根),3.根号3的15位精确值(formatlongsqrt(3)ans=1.732050807568877),二分法实现程序1(bisect.m),%二分法(BisectionMethod)%fun为f(x)的表达式%a,b为求根区间%tol为精度%x为近似根%k为迭代次数functionx,k=bisect(fun,a,b,tol)fa=feval(fun,a);fb=feval(fun,b);%求区间端点的函数值iffa*fb0disp(a,b不包含根);return;endk=0;%二分迭代次数置初值whileabs(b-a)/2tol%当区间分半后长度小于等于给定精度,退出循环体x=(a+b)/2;fx=feval(fun,x);%求区间中点函数值iffx*faf=inline(x3+x2-3*x-3);x,k=bisect(fun,1,2,1e-3)x=1.7314k=10注:该程序结果是在可接受的范围内,两句在命令窗口的执行语句也可作为一个主程序存在一个文件中。如命名为bisexam.m,其内容为:f=inline(x3+x2-3*x-3);x,k=bisect(fun,1,2,1e-3)运行:bisexam和上面得到同样的结果,二分法实现程序2,functionc,err,yc=bisect(f,a,b,delta)%MatlabProgramsbyJohnH.MathewsandKurtisD.Fink,其参数注省略ya=feval(f,a);yb=feval(f,b);ifya*yb0,endmax1=1+round(log(b-a)-log(delta)/log(2);%由定理2-4确定最大迭代次数fork=1:max1c=(a+b)/2;yc=feval(f,c);ifyc=0a=c;b=c;elseifyb*yc0b=c;yb=yc;elsea=c;ya=yc;endifb-around(-1.2),结果为-1round(1.2),结果为1,运行结果:erfenfac=1.7319(满足精度的解)err=9.7656e-004(误差)yc=-0.0011(在近似解处的函数值)注:该例若显示迭代次数,也是10次,显然,结果要好于程序1。,Format命令只影响数据输出格式,对Matlab的内部计算和数据存储的数值精度不产生任何影响。,用户可以用format命令设置或改变数据输出格式。例如,若输入x=4/31.2345e6那么,在不同的输出格式下的输出为,formatshort1.33330.0000formatshorte1.3333e+001.2345e06formatlong1.3333333333330.00000123450000,asin反正弦函数。acos反余弦函数。atan反正切函数。sinh双曲正弦函数。cosh双曲余弦函数。tanh双曲正切函数。sqrt方根函数。real复数的实部。imag复数的虚部。round最邻近整数截断(四舍五入)。floor不大于自变量的最大整数。ceil不小于自变量的最小整数。exp自然指数函数(以e为底)。log自然对数函数(以e为底)。,Matlab的部分常用数学函数,besselBessel函数。beta完全与不完全Beta函数。gamma完全与不完全。rat有理逼近。erf误差函数。inv(A)方阵A的逆矩阵。lu(A)矩阵A的列主元LU分解。det(A)求方阵A的行列式的值。fmin单变量函数的极小值。fmins多变量函数的极小值(无约束非线性优化)。fzero求单变量函数的零点。,plot二维绘图,是将所给点列的相邻两点之间用直线连接。plot3三维空间绘图。mesh绘制三维网络曲面,三维消隐图。surf绘制三维彩色曲面。title题头标注。xlablex轴标注。ylabley轴标注。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为函数文件名的求矩阵元素平方和的函数文件:functiony=squsum(x)m,n=size(x);%m为x的行数,n为x的列数y=0;fori=1:mforj=1:ny=y+x(i,j)*x(i,j);endend,引用函数的名称并代入相应的变量,即可在命令窗口调用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,即可绘出函数的图形。这里,第一个函数的图形以实线绘出,第二个函数的图形以点划线给出。,functiony=fun1(x)y=10./(1+x.2);以及以fun2.m为函数文件名的函数文件functiony=fun2(x)y=5+4*sin(x);,再建立一个以fig.m为名的文本文件x=-5:0.1:5y=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

提交评论