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