matlab编程与工程应用——第7章 matlab解方程与函数极值

matlab编程与工程应用——第7章 matlab解方程与函数极值

ID:6168624

大小:124.50 KB

页数:17页

时间:2017-11-16

matlab编程与工程应用——第7章 matlab解方程与函数极值_第1页
matlab编程与工程应用——第7章 matlab解方程与函数极值_第2页
matlab编程与工程应用——第7章 matlab解方程与函数极值_第3页
matlab编程与工程应用——第7章 matlab解方程与函数极值_第4页
matlab编程与工程应用——第7章 matlab解方程与函数极值_第5页
资源描述:

《matlab编程与工程应用——第7章 matlab解方程与函数极值》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、MATLAB编程与工程应用教师:曾晓东电话:13679007201E_mail:zengxiaodong@263.netQQ:241747139MATLAB编程与工程应用MATLAB解方程与函数极值第7章MATLAB解方程与函数极值7.1线性方程组求解7.2非线性方程数值求解7.3常微分方程初值问题的数值解法7.4函数极值MATLAB解方程与函数极值7.1线性方程组求解一、直接解法对于线性方程组Ax=b,可以使用下面方法直接求解:1.利用左除运算符x=Ab2.利用矩阵的逆x=inv(A)*b或x=A^(-1)*b例7.1用直接法求解线性

2、方程组exp7_1.mMATLAB解方程与函数极值一、直接解法3.利用矩阵分解求解矩阵分解是指根据一定的原理用某种算法将一个矩阵分解成若干个矩阵的乘积。常见的矩阵分解有LU分解、QR分解、Cholesky分解、Schur分解、奇异分解等。对系数矩阵分解后再求解,可大大提高求解速度(1)LU分解矩阵的LU分解就是将一个矩阵表示为一个交换下三角矩阵和一个上三角矩阵的乘积形式。自变量A要求是方阵。[L,U]=lu(A)x=U(Lb)=inv(L)*inv(U)*bA=L*U,其中L是一个下三角阵,U是一个上三角阵[L,U,P]=lu(A)x

3、=U(LP*b)=inv(L)*inv(U)*P*bP*A=L*U,其中P是置换矩阵例7.2用LU分解求解例7.1exp7_2.mMATLAB解方程与函数极值3.利用矩阵分解求解(2)QR分解对矩阵X进行QR分解,就是把X分解为一个正交矩阵Q和一个上三角矩阵R的乘积形式。QR分解只能对方阵进行。[Q,R]=qr(A)x=R(Qb)=inv(Q)*inv(R)*bA=Q*R,其中Q是正交矩阵(即Q*Q’=I),R是上三角矩阵。[Q,R,E]=qr(A)x=R(QE*b)=inv(R)*inv(Q)*E*bE*A=Q*R,其中E是

4、置换矩阵。例7.3用QR分解求解例7.1exp7_3.mMATLAB解方程与函数极值7.1线性方程组求解二、迭代解法迭代解法非常适合求解大型系数矩阵的方程组。在数值分析中,迭代解法主要包括Jacobi迭代法、Gauss-Serdel迭代法、超松弛迭代法和两步迭代法。1.Jacobi迭代法对于线性方程组Ax=b,如果A为非奇异方阵,即aii≠0,则A可分解为A=D-L-U,其中D为对角阵,其元素为A的对角元素,L与U为A的下三角阵和上三角阵,于是Ax=b化为:x=D-1(L+U)x+D-1b与之对应的迭代公式为:x(k+1)=D-1(L+U

5、)x(k)+D-1b例7.4利用jacobi迭代法求方程的解exp7_4.mjacobi.mMATLAB解方程与函数极值二、迭代解法2.Gauss-Serdel迭代法在Jacobi迭代过程中,计算时,已经得到,不必再用,即原来的迭代公式Dx(k+1)=(L+U)x(k)+b可以改进为Dx(k+1)=Lx(k+1)+Ux(k)+b,于是得到:x(k+1)=(D-L)-1Ux(k)+(D-L)-1b和Jacobi迭代相比,Gauss-Serdel迭代用新分量代替旧分量,精度会高些,稳定时间更快。例7.5利用Gauss-Serdel迭代法求方程

6、的解exp7_5.mgauseidel.m例7.6两种迭代法的比较exp7_6.mMATLAB解方程与函数极值7.2非线性方程数值求解一、单变量非线性方程求解x=fzero('fname',x0,tol,trace)fname是待求根的函数文件名,x0为搜索的起点。tol控制结果的相对精度,缺省时取tol=eps,trace指定迭代信息是否在运算中显示,为1时显示,为0时不显示,缺省为0。例7.7求f(x)=x-10x+2=0在x0=0.5附近的根。funx.mexp7_7.mMATLAB解方程与函数极值7.2非线性方程数值求解二、非线性

7、方程组求解x=fsolve('fname',x0,option)fname用于定义需求解的非线性方程组的函数文件名。x0为搜索的起点。option优化选项设定最优化工具箱提供了20多个选项,用户可以使用optimget命令将它们显示出来。如果想改变其中某个选项,则可以调用optimset()函数来完成。Display选项决定函数调用时中间结果的显示方式,其中‘off’为不显示,‘iter’表示每步都显示,‘final’只显示最终结果。optimset(‘Display’,‘off’)将设定Display选项为‘off’。MATLAB解方程

8、与函数极值7.2非线性方程数值求解例7.8求下列非线性方程组在(0.5,0.5)附近的数值解。(1)建立函数文件func.m表示非线性方程组(2)调用fsolve求方程组的解exp7_8.m(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。