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