数学实验第三次讲稿.ppt_第1页
数学实验第三次讲稿.ppt_第2页
数学实验第三次讲稿.ppt_第3页
数学实验第三次讲稿.ppt_第4页
数学实验第三次讲稿.ppt_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

1、数学实验第三讲,方程求解,2020/9/17,1,1) 掌握方程求解的三种解法:解析 法、数值解法以及图形表示解的方法; 2) 学会使用MATLAB软件求解析解、数值解 和图形解; 3) 通过范例学习怎样建立方程模型和 分析问题的思想。,实验目的,2020/9/17,2,一,引例,例子【问题背景】一段时间, 美国原子能委员会是 按以下方式处理浓缩放射性废物的. 他们将废物装入 密封性能很好的圆桶中, 然后扔到水深300英尺的海 里. 这种做法是否会造成放射性污染, 很自然地引起 了生态学家及社会各界的关注. 原子能委员会一再保 证, 圆桶非常坚固, 决不会破漏, 这种做法是绝对安 全的. 然而

2、一些工程师们却对此表示怀疑, 他们认为 圆桶在海底相撞时有可能发生破裂. 由此双方展开了 一场笔墨官司. 究竟谁的意见正确呢? 只能让事实 说话了!,2020/9/17,3,数学建模的一般步骤,2020/9/17,4,二,方程求解,1,解析方法 2,图形放大法 3,迭代方法 4,区间方法,2020/9/17,5,1,方程求解之解析方法,主要针对一些比较简单的方程以及方程组,比如多项式方程等。同学们以前对方程的求解也是针对这样一些方程进行的。该方法的优点是可以利用纸笔得到简单有效并且精确的解;缺点是可以求解的方程数量太少。Matlab和Maple提供了求方程解析解的函数,可以说对数学演算提供了不

3、少方便。,2020/9/17,6,2,方程求解之图形放大法,图形最大的有点就是直观,试想如果我们有了函数准确的图形,那么曲线和x轴的交点就是我们要求的方程的解。因此我们可以利用图形工具得到方程的解。当然,计算机上的图形不可能等同于函数的真实图形,因为计算机上的图形是曲线上部分点的轨迹而不是全部,因此通过图形不可能得到方程的精确解,甚至它只是一个比较粗略的解,当然,通过对图形的放大可以得到更精确一些的解。同时,这种方法也不适应大量的数据处理。,2020/9/17,7,方程 f(x)=0 1)建立坐标系,画曲线f(x); 2)观察曲线f(x)与x轴相交的交点; 3)将其中一个交点进行局部放大; 4

4、)该交点的横坐标值就是方程的根。,2020/9/17,8,例: 求方程 x5 +2x2 + 4 = 0 的一个根.,画方程曲线图(tuxfd.m) x=-3:0.01:3; y=x.5+2*x.2+4; y1=0*x; plot(x,y,x,y1),由此判断:方程的一个根在区间-2,2内,因此将区间-3,3缩小至-2,2,再观察!,该方程有几个根?欲寻找其中一个实根,并且达到一定的精度。,2020/9/17,9,逐次缩小区间,观察一个根在-1.55-1.5之间。,2020/9/17,10,3,方程求解之迭代法,迭代法的理论以及方法的出现,对方程求解有着里程碑式的意义。其基本思想如下:,需要求解

5、的方程: f (x) = 0 (1) 经过某种变形得:x = j (x) (2) 从而求解方程(1)转化成为求解(2)得不动点。(满足条件x*=j(x*)的点x*称为不动点) 为得到方程的不动点,可以构造迭代过程如下: xn+1 =j (xn),n =0,1, x0 定义为迭代初值。,2020/9/17,11,解: 第一步 构造迭代函数: x=j (x),例:用迭代方法求解方程 x3 -x2 -x-1 = 0。,2020/9/17,12,第二步 迭代 设定初值 x0=1, xn+1 =j (xn),n =0,1, 用 MATLAB 编程(died2.m文件),x=1;y=1;z=1;(初始点)

6、 for k=1:20 x=x3-x2-1; % j1 (x) y=(y2+y+1)(1/3); % j2 (y) z=1+1/z+1/z2; % j3 (z) end X,y,z,2020/9/17,13,j1(x)的迭代是失败的(迭代不收敛 )。,精确解:x=1.8393,计算结果,2020/9/17,14,迭代函数j2(x)和j3(x)的选取是成功的。精确解为 x=1.8393。 并且选取函数j2(x)、j3(x)其收敛速度不一致,前者的速度快些!,结论,1、当遇到迭代不收敛时有什么解决办法? 2、如何提高收敛速度?,对于给定的方程 f(x) = 0, 有多种方式将它改写成等价的形式 x

7、 = j(x)。但重要的是如何改写使得序列收敛?,2020/9/17,15,当今最流行的迭代法是牛顿法以及由此改进的一些方法,比如拟牛顿法等。其基本的思想就是构造迭代格式是利用函数的导数,这类方法有收敛速度快,稳定性好等特点。对低维和高维情况都适合,也是当今一些软件均采用的方法。当然,因为需要函数的导数信息,所以自然对不可微的问题受到制约。该方法的迭代格式为: xk+1=xk-f(xk)/f(xk),2020/9/17,16,例:利用牛顿法求方程x3 -x2 -x-1 = 0的根. 方法:第一步,给出函数的导函数3x2-2x-1; 第二步,给出函数的迭代格式: xk+1=xk-f(xk)/f(

8、xk); 设置一定的精度要求,达到即终止. 定义函数m文件: function ff=mynewton(x) ff=(x3 x2 -x-1 )/(3*x2-2*x-1); 定义命令m文件: x0=1; x1=x0-mynewton (x0); while abs(x1-x0)0.0001 x0=x1; x1=x0-mynewton (x0); end,2020/9/17,17,三,解方程函数格式及例子,Matlab对方程的求解提供了以下的一些函数: (1)多项式求根; (2) 线性方程组求解; (3)一般的非线性方程(组)求解:,2020/9/17,18,输出: -1.2131 -0.9017

9、 + 0.5753i -0.9017 - 0.5753i -0.2694 + 0.9406i -0.2694 - 0.9406i 0.4168 + 0.8419i 0.4168 - 0.8419i 0.8608 + 0.3344i 0.8608 - 0.3344i,例:求解多项式方程 x9+x8+1=0,输入: p=1,1,0,0,0,0,0,0,0,1; roots(p),1,roots()语句的用法,2020/9/17,19,线性方程组:AX = b 其中A是mn阶矩阵,b是m维向量。,x=A b or x=inv(A)*b,特点:只能求出一个特解。,2020/9/17,20,2,线性方程

10、组,solution to the following linear system of equations: You can formulate and solve the problem as A = 3 11 -2; 1 1 -2; 1 -1 1; b = 7; 4; 19; x = Ab x = 13.2188 -2.3438 3.4375,2020/9/17,21,例: AX = b,解: 输入:A=1 2 3; 4 5 6; 7 8 9; b=6; 14; -3; x1=Ab, x2=inv(A)*b 输出:警告: 系统的秩不足. 解不唯一.,1、题中rank(A)=rank(A|

11、b)=23, 该方程组有无穷解。 2、输出结果是否一致? 3、如何求方程组的全部解?,思 考,返 回,2020/9/17,22,3.1,函数fzero的用法,格式: fzero(函数名,初值或区间) Example 1. Calculate by finding the zero of the sine function near 3. x = fzero(sin,3) x = 3.1416 Example 2. To find the zero of cosine between 1 and 2 x = fzero(cos,1 2) x = 1.5708,2020/9/17,23,1、方程(

12、组), f1(x) = 0,fn(x) = 0, x = (x1,xn),2、方程(组), f1(x) = 0,fn(x) = 0, x = (x1,xn),solve(f1(x),f2(x),fn(x) ),X = fsolve (fun, X0, options),MATLAB软件直接求解法,2020/9/17,24,输出: 1/2/a*(-b+(b2-4*a*c)(1/2) 1/2/a*(-b-(b2-4*a*c)(1/2),单变量方程,3.2 solve()语句的用法,例1: 求解方程 ax2+bx+c = 0,输入: x= solve(a*x2+b*x+c) 或 solve(a*x2

13、+b*x+c=0),1)符号解,2020/9/17,25,例2: 解方程: x3-2x2=x-1 解: s=solve(x3-2*x2=x-1) double(s),2)数字解,该方程是否有实根? vpa(s,10),2020/9/17,26,例3 求解方程: tan(x)-sin(x)=0,3)无穷解,输入: solve(tan(x)-sin(x)=0) 输出:0 (不能给出全部解) (tx1.m),2020/9/17,27,输入: x,y=solve(x2*y2,x-(y/2)-b) 输出:x = 0 , y = -2*b 0, -2*b (符号解) b, 0 b, 0 v=x,y, 多变

14、量方程组,例4,solve()语句的用法,2020/9/17,28,例6:求解方程组,解 输入: x,y,z=solve(sin(x)+y2+log(z)-7=0, 3*x+2y-z3+1=0,x+y+z-5=0,x,y,z),3.3 fsolve()语句的用法,2020/9/17,29,解:1)建立方程组的M-函数文件(nxxf.m) function eq=nxxf(x) eq(1)=sin(x(1)+x(2)2+log(x(3)-7; eq(2)=3*x(1)+2x(2)-x(3)3+1; eq(3)=x(1)+x(2)+x(3)-5;,运行程序(test4.m) y=fsolve(nx

15、xf,1,1,1),3)运行结果:Optimization Terminated Successfully y= 0.5990 2.3959 2.0050,fsolve()语句的用法,2020/9/17,30,fsolve()函数的第三个输入是options,它是一个结构型数据,可以通过函数optimset ()进行设定.当不进行设定时采用缺省设置. fsolve函数还可以有后面的参数设定,这一功能在有的时候非常有用.,fsolve()语句的用法,例如,求解函数sin(ax)-x=0的最小正解. 分析: 已知的知识我们知道,该方程没有解析形式的解,也就是说很难得到这个解和a之间的具体关系.数值

16、的方法可以对a先取确定的值,这样变成一个一元方程,容易进行求解,当我们变化a时,就得到很多这样的解,通过这样的方法,我们可以得到解和a之间的一些大致关系.,2020/9/17,31,具体方法如下: 建立函数m文件: function ff=funpara(x,a) ff=sin(a*x)-x;,fsolve()语句的用法,建立相应的命令m文件: B=zeros(100,1); for a=1:100 x0=pi/(2*a)+0.01; B(a)=fsolve(funpara,x0,a); end plot(B),2020/9/17,32,2020/9/17,33,例:某物体的边缘呈圆形,通过测

17、量边沿上是一个点的坐标,数据为(见程序)。使用fsolve计算物体边缘的曲线方程。 解:假定物体边缘的曲线方程为(x-a)2+(y-b)2=r2 为了得到a,b和r的值。将上述十一组数据代人方程,得到 (xi-a)2+(yi-b)2=r2(i=1,11)。次数方程个数是11个,未知量个数是3个。使用fsolve求解,其函数m文件为: function y=funcircle(x) A=6.7630 5.1313 2.4713 -0.3435 -2.3887 -2.9927 -1.9572 0.3778 3.2455 5.7042 6.9465; B=23.2879 25.6492 26.726

18、8 26.1668 24.1531 21.3470 18.6699 17.0010 16.8883 18.3688 20.9564; for i=1:11 y(i)=(A(i)-x(1)2+(B(i)-x(2)2-x(3)2; end,二分法,对于一个闭区间上的连续函数,我们有一个0点存在定理,利用这个定理,可以对不可微的函数求得函数的0点。 基本思想是通过判断函数在端点处的函数值异号可以确定函数在开区间上至少有一个0点,然后通过缩小区间得到解的近似。 优点是不需要函数的导数信息,而且只要有0点就一定可以得到;缺点是相对牛顿法等速度较慢。,2020/9/17,34,问题的关键在于圆桶到底能承受

19、多大速度的碰撞? 圆桶和海底碰撞时的速度有多大? 工程师们进行了大量破坏性的实验, 发现圆桶在直线速度为40 ft/s 的冲撞下会发生破裂, 剩下的问题就是计算圆桶沉入300 ft 深的海底时, 其末速度究竟有多大?,问题分析,引例的分析和求解,2020/9/17,35,1. 使用55加仑的圆桶; ( 1加仑 = 3.7854升 ) 2. 装满放射性废物时的圆桶重量为 W = 527.436磅 (1 磅 = 0.4526公斤 ) 3. 在海水中圆桶受到的浮力 B = 470.327磅 4. 圆桶下沉时受到海水的阻力 D = C v C 为常数, 经测算得: C = 0.08. 5. 建立坐标系, 取垂直向下为坐标方向 y , 海平面为坐标原点.,问题假设,引例,2020/9/17,36,根据牛顿第二定律, 圆桶下沉时应满足微分方程:,建立模型,引例,2020/9/17,37,为了求出圆桶与海底的碰撞速度v(t), 需要求出圆桶下沉到海底300英尺时的时间 t, 再计算v(t),要做到这一点是十分困难的. 若将速度v 看成是海水深度y 的函数, 即,由复合函数的求导法知,建立模型,引例,2020/9/17,38,借助数值方法求出 v(300)=45.1ft/s,显然大于40ft/s。,结论:放射性废物

温馨提示

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

评论

0/150

提交评论