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