ebook img

Введение в Octave для инженеров и математиков. PDF

368 Pages·2012·3.341 MB·Russian
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Введение в Octave для инженеров и математиков.

В серии: Библиотека ALT Linux Введение в Octave для инженеров и математиков Е.Р.Алексеев, О.В.Чеснокова Москва ALT Linux 2012 m УДК 519.67 ББК 22.1 А47 Введение в Octave для инженеров и математиков: А47 / Е.Р.Алексеев, О.В.Чеснокова — М.: ALT Linux, 2012. — 368с.: ил. — (Библиотека ALT Linux). ISBN 978-5-905167-10-2 КнигапосвященасвободнораспространяемомупакетуOctave.Чи- тательдержитврукахпервоеописаниепакетанарусскомязыке.Опи- сан встроенный язык пакета, подробно рассмотрены графические воз- можностипакета. Подробнорассмотренорешениеразличныхинженерныхиматема- тическихзадач.Особоевниманиеуделенооперациямсматрицами,ре- шению нелинейных уравнений и систем, дифференцированию и инте- грированию, решению дифференциальных уравнений, оптимизацион- нымзадачамиобработкеэкспериментальныхданных(интерполяциии аппроксимации). Наряду со встроенным языком пакета описана среда QtOctave. Сайткниги:http://www.altlinux.org/Books:Octave Книгаадресованастудентам,преподавателяминженерныхимате- матическихспециальностей,атакженаучнымработникам. УДК 519.67 ББК 22.1 По вопросам приобретения обращаться: ООО «Альт Линукс» (495)662-38-83 E-mail: [email protected] http://altlinux.ru Материалы,составляющиеданнуюкнигу,распространяютсянаусловияхли- цензии GNU FDL. Книга содержит следующий текст, помещаемый на первую страницу обложки: «В серии “Библиотека ALT Linux”». Название: «Введение в Octave для инженеров и математиков». Книга не содержит неизменяемых раз- делов. Авторы разделов указаны в заголовках соответствующих разделов. ALT Linux — торговая марка компании ALT Linux. Linux — торговая марка Линуса Торвальдса. Прочие встречающиеся названия могут являться торговыми марка- мисоответствующихвладельцев. ISBN 978-5-905167-10-2 © Е.Р.Алексеев,О.В.Чеснокова,2012 © ALTLinux,2012 m Оглавление Введение 6 Глава 1. Общие сведения, установка 8 1.1 Принципы работы с интерпретатором . . . . . . . . . 8 1.2 Установка Octave . . . . . . . . . . . . . . . . . . . . 14 1.3 Графическая оболочка QtOctave. . . . . . . . . . . . 17 Глава 2. Основы работы 24 2.1 Элементарные математические выражения . . . . . . 24 2.2 Текстовые комментарии . . . . . . . . . . . . . . . . 25 2.3 Представление вещественного числа . . . . . . . . . 25 2.4 Переменные . . . . . . . . . . . . . . . . . . . . . . . 28 2.5 Функции . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.6 Массивы . . . . . . . . . . . . . . . . . . . . . . . . . 40 2.7 Символьные вычисления . . . . . . . . . . . . . . . . 43 Глава 3. Программирование 46 3.1 Основные операторы языка программирования . . . 46 3.2 Обработка массивов и матриц . . . . . . . . . . . . . 56 3.3 Обработка строк . . . . . . . . . . . . . . . . . . . . . 62 3.4 Работа с файлами . . . . . . . . . . . . . . . . . . . . 65 3.5 Функции . . . . . . . . . . . . . . . . . . . . . . . . . 79 Глава 4. Построение графиков 87 4.1 Построение двумерных графиков . . . . . . . . . . . 87 4.2 Построение трёхмерных графиков . . . . . . . . . . . 109 4.3 Анимация . . . . . . . . . . . . . . . . . . . . . . . . 125 4.4 Графические объекты. . . . . . . . . . . . . . . . . . 127 Глава 5. Задачи линейной алгебры 141 5.1 Ввод и формирование векторов и матриц . . . . . . 141 5.2 Действия над векторами . . . . . . . . . . . . . . . . 144 m 4 Оглавление 5.3 Действиям над матрицами . . . . . . . . . . . . . . . 147 5.4 Функции для работы с матрицами и векторами . . . 152 5.5 Решение некоторых задач алгебры матриц . . . . . . 179 5.6 Решение систем линейных уравнений . . . . . . . . . 185 5.7 Собственные значения и собственные векторы . . . . 198 5.8 Норма и число обусловленности матрицы . . . . . . 201 5.9 Задачи линейной алгебры в символьных вычислениях 203 Глава 6. Векторная алгебра и аналитическая геометрия 206 6.1 Векторная алгебра . . . . . . . . . . . . . . . . . . . 206 6.2 Аналитическая геометрия . . . . . . . . . . . . . . . 223 Глава 7. Нелинейные уравнения и системы 241 7.1 Решение алгебраических уравнений . . . . . . . . . . 241 7.2 Решение трансцендентных уравнений . . . . . . . . . 249 7.3 Решение систем нелинейных уравнений . . . . . . . . 252 7.4 Решение уравнений и систем в символьных переменных . . . . . . . . . . . . . . . . . . . . . . . 259 Глава 8. Интегрирование и дифференцирование 262 8.1 Вычисление производной . . . . . . . . . . . . . . . . 262 8.2 Исследование функций . . . . . . . . . . . . . . . . . 266 8.3 Численное интегрирование . . . . . . . . . . . . . . . 269 Глава 9. Решение обыкновенных дифференциальных уравнений 280 9.1 Общие сведения о дифференциальных уравнениях . 280 9.2 Численные методы решения дифференциальных уравнений . . . . . . . . . . . . . . . . . . . . . . . . 282 9.3 Реализация численных методов . . . . . . . . . . . . 289 9.4 Решение систем дифференциальных уравнений . . . 297 9.5 Функции для решения дифференциальных уравнений 298 Глава 10. Решение оптимизационных задач 304 10.1 Поиск экстремума функции . . . . . . . . . . . . . . 304 10.2 Решение задач линейного программирования . . . . 311 Глава 11. Метод наименьших квадратов 326 11.1 Постановка задачи . . . . . . . . . . . . . . . . . . . 326 ВведениевOctaveдляинженеровиматематиков ©2012АлексеевЕ.Р. m Оглавление 5 11.2 Подбор параметров экспериментальной зависимости 327 11.3 Уравнение регрессии и коэффициент корреляции . . 332 11.4 Нелинейная корреляция . . . . . . . . . . . . . . . . 334 11.5 Подбор зависимостей методом наименьших квадратов 335 Глава 12. Интерполяция функций 346 12.1 Постановка задачи . . . . . . . . . . . . . . . . . . . 346 12.2 Интерполяция сплайнами . . . . . . . . . . . . . . . 354 Список литературы 362 Предметный указатель 363 m Введение Книга, которую держит в руках читатель, посвящена GNU Octave—однойизсамыхинтересныхприкладныхпрограммдляре- шения инженерных и математических задач. GNU Octave—этосвободныйинтерпретирующийязыкдляпро- ведения математических вычислений. По возможностям и качеству реализацииинтерпретатораязыкOctaveможносравниватьспропри- етарнойпрограммойMATLAB,причёмсинтаксисобоихязыковочень схож. Существуют версии языка для различных дистрибутивов GNU Linux(ALTLinux,Debian,Ubuntu,Mandrivaидр.)идляОСWindows. На наш взгляд, GNU Octave больше ориентирован на работу в Linux. Работа в ОС Windows возможна, но пользователю Windows надо быть готовым работать с простым текстовым редактором и ко- мандной строкой. Когда авторы начинали знакомиться с GNU Octave, основной проблемойбылоотсутствиехорошегорусскоязычноговведениявэтот язык. Наша книга является попыткой восполнить этот пробел. По- этому большое внимание было уделено самому языку (глава 3), опе- рациям с матрицами (глава 5) и графическим возможностям пакета (глава 4). Наш многолетний опыт преподавания информационных дисци- плин в Донецком национальном техническом университете говорит нам о том, что студенту и инженеру наряду с описанием функций, предназначенных для решения той или иной задачи, не лишним бу- дет напомнить и математическую постановку решаемой задачи, а за- частую и численные методы решения задачи. Именно поэтому в ряде глав приведены не только описания функций, но и описаны числен- ные методы решения задач. m Введение 7 Чтокасаетсяграфическихоболочек,такихкакqtOctave,Xoctave иKalculus,намиприняторешениекраткоописатьнаиболеестабиль- нуюизних,qtOctave,аосновноевниманиевкнигеуделитьсобствен- но языку. Мы считаем, что GNU Octave — это в первую очередь мощныйинтерпретирующийязык.Знаяего,пользовательсможетра- ботать с любой графической оболочкой. Авторы выражают благодарность компании ALT Linux за много- летнее сотрудничество и возможность издать очередную книгу. Авторы заинтересованы в общении с читателями. Мы ждём ваши замечания и отзывы по адресам [email protected] и [email protected]. Донецк, апрель 2012 m Глава 1 Общие сведения, установка 1.1 Принципы работы с интерпретатором Octave — высокоуровневый интерпретируемый язык программи- рования,предназначенныйдлярешениязадачвычислительноймате- матики. В состав пакета входит интерактивный командный интер- фейс (интерпретатор Octave). Интерпретатор Octave запускается из терминала ОС Linux или из его порта в Windows. После запус- ка Octave пользователь видит окно интерпретатора (см. рис. 1.1). В окне интерпретатора пользователь может вводить как отдель- ные команды языка Octave, так и группы команд, объединяемые в программы. Если строка заканчивается символом «;», результаты на экран не выводятся. Если же в конце строки символ «;» отсутствует, Рис. 1.1. Окно интерпретатора Octave m 1.1. Принципы работы с интерпретатором 9 Рис. 1.2. Использование символов «;» и «%» в Octave результаты работы выводятся на экран (см. рис. 1.2). Текст в строке после символа % (процент) является комментарием и интерпретато- ромнеобрабатывается1 (см.рис.1.2).Рассмотримнескольконеслож- ных примеров. Пример 1.1. Решить систему линейных алгебраических уравне- ний (СЛАУ) 3x +5x 7x =11 1 2 3 − 3x 4x +33x =25  1 2 3 − 22x1 11x3+17x3 =22 − Возможны два варианта решения любой задачи в Octave: 1. Терминальный режим. В этом режиме в окно интерпретатора последовательно вводятся отдельные команды. 2. Программныйрежим.Вэтомрежимесоздаётсятекстовыйфайл с расширением .m, в котором хранятся последовательно выпол- няемыекомандыOctave.Затемэтоттекстовыйфайл(програм- манаязыкеOctave)запускаетсянавыполнениевсредеOctave. Для решения СЛАУ в окне интерпретатора Octave последова- тельно введём следующие команды (листинг 1.1): % Определениематрицыкоэффициентовсистемылинейныхуравнений. A=[3 5 −7;3 −4 33;22 −11 17]; b=[11; 25; 22]; % ВекторправыхчастейСЛАУ. x=A^(−1)∗b % Решениесистемыметодомобратнойматрицы. x = 1.56361 2.55742 1Строкикомментариевавторыкнигибудутиспользоватьдляпоясненияфунк- цийитекстовпрограмм. m 10 Глава 1. Общие сведения, установка Рис. 1.3. Программа для решения примера 1.1 0.92542 octave−3.2.3:27> A∗x % Проверка. ans = 11.000 25.000 22.000 Листинг 1.1. Решение СЛАУ примера 1.1 В переменной ans хранится результат последней операции, если команданесодержитзнакаприсваивания.Следуетпомнить,чтозна- чениепеременнойansизменяетсяпослекаждоговызовакомандыбез операции присваивания. Теперь рассмотрим, как решить эту же задачу в программном ре- жиме. Вызовем любой текстовый редактор2, например gedit, в окне которого последовательно введём следующие команды: A=[3 5 −7;3 −4 33;22 −11 17] b=[11; 25; 22] x=A^(−1)∗b A∗x Сохранимвведённыекомандыввидефайласрасширением.m,на- пример, /home/evgeniy/prim1_1.m (рис. 1.3). Теперь эту программу необходимозапуститьнавыполнениеизинтерпретатора.Для этогов окне интерпретатора введём команды: cd ’/home/evgeniy’% Переходвкаталог,гдехранитсяпрограмма. prim1_1 % Запускпрограммы. 2Именно текстовый редактор! Не путайте с текстовыми процессорами типа MicrosoftWordилиOpenOffice.org/LibreOfficeWriter. ВведениевOctaveдляинженеровиматематиков ©2012АлексеевЕ.Р. m

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.