MATLAB解方程与函数极值_第1页
MATLAB解方程与函数极值_第2页
MATLAB解方程与函数极值_第3页
MATLAB解方程与函数极值_第4页
MATLAB解方程与函数极值_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

1、第7章MATLAB解决方案方程和函数极限7.1线性方程组解决方案7.2非线性方程数值解决方案7.3常微分方程初值问题的数值解决方案7.4函数极值,7.1线性方程组解决方案7.1.1直接解决方案1左除法运算符直接解决方案线性方程组Ax=b的情况,可以使用左除法运算符“”解决。x=Ab,命令如下:A=2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4;B=13,-9,6,0;使用X=Ab,2矩阵的分解来解决线性方程组矩阵分解意味着根据特定原理,使用特定算法之一将矩阵分解变成多个矩阵的乘积。典型的矩阵分解LU分解、QR分解、Cholesky分解、Schur分解、Hessenbe

2、rg分解和奇异分解。(1) LU分解矩阵的LU分解是用交换三角矩阵和三角矩阵的乘积表示一个矩阵。事实证明,线性代数中防尘A不奇怪的话,LU分解总是可能的。MATLAB提供的LU函数用于分解矩阵,以生成父三角数组U和变换格式的子三角数组L(行更换),以匹配L、U=lu(X): X=LU。其中矩阵X必须是防震的。生成父三角形阵列U和子三角形阵列l以及变位矩阵P,以匹配l,U,P=lu(X): PX=LU。当然,矩阵x也必须是正方形。LU分解通过线性方程组Ax=b的解密x=U(Lb)或x=U(LPb)大大提高了计算速度。示例7-2使用LU分解执行示例7-1中的线性方程组解决。命令如下:A=2,1,-

3、5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4;B=13,-9,6,0;l,U=Lu(A);X=U(Lb)或LU分解的第二种格式,命令L、U、P=LU(A);X=u (LP * b),(2) QR分解将矩阵x分解为QR。也就是说,x分解为正交矩阵q和三角矩阵r的乘积。QR分解只能由对方队进行。MATLAB的函数QR可用于以Q,R=qr(X)格式分解矩阵。生成正交矩阵q和三角矩阵r,以满足X=QR。q,R,E=qr(X):生成正交矩阵q、三角矩阵R和变位矩阵E以满足XE=QR。实施QR分解后,线性方程组Ax=b的解决方案x=R(Qb)或x=E(R(Qb)。范例7-3使用QR分解来

4、执行范例7-1中的线性方程组解决。命令如下:A=2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4;B=13,-9,6,0;q,R=QR(A);X=R(Qb)或QR分解的第二种格式,命令为Q,R,E=qr(A)。X=E*(R(Qb),(3) Cholesky分解矩阵x为对称正定时,Cholesky分解将矩阵x分解为子三角矩阵和父三角矩阵的乘积。将“三角矩阵”设置为R将旋转三角矩阵(X=RR)。MATLAB函数chol(X)用于对矩阵X执行Cholesky分解,调用格式为R=chol(X): RR=X生成父三角形阵列R。如果x为不对称正定,则输出错误消息。r,p=chol(

5、X):牙齿命令格式不输出错误消息。如果x是对称修正,则p=0,r得到的结果与上述格式相同。否则,p是正整数。如果X是整个排名矩阵,则r是具有q=p-1阶的父三角形阵列,满足RR=X(13360 q,1:q)。实施Cholesky分解后,线性方程组Ax=b变为RRx=b,因此x=R(Rb)牙齿。示例7-4使用Cholesky分解执行示例7-1中的线性方程组求解。命令如下:A=2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4;B=13,-9,6,0;R=chol(A)?-嗯?-嗯?在执行error using=CHOL matrix must be positive def

6、inite命令时,出现错误消息a不是正定矩阵。7.1.2迭代解决方案迭代解决方案适用于大系数矩阵的方程组解决。在数值分析中,迭代解决方案主要包括Jacobi迭代方法、Gauss-Serdel迭代方法、超松弛迭代方法和两阶段迭代方法。对于1Jacobi迭代法线性方程组Ax=b,如果A是非防震的,即AI0 (I=1,2,N),则可以将A分解为A=D-L-U。其中D是对角阵列,元素A的对角元素序列x(k 1)收敛到x,则x必须是方程Ax=b的解。,Jacobi迭代法的MATLAB函数档案Jacobi.m如下所示:function y,n=jacobi (a,b,x0,EPS)if NAR gin=3

7、 EPS=1.00 else if NAR gin=EPS x0=y;y=b* x0 f;n=n 1;End,示例7-5使用Jacobi迭代法解决以下线性方程组问题:将迭代初始值设置为0,将迭代精度设置为10到6。命令调用函数档案Jacobi.m。命令为A=10,-1,0。-1,10,-2;0,-2,10;B=9,7,6;x,n=Jacobi (a,b,0,0,0,0,1.0e-6),2 Gauss-Serdel迭代方法在Jacobi迭代过程中已在计算中获得,因此不再需要使用,Gauss-Serdel迭代方法的MATLAB函数档案gauseidel.m如下所示:function y,n=gau

8、 Seidel (a,b,x0,EPS)if NAR gin=else if NAR gin=EPS x0=y;y=G * x0 f;n=n 1;End,示例7-6使用高斯-serdel迭代方法解决以下线性方程组问题:将迭代初始值设置为0,将迭代精度设置为10到6。命令调用函数档案gauseidel.m。命令为A=10,-1,0。-1,10,-2;0,-2,10;B=9,7,6;x,N=Gauseidel (A,B,0,0,0,0,0,1.0E-6),示例7-7分别使用Jacobi迭代和Gauss-Serdel迭代方法,以验证是否可以通过以下线性方程组求解收敛命令如下:a=1,2,-2;1,1

9、,1;2,2,1;b=9;7;6;x,n=jacobi(a,b,0;0;0) x,n=gauseidel(a,b,0;0;0),7.2非线性方程数值分析7.2.1单变量非线性方程求解提供了fzero函数,该可用于MATLAB查找单变量非线性方程的根。牙齿函数调用的格式为z=fzero(fname,x0,tol,trace)。其中fname是查找根的函数档案名称,x0是搜索的起点。一个函数可以有多个根,但是fzero函数仅提供最接近x0的根。Tol控制结果的相对精度。默认情况下,tol=eps,trace使用trace=0表示是否在操作中显示迭代信息,1表示是否显示迭代信息,0表示不显示迭代信息

10、,默认情况下使用trace=0。示例7-8查找f(x)=x-10 x 2=0 x0=0.5附近的根。步骤如下:(1)创建函数档案funx.m。function FX=funx(x)FX=x-10 . x 2;(2)调用fzero函数查找根。Z=f zero (funx,0.5) z=0.3758,7.2.2非线性方程组解决方案非线性方程组F(X)=0的fsolve函数数值解决方案。Fsolve函数调用的格式为X=fsolve(fun,X0,option)。其中x是返回的解决方案,fun是定义需求解决方案的非线性方程组函数档案名称,X0是根进程的初始值,option是最优化工具箱中的选项设置。最

11、优化工具箱包含20多个可使用optimset命令显示的选项。要更改这些选项中的任何一个,可以通过调用optimset()函数进行更改。例如,Display选项确定调用函数时中间结果的显示方式。其中off不显示,ITER显示每个步骤,final仅显示最终结果。Optimset(Display,off)将Display选项设置为off。示例7-9求出了(0.5,0.5)附近的下一非线性方程组数值分析。(1)创建函数档案myfun.m。function q=my fun(p)x=p(1);y=p(2);q(1)=x-0.6 * sin(x)-0.3 * cos(y);q(2)=y-0.6 * cos

12、(x)0.3 * sin(y);(2)在给定初始值x0=0.5,y0=0.5处,调用fsolve函数以获得方程式的根。X=f solve (myfun,0.5,0.5,optim set (display,off) x=0.6354 0.3734,您可以解析为原始方程式以确认结果是否正确,7.3常微分方程秒值Y0是初始状态栏矢量。t和y分别提供时间向量和相应的状态向量。示例7-10存在初始值问题。尝试数字解释,并与正确的解决方案进行比较(正确的解释是y(t)=)。(1)创建函数档案funt.m。Function yp=funt (t,y)yp=(y2-t-2)/4/(t1);(2)解决微分方程。t0=0;Tf=10y0=2;t,y=ode23(funt,t0,tf,y0);%数值分析y1=sqrt(t 1)1;%正确的解决方案t y y1 y是数值解决方案,y1是正确的值,显然两者都是近似值。7.4函数极限MATLAB提供基于单向算法解决方案函数极值的函数fmin和fmins。分别用于单变量函数和多变量函数最小值,x=fmin (fname,x1,x2) x=fmins (fname其中fmin函数用于查找单变量函数最小值点)。Fname是最小化的目标函数名称,x1和x2限制参数的范围。Fmins函数用于查找多元函数的最小值,x0是解决方案的初始值矢量。MATL

温馨提示

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

评论

0/150

提交评论