- •1. Обзор языка.
- •1. Ввод/вывод.
- •2. Операторы.
- •3. Выражения.
- •4. Имена.
- •5. Типы.
- •6. Строки.
- •7. Символы.
- •2. Термины и концепции.
- •1. Запись программ.
- •1.1. Буквенноцифровые символы.
- •1.2. Пробелы.
- •1.3. Позиции.
- •2. Строки и операторы.
- •2.1. Начальные строки.
- •2.2. Строки продолжения.
- •2.3. Строки коментария.
- •2.4. Операторы описания данных и порядок следования операторов.
- •3. Типы данных.
- •3.1. Целые типы данных.
- •3.2. Тип действительных данных обычной точности ieee.
- •3.3. Действительный тип данных ieee двойной точности.
- •3.4. Формат десятичных чисел с плавающей точкой обычной и двойной точности.
- •3.5. Комплексные типы данных.
- •3.6. Логические типы данных.
- •3.7. Символьный тип данных.
- •4. Имена.
- •4.1. Имена Фортрана по умолчанию.
- •5. Выражения.
- •5.1. Арифметические выражения.
- •5.2. Деление целых.
- •5.3. Преобразования типов арифметических операндов.
- •5.4. Символьные выражения.
- •5.5. Выражения отношения.
- •5.6. Логические выражения.
- •5.7. Приоритеты операторов.
- •5.8. Правила вычисления выражений.
- •5.9. Ссылки на элемент массива.
- •3. Операторы.
- •1.Категории операторов.
- •1.1.Операторы program, subroutine, function и block data.
- •2.Операторы описания.
- •3.Cправочник операторов.
- •Часть 4 "Система ввода/вывода".
- •1.Записи.
- •2.Файлы.
- •2.1.Xapaктepиcтики фaйлoв.
- •2.2.Ocoбeннocти внутpeниx фaйлoв.
- •2.3.Устройства.
- •2.4.Наиболее широко используемыe cтpуктуpы фaйлoв.
- •2.5.Дpугиe cтpуктуpы фaйлa.
- •2.7.Совмещение фaйлa.
- •3.Oператоры ввода/вывода.
- •4.Форматный ввод/вывод.
- •4.1.Взаимодeйcтвиe фopмaтa и cпиcкa ввoдa/вывoдa.
- •4.Bвод/вывод списком.
- •5. Программы, подпрограммы и функции.
- •1. Основная программа.
- •2. Подпрограммы.
- •3. Функции.
- •3.1. Внешние функции.
- •3.2. Встроенные функции.
- •3.3. Функции-операторы.
- •4. Параметры.
- •5. Передача целых параметров.
- •1. Обзор языка.
- •2. Особенности графики системы matlab
- •3. Построение графика функций одной переменной
- •4. Построение в одном окне графиков нескольких функций
- •5. Графическая функция fplot
- •6. Столбцовые диаграммы
- •7. Построение трехмерных графиков
- •7. Контекстное меню графиков
- •8. Форматирование линий и маркеров для графика нескольких функций
- •9. Построение графиков отрезками прямых
- •10. Столбцовые диаграммы
- •11. Графики с зонами погрешности
- •12. График проекций векторов на плоскость
- •13. Построение графиков поверхностей
- •13. Tрехмерные контурные графики
5. Передача целых параметров.
Переменная INTEGER*2 не может быть передана формальному параметру INTEGER*4, а переменная INTEGER*4 не может быть передана формальному параметру INTEGER*2. Передача неверного типа переменной порождает ошибку компиляции. Вы должны использовать встроенные функции INT4 и INT2. Также при действии $STORAGE:4 по умолчанию выражения с параметрами INTEGER*2 будут иметь результат типа INTEGER*4. Следующая программа:
SUBROUTINE S(I)
INTEGER*2 I
. . .
END
INTEGER*2 J,K
CALL S(J+K)
дает ошибку, поэтому J+K - INTEGER*4. Вы должны написать вызов подпрограммы так
CALL S(INT2(J+K))
Компилятор при оптимизации понижает степень точности арифме- тики, если это не влияет на результат и не установлено $DEBUG. Например, если не установлено $DEBUG, арифметика в
INTEGER2 I,J,K
I=J+K
- 16-ти разрядная арифметика, даже если определено $STORAGE:4. Использование $STORAGE:4 не действует на выражения INTEGER*2 при использовании в нем только операторов +, - или *, поэтому что ре- зультат их одинаковый как в 16-разрядной, так и в 32-разрядной арифметике.
Целые параметры, которые передаются величинами (смотрите "Атрибуты" в части 7 для определения атрибутов, которые позволяют передавать параметры величинами), не являются объектами таких же ограничений. Параметр обрабатывается, как если бы ему была присво- ена временно переменная соответствующего типа, и временная пере- менная затем передается как параметр. Правила присвоения для величин параметров те же самые, что и при присваивании. Вы можете, например, передать действительную величину целому параметру.
MATLAB
1. Обзор языка.
В наши дни компьютерная математика получила должную известность и интенсивно развивается как передовое научное направление на стыке математики и информатики. Это нашло отражение в крупной монографии и в целом ряде книг и обзоров автора данной книги, начавшего осваивать это направление еще в начале 80-х гг. прошлого века.
Программируемые микрокалькуляторы и персональные компьютеры уже давно применяются для математических расчетов. Для подготовки программ использовались различные универсальные языки программирования. В начале 90-х гг. на смену им пришли специализированные системы компьютерной математики (СКМ).
Среди них наибольшую известность получили системы Eureka, Mercury, Mathcad, Derive, Mathematica 2/3/4, Maple V R3/R4/R5 и Maple 6 и др. Каждая из этих систем имеет свои достоинства и недостатки и заслуживает отдельного рассмотрения. Повышенный интерес наших пользователей к подобным системам подтверждают результаты выпуска в последние годы целого ряда книг на русском языке, посвященных указанной теме. В списке литературы данной книги даны лишь основные из этих публикаций. За рубежом по каждой серьезной СКМ на web-сайтах их разработчиков можно найти перечни, включающие сотни наименований книг.
В данной книге рассматривается система MATLAB®, прошедшая многолетний путь развития от узко специализированного матричного программного модуля, используемого только на больших ЭВМ, до универсальной интегрированной СКМ, ориентированной на массовые персональные компьютеры класса IBM PC и Macintosh и рабочие станции UNIX и имеющей мощные средства диалога, графики и комплексной визуализации . MATLAB представляет собой хорошо апробированную и надежную СКМ, рассчитанную на решение самого широкого круга математических задач с представлением данных в универсальной (но не навязываемой пользователям) матричной форме, предложенной фирмой Math Works, Inc.
Система MATLAB предлагается разработчиками (фирма Math Works, Inc.) как лидирующий на рынке, в первую очередь в системе военно-промышленного комплекса, в аэрокосмической отрасли и автомобилестроении, язык программирования высокого уровня для технических вычислений с большим числом стандартных пакетов.прикладных программ. Система MATLAB вобрала в себя не только передовой опыт развития и компьютерной реализации численных методов, накопленный за последние три десятилетия, но и весь опыт становления математики за всю историю человечества. Около миллиона легально зарегистрированных пользователей уже применяют эту систему. Ее охотно используют в своих научных проектах ведущие университеты и научные центры мира. Популярности системы способствует ее мощное расширение Simulink, предоставляющее удобные и простые средства, в том числе визуальное объектно-ориентированное программирование, для моделирования линейных и нелинейных динамических систем, а также множество других пакетов расширения системы.
К сожалению, в России неоправданно мало публикаций по системе MATLAB. Помимо обзоров и первой книги по этой системе, в течение ряда лет серьезных изданий, посвященных MATLAB, практически не было. Наконец, в 1997-1999 гг. появились книги, содержащие перевод части фирменных справочников по системе MATLAB 4.0/5.2. При этом книга описывает лишь отдельные средства упрощенной студенческой версии системы MATLAB 5.0. Стали появляться и книги по пакетам расширения этой системы, и учебные курсы по системе MATLAB. Между тем за рубежом системе MATLAB посвящены сотни книг (их список можно найти на Web-узле фирмы Math Works, Inc., разработавшей эту систему), и еще сотни книг посвящены системе Maple V Release 5, ядро которой входит в состав пакетов расширения MATLAB 6.
Таким образом, интерес к системе MATLAB остается у нас неудовлетворенным. Особенно это относится к учебной литературе по новейшим реализациям системы MATLAB, в первую очередь MATLAB 6. Система MATLAB 6.0 появилась в конце 2000 г., а система MATLAB 6.1 (в которой весьма существенно переработаны пакеты расширения, но в ядро системы добавлены лишь две команды для работы со звуком и команда strfind, дополняющая возможности подробно описанной в книге функции findstr) — в июле 2001 г. MATLAB 6 является последней (на момент подготовки рукописи этой книги) реализацией системы MATLAB. В новой реализации системы не только расширены ее возможности, но и радикально переработан и улучшен интерфейс пользователя, существенно обновился состав пакетов расширений.
Хотя учебный курс по MATLAB 5.3 был выпущен в начале 2001 г., на момент подготовки рукописи данной книги публикаций по новейшей версии MAT-LAB 6 на русском языке вообще не было. Настоящая книга призвана ликвидировать этот пробел. Она подготовлена на основе существенно переработанного учебного курса, но в отличие от него посвящена уже новейшей 12-й реализации системы MATLAB, известной также как MATLAB 6. MATLAB 6 сразу получила широкую известность у нас в России. Как это ни печально, известность пришла во многом благодаря появлению большого числа «пиратских» компакт-дисков, содержащих полные и вполне работоспособные поставки MATLAB 6.0 со всеми ее дорогостоящими пакетами расширения (но, естественно, без русскоязычной документации).Данная книга представляет собой учебный курс по системе MATLAB 6, построенный в виде доступных и органично связанных друг с другом уроков. Описание пакетов расширения MATLAB ввиду большого объема материала по ним было решено вынести в отдельную книгу. При этом предполагаются ее существенно переработанные переиздания, посвященные каждой из версий MATLAB 6. Кроме того, существует учебный курс издательства «Питер» по визуальному моделированию в среде MATLAB, фокусирующийся на средствах Simulink [44]. Впрочем, некоторые примеры применения пакетов расширения в данную книгу включены, как и довольно подробный обзор этих пакетов (урок 23).
Отличия новой реализации MATLAB 6 от предшествующих версий 5.* настолько значительны, что вряд ли стоит пользоваться настоящим изданием для знакомства с предшествующими версиями MATLAB. Читателям, использующим MATLAB 5.*, в том числе любителям Macintosh, VAX/micro VAX и SunOS, можно рекомендовать уже упомянутую ранее изданную литературу по этим системам, все еще верой и правдой служащим многим пользователям. MATLAB 5 — развивающаяся система, которая будет обслуживать пользователей RISC- и VAX-станций Compaq в системах реального времени, пользователей компьютеров Apple, компьютеров на базе процессоров семейства Motorola 68000 и всех тех, кому важна совместимость с Macintosh, Next или RISC-серверами и рабочими станциями под управлением OpenVMS. Новейшие патчи к системам MATLAB 5 можно всегда получить с web-узла фирмы Math Works.
Оглавление книги может служить подробным тематическим указателем, а помещенный в конце книги алфавитный указатель поможет читателю быстро найти интересующие его сведения. Операторы и функции MATLAB 6 описаны настолько подробно, что книга может служить руководством пользователя по этой системе и выполнять функции самоучителя. В целом книга имеет вполне законченный характер и полезна всем, кто собирается изучать или уже использует любую реализацию системы MATLAB 6.
