已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二讲 方程及方程组解法(上),方程 工程计算和科学分析的发动机。 若干世纪来,方程是工程师和数学家花费大量时间 进行研究的课题,即有古老的算法(如二分法),也有新颖的发现(如迭代的分形与混沌现象) 本讲主要介绍非线性方程的实用解法,对线性方程组及数值分析中的矩阵分解法略作介绍: 图形放大法(不要苛求精确解!) 简单迭代法(迭代函数的选取) 加速迭代法(加权平均的思想),线性方程组解的存在性,线性方程组的矩阵形式:AX=B AX=B的解可能出现三种情况:有解/无解/无穷解 A=1 2 1;2 3 1;1 -1 -2; B=1;3;0; AB=A,B; rank(A)=rank(AB) % ans=0 故原方程组无解 A=0 1 -3 4;1 0 -2 3;3 2 0 -5;4 3 -5 0; B=-5;-4;12;5; AB=A,B; rank(A)=rank(AB) % ans=1 有唯一解,线性方程组AX=B的求解,A=0 1 -3 4;1 0 -2 3;3 2 0 -5;4 3 -5 0; B=-5;-4;12;5; rank(A)=rank(A,B) x=AB %方法1:矩阵左除运算 x=inv(A)*B %方法2:逆矩阵求解法(须方阵) L,U=lu(A); %方法3:LU分解法 x=U(LB) Q,R=qr(A); %方法4:QR分解法 x=R(QB) rref(A,B) % 方法5:rref化行最简形 p13,非线性是更一般的属性?,我们面对的大多数方程(组)都是非线性的。 定义:一些由实际问题列出的方程中常常包含三角函数、指数函数等,它们与n=2代数方程一起统称为非线性方程(组) 例如:3x-ex=0 ; xsinx=1 所以,求解这一类方程(组)更具现实意义: 计算机技术和数学软件技术的飞速发展为我们实现经典方法(比如二分法)、创新新方法(比如图形放大法)提供了极大便利,甚至衍生出一些崭新的学科方向(比如课本第3章提到的 分形与混沌),最简捷和最一目了然的方法?,毫无疑问,图形放大法体现了现代数学软件在数据可视化方面无以伦比的优点:简捷和直观 演练:p10,2.1 x=-6:.001:6; plot(x,x.5+2*x.2+4,x,0,r-) grid on axis(-2 2 -200 200) 追加练习: %8x5-12x4-26x3-13x2+58x+30=0 fplot(8*x5-12*x4-26*x3-13*x2+58*x+30,-1,3); hold on; line(-5 5,0 0,color,r); grid on,图形放大法的步骤和技巧:,方程f(x)=0 (1)建立坐标系,画曲线f(x) (2)观察曲线f(x)与x轴的交点 (3)将其中一个交点局部放大 (4)该交点的横坐标值就是方程的根 技巧关键字(提高你的效率): 步进精度选择(要足够适应放大倍数) 坐标区域设定(方便直观准确地读数) 交点追踪(强调x轴、双击重置,放大适可而止) 延展:能不能写出不需人工干预的图形放大法?,简单迭代法(迭代收敛的情形),回到早先我们接触的引例:3x-ex=0 xn+1= (xn), n=0,1,2., x0,迭代过程的图形化体现.,迭代过程体现在图像上如下图所示:,迭代算法的步骤与技巧:,方程f(x)=0 (1)经过简单变形,化为xn+1= (xn), n=0,1,2. (2)*绘出y=x和y= (x)的图形,并观察 (3)确定迭代初值x0,并代入程序进行迭代 (4)序列发散回到第1步;收敛获得求解 技巧关键字(提高你的效率): 迭代格式的确定(是否唯一,是否一定收敛?) 迭代初值的选择(迭代与初值选择是否有关?) 迭代存在的缺陷(迭代能否逼近所有的解?) 演练:在讲解加速迭代法后一齐举例,简单迭代法的改进,当遇到迭代格式不收敛怎么办? 如何加快迭代速度? 加速迭代法就是为了解决上述问题而产生的改进型迭代法: 若迭代格式xn+1=(xn), n=0,1,2.,不收敛,则我们不直接用(x)迭代,改用(x)与x的加权平均 h(x)= (x)+(1- )x 进行迭代,基于某个确定原则,比如: =1/(1- (xn) 改进后的加速迭代格式如下: 附注:确定原则一般来自理论和经验,更多形式参见P13,简单迭代与加速迭代的比较1,用两种方法迭代方法求解方程x3-x2-x-1=0 构造迭代格式: 初值x0=0 x1=1;x2=1;x3=1; for k=1:20 x1=x13-x12-1; x2=(x22+x2+1)(1/3); x3=1+1/x3+1/x32; end x1,x2,x3,简单迭代与加速迭代的比较2,格式1发散,格式2,3收敛,具体细节为:,迭代格式1选取失败!迭代格式2,3成功收敛,收敛速度2快于3,简单迭代与加速迭代的比较3,改进前面已经被判定为“失败的”迭代格式1: x=(x)=x3-x2-1 由前述确定原则有:,实验发现改进后的迭代格式1能够收敛,但速度仍然不如迭代格式2和3,相对自身而言“加速” 注意:改进后的迭代格式1在迭代103次后才渐近 至1.8393,并且需要在变量空间中双击查看 why?,通用的可控精度迭代程序,以方程 3x-ex=0 为例,演示如何将程序通用化: diedai.m 为固定计算x=1/3*exp(x)的可控精度程序 diedais.m 为改写后的可适应一类方程的通用程序 diedait.m 为增强后的加可选绘图参数的程序通用 关于线性方程组的迭代算法参见数值计算: 高斯消去法;szp42 雅克比迭代法;szp54,p59 高斯-赛德尔迭代法;szp53,实验一: 图形放大法 实验二: 简单迭代法和加速迭代法 Thats all3Q!,第二讲 方程及方程组解法(下),内容:本讲继续探讨针对方程组的迭代算法,主要 讲解、演练方程(组)求解的MATAB直接解法。 目的:掌握几个方程(组)求解的相关函数。 要求:能够处理带应用背景的方程问题。 非线性方程组的迭代法(承接第二讲上) MATLAB软件直接求解法: solve fsolve fzero roots 引例波音飞机定价策略(实验室讲解),除了简单迭代和加速迭代.,我们知道,简单迭代法和加速迭代法在迭代格式xn+1= (xn)的选取上都是基于方程自身的,其实基于存根区间、基于函数曲线解析性还有多种算法,下面略作介绍: 介绍: p1213 这些算法形式多样,目标只有一个逼近 基于隔离存在根的区间,区间逼近:如二分法 基于函数曲线解析特性,解析逼近:如牛顿法,隔离存在根的区间,区间逼近,二分法: 简单,但效率很高的一种算法,函数曲线解析特性,解析逼近,牛顿切线法: 可变形为多种迭代格式,如割线法,基于解析性质的迭代思路.,单点割线法的几何意义,非线性方程组的迭代法1,类似于单变量方程的简单迭代法,方程组要求一次迭代过程完成对n个变量的迭代.,非线性方程组的迭代法2,下面以实例促进对方法的理解和掌握: 问题:一次迭代过程x1的代入可以有几种途径?,例1,非线性方程组的迭代法3,例1 用迭代法求解非线性方程组(格式1) x=0,0;2,0;3,3; n=input(选择初值 1/0,0 2/2,0 3/3,3 :); x=x(n,:); %指定不同的初值,以考察初值对迭代的影响 hold on for k=1:10 x(1)=0.1*x(1)2+ 0.1*x(2)2+0.8; x(2)= 0.1*x(1)*x(2)2+ 0.1*x(1)+0.8; disp(x) plot(k,x(1),ro,linewidth,2); plot(k,x(2),bp, linewidth,2); end grid on,方程(组)直接求解函数:solve,利用MATLAB内置函数,我们可以直接对一些方程或方程组进行求解,免去书写代码的时间,但并不意味着可以取代迭代编程 why ? solve 对单变量方程f(x)=0求解(解析解) : 例2 求解方程 ax2+bx+c=0 x=solve(a*x2+b*x+c) 或者 x=solve(a*x2+b*x+c=0) pretty(x),方程(组)直接求解函数:solve,solve 对单变量方程f(x)=0求解(数值解) : 例3 求解方程x3-2x2=x-1 x=solve(x3-2*x2=x-1) double(x) fplot(x3-2*x2-x+1,-5,5); grid on axis(-1 3 -10 10) solve 对单变量方程f(x)=0求解(无穷解?) : 例4 求解方程tan(x)=sin(x) x=solve(tan(x)=sin(x) fplot( tan(x)-sin(x) ,-10*pi,10*pi); grid on,方程(组)直接求解函数:solve,solve 对多变量方程fn(xn)=0求解(解析解): 例5 求解方程组 x2y2=0 x-1/2y=b s=solve(x2*y2,x-y/2=b); s.x, s.y solve 对多变量方程f(xn)=0求解(数值解): 例6 求解方程组 x2y2-2x-1=0 x2-y2-1=0 s=solve(x2*y2-2*x-1,x2-y2-1=0); s.x, s.y 注意: solve要小心使用,因为其可能因为算法本身的原因,而“增加”一些根或“漏掉”一些根。在解决实际问题时,最好结合多种方法求解,比如先用作图法观察方程的解析性态,方程(组)直接求解函数:fsolve,fsolve 对非线性方程组的求解 例7 求解方程组 sinx+y2+lnz-7=0 3x+2y-z3+1=0 x+y+z-5=0 解法1: 直接用solve函数求解 s=solve(sin(x)+y2+log(z)-7,3*x+2y-z3+1,x+y+z-5); s.x,s.y,s.z,方程(组)直接求解函数:fsolve,解法2: 编写被调函数,供fsolve调用求解 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; y=fsolve(nxxf,1,1,1,1) %此句为主调语句,直接执行 补充: 编写内联函数,供fsolve调用求解 fun=inline(1/3*exp(x)-x); ezplot(fun) grid on y=fsolve(fun,1,1),方程直接求解函数:fzero,针对一元函数方程,求零点 fzero 例8 求解方程:x=(cosx)2 x=fzero(x-(cos(x)2,1) 例9 求解方程:xsinx=1 在0,5内的所有根 fplot(x*sin(x)-1,0,5) grid on x1=fzero(x*sin(x)-1,1) x2=fzero(x*sin(x)-1,3),方程直接求解函
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年水产养殖饲料配方加工合同
- 2025年水产养殖苗种引进合同
- 库房承包安全协议书
- 工程变更量合同协议
- 幼儿园团建合同范本
- 广告位制作合同范本
- 火葬场员工合同范本
- 泥瓦工铺贴合同范本
- 建筑脚架租赁协议书
- 工地扣件赔偿协议书
- 矛盾纠纷多元化解工作方案
- 车辆转让协议书
- 食品加工企业会计核算流程
- 生物质燃料颗粒可行性研究报告
- 网络安全教师培训会议
- 【MOOC】《研究生英语科技论文写作》(北京科技大学)中国大学MOOC慕课答案
- 神话故事民间故事《后羿射日》绘本课件
- 屋架平房仓计算书
- 《安全阀培训》课件
- GB/T 32151.30-2024温室气体排放核算与报告要求第30部分:水运企业
- 大模型在医疗AI中的应用
评论
0/150
提交评论