数值分析二分法实验.ppt

上传人:小飞机 文档编号:6294149 上传时间:2023-10-14 格式:PPT 页数:15 大小:273.82KB
返回 下载 相关 举报
数值分析二分法实验.ppt_第1页
第1页 / 共15页
数值分析二分法实验.ppt_第2页
第2页 / 共15页
数值分析二分法实验.ppt_第3页
第3页 / 共15页
数值分析二分法实验.ppt_第4页
第4页 / 共15页
数值分析二分法实验.ppt_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《数值分析二分法实验.ppt》由会员分享,可在线阅读,更多相关《数值分析二分法实验.ppt(15页珍藏版)》请在三一办公上搜索。

1、数值分析实验-二分法,RoJ,用二分法求 的正根(精确到小数点后3位),1.绘制函数图形 ezplot(x3+x2-3*x-3,-2,2)grid on2.可见-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

2、为求根区间%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;endk=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

3、+1;%二分次数增加1endx=(a+b)/2;%满足精度的根,运行结果:,f=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,function c,err,yc=bisect(f,a,b,delta)%Matlab Programs by John H

4、.Mathews and Kurtis D.Fink,其参数注省略ya=feval(f,a);yb=feval(f,b);if ya*yb 0,endmax1=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,endend c=(a+b)/2;err=abs(b-a);yc=feval(f,c);,注:round(x)

5、,朝最近方向取整例如:round(-1.2),结果为-1round(1.2),结果为1,运行结果:erfenfac=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.0000format shorte 1.33

6、33e+00 1.2345e 06format 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 完全与不完全Be

7、ta函数。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 设置网格线。subp

8、lot 在指定位置建立坐标。,Matlab 的部分常用绘图命令,Matlab的语言结构很简单,可归纳为 Matlab语言结构=窗口命令+M 文件在命令窗口输入的Matlab语句称为窗口命令,用以调用并执行M文件。M文件在记 事本窗口建立,扩展名为.m。M文件可以有很多个,它们可互相调用,也可自己调用自己。注意:M文件要放在Matlab搜索路径下,且文件名不要与Matlab的内置函数重名。在功能上M文件分两种类型:,简单程序设计,1.文本文件 文本文件包含一系列Matlab命令,当命令窗口调用它时,自动执行这些命令。文本文件的语句在工作空间中对全局变量进行运算。在文件运行过程中产生的所有变量都等

9、价于直接从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 fo

10、r 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.

11、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函数文件,作为算法描述和方法应用的补充。,由上述例子可见,程序的一般结构和调用过程是 窗口命令文本文件函数文件,,其中后两个可以缺省。在通常情况下,一个作业只需要一个文本文件,其主要功能是 组织函数文件,完成复杂的计算任务。当有文本文件时,只要在命令窗口输入文本文件的名称,就可以自动完成规定的全部任务。当没有文本文件但一个主函数文件时,只要命令窗口输入初始数据和该文件的函数语句,就可以自动完成规定的任务。一个作业可能需要很多函数文件,它们是作业的核心内容。函数文件也就是用户文件,可以把它们看成是库函数,供任何作业调用。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号