Вы находитесь на странице: 1из 367

СИСТЕМА ИНЖЕНЕРНЫХ И НАУЧНЫХ РАСЧЕТОВ MATLAB 5.

Х:
В 2-Х Т. ТОМ 1.
Потемкин В. Г.

В книге дано наиболее полное описание системы MATLAB, предназначенной для выполнения
инженерных и научных расчетов и высококачественной визуализации получаемых результатов. Эта
система применяется в математике, вычислительном эксперименте, имитационном моделировании.
В пособии представлен исчерпывающий синтаксис команд, функций и операторов системы,
элементы программирования и отладки. Система расширена новыми типами объектов: многомерными
массивами, массивами записей и массивами ячеек. Существенно расширен раздел анализа и обработки
данных, включая аппроксимацию, интерполяцию и геометрический анализ данных, а также численное
интегрирование, решение систем обыкновенных дифференциальных уравнений, вычисление
минимумов и нулей функций, преобразование Фурье, свертку и фильтрацию. Раздел линейной алгебры
дополнен пакетом тестовых матриц. Существенно переработан раздел, связанный с описанием
графических команд и функций, за счет использования понятий дескрипторной графики. Для удобства
работы пособие снабжено индексным и предметным указателями.
Справочное пособие предназначено для инженеров, аспирантов и исследователей, выполняющих
научные исследования и инженерные разработки, а также для студентов при выполнении
исследовательских работ, курсовых и дипломных проектов.

ОГЛАВЛЕНИЕ Основные характеристики 81


ПРЕДИСЛОВИЕ Одномерные и двумерные массивы 83
ВВЕДЕНИЕ Многомерные массивы 92
1. ОПЕРАЦИОННАЯ СРЕДА СИСТЕМЫ 10 Функции для работы с массивами записей 107
MATLAB 5 Функции и команды обработки массивов 112
Командное окно 10 ячеек
Инструментальная панель 15 Объектно-ориентированное 122
Редактор/отладчик М-файлов 15 программирование
Рабочая область 16 Класс объектов inline 122
Загрузка и сохранение рабочей области 18 Переопределение классов 125
Список путей доступа 19 4. ОПЕРАТОРЫ, КОНСТАНТЫ, 133
Работа с файлами и оболочкой DOS 23 СЛУЖЕБНЫЕ СИМВОЛЫ И
Импорт и экспорт данных 23 ПЕРЕМЕННЫЕ
Использование памяти 27 Арифметические и логические операторы 134
Интерактивный доступ к справочной 28 Специальные символы, переменные и 139
информации и документации константы
Команда Help 28 Характеристики арифметики с плавающей 141
Команда lookfor 29 точкой
Меню Help 30 Функции вычисления времени и дат 144
2. СПРАВОЧНЫЕ И УПРАВЛЯЮЩИЕ 34 Форматы дат 145
КОМАНДЫ И ФУНКЦИИ Преобразование форматов дат 146
Справочные команды 34 День и дата 149
Характеристики операционной среды 47 Интервалы времени 153
системы MATLAB Функции истинности 154
Управляющие команды и функции 53 Операторы побитовой обработки 160
Управление рабочей областью 58 Операторы обработки множеств 164
переменных 5. ПРОГРАММИРОВАНИЕ И ОТЛАДКА 168
Управление путями доступа 64 Сценарии, функции и переменные 168
Управление командным окном 68 Вычисление и выполнение 177
Форматы вывода числовой информации 70 Управление выполнением программ 181
Работа с файлами и операционной 71 Операторы организации циклов 182
системой Условные выражения 184
3. ТИПЫ ДАННЫХ И ОБЪЕКТНО- 79 Передача аргументов М-функции 185
ОРИЕНТИРОВАННЫЙ ПОДХОД Организация диалога с пользователем 192
Числовые и логические массивы 81 Сообщения программы 195
Отладка и профилирование М-файлов 202 Специальные функции 238
Режим командной строки 202 7. МАТРИЦЫ И ЛИНЕЙНАЯ АЛГЕБРА 260
Режим графического интерфейса 208 Операции над матрицами как числовыми 260
Профилировщик М-файлов 209 массивами
6. МАТЕМАТИЧЕСКИЕ ФУНКЦИИ 216 Коллекция тестовых матриц 264
Элементарные функции 216 Пакет программ Test Matrix Toolbox 302
Функции обработки комплексных чисел 216 Характеристики матриц 308
Округление и модульная арифметика 220 Решение линейных уравнений 315
Теоретико-числовые функции 222 Вычисление собственных значений и 330
Трансцендентные функции 227 сингулярных чисел
Тригонометрические функции 230 Вычисление функций от матриц 347
Преобразования систем координат 237 Полиномы и операции над ними 354

ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ BITMAX, 161


!, 74 BITOR, 162
", 315 BITSET, 161
/, 315 BITSHIFT, 163
:, 83; 93 BITXOR, 163
[ , ], 84 BREAK, 186
BUILTIN, 179
A C
ABS, 216 CALENDAR, 149
ACOS, 233 CART2POL, 237
ACOSH, 233 CART2SPH, 237
ACOT, 236 CAT, 99
ACOTH, 236 CD, 72
ACSC, 232 CDF2RDF, 330
ACSCH, 232 CEDIT, 51
ADDPATH, 67 CEIL, 220
AIRY, 246 CELL, 113
ALL, 154 CELL2STRUCT, 118
ANGLE, 217 CELLDISP, 113
ANS, 140 CELLPLOT, 114
ANY, 154 CELLSTR,115
ASEC, 234 CHOL, 319
ASECH, 234 CHOLUPDATE, 320
ASIN, 231 CLASS,126
ASINH, 231 CLC, 68
ASSIGNIN, 180 CLEAR, 62
ATAN, 235 CLOCK, 146
ATAN2, 235 COLORDEF, 52
ATANH, 235 COMPAN, 264
B COMPUTER, 75
BALANCE, 334 COND, 318
BESSELH, 243 CONDEIG, 333
BESSELI, 241 CONDEST, 318
BESSELJ, 239 CONJ, 218
BESSELK, 241 CONV, 355
BESSELY, 239 COPYFILE, 73
BETA, 248 COS, 232
BETAINC, 248 COSH, 232
BETALN, 248 COT, 236
BITAND, 162 COTH, 236
BITCMP, 162 CPLXPAIR, 218
BITGET, 160 CPUTIME, 153
CROSS, 87 EXPM1, 347
CSC, 231 EXPM2, 347
CSCH, 231 EXPM3, 347
D EYE, 260
DATE, 145 F
DATENUM, 148 FACTOR, 222
DATESTR, 146 FEVAL, 178
DATETICK, 151 FIELDNAMES, 107
DATEVEC, 148 FILEPARTS, 78
DBCLEAR, 203 FILESEP, 77
DBCONT, 204 FIND, 86
DBDOWN, 206 FINDDEMO, 68
DBQUIT, 208 FIX, 220
DBSTACK, 205 FLIPDIM, 104
DBSTATUS, 206 FLIPLR, 262
DBSTEP,204 FLIPUD, 263
DBSTOP, 202 FLOOR, 220
DBTYPE,207 FLOPS, 143
DBUP, 206 FOR...END, 182
DEAL, 116 FORMAT, 70
DECONV, 356 FPRINTF, 198
DELETE,73 FULLFILE, 77
DEMO, 34 FUNCTION, 169
DET, 308 FUNM, 353
DIAG, 261 G
DIARY, 71 GALLERY, 273
DIR, 72 CAUCHY, 273
DISP, 198 CHEBSPEC, 274
DOC, 50 CHEBVAND, 274
DOCOPT, 50 CHOW, 274
DOS, 74 CIRCUL, 275
E CLEMENT, 276
ECHO, 69 COMPAR, 276
EDIT, 55 CONDEX, 277
EDITPATH, 68 CYCOL, 279
EIG, 330 DORR, 279
ELLIPJ, 249 DRAMADAH, 279
ELLIPKE, 251 FIEDLER, 280
END, 95 FORSYTHE, 281
EOMDAY, 151 FRANK, 282
EPS,141 GEARMAT, 283
ERF, 253 GRCAR, 283
ERFC, 253 HANOWA, 284
ERFCX, 253 HOUSE, 285
ERFINV, 253 INVHESS, 285
ERROR, 195 INVOL, 285
ERRORTRAP, 197 IPJFACT, 285
ETIME, 154 JORDBLOCK, 286
EVAL, 177 KAHAN, 286
EVALIN, 180 KMS, 286
EXIST, 156 KRYLOV, 287
EXIT, 58 LAUCHLI, 287
EXP, 228 LEHMER, 287
EXPINT, 256 LESP, 288
EXPM, 347 LOTKIN, 288
MINIJ, 289 INPUT, 192
MOLER, 289 INPUTNAME, 192
NEUMANN, 290 INTERSECT, 166
ORTHOG, 290 INV, 317
PARTER, 291 INVHILB, 266
PIE, 292 IPERMUTE, 102
POISSON, 292 IS*, 157
PROLATE, 292 ISCELL, 117
RANDHESS, 292 ISEMPTY, 83
RANDO,293 ISEQUAL, 83
RANDSVD, 293 ISFIELD, 111
REDHEFF, 294 ISLOGICAL, 83
RIEMANN, 295 ISNUMERIC, 82
RIS, 297 ISOBJECT, 127
SMOKE, 298 ISSTRUCT, 112
TOEPPD, 298 ISA, 127
TOEPPEN, 299 ISMEMBER, 164
TRIDIAG, 299 K
TRIW, 300 KEYBOARD, 193
WATHEN, 300 KRON, 87
WILK, 301 L
GAMMA, 254 LASTERR, 196
GAMMAINC, 254 LASTWARN, 197
GAMMALN, 254 LCM, 224
GCD, 223 LEGENDRE, 257
GENPATH, 66 LENGTH, 87; 95
GETENV, 74 LICENSE, 39
GETFIELD, 108 LINSPACE, 88
GLOBAL, 172 LISTS, 119; 174
GRAYMON, 53 LOAD, 61
GSVD, 344 LOG, 228
H LOG10, 230
HADAMARD, 264 LOG2, 142; 229
HANKEL, 265 LOGICAL, 81
HELP, 41 LOGM, 350
HELPDESK, 43 LOGSPACE, 88
HELPINFO, 41 LOOKFOR, 43
HELPWIN, 42 LSCOV, 329
HESS,336 LU, 322
HILB, 266 M
HOME, 68 MAGIC, 267
HORZCAT, 129 MATLABPATH, 49
HOSTID, 39 I MATLABRC, 47
IF...ELSE...ELSEIF...END, 184 MATLABROOT, 67
IMAG, 217 MEMORY, 62
IND2SUB, 96 MENU, 194
INF, 140 MESHGRID, 88
INFERIORTO, 128 METHODS, 128
INFO, 34 MEX, 57
INLINE MFILENAME, 174
/ARGNAMES, 123 MISLOCKED, 177
/CHAR, 124 MKDIR, 74
/FORMULA, 124 MLOCK, 176
/INLINE, 122 MOD, 221
/VECTORIZE, 124 MORE, 69
MUNLOCK, 176 QZ, 339
N R
NAN, 141 RAND, 90; 106
NARGCHK, 189 RANDN, 91; 106
NARGIN, 189 RANK, 310
NARGOUT, 189 RAT, 224
NCHOOSEK, 226 RATS, 224
NDGRID, 101 RCOND, 310
NDIMS, 101 REAL, 217
NEXTPOW2, 229 REALMAX, 143
NNLS, 328 REALMIN, 143
NORM, 308 REM, 221
NORMEST, 309 REPMAT, 85; 99
NOW, 145 RESHAPE, 85; 98
NULL, 311 RESI2, 358
NUM2CELL, 117 RESIDUE, 358
O RETURN, 188
ONES, 90; 106 RMFIELD, 110
ORTH, 312 RMPATH, 67
P ROOTS, 357
PACK, 63 ROSSER, 270
PARETO, 213 ROT90, 263
PARTIALPATH, 65 ROUND, 220
PASCAL, 268 RREF, 314
PATH,64 RSF2CSF,337
PATH2RC, 66 RUN, 181
PATHDEF, 64 S
PATHSEP, 65 SAVE, 60
PATHTOOL, 68 SCHUR, 337
PAUSE, 193 SCRIPT, 168
PCODE, 56 SEC, 233
PERMS, 226 SECH, 233
PERMUTE, 102 SETDIFF, 166
PERSISTENT, 174 SETFIELD, 109
PI, 141 SETXOR, 167
PINV, 327 SHIFTDIM, 103
PLANEROT, 336 SIGN, 222
POL2CART, 237 SIN, 230
POLY, 357 SINH, 230
POLYDER, 356 SIZE, 87; 94
POLYEIG, 341 SPH2CART, 238
POLYVAL, 354 SPRINTF, 198
POLYVALM, 354 SQRT, 227
POW2, 142; 228 SQRTM, 351
PRIMES, 222 SQUEEZE, 105
PRINTOPT, 51 STARTUP, 48
PROFILE, 210 STRUCT, 107
PROFSUMM, 212 STRUCT2CELL, 118
PWD, 71 SUB2IND, 97
Q SUBSASGN, 131
QR, 323 SUBSCRIBE, 38
QRDELETE, 323 SUBSINDEX, 132
QRINSERT, 323 SUBSPACE, 313
QRUPDATE, 325 SUBSREF, 130
QUIT, 58 SUPERIORTO, 129
SVD, 342 &, 138
T I, 138
TAN, 234 ~, 138
TANH, 234 and, 138
TEMPDIR, 76 not, 138
TEMPNAME, 77 or, 138
TEST MATRIX TOOLBOX, 302 xor, 138
FV, 303 М
GERSH, 304 Мнимая единица, 140
PS, 305 I, 140
PSCONT, 306 J, 140
SEE, 302 О
TIC, 154 операции над массивами, 134
TOC, 154 .', 135
TOEPLITZ, 271 .", 135
TRACE, 311 .*, 135
TRIL,261 ./, 135
TRIU, 262 Л 135
TRY ... CATCH ...END, 188 +, 134
TYPE, 54 Операции над матрицами, 134
U ', 135
UNION, 165 ", 135
UNIQUE, 165 *, 134
V /,135
А
VANDER, 271 , 135
VARARGIN, 120; 190 +, 134
VARARGOUT, 121; 191 Операции отношения, 137
VER, 39 ~=, 137
VERSION, 40 <,137
VERTCAT, 129 <=, 137
W ==, 137
WARNING, 195 >, 137
WEB,54 >=, 137
WEEKDAY, 150 eq, 137
WHAT, 44 ge, 137
WHATSNEW, 36 gt, 137
WHICH, 45 le, 137
WHILE ... END, 183 It, 137
WHITEBG, 53 ne, 137
WHO, 58 С
WHOS, 58 Специальные символы, 139
WILKINSON, 272 ', 139
WORKSPACE, 64 !, 140
Z %, 140
ZEROS, 89; 105 0, 139
А ,, 139
Арифметические операторы, 134 ., 139
', 134 .., 139
*, 134 ..., 139
/, 134 :, 139
‘, 134 ;, 139
+, 134 [ ], 139
Л =, 139
Логические операции, 138
ПРЕДИСЛОВИЕ
Эта книга предназначена для тех, кто стремится решать проблемы и задачи, возникающие в физике,
химии, биологии, технике и других прикладных сферах, наиболее эффективным образом. Система
инженерных и научных расчетов MATLAB широко распространена в университетах всего мира. Автору
известно, что она применяется во многих технических университетах и нашей страны.
Язык, используемый в системе MATLAB, можно сравнить с языком BASIC по простоте его
применения и принципу непосредственного исполнения (интерпретации). Ориентация на работу с
массивами делает его удобным и естественным инструментом обработки экспериментальных данных.
Так же, как и язык BASIC, который постепенно трансформировался в объектно-ориентированный язык
Visual Basic, язык MATLAB стремится стать универсальным языком технических вычислений. Об этом
свидетельствует создание компилятора языка и математических библиотек на языках С и C++,
включение таких элементов объектно-ориентированного программирования, как дескрипторы
графических объектов, понятие классов и методов их переопределения.
На решениях математических задач с помощью системы MATLAB следует остановиться особо.
Будучи ориентированной на работу с реальными данными, эта система выполняет все вычисления в
арифметике с плавающей точкой в отличие от систем компьютерной алгебры REDUCE, MACSYMA,
DERIVE, Maple, Mathematica, Theorist, где преобладает целочисленное представление и символьная
обработка данных. Каждое из этих направлений характеризуется присущими только ему методами и
алгоритмами решения задач, а их перенос из одной среды в другую может быть затруднительным, а
зачастую и невозможным. Поэтому для решения проблем на стыке символьных вычислений и
вычислений с плавающей точкой в состав интегрированной системы MATLAB включен пакет
прикладных программ Extended Symbolic Mathematics Toolbox, реализующий интерфейс с системой
символьных вычислений Maple. Намечается тенденция к включению элементов распараллеливания на
уровне М-файлов. С этой целью фирмой Alpha Data Parallel Systems, Ltd. (Великобритания) предложены
аппаратные и программные решения с использованием ускорительных плат на базе процессоров Alpha
AXP и специального программного пакета ParaMat. Это означает, что применение алгоритмов с
естественным распараллеливанием может быть реализовано в рамках операционной среды системы
MATLAB.
В данном справочном пособии представлены операторы, функции и команды языка MATLAB,
классифицированные по областям применения -линейная алгебра, анализ и обработка данных,
вычисления с разреженными матрицами, визуализация результатов и презентационная графика. Для
удобства книга снабжена индексным указателем, который включает более 800 конструкций языка.
Наблюдаемая тенденция развития языка MATLAB связана с включением в его состав таких объектов,
как многомерные массивы, массивы элементов разных типов, структуры, и превращением его в
объектно-ориентированный язык с возможностью переопределения классов и методов. Это, с одной
стороны, усложняет язык программирования, позволяя разработчикам прикладных систем создавать
эффективные и независимо исполняемые приложения, с другой стороны, упрощает работу с
отдельными разделами за счет создания разработчиками системы MATLAB специализированных
интерфейсов, которые предоставляют пользователю удобные средства выбора и правильного
применения специфических команд и функций этого раздела. Примерами таких разработок являются
решатели дифференциальных уравнений, диалоговый графический редактор, средства написания
электронных учебников.