版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2021-12-131MATLAB编程基础之MATLAB解方程、函数极值第五讲第五讲梁丙臣梁丙臣2021-12-132一、线性方程组求解一、线性方程组求解 直接解法直接解法利用左除运算符的直接解法对于线性方程组Ax=b,可以利用左除运算符利用左除运算符“”求解求解: x=Ab2021-12-133例例1 用直接解法求解下列线性方程组。用直接解法求解下列线性方程组。命令如下:命令如下:A=2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4;b=13,-9,6,0;x=Ab?几维几维2x1+x2-5x3+x4=13;x1-5x2+0*x3+7x4=-9;0*x1+2x2+x3
2、-x4=6;x1+6x2-x3-4x4=0;2021-12-134 利用矩阵的分解求解线性方程组利用矩阵的分解求解线性方程组矩阵分解是指根据一定的原理用某种算法将一个矩阵分解成矩阵分解是指根据一定的原理用某种算法将一个矩阵分解成若干个矩阵的乘积。若干个矩阵的乘积。常见的矩阵分解有LU分解、QR分解、Cholesky分解,以及Schur分解、Hessenberg分解、奇异分解等。2021-12-135(1) LU分解分解矩阵的LU分解就是将一个矩阵表示为一个交换下三角矩阵和一个上三角矩阵的乘积形式。线性代数中已经证明,只要线性代数中已经证明,只要方阵方阵A是非奇异的,是非奇异的,LU分解总是可以
3、进行的。分解总是可以进行的。MATLAB提供的lu函数用于对矩阵进行LU分解,其调用格式为:L,U=lu(X):产生一个上三角阵U和一个变换形式的下三角阵L(行交换),使之满足X=LU。注意,这里的矩阵X必须是方阵。L,U,P=lu(X):产生一个上三角阵U和一个下三角阵L以及一个置换矩阵P,使之满足PX=LU。当然矩阵X同样必须是方阵。实现LU分解后,线性方程组线性方程组Ax=b的解的解x=U(Lb)或或x=U(LPb),这样可以大大提高运算速度。2021-12-136例例2 用用LU分解求解例分解求解例1中的线性方程组。中的线性方程组。命令如下:命令如下:A=2,1,-5,1;1,-5,0
4、,7;0,2,1,-1;1,6,-1,-4;b=13,-9,6,0;L,U=lu(A);x=U(Lb)2021-12-137 (2) QR分解分解对矩阵X进行QR分解,就是把X分解为一个正交矩阵Q和一个上三角矩阵R的乘积形式。QR分解只分解只能对方阵进行能对方阵进行。MATLAB的函数qr可用于对矩阵进行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)。2021-1
5、2-138例例3 用用QR分解求解例分解求解例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)2021-12-139函数m文件例子 function F=zero2(x) F=sin(x(1).2-x(2); 2021-12-1310M文件例子 % 同一工作目录下,在MATLAB命令窗口运行下列指令 x0 = -6;-5; % 给变量初始值 x = fsolve(zero2,x0) % 求解方程,options缺省,等价形式还可以写成x = fsolve
6、(zero2,x0) x = -5.9868 -4.99892021-12-1311二、非线性方程数值求解二、非线性方程数值求解1.单变量非线性方程求解单变量非线性方程求解 在MATLAB中提供了一个fzero函数函数,可以用来求单变量非线性方程的根。该函数的调用格式为: z=fzero(fname,x0,tol,trace)其中其中fname是待求根的函数文件名,是待求根的函数文件名,x0为搜索的起为搜索的起点。一个函数可能有多个根,但点。一个函数可能有多个根,但fzero函数只给出函数只给出离离x0最近的那个根。最近的那个根。tol控制结果的相对精度,缺省时取tol=eps,trace 指
7、定迭代信息是否在运算指定迭代信息是否在运算中显示,为中显示,为1时显示,为时显示,为0时不显示,缺省时取时不显示,缺省时取trace=0。2021-12-1312 例例4 求求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=fzero(funx,0.5) z = 0.37582021-12-13132. 函数的零点函数的零点一元函数的零点一元函数的零点x,fval=fzero(fun,x0,
8、options)例5 求f(x)=x3-2x-5的零点x = -5:0.1:5;f = x.3-2*x-5;xlabel(x);ylabel(f(x);plot(x,f,x,0)训练题:编写训练题:编写f(x)=x3-2x-5成为一个一个zero1的函数文件的函数文件% 计算2附近的零点和该点的函数值xout,f = fzero(zero1,2)xout = 2.0946f = -8.8818e-0162021-12-13143. 多元函数的零点多元函数的零点 例6求方程f(x,y,z)=2x+3y2+xz在(2,2,2)附近的零点 function F=zero3(x) F=2*x(1)+3
9、*x(2).2+x(1)*x(3); x0 = 2 2 2; % 在同一工作目录下,给出初始值 x,fval = fsolve(zero3,x0) % 计算零点和该点的函数值 fval = 4.9541e-0122021-12-13154. 非线性方程组非线性方程组的求解的求解 对于非线性方程组非线性方程组F(X)=0,用,用fsolve函数函数求其数值解。fsolve函数的调用格式为: X=fsolve(fun,X0,option)其中X为返回的解,fun是用于定义需求解的非线性方程组的函数文件名,X0是求根过程的初值,option为最优化工具箱的选项设定。最优化工具箱提供了20多个选项,用
10、户可以使用optimset命令将它们显示出来。如果想改变其中某个选项,则可以调用optimset()函数来完成。例如,Display选项决定函数调用时中间结果的显示方式,其中off为不显示,iter表示每步都显示,final只显示最终结果。optimset(Display,off)将设定Display选项为off。2021-12-1316例例7 求下列非线性方程组求下列非线性方程组0=x-0.6*sin(x)-0.3*cos(y);0= y-0.6*cos(x)+0.3*sin(y);在在(0.5,0.5) 附近的数值解。附近的数值解。 (1) 建立函数文件建立函数文件myfun.mfunct
11、ion q=myfun(p)x=p(1);y=p(2);q(1)=x-0.6*sin(x)-0.3*cos(y);q(2)=y-0.6*cos(x)+0.3*sin(y); (2) 在给定的初值在给定的初值x0=0.5,y0=0.5下,调用下,调用fsolve函数求方程的根。函数求方程的根。x=fsolve(myfun,0.5,0.5,optimset(Display,off)x = 0.6354 0.3734测试:测试:x=fsolve(myfun,0.0,0.0,optimset(Display,iter)2021-12-1317将求得的解代回原方程,可以检验结果是否正确,命令如下:q=m
12、yfun(x)q = 1.0e-009 * 0.2375 0.2957 可见得到了较高精度的结果。2021-12-13181. 一元函数的极值点一元函数的极值点 MATLAB提供了基于单纯形算法求解函数极值的函数fminbnd, 用于单变量函数的最小最小值值,其调用格式为: x=fminbnd(fname,x1,x2)fminbnd函数用于求单变量函数的最小值点函数用于求单变量函数的最小值点。fname是被最小化的目标函数名,x1和x2限定自变量的取值范围。三、函数极值三、函数极值2021-12-1319MATLABMATLAB没有专门提供求函数最大值的函数,但只没有专门提供求函数最大值的函数
13、,但只要注意到要注意到-f(x-f(x) )在区间在区间(a,b(a,b) )上的最小值就是上的最小值就是f(xf(x) )在在(a,b(a,b) )的最大值,所以的最大值,所以fminbnd(f,x1,x2)fminbnd(f,x1,x2)返回函数返回函数f(xf(x) )在区间在区间(x1,x2)(x1,x2)上的最大值。上的最大值。2021-12-1320 例例8 求求f(x)=x3-2x-5在在0,5内的最小值点。内的最小值点。 (1) 建立函数文件建立函数文件mymin.m。function fx=mymin(x)fx=x.3-2*x-5; (2) 调用调用fmin函数求最小值点。函
14、数求最小值点。x=fminbnd(mymin,0,5)x= 0.81652021-12-13212. 多元函数的极值点多元函数的极值点求解多元函数的极小值的方法中,一类是没有约束条件的,一类是由约束条件的。(1)无约束条件)无约束条件单纯形法x=fminsearch(fun,x0)x=fminsearch(fun,x0,options)x,fval=fminsearch()拟牛顿法x=fminunc(fun,x0)x=fminunc(fun,x0,options)x,fval=fminunc()2021-12-1322 训练任务:编写f(x,y)=100(y-x2)2+(1-x)2函数,名为min2 function f=min2(x) F=100*(x(2)-x(1).2).2+(1-x(1).2; x0 = -2,2; % 给出猜测点 x1,f1 = fminsearch(min2,x0) % 单纯形法求解 x2,f2 = fminunc(min2,x0) % 拟牛顿法求解2021-12
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (正式版)DB37∕T 2603-2014 《山东省选择性催化还原(SCR)脱硝催化剂技术要求》
- 产后恢复周期
- 湖南省长沙市一中2024届高三月考卷(一)化学试卷
- 上海浦东第四教育署重点达标名校2026届初三数学试题质量检测试题卷含解析
- 合肥市45中2026年内蒙古阿拉善盟初三下学期第一次模拟考试语文试题含解析
- 吉安市重点中学2026届初三年级下学期十月份月考英语试题含解析
- 山西大附中2026届初三英语试题测试含解析
- 福建省宁德市2026年初三下学期摸底统一考试英语试题含解析
- 山东省聊城市东昌府区2026届初三年级质量检查(Ⅲ)语文试题(文史类)试题含解析
- 辽宁省盘锦市重点达标名校2025-2026学年初三毕业班联考英语试题试卷含解析
- 静脉治疗护理技术操作标准解读
- SF-T0095-2021人身损害与疾病因果关系判定指南
- T-CCSAS014-2022《化工企业承包商安全管理指南》
- 电厂员工三级安全培训(完美版)课件
- 按摩理疗加盟合同范本
- 高中数学必修一全套课件
- 2022-2023学年贺州市富川瑶族自治县小学六年级第二学期小升初数学试卷含答案
- 2023年武汉市医疗救治中心紧缺医学专业人才招聘考试历年高频考点试题含答案解析
- TCSAE 178-2021 电动汽车高压连接器技术条件
- 远景变桨控制系统介绍及典型故障案例讲解
- 《小小鞋店》 教学课件
评论
0/150
提交评论