第 7 章 matlab 工程计算

36
第7第 MATLAB 第第第第

Upload: alima

Post on 17-Jan-2016

76 views

Category:

Documents


0 download

DESCRIPTION

第 7 章 MATLAB 工程计算. 本章内容. 第四节 M 文件及其语言基础 第五节 MATLAB 线性方程组求解 第六节 数值分析. 第一节 MATLAB 概述. MATLAB 是“矩阵实验室” (MATrix LABoratory) 的缩写。 最初是 Cleve More 博士用 FORTRAN 语言开发的矩阵分析软件, 80 年代初, Moler 和 John Little 用 C 改写,不久他们成立 MathWorks 公司, 84 年推向市场, 2000 年推出了 MATLAB 6.0 版本。 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第 7 章   MATLAB 工程计算

第 7 章 MATLAB 工程计算

Page 2: 第 7 章   MATLAB 工程计算

本章内容 第四节 M 文件及其语言基础 第五节 MATLAB 线性方程组求解 第六节 数值分析

Page 3: 第 7 章   MATLAB 工程计算

第一节 MATLAB 概述 MATLAB 是“矩阵实验室” (MATrix LABora

tory) 的缩写。 最初是 Cleve More 博士用 FORTRAN 语言开

发的矩阵分析软件, 80 年代初, Moler 和 John Little 用 C 改写,不久他们成立 MathWorks公司, 84 年推向市场, 2000 年推出了 MATLAB 6.0 版本。

MATLAB 是应用最广泛的工程计算软件,发达国家理工类学生必须掌握的数学分析工具。

Page 4: 第 7 章   MATLAB 工程计算

第四节 M 文件及其语言基础 在命令窗口下,键入一行命令后,系统

立即执行。这种方法程序可读性差且难以存储。对于复杂的问题,应编成程序文件。

由 MatLab 语句构成的文件称作 M 文件,它将 m 作为文件的扩展名,可以用任何文件编辑器进行调试。

Page 5: 第 7 章   MATLAB 工程计算

一、建立主程序文件 选择 File—>New - >M-file ,即进入 M

文件编辑器。 输入程序,完成后,在当前目录下保存

文件名。 在命令窗口,输入文件名,即执行程序。

Page 6: 第 7 章   MATLAB 工程计算

主程序格式特征 以 % 开始为注释 全局变量定义: Global 变量名 1 变量名 2 人机交互语句 :

x= input(‘n=’) % 将值付给 x, 屏幕显示’ n=‘

Page 7: 第 7 章   MATLAB 工程计算

二、常量I或 j 虚数单位

pi 圆周率 = 3.1415…

eps 计 算 机 浮 点 数 识 别 精 度eps/2=1.11*10^(-16)

realmin 最 小 正 实 数 realmin^1.051= 4.9407*10^(-324)

realmax 最大正实数 1.7977*10^308

Inf 无穷大

NaN 不定值

Page 8: 第 7 章   MATLAB 工程计算

三、变量变量命名规则 必须以字母为开头 可以由字母、数字和下划线混合组成,

区分大小写 字符长度不大于 31 个

Page 9: 第 7 章   MATLAB 工程计算

变量数据类型MatLab 有五种基本数据类型, 数值数组 (double array)

字符串 (char array)

符号对象 (Symbolic object)

单元数组 (Cell array)

结构 (Structure)

Page 10: 第 7 章   MATLAB 工程计算

四、关系与逻辑运算< 小于<= 小于等于> 大于>= 大于等于= = 等于

~ = 不等于& 与| 或~ 非

Page 11: 第 7 章   MATLAB 工程计算

五、矩阵运算符转置 A’

加与减 A+B与 A-B

数乘矩阵 k*A或 A*k

矩阵乘方 A^k

数与矩阵加减 k+A与 k-A

矩阵除法 左除 A\B, 右除 B/A

Page 12: 第 7 章   MATLAB 工程计算

六、数学函数 sin cos tan cot asin exp sqrt

log10 log2 log round fix gcd lcm

Page 13: 第 7 章   MATLAB 工程计算

七、程序控制语句For 循环 基本格式为: for 循环变量=起始值:步长:终止值 循环体 end

Page 14: 第 7 章   MATLAB 工程计算

While 循环 While 逻辑表达式 循环体 end

Page 15: 第 7 章   MATLAB 工程计算

求从 1+2+3+…+100 之和 sum=0; i=1; while i<=100 sum=sum+I; i=i+1; End sum

Page 16: 第 7 章   MATLAB 工程计算

条件转移语句if 逻辑表达式 执行语句 1 else 执行语句 2 end

Page 17: 第 7 章   MATLAB 工程计算

多重条件分支 Switch 语句 switch Case 值 1 语句 1 Case 值 2 语句 2 Otherwise 语句 3 end

Page 18: 第 7 章   MATLAB 工程计算

例题 编写一个 M 文件,画出分段函数所表示的

曲面

15457.0

117575.0

154.0

),(5.175.375.0

6

5.175,375.0

22

22

22

yxe

yxe

yxe

yxpyyx

yx

yyx

Page 19: 第 7 章   MATLAB 工程计算

第 5 节 线性方程式的求解

mmnmnmmmm

nn

nn

bxaxaxa

bxaxaxa

bxaxaxa

...

..................

...

...

2211

222222121

11112121111

Page 20: 第 7 章   MATLAB 工程计算

第 5 节 线性方程式的求解 MATLAB 采用除法运算符“ /” 和“ \” 求解 X=A\b’ 表示求矩阵方程 AX=B 的解 X=A/b’ 表示求矩阵方程 XA=B 的解 对方程 X=A\B ,要求矩阵 A 和 B 有相同的行

数, X 和 B 有相同的列数,它的行数等于矩阵 A 的列数。

方程 X=B/A 同理

Page 21: 第 7 章   MATLAB 工程计算

如果矩阵 A 不是方阵,其维数是 m×n ,则有: m=n 恰定方程,寻求精确解 m>n 超定方程,寻求最小二乘解 m<n 不定方程,寻求基本解,其中至多有 m

个非零元素。针对不同的情况, matlab 采用不同的算法。

Page 22: 第 7 章   MATLAB 工程计算

一 、恰定方程组 恰定方程组由 n 个未知数的 n 个方程构成,方程有唯一

的一组解。其形式: Ax=b 其中, A 是方阵, b 是一个列向量。 在线性代数中,最常用的方程解法有: 利用 crammer 公式求解 利用矩阵求逆法求解 利用 gaussian消去法 利用 lu 法求解 在 MATLAB 中,直接采用表达式: x=A\b’

Page 23: 第 7 章   MATLAB 工程计算

求解方程组2x1-x2+3x3=3

4x1+2x2+5x3=4

2x1 +2x3=6

A=[2 -1 3;4 2 5; 2 0 2];

b=[3 4 6]’;

X=A\b

结果: 7.6667 -1.6667 -4.6667

Page 24: 第 7 章   MATLAB 工程计算

0674522

963

852

4321

432

421

4321

xxxxxxx

xxx

xxxx

Page 25: 第 7 章   MATLAB 工程计算

二、超定方程组 对于方程组 Ax=b , A 为 n×m 矩阵,如果 A

列满秩,且 n>m ,则方程没有精确解,此时方程组称为超定方程组。

线性超定方程经常遇到的问题是数据的曲线拟合。对于超定方程组,在 MatLab 中,利用左除命令 x=A\b,来寻求它的最小二乘解,还可以用广义逆来求,即 x=pinv(A) ,所得到的解不一定满足 Ax=b,x只是最小二乘意义上的解。

Page 26: 第 7 章   MATLAB 工程计算

求超定方程组

613334

053

332

321

321

321

321

xxxxxx

xxx

xxxA=[2 -1 3;3 1 -5;4 -1 1;1 3 -13]

b=[3 0 3 -6]’

x1=A\b %左除解方程x1 = 1.0000 2.0000 1.0000

X2=pinv(A)*b %广义逆求解

Page 27: 第 7 章   MATLAB 工程计算

A*x1-b %验证最小二乘解显示: 1.0e-014 * -0.0888 -0.0888 -0.1332 0 说明 x1 不是方程 Ax=b 的精确解。

Page 28: 第 7 章   MATLAB 工程计算

第六节 数值分析 Matlab提供符号运算,可进行多种数值

分析,包括因式分解、求极限值、求微分、求导数等

Page 29: 第 7 章   MATLAB 工程计算

符号变量 在使用符号运算工具箱之前,需要把一些变量声明为“符号变量”,以区别于常规的数值变量。

例如声明 a,b,c,d 为符号变量: syms a b c d

Page 30: 第 7 章   MATLAB 工程计算

一、因式分解 Factor 函数 Syms x s=x^9-1 Factor(s)

Page 31: 第 7 章   MATLAB 工程计算

二、求极限值 极限可以用 limit 函数求得 Limit(f,x,a) 求符号表达式 f 当 x->a时的极限 Limit(f,a) 对系统默认变量且该变量 x->a时的极限

Page 32: 第 7 章   MATLAB 工程计算

例如 求下式中默认变量 ->2时的极限

Syms x Limit((x-2)/(x^2-4),2)

4

2lim

42

x

xx

Page 33: 第 7 章   MATLAB 工程计算

三、计算数值向量的数值差分 差分可以用 diff() 函数求出 语法: Y=diff(F,n,dim) F 是向量; n 是差分阶数; dim 是指沿着数组的哪一维进行差分

Page 34: 第 7 章   MATLAB 工程计算

例如 F=[(1:6).^3] diff(F)

Page 35: 第 7 章   MATLAB 工程计算

二、一维数值积分 Quad: 采用 simpson 法计算积分。 调用格式: q=quad(‘fun’,a,b,tol,trace,p1,p2,…) fun:被积函数, a,b:上限 下限 tol: 误差,缺省 0.0001 Trace: 画图 p1,p2:传递参数

Page 36: 第 7 章   MATLAB 工程计算

求数值积分 function y=funq(x) y=x^3+x^2+2 q=quad(‘funq’,-1,1,1e-4,1)