高等数学 上 教学课件 ppt 作者 张圣勤 黄勇林 姜玉娟MATLAB实验 ex77

上传人:E**** 文档编号:89346944 上传时间:2019-05-23 格式:PPT 页数:24 大小:283.50KB
返回 下载 相关 举报
高等数学 上 教学课件 ppt 作者 张圣勤 黄勇林 姜玉娟MATLAB实验 ex77_第1页
第1页 / 共24页
高等数学 上 教学课件 ppt 作者 张圣勤 黄勇林 姜玉娟MATLAB实验 ex77_第2页
第2页 / 共24页
高等数学 上 教学课件 ppt 作者 张圣勤 黄勇林 姜玉娟MATLAB实验 ex77_第3页
第3页 / 共24页
高等数学 上 教学课件 ppt 作者 张圣勤 黄勇林 姜玉娟MATLAB实验 ex77_第4页
第4页 / 共24页
高等数学 上 教学课件 ppt 作者 张圣勤 黄勇林 姜玉娟MATLAB实验 ex77_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《高等数学 上 教学课件 ppt 作者 张圣勤 黄勇林 姜玉娟MATLAB实验 ex77》由会员分享,可在线阅读,更多相关《高等数学 上 教学课件 ppt 作者 张圣勤 黄勇林 姜玉娟MATLAB实验 ex77(24页珍藏版)》请在金锄头文库上搜索。

1、高等数学实验,MATLAB7.0实验七,矩阵的基本运算 求解线性方程组 方程的数值解,线性代数,上海电机学院 张圣勤,一、矩阵的基本运算,简单矩阵函数,例1 设有矩阵A、B 求它们的乘积AB、BA、A/B及它们各自的秩和A的迹。 具体操作如下: A=1 3 5;4 5 6;5 6 7; %输入矩阵A B=2 4 6;9 6 3;4 3 7; %输入矩阵B A*B %计算矩阵乘积AB ans = 49 37 50 77 64 81 92 77 97 B*A %计算矩阵乘积BA ans = 48 62 76 48 75 102 51 69 87, rank(A) %求矩阵A的秩 ans = 2 r

2、ank(B) %求矩阵B的秩 ans = 3 trace(A) %求矩阵A的迹 ans = 13 A/B %求A除以B的商 ans = 0.8750 -0.0833 -0.0000 0.8750 0.2500 0 1.0000 0.3333 -0.0000,二、求解线性方程组,线性方程组的求解用矩阵除法计算,只要输入系数矩阵A和常数矩阵B, 方程组就成为矩阵方程AX=B,则该矩阵方程的解为X=AB。,例2、求线性方程组 的解。 由线性方程组可知: 系统矩阵为 ,常数矩阵为 。操作如下: A=2 4 6;9 6 3;4 3 7; %输入系数矩阵A B=7;9;6; %输入常数矩阵B X=AB %

3、求未知矩阵X X = 0.0250 1.3250 0.2750,如果系数矩阵A是非奇异方阵,也可以先用inv命令求出A的逆阵NA, 再用X=NA*B求出方程组的解。 NA=inv(A) %求矩阵A的逆阵 NA = -0.2750 0.0833 0.2000 0.4250 0.0833 -0.4000 -0.0250 -0.0833 0.2000 X=NA*B %求未知矩阵X X = 0.0250 1.3250 0.2750,三、方程(组)的数值解,方程与方程组分为三大类,一类是线性方程,一类是非线性方程,还有 一类就是微分方程。不管是哪一类方程都是给出未知数(或函数)之间(或 函数与自变量之间

4、)的关系,根据这些关系求出适合方程的数或函数,这在 数学中叫解方程。,在MATLAB中求解方程的函数有roots、fsolve和fzero等。,1 、方程的求解,单个方程按其系数的性质分为线性方程和非线性方程。这些方程的求解 一般有二种方法,一种是直接用MATLAB中的解方程的命令函数求解,一种 是根据求解方程的方法编写M文件,然后用自己编写的M文件求解。这里只 介绍直接求解法。,解方程函数调用格式,例3、求多项式方程 的根。 p=1 -2 0 3 -8; %输入多项式方程的系数向量 roots(p) %求多项式方程的根 ans = -1.5279 2.1539 0.6870 + 1.3996

5、i 0.6870 - 1.3996i,例4、求解非线性方程x3x1=0的根,并给出相关信息。 x0=0.8; %设定根的初值 x1,fv,ex,out,jac=fsolve(x*3x-1,x0,options) %求解非线性方程的根 Optimization terminated: first-order optimality is less than options.TolFun. x1 = %输出方程的根 0.5478 fv = %计算根处的函数值 2.9149e-011 ex = %输出退出状态标记 1,out = %输出优化信息 iterations: 4 funcCount: 10

6、algorithm: trust-region dogleg firstorderopt: 8.5233e-011 message: 1x76 char jac = %输出函数在根处的jacobian值 2.9241,例5、使用fzero函数求上题中非线性方程的根,输出有关信息。 x0=0.8; %输入根的初值 x1=fzero(x*3x-1,x0) %根据初值计算方程的根 x1 = 0.5478, x0=1 3; %输入初值区间 x1=fzero(x*3x-1,x0) %根据初值区间计算方程的根 ? Error using = fzero %因根不在该项区间而显示错误信息 The funct

7、ion values at the interval endpoints must differ in sign. x0=0 1; %重新定义根的初值区间 x1=fzero(x*3x-1,x0) %根据初值区间计算方程的根 x1 = 0.5478 x,fva,exi,out=fzero(x*3x-1,x0) %根据初值区间计算方程的根,并显示各种有关信息 x = %输出方程的根 0.5478 fva = %输出根处函数的函数值 -2.2204e-016 exi = %输出退出状态标记 1,out = %输出优化信息 intervaliterations: 0 iterations: 9 fun

8、cCount: 11 algorithm: bisection, interpolation message: Zero found in the interval 0, 1,2 、线性方程组的求解,线性方程组的求解有二种:一种是直接解法。就是在没有舍入误差的 情况下通过矩阵的简单运算求得方程的解。第二种是迭代解法。就是先设 定一个解的初始值,然后按照一定的迭代方法逐步逼近,求出方程的解。 直接解法分为运算符求解和矩阵分解求解;迭代解法分为Gauss-Seidel迭代 法、jacobi迭代法、超松驰迭代法和两步迭代法。这里只介绍直接解法。 线性方程组的直接求解主要有运算符求解、LU分解求解、Q

9、R分解求 解和Cholesky分解求解。,线性方程组求解方法,例6、运用矩阵除法直接解线性方程组 A=1 -2 3 -4;0 1 -1 1;1 3 0 1;0 -7 3 1; %输入系数矩阵A B=4 -3 1 -3; %输入常数矩阵B x=AB %求解方程组 x = -8.0000 3.0000 6.0000 0.0000,7、对上例中的方程组分别利用LU分解和QR分解方法求解。 A=1 -2 3 -4;0 1 -1 1;1 3 0 1;0 -7 3 1; %输入系数矩阵A B=4 -3 1 -3; %输入常数矩阵B L,U=lu(A) %对系数矩阵A进行LU分解 L = 1.0000 0

10、0 0 0 -0.1429 0.6667 1.0000 1.0000 -0.7143 1.0000 0 0 1.0000 0 0 U = 1.0000 -2.0000 3.0000 -4.0000 0 -7.0000 3.0000 1.0000 0 0 -0.8571 5.7143 0 0 0 -2.6667, x=U(LB) %求解方程组 x = -8.0000 3.0000 6.0000 0.0000 Q,R=qr(A) %对系数矩阵A进行QR分解 Q = -0.7071 0.3162 0.4216 0.4714 0 -0.1265 -0.6957 0.7071 -0.7071 -0.31

11、62 -0.4216 -0.4714 0 0.8854 -0.4006 -0.2357 R = -1.4142 -0.7071 -2.1213 2.1213 0 -7.9057 3.7315 -0.8222 0 0 0.7589 -3.2044 0 0 0 -1.8856, x=R(QB) %求解线性方程组 x = -8.0000 3.0000 6.0000 0.0000,例8、利用Cholesky分解法求解线性方程组, A=1 1 1 1;1 2 3 4;1 3 6 10;1 4 10 20; %输入对称正定系数矩阵A B=4 8 18 38; %输入常数矩阵B, R=chol(A) %对矩

12、阵A进行Cholesky分解 R = 1 1 1 1 0 1 2 3 0 0 1 3 0 0 0 1 x=R(RB) %求解线性方程组 x = 2 4 -6 4,3、 常微分方程的数值解法,MATLAB可以求一阶常微分方程的数值解。通常常微分方程的数值解也 叫做常微分方程的初值问题。求解常微分方程的初值问题需要预先确定 出微分方程的初始条件和边界条件,还需要将方程化为标准形式:,然后将微分方程写成M文件存入相应的子目录,编写求解微分方程的 M文件或确定使用的MATLAB求解函数,最后在命令窗口对微分方程进行 求解。,初值问题的方法主要使用欧拉迭代方法,其中又分为欧拉折线法、梯 形法、改进欧拉法

13、等。另外,MATLAB有专门用于求解微分方程初值问题 的函数,这些函数使用龙格库塔方法计算微分方程的近似解。只要在命令 窗口输入微分方程及其相关的初始条件,即可求解。,函数求解,MATLAB7.0提供了多个采用龙格库塔方法的求微分方程数值解的库函 数,主要有ode23,ode45, ode113, ode15s, ode23s, ode23t, ode23tb等,其调 用格式如下:,常微分方程数值解ode(45)调用格式,例9、用ode45函数求微分方程 在 时的数值解。 编写微分方程函数的M文件如下,并以f.m为名存入相应子目录下。 function f=f(x,y) f=-3*y+x2+1; 在命令窗口求解微分方程,结果如下。 x,y=ode45(f,0 2,1); x=x,y=y x = Columns 1 through 14 0 0.0251 0.0502 0.0754 0.1005 0.1505 0.2005 0.2505 0.3005 0.3505 0.4005 0.4505 0.5005 0.5505 Columns 15 through 28 0.6005 0.6505

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号