数学建模社区-数学中国
标题:
MATLAB应用大全 书连载
[打印本页]
作者:
lili456
时间:
2012-5-28 11:00
标题:
MATLAB应用大全 书连载
程序员典藏大系
/ O" W7 |8 Q% R6 e8 ?( Z
4 M3 `/ i; q4 b: L7 h+ N6 U7 h
MATLAB应用大全
1 I J5 C: a0 C* V! ^) y* e, N7 a
% H' ?( H0 d$ U: g& I+ H) U) q
赵海滨 等编著
' o) ~* p& U3 G! ?0 O: ?
4 A4 d$ u1 s/ `# F
7 c/ H( _ v" n( P/ @2 N
/ p/ K! Z* V. s! |6 ?
' i9 c4 N& ?- }9 G& _3 C
% \0 D2 S% T- f& J
- g: v! x4 [$ ^: r- G; ?
& L; p2 Q# f8 N/ E: v
/ t( P9 f7 X2 a' \
- o* F, c/ M& n
/ H! f; T" V) E3 N! u* |4 ^0 @+ m @+ ^
1 R! _" z1 r. y+ a" Z Z
) B2 k# a1 m8 N" O2 {7 y
4 ~+ ^2 s7 [# W6 S; k6 D
M. d1 [% ~8 k
! C1 f5 p' w! K# j& V
$ Z. e$ I' S. s! G4 m% L
* z: _, _) D! Y& f$ Q* R
清 华 大 学 出 版 社
7 ], t. V b8 T' q
北 京
0 o) L3 e1 W# H4 e4 r
内 容 简 介
2 D+ M4 Y( s& K% |
本书由浅入深,全面、系统地介绍了MATLAB编程和开发的方方面面。书中的每章都提供了大量有针对性的实例,供读者实战演练。另外,为了帮助读者更高效、直观地学习,本书每章重点内容都专门录制了对应的教学视频。这些视频和本书所有的实例文件一起收录于配书DVD光盘中。
8 _. b" e R# m, [* U( f9 B1 M
全书共23章,分为7篇。基础篇介绍了MATLAB基础、数组和矩阵分析、字符串分析;科学运算篇介绍了MATLAB数据分析、积分和微分运算、概率和数理统计、符号计算;数据可视化篇介绍了二维和三维数据的可视化;编程篇介绍了MATLAB基本编程、程序调试和编程技巧;仿真篇介绍了Simulink基本知识、Simulink建模和S-函数;高级应用篇介绍了GUI编程开发、GUIDE工具建立GUI界面、文件夹管理和文件I/O操作、MATLAB编译器;工具箱与接口编程篇介绍了信号处理、小波分析、图像处理、神经网络4个工具箱,最后还介绍了MATLAB与Word和Excel的接口技术。
5 D1 n" [3 g+ }" J5 R' P9 ]" T
无论是对于MATLAB的初学者,还是有一定基础的高级用户,本书都是一本难得的参考书。本书非常适合使用MATLAB进行编程和开发的本科生、研究生及教师,也适合广大科研和工程技术人员研读。
0 x0 I9 G. J# Y' D# x7 w
; A0 J# F; [/ | H0 @
本书封面贴有清华大学出版社防伪标签,无标签者不得销售。
4 ?! J7 m0 S( N- W. `' K
版权所有,侵权必究。侵权举报电话:010-62782989 13701121933
4 U \0 c9 m. p/ n/ O
- J# b5 b) E8 |* o" a
( s1 k4 @& E& x3 ^' G3 F M
图书在版编目(CIP)数据
7 H1 L7 j3 N1 m0 M
, }8 F7 h* |1 R+ r# N# D! X! C
MATLAB应用大全 / 赵海滨等编著. —北京:清华大学出版社,2012.3
, C! ~ a0 K4 V N
ISBN 978-7-302-27616-6
9 k- r! ^. O5 y
5 ^% K T7 A6 B
Ⅰ. ①M… Ⅱ. ①赵… Ⅲ. ①Matlab软件 Ⅳ. ①TP317
& B0 h; p+ G& y# ~& i
" [: p# o0 P. M7 S1 I
中国版本图书馆CIP数据核字(2011)第271712号
& t4 j3 F. J4 n. b7 Z
- T5 H; t1 A/ M2 c( x, _
责任编辑:夏兆彦
& B. S9 @5 o& P
责任校对:徐俊伟
; O$ a6 O; x9 T5 w/ w! L, ]
责任印制:
B: T" D4 s6 r& G3 u- m F/ R! R
! z+ \- h: ^8 Z6 u/ K
出版发行:清华大学出版社
5 k+ w, x2 \! Q4 I: A# s# s3 c# j
网 址:
http://www.tup.com.cn
,
http://www.wqbook.com
9 p) W7 a+ a* P) x
地 址:北京清华大学学研大厦A座 邮 编:100084
" m1 f$ t, l% q, @
社 总 机:010-62770175 邮 购:010-62786544
# K* H1 S6 w; @2 _
投稿与读者服务:010-62776969,
c-service@tup.tsinghua.edu.cn
" o+ s5 N e" Z) I' w# `' {9 v
质量反馈:010-62772015,
zhiliang@tup.tsinghua.edu.cn
4 N4 A' l8 R# O& {1 K" _) P4 U& e
印 刷 者:
+ G" B* C0 \/ h9 r a" l
装 订 者:肖 米
7 V$ L d) a j* f
经 销:全国新华书店
( E) V8 @/ W: L' G
开 本:185mm×260mm 印 张:46.75 字 数:1170千字
5 N+ p; x3 Y, p9 Q
(附光盘1张)
+ W5 J6 J4 y8 d
版 次:2012年3月第1版 印 次:2012年3月第1次印刷
! q6 Y5 F8 G, m; ^; A
印 数:1~5000
- v. A( [% A5 g3 S2 ^, l
定 价:25.00元
* ^& L% ]: q5 z+ X7 i
产品编号:043740-01
+ d, P* d9 c5 y( J- a- K
& ~+ } j1 d& E5 ?& [1 G3 g9 M
当当地址:
http://product.dangdang.com/product.aspx?product_id=22704305
作者:
lili456
时间:
2012-5-28 11:02
目 录
0 W' i9 ?8 }: w4 ]: U& K
第1篇 MATLAB基础
* _/ J+ `' z3 R9 w" V
第1章 MATLAB概述( 教学视频:15分钟) 2
# p( j0 e0 C q# d
1.1 MATLAB简介 2
8 p4 Q; l) g* i0 ^' p8 b
1.2 MATLAB的特点 2
0 R7 Z/ M- m: D$ d9 @
1.2.1 界面友好,容易使用 2
3 e" H& R4 k& V4 W
1.2.2 强大的科学计算和数据处理能力 3
. q v" D& }7 Q0 M# V( `0 P4 X' e
1.2.3 强大的图形处理功能 3
9 U3 U' ]( R7 X% M9 O' n4 L$ R
1.2.4 应用广泛的专业领域工具箱 3
) C% u' ` F9 h+ b) V. r' C
1.2.5 实用的程序接口 3
% `+ d3 L3 I( j1 t( V* x& j
1.3 MATLAB 2010a的新功能和特点 4
7 K9 o$ V2 t3 @. l/ t- L% o8 d
1.4 MATLAB的安装、退出及卸载 4
. z& _+ h0 o3 G1 h: ?( A
1.4.1 MATLAB的安装 4
; ^6 B7 ]& u, a9 @5 H4 y
1.4.2 MATLAB的启动和退出 8
/ V% l$ l% g# E0 Q1 T
1.4.3 MATLAB的卸载 9
: D! U3 k2 V7 p
1.5 MATLAB的目录结构 10
3 y; i1 `2 A* b$ w
1.6 MATLAB的工作环境 11
" F/ H* ?0 x7 Q
1.7 MATLAB的通用命令简介 16
2 w) K2 @, p, D- [7 N) L. X- Z
1.8 MATLAB的工具箱简介 17
0 \; F G1 v6 I5 P
1.9 MATLAB的帮助系统 18
" R* Q. p/ c) f, g6 s! M/ Q
1.9.1 命令行窗口查询帮助 18
" v: T/ I7 Q+ W+ B
1.9.2 MATLAB 2010a联机帮助系统 20
' X9 T T1 V8 J- B" P% o3 I
1.10 本章小结 21
6 I9 {0 R( L1 Z( {
第2章 MATLAB基础( 教学视频:78分钟) 22
& L# o/ E- _1 } F6 q/ N$ ]+ H# V
2.1 数据类型 22
n0 `6 q& I! {9 s
2.1.1 数值类型 23
* |3 [* j& p/ P' U F; ]3 {
2.1.2 逻辑类型 31
3 z/ n2 C. c, l% w8 i
2.1.3 字符和字符串 32
5 P Q( q0 r% p$ ], T
2.1.4 函数句柄 33
3 a- W: i* T& h) Q5 S! t0 U# N
2.1.5 单元数组类型 35
0 k% F( n' d! R' L) H4 o& U
2.1.6 结构体类型 39
. K9 r+ Y1 M+ E/ n3 q) w+ a0 Z* b; q
2.2 运算符 46
$ p1 S1 r, k" g" `6 n' }; r5 y a
2.2.1 算术运算符 46
( w, k* Z/ T: K9 O2 O
2.2.2 关系运算符 47
9 }1 z/ t( ]6 a ]! Y' p5 u
2.2.3 逻辑运算符 48
6 I J2 U* q0 x, W. N6 X7 Q
2.2.4 运算优先级 52
, O+ R6 n; p5 X! X7 |$ ~2 O
2.3 日期和时间 53
0 N) V2 V8 s4 h& ]4 A$ B
2.3.1 日期和时间的表示形式 53
7 c! d5 V9 h( e
2.3.2 日期和时间的格式转换 55
1 i. o1 f/ q# e5 N) O6 w
2.3.3 计时函数及其应用 58
3 d, h- P# N3 o% a) y! ]4 W0 |2 {
2.4 MATLAB中的常量和变量 60
+ u2 W/ J% n& H' F( J6 M
2.5 本章小结 60
& R9 C, Y' a( Y0 s/ U" X t
第3章 数组和矩阵分析( 教学视频:160分钟) 61
& h4 S5 d( L! Z5 T& h% D
3.1 数组及其函数 61
- N' z2 r H" g, B" d( R- v
3.1.1 数组的建立和操作 61
' N# Y; p% H4 e
3.1.2 数组的算术运算 65
! S, S$ j6 `5 R3 z
3.1.3 数组的关系运算 68
. y+ w! g& Z$ {) j; j$ n6 r' d
3.1.4 数组的逻辑运算 70
9 l1 D6 T; f5 [3 V- |
3.1.5 数组信息的获取 71
* W& H' i9 D3 G* J$ K
3.2 矩阵的创建 75
+ a) S9 h% ?9 O2 D& _
3.3 矩阵的基本操作 79
( b; r3 i( e. L+ V3 R
3.3.1 矩阵的扩展 79
1 N4 c z( _" Y# |! V% k
3.3.2 矩阵的块操作 80
4 [& p `+ J- ?8 L
3.3.3 矩阵中元素的删除 82
& r& {* b3 Z- X) |* X5 i B
3.3.4 矩阵的转置 82
W( O+ m; [* c: g, y4 C, v+ a1 Q
3.3.5 矩阵的旋转 83
) P; ?; o$ \$ y' P7 ^
3.3.6 矩阵的翻转 84
6 x; A" S1 f/ Z
3.3.7 矩阵尺寸的改变 85
& b# S+ n j8 k" W) \
3.4 矩阵的基本数值运算 85
p y+ L: K6 S
3.4.1 矩阵的加减运算 85
+ o6 K+ g! n- m7 q3 x1 G+ P. L" A* j: p* ]
3.4.2 矩阵的乘法 86
$ z0 H! z% \, K9 E ]' ?. M$ w4 p
3.4.3 矩阵的除法 87
6 H0 U: _" q1 J2 Y3 }
3.4.4 矩阵元素的查找 89
) r* n# c, R n2 r$ R7 R6 H+ D
3.4.5 矩阵元素的排序 89
3 f$ Z& F& n1 p3 g! R
3.4.6 矩阵元素的求和 90
0 s7 L/ r: ~0 h6 f0 S9 e6 y! m
3.4.7 矩阵元素的求积 91
+ i& s' q0 z" X( x
3.4.8 矩阵元素的差分 92
& |5 q9 U; J: i9 v4 w6 @
3.5 特殊矩阵的生成 93
! _! k1 ~ r: Q% v
3.5.1 全零矩阵 93
1 V! g7 t [& K- f- W
3.5.2 全1矩阵 94
+ ^) {9 \, H! K' m
3.5.3 单位矩阵 94
( B# A* d/ t4 t
3.5.4 0~1间均匀分布的随机矩阵 95
8 D; U* }* t8 R- ~* C
* D# h3 k* k, K6 g2 w" a
作者:
lili456
时间:
2012-5-28 11:07
3.5.5 标准正态分布随机矩阵 95
: W- R& P! o- L- |; E. V
3.5.6 魔方矩阵 96
# R# {6 C7 V# q4 C
3.5.7 范得蒙矩阵 96
* t) u% ? Z7 g3 r4 @( M
3.5.8 希尔伯特矩阵 97
' h2 y9 b( q5 L( n9 e
3.5.9 托普利兹矩阵 98
6 Z& X* `$ K, q# u
3.5.10 伴随矩阵 98
% N c7 f1 n% a
3.5.11 帕斯卡矩阵 99
, m- n: q+ f0 s+ r. _" r9 C, y
3.6 矩阵的特征和线性代数 100
5 p+ n2 }" r/ ]: {) n, O" f% A. D
3.6.1 方阵的行列式 100
" x( j8 ~/ D8 {# c0 I0 X2 {
3.6.2 特征值、特征向量和特征多项式 100
{, m1 J9 E2 _: \
3.6.3 对角阵 102
9 g" T# x1 A9 d% _* W: i3 E
3.6.4 上三角阵和下三角阵 102
# \/ I! B5 H C3 c# k# r
3.6.5 矩阵的逆和伪逆 103
3 @+ F% y: ~' V" e# A0 x; t# L1 `
3.6.6 矩阵的秩 104
$ F; S/ K2 ?" h( p- r
3.6.7 矩阵的迹 105
& r5 W3 s/ I) x2 b# }( r
3.6.8 矩阵的范数 105
* W+ m, \: V6 S, ]0 u4 E
3.6.9 矩阵的条件数 106
) k* P# Y# K9 x& i6 F) O3 y3 m
3.6.10 矩阵的标准正交基 107
7 V: Y: w) ^! t N/ q- o
3.6.11 矩阵的超越函数 108
! W4 `( x' f% g
3.7 稀疏矩阵 111
1 @# w& w) V- _- K& `$ T5 N
3.7.1 矩阵存储方式 111
+ M) d* |* K( r P
3.7.2 产生稀疏矩阵 111
' Z, S3 N5 `* Z4 |" y
3.7.3 特殊稀疏矩阵 115
2 l( d; M n+ |" ~
3.8 矩阵的分解 117
m( R0 r1 @4 u/ ^
3.8.1 Cholesky分解 117
* S5 j. Y4 d3 a3 H8 }$ v$ I
3.8.2 LU分解 118
' Z# M( |8 C9 B) }9 P& {/ C. `' x' c
3.8.3 QR分解 119
* |9 B8 |8 c+ t
3.8.4 SVD分解 120
+ f# [. [4 {& c7 T
3.8.5 Schur分解 121
" _7 x: Y+ d' M5 }. W% B) v2 d
3.8.6 Hessenberg分解 122
! j$ I! A2 r4 p
3.9 本章小结 123
$ S& M7 d4 m( l0 S, m& W
第4章 字符串分析( 教学视频:19分钟) 124
. E# e- }8 S! \8 n2 p
4.1 字符串处理函数 124
8 q3 u) y! X2 A0 v- V; K
4.1.1 字符串基本属性 124
0 S( Z8 |: w1 i6 j
4.1.2 字符串的构造 125
3 q. J# e' d3 G2 i- _" j
4.1.3 字符串的比较 127
% J1 O! ~5 z* D- G
4.1.4 字符串的查找和替换 128
9 k$ f9 ]* g8 V* z$ n9 A
4.1.5 字符串的转换 130
# ?+ _% E$ W$ e0 j
4.2 字符串的其他操作 131
* f$ s6 T4 i& H f
4.2.1 字符的分类 131
' I& \' w9 h; N4 s( q
4.2.2 字符串的执行 132
- C9 w7 p" L9 H& ^; g# @/ \
4.2.3 其他操作 134
; N- ?/ P5 z+ Y) X
4.3 本章小结 136
% M) i) s3 ~. s0 t- `
第2篇 MATLAB科**算
, x$ e9 k. p# e% y6 }: e6 r
第5章 MATLAB数据分析( 教学视频:33分钟) 138
% |, w! w5 H2 N5 I. ]" C5 v
5.1 多项式及其函数 138
* C, ` B2 ]( Q2 c$ y+ v: ?& ^
5.1.1 多项式的建立 138
# M, H1 l D+ K3 z0 Z
5.1.2 多项式的求值与求根 139
6 v3 O# G: k4 S0 m0 _
5.1.3 多项式乘法和除法 141
! ^8 L: N* E5 |! g
5.1.4 多项式的导数和积分 142
/ k9 x5 f0 Y8 \
5.1.5 多项式展开 143
$ `, [8 U4 }8 N7 p6 Z7 ^# h- f6 w
5.1.6 多项式拟合 145
" n! I# I; u' _: M
5.1.7 曲线拟合图形用户接口 145
# p5 Y# O- @: _1 z
5.2 插值 147
. N4 z7 Y. B! z- K5 [
5.2.1 一维插值 147
; Y# Y, X' U2 u/ t) ]
5.2.2 二维插值 150
4 Y' d6 \. f# k3 ?- z. Q& {
5.2.3 样条插值 151
0 `5 }' e1 {1 e
5.2.4 高维插值 152
; f* \1 L- i+ V U
5.3 函数的极限 153
; }8 L" P; v& f( K k
5.3.1 极限的概念 153
, g9 e/ j# X) b/ }9 B. u8 r
5.3.2 求极限的函数 155
0 H) ~ ]5 c& D4 p- {
5.4 本章小结 157
, a$ S u. G% |! M+ [3 k' S
第6章 积分和微分运算( 教学视频:27分钟) 158
8 O3 [9 ^1 |( P4 Z- _8 j
6.1 数值积分 158
$ n3 z* g, |( C3 E. J/ h U v
6.1.1 定积分概念 158
0 H1 G5 c% `5 v; M
6.1.2 利用梯形求面积 159
2 ^( F: U7 _# l: u0 g; A
6.1.3 利用矩形求面积 161
: [8 F. ~1 _. j1 p9 f: N
6.1.4 单变量数值积分求解 162
6 {/ T |4 T. t" b, h8 p
6.1.5 双重积分求解 164
; N+ N2 ^1 t, W) U+ Y$ c! O3 j
6.1.6 三重定积分求解 165
1 j/ X+ Z$ Z- y/ U
6.2 常微分方程 166
|) n6 p2 b( k8 b, ^
6.2.1 常微分方程符号解 166
) B. e5 n9 x6 b; `8 d/ j
6.2.2 常微分方程数值解 168
O* U! {1 E) R. u9 f
6.3 函数的极小值和零点 171
( F2 M% i- M% J- e& I/ c$ _; Y
6.3.1 一元函数的最小值 171
! g9 U, |- H& `- F$ y
6.3.2 多元函数的最小值 172
; C s& Z: O! S5 n1 c* R
6.3.3 一元函数的零点 173
3 F1 G* W4 ]' S1 M
6.4 本章小结 174
2 Q7 z3 x+ g. X6 ~, n8 m( V! n
第7章 概率和数理统计( 教学视频:94分钟) 175
1 y& n1 X( |& P5 M" e$ C: M
7.1 随机数的产生 175
& e' L$ T- ], {* I7 R+ c4 i
7.1.1 二项分布随机数据的产生 175
/ e5 j+ g! J0 |, z
7.1.2 泊松分布 176
! Z; ~8 g4 W L& C2 V& J
7.1.3 指数分布随机数据的产生 176
+ n, E; T- O% g, q9 G+ [* E0 V
7.1.4 均匀分布随机数据的产生 177
8 T: d- N- b* N9 o
7.1.5 正态分布随机数据的产生 178
- {% p0 i# o0 m; j; _! X
7.1.6 其他常见分布随机数据的产生 179
4 t- k' l; ]$ ~& z: }
7.2 概率密度函数 179
/ k# o* c0 D, @
7.2.1 常见离散分布的概率密度函数 179
1 O$ |) _2 T$ O5 X
7.2.2 常见连续分布的概率密度函数 182
6 y5 l! M5 k+ q4 a }
7.2.3 三大抽样分布的概率密度函数 185
) u4 e0 l y$ ?+ f3 \
7.3 随机变量的数字特征 187
/ ]6 [/ f; V. @; _
7.3.1 平均值和中位数 187
, ]9 t4 \2 L. b) _
7.3.2 数据的排序 192
& B7 p) @6 J: Y7 m9 ^$ _
7.3.3 期望和方差 195
" \( A& f0 N$ B8 y' j7 J: p
7.3.4 常见分布的期望和方差 198
. `( c' `8 D" L3 f2 k' z+ ~" n: {
7.3.5 协方差和相关系数 203
& x0 S) _) K( S
7.3.6 偏斜度和峰度 205
7 X" g$ @, m- i7 _' e
7.4 参数估计 207
: n# ^; ^2 _3 D% w
7.4.1 点估计 207
) E- x- W& U" L' q7 x" g! B! A
7.4.2 区间估计 207
4 \( C5 D. r2 z$ ?% F" _- T- R
7.5 假设检验 212
2 j" E. A. i( d4 F; x- G, _0 R
7.5.1 方差已知时正态总体均值的假设检验 212
& {( x9 c! T b& J6 A/ x/ k6 |
7.5.2 方差未知时正态总体均值的假设检验 213
1 j: p- R- o) L/ V1 ~" @
7.5.3 两个正态分布均值差的检验 214
% H% \, l6 q. \7 A* R
7.5.4 两个分布一致性检验 215
2 X' T8 ?! R3 Y9 M l( o
7.6 方差分析 216
0 I, Q0 r; }9 \+ E" j% S1 A
7.6.1 单因素方差分析 216
4 S: d; j# d4 t. w3 l
7.6.2 双因素方差分析 218
. U& `7 F% I1 E. S+ v0 ^3 Q
7.7 统计图绘制 221
9 s0 M' A% V; H# t
7.7.1 正整数的频率表 221
1 S+ a8 n0 y9 d, O5 c# [
7.7.2 样本数据的盒图 222
3 b' E0 |3 O& ?7 L4 N
7.7.3 最小二乘拟合直线 222
; l. A" A' x; s# E+ L8 n
7.7.4 正态分布概率图 223
3 S% p1 h6 v+ g' U- y. b
7.7.5 经验累积分布函数图 224
8 [6 w. L# N1 F I4 H% b
7.7.6 威布尔概率图 225
7 C, i* j ]! V
7.7.7 分位数-分位数图 226
# V. c6 F8 T1 o
7.7.8 给当前图形加一条参考线 227
6 z& i! q4 A) |0 r( m
7.7.9 给当前图形加多项式曲线 228
3 L' F$ O1 c% j4 K
7.7.10 样本的概率图形 229
4 G2 X7 H+ x5 B- P8 ~, `* B6 P0 w
作者:
lili456
时间:
2012-5-28 11:09
7.7.11 带有正态密度曲线的直方图 230
. M5 }0 t j% c& b3 d! S/ p, t
7.7.12 在指定区间绘制正态密度曲线 230
* P4 @+ N* K% S
7.8 本章小结 231
' f. L/ z# i- L% |+ [4 O* T
第8章 MATLAB符号计算( 教学视频:124分钟) 232
; C9 g2 k; T5 c% F! q- M
8.1 符号运算入门 232
' B' C- U i8 U5 f, @6 D
8.1.1 符号变量的创建 232
+ n6 c+ C, H6 r
8.1.2 符号变量 235
& h% M! N9 t, }( f) I6 v# R
8.1.3 符号函数和符号方程 236
4 }+ F- R, N3 J4 n1 {
8.2 简单实例分析 237
( b. X8 P% S+ Y2 H, s s
8.2.1 求解一元二次方程的根 237
* g8 e6 |; x0 |1 d
8.2.2 求导数 237
. |2 g$ h! C7 w8 V5 K; {
8.2.3 计算不定积分 238
2 ?* v/ _+ L+ W0 u9 J
8.2.4 计算定积分 238
8 i% Z# L1 q; E% O) w
8.2.5 求解一阶微分方程 238
; V+ U5 a8 ^ d6 L! P( P+ ~
8.3 符号运算精度 239
; o+ D3 _5 c( x8 X; t! B8 `5 E- X
8.4 符号表达式的操作 240
3 e) j( |" P* d9 q3 J$ Y5 j
8.4.1 符号表达式的基本运算 240
! {, {; Z* U( I, F3 E: S
8.4.2 符号表达式的常用操作 241
5 G' }. J6 Z6 S
8.4.3 符号表达式的化简 245
# F& X& s. _; K6 M. x" w1 ?) K" d/ W
8.4.4 符号表达式的替换 247
; H& o2 y& Z- ]8 b5 ]. W# D# ]. ^
8.4.5 反函数运算 249
6 t& O* U, O# q: K! y
8.4.6 复合函数运算 250
& m- U9 U( n) _
8.5 符号矩阵的计算 251
/ V/ ~5 u9 s: u8 `0 i
8.5.1 符号矩阵的生成 251
a; ]" p% v/ y& c! {' F
8.5.2 符号矩阵的四则运算 253
) C' O* y7 L% i+ E2 o' F; Z
8.5.3 符号矩阵的线性代数运算 254
i& u" [' c' A9 s/ \8 @5 x
8.6 符号微积分 260
6 M% k |8 f0 K/ P
8.6.1 符号表达式的微分运算 260
p. M3 B5 R/ q( [( Q, z
8.6.2 符号表达式的极限 262
2 e9 e$ j0 @; T9 {1 d
8.6.3 符号表达式的积分 262
0 m: e$ q) ? Y) I1 P
8.6.4 级数的求和 264
5 R& B& ~1 ~; y( C
8.6.5 泰勒级数 264
h" B0 J: o+ c! r9 ^
8.7 符号表达式积分变换 265
# A1 z1 Q) F2 c* A
8.7.1 Fourier变换及其反变换 265
. M/ ?/ j, [/ i7 m* @
8.7.2 Laplace变换及其反变换 267
7 ^& M. X: U, o: m) N: }6 v& g; @
8.7.3 Z变换及其反变换 268
! F: d! l$ x5 a( ]3 n) p
8.8 符号方程求解 270
3 H( P" ?( s( n# G* Y
8.8.1 符号代数方程组的求解 270
# h% j H7 `" v: q* `& i( h
8.8.2 微分方程的求解 273
$ B# x$ F) w7 B
8.9 符号函数的图形绘制 275
5 P5 x. q, {2 W1 e4 G
8.9.1 符号函数曲线的绘制 275
* o' U. g1 N2 @! b/ ~
8.9.2 符号函数的三维网格图 280
" J v& b+ `$ Z* l% s
8.9.3 符号函数的等值线图 283
0 X6 G+ D! n. F
8.9.4 符号函数的三维彩色曲面图 284
2 N K0 L6 T5 B+ z# O3 ?( d7 _: c
8.10 图形化符号函数计算器 286
t4 Q# Q& F5 P
8.10.1 单变量符号函数计算器 287
( ^* e8 N* z ?" T+ t
8.10.2 泰勒级数逼近计算器 288
, ~1 u9 O* P! }- E u2 R
8.11 Maple接口 289
( `! G, |! J9 @
8.11.1 利用sym函数调用Maple函数 290
$ G" C: i' W& A' o- ~
8.11.2 利用maple函数调用Maple函数 290
7 ?. Q7 k4 s( F3 X o- }$ _- c8 u
8.12 本章小结 291
* B8 g( n. U& x& }3 l. t% w" x
第3篇 数据可视化
! _. A/ @8 c6 `4 _! e7 D" d
第9章 二维数据可视化( 教学视频:112分钟) 294
( \% l% C. T5 j4 \' y
9.1 MATLAB绘图 294
3 P4 l4 [. A1 s
9.1.1 基本绘图函数 294
: _2 a# {6 W$ z9 F
9.1.3 子图绘制 300
! n0 R6 f( n4 \" U* v
9.1.4 叠加图绘制 301
# e0 z9 X: f/ ]
9.1.5 设置坐标轴 302
; b& n7 e" L7 M6 M
9.1.6 网格线和边框 303
2 N% i7 k- t7 w, }) o" r3 c
9.1.7 坐标轴的缩放 304
( S" I1 E9 c! a' ?" Z
9.1.8 图形的拖曳 306
2 B% H: H/ a1 A. J* @
9.1.9 数据光标 306
1 H8 I/ D: y2 T! T) y( u. `% x
9.1.10 绘制直线 307
: n( o4 b; ]/ ]
9.1.11 极坐标绘图 307
( t* f) u- `# G( M p: N6 |
9.1.12 对数和半对数坐标系绘图 309
4 S, ^+ k5 t2 J, K' X/ V. ]
9.1.13 双纵轴绘图 311
) |" z+ T7 s( @& p+ f8 P4 w# {5 b
9.2 图形的窗口和标注 312
5 f2 ?/ u; H# N) N
9.2.1 图形窗口 313
2 H* `; w8 l; j1 t: ~. e' A* m4 C' r
9.2.2 图形标注概述 314
+ X' g6 F4 e$ R
9.2.3 图形标题 315
& b. ^* ]; }% E1 f% n) f# P0 k$ Q
9.2.4 坐标轴标题 318
" Y% C9 O, R, U. S* _5 o& F* x) @! M7 b
9.2.5 图例 319
: P. K8 t. k R; h- @; X- g7 l
9.2.6 颜色条 321
1 w" b: T4 J& p z0 m) z
9.2.7 文本框标注 322
7 M D& m3 x4 b6 x k/ u
9.2.8 获取和标记数据点 323
2 }4 C8 B9 j ?
9.3 特殊图形的绘制 324
2 Q A1 b* e; l5 g- B; E. D9 C
9.3.1 函数绘图 325
6 f( h# _1 N, \1 ?3 [; ~" u
9.3.2 柱状图 328
7 q# q! V# v( W! h/ G2 n9 X
9.3.3 饼状图 330
' b1 M2 r5 q% F* m; ?' j4 h
9.3.4 直方图 331
9 v$ y8 _- a0 z4 k% U% \
9.3.5 面积图 331
9 C W+ I4 C" T* i3 X# B, r
9.3.6 散点图 332
4 D& a: b9 M/ F( G
9.3.7 等高线绘图 333
3 h9 f ~& a$ Q6 m0 I8 q. T: f: u
9.3.8 误差图 335
6 n& C4 i: v4 b$ @1 Q6 K; l
9.3.9 填充图 335
, W1 p3 k3 f! w; Q
9.3.10 火柴杆图 336
! S/ ^- u" Y, Z8 w. J
9.3.11 阶梯图 336
8 R1 ~5 C7 X- P% L& S- w6 @
9.3.12 罗盘图 337
3 y; W, Z9 I3 L! L% H
9.3.13 羽毛图 337
o8 C$ P; ~6 C, S! V" O& R( f
9.3.14 向量场图 338
" }% E1 i* B' |/ E
9.3.15 彗星图 338
4 Y* ^: ]/ A* F
9.3.16 伪彩色绘图 339
]) {+ @" a! x3 f% p3 Q
9.4 图形句柄 339
" I+ I5 L+ X7 f1 z0 t
9.4.1 图形句柄 339
' d0 C. |3 C8 G4 }" V& L% ^3 F
9.4.2 坐标轴句柄 342
R, y$ }" X6 X0 F
9.5 本章小结 346
* v L4 y' p0 b3 b
第10章 三维数据可视化( 教学视频:75分钟) 347
N1 C7 ]+ Z2 _
10.1 创建三维图形 347
1 b& x S1 d) U
10.1.1 三维图形概述 347
# P! P& E8 X2 q! v
10.1.2 三维曲线图 348
. P5 e- ?8 j8 c! K/ @3 {
10.1.3 三维曲面图 348
: P& K) g! @- c7 u4 l+ S
10.1.4 特殊三维绘图 354
5 k9 w5 \: x1 r8 E6 \1 \8 g
10.1.5 非网格数据绘图 362
, v6 C3 C8 g" M, P7 G3 c
10.1.6 创建三维片块模型 363
; L- E4 ]0 h0 h! {
10.2 三维隐函数绘图 364
. E; ]# f; z; x- K' u
10.3 三维图形显示 367
8 ?0 u; w; M* j8 Z2 F
10.3.1 设置视角 367
! i4 S1 U6 _! h& I, Q& q' r$ u. w
10.3.2 色彩控制 369
! y0 H' ?) S" g. K$ j; J
10.3.3 光照效果 377
( S- O7 f# N' _ g4 F+ g% Y+ S
10.3.4 Camera控制 381
: M, u5 J0 _. Q0 `0 g
10.3.5 图形绘制实例 382
. f! H* `2 O4 L2 G( b; Y4 Y; \0 `
10.4 图形的输出 385
! k: s# W4 V, a- |2 |% I, ?
10.5 本章小结 386
" r& K2 j/ S2 y" G, N" u
第4篇 MATLAB编程
5 U* z* E4 E# m1 P( u
第11章 MATLAB基本编程( 教学视频:77分钟) 388
( k' i, b. A# k# K6 ^$ p7 U$ w
11.1 MATLAB编程概述 388
' U! z0 F$ k( i6 N4 W+ g
作者:
lili456
时间:
2012-5-28 11:10
11.1.1 M文件的创建 388
9 p( }9 D4 _% o
11.1.2 脚本M文件 388
9 c6 R( B: k8 d* U
11.1.3 函数M文件 390
9 T, `" o$ l' C
11.1.4 函数的参数传递 393
# |) M3 `+ |' @6 L+ i! ]# F, h6 }4 U
11.2 流程控制 397
( ~! B' u3 z& y$ z. x& R
11.2.1 变量 397
. n# |; V) t) p, x! O2 l' X
11.2.2 顺序结构 399
; X# a( @) b3 K; q- U
11.2.3 分支结构 399
# B! `7 k% W( _& t
11.2.4 循环结构 401
8 L4 }2 X) F' j! Q
11.2.5 try…catch语句 404
: m! F+ b# s* e/ I
11.2.6 人机交互函数 405
8 \+ l$ X. i# g# D, p4 x4 H6 h
11.3 函数类型 408
4 b2 [3 a( _5 S0 N! I
11.3.1 主函数 409
w, v" g3 G2 \7 I' {+ K
11.3.2 子函数 409
6 R; q- ?( }' r/ X5 N
11.3.3 嵌套函数 410
) n9 w3 }5 X8 i7 I$ N
11.3.4 私有函数 411
. A3 s5 a# z/ ~3 v) i
11.3.5 重载函数 412
1 X1 w) q9 e/ w' c" b
11.3.6 匿名函数 414
" p( q9 f6 [1 K
11.3.7 函数句柄 419
" z% F1 H3 f; r& Z5 I
11.4 P码文件和ASV文件 420
+ q7 H* Z: N' m8 `! G- ^
11.4.1 P码文件 420
" R; {4 `4 d* D
11.4.2 ASV文件 422
9 L5 r9 T& g5 h, I, Z) v% E7 R" e4 g7 ~
11.5 本章小结 423
/ Z5 w6 e2 F- r/ B8 A$ S* v6 S
第12章 程序调试和编程技巧( 教学视频:33分钟) 424
5 J2 i2 s8 _, b* l$ S
12.1 M文件调试 424
! |4 o8 j) {2 J- E! U+ ~
12.1.1 出错信息 424
& \9 b' G8 X8 j. y- d9 k. p
12.1.2 直接调试法 424
# c6 S* u# y; g* @* u
12.1.3 工具调试法 425
% J' O& Z" ]' y( Y
12.1.4 错误处理 430
3 o$ ?* f" [6 U1 \1 B m; x
12.2 M文件性能分析 434
5 {' z5 M P5 r. g/ e. E4 S) P; w
12.2.1 Code Analyzer工具 434
; X$ u- l9 b+ E8 n% P8 R
12.2.2 Profiler分析工具 436
/ P( g3 e1 c' P& p6 N7 {( J
12.3 编程技巧 438
. h5 M2 l. E% J7 ^; F) {
12.3.1 程序执行时间 438
9 R- z. |# P! x! A" O
12.3.2 编程技巧 438
7 O! k7 r$ C F
12.3.3 小技巧 442
6 W: R/ Y7 _' s4 M A
12.4 本章小结 443
) u; a# M: O+ G* p
第5篇 MATLAB仿真
* J$ V& i2 }0 [5 a: ?, |! U
第13章 Simulink基本知识( 教学视频:61分钟) 446
% r8 T& E4 |, c, l5 F4 u9 t- d
13.1 Simulink概述 446
# O8 ^: m m: b4 D0 c; u
13.1.1 Simulink的概念 446
" G: L+ c: e6 Q) C3 A& T3 _& {5 I
13.1.2 Simulink的应用和特点 446
K1 ]% E, K; \/ e* d6 u
13.2 Simulink的基本操作 447
! X+ Z. w" U. u
13.2.1 启动Simulink 447
; g' V* F7 k* q$ ?
13.2.2 选择模块 448
, j+ Y" ~- @/ O& x5 E e4 i% u
13.2.3 模块的连接 449
" m9 g" x' M3 \' b; U" Z
13.2.4 模块的基本操作 449
, Q4 L! T% }; I+ B/ O ~0 |
13.2.5 模块参数设置 450
( W# U9 X0 Z) F; h, }6 @! P
13.2.6 仿真器设置 450
i" r8 Y% c) s6 `
13.2.7 运行仿真 451
4 E- r9 R( O8 j
13.3 常用的模块库 452
0 ]! W# W2 T; [$ M( b: q6 V: _. i
13.3.1 Simulink常用模块子集 452
$ ?( Q+ j" [) O7 [8 m+ s
13.3.2 连续时间模块子集 453
( Y7 I0 V. Z& F
13.3.3 非连续时间模块子集 454
7 z9 a6 g# ?! l/ Z+ u, s
13.3.4 离散时间模块子集 455
& O# |0 Y5 L. ^7 ], ?! ~0 M
13.3.5 逻辑和位操作模块子集 456
/ w+ H# l0 c# A5 o+ ?0 E0 Q
13.3.6 查表模块子集 457
. P) [8 U5 H. e
13.3.7 数学运算模块子集 459
6 R( j* z+ Q" b; ^5 q; {6 J7 b
13.3.8 端口和子系统模块子集 459
1 b0 x+ M% |) L/ D4 c& R4 [; N
13.3.9 信号特征模块子集 460
4 a1 U% k+ o9 W) [ J9 N) p) _, ]
13.3.10 信号路径模块子集 462
6 s6 ~3 m# a$ s3 r
13.3.11 Sinks模块子集 463
6 b: C, \/ Y% b" o2 t
13.3.12 信号源模块子集 464
7 y; Y) u& F2 E" w
13.3.13 用户定义模块子集 465
/ D* `( [; j! W& x) H
13.4 子系统及其封装 466
/ ^. C; u/ k. u0 Q. J* }$ ]
13.4.1 子系统 466
" k; d0 S% N- x/ M5 c3 X7 l$ x% g
13.4.2 子系统的封装 467
6 S) `6 u! j$ {. O
13.5 Simulink模型工作空间 469
- T, {% P$ I2 H6 G2 W
13.6 本章小结 470
2 S5 Z1 _; l% |; l1 V
第14章 Simulink建模和S-函数( 教学视频:32分钟) 471
8 V8 c; @' m6 M# y' q% `
14.1 回调函数 471
5 r. H; U# t& Z8 u E
14.1.1 模型回调函数 471
4 |& w! I! X. f7 ^# X4 @+ |
14.1.2 模块回调函数 472
3 ?% j% R. V0 ~/ q0 Y+ x
14.2 运行仿真 474
$ q2 v T( _/ m# @; I7 j' Z
14.2.1 仿真参数的设置 474
, ~# b4 b" ?2 D/ u% j
14.2.2 仿真的出错信息 476
& S+ _$ ^6 A! @, d3 x, w
14.2.3 使用MATLAB命令运行仿真 476
& @1 n8 f( [) ~2 X. l( o. k
14.3 模型的调试 478
D& i. p2 A0 W1 A* ~# |- Y) x, v; F
14.3.1 Simulink调试器 478
- J- ?1 Q v. N! | y- C# ~/ b
14.3.2 命令行调试 479
/ x/ y5 y2 S! k, C
14.4 S-函数建模 479
$ k% j# t) r6 C3 R% e
14.4.1 S-函数介绍 480
, y( p2 n" `, C" L' I9 Q
14.4.2 S-函数工作原理 480
* R |2 N5 e: N. y! w" ]/ U
14.4.3 M文件的S-函数 480
: W* N8 `0 D) P1 O
14.4.4 S-函数实例分析 481
0 |, K I) |2 I
14.5 本章小结 484
7 L* h" w5 o7 a8 R2 s' M* e* q% ^
第6篇 MATLAB高级应用
: @$ J0 ~! i! B0 m% Q( K+ c
第15章 GUI编程开发( 教学视频:70分钟) 486
* v2 r, T k1 `, ~# C( w3 q
15.1 图形句柄 486
7 o2 @0 t/ g2 S y) y D. l& w- B
15.1.1 MATLAB图形系统 486
. k8 M2 \2 C& n. d% z" H7 A( h5 x6 u
15.1.2 图形句柄 487
3 o% R. R/ m; b3 T+ e7 v
15.1.3 图形对象的属性 487
1 R/ E# w8 u9 Q6 P# d. j
15.2 图形对象 487
. a: b/ n* i/ {
15.2.1 创建图形对象 487
7 x0 Y4 K9 {5 V, P
15.2.2 获取对象的属性 488
. B. O" | h, Q, @$ b' R( s) F
15.2.3 设置对象的属性 489
* N$ H, h; S/ U9 A7 ?
15.2.4 对象的基本操作 491
/ `0 v5 S h( N9 E! L" X1 g: Y
15.2.5 root根对象 494
n" u7 A3 \6 M: @
15.2.6 figure对象 495
6 I. K6 Z6 h. ]
15.2.7 axes坐标轴对象 495
- O1 i' q. a: v" b* ~2 r+ H/ Z
15.2.8 核心图形对象 496
8 x6 r' Q: O7 N
15.3 用户接口对象 499
3 l" l" B n" O2 h
15.3.1 uicontrol对象 499
& L3 \% \2 O$ y3 s$ P( P% \1 x: B
15.3.2 uimenu对象 500
8 x' m6 Q) K' q9 ?+ b2 Z. @
15.3.3 uicontextmenu对象 502
3 x- i0 S5 N9 G9 u6 ]4 a
15.3.4 uitoolbar对象 503
+ y* ]& M* X3 q F6 a! ^
15.3.5 uibuttongroup对象 506
2 b4 n3 Z9 v) U) R
15.3.6 uipanel对象 506
# U: X% ^$ i; s6 L
15.3.7 uitable对象 506
7 f) s2 O/ V9 K& ?) S0 ^
15.4 常用的对话框 507
( K. i1 L2 i3 d- o
15.4.1 消息对话框 508
: m7 d" p! ^$ o" k
15.4.2 错误对话框 508
0 l% x0 l3 S& G3 P
15.4.3 警告对话框 509
& L" K* _3 V3 z2 m3 `, o
15.4.4 帮助对话框 509
9 `8 @8 F3 F) W- I; t
15.4.5 输入对话框 510
# X3 O' c- H9 |% l I0 d* G6 ~2 g
15.4.6 列表对话框 511
7 p' y7 V3 j* G) n0 [
15.4.7 问题对话框 512
6 y ?5 r( g- |. e- ?! p2 n: O5 S
15.4.8 进度条设置对话框 513
: R0 V5 ` Q8 L0 E* Q9 y' F- y0 n- d
15.4.9 路径选择对话框 514
; T0 ~ r3 j1 Q
0 A5 P# m& E0 Z) g) @) L2 T
作者:
lili456
时间:
2012-5-28 11:15
前 言
c% w$ R5 Z3 h5 m( `# F
MATLAB软件是由美国Mathworks公司发布的主要面向科学计算、数据可视化、系统仿真及交互式程序设计的高科技计算环境。由于MATLAB功能强大,简单易学,并且对问题的描述和求解符合人们的思维方式和数学表达习惯,所以它已经成为高校教师、科研人员和工程技术人员的必学软件。使用MATLAB,可极大地提高人们的工作效率和质量。
2 t0 B! v$ ~5 m( |! w
MATLAB软件代表了当今国际科学计算软件的先进水平,应用领域非常广泛。很多人都希望将MATLAB强大的数值计算和分析功能应用于自己的项目和实践中,从而可以直观、方便地进行分析、计算和设计工作。编写这本书的目的,就是为了向读者全方位介绍MATLAB编程和开发技术。
2 g% z$ M1 D! D5 n* H) n: V, H
本书由浅入深,全面、系统地介绍了MATLAB基础、科学计算、数据可视化、编程、Simulink仿真技术、高级应用及常用的工具箱等内容。书中的每一章都提供了大量的实例程序,以方便读者进行练习和学习,每个例程都经过精挑细选,具有很强的针对性,适合各个阶段的读者学习。本书既注重基础知识,又非常注重实践,读者可以快速上手并迅速提高。通过本书的学习,读者不仅可以全面掌握MATLAB编程和开发技术,还可以提高快速分析和解决实际问题的能力,从而能够在最短的时间内,以最好的效果解决实际的工程和科学问题,提升工作效率。
# `# Q3 g/ G9 H
本书的特点
5 G/ u9 `+ y0 ^. e6 T8 o' w
1.每章都提供对应的教学视频,学习高效、直观
, @. V; q5 W) b! d% I, d" Z) B
为了便于读者高效、直观地学习本书中的内容,作者对每章的重点内容都特意制作了教学视频,这些视频和本书的实例文件一起收录于配书DVD光盘中。
3 X5 C# K1 @/ b0 X- Q1 V& N( r/ y' L0 u
2.结构合理,内容全面、系统
3 X" {& i) f3 r# r p% j3 P
本书详细介绍了MATLAB编程、数据分析和处理、数据可视化、Simulin仿真、GUI编程开发及常用的工具箱,将实际项目开发经验贯穿于全书,思想和内容都非常丰富。在内容的安排上,则根据读者的学习习惯和内容的梯度合理安排,更加适合读者学习。
4 b! I* a4 o. \
3.叙述详实,例程丰富
3 ` ^/ O6 |2 _" n5 L7 B
本书有详细的例程,每个例子都经过作者的精挑细选,有很强的针对性。书中的程序都有完整的代码,而且代码非常简洁和高效,便于读者学习和调试。读者也可以直接重用这些代码来解决自己的问题。
4 ?! |+ L. N( P$ l
4.结合实际,编程技巧贯穿其中
# w7 V y0 l; f
MATLAB编程非常灵活,所以本书写作时特意给出了大量的实用编程技巧,这些技巧的灵活使用,将会让你事半功倍。
8 l4 J1 l% s2 V( T# M
5.语言通俗,图文并茂
9 \( x, y$ E$ Q% O. m/ ?6 h- Q6 K
对于程序的运行结果,本书给出了大量的图片。本书不仅注重基础知识,而且非常注重实践,让读者快速上手,迅速掌握MATALB知识。
9 s2 y) @9 F0 n; Y3 ]9 {+ H0 E
本书内容体系
5 c" D' q% h- |7 B" G2 J
本书共23章,分为7篇,各篇对应的章节和具体内容介绍如下。
' O w" f# d+ u5 _4 X/ M/ ?9 {
第1篇包括第1~4章,主要介绍MATLAB的基础知识,讲解MATLAB 2010a的安装和基本操作,MATLAB的数据类型和运算符,数组和矩阵及字符串等操作。
$ I. h0 k+ O. L+ w# F& f
第2篇包括第5~8章,主要介绍利用MATLAB进行科学计算,包括多项式、插值、极限等基本数据分析,微积分运算、概率论和数理统计,以及MATLAB的符号计算功能。
% q$ k# B' }% V5 x
第3篇包括第9章和第10章,主要介绍MATLAB的数据可视化,包括二维数据可视化和三维数据可视化,同时讲解了图形的标注、特殊图形的绘制,以及三维图形的视角、色彩和光照效果等。
, L6 w8 V0 @* k
第4篇包括第11章和第12章,主要介绍MATLAB编程,包括脚本M文件和函数M文件,以及程序的流程控制,最后介绍了程序的调试、程序的性能分析和常用的编程技巧等。
3 r# P# n$ z: w+ I$ i
第5篇包括第13章和第14章,主要介绍利用Simulink进行系统的仿真,包括Simulink建模的原理、常用操作、基本模块库、子系统的封装技术、Simulink调试器和S-函数等。
# s* S8 e7 `# J: S- i
第6篇包括第15~18章,主要介绍MATLAB的一些高级应用,例如图形句柄、利用GUIDE建立图形用户界面、文件I/O操作及MATLAB的编译器等。
+ C& g/ i( n$ F% `3 E2 o8 P8 G
第7篇包括第19~23章,主要介绍MATLAB的常用工具箱和与Word和Excel的接口,包括信号处理工具箱、小波分析工具箱、图像处理工具箱、神经网络工具箱。
) ?- T/ y7 j; ~0 l2 B& M T) E
本书读者对象
7 ?0 t5 n5 t9 v- P) |
MATLAB初学者;
# E6 U4 u' W# O0 Y- i5 q+ f
想全面、系统地学习MATLAB的人员;
: I0 i' i( ^+ X6 @+ H% F% s
MATLAB技术爱好者;
9 \4 u- d! w2 ~: O8 i) F' b7 {& a4 k
利用MATLAB进行编程和开发的技术人员;
: ^: w! n) }9 o4 n6 ^8 c
大中专院校的学生和老师;
* o( M" w; L6 X6 d
相关培训学校的学员。
% ]* [) |0 P. u" \- c
本书作者
7 p [: [ ?) m$ i4 }
本书由东北大学机械电子工程研究所的赵海滨主笔编写。其他参与编写的人员有武冬、郅晓娜、孙美芹、卫丽行、尹翠翠、蔡继文、陈晓宇、迟剑、邓薇、郭利魁、金贞姬、李敬才、李萍、刘敬、陈慧、刘艳飞、吕博、全哲、佘勇、宋学江、王浩、王康、王楠、杨宗芳、张严虎、周玉、张平、张靖波、周芳、杨罡、于海滨、张晶杰、张利峰、杨景凤、陈锴、郑剑锋、叶佩思、张涛、赵东彪、王双。在此表示感谢!
a! }, X5 Q1 h' F* ^3 F$ |
在此感谢我的父母、家人、研究所的老师,以及所有帮助过我的人。由于时间仓促,笔者水平有限,书中难免存在遗漏和不足之处,恳请广大读者提出宝贵意见。
* ?- s! S6 t; U) J4 j, k% K
: s0 C) g3 t" x' V% t Y
编著者
/ t/ Y: m' _/ i- f# I( y% w
作者:
lili456
时间:
2012-5-28 11:23
前 言
, m" V$ K1 ?* e Q
MATLAB软件是由美国Mathworks公司发布的主要面向科学计算、数据可视化、系统仿真及交互式程序设计的高科技计算环境。由于MATLAB功能强大,简单易学,并且对问题的描述和求解符合人们的思维方式和数学表达习惯,所以它已经成为高校教师、科研人员和工程技术人员的必学软件。使用MATLAB,可极大地提高人们的工作效率和质量。
) _" g; E0 C; v6 y, C5 g# W
MATLAB软件代表了当今国际科学计算软件的先进水平,应用领域非常广泛。很多人都希望将MATLAB强大的数值计算和分析功能应用于自己的项目和实践中,从而可以直观、方便地进行分析、计算和设计工作。编写这本书的目的,就是为了向读者全方位介绍MATLAB编程和开发技术。
* X' p+ B) v/ _3 q# \2 C
本书由浅入深,全面、系统地介绍了MATLAB基础、科学计算、数据可视化、编程、Simulink仿真技术、高级应用及常用的工具箱等内容。书中的每一章都提供了大量的实例程序,以方便读者进行练习和学习,每个例程都经过精挑细选,具有很强的针对性,适合各个阶段的读者学习。本书既注重基础知识,又非常注重实践,读者可以快速上手并迅速提高。通过本书的学习,读者不仅可以全面掌握MATLAB编程和开发技术,还可以提高快速分析和解决实际问题的能力,从而能够在最短的时间内,以最好的效果解决实际的工程和科学问题,提升工作效率。
/ L( k8 R5 J2 t5 M4 A& k
本书的特点
- w; G2 q2 k/ Y& v. c" I6 y/ {
1.每章都提供对应的教学视频,学习高效、直观
# e+ _3 B) Y3 Q( Z% C0 e
为了便于读者高效、直观地学习本书中的内容,作者对每章的重点内容都特意制作了教学视频,这些视频和本书的实例文件一起收录于配书DVD光盘中。
+ H, t( Y6 j5 Z( L
2.结构合理,内容全面、系统
( s6 Z6 }. e" U9 U
本书详细介绍了MATLAB编程、数据分析和处理、数据可视化、Simulin仿真、GUI编程开发及常用的工具箱,将实际项目开发经验贯穿于全书,思想和内容都非常丰富。在内容的安排上,则根据读者的学习习惯和内容的梯度合理安排,更加适合读者学习。
: ]2 o$ F/ X0 n( A5 ], w; f( x
3.叙述详实,例程丰富
. U9 N* f5 N2 Y. H% d
本书有详细的例程,每个例子都经过作者的精挑细选,有很强的针对性。书中的程序都有完整的代码,而且代码非常简洁和高效,便于读者学习和调试。读者也可以直接重用这些代码来解决自己的问题。
( ~: p& p$ U7 n. `' ?2 A* U
4.结合实际,编程技巧贯穿其中
6 K8 l, D1 O; h& p) Q$ k3 ]
MATLAB编程非常灵活,所以本书写作时特意给出了大量的实用编程技巧,这些技巧的灵活使用,将会让你事半功倍。
2 N0 N: {5 l* V8 T' c( C! Y
5.语言通俗,图文并茂
2 M( i/ X( S4 }0 ]( H! Z, b$ I
对于程序的运行结果,本书给出了大量的图片。本书不仅注重基础知识,而且非常注重实践,让读者快速上手,迅速掌握MATALB知识。
' c( F5 W1 [+ P8 T% `1 j7 R
本书内容体系
" s5 O3 a4 n& m, z/ M/ S
本书共23章,分为7篇,各篇对应的章节和具体内容介绍如下。
; i0 I* f a" m& ], [+ L, ]/ ^
第1篇包括第1~4章,主要介绍MATLAB的基础知识,讲解MATLAB 2010a的安装和基本操作,MATLAB的数据类型和运算符,数组和矩阵及字符串等操作。
( C+ ?0 G, O' R
第2篇包括第5~8章,主要介绍利用MATLAB进行科学计算,包括多项式、插值、极限等基本数据分析,微积分运算、概率论和数理统计,以及MATLAB的符号计算功能。
* _7 R+ n6 K0 ]. }2 b
第3篇包括第9章和第10章,主要介绍MATLAB的数据可视化,包括二维数据可视化和三维数据可视化,同时讲解了图形的标注、特殊图形的绘制,以及三维图形的视角、色彩和光照效果等。
: k+ s- L; @% ?: g" l% |
第4篇包括第11章和第12章,主要介绍MATLAB编程,包括脚本M文件和函数M文件,以及程序的流程控制,最后介绍了程序的调试、程序的性能分析和常用的编程技巧等。
- p/ P: ]0 |1 r
第5篇包括第13章和第14章,主要介绍利用Simulink进行系统的仿真,包括Simulink建模的原理、常用操作、基本模块库、子系统的封装技术、Simulink调试器和S-函数等。
/ a& R+ x& R P1 ~4 G
第6篇包括第15~18章,主要介绍MATLAB的一些高级应用,例如图形句柄、利用GUIDE建立图形用户界面、文件I/O操作及MATLAB的编译器等。
* J2 p& ?5 q8 R% e
第7篇包括第19~23章,主要介绍MATLAB的常用工具箱和与Word和Excel的接口,包括信号处理工具箱、小波分析工具箱、图像处理工具箱、神经网络工具箱。
0 K' k8 o2 t. ?0 E
本书读者对象
1 E$ Q o8 U( }3 n# j; ^% J; X
MATLAB初学者;
% z* H0 |" N/ V1 z/ ^+ j
想全面、系统地学习MATLAB的人员;
% R2 S: c u# f- e
MATLAB技术爱好者;
3 K- V8 x W. ?; k0 d
利用MATLAB进行编程和开发的技术人员;
& r0 x4 a% L D+ M5 L; S
大中专院校的学生和老师;
! N2 Y3 G! C9 E" T
相关培训学校的学员。
; g W. ]; w- u2 F
本书作者
) G. i. ^4 a: C" _" M
本书由东北大学机械电子工程研究所的赵海滨主笔编写。其他参与编写的人员有武冬、郅晓娜、孙美芹、卫丽行、尹翠翠、蔡继文、陈晓宇、迟剑、邓薇、郭利魁、金贞姬、李敬才、李萍、刘敬、陈慧、刘艳飞、吕博、全哲、佘勇、宋学江、王浩、王康、王楠、杨宗芳、张严虎、周玉、张平、张靖波、周芳、杨罡、于海滨、张晶杰、张利峰、杨景凤、陈锴、郑剑锋、叶佩思、张涛、赵东彪、王双。在此表示感谢!
* x5 {. @) ~) m W0 G8 h! B1 w
在此感谢我的父母、家人、研究所的老师,以及所有帮助过我的人。由于时间仓促,笔者水平有限,书中难免存在遗漏和不足之处,恳请广大读者提出宝贵意见。
2 C7 y; |4 h+ V% R
2 e3 X1 m b( A- D0 I5 e# Z" Y7 [" _
编著者
$ P! _6 y+ F0 Q' e. z
作者:
lili456
时间:
2012-5-28 11:26
第5章 MATLAB数据分析
j* H% l/ L$ @* _+ _- k
针对数据分析和处理,MATLAB提供了大量的函数,非常方便和灵活。本章将详细介绍如何利用MATLAB进行一些基本的数据分析,主要包括多项式及其函数,插值,以及函数的极限。MATLAB能够很好地解决多项式运算问题,这些函数用于多项式的建立、多项式求值、多项式乘法和除法、多项式求导和多项式展开和拟合等。插值函数,主要包括一维插值、二维插值、样条插值和高维插值等内容。MATLAB提供了非常强大的函数,可以非常方便和灵活地求得函数的极限。
7 P/ Y; L+ ]9 K( x2 W5 r7 n% Q
5.1 多项式及其函数
5 q, y* h* o1 E8 K+ T. F* s
MATLAB提供了一些处理多项式的专用函数,用户可以很方便地进行多项式的建立、多项式求值、乘法和除法运算,以及求多项式的导数和微分、多项式的根、多项式的展开和拟合等。
! Y0 B4 c4 e9 Y
5.1.1 多项式的建立
& Z4 C# F! D. r. e
MATLAB语言中,对于多项式 ,用多项式的系数按照降幂次序存放在向量 中。顺序必须是从高到低进行排列。例如,多项式 可以用系数向量 来表示。对多项式的操作就转换为对多项式系数向量的操作问题, 次多项式用一个 维的行向量表示,在多项式中缺少的幂次要用“0”来补齐。在MATLAB中,可以采用直接输入多项式系数建立多项式,也可以采用多项式的根来建立多项式,下面分别进行介绍。
) f: H1 _4 I- i0 R! B7 j
1.直接输入多项式系数法
" @) x5 p$ s+ M5 `, ~) f
MATLAB中多项式是以向量的形式存储的,输入向量后,MATLAB将按照降幂顺序自动把向量的元素分配给多项式各项的系数。该向量可以是行向量,也可以是列向量。
2 \6 D' x& T5 M; q
【例5-1】 使用向量来创建多项式 ,并进行显示。
. {2 t, D9 U; V
首先创建系数向量,然后使用函数poly2sym()将该向量转换为多项式,直接进行输出,也可以采用函数disp()进行多项式的显示,代码如下:
" G8 E2 t, ?3 N+ b" b
7 ?7 g; P# ^: A$ }* h6 y/ ]
>> clear all;
4 O+ d) n4 O4 F# P$ o. G
p1=[4 3 2 1];
3 M, k! X* j+ B) z9 b2 J
y=poly2sym(p1) %由向量创建多项式
# G$ ^5 W9 V4 O, Z
disp(y) %显示多项式
3 z/ r8 v. E& T1 H8 j. k
0 X' G0 ]" X+ `: A
运行程序,输出结果如下:
+ v5 c) Q/ A0 }1 I
/ @+ N. H w: _( g
y =
$ E, R% c- P9 ]9 Y _6 A1 k: f
4*x^3+3*x^2+2*x+1
9 Q, a7 n* t; u! r4 W) q
4*x^3+3*x^2+2*x+1
1 b' W2 Z/ v' x# I& A, U
8 u, m# ]2 N d7 B9 A
在MATLAB中,多项式的输出采用降幂形式。如果多项式的系数为0,则在输出的时候不显示,可采用函数disp()来显示多项式。
# ]+ \) I) m8 Y* O: S, \; [5 s
2.由多项式的根来建立多项式
5 F7 B8 n9 C+ T* k0 D# K
如果多项式的根已知,可以采用函数poly()建立多项式。其调用格式为p=poly(r),其中r为由多项式的根组成的向量,p为输出的多项式的系数向量。
4 h) l$ O& O8 l8 B8 u i
【例5-2】 已知某多项式的根为2、3、4,求该多项式。代码如下:
( W/ P$ V: M" H6 f4 R
7 M& w5 g Q( ?
>> r=[2 3 4];
3 @% Y" m1 |; b4 @* n' p
p=poly(r); %由多项式的根创建多项式
. o' N8 A! y2 a1 Z a3 t
y=poly2sym(p) %显示多项式
/ ?1 O* \. z0 \
& j' I: w: q: T( K, w9 V: o
运行程序后,输出结果如下:
0 P: ^: J( v7 ~2 Y/ Z g
# t$ j% Y& O/ k) @- F, d
y =
2 t, `- a( ^- ~' _! r! S, r( O1 o
x^3-9*x^2+26*x-24
" e }6 S' T0 j
8 F. Y) H. d' K6 a% U+ a$ J; `
在程序中,函数poly()通过多项式的根创建多项式,多项式的根向量为r。通过函数poly2sym()对创建的多项式进行显示。
, }# j A% x X! l0 S
5.1.2 多项式的求值与求根
5 f( ~ b/ I7 l+ C8 u# \. ]! {. p
在MATLAB中,通过函数polyval()和polyvalm()可以对多项式进行求值,两者的区别为前者是代数多项式求值,后者是矩阵多项式求值。通过函数roots()对多项式进行求根,如果已经知道多项式的根,也可以通过函数poly()建立相对应的多项式。下面分别进行 介绍。
1 b3 Y) S' ]" V L1 x9 I- b
1.多项式求值
, J2 F! K. ~( z
在MATLAB中,提供了两个函数对多项式进行求值,函数polyval()和polyvalm()。函数polyval()以数组或矩阵中的元素为计算单位,函数polyvalm()以矩阵为计算单位。
0 { m* t! c! o2 }% W
函数polyval()的调用方式为y=polyval(p, x),其中参数p为行向量形式的多项式,参数x为带入多项式的值。参数x可以是标量,也可以是向量和矩阵。如果参数x为向量或矩阵,则该函数对向量或矩阵中的每一个元素计算多项式的值,其返回值y也分别为向量或矩阵。
' H# v) [$ s9 n& d) W) ]# l1 S
【例5-3】 求多项式 在点2、3、4、5的值。代码如下:
, `5 ]: T; |5 |/ `6 j
, p7 S( v- h2 y, I4 V, P, _% V
>> clear all;
9 m. D1 E- i) q8 i
p=[1 -1 -6]; %多项式的系数向量
5 W$ T; I+ h! M$ f$ Y8 h1 k+ {
x=2:5;
5 X" i8 I! m. x1 L3 f$ Z4 s+ Y
y=polyval(p,x) %求多项式在x处的值
& b% O1 U; V2 _. c5 m
) k8 }( p+ H$ a7 u. t w
运行程序后输出结果如下:
7 l3 p1 C7 @1 S& G8 J
( Z* A; L9 U% M9 x9 h1 Y @
y =
$ P6 I; V3 e% E2 R, G+ _6 s9 g
-4 0 6 14
; x; f$ v" B: O& p( O" b& K# F
6 A( h. X! n( s2 `$ C" j9 o
函数polyvalm()的调用方式为y=polyvalm(p, x),其中参数p为行向量形式的多项式,参数x必须为方阵,输出结果仍然为方阵。
- M3 {, H' Z3 U" o; p3 Y4 O. V
【例5-4】 求 时,多项式 的值。
2 m, d, `& P. _. u5 i& }
利用函数polyvalm()时,输出结果计算公式为 ,常数值变为常数乘以相同阶次的单位矩阵。如果采用函数polyval(),计算矩阵中每个元素对应的多项式的值。下面分别采用函数polyvalm()和polyval()对该矩阵进行计算,代码如下:
5 o; C( z2 ]6 a
. d l" x- i6 d
>> x=[1 2 ;3 4];
) C: C3 T& Q- F, }3 ^+ f6 v* I
p=[2 3 4];
7 `1 W. {0 N7 U" Y
y1=polyvalm(p,x) %采用polyvalm()函数,以矩阵为计算单位
* B' q, P/ |. d& _" m! `; u
x=[1 2 ;3 4];
. W& W$ [& [ Z& u! q, T
p=[2 3 4];
: j2 r( r+ V4 r# M9 j+ E
y2=polyval(p,x) %采用polyval()函数,以矩阵的元素为计算单位
& V' `6 T: ` T% T
8 H: L: I+ a& R0 V
运行程序后,输出结果如下:
) X1 K' b& q4 \! Z: |- T* I
( d# ^& {' A9 c* S: N1 m
y1 =
" A y9 o' @$ u* M! l
21 26
R! @1 m8 U/ I+ u4 N" H+ p2 X
39 60
5 w9 h& Y) `5 L' u' H
y2 =
3 J3 a$ P- }8 n. R. {9 Y" N6 v0 S
9 18
, O( q1 q2 C" D b
31 48
. P+ w: u4 F4 G" X, E2 q& }' p2 [% W
1 Y: Q ]6 n4 S% [
当采用函数polyval()时,虽然输入参数是矩阵,但在计算时将矩阵的每个元素分别输入多项式,计算对应的输出。
) b D8 q' Y3 z6 Z
2.多项式求根
$ Z9 c+ n6 A, [' c1 Y7 \' M- h
在MATLAB中,利用roots()函数来求多项式的根,其调用格式为x=roots(p),其中参数p为多项式系数,输出参数x为多项式的根。对于n次多项式具有n个根,这些根可能是实根,也可能是共轭复根。在MATLAB中,如果已经知道多项式的根,可以利用函数poly()求多项式的系数,其调用格式为y=poly(x),输入参数x为根,输出参数y为得到的多项式系数向量。
; S: D! \! N# m4 l
【例5-5】 求多项式 的根,以及以4和5为根的多项式。代码如下:
' f$ t0 n0 V$ Y" i# @
, B- M0 z& H% ^" }. D# B
>> clear all;
0 q v' Y8 u) e5 c) A# U
p=[1 0 0 -1 -6];
) m1 e3 E9 X/ q1 L
x1=roots(p) %对多项式p求根
1 {) E8 @/ q3 j6 `
x2=[4 5];
/ m B% ]' {) @
y=poly(x2); %求以x2为根的多项式
9 t ~& s4 ]/ d& a) H1 e
y=poly2sym(y)
) X/ `) K# Y4 G5 u/ J
; A& ?% t" _, U+ l. I2 h
运行程序后,输出结果如下:
2 E" @! j! [3 ^2 |" D; H
0 Z# m2 |( T0 x; @3 Q0 p2 K
x1 =
3 v h) [- V$ I( P ]
1.6638
4 }- H, x6 g7 R1 B7 h6 _
-0.1021 + 1.5684i
, e, R# ]1 v) j5 P' c1 b- {
-0.1021 - 1.5684i
# [) N$ m6 w, P6 ]6 Z$ L
-1.4597
+ w+ D3 X; E8 }" |* D& x; e
y =
+ C1 x7 M* N' E
x^2 - 9*x + 20
' P1 Q: l+ B+ W& L5 X
~# y7 V0 M: h1 n% {
利用函数roots()计算多项式的根,非常方便,函数的返回值x是一个向量,其长度等于多项式的根的个数。
- r3 P# j" z. |( {! x
作者:
lili456
时间:
2012-5-28 11:28
本帖最后由 lili456 于 2012-5-28 11:31 编辑
O$ I- I" ]9 z8 C7 N
# L) F- u8 z5 e3 e u5 I
5.1.3 多项式乘法和除法
: q% O D' A. S: Y8 m6 B
在MATLAB中,使用函数conv()对多项式进行乘法运算。其调用格式为c=conv(a, b),a和b为多项式的系数向量,该函数实现向量a和b的卷积,在代数上相当于多项式a乘以多项式b,其中c为相乘所产生的多项式的系数向量。
2 y) H( {' g3 u% Z! g7 K0 h" n
【例5-6】 求多项式 和 的乘积。采用函数conv()实现,其MATLAB程序如下:
. a2 f, c* I+ n* r' v/ z3 t% N
; l3 E9 I% G7 T: f3 [ r
p1=[4 2 0 5]; %缺少的幂次用0补齐
% A4 o' M0 Z' c4 {9 [0 A- ^
p2=[5 8 1];
' X4 @" Q) h$ Q) z' F4 g2 x/ L
y1=poly2sym(p1)
- m& Z) x; d3 l" K7 K* M
y2=poly2sym(p2)
b" O% h2 u4 A- Z' M1 P! ?
p3=conv(p1,p2); %多项式相乘
* c0 F% I8 V9 U5 }
y=poly2sym(p3)
1 z2 R' ?+ n6 A# p
9 b: ]7 ^; M5 x1 t/ e4 {2 _( q
运行程序后,输出结果如下:
# w0 C# X4 {+ b/ j5 |
5 j8 O0 E- S% t
y1 =
7 _2 s: R, n& n+ O( ?
4*x^3+2*x^2+5
2 [! D% M0 ?% a, K+ O) ]3 J
y2 =
U: ^- Q% f) E5 b/ q
5*x^2+8*x+1
) W1 n9 ^, J3 U% I, T% C0 M2 ^
y =
$ R9 m ^; B2 {+ d0 ~6 V
20*x^5+42*x^4+20*x^3+27*x^2+40*x+5
6 q& l1 Z4 G0 [- z6 F0 A; O' b
8 D! x9 f* I' E( L1 ^ I+ o- y9 O
在MATLAB中,采用poly2sym()函数将向量作为多项式的系数进行输出,和其相对应的函数是sym2poly(),该函数将输入多项式的系数提取出来,作为向量进行输出。对于例5-6程序也可以用poly2sym()函数实现(和例5-6的计算结果相同),其MATLAB程序如下:
% C2 M* N1 e' F% ?/ \5 r
6 \4 B2 ^1 J3 T/ t/ Z/ M. ^/ N
>> syms x
9 r" n2 d4 B) Z# n% D
p1=sym2poly(4*x^3+2*x^2+5)
7 u' Q- Z, V0 k0 X% J* N/ G& u
p2=sym2poly(5*x^2+8*x+1)
4 v1 s6 W0 `% X. `& ^4 G
p3=conv(p1,p2); %多项式相乘
8 k* w0 B' R* E. E
y=poly2sym(p3)
# K2 p ^% u @4 `
/ [( a/ g% k' v6 a& F
运行程序后,输出结果如下:
% M2 o* L2 U8 Z* L2 @5 `4 q* k$ I
# E& U7 d# |& z# y& d2 ?
p1 =
+ y9 q$ F3 G+ }: ?1 a- j- O3 a
4 2 0 5
# T6 X6 O% N- Z+ s# _4 g
p2 =
+ |/ Z" O0 ]5 P# Z* ^- V- } }
5 8 1
% o( P+ Z* r+ S& C2 m- L- E1 h; O
y =
3 d' Y) l4 b% }7 ]" `; o9 a' S, f5 b
20*x^5+42*x^4+20*x^3+27*x^2+40*x+5
& t- [7 ~0 T: w/ Q2 B6 Z
6 V; G; s+ ^. O; s/ b
在MATLAB中,使用函数deconv()对多项式进行除法运算。其调用格式为[q, r] = deconv(a, b),实现解卷积运算。其中a和b为多项式的系数向量,在代数上相当于多项式a除以b,得到的商为q和余多项式r,它们之间的关系为a = conv(b, q) + r。
) s6 P% Z5 k5 z# B- i
【例5-7】 求多项式 除以多项式 的商和余数,代码如下:
! R* S3 P9 B0 t) h& v
7 P# P0 `; h7 f6 i$ b
>> p1=[4 3 8 1 4];
6 `& N9 J# W$ [& v- E9 D
p2=[2 3 1];
! g$ T. g0 f3 |) v& K8 C/ z u% g
[q,r]=deconv(p1,p2); %多项式p1除以p2
0 U) I- V8 {# `; F2 K
y1=poly2sym(q) %商
9 Z+ u" ?; ]8 a" h6 |
y2=poly2sym(r) %余数
0 o9 N o% H. Z1 ~4 e! v
! M8 _1 e2 _$ Q) @% J# W
运行程序后,输出结果如下:
8 s% g; V5 L. @1 L( _" J
+ O% j }4 i) n/ V% l/ W
y1 =
) W/ k, {1 P! H6 ^* o) N: ^
2*x^2-3/2*x+21/4
1 z' K: Z; i, O0 b6 v- H
y2 =
; f' P% z/ U' a" M* L9 [
-53/4*x-5/4
# D6 U3 ^( }- K6 d1 P$ j
/ H# I( G( f- ~/ f+ }# ]
5.1.4 多项式的导数和积分
+ w3 r0 f# o$ A& E+ _' p
在MATLAB中,通过函数polyder()和polyint()分别对多项式进行求导和积分。求导和积分互为逆运算,如果先对多项式进行积分,然后再求导,结果仍然为原来的多项式。下面对多项式的求导和积分分别进行讲解。
! w2 M& t4 ?8 q, R+ }
1.多项式的导数
* V# \3 C: y4 h I) f
在MATLAB中,采用函数polyder()进行多项式的求导,调用方式如下。
- r1 j& P0 b6 p P6 L/ l( S
y=polyder(p):对以向量p为系数的多项式求导。
0 C8 }! h" r: Y4 [, Z( G
y=polyder(a, b):对以a和b为系数的多项式乘积进行求导。
5 O- A' E& {4 o+ F
[q,d]=polyder(b, a):返回以b为系数的多项式除以以a为系数的多项式的商的导数,并以q/d格式表示。
, m0 [% j1 E% m: |% p1 \
【例5-8】 对多项式求导,其MATLAB程序如下:
4 K; b! T z/ }* ^' `
1 n% t7 q9 H& ~
>> p1=[4 3 2];
1 \+ F9 R! ]' a0 V+ ^$ ~
p2=[2 2 1];
0 `3 D Q, S3 j/ T* k
y1=polyder(p1); %对多项式p1求导
* ~# N9 T( D8 {1 d
y1=poly2sym(y1)
2 I9 p, }) L9 V7 h1 S
y2=polyder(p1,p2); %对多项式p1和p2的乘积求导
5 i/ L; i' }% {0 v, V( J
y2=poly2sym(y2)
~: q( G' ?6 i7 ]* R' s' U3 B
[q,d]=polyder(p1,p2); %对多项式p1除以p2的商求导
5 F8 L' a- w3 K9 Z
q=poly2sym(q)
0 J; @ @: a! j+ w$ L
d=poly2sym(d)
' o- [0 i. K' d
; P0 ^/ T7 r: A. u+ l$ ^: L
运行程序后,输出结果如下:
) h( @$ A6 W" @( g$ B, E. O
7 v, F+ W! h1 l5 Y/ |
y1 =
% ]- f, @8 ]; U
8*x + 3
7 M$ @& `' w- w" U
y2 =
6 F- q& O. S6 v4 k$ b8 L3 x1 r/ z
32*x^3 + 42*x^2 + 28*x + 7
) ?6 c+ u4 C4 J5 G: p. u8 Q
q =
: l& k* U' k5 ^: Q2 K
2*x^2 - 1
% }0 q* k9 X" Q# x- K- N/ t
d =
; P, t% u; @9 S# Q2 U, z
4*x^4 + 8*x^3 + 8*x^2 + 4*x + 1
7 w/ V8 {3 a. J: }3 q
: _" ^* \5 u% r9 a: ~( P
在MATLAB中,通过函数polyder()对多项式进行求导,通过对输入参数和输出参数个数的不同,对相对应的多项式进行求导计算。对于函数[q,d]=polyder(b, a),相当于对多项式 求导,结果为 。
) Q m% n& z, p! q
2.多项式的积分
* e7 u& U9 L. [! t [# _0 w
在MATLAB中,使用函数polyint()对多项式进行积分运算,其调用方式如下。
- s( b( u( a$ }% a8 w! T) d% d
polyint(p, k):返回以向量p为系数的多项式的积分,积分的常数项为k。
7 q5 o2 \ z1 ?. n, e7 \4 r7 [: u
polyint(p):返回以向量p为系数的多项式的积分,积分的常数项为默认值0。
: r1 ]7 l9 E: k
【例5-9】 对多项式 进行积分运算,其常数项分别为3和0,其实现的MATLAB程序代码如下:
7 O- P* C6 A u% M( X" O/ I( M
( a* B+ e5 s, \5 ?
p1=[3 2 2];
/ e; S% I2 z& M0 r1 | q
y1=polyint(p1,3); %对多项式p1进行积分,常数项为3
% H0 `/ y6 w) H* h# e$ @
y1=poly2sym(y1)
c$ a, C3 C3 ^! h
y2=polyint(p1); %对多项式p1进行积分,常数项为0
7 v7 Z, f* e& O0 a
y2=poly2sym(y2)
/ N: d4 ~/ k( N3 H; e% t
9 o' z2 ^4 B8 a( U; o
运行程序后,输出结果如下:
/ B& S# z- e. d( ]5 T! D0 `
7 h) B+ R+ l: A, R* H9 E) m6 A
y1 =
, j4 q/ d% G3 `7 Y/ o! [; a* o- ?
x^3 + x^2 + 2*x + 3
$ K v! o2 u& g6 C8 @6 m
y2 =
6 a" b1 J) S* o
x^3 + x^2 + 2*x
. d# M& U5 W! B6 K- D! r
; m1 A! S0 P5 Z# Q6 z0 ~
通过polyint()函数对多项式进行积分运算,积分的常数项通过参数k进行设置。如果不对参数k进行设置,则k取默认值0。
7 B- J. V2 f+ S1 B9 O; n* e
5.1.5 多项式展开
9 R( j% E1 w0 i" i
在MATLAB中,有理多项式用它们的分子多项式和分母多项式进行表示,函数residue()可以将多项式之比用部分分式展开,也可以将一个部分分式用多项式之比进行表示。函数residue()的调用方式如下。
% G% j4 D) W! j6 R6 w7 r
[r, p, k]=residue(b, a):求多项式之比b/a的部分分式展开,函数的返回值r是余数,p是部分分式的极点,k是常数项。如果多项式a没有重根,部分分式展开的形式如下:
& _' K1 S7 X" c( L" Y8 R& g
2 @7 E* \# M0 W
其中向量r、p的长度和向量a、b的长度有如下关系:
1 \1 E; s( {1 \4 ~
# [' Z* W" X- Q! c8 v0 B
当向量b的长度小于a时,向量k中没有元素,否则应满足:
% p, d. D! R# o) N# f5 Z
- N* f0 F1 D" T# X' w/ v$ ?
[b, a]=residue(r, p, k):通过部分分式得到多项式,该多项式的形式为b/a。
! U+ e* x$ y5 n+ l0 |
【例5-10】 将多项式 和 展开成几个简单多项式的和。其实现的MATLAB代码如下:
* k2 M1 @1 V: w5 O: T- m+ I9 w$ p0 i
2 O* Y0 R* G: F
>> clear all;
* O$ v* O- D6 u, i' h
clear all;
, b3 e2 b/ t: g- B- L
b=[1 -1 -7 -1]; %分子多项式
" L. m8 i9 c4 w3 j, J
a=poly([1;5;6]); %分母多项式
# _* v2 P9 G7 T' Z6 {/ ^& r
[r,p,k]=residue(b,a) %进行多项式b/a展开
" |. t0 b5 F* E- p4 x3 V* w$ ]
[b1,a1]=residue(r,p,k); %通过余数、极点和常数项来求多项式b1/a1
3 f. X; L" ^! L) w2 D4 t+ P$ p
b1=poly2sym(b1)
' O; V* R% K& o$ H
a1=poly2sym(a1)
/ N% u% P% m4 p3 Y/ _% f& F
b=[1 -1 -7 -1]; %多项式a有三重根
& G6 k1 F% {5 L3 P9 N7 c/ Z) M
a=poly([1;1;1]); %分母多项式
% c) k2 U8 g: P! C
[r,p,k]=residue(b,a) %展开多项式b/a
. D) i. C& D$ M, r4 ^. u+ k
. w) @ m3 K6 j3 k
运行程序后,输出结果如下:
2 d) q) I4 |; x5 u" C8 x0 n
4 |- M5 H" C. L9 [2 m7 b0 w4 C% d
r =
+ a2 k* u! u. [; U7 n
27.4000
* p; G7 R# r6 }
-16.0000
; D. P) q/ t+ q6 Q9 M
-0.4000
6 Z; p0 D- [4 V! ]1 Q6 U/ `3 l
p =
$ c. M" x; \; m& R: f3 T
6.0000
6 L. _# j1 a' r8 D! Q# X2 d$ q( k" L
5.0000
1 m. T% Z" B Y* S! q
1.0000
: t4 q9 I* T, L5 X" F
k =
& t, w l7 S" L
1
0 G; Q' i* z+ k- R
b1 =
, g6 x. U" z; E$ {% T. W
x^3 - x^2 - 7*x - 1
) p4 D% k, i' f8 A z0 x+ Z$ K; X
a1 =
! a; }7 U5 o# V' _9 R# b
x^3 - 12*x^2 + 41*x - 30
8 M/ O: w( v4 I' P; C
r =
. |% Z* [* W0 K0 e. n5 S
2.0000
; j# \' g& m$ S
-6.0000
& ?4 P0 ?$ G1 Y, X$ M
-8.0000
% L! _2 s) n" G* U
p =
6 @: w0 [* _. B' o8 F+ m
1.0000
: Q2 e% D0 A2 v8 F6 m4 Z" H& S: ?
1.0000
; T1 e0 v9 t2 T, Q' I
1.0000
; N9 _% t8 `- e7 a* q
k =
: F; p7 T, {+ Z0 s
1
/ C6 C M3 i6 Z. w5 p5 }5 @' y
* \& o1 Q* H" ^ r7 G# C5 s
利用函数[r, p, k]=residue(b, a)将多项式b/a进行展开,结果为余数、极点和常数项。对该多项式进行展开后的结果如下:
. q& A4 D- E2 {% ^; v
将余数、极点和常数项带入函数[b, a]=residue(r, p, k)中,可以求得对应的多项式,并通过b/a的形式给出。
1 D |! D6 _3 h9 e- o5 Y
当多项式a有三重根1时,对多项式进行展开后的结果如下:
: T# O3 M2 c+ }+ m
! e8 c9 b( G# }: m! t
7 e9 {* ]4 e, t( A w8 t6 Z
$ ]3 }$ J z5 F. `: R
0 J' t" Z1 c$ Q' p& V7 W
作者:
-7up℃.
时间:
2012-6-7 10:36
辛苦了,楼主。。。
作者:
lgmltxs
时间:
2012-6-7 10:55
恩恩,谢谢,我现在去下载看看吧
作者:
123456youare
时间:
2013-1-24 19:07
谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢
作者:
jagger
时间:
2014-9-22 00:44
要是分享电子书就好了
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5