Числени методи и програмиране на Fortran

ПРЕВОД ОТ АНГЛИЙСКИ Б. Н. КАЗАК

РЕДАКТИРАНО И ДОПЪЛНЕНО ОТ B. M. NAIMARK

Второ издание, стереотипно

ИЗДАТЕЛСТВО "МИР" Москва 1977г

Книгата е ръководство за структурата и използването на алгоритмичния език FORTRAN при решаване на изчислителни задачи на съвременни електронни компютри.

Специфичността и простотата на транслаторите за FORTRAN, ефективността на преведените програми и техниката за откриване и оценка на грешки благоприятно отличават този език от другите алгоритмични езици. Всичко това доведе до широкото въвеждане на FORTRAN в техниките за програмиране в чужбина.

В същото време книгата описва внимателно подбрани числени методи, чието приложение е илюстрирано с множество практически примери.

Комбинацията от числени методи и основи на програмирането на FORTRAN прави тази книга полезна за широк кръг читатели, както за студенти и докторанти от технически колежи, така и за инженери и специалисти по теория на програмирането.

Редакция на литературата по математически науки

Глава 2.Грешки2.1. Въведение 2.2. Относителни и абсолютни грешки 2.3. Грешки, съдържащи се в оригиналната информация 2.4. Грешки при ограничаване 2.5. Грешки при закръгляване 2.6. Разпространение на грешка 2.7. Графики на изчислителни процеси 2.8. Примери 2.9. Напомняне за програмиста Упражнения

Глава 3.Практическо изчисляване на функции3.1. Въведение 3.2. Степенен ред 3.3. Полиноми на Чебишев 3.4. Икономизиране на степенните редове 3.5. Изчисляване на серии 3.6. Рационални приближения и последователни дроби 3.7. Елементарни функции 3.8. Практически пример 3: Грешки при директно изчисляване на синуса отТейлър ред Упражнения

Глава 4.Някои прости програми4.1. Въведение 4.2. Казус 4: Изчисляване на колона 4.3. Честотна характеристика на сервомеханизма. Отстраняване на грешки в програмата 4.4. Казус 6: Вероятностен интеграл

Глава 5.Числено решаване на уравнения5.1. Въведение 5.2. Метод на последователни приближения 5.3. Подобрен метод на последователни приближения 5.4. Метод на Нютон-Рафсън 5.5. Случай на почти равни корени 5.6. Сравнение на методите и техните грешки при закръгляване 5.7. Корени на полиноми 5.8. Влияние на неточността на коефициентите на полином 5.9. Системи от уравнения 5.10. Сложни корени 5.11. Намиране на началното приближение 5.12. Казус 7: Процес на израстване на монокристален пара Упражнение

Глава 6.Числено интегриране6.1. Въведение 6.2. Трапецовидно правило 6.3. Ограничаваща грешка за трапецовиден метод 6.4. Грешки при закръгляване при използване на метода на трапеца 6.5. Преминаване на екстраполация до границата 6.6. Правилото на Симпсън 6.7. Метод на Гаус 6.8. Числени примери и сравнение на методи 6.9. Казус 8: Светимост на електрическата крушка Упражнение

Глава 7.Индексни променливи и DO оператор7.1. Дефиниции 7.2. Примери за използване на променливи с индекси 7.3. За какво са индексни променливи? 7.4. Оператор DIMENSION 7.5. Формуляри за валидни индекси 7.6. DO изявление 7.7. Допълнителни дефиниции 7.8. Правила за използване на оператора DO 7.9. Допълнителни примери за използване на израза DO 7.10. Казус 9: Линейна интерполация Упражнения

Глава 8.Системи линейни алгебрични уравнения8.1. Въведение 8.2. Метод на изключване (метод на Гаус) 8.3. Грешки при закръгляване 8.4. Усъвършенстване на решение 8.5. Влияние на коефициентните грешки. Достижима точност на решението 8.6. Итеративни методи за решаване на системи от линейни уравнения 8.7. Сравнение на методите 8.8. Казус 10: Напасване на крива с помощта на метода на най-малките квадрати. Упражнения

Глава 9.Функции, подпрограми и спомагателни оператори9.1. Въведение 9.2. Функции, предоставени в програмата за преводач 9.3. Аритметичен оператор-функция 9.4. Подпрограми FUNCTION и SUBROUTINE 9.5. Таблица на основните характеристики на функции и подпрограми 9.6. Твърдения за ЕКВИВАЛЕНТНОСТ и ОБЩИ 9.7. Казус 11: Решаване на квадратни уравнения с помощта на подпрограми. Упражнения

Глава 10.Обикновени диференциални уравнения10.1. Въведение 10.2. Решение на серия Тейлър 10.3. Методи на Runge-Kutta 10.4. Анализ на грешките, възникващи при използване на методите Runge-Kutta 10.5. Методи за прогнозиране и корекция 10.6. Анализ на грешките при използване на прогнозни и коригиращи методи 10.7. Достижима точност 10.8. Сравнение на методите 10.9. Казус 12: Летене на свръхзвуков самолет. Упражнения

Глава 11.Частични диференциални уравнения11.1. Въведение и някои дефиниции 11.2. Разностни уравнения 11.3. Елиптични уравнения 11.4. Решение на елиптичното диференциално уравнение 11.5. Хиперболични уравнения 11.6. Решение на хиперболичното диференциално уравнение 11.7. Параболични уравнения 11.8. Решение на параболичното диференциално уравнение 11.9. Казус 13: Разпределение на температурата в квадратна тръба. Упражнения

Приложение 1.Обобщение на входните и изходните методи във FORTRANA.1.1. Основна информация A.1.2. Списък на променливите във входно-изходния оператор A.1.3. Изявление FORMAT A.1.4. Допълнителни техники за конструиране на оператора FORMAT A.1.5. Операции с лента

Приложение 2.Някои общи математически формулиОтговори на упражнения

Допълнение.Резюме на основните правила за програмиране на FORTRAN. Б. М. НаймаркD.1. Основни символи на езика FORTRAN E.2. Числа Д.З. Променливи без индекси E.4. Индекси E.5. Променливи с индекси E.6. Изрази E.7. Функции E.8. Оператори E.9. Описателни оператори E.10. Изпълними оператори E.11. Бележки

Тази книга трябва да даде на читателя, специализиран в инженерство или наука, основните концепции за численото решаване на различни проблеми на съвременни електронни цифрови компютри.

Фокусът на книгата е върху внимателно подбрани и много полезни практически методи за изследване на различни числени проблеми, срещани в съвременната наука и технологии. Методите, представени в книгата, са полезни не само сами по себе си, но и подготвят читателя за изучаването на по-сложни методи и помагат да ги разбере в цялата им дълбочина. Точно както един физик трябва да има интуитивно разбиране за инерцията, преди да може да изучава механиката в дълбочина, така изучаването на числените методи трябва да предхожда задълбочено изучаване на числения анализ. Следователно целта на книгата е двойна: да даде на читателя необходимите знания за практически изчисления и да постави основите за по-нататъшно изучаване на темата.

Комбинирането на числени методи и програмиране на FORTRAN е много повече от просто публикуване на две обикновени книги в една обща корица. Информацията за програмиране на Fortran се появява в книгата в редав които това се изисква за различни класове задачи и за съответните методи за числено решаване. Основните примери за програмиране също в повечето случаи илюстрират определени числени методи. Също така е много важно съвременните концепции да се използват в цялата книга. Например, много важен въпрос относно грешките при закръгляване се третира от гледна точка на аритметика с плаваща запетая (аритметика на нормализирани числа с постоянен брой значими цифри в мантисата), а графичните представяния на изчислителните процеси, въведени там, улесняват пълното разбиране.

Числените методи, включени в книгата, са внимателно прегледани за тяхната пригодност за използване на цифрови компютри.

Тъй като изучаването на интерполацията не беше от голяма методологична стойност за тази книга и тъй като интерполацията е много по-малко важна при машинните изчисления, отколкото при ръчните изчисления, въпросите, свързани с нея, се обсъждат накратко. Друга традиционна тема също не е отразена на страниците на тази книга – операциите с матрици. Причината за това е, че много от предвидените читатели на книгата не са запознати с теорията на матриците и линейните трансформации.

Читателят, който е изучавал тази книга, разбира се, не може да се счита за специалист по числен анализ, отчасти точно поради липсата на тези традиционни теми. Въпреки това, ние сме убедени, че има много смисъл да изучаваме материала в тази книга, преди да се захванем с подробно изучаване на по-пълни курсове по числен анализ: материалът на книгата предоставя достатъчна основа за това.

Главите, посветени на числените методи, в повечето случаи започват с геометрично разглеждане на проблема. По правило такова тълкуване позволява да се визуализира значението на проблема и да се очертаят начини за неговото решаване. След това основните резултатисе потвърждават аналитично и накрая методът се конкретизира с помощта на практически примери. Надяваме се този подход да доведе до най-бързото и задълбочено разбиране на материала.

Тринадесет казуса са включени в книгата по три причини. Първо беше необходимо да се илюстрира материалът, свързан с числените методи и програмирането. Второ, беше необходимо да се покаже как различните аспекти на числените методи и програмирането си взаимодействат и се комбинират помежду си. (В това отношение няколко практически примера показват последствията от несериозния подход към грешките в изчисленията.) Трето, беше необходимо да се даде представа за диапазона от области на науката и технологиите, в които могат да се използват компютри. Съдържанието на практическите примери обаче е такова, че разбирането на материала не зависи от степента на запознаване на читателя с тази област на науката или технологията. В много случаи книгата възпроизвежда печат върху изходна форма на компютър.

В книгата има над 300 упражнения, като отговорите на много от тях са дадени в края на книгата. В някои упражнения се изисква да се приложат току-що изучените числени методи, в други се прилагат и развиват методи за програмиране, в трети се изисква да се докажат някои положения, свързани с материала на книгата, или да се развият тези положения. Много упражнения дават на любознателния читател възможност да получи резултати за себе си, които са напълно разкрити едва в следващите глави.

Въз основа на една от ранните версии на тази книга беше изнесен курс от лекции на групи студенти, вариращи от студенти от технически факултети до завършили математически факултети. Естествено, учителят трябва да избере теми и да модифицира примери, за да включи курсасъобразени с интересите и възможностите на групата. Подборът на упражнения може значително да помогне за това, особено след като броят и разнообразието на упражненията напълно позволяват да се направи този подбор.

Въз основа на тази книга може да се изгради едносеместриален курс от лекции (четири часа седмично), ако студентите имат възможност да работят на компютър и ако се очаква студентите да изпълняват достатъчно голям брой упражнения. От друга страна, книгата може да се използва и като ръководство за много по-кратък курс; за да направите това, можете да се ограничите до по-малък брой упражнения или да пропуснете някои глави. Освен това главите, посветени на числените методи, не са много тясно свързани помежду си. Учител, който иска например да обърне по-малко внимание на глава 3 за изчисляване на функции и да концентрира вниманието на аудиторията върху системи от линейни уравнения, може доста лесно да направи това. Има много други начини да изградите курс около тази книга.

Оценяваме високо сътрудничеството на онези, които ни помогнаха да напишем и подготвим тази книга: г-ца Агнес Кълке и Джеймс Гризмър от IBM, Уилям Найбек от Инженерния колеж в Милуоки, Фред Грийнбъргър от RAND Corporation, Джак Холингсуърт и Пол МакСлойн от Политехническия институт Rennselaer, Юджийн Голуб и Харолд Р. ван Зорен от Станфордския университет и Чарлз Дейвидсън от Университета на Уисконс в. Помощта на тези специалисти беше много ценна за нас: с участието си те помогнаха за оформянето на тази книга в много много важни детайли. И накрая, изказваме своята благодарност на IBM и по-специално на д-р Херман X. Голдщайн, без чиято подкрепа и участие тази книга нямаше да бъде написана.

Даниел Д. МакКракен Уилям С.Дорн

Изтеглете книгатаMcCracken D., Dorn W.Числени методи и програмиране на Fortran. Издателство "Мир", Москва, 1977 г