matlab实例教程-比较实用26210.pdf

上传人:得****3 文档编号:83505650 上传时间:2023-03-31 格式:PDF 页数:30 大小:1.95MB
返回 下载 相关 举报
matlab实例教程-比较实用26210.pdf_第1页
第1页 / 共30页
matlab实例教程-比较实用26210.pdf_第2页
第2页 / 共30页
点击查看更多>>
资源描述

《matlab实例教程-比较实用26210.pdf》由会员分享,可在线阅读,更多相关《matlab实例教程-比较实用26210.pdf(30页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、实验一 特殊函数与图形一、问题背景与实验目的 二、相关函数(命令)及简介 三、实验内容 四、自己动手 一、问题背景与实验目的 著名的 Riemann 函数大家都很熟悉了,但是关于它的图像你是否清楚呢除了最上面那几点,其他都很难画吧你想不想看看下面那些“挤在一起”的点是怎样分布的呢还有几何中的马鞍面、单叶双曲面等是怎样由直线生成的,是不是也想目睹一下呢这些,都离不开绘图 实际上绘图一直是数学中的一种重要手段,借助图形,往往可以化繁为简,使抽象的对象得到明白直观的体现比如函数的基本性质,一个图形常可以使之一目了然,非常有效 它虽不能代替严格的分析与证明,但在问题的研究过程中,可以帮助研究人员节约相

2、当一部分精力此外,它还可以使计算、证明、建模等的结果得到更明白易懂的表现,有时,这比科学论证更有说服力 同时,数学的教学与学习过程也离不开绘图借助直观的图形,常可以使初学者更容易接受新知识 如数学分析中有不少函数,其解析式着实让人望而生畏,即使对其性质作了详尽的分析,还是感到难明就里;但如果能看到它的图形,再配合理论分析,则问题可以迎刃而解又如在几何的学习中,会遇到大量的曲线与曲面,也离不开图形的配合 传统的手工作图,往往费力耗时,效果也不尽理想计算机恰恰弥补了这个不足,使你可以方便地指定各种视角、比例、明暗,从各个角度进行观察 本实验通过对函数的图形表示和几个曲面(线)图形的介绍,一方面展示

3、它们的特点,另一方面,也将就 Matlab 软件的作图功能作一个简单介绍大家将会看到,Matlab 的作图功能非常强大 二、相关函数(命令)及简介 1平面作图函数:plot,其基本调用形式:plot(x,y,s)以 x 作为横坐标,y 作为纵坐标s 是图形显示属性的设置选项例如:x=-pi:pi/10:pi;y=sin(x);plot(x,y,-rh,linewidth,2,markeredgecolor,b,markerfacecolor,g)图 1 在使用函数 plot 时,应当注意到当两个输入量同为向量时,向量 x 与 y 必须维数相同,而且必须同是行向量或者同是列向量 绘图时,可以制定

4、标记的颜色和大小,也可以用图形属性制定其他线条特征,这些属性包括:linewidth 指定线条的粗细 markeredgecolor 指定标记的边缘色 markerfacecolor 指定标记表面的颜色 markersize 指定标记的大小 若在一个坐标系中画几个函数,则 plot 的调用格式如下:plot(x1,y1,s1,x2,y2,s2,)2空间曲线作图函数:plot3,它与 plot 相比,只是多了一个维数而已其调用格式如下:plot3(x,y,z,s)例如:x=0:pi/30:20*pi;y=sin(x);z=cos(x);plot3(x,y,z)得到三维螺旋线:图 2 3空间曲面作

5、图函数:(1)mesh 函数绘制彩色网格面图形调用格式:mesh(z),mesh(x,y,z)和 mesh(x,y,z,c)其中,mesh(x,y,z,c)画出颜色由 c 指定的三维网格图若 x、y 均为向量,则length(x)=n,length(y)=m,m,n=size(z)(2)surf 在矩形区域内显示三维带阴影曲面图调用格式与 mesh 类似(3)ezmesh 用符号函数作三维曲面网格图 调用格式:ezmesh(x,y,z)其中 x=x(s,t),y=y(s,t),z=z(s,t)画图区域默认为:-2*pi s 2*pi 且-2*pi t 7)输出:b=3 4 6 7 三、实验内容

6、 数学分析中,特别是积分部分,我们接触了不少有趣的函数,由于其中有的不是一一对应的,用上面的方法无法画出它们的图像,这时就只能用参数了 此外还有些图形只能用参数来画,比如空间曲线,在计算机上不接受“两个曲面的交线”这种表示,所以也只能用参数来实现 用参数方式作图的关键在于找出合适的参数表示,尤其是不能有奇点,最好也不要用到开方 所以要找的参数最好是有几何意义的 当然这也不可一概而论,需要多积累经验 1 利用函数 plot 在一个坐标系中画以下几个函数图像,要求采用不同颜色、不同线形、不同的符号标记 函数为:程序如下:t=0:pi/20:2*pi;x=sin(t);y=cos(t);z=sin(

7、2*t);plot(t,x,-k*,t,y,-rs,t,z,:bo)图像如下:图 3 2绘制类似田螺线的一条三维螺线(方程自己设计)程序如下:t=0:.1:30;x=2*(cos(t)+t.*sin(t);y=2*(sin(t)-t.*cos(t);z=*t;plot3(x,y,-z)%取 z 主要是为了画图看起来更清楚 axis equal 图像如下:图 4 3利用函数,绘制一个墨西哥帽子的图形 程序如下:a,b=meshgrid(-8:.5:8);%先生成一个网格 c=sqrt(a.2+b.2)+eps;z=sin(c)./c;mesh(a,b,z)axis square 图像如下:图 5

8、 思考:这里的 eps 是什么其作用是什么 4利用 surf 绘制马鞍面图形(函数为:)程序如下:x,y=meshgrid(-25:1:25,-25:1:25);z=x.2/9-y.2/4;surf(x,y,z)title(马鞍面)grid off 图像如下:图 6 5 分别用 ezmesh 和 ezsurf 各绘制一个圆环面,尝试将两个圆环面放在一个图形界面内,观察它们有什么不同之处 提示:圆环面的方程为:,而圆环面的参数方程为:程序参见附录1 图像如下:图 7 6绘制黎曼函数图形,加深对黎曼函数的理解 说明:黎曼函数的定义为 程序参见附录2 图像如下:图 8 四、自己动手 1作出下图所示的

9、三维图形:图 9 提示:图形为圆环面和球面的组合.2作出下图所示的墨西哥帽子及其剪裁图形:图 10 3画出球面、椭球面、双叶双曲面、单叶双曲面 4若要求田螺线的一条轴截面的曲边是一条抛物线:时试重新设计田螺线的参数方程,并画出该田螺线 5作出下图所示的马鞍面(颜色为灰色,并有一个标题:“马鞍面”):图 11 6绘制图 8 所示的黎曼函数图形,要求分母的最大值的数值由键盘输入(提示:使用 input 语句)回目录 下一页 实验二 定积分的近似计算 一、问题背景与实验目的 二、相关函数(命令)及简介 三、实验内容 1 矩形法 2 梯形法 3抛物线法 4.直接应用 Matlab 命令计算结果 四、自

10、己动手 一、问题背景与实验目的 利用牛顿莱布尼兹公式虽然可以精确地计算定积分的值,但它仅适用于被积函数的原函数能用初等函数表达出来的情形如果这点办不到或者不容易办到,这就有必要考虑近似计算的方法 在定积分的很多应用问题中,被积函数甚至没有解析表达式,可能只是一条实验记录曲线,或者是一组离散的采样值,这时只能应用近似方法去计算相应的定积分 本实验将主要研究定积分的三种近似计算算法:矩形法、梯形法、抛物线法对于定积分的近似数值计算,Matlab有专门函数可用 二、相关函数(命令)及简介 1sum(a):求数组 a 的和 2format long:长格式,即屏幕显示 15 位有效数字(注:由于本实验

11、要比较近似解法和精确求解间的误差,需要更高的精度)3double():若输入的是字符则转化为相应的 ASCII 码;若输入的是整型数值则转化为相应的实型数值 4quad():抛物线法求数值积分 格式:quad(fun,a,b),注意此处的 fun 是函数,并且为数值形式的,所以使用*、/、等运算时要在其前加上小数点,即.*、./、.等 例:Q=quad(1./(x.3-2*x-5),0,2);5trapz():梯形法求数值积分 格式:trapz(x,y)其中 x 为带有步长的积分区间;y 为数值形式的运算(相当于上面介绍的函数 fun)例:计算 x=0:pi/100:pi;y=sin(x);t

12、rapz(x,y)6dblquad():抛物线法求二重数值积分 格式:dblquad(fun,xmin,xmax,ymin,ymax),fun 可以用 inline 定义,也可以通过某个函数文件的句柄传递 例 1:Q1=dblquad(inline(y*sin(x),pi,2*pi,0,pi)顺便计算下面的 Q2,通过计算,比较 Q1 与 Q2 结果(或加上手工验算),找出积分变量 x、y 的上下限的函数代入方法 Q2=dblquad(inline(y*sin(x),0,pi,pi,2*pi)例 2:Q3=dblquad(integrnd,pi,2*pi,0,pi)这时必须存在一个函数文件:f

13、unction z=integrnd(x,y)z=y*sin(x);7fprintf(文件地址,格式,写入的变量):把数据写入指定文件 例:x=0:.1:1;y=x;exp(x);fid=fopen(,w);%打开文件 fprintf(fid,%n,y);%写入 fclose(fid)%关闭文件 8syms 变量 1 变量 2:定义变量为符号 9sym(表达式):将表达式定义为符号 解释:Matlab 中的符号运算事实上是借用了 Maple 的软件包,所以当在Matlab中要对符号进行运算时,必须先把要用到的变量定义为符号 10int(f,v,a,b):求 f 关于 v 积分,积分区间由 a

14、到 b 11subs(f,x,a):将 a 的值赋给符号表达式 f 中的 x,并计算出值若简单地使用 subs(f),则将 f 的所有符号变量用可能的数值代入,并计算出值 三、实验内容 1矩形法 根据定积分的定义,每一个积分和都可以看作是定积分的一个近似值,即 在几何意义上,这是用一系列小矩形面积近似小曲边梯形的结果,所以把这个近似计算方法称为矩形法不过,只有当积分区间被分割得很细时,矩形法才有一定的精确度 针对不同的取法,计算结果会有不同,我们以为例(取),(1)左点法:对等分区间,在区间上取左端点,即取,理论值,此时计算的相对误差 (2)右点法:同(1)中划分区间,在区间上取右端点,即取,

15、理论值,此时计算的相对误差 (3)中点法:同(1)中划分区间,在区间上取中点,即取,理论值,此时计算的相对误差 如果在分割的每个小区间上采用一次或二次多项式来近似代替被积函数,那么可以期望得到比矩形法效果好得多的近似计算公式下面介绍的梯形法和抛物线法就是这一指导思想的产物 2梯形法 等分区间,相应函数值为()曲线上相应的点为()将曲线的每一段弧用过点,的弦(线性函数)来代替,这使得每个上的曲边梯形成为真正的梯形,其面积为,于是各个小梯形面积之和就是曲边梯形面积的近似值,即,称此式为梯形公式 仍用的近似计算为例,取,理论值,此时计算的相对误差 很 显然,这个误 差 要 比 简单 的 矩 形 左点

16、法 和右点 法的 计算误 差小 得多 3抛物线法 由梯形法求近似值,当为凹曲线时,它就偏小;当为凸曲线时,它就偏大若每段改用与它凸性相接近的抛物线来近似时,就可减少上述缺点,这就是抛物线法 将积分区间作等分,分点依次为,对应函数值为(),曲线上相应点为()现把区间上的曲线段用通过三点,的抛物线 来近似代替,然后求函数从到的定积分:由于,代入上式整理后得 同样也有 将这个积分相加即得原来所要计算的定积分的近似值:,即 这就是抛物线法公式,也称为辛卜生(Simpson)公式 仍用的近似计算为例,取,=,理论值,此时计算的相对误差 4.直接应用 Matlab 命令计算结果 (1)数值计算 方法 1:

17、int(1/(1+x2),x,0,1)(符号求积分)方法 2:quad(1./(1+x.2),0,1)(抛物线法求数值积分)方法 3:x=0:1;y=1./(1+x.2);trapz(x,y)(梯形法求数值积分)(2)数值计算 方法 1:int(int(x+y2,y,-1,1),x,0,2)(符号求积分)方法 2:dblquad(inline(x+y2),0,2,-1,1)(抛物线法二重数值积分)四、自己动手 1 实现实验内容中的例子,即分别采用矩形法、梯形法、抛物线法计算,取,并比较三种方法的精确程度 2分别用梯形法与抛物线法,计算,取并尝试直接使用函数trapz()、quad()进行计算求

18、解,比较结果的差异 3试计算定积分(注意:可以运用 trapz()、quad()或附录程序求解吗为什么)4将的近似计算结果与 Matlab 中各命令的计算结果相比较,试猜测Matlab 中的数值积分命令最可能采用了哪一种近似计算方法并找出其他例子支持你的观点 5通过整个实验内容及练习,你能否作出一些理论上的小结,即针对什么类型的函数(具有某种单调特性或凹凸特性),用某种近似计算方法所得结果更接近于实际值 6学习的程序设计方法,尝试用函数 sum 改写附录 1 和附录 3 的程序,避免for 循环 上一页 回目录 下一页 实验三 求代数方程的近似根(解)一、问题背景和实验目的 二、相关函数(命令

19、)及简介 三、实验内容 四、自己动手 一、问题背景和实验目的 求代数方程的根是最常见的数学问题之一(这里称为代数方程,主要是想和后面的微分方程区别开为简明起见,在本实验的以下叙述中,把代数方程简称为方程),当是一次多项式时,称为线性方程,否则称之为非线性方程 当是非线性方程时,由于的多样性,尚无一般的解析解法可使用,但如果对任意的精度要求,能求出方程的近似根,则可以认为求根的计算问题已经解决,至少能满足实际要求 本实验介绍一些求方程实根的近似值的有效方法,要求在使用这些方法前先确定求根区间,或给出某根的近似值在实际问题抽象出的数学模型中,可以根据物理背景确定;也可根据的草图等方法确定,还可用对

20、分法、迭代法以及牛顿切线法大致确定根的分布情况 通过本实验希望你能:1.了解对分法、迭代法、牛顿切线法求方程近似根的基本过程;2.求代数方程(组)的解 二、相关函数(命令)及简介 1abs():求绝对值函数 2diff(f):对独立变量求微分,f 为符号表达式 diff(f,a):对变量 a 求微分,f 为符号表达式 diff(f,a,n):对变量 a 求 n 次微分,f 为符号表达式 例如:syms x t diff(sin(x2)*t6,t,6)ans=720*sin(x2)3roots(c(1),c(2),c(n+1):求解多项式的所有根例如:求解:p=1 -6 -72 -27;r=ro

21、ots(p)r=4solve(表达式):求表达式的解 solve(2*sin(x)=1)ans=1/6*pi 5linsolve(A,b):求线性方程组 A*x=b 的解 例如:A=9 0;-1 8;b=1;2;linsolve(A,b)ans=1/9 19/72 6fzero(fun,x0):在 x0 附近求 fun 的解其中 fun 为一个定义的函数,用“函数名”方式进行调用 例如:fzero(sin,3)ans=7subs(f,x,a):将 a 的值赋给符号表达式 f 中的 x,并计算出值 例如:subs(x2,x,2)ans=4 三、实验内容 首先,我们介绍几种与求根有关的方法:1对分

22、法 对分法思想:将区域不断对分,判断根在某个分段内,再对该段对分,依此类推,直到满足精度为止对分法适用于求有根区间内的单实根或奇重实根 设在上连续,即,或,则根据连续函数的介值定理,在内至少存在一点,使 下面的方法可以求出该根:(1)令,计算;(2)若,则是的根,停止计算,输出结果 若,则令,若,则令,;,有、以及相应的(3)若(为预先给定的精度要求),退出计算,输出结果;反之,返回(1),重复(1),(2),(3)以上方法可得到每次缩小一半的区间序列,在中含有方程的根 当区间长很小时,取其中点为根的近似值,显然有 以上公式可用于估计对分次数 分析以上过程不难知道,对分法的收敛速度与公比为的等

23、比级数相同由于,可知大约对分 10 次,近似根的精度可提高三位小数对分法的收敛速度较慢,它常用来试探实根的分布区间,或求根的近似值 2.迭代法 1)迭代法的基本思想:由方程构造一个等价方程 从某个近似根出发,令,可得序列,这种方法称为迭代法 若 收敛,即,只要连续,有 即 可知,的极限是的根,也就是的根 当然,若发散,迭代法就失败 以下给出迭代过程收敛的一些判别方法:定义:如果根的某个邻域中,使对任意的,迭代过程,收敛,则称迭代过程在附近局部收敛 定理 1:设,在的某个邻域内连续,并且,则对任何,由迭代决定的序列收敛于 定理 2:条件同定理 1,则 定理 3:已知方程,且(1)对任意的,有(2

24、)对任意的,有,则对任意的,迭代生成的序列收敛于的根,且 以上给出的收敛定理中的条件要严格验证都较困难,实用时常用以下不严格的标准:当根区间较小,且对某一,明显小于 1 时,则迭代收敛(参见附录 3)2)迭代法的加速:a)松弛法:若与同是的近似值,则是两个近似值的加权平均,其中称为权重,现通过确定看能否得到加速 迭代方程是:其中,令,试确定:当时,有,即当,时,可望获得较好的加速效果,于是有松弛法:,松弛法的加速效果是明显的(见附录 4),甚至不收敛的迭代函数经加速后也能获得收敛 b)Altken 方法:松弛法要先计算,在使用中有时不方便,为此发展出以下的 Altken 公式:,是它的根,是其

25、近似根 设,因为,用差商近似代替,有 ,解出,得 由此得出公式 ;,这就是 Altken 公式,它的加速效果也是十分明显的,它同样可使不收敛的迭代格式获得收敛(见附录 5)3.牛顿(Newton)法(牛顿切线法)1)牛顿法的基本思想:是非线性方程,一般较难解决,多采用线性化方法 记:是一次多项式,用作为的近似方程 的解为 记为,一般地,记 即为牛顿法公式.2)牛顿法的收敛速度:对牛顿法,迭代形式为:注意分子上的,所以当时,牛顿法至少是二阶收敛的,而在重根附近,牛顿法是线性收敛的 牛顿法的缺点是:(1)对重根收敛很慢;(2)对初值要求较严,要求相当接近真值 因此,常用其他方法确定初值,再用牛顿法

26、提高精度 4.求方程根(解)的其它方法(1)solve(x3-3*x+1=0)(2)roots(1 0-3 1)(3)fzero(x3-3*x+1,-2)(4)fzero(x3-3*x+1,(5)fzero(x3-3*x+1,(6)linsolve(1,2,3;4,5,6;7,8,0,1,2,3)体会一下,(2)(5)用了上述 13 中的哪一种方法 以下是本实验中的几个具体的实验,详细的程序清单参见附录 具体实验 1:对分法 先作图观察方程:的实根的分布区间,再利用对分法在这些区间上分别求出根的近似值 输入以下命令,可得的图象:f=x3-3*x+1;g=0;ezplot(f,-4,4);hol

27、d on;ezplot(g,-4,4);%目的是画出直线 y=0,即 x 轴 grid on;axis(-4 4-5 5);hold off 请填写下表:实根的分布区间 该区间上根的近似值 在某区间上求根的近似值的对分法程序参见附录1 具体实验 2:普通迭代法 采用迭代过程:求方程在 附近的根,精确到第 4 位小数 构造等价方程:用迭代公式:,用 Matlab 编写的程序参见附录 2 请利用上述程序填写下表:分析:将附录 2 第 4 行中的分别改为以及,问运行的结果是什么你能分析得到其中的原因吗看看下面的“具体实验 3”是想向你表达一个什么意思 用 Matlab 编写的程序参见附录 3 具体实

28、验 3:收敛/发散判断 设方程的三个根近似地取,和,这些近似值可以用上面的对分法求得 迭代形式一:收敛(很可能收敛,下同)不收敛(很可能不收敛,下同)不收敛 迭代形式二:收敛 不收敛 不收敛 迭代形式三:不收敛 收敛 收敛 具体实验 4:迭代法的加速 1松弛迭代法,迭代公式为 程序参见附录 4 具体实验 5:迭代法的加速 2Altken 迭代法 迭代公式为:,程序参见附录 5 具体实验 6:牛顿法 用牛顿法计算方程在-2 到 2 之间的三个根 提示:,迭代公式:程序参见附录 6(牛顿法程序)具体实验 7:其他方法 求下列代数方程(组)的解:(1)命令:solve(x5-x+1=0)(2)命令:

29、x,y=solve(2*x+3*y=0,4*x2+3*y=1)(3)求线性方程组的解,已知,命令:for i=1:5 for j=1:5 m(i,j)=i+j-1;end end m(5,5)=0;b=1:5 linsolve(m,b)思考:若,或是类似的但阶数更大的稀疏方阵,则应如何得到 四、自己动手 1对分法可以用来求偶重根附近的近似解吗 为什么 2对照具体实验 2、4、5,你可以得出什么结论 3选择适当的迭代过程,分别使用:(1)普通迭代法;(2)与之相应的松弛迭代法和 Altken 迭代法求解方程 在 附近的根,精确到 4位小数,请注意迭代次数的变化 4分别用对分法、普通迭代法、松弛迭代法、Altken 迭代法、牛顿切法线等 5 种方法,求方程 的正的近似根,(建议取 时间许可的话,可进一步考虑 的情况)上一页 回目录 下一页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁