Text
                    Численные методы
Использование MATLAB
Третье издание
ДЖОНГМЭТЬЮЗ • КУРТИСД.ФИНК


Численные методы Использование MATLAB Третье издание
Numerical Methods Using MATLAB Third Edition John H. Mathews California State University Fullerton Kurtis D. Fink Northwest Missouri State University /4 Prentice Hall, Upper Saddle River, NJ 0 7458
г т Численные методы Использование MATLAB Третье издание Джон Г. Мэтьюз Университет штата Калифорния, Фуллертон Куртис Д. Финк Северо-западный университет штата Миссури Под редакцией доктора физ-мат. наук, проф. Ю..В. Козаченко с/? та Издательский дом "Вильяме" Москва ¦ Санкт-Петербург ¦ Киев 2001
ББК 32.973.26-018.2.75 М97 УДК 681.3.07 Издательский дом "Вильяме" Перевод с английского Л. Ф. Козаченко Под редакцией докт.физ.-мат.наук, проф. Ю. В. Козаченко По общим вопросам обращайтесь в Издательский дом "Вильяме" по адресу: inf oOwilliamspublishing. com, http: //www. williamspublishing. com Мэтьюз, Джон, Г., Финк, Куртис, Д. М97 Численные методы. Использование MATLAB, 3-е издание. : Пер. с англ. — М. : Издательский дом "Вильяме", 2001. — 720 с. : ил. — Парал. тит. англ. ISBN 5-8459-0162-6 (рус.) В данной книге, ориентированной на пакет MATLAB, изложены основные методы чис- численного анализа: численные решения нелинейных уравнений, систем линейных уравнений, дифференциальных уравнений и т. д. Все методы иллюстрируются примерами, в которых используются программы из пакета MATLAB. Книга также содержит приложение, которое знакомит читателя с основными принципами построения пакета MATLAB. Книга рассчитана на студентов технических вузов, прослушавших курс высшей матема- математики и имеющих представление о программировании. Ее целесообразно использовать как учебник при чтении курсов, посвященных численным методам. Книга выдержала три изда- издания и широко используется в высших учебных заведениях США и других стран. ББК 32.973.26-018.2.75 Все названия программных продуктов являются зарегистрированными торговыми марками соответствую- соответствующих фирм. Никакая часть настоящего издания ни в каких целях не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами, будь то электронные или механические, включая фотокопирование и запись на магнитный носитель, если на это нет письменного разрешения издательства Prentice Hall, Inc. Authorized translation from the English language edition published by Prentice Hall, Inc, Copyright © 1999 All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from the Publisher. Russian language edition published by Williams Publishing House according to the Agreement with R&I Enterprises International, Copyright © 2001 ISBN 5-8459-0162-6 (рус.) © Издательский дом "Вильяме", 2001 ISBN 0-13-270042-5 (англ.) © Prentice Hall, Inc., 1999
Содержание Предисловие 1 Предварительные сведения 12 1.1 Некоторые сведения из математического ^анализа 13 1.2 Двоичные числа 25 1.3 Анализ ошибок 37 Решение нелинейных уравнений f(x) = О 54 2.1 Использование итерации для решения уравнения х = д(х) 55 2.2 Методы интервалов локализации корня 66 2.3 Начальное приближение и критерий сходимости 78 2.4 Метод Ньютона-Рафсона и метод секущих 55 2.5 Процесс Эйткена и методы Стеффенсена и Мюллера (оптимальные) 707
Содержание 3 Решение систем линейных уравнений АХ = В 119 ЗЛ Введение в теорию векторов и матриц 119 3.2 Свойства векторов и матриц 128 3.3 Верхняя треугольная система линейных уравнений 140 3.4 Метод исключения Гаусса и выбор главного элемента 145 3.5 Разложение на треугольные матрицы 162 3.6 Итеративные методы для линейных систем 178 3.7 Итерация для нелинейных систем: методы Ньютона и Зейделя (оптимальные) 190 4 Интерполяция и приближение полиномами 210 4.1 Ряды Тейлора и вычисление функций 211 4.2 Введение в интерполяцию 224 4.3 Приближение Лагранжа 232 4.4 Полиномы Ньютона 247 4.5 Полиномы Чебышева (произвольные) 257 4.6 Приближение Паде 270 5 Построение кривой по точкам 279 5.1 Линия, построенная методом наименьших квадратов 280 5.2 Построение кривой по точкам 291 5.3 Интерполирование сплайнами 308 5.4 Ряды Фурье и тригонометрические полиномы 327 6 Численное дифференцирование 340 6.1 Приближение производной 341 6.2 Формулы численного дифференцирования 359 7 Численное интегрирование 374 7.1 Введение в квадратуру 375
Содержание 7.2 Составная формула трапеций и Симпсона 387 7.3 Рекуррентные формулы и интегрирование по Ромбергу 402 7.4 Адаптивная квадратура 417 7.5 Интегрирование по Гауссу-Лежандру (произвольный выбор) 424 8 Численная оптимизация 434 8.1 Минимизация функции 435 9 Решение дифференциальных уравнений 461 9.1 Введение в теорию дифференциальных уравнений 462 9.2 Метод Эйлера 468 9.3 . Метод Гюна 479 9.4 Метод рядов Тейлора 487 9.5 Методы Рунге-Кутта 495 9.6 Методы прогноза-коррекции 511 9.7 Системы дифференциальных уравнений 525 9.8 Краевые задачи 536 9.9 Метод конечных разностей 543 10 Решение дифференциальных уравнений в частных производных 553 10.1 Гиперболические уравнения 555 10.2 Параболические уравнения 566 10.3 Эллиптические уравнения 578 11 Собственные значения и собственные векторы 595 11.1 Однородные системы: задача о собственных значениях 596 11.2 Метод степеней 610 11.3 Метод Якоби 623 11.4 Собственные значения симметричных матриц 637
Содержание Приложение. Введение в MATLAB 653 Ссылки на рекомендуемуюлитературу 662 Список литературы 665 Ответы к упражнениям 678 Предметный указатель 703
Предисловие Эта книга содержит фундаментальное введение в численный анализ и предна- предназначена для студентов старших курсов, специализирующихся в области матема- математики, физики, техники или изучающих методы программирования и компьютеры. Она рассчитана на читателя, который знаком с основными понятиями математиче- математического анализа и прослушал курс программирования. Книга содержит достаточно материала для чтения курсов, рассчитанных на семестр или на год. Короче говоря, здесь такое количество материала, что преподаватель может выбрать тему курса в соответствии со своими интересами. Построение книги таково, что студенты различных уровней подготовки могут найти для себя в каждом разделе много интересного и полезного. Приведен широ- широкий спектр примеров и задач, который позволит совершенствовать мастерство как в теоретическом, так и в практическом аспектах численного анализа. Результаты вычислений на компьютере приведены в виде таблиц и, где это возможно, гра- графиков, таким образом, результаты численных приближений наглядны и их легче интерпретировать. Для реализации приведенных численных алгоритмов исполь- используются программы пакета MATLAB. Основное внимание уделено объяснению, почему численные методы работают и ограничениям при их применении. Для этого требовалось найти равновесие между изложением теории, и анализом ошибок и желанием сделать книгу удобо- удобочитаемой. Анализ ошибок каждого метода представлен таким образом, чтобы его можно было выполнить вручную, и так, чтобы читатель не пропускал его. Матема- Математические обоснования каждого метода изложены с использованием элементарных результатов из анализа и должны быть понятны студентам. Использование МАТ-
10 Предисловие LAB дает возможность студентам совершенствовать свое мастерство в научном программировании. Короткие численные упражнения можно выполнить с помощью карманного калькулятора/компьютера, а более длинные — с помощью программ MATLAB. Авторы оставляют преподавателям возможность руководить студентами и самим определять меру полезности численных вычислений. Каждый преподаватель мо- может выбрать задания, которые возможно выполнить на имеющихся компьютерах. Авторы приветствуют работу с библиотекой программ MATLAB. Эти материалы могут быть использованы, чтобы помочь студентам углубить знания в области численного анализа с помощью лабораторных упражнений на компьютере. По сравнению со вторым изданием третье издание книги содержит некоторые добавления и улучшения. Например, к разделу о собственных векторах и соб- собственных значениях был добавлен QR метод. Новое в этом издании — это после- последовательное использование программного обеспечения MATLAB. В приложении приведено введение в MATLAB. Везде добавлены примеры с использованием MATLAB, а полные программы MATLAB приведены в каждом разделе. Ранее авторы предполагали, что студенты обладают превосходными навыками работы с пакетами программ. Однако многие студенты, изучающие этот курс, не достигли высокого уровня в программировании (курс программирования читают им позже). MATLAB стал инструментом почти для всех инженеров и прикладных математиков и в его новую версию включены улучшенные программы. Поэтому авторы думают, что студентам будет легче и полезнее использовать прелагаемую в нашей книге версию MATLAB. Благодарности Мы хотели бы выразить нашу признательность всем, кто способствовал со- созданию различных изданий этой книги. Я (Джон Мэтьюз) благодарю студентов Калифорнийского университета в Фуллертоне. Я благодарю моих коллег Стефена Гуда (Stephen Goode), Мэтью Коши (Mathew Koshy), Эдварда Саботка (Edward Sabotka), Гарри Шульца (Harris Schultz) и Су Танг Тана (Soo Tang Tan) за их по- помощь в подготовке первого издания. Кроме того, я благодарю Рассела Эгберта (Russell Egbert), Вильяма Герхарта (William Gearhart), Рональда Миллера (Ronald Miller) и Грега Пирса (Greg Pierce) за их помощь в подготовке третьего издания. Я также благодарен Джеймсу Фриелю (James Friel), руководителю математического отделения университета в Фуллертоне, штат Калифорния, за поддержку. Много полезных рекомендаций дали рецензенты первого издания Вальтер Пат- терсон, III (Walter M. Patterson, III) из Ландерского колледжа, Джорж Миллер (George В. Miller) из Центрального университета штата Коннектикут, Питер Джин- го (Peter J. Gingo) из Акронского университета, Майкл Фридман (Michael A. Freed- man) из университета в Фербенксе, штат Аляска, и Кеннет Буб (Kenneth P. Bube) из Калифорнийского университета в Лос-Анджелесе. За рецензирование второго
Предисловие 11 издания мы благодарим Ричарда Бамби (Richard Bumby) из Рутджеровского уни- университета, Роберта Карри (Robert L. Curry), армия США; Брюса Эдвардса (Bruce Edwards), университет штата Флорида, и Дэвида Хилла (David R. Hill), универси- университет в Темпле. За третье издание мы выражаем благодарность Тиму Сойеру (Tim Sauer), уни- университет Джорджа Мэйсона; Джеральду Питстику (Gerald M. Pitstick), универси- университет штата Оклахома; Виктору де Брюннеру (Victor De Brunner), университет штата Оклахома; Джорджу Траппу (George Trapp), университет штата Западная Вирджи- Вирджиния; Тэду Ярику (Tad Jarik), университет штата Алабама в Хантсвилле; Джефри Скроггу (Jeffrey S. Scroggs), университет штата Северная Каролина; Курту Джор- Джорджу (Kurt Georg), университет штата Колорадо, и Джеймсу Креддоку (James N. Craddock), университет в Карбондейле штата Южный Иллинойс. Предложения по улучшению изложения и добавления к книге всегда привет- приветствуются и их можно сообщить непосредственно авторам книги. John H. Mathews Kurtis D. Fink Mathematics Department Department of Mathematics California State University Northwest Missouri State University Fullerton, CA 92634 Maryville, MO 64468 mathewsQfullerton.edu kfinkSmail.nwmissouri.edu
Предварительные сведения Рассмотрим функцию f(x) = cos(a;). Ее производная равна ff(x) = — sin(x), и ее первообразная функция — F(x) = sin(x) + С. Эти формулы известны из анализа. Первая используется для определения тангенса угла наклона га = /'(яо) кривой у = f(x) в точке (xq; /(#о))> а последняя — для вычисления площади под кривой для а < х < Ь. Тангенс угла наклона в точке (тг/2;0) равен т = /'(тг/2) = —1 и может использоваться для нахождения касательной в этой точке (рис. 1.1 (а)): GГ ж-2 Рис. 1.1. (а). Касательная к кривой у = cos(x) в точке (тг/2,0) 12
1.1. Некоторые сведения из математического анализа у у = cos(x) 13 0,5 1,0 1,5 X 2,0 Рис. 1.1. (Ь). Площадь под кривой у = cos (ж) на интервале [0;тг/2] Площадь под кривой для 0 < х < тг/2 вычисляется интегрированием (см. рис. l.lCb»: площадь = Г cos = F(^) -F(Q) = sinf|) -0 = 1. 1.1. Некоторые сведения из математического анализа Предполагается, что читателю хорошо известны обозначения и сущность пред- предмета, соответствующие уровню знаний студента, который прослушал курс матема- математики в техническом вузе. Предполагается знание теории пределов последователь- последовательностей, свойств непрерывных функций, теории интегрирования и дифференци- дифференцирования, а также теории рядов. В дальнейшем мы постоянно будем использовать следующие утверждения. Пределы и непрерывность Определение 1.1. Пусть f(x) определена на множестве S действительных чисел. Тогда говорят, что функция / имеет предел в точке х = хо, и он равен A) lim f(x) = L, X—>XQ если для любого е > О существует такое S > О, что для любого х ? 5, такого, что 0 < \х — хо\ < 5, выполняется неравенство \f(x) — L\ < e. В обозначениях /i-приращений равенство A) имеет вид B) \imf(xo /*0
14 Глава 1. Предварительные сведения Определение 1.2. Предположим, что f(x) определена на множестве 5 действи- действительных чисел, и пусть хо Е S. Тогда / непрерывна в х = жо, если C) Дт /(*) = /(*<,)• Говорят, что функция / непрерывна на 5, если она непрерывна в каждой точке х Е S. Обозначим через Cn(S) множество всех таких функций /, что / и ее первые п производных непрерывны на S. Когда S — интервал, допустим, [а; 6], используется обозначение Сп[а\Ь]. Например, рассмотрим функцию f(x) = ж4/3 на интервале [—1;1]. Очевидно, что f(x) и ff{x) = D/3)х1/г непрерывны на [—1; 1], в то время как f"{x) = D/9)ж~2/3 не непрерывна в точке х = 0. ^ Определение 1.3. Предположим, что {хп}™^ — бесконечная последователь- последовательность. Тогда говорят, что последовательность имеет предел L, D) lim xn = L, п-юо если для любого заданого е > 0 существует такое положительное целое число N = N(e), что п> N влечет \хп — Ь\ < е. ^ Когда последовательность имеет предел, то мы говорим, что она является схо- сходящейся последовательностью. Часто используют обозначение "жп —> L при п —> оо." Равенство D) эквивалентно E) Таким образом, можно рассматривать последовательность {en}'^L1 = {xn — L}<^=1 как последовательность ошибок. Следующая теорема связывает понятия сходи- сходимости последовательности и непрерывности. Теорема 1.1. Предположим, что f(x) определена на множестве S и xq € S. Тогда следующие утверждения эквивалентны. (a) Функция / непрерывна в xq. (b) Если lim хп = xq, to lim f(xn) = f(x0). n—юо n—>oo Теорема 1.2 (теорема о промежуточном значении1). Предположим, что / ? Е С[а\ Ь] и L — любое число между f(a) и f(b). Тогда существует такое число с, cG (а; 6), что /(с) = L. 1 Вторая теорема Больцано-Коши. — Прим. ред.
1.1. Некоторые сведения из математического анализа 15 У = fix) ciO,5 1,5 С2 2,0 2,5 Рис. 1.2. Применение теоремы о промежуточном значении к функции f(x) = cos(x — 1) на интервалах [0; 1] и [1; 2,5] Пример 1.1. Функция f(x) = cos(a; — 1) непрерывна на [0; 1], и константа L = 0,8 Е (cos@);cos(l)). Решением уравнения f(x) = 0,8 на [0; 1] является с\ = 0,356499. Аналогично f(x) непрерывна на отрезке [1; 2,5] и L = 0,8 € Е (cosB,5);cos(l)). Решением /(гг) = 0,8 на [1;2,5] является с2 = 1,643502. Оба эти случая показаны на рис. 1.2. ¦ Теорема 1.3 (теорема о наибольшем (наименьшем) значении непрерывной функции2). Предположим, что / € С[а\Ъ). Тогда существуют нижняя граница Мь верхняя граница М2 и такие два числа х\, Х2 ? [а; Ь], что G) Mi = f(xi) < f(x) < f(x2) = M2 для любого х G [а; 6]. Иногда эти утверждения записывают в виде (8) Mi = /(si) = min {/(*)} и М2 = /(х2) = max {/(*)}. <<6 а<ж<6 Дифференцируемые функции Определение 1.4. Пусть /(ж) определена на открытом интервале, содержащем xq. Тогда говорят, что / дифференцируема в xq, если существует предел (9) lim — Xq Когда предел существует, он обозначается как /'(^о) и называется производной f в xq.B терминах /г-приращений его можно выразить следующим образом: A0) Вторая теорема Вейерштрасса. — Прим. ред.
16 Глава 1. Предварительные сведения У 60- 50- 40- 30- 20- 10- (a;f(a)) 0,0 0,5 1,0 1,5 2,0 2,5 3,0 Рис. 1.3. Применение теоремы о наибольшем (наименьшем) значении к функции f(x) = = 35 + 59,5а; - 66,5ж2 4- 15х3 на интервале [0;3] О функции, которая .имеет производную в каждой точке множества 5, гово- говорят, что она дифференцируема на S. Отметим, что число т = /'(#о) являет- является тангенсом угла наклона касательной на графике функции у = f(x) в точке '(xo-J{xo)). А Теорема 1.4. Если f(x) дифференцируема в точке х = хо, то функция f(x) непрерывна в точке х = х$. Из теоремы 1.3 следует, что, если функция / дифференцируема на замкну- замкнутом интервале [а; 6], она принимает наибольшее (наименьшее) значение на кон- концах интервала или в критических (стационарных — Прим. ред.) точках (решение f'(x) = 0) открытого интервала (а; Ь). Пример 1.2. Функция f(x) = 15ж3 — 66,5а;2 + 59,5а; + 35 дифференцируема на интервале [0; 3]. Решениями уравнения f(x) = 45ж2 — 123х + 59,5 = 0 являются х\ = 0,54955 и Х2 = 2,40601. Максимальным и минимальным значениями / на [0; 3] являются: mn{/@);/C);/(a?i);/(s2)} = min{35; 20; 50,10438; 2,11850} = 2,11850 max{/@);/C); f(xx)\f(x2)} = max{35;20;50,10438;2,11850} = 50,10438. ¦ Теорема 1.5 (теорема Ролля). Предположим, что / Е С[а; Ь] и что ff(x) су- существует для всех х Е (а; 6). Если /(а) = f(b) = 0, существует такое число с, с€ (а;Ь), что/'(с) = 0. Теорема 1.6 (теорема о среднем значении3). Предположим, что / ? С[щ Ь] и что ff(x) существует для всех х Е (а; 6). Тогда существует такое число с, се (а; Ь), 3Теорема Лагранжа. — Прим. ред.
1.1. Некоторые сведения из математического анализа у 1,0 /(*)¦ 0,5- 17 (*;/№)) 0,5 1,0 1,5 2,06 Рис. 1.4. Применение теоремы о среднем значе- значении к f(x) = sin(a;) на интервале [0,1; 2,1] что (И) /'(с) = № - f(a) Ь-а ' Геометрически это означает, что согласно теореме о среднем значении суще- существует по крайней мере одно такое число с € (а;Ь), что тангенс угла наклона касательной графика у = f(x) в точке (с; /(с)) равен тангенсу угла наклона секу- секущей, проходящей через точки (а; /(а)) и F; /F)). Пример 1.3. Функция f(x) = sin(x) непрерывна на замкнутом интервале [0,1; 2,1] и дифференцируема на открытом интервале @,1; 2,1). Таким образом, согласно теореме о среднем значении существует такое число с, что /B,1) - /@,1) 0,863209 - 0,099833 2,1-0,1 2,1-0,1 = 0,381688. Решением уравнения /'(с) = cos(c) = 0,381688 на интервале @,1; 2,1) являет- является значение с = 1,179174. График /(ж), секущая у = 0,381688ж + 0,099833 и касательная у = 0,381688я + 0,474215 показаны на рис. 1.4. ¦ Теорема 1.7 (обобщенная теорема Ролля). Предположим, что / € С[а;Ь], что f'{x), f"(x),..., f№{x) существуют на (а; Ь) и х0, хъ ..., хп Е [а; Ь]. Если f(xj) = = 0 для j = 0, 1, ..., п, то существует такое число с, сЕ (а; Ь), что f^n\c) = 0.
18 Глава 1. Предварительные сведения Интегралы Теорема 1.8 (первая фундаментальная теорема4). Если f(x) непрерывна на интервале [а; Ь] и F — любая первообразная функция от / на интервале [а; 6], то A2) [ f(x) dx = F(b) - F(a) где F'(x) = f(x). Ja Теорема 1.9 (вторая фундаментальная теорема). Если f(x) непрерывна на интервале [а; Ь] и х Е (а; 6), то A3) Пример 1.4. Функция f(x) = cos(x) удовлетворяет условиям теоремы 1.9 на интервале [0; тг/2], поэтому согласно цепному правилу d [x2 — cos(i) dt = cos(x2)(x2)f = 2xcos(rr2). ¦ dx Jo Теорема 1.10 (теорема о среднем значении для интегралов). Предположим, что f(x) G С[а\Ь]. Тогда существует такое число с, се (а;Ь), что — ff{x)dx = -а Ja Значение /(с) называется средним значением f на интервале [а; 6]. Пример 1.5. Функция f(x) = sin(rr) + |sinCrr) удовлетворяет условиям тео- теоремы 1.10 на интервале [0;2,5]. Первообразной функцией от / является F(x) = = — cos(a;) — 5COSC#). Среднее значение функции f(x) на интервале [0;2,5] равно 2'5 f(*\ и*. - FB>5) - ^@) _ 0,762629-(-1,111111) _ = 0,749496. 1 Г2'5 ^0 Jo fWdx~ 1,873740 2,5 Существуют три решения уравнения /(с) = 0,749496 на интервале [0;2,5]: с\ = = 0,440566, С2 = 1,268010 ис3 = 1,873583. Площадь прямоугольника с основани- основанием b-а = 2,5 и высотой f(cj) = 0,749496 равна f(cj){b-a) = 1,873740. Площадь прямоугольника имеет такое же численное значение, как интеграл от f{x), вычис- вычисленный по интервалу [0; 2,5]. Сравнение площади под кривой у = f(x) и площади этого прямоугольника можно видеть на рис. 1.5. ¦ 4 Формула Ньютона-Лейбница. — Прим. ред.
1.1. Некоторые сведения из математического анализа 19 Рис. 1.5. Применение теоремы о среднем значении для интегра- интеграле лов к f(x) = sin(ar) + | sinCx) 0,0 0,5 1,0 1,5 2,0 2,5 на интервале [0; 2,5] Теорема 1.11 (теорема о среднем значении взвешенного интеграла). Пред- Предположим, что /, д ? С[а\ Ъ] и д(х) > 0 для х Е [а; 6]. Тогда существует такое число с, се {а;Ь)у что A4) f(x)g(x)dx = /(с) g(x)dx. Ja Ja Пример 1.6. Функции f(x) = sin(x) и д(х) = х2 удовлетворяют условиям теоремы 1.11 на интервале [0; тг/2]. Тогда существует такое число с, что sm(c) = 1,14159 = 0,883631 или с = sin" @,883631) = 1,08356. Ряды Определение 1.5. Пусть {o>n)^Li ~~ некоторая последовательность. Тогда Z)^Li ап — бесконечный ряд. Sn = Y^k=\ ak называется n-й частичной суммой ряда. Бесконечный ряд сходится тогда и только тогда, когда последовательность {Sn}%Li стремится к пределу S, т. е. A5) lim Sn = lim - '" n-юо = S. Если ряд не сходится, то говорят, что он расходящийся. Пример 1.7. Рассмотрим бесконечную последовательность
20 Глава 1. Предварительные сведения Тогда n-я частичная сумма равна 5 _= l ?r{\k k + l) п Следовательно, сумма бесконечного ряда равна S = lim Sn = lim A ЦЛ =1. ¦ n->oo n—юо у ri + ly Теорема 1.12 (теорема Тейлора). Предположим, что / G Сп+1[а,Ь], и пусть #о ? [а; 6]. Тогда для каждого х € (а; Ь) существует такое число с = с(х) (значение с зависит от значения х), лежащее между хо и ж, что A6) где A7) 08) Пример 1.8. Функция f(x) = sin(x) удовлетворяет условиям теоремы 1.12. Полином Тейлора Рп(х) степени п = 9, разложенный в точке xq = 0, получен путем вычисления следующих производных в точке х = 0 и подсчета численных значений в формуле A7). f(x)=sin(x), f'(x) = cos(:z), /'@) = 1, f"(x) = -sin(x), /"@) = 0, О) = -1, fW(x)=cos(x), Графики функции / и полинома Р9 на интервале [0; 2тг] показаны на рис. 1.6. i Следствие 1.1. Если Рп(х) — полином Тейлора степени п из теоремы 1.12, то A9) Ркк)Ы = /{к)Ы) Для к = 0, 1, ..., п.
1.1. Некоторые сведения из математического анализа у 21 -1,0 Рис. 1.6. Графики f(x) = sin (я) и полинома Тейло- Тейлора Р(х) =х- х3/3\ + х5/5\ - х7/7\ + х9/9\ Вычисление полиномов Пусть полином Р(х) степени п имеет вид B0) Р{х) = апхп + ап-гхп~-1 + • • а2х2 а0. Метод Горнера или искусственное разделение является методом вычисления полиномов. Он задуман как вложенное умножение. Например, полином пятой степени может быть записан в виде вложенных умножений Р$(х) = ((((а5а; + сц)х + а^)х + а2)х + а\)х + а$. Теорема 1.13 (метод Горнера вычисления полиномов). Предположим, что Р(х) — полином, заданный уравнением B0), и х = с — число, для которого Р(с) нужно вычислить. Присвоим Ьп = ап и вычислим B1) bk = ak + cbk+i для fc = n- тогда Ьо = Р(с). Кроме того, если B2) Q0(x) = Ьпхп-1 + Ъп-1Хп~2 + - то n~2, ..., 1, 0; Ь3х2 + Ь2х + Ьи B3) где частное остатком. является полиномом степени п — 1 и Rq = bo = P(c) является
22 Глава 1. Предварительные сведения Доказательство. Подставляя правую часть равенства B2) вместо Qo{x) и Ьо вместо i?o в B3), получим, что Р{х) = {х- с){Ьпхп-1 + bn-ixn~2 + • • • + Ъгх2 + Ъ2х + 6i) + Ьо = B4) = Ьпхп + (Ьп-1 - cbn)xn~l + ... + F2- сЬг)х2+ + (Ь\ - cb2)x + (bo - cb\). Числа bk определяются сравнением коэффициентов при хк равенств B0) и B4), как показано в табл. 1.1. Таблица 1.1. Коэффициенты bk для метода Горнера xk xn x"~l xk x° Сравнение B0) и B4) а„=Ь„ an-i =bn-i —cbn ак=Ьк-^ по = Ьо — сЬ\ Решение для bk bn=an bn— 1 =: On— 1 + cbn bk = uk + cbfc+i 6o = cio + cb\ Значение Р(с) = Ьо легко получить, заменив ж = св равенстве B2) и исполь- использовав тот факт, что До = Ьо: B5) Р(с) = (с - + До = Ьо. Рекуррентную формулу для 6*, приведенную в B1), можно легко вычислить на компьютере. Простым алгоритмом является алгоритм Ь{п) = а(п); forfc = n-l: -1:0 end Когда метод Горнера выполняется вручную, легче записать коэффициенты Р(х) в строку и вычислять bk = a*; + cb^+i под a^ в столбце. Запись для этой процедуры проиллюстрирована в табл. 1.2. Пример 1.9. Воспользуемся искусственным разделением (методом Горнера), чтобы найти РC) для полинома Р(х) = ж5 - 6ж4 - 40.
1.1. Некоторые сведения из математического анализа 23 Таблица 1.2. Таблица Горнера для процесса искусственного разделения Вход X Вход ж = 3 ап а„_1 xbn Ьп Ьп-1 а5 1 1 Ьь ап-2 хЬп-\ Ьп-2 а4 -6 3 -3 «3 8 —9 -1 h о-к xbk+l ¦ ьк 8 -3 5 ь2 а2 ¦¦ b2 4 15 19 Oi xb2 h -40 57 17 = ао xbi b0 = P(x) Выход = PC) = bo Выход Таким образом, РC) = 17. Упражнения к разделу 1.1 1. (а) Найдите L = limn^00Dn + l)/Bn + 1), Затем определите {еп} = {L — - а;п} и найдите lim^oo en. (Ь) Найдите L = limn_>ooBn2 + 6n — 1)/Dп2 + 2п + 1). Затем определите {бп} = {L - жп} и найдите Игпп-юо еп. 2. Пусть {xn}(^L1 — такая последовательность, что Ит^-юо хп = 2. (а) Найдите linin^oosin^n). (b) Найдите limn^ooln(a:2). 3. Найдите числа с, используя теорему о промежуточном значении, для каждой функции на указанном интервале и для заданного значения L. (a) f(x) = —х2 + 2х + 3 на [—1; 0], используя L = 2 (b) /(ж) = л/ж2 - Ъх - 2 на [6; 8], используя L = 3 4. Найдите верхнюю и нижнюю грани, используя теорему о наибольшем (наи- (наименьшем) значении, для каждой функции на указанном интервале. (a) /(я) = я2-Зх + 1на[-1;2] (b) f(x) = cos2 (x) - sin(o;) на [0; 2тг] 5. Найдите числа с, используя теорему Ролля, для каждой функции на указанном интервале. (a) /(я)=я4-4а;2на[-2;2] (b) f(x) = sin(a;) + sinB:r) на [0; 2тг]
24 Глава 1. Предварительные сведения 6. Найдите числа с, используя теорему о среднем значении, для каждой функции на указанном интервале. (a) /(*) = ^?на[0;4] (b) /(*) = ^на[0;1] 7. Примените обобщенную теорему Ролля к f(x) = х(х — 1)(х — 3) на [0; 3]. 8. Примените первую фундаментальную теорему для вычисления интегралов от следующих функций на указанном интервале. (a) f(x) = xexua[0;2] (b) /(х) = ^тна[-1;1] 9. Примените вторую фундаментальную теорему для вычисления каждой функ- функции. 10. Найдите числа с, используя теорему о среднем значении для интеграла, от следующих функций на указанном интервале. (a) /(*) = 6*2на[-3;4] (b) f{x)=x cos(x) на [0; Зтг/2] 11. Найдите сумму последовательности или ряда. о 12. Найдите полином Тейлора степени п = 4 в окрестности точки xq для следу- следующих функций. (a) f(x) = х/ж, гго = 1 (b) /(ж) =ж5 + 4а;2 + За; + 1, х0 = 0 (c) /(х) = cos (ж), :го = 0 13. Задана f(x) = sin(a;) и Р(ж) = ж - ж3/3! + д;5/5! - х7/7! + д;9/9!. Покажите, что Р<*)@) = /(к)@) для к = 1,2,..., 9. 14. Используйте искусственное разделение (метод Горнера) для нахождения Р{с). (a) Р(х) =хА + х3-13х2-х-12ус = 3 (b) Р(ж) = 2х7 + хе + хъ - 2х4 - х + 23,с = -1 15. Найдите среднюю площадь окружностей с центром в начале координат и радиусом, изменяющимся от 1 до 3. 16. Предположим, что полином Р{х) имеет п действительных корней на интер- интервале [а;Ь]. Покажите, что Р^п~1\х) имеет по крайней мере один действи- действительный корень на интервале [а; 6].
1.2. Двоичные числа 25 17. Предположим, что /, /' и /" определены на интервале [а; 6], /(а) = f(b) = О и /(с) > 0 для с € (а; Ь). Покажите, что существует такое число d Е (а; 6), что 1.2. Двоичные числа Люди в арифметике используют десятичную систему счисления (с основани- основанием 10). Большинство компьютеров использует арифметику с двоичной системой счисления (основание 2). Может показаться, что это не так, поскольку общение с компьютером (ввод-вывод) происходит в числах с основанием 10. Но это не означает, что компьютеры используют основание 10. На самом деле они приводят входные числа к основанию 2 (или, возможно, к основанию 16), затем выполняют арифметику при основании 2 и наконец преобразовывают ответ к основанию 10 прежде, чем показать результат. Для подтверждения этого требуется несколько экспериментов. Компьютер, который выполняет вычисления с точностью девять десятичных знаков, дает ответ юоооо A) J2 0,1 = 9999,99447. Имеются в виду сложные числа ^ 100 000 раз. Математический ответ равен точ- точно 10000. Наша цель — понимание оснований очевидной ошибки компьютерного вычисления. В конце этого раздела будет показано, чему равна погрешность, когда компьютер переводит десятичную дробь ^ в двоичное число. Двоичные числа Основание 10 используется в большинстве математических задач. Для иллю- иллюстрации число 1563 представим в форме 1563 = A х 103) + E х 102) + F х Ю1) + C х 10°). В общем случае, когда N — положительное целое число, существуют однозначные числа ао, ai,..., а&, такие, что число N представимо при основании 10 в виде _i х (аг х 101) + (a0 x 10°), где числа ак принимают значения {0,1,..., 8,9}. Таким образом, N в десятичной записи представимо как B) N = акак„1 • • • a2aia0jXQC (десятичное).
26 Глава 1. Предварительные сведения Если понятно, что 10 является основанием, то B) можно записать как N = Например, мы понимаем, что 1563 = 1563дес- Если использовать степени 2, то число 1563 можно записать в виде 1563 = A х 210) + A х 29) + @ х 28) + @ х 27) + @ х 26)+ C) + @ х 25) + A х 24) + A х 23) + @ х 22) + A х 2*)+ + Ax2°). Это можно подтвердить, выполнив вычисления 1563 = 1024 + 512 + 16 + 8 + 2 + 1. В общем, пусть N — положительное целое число; существуют однозначные числа &о> Ьь ..., bj, такие, что число N при основании 2 можно представить в виде D) N = (bjx 2J) + (bj-i х 27) + - • • + (bi x 21) + F0 x 2°), где каждое число bj равно или 0, или 1. Таким образом, N в двоичном обозначении можно выразить в виде E) N = bjbj^i • • • ЬгМодва (двоичное). Используя обозначения E) и результат C), получим 1563 = 11000011011да. Замечания. Слово "два" всегда будет употребляться в качестве индекса двоичного числа. Это позволит читателю отличать двоичные числа от обычных чисел с основанием 10. Так, число 111 означает сто одиннадцать, в то время как 111ДВа — семь. Ясно, что для двоичного представления числа N потребуется больше цифр, чем для десятичного. Известно, что степень 2 растет намного медленнее, чем 10. Эффективный алгоритм нахождения представления целого числа N с основа- основанием 2 можно вывести из равенства D). Разделив обе части равенства D) на 2, получим F) ^ = (bj х 2J~X) + (bj-г х 2J~2) + ¦ ¦ ¦ + (б! х 2°) + |.
1.2. Двоичные числа 27 Таким образом, остаток от деления числа ЛГ на 2 и есть цифра Ьо- Сейчас опреде- определим Ь\. Если F) записать как N/2 = Qo + &о/2, то G) Qo = (bj x 2J~l) + Fj_i x 2J) + • ¦ • + (&2 x 21) + Fг х 2°). Разделив обе части G) на 2, получим Щ. = (bj х 2') + (b,-i х 2-/-3) + ... + (ft,, х 2°) + |. Следовательно, остаток от деления Qo на 2 равен цифре bi. Продолжая этот процесс, получим последовательности {Qk} и {bk} отношений и остатков соот- соответственно. Процесс завершится, когда найдется такое целое число J, что Qj = 0. Последовательность удовлетворяет следующим равенством: N = 2Q0 + bQ Qo = 2Qi + bi (8) : Qj-2 = 2Qj_! + 6j_i Пример 1.10. Покажем, как получить 1563 = 11000011011два. Начнем с N = 1563 и построим отношения и остатки согласно уравнению (8). 1563 = 2 781 = 2 390 = 2 195 = 2 97 = 2 48 = 2 24 = 2 12 = 2 6 = 2 3 = 2 X X X X X X X X X X 78И 390 Ч 195 4 97 4 48 4 24 ч 12 4 64 34 1ч 1-1, HI, но, hi, hi, но, но, но, но, hi. 63 = 1 = 2 х 0 + 1, Ью = 1 Таким образом, двоичным представлением числа 1563 является 1563 = Ь10Ь9Ь8 ¦ ¦ • Ь2Модва = 11000011011два.
28 Глава 1. Предварительные сведения Последовательности и ряды Часто для представления рациональных чисел в десятичном виде требуется бесконечно много цифр. Обычным примером является запись (9) I = 0,3. Здесь символ 3 означает, что цифра 3 бесконечно повторяется. Понятно, что 10 является основанием в (9). К тому же с математической точки зрения это краткая запись для бесконечного ряда S = C х НГ1) + C х 10) + • • • + C х 10"п) + • - - = (Ю) А и 1 = У]3A0) • о Если вьщелить только конечное число цифр, то получится приближение для 1/3. Например, 1/3«0,333 = 333/1000. Ошибка приближения равна 1/3000. Восполь- Воспользовавшись A0), читатель может убедиться, что 1/3 = 0,333 + 1/3000. Важно понимать, что означает разложение в A0). Простейшим примером явля- является умножение обеих частей на 10 и последующее вычитание. 105 = 3 + C х Ю-1) + C х Ю-2) + • • • + C х 10"п) + - - - -5 = -(Зх КГ1) - C х КГ2) C х Ю-п) 9S = 3 + @ х КГ1) + @ х 10~2) + - • • + @ х Ю-71) + • • ¦ Таким образом, 5 = 3/9 = 1/3. Теоремы, обосновывающие возможность рассмот- рассмотрения разности между двумя бесконечными рядами, можно найти в большинстве книг по анализу. В списке литературы читатель может найти стандартные тексты по анализу, чтобы получить недостающую информацию. Определение 1.6 (геометрический ряд). Бесконечный ряд 71=0 где с ф 0 и т ф 0, называется геометрическим рядом с отношением г. ^ Теорема 1.14 (геометрический ряд). Геометрический ряд имеет следующие свойства. оо A2) Если \т\ < 1,то 1-г п=0 A3) Если \г\ > 1,то ряд расходится.
1.2. Двоичные числа 29 Доказательство. Формулой для суммы конечного геометрического ряда является сA r A4) sn = c + cr + cr2 + --- + crn = -Ц—- }- для тф\. Докажем A2), отметив, что A5) \т\ < 1 влечет lim rn+1 = 0. п-юо Перейдем к пределу при п —> со, воспользовавшись равенством A4) и утвержде- утверждением A5), чтобы получить цт Sn = -^- (l - lim гЛ = -. п-юо 1 — Г V п->оо / 1 — Г Согласно равенству A5) из раздела 1.1 мы нашли предел в A2). Когда \г\ > 1, последовательность {гп+1} расходится. Значит, последователь- последовательность {Sn} в A4) не стремится к пределу. Таким образом, A3) доказана. . • Формула A2) теоремы 1.14 дает эффективный метод перевода бесконечно по- повторяемых десятичных цифр в дроби. Пример 1.11. (X) ОО 0,3 = J2 3A0)-* = -3 + Y^ 3A0)-* = 3 10 1 3 + 3 + Г 1"" То Двоичные дроби Двоичные (с основанием 2) дроби могут быть выражены в виде суммы, со- содержащей отрицательные степени 2. Если R — действительное число, лежащее в интервале 0 < R < 1, то существуют такие числа di, d2,..., dn? • - -» что A6) R = (d1x 2) + (d2 x 2) + ... + (dnX 2~n) + • • • , где dj G {0; 1}. Обычно величину в правой части A6) представляют в виде двоич- двоичной дроби A7) два- Существует масса действительных чисел, для двоичного представления кото- которых требуется бесконечно много цифр. Дробь 7/10 можно выразить как 0,7 при
30 Глава 1. Предварительные сведения основании 10, тем не менее при основании 2 ее представление требует много цифр: A8) ^ = 0,10Шдва. Двоичная дробь в A8) является периодической, в ней группы четырех цифр ОНО повторяются все время. Сейчас можно рассмотреть эффективный алгоритм представления числа с осно- основанием 2. Если обе части A6) умножить на 2, то в результате получим AУ) Ш. = й\ + \\а2 х Z ; + ••¦ + \ап х Z ) + '")• Величина в скобках правой части A9) — это положительное число, меньше, чем 1. Таким образом, d\ — целая часть 2R. Обозначим d\ = [BЛ)]. Возьмем дробную часть A9) и запишем , B0) F1 = {BR)} = (da x 2~l) + • ¦. + (dn х 2"п+1) + ... , где {BR)} — дробная часть действительного числа 2R. Умножив обе части B0) на 2, придем к результату B1) 2FX =d2 + ({d3 x 2-1) + • - • + {dn x 2"n+2) + -¦•). Возьмем целую часть от B1) и получим d2 = [BFi)]. Процесс продолжается, возможно, до бесконечности (если R имеет бесконеч- бесконечное непериодическое представление с основанием 2), и получаем рекурсивно две последовательности: 4 = где d\ = [BД)] и F\ = {BR)}. Двоичное представление десятичного числа R задается сходящимся геометрическим рядом Пример 1.12. Двоичное представление десятичной дроби 7/10, заданной в A8), можно найти, используя формулы B2). Пусть R = 7/10 = 0,7, тогда получим следующее.
1.2. Двоичные числа 31 2 Д = 1,4 dx = [A,4)] = 1 Fi = {A,4)} = 0,4 2Fi = 0,8 d2 = [@,8)] = 0 F2 = {@,8)} = 0,8 2F2 = 1,6 rf3 = [A,6)] = 1 F3 = {A,6)} = 0,6 2F3 = 1,2 d4 = [A,2)] = 1 F4 = {A,2)} = 0,2 2F4 = 0,4 d5 = [@,4)] =0 F5 = {@,4)} = 0,4 2F5 = 0,8 de = [@,8)] = 0 F6 = {@,8)}=0,8 2F6 = 1,6 d7 = [A,6)] = 1 F7 = {A,6)} = 0,6 Заметим, что 2F2 = 1,6 = 2F$. Равенства dk = cfo+4 и Fk = -Ffc+4 должны появляться для А; = 2, 3, 4, Таким образом, 7/10 = 0,10110^. ' ¦ Геометрические ряды можно использовать для нахождения десятичных пред- представлений рациональных чисел, заданных двоичным представлением. Пример 1.13. Найдем десятичное представление рационального числа, заданное двоичным представлением, 0,01два. Разложение имеет вид ОДдва = (О х 2-1) + A х 2) + @ х 2~3) + A х 2~4) + • • • = k=l к=0 1 4 1 + 1 Двоичный сдвиг Если рациональное число эквивалентно бесконечно повторяющемуся двоично- двоичному выражению, то можно использовать сдвиг цифр. Например, пусть S задано следующим образом: B3) 5 = 0,0000011000 два. Умножив обе части равенства B3) на 25, что эквивалентно сдвигу двоичной точки на пять позиций вправо, получим, что 325 имеет вид . B4) 325 = 0,11000два. Аналогично, умножив обе части B3) на 210, что эквивалентно сдвигу двоичной точки на 10 позиций вправо, получим, что 10245 имеет вид i B5) 10245 = 11000,11000 два* \ Если теперь рассмотреть разности соответственно между правыми и левыми ча- t стями B4) и B5), то получится 9925 = 11000ДВа или 9925 = 24. Таким образом, i ПОООдва = 24, поэтому 5 = 8/33.
32 Глава 1. Предварительные сведения Научное обозначение Стандартный метод представления действительного числа, называемый науч- научным обозначением, получается посредством сдвига десятичной точки и присво- присвоения соответствующей степени 10, например 0,0000747 = 7,47 х ИГ5, 31,4159265 = 3,14159265 х 10, 9700000000 = 9,7 х 109. В химии, к примеру, важной константой является число Авогадро, равное 6,02252 х х 1023. Это число атомов в грамм-атоме любого химически простого вещества. В компьютерной терминологии \К = 1,024 х 103. Машинные числа * В компьютерах для действительных чисел используется нормированное дво- двоичное представление с плавающей точкой. Это означает, что математическая ве- величина х на самом деле не хранится в компьютере. Вместо нее в компьютере хранится двоичное приближение х: B6) х « ±q х 2П. Число q является мантиссой, и это конечное двоичное представление, которое удовлетворяет неравенству 1/2 < q < 1. Целое число п называется показателем степени, В компьютере используется только небольшое подмножество системы пред- представления действительных чисел. Типично, что это подмножество содержит толь- только часть двоичного числа, предложенного в B6). Количество двоичных знаков ограничено двумя числами q и п. Например, рассмотрим множество всех поло- положительных действительных чисел вида B7) 0,е*1бМз<*4Два х 2П, где d\ = 1 и g?2, dz и сЦ равны или 0, или 1, а п G {—3; —2; —1; 0; 1; 2; 3; 4}. В B7) существует восемь возможностей выбора для мантиссы и для показателя степени, что порождает множество из 64 чисел: B8) {0,1000два х 2-3;0,1001два х 2~3;... ;0,Ш0два х 24;0,1Шдва х 24}. Эти числа в десятичном виде приведены в табл. 1.3. Важно понять, что когда мантисса и показатель степени в B7) ограничены, то у компьютера имеется огра- ограниченное количество выбора из памяти вариантов приближений действительного числа х.
1.2. Двоичные числа Таблица 1.3. Десятичный эквивалент набора двоичных чисел с 4 двоичными разрядами мантиссы и показателями степени п = —3, —2, ..., 3, 4 33 Мантисса ОДОООдва 0Д001Два 0,1010дм 0,1011дм 0,1100дм 0,1101» 0,1110дм 0,1111дю Показатель степени п = -3 0,0625 0,0703125 0,078125 0,0859375 0,09375 0,1015625 0,109375 0,1171875 71 = ~2 0,125 0,140625 0,15625 0,171875 0,1875 0,203125 0,21875 0,234375 71 =-1 0,25 0,28125 0,3125 0,34375 0,375 0,40625 0,4375 0,46875 71 = 0 0,5 0,5625 0,625 0,6875 0,75 0,8125 0,875 0,9375 71=1 1 1,125 1,25 1,375 1,5 1,625 1,75 1,875 71 = 2 2 2,25 2,5 2,75 3 3,25 3,5 3,75 71 = 3 4 4,5 5 5,5 6 6,5 7 7,5 71 = 4 8 9 10 11 12 13 14 15 Если компьютер имеет мантиссы только из 4-х разрядов, то как будет записано число (^j + gj + g? Каждый шаг таблицы дает читателю возможность увидеть, что используется наилучшее приближение. B9) i « 0,1101два х 2~3 = 0,01101два х 2 J^ _ -2 _ 3 То Компьютер должен решить, как хранить число 0,00111дВа х 2 2. Предположим, что он округлит его до 0,1010два х 2. Тогда следующий шаг будет таким: C0) ^ « ОДОЮдва X 2 = ОДОЮдва X 2Г1 1 - 0 1011 х 2~2 - 0^01011Два х 2 7 ~ и'1и11Два X ^ - П11111___ v9«r 15 Компьютер должен решить, как хранить число 0Д1111два х 2 1. Поскольку округ- округление занимает память, он хранит 0Д0000два х 2°. Следовательно, компьютерным решением задачи сложения является C1) — «0,10000^x2°. Ошибка вычислений компьютера равна C2) — - 0Д0000два » 0,466667 - 0,500000 ю 0,033333. 10 Если выразить это в процентном отношении, то 7/15 составит 7,14%.
34 Глава 1. Предварительные сведения Точность компьютера Чтобы точно сохранять числа, компьютер должен иметь двоичные числа с пла- плавающей точкой по крайней мере с 24 двоичными разрядами, отведенными под мантиссу, что равносильно приблизительно семи десятичным разрядам. Если ис- использовать 32-разрядную мантиссу, то можно хранить числа с 9-ю десятичными разрядами. А сейчас вернемся к рассмотрению сложностей, с которыми мы столк- столкнулись в A) в начале раздела, когда компьютер последовательно складывает 1/10. Предположим, что мантисса q в B6) содержит 32 двоичных разряда. Из условия 1/2 < q следует, что первая цифра равна d\ = 1. Поэтому q имеет вид C3) q = 0,Ы2^3 • * ' <*31<*32 2даа- Когда в двоичной форме представляют дроби, то часто требуется бесконечно много цифр, например C4) -=0,00011два. Когда мантисса имеет 32 двоичных разряда, происходит усечение и компьютер использует внутреннее приближение C5) -^ « 0,1100Ш0110011001100110011001100два х 2~3. В приближении C5) ошибка равна разнице между C4) и C5): C6) 0,П00два х 2~35 и 2,328306437 х КГ11. Вследствие C6) у компьютера должна быть погрешность, когда он склады- складывает 1/10 в A). Погрешность должна быть больше, чем A00000)B,328306437 х х 101) = 2,328306437 х 10~6. На самом деле существуют намного более серьез- серьезные ошибки. Случайным образом частичная сумма может быть округлена вверх или вниз. Также, поскольку сумма растет, последние добавления 1/10 мало срав- сравнимы с текущей величиной суммы и их вклад усекается более строго. Смешанный эффект этих ошибок фактически дает ошибку 10000 — 9999,99447 = 5,53 х 10~3. Компьютерные числа с плавающей точкой В компьютере имеются как целая форма представления чисел, так и форма с плавающей точкой. Целая форма используется для вычислений с целыми числа- числами и имеет ограниченное применение в численном анализе. Должно быть понят- понятно, что любой компьютер, выполняя B6), ограничивает количество цифр, исполь- используемых в мантиссе q, и возможный диапазон показателя степени п должен быть ограничен.
1.2. Двоичные числа 35 Компьютеры с 32 двоичными разрядами, представляя действительное число с обычной точностью, использует 8 двоичных разрядов для показателя степени и 24 двоичных разряда для мантиссы. Они могут представлять действительные числа в интервале от 2,938736? - 39 до 1J0U12E + 38 (т. е. от 2~~128 до 2127) с шестью десятичными знаками точности (например, 2~23 = = 1,2 х 1(Г7). Компьютеры с 48 двоичными разрядами, представляя действительное число с обычной точностью, могут использовать 8 двоичных разрядов для показателя степени и 40 двоичных разрядов для мантиссы. Они могут представлять действи- действительные числа в интервале от 2,9387358771? - 39 до 1,7014118346Я + 38 (т. е. от 2~128 до 2127) с 11 десятичными знаками точности (например, 2"9 = = 1,8 х 1(Г12). Если у компьютера имеется 64 двоичных разряда для двойной точности дей- действительного числа, то он может использовать 11 двоичных разрядов для пока- показателя степени и 53 двоичных разряда для мантиссы. Они могут представлять действительные числа в интервале от 5,562684646268003Я - 309 до 8,988465674311580? + 307 (т. е. от 2"024 до 21023) приблизительно с 16 десятичными знаками точности (например, 2~52 = 2,2 х 106). Упражнения к разделу 1.2 1. Накопите на компьютере следующие суммы. Желательно иметь компьютер с возможностями повторных вычитаний. Не используйте сокращенное умно- умножение. (а) 10000-?i=iOO° ОД (Ь) 10000 - Е^00 0,125 2. Используя выражения D) и E), приведите следующие двоичные числа к десятичному (с основанием 10) виду. (а) 10101два (Ь) Ш000дВа (С) ШШЮдва (d) 1000000111дВа 3. Используя выражения A6) и A7), приведите следующие двоичные дроби к десятичному (с основанием 10) виду. (а) 0Д1011два (Ь) 0,10101два (с) 0,1010101два (d) ОДЮПОПОда
36 Глава 1. Предварительные сведения 4. Приведите следующие двоичные числа к десятичному (с основанием 10) виду. (а) 1,0110101два (Ь) 11,0010010001два 5. Числа из упр. 4 приближенно равны \/2 и 7г. Найдите ошибку этих прибли- приближений, т. е. найдите следующее. (a) уД - 1,0110101два (\/2 = 1,41421356237309 • ¦ •) (b) тг - 11,0010010001два (тг = 3,14159265358979 • • •) 6. Следуя примеру 1.10, приведите следующие десятичные числа к двоичному виду. (а) 23 (Ь) 87 (с) 378 (d) 2388 7. Следуя примеру 1.12, приведите следующие дроби к двоичному виду 0,did2 "-dnдва. (а) 7/16 (Ь) 13/16 (с) 23/32 (d) 75/128 8. Следуя примеру 1.12, преобразуйте следующие дроби в двоичные периоди- периодические дроби. (а) 1/Ю (Ь) 1/3 (с) 1/7 9. Для следующего семизначного приближения найдите ошибку приближения R - 0,бAЙ2^3^4^5^6^7два- (а) 1/10 « 0,0001100два (Ь) 1/7«0,0010010два 10. Покажите, что двоичное представление 1/7 = 0,001два эквивалентно \ = \ + + ^ + 5i2 H . Воспользуйтесь теоремой 1.14. 11. Покажите, что двоичное представление 1/5 = 0,0011два эквивалентно \ = == ТЕ + 2§б + Шя ~* * Воспользуйтесь теоремой 1.14. 12. Докажите, что любое число 2~N, где N — положительное целое число, может быть представлено в виде десятичного числа с N цифрами, т. е. 2*"^ = = 0,did2d3 '"' dN- Указание. 1/2 = 0,5, 1/4 = 0,25,.... 13. Используя табл. 1.3, определите, что случится, когда компьютер с мантиссой, имеющей 4 двоичных разряда, выполнит следующие вычисления. 14. Покажите, что если во всех формулах в упр. 8 заменить 2 на 3, то резуль- результатом явится метод нахождения разложения положительного целого числа с основанием 3. Приведите следующие целые числа к основанию 3. (а) 10 (Ь) 23 (с) 421 (d) 1784 15. Покажите, что если в B2) заменить 2 на 3, то в результате получится метод для нахождения разложения с основанием 3 положительного числа Л, 0 < R < 1. Приведите следующие числа к основанию 3.
1.3. Анализ ошибок 37 (а) 1/3 (Ь) 1/2 (с)' 1/10 (d) 11/27 16. Покажите, что если во всех формулах в (8) заменить 2 на 5, то в результате получится метод для нахождения разложения с основанием 5 положительного целого числа. Приведите следующие целые числа к основанию 5. (а) 10 (Ь) 35 (с) 721 (d) 734 17. Покажите, что если в B2) заменить 2 на 5, то в результате получится метод для нахождения разложения с основанием 5 положительного числа Л, 0 < R < 1. Приведите следующие числа к основанию 5. (а) 1/3 (Ь) 1/2 (с) 1/10 (d) 154/625 1.3. Анализ ошибок В практике численного анализа важно сознавать, что численное решение — это не точное математическое решение. Точность численного решения уменьшается по многим причинам несколькими тонкими способами. Понимание этих труд- трудностей часто может привести профессионала к правильному выполнению и/или усовершенствованию численного алгоритма. Определение 1.7. Предположим, что р является приближением р. Абсолютная ошибка равна Ер = \р — р|, относительная ошибка равна Rp = \р — р\/\р\ при условии, что р Ф 0. А Ошибка — это простая разность между истинным и приближенным значениями, тогда как относительная ошибка — это доля истинного значения. Пример 1.14. Найдем абсолютную и относительную ошибки в следующих трех случаях. Пусть х = 3,141592 иж = 3,14, тогда абсолюйдая ошибка (в дальней- дальнейшем — просто ошибка. — Прим. перев.) равна Aа) Ех = \х - х\ = |3,141592 - 3,14| = 0,001592 и относительная ошибка равна _ \х - х\ _ 0!001592 _ R Rx ~ Л^Г ~ 3,141592 Пусть у = 1000 000 и у = 999 996, тогда ошибка равна AЬ) Еу = \у - у\ = |1000 000 - 999 99б| = 4 и относительная ошибка равна
38 Глава 1. Предварительные сведения Пусть z = 0,000012 и ? = 0,000009, тогда ошибка равна (lc) Ez = \z - z\ = |0.000012 - 0.000009| = 0.000003 и относительная ошибка равна _> - z\ _ 0,000003 0,000012 _ В случае Aа) между ошибками Ех и Лж нет большой разницы и любая из них может быть использована для оценки точности х. В случае AЬ) значение у — ве- величина размера 106, ошибка Еу велика, относительная ошибка Ry мала и у можно рассматривать как хорошее приближение у. В случае (lc) z — величина размера 10~6, ошибка Ez является наименьшей из всех трех ошибок, но относительная ошибка Rz — наибольшая. В процентном отношении она составляет 25%, и такое значение z является плохим приближением z. Заметим, что чем больше \р\ удаля- удаляется от 1 (в сторону увеличения или уменьшения), тем относительная ошибка Rp становится лучшим индикатором точности приближения, чем ошибка Ер. Отно- Относительная ошибка предпочтительнее для представления с плавающей точкой, так как она связана непосредственно с мантиссой. Определение 1.8. Говорят, что число р является приближением р с d значащими цифрами, если d является наибольшим положительным целым число, для которого Пример 1.15. Определим число значащих цифр для приближений в приме- примере 1.14. (За) Если х = 3,141592 их = 3,14, то \х - х\/\х\ = 0,000507 < 10~2/2. Следо- Следовательно, х приближает х с двумя значащими цифрами. (ЗЬ) Если у = 1000000 и у = 999996, то \у - у\/\у\ = 0,000004 < 10~5/2. Следовательно, у приближает у с пятью значащими цифрами. (Зс) Если z = 0,000012 и z = 0,000009, то \z - z\/\z\ = 0,25 < 10~°/2. Следова- Следовательно, z приближает z без значащих цифр. ¦ Ошибка, возникающая при усечении Понятие ошибки усечения используется, если ошибка возникает из-за того, что более сложное математическое выражение "заменяется" более простой формулой. Эта терминология возникла из техники замены сложной функции укороченными рядами Тейлора. Например, бесконечный ряд Тейлора л, 2 о X JC Jb X е =1 + х + 2Г+ зГ+4Г + '" + "ы" + "'
1.3. Анализ ошибок 39 у = Р*(х) Рис. 1.7. Графики у = f(x) = х = ex2, у = Ps(x) и площадь под 0,5 1,0 1,5 кривой для 0 < х < | может быть заменен только первыми пятью членами ряда 1+ § § ^ Это можно делать при нахождении приближенных значений интегралов. Пример 1.16. Задано, что $2ex2dx = 0,544987104184 = р. Определим точ- точность приближения, полученную при замене подинтегральной функции f(x) = = ех2 усеченным рядом Тейлора Р$(х) = 1 + х2 + §у + ^- + ^. Почленным интегрированием получаем 1/2/ о х4 х6 х*\ J ( х3 хъ х7 х9 \х=1/2 1111 1 I I I I /"\ ?\ Л 4~% ?^ f\ ^* ?"\ 9*4 /^ 2 24 320 5376 110592 Поскольку 10~5/2 > |р-р|/|р| = 7,03442 х 10" > 10/2, приближение р соот- соответствует истинному значению р = 0,544987104184 с пятью значащими цифрами. Графики f(x) = ех и Р%{х) и площадь под кривой для 0 < х < 1/2 показаны на рис. 1.7. ¦ Ошибка округления Компьютерное представление действительных чисел ограничено фиксирован- фиксированной точностью мантиссы. Истинное значение не всегда точно сохраняется в ком- компьютерном представлении. Это называется ошибкой округления. В предыдущем разделе действительное число 1/10 = 0,00011два было округлено, когда сохра- сохранялось в компьютере. Фактически число, которое хранится в компьютере, может усекаться или содержать округленную последнюю цифру. Таким образом, по- поскольку диск компьютера работает только с ограниченным количеством цифр в
40 Глава 1. Предварительные сведения машинных числах, вводится ошибка округления и распространяется на последу- последующие вычисления. Сравнение усечения с округлением Рассмотрим любое действительное число р, представленное в нормализован- нормализованной десятичной форме: D) р = ±0,еМ2е*3 ... dkdk+l... х 10п. Здесь 1 < d\ < 9 и 0 < dj < 9 для j > 1. Предположим, что к — максимальное число десятичных цифр, на которое можно переносить десятичную точку при вы- вычислениях на компьютере с использованием представления с плавающей точкой; действительное число р представим в виде /JChOp(p)> E) Ahopfr) = ±0,<М2Лз • • • * Х 1ОП> где 1 < d\ < 9 и 0 < dj < 9 для 1 < j < к. Число //Chop(p) называется представле- представлением числа р усечением с плавающей точкой. В этом случае /с-я цифра //сьор(р) равна k-й цифре р. Альтернативой fc-цифровому представлению является пред- представление числа р округлением с плавающей точкой flTOUn(\(p)> задаваемое в виде F) /Undte) = ±0,<М2Л3 ... rk х 10п, где l<rfi <9 и 0<dj<9 для 1 < j < k и последнюю цифру тк получаем округлени- округлением числа dkdk+idk+2 • • • до ближайшего целого числа. Например, действительное число р = — = 3,142857142857142857... имеет следующие семизначные представления: = 0,314285 хЮ\ = 0,314286 хЮ1. Вообще, усечение и округление необходимо записать соответственно как 3,14285 и 3,14286. Читателю следует отметить, что, по существу, все компьютеры исполь- используют некоторую форму округления числа с плавающей точкой. Потеря значащих цифр Рассмотрим два приблизительно равных числа р = 3,1415926536 и? = = 3,1415957341, имеющих точность, равную 11 десятичным цифрам. Предпо- Предположим, что разность между числами равна р - q = -0,0000030805. Поскольку первые шесть цифр р и q одинаковы, разность между р — q состоит только из пяти точных десятичных цифр. Этот феномен называется потерей значащих цифр или потерями из-за вычитания. Эта потеря точности окончательного ответа может подкрасться, когда о ней не подозреваешь.
1.3. АНАЛИЗ ОШИБОК 41 Пример 1.17. Сравним результаты вычисления /E00) и дE00), используя шесть цифр и округление. Функциями являются f(x) = х {у/х + 1 — у/х) и д(х) = = j * г соответственно. Для первой функции /E00) - 500 (у/Ш - \/5Оо) = = 500B2,3830 - 22,3607) = 500@,0223) = 11,1500. Для второй функции 5E00) = VOUl -j- VOUU = = = 11 1748 22,3830 + 22,3607 44,7437 ' Вторая функция, д{х), является алгебраическим эквивалентом /(#), как видно из вычислений _ х(у/х + 1-у/х)(у/х + 1 + у/х) _ v ж +1 + \/ж \/50Т+\/500 х ((Ух-+ТJ - Щ2) /х + 1 X у/х+1 + Ответ, дE00) = 11,1748, имеет меньшую ошибку и является таким же, как полученный округлением истинного ответа 11,174755300747198... с шестью зна- знаками. ' ¦ Это побуцит читателя изучить упр. 12, чтобы избежать потери значения при решении квадратных уравнений. В следующем примере показано, как усеченный ряд Тейлора иногда помогает избежать ошибки потери значения. Пример 1.18. Сравним результат вычисления /@,01) и Р@,01), используя шесть цифр и округление, где ех — 1 — х 1 х х2 - + - + -. Функция Р(х) — это полином Тейлора степени п = 2 для /(ж), разложенной в точке х = 0. Для первой функции
42 Глава 1. Предварительные сведения Для второй функции 1 0,01 0,001 = 0,5 + 0,001667 + 0,000004 = 0,501671. Ответ, Р@,01) = 0,501671, имеет меньшую ошибку и является таким же, как полученный округлением истинного ответа 0,50167084168057542... с шестью знаками. ¦ Для вычисления полинома представление в виде вложенных умножений приводит иногда к лучшему результату. Пример 1Л9. Пусть Р(х) = хг - Зге2 + Зя - 1 и Q(x) = ((х - 3)х + 3)х - — 1. Используя арифметику с трехзначным округлением, вычислим приближение к РB,19) и фB,19). Сравним их с истинными значениями РB,19) = QB,19) = = 1,685159. РB,19) « B,19K - 3B,19J + 3B,19) - 1 = = 10,5 - 14,4 + 6,57 - 1 = 1,67. QB,19) « (B,19 - 3J,19 + 3J,19 - 1 = 1,69. Ошибки равны 0,015159 и —0,004841 соответственно. Таким образом, приближе- приближение QB,19) « 1,69 имеет меньшую ошибку. В упр. 6 исследуется ситуация возле корня этого полинома. ¦ Порядок приближения O(hn) Очевидно, что обе последовательности, {^}^х и {~}^L15 сходятся к нулю. Кроме того, нужно заметить, что первая последовательность стремится к нулю бо- более быстро, чем вторая В последующих разделах для описания скорости сходимо- сходимости последовательности будет использована некоторая специальная терминология и обозначения. Определение 1.9. Говорят, что функция f(h) имеет порядок сходимости "боль- "большое Oh относительно з(/г)" (обозначается как f(h) = O(g(h))), если существуют такие константы Сие, что G) \f{h)\<C\g(h)\ всякий раз, как только h < с. А Пример 1.20. Рассмотрим функции f(x) = х2 + 1 и д(х) = я3. Так как х2 < ж3 и 1 < х3 для х > 1, значит х2 + 1 < 2х3 для х > 1. Поэтому f(x) = О(д(х)). ш Обозначение "O/i большое" дает хороший способ описания скорости роста функ- функции в терминах хорошо известных элементарных функций (xn,x1/n,ax,logax и т. д.). Скорость сходимости последовательностей можно описать подобным спосо- способом.
1.3. Анализ ошибок 43 Определение 1.10. Пусть {хп}<^=1 и {yn}%Li — две последовательности. Говорят, что последовательность {хп} имеет порядок сходимости "Oh большое относи- относительно {уп}" (обозначим это как хп = О(уп)), если существуют такие константы С и N, что (8) |^n|^C|j/n| всякий раз, как только n>N. A Пример 1.21. —^ = О (^), поскольку ^^ < ^ = ? всякий раз, как только п>1. ¦ Часто функция /(/i) приближается функцией p(/i), и известно, что ошибка округления равна M\hn\. Это приводит к следующему определению. Определение 1.11. Предположим, что функция f(h) приближается функцией p(h) и что существует действительная константа М > 0 и такое положительное целое число п, что (9) v if—i ^ М для достаточно малого /i. Говорят, чтор(/г) приближает f(h) с порядком приближения О(/гп), и записывают (Ю) Если отношение (9) переписать в виде \f(h) — p(h)\ < M\hn\, то увидим, что обозначение O(hn) записывается вместо граничной ошибки M|/in|. Следующий результат показывает, как применять определение к простым комбинациям двух функций. Теорема 1.15. Предположим, что f(h) = p(h) + O{hn),g(h) = q{h) + O{hm) и г = min{m, n}. Тогда f(h) + g(h) = p(h) + q(h) + O{hr), A2) f(h)g(h)=p(h)q(h) A3) ^ = ^| + О(ЛГ), если в(Л) # 0 и q(h) ф 0. Поучительно рассмотреть р(х) — полином Тейлора n-й степени, приближаю- приближающий / (х), тогда остаточный член является просто определением О (hn+1), которое ставится вместо опущеных членов, начиная со степени /in+1. Остаточный член
44 Глава 1. Предварительные сведения стремится к нулю с такой же скоростью, как /in+х, когда h приближается к нулю, что видно из соотношений A4) O(hn+l)« Mhn+l« (n + 1)! для достаточно малых /i. Следовательно, O(/in+1) ставится вместо величины МЛП+1, где М — константа или функция, "ведущая себя, как константа". Теорема 1.16 (теорема Тейлора). Предположим, что / ? Сп+1[а; 6]. Если и xq, и х = xq + h принадлежат [а; 6], то A5) /(*„ + Л) = ? ?^Л* + O(h»+i). Следующий пример иллюстрирует эту теорему. При вычислениях используют- используются свойства сложения (i) O{hP) + O{h?) = O(/ip), (ii) O{hp) + О(Л») = O{hr), где г = min{p, q), и свойство умножения (Hi) O(hp)O(hq) = O(hs), где s = p + q. Пример 1.22. Рассмотрим полиномиальные разложения Тейлора Определим порядок приближения для их суммы и произведения. Для суммы получим Так как O{h4) + % = O(h4) и O(hA) + O(h6) = O{h4), то eh + cos(h) = 2 + h + ^ + О(/г4) и порядок приближения равен O{hA).
1.3. Анализ ошибок 45 С произведением поступаем аналогично: е" cos(h) = (l + h + ? + ? + О(Л)) (l + O{h4)O(h6) = h3 5Л4 h5 h* h7 + h++ + O(h6) + O(h4) Так как O(h4)O(h6) = O(hi0) и предыдущее выражение приводится к простейшему виду иг ehcos{h) = 1 + ft - — + O(ft4), о и порядок приближения равен О (Л4). ¦ Порядок сходимости последовательности Численное приближение часто сводится к вычислению последовательности, которая все более и более приближается к нужному ответу. Определение Oh большого для последовательностей приведено в определении 1.10, и определение порядка сходимости для последовательности аналогично определению, которое дано для функций в определении 1.11. Определение 1.12. Предположим, что Нти-юоХп = х, {rn}<^Ll — последо- последовательность и Итп^ооГп = 0. Говорят, что {xn}^Li сходится к а; с порядком сходимости О(гп), если существует такая константа К > 0, что \х — х\ ^-7—г~^ < К для достаточно большого п. Ы " Это можно записать как хп = х + О(гп), или хп -> ж с порядком сходимо- сходимости О(ГЯ). А Пример 1.23. Пусть хп = cos(n)/n2 и rn = 1/п2, тогда Шпп-юоЖп = 0 со скоростью сходимости ОA/п2). Это немедленно следует из соотношения |cos(n)/n2| . i— "—l = |cos(n)| < 1 для всех п. ¦
46 Глава 1. Предварительные сведения Распространение ошибки Исследуем, как ошибка может распространиться в последующих вычислениях. Рассмотрим сложение двух чисел р и q (истинные значения) с приближенными значениями р и q, которые содержат соответственно ошибки ер и eq Начнем с р = р + бр и q = q + eq, их сумма равна A6) р + q = {р + ер) + (q + eq) = (p + q) + (ер + eq). Следовательно, для сложения ошибка суммы равна сумме ошибок слагаемых. Распространение ошибки в умножении более сложно. Произведение равно A7) pq = {р + ер)(р + eq) = pq + peq + qep + epeq. Отсюда, если pnq больше 1 по абсолютной величине, то члены peq и qep пока- показывают, что, возможно, Происходит увеличение первоначальных ошибок ер и eq. Это понятно интуитивно, если посмотреть на относительную ошибку. Перегруп- Перегруппировав члены в A7), получаем A8) pq-pq Предположим, что р ф 0 и q ф 0. Затем можно разделить A8) на pq, чтобы получить относительную ошибку при вычислении произведения pq: р =pqpq ^peg + qeP + epeq ^peq | qep | epeq PQ PQ PQ PQ PQ ' Более того, предположим, что р и q являются хорошими приближениями для р и q, тогда р/р «1, qjq «1 и RpRq = (ер/р) {eq/q)« 0 (Rp и Rq равны относительным ошибкам при приближениях р и q). Затем, произведя эти замены в A9), получим простое соотношение B0) Rpq = ^^ *еЛ + еЛ+0 = П +R PQ Q Р Это показывает, что относительная ошибка произведения pq приближенно равна сумме относительных ошибок приближений pnq. Часто первоначальная ошибка распространяется в последовательности вычис- вычислений. Свойство, требуемое для любого численного процесса, таково: малая ошиб- ошибка в начальных условиях должна приводить к малым изменениям окончательного результата. Алгоритм с таким свойством называют устойчивым, иначе его назы- называют неустойчивым. Всякий раз по возможности мы будем выбирать устойчи- устойчивый метод. Следующее определение используется для описания распространения ошибки.
1.3. Анализ ошибок 47 Определение 1.13. Предположим, что е представляет начальную ошибку и е(п) представляет рост ошибки после п шагов. Если \е(п)\ « пе, то говорят, что рост ошибки является линейным. Если |е(п)| и Кпе, то рост ошибки называют пока- показательным. Если К > 1, показательная ошибка безгранично растет при п —>¦ оо и, если 0 < К < 1, показательная ошибка стремится к нулю при п ->- оо. А В следующих двух примерах показано, как первоначальная ошибка распростра- распространяется тем или иным способом устойчиво или неустойчиво. В первом примере приводятся три алгоритма. Каждый из инх рекуррентно генерирует одну и ту же последовательность. Затем во втором примере сделано небольшое изменение в начальных условиях и проведен анализ распространения ошибки. Пример 1.24. Покажем, что в следующих трех схемах может использоваться арифметика с бесконечной точностью для рекуррентного генерирования членов последовательности B1a) r0 = 1 и гп = -rn_i для n = 1,2, ... 1 4 1 B1b) po = l,Pi = «, и pn = ~pn_i - -pn-2 для n = 2, 3, ... о «3 о B1c) 9o = 1, Qi = «, и gn = —gn-i - 9n-2 для n = 2, 3, ... о О Формула B1а) очевидна. В B1b) разностные уравнения имеют общее решение рп = ЛA/Зп) + В. В этом можно убедиться, выполнив простую подстановку: 4 _1 _ 4 / А 3 3 3 Путем присвоения А = 1 и J5 = 0 генерируется требуемая последовательность. В B1с) разностные уравнения имеют общее решение qn = АA/Зп) + ВЗп. В этом также можно убедиться, выполнив подстановку: = A + BZ = qn. Путем присвоения А = 1 и В = 0 генерируется требуемая последовательность.
48 Глава 1. Предварительные сведения Пример 1.25. Сгенерируем приближение к последовательности {хп} — {1/Зп}, используя схему B2а) B2Ь) B2с) г0 = 0,99996 и 4 ро = l,pi = 0,33332, и рп = - для п = 1, 2, 1 — ттРп-2 для п = 2, 3, ..., = 1, gi = 0,33332, и gn = у ?n-i - <?п-2 для п = 2, 3, .... В B2а) начальная ошибка в tq равна 0,00004, в B2Ь) и B2с) начальные ошибки в р\ и q\ равны 0,000013. Исследуем распространение ошибки в каждой схеме. В табл. 1.4 даны первые десять численных приближений для каждой последова- последовательности, в табл. 1.5 дана ошибка в каждой формуле. Ошибка для {гп} устойчива и уменьшается, как показательная функция. Ошибка для {рп} устойчива. Ошибка для {qn} неустойчива и возрастает с показательной скоростью. Несмотря на то что ошибка для {рп} устойчива, члены последовательности рп -> 0, когда п —> оо, так что в конце концов ошибка преобладает и члены после р% не имеют значащих цифр. На рис. 1.8-1.10 показаны соответственно ошибки в {гп}, {рп} и {дп}. ш Таблица 1.4. Последовательность {хп} = {1/Зп} и приближения {гп}, {рп} и {<?п}- п 0 1 2 3 4 5 6 7 8 9 10 Хп 1 = 1,0000000000 ?=0,3333333333 1=0,1111111111 ?=0,0370370370 ?=0,0123456790 ^3=0,0041152263 ^=0,0013717421 5^7=0,0004572474 ^-=0,0001524158 1э|зз =0,0000508053 ^9=0,0000169351 Гп 0,9999600000 0,3333200000 0,1111066667 0,0370355556 0,0123451852 0,0041150617 0,0013716872 0,0004572291 0,0001524097 0,0000508032 0,0000169344 Рп 1,0000000000 0,3333200000 0,1110933330 0,0370177778 0,0123259259 0,0040953086 0,0013517695 0,0004372565 0,0001324188 0,0000308063 -0,0000030646 Чп 1,0000000000 0,3333200000 0,1110666667 0,0369022222 0,0119407407 0,0029002469 -0,0022732510 -0,0104777503 -0,0326525834 -0,0983641945 -0,2952280648
1.3. Анализ ошибок 49 Таблица 1.5. Последовательность ошибок {хп — гп}, {хп - рп} и {хп — qn} п 0 1 2 3 4 5 6 7 8 9 10 Хп -Гп 0,0000400000 0,0000133333 0,0000044444 0,0000014815 0,0000004938 0,0000001646 0,0000000549 0,0000000183 0,0000000061 0,0000000020 0,0000000007 Хп -Рп 0,0000000000 0,0000133333 0,0000177778 0,0000192593 0,0000197531 0,0000199177 0,0000199726 0,0000199909 0,0000199970 0,0000199990 0,0000199997 Хп — Яп 0,0000000000 0,0000013333 0,0000444444 0,0001348148 0,0004049383 0,0012149794 0,0036449931 0,0109349977 0,0328049992 0,0984149998 0,2952449999 Хп 0,000015 0,000010 0,000005 6 8 10 Рис. 1.8. Устойчивая ожидаемая ошибка последовательности {хп -гп} Хп ~ Рп 0,000020 0,000015 0,000010 0,000005 2 4 6 8 10 Рис. 1.9. Устойчивая ошибка последовательности {хп — рп}. Неопределенность в данных Множество реальных данных содержат неопределенность или ошибку. Этот вид ошибки рассматривается как шум. Она воздействует на точность любого чис- численного вычисления, основой которого являются данные. Улучшение точности не достигается при успешных вычислениях, использующих зашумленные данные. Таким образом, если вы начинаете с данных с d значащими цифрами точности,
50 Глава 1. Предварительные сведения 0,3 0,2 од 2 4 6 8 10 Рис. 1.10. Неустойчивое увеличение ошибки последователь- последовательности {хп -qn} то результат вычислений должен быть представлен с d значащими цифрами точ- точности. Например, предположим, что данные р\ = 4,152 и р2 = 0,07931 имеют четыре значащие цифры точности. Тогда есть искушение учесть все цифры, ко- которые появляются на вашем калькуляторе (т. е. р\ + Р2 = 4,23131). Это неверно, вам не следует делать такое заключение, так как в этом случае вы учитываете зашумленные данные. Правильный ответ в этой ситуации равен р\ +Р2 = 4,231. Упражнения к разделу 1.3 1. Найдите ошибку Ех и относительную ошибку i?x. Определите также число значащих цифр в следующих приближениях. (a) х = 2,71828182, х = 2,7182 (b) у = 98 350, у = 98 000 (c) z = 0,000068, z = 0,00006 2. Выполните следующие вычисления. l/4 rl/4 Установите, какой тип ошибки присутствует в этой ситуации. Сравните свой. ответ с истинным значением р = 0,2553074606. 3. (а) Рассмотрите данные р\ = 1,414 и р2 = 0,09125, которые имеют четыре значащие цифры точности. Определите правильный ответ для суммы Pi +p2 и произведения р\Р2- (Ь) Рассмотрите данные р\ = 31,415 и р2 = 0,027182, которые имеют пять значащих цифр точности. Определите правильный ответ для суммы р\ + + Р2 и произведения
1.3. Анализ ошибок 51 4. Выполните следующие вычисления и установите тип ошибки в этой ситуа- ситуации. sin (f + O,QOQO1) - sin (f) _ 0,70711385222 - 0,70710678119 _ (a) 0,00001 " 0,00001 ~'"' lnB + 0,00005) - lnB) _ 0,69317218025 - 0,69314718056 __ ( ' 0,00005 ~~ 0,00005 5. Иногда ошибки потери значимости можно избежать в результате переста- перестановки членов функции, используя известные тождества тригонометрии или алгебры. Найдите эквивалентную формулу для следующей функции, которая поможет избежать потери значимости. (a) \п(х + 1) — ln(rr) для больших х (b) \/х2 + 1 — х для больших х (c) cos2 (ж) — sin2 (x) для х « тг/4 , ,ч /l + cos(x) (d) J ^-^- ДЛЯ X « 7Г 6. Вычисление полиномов. Пусть Р{х) = ж3 — Зж2 + Зх — 1, Q(x) = ((ж — 3)ж + (a) Используя арифметику с округлением до четырех цифр, вычислите РB,72), <2B,72) и i?B,72). В вычислениях Р(х) предположите, что B,72K = 20,12 и B,72J = 7,398. (b) Используя арифметику с округлением до четырех цифр, вычислите Р@,975), Q@,975) и Л@,975). В вычислениях Р(х) предположите, что @,975K = 0,9268 и @,975J = 0,9506. 7. Используя арифметику с округлением до трех цифр, вычислите следующие суммы (суммы в заданном порядке). ' ' jk—1 3 J&—1 3 8. Обсудите распространение ошибки для следующих случаев. (а) Сумма трех чисел: р + q + г = (р + €«) + (q + €д) + (г + бг). (b) Отношение двух чисел: - = (c) Произведение трех чисел: pqr = (р + €Р)(9 + ея){г + ег). 9. Задано полиномиальное разложение Тейлора 1
52 Глава 1. Предварительные сведения и сов(Л) = 1-^ + ^ + 0(Лв). 2! 4! Определите порядок приближения для их суммы и произведения. 10. Задано полиномиальное разложение Тейлора e* = i h — — — sin(h) = h - -^ + O(/i5). Определите порядок приближения для их суммы и произведения. 11. Задано полиномиальное разложение Тейлора , со8(Л) = 1-^ + ^+О(Лв) Л3 Л5 gin(Ji) = h - - + - + O(h7). Определите порядок приближения для их суммы и произведения. 12. Уточнение квадратичной формулы. Предположите, что а ф 0, Ь2 — 4ас > 0, и рассмотрите уравнение ах2 + Ьх + с = 0. Корни могут быть вычислены с помощью квадратичных формул ... -6 + у/Ь2 - 4ас -Ь - у/Ь2 - 4ас (I) Х\ = И Х2 =: г . 2а 2а Покажите, что эти корни можно вычислить с помощью эквивалентных фор- формул -2с -2с (II) Х\ = И Х2 = , Указание. Освободитесь от иррациональностей в числителе в (i). Примеча- Примечание. В случае, когда |6| « у/Ь2 — 4ас, нужно действовать осторожно, чтобы избежать потери точности, обусловленной катастрофическим сокращением. Если b > 0, то х\ следует вычислять по формуле (и) и Х2 следует вычислять, используя (i). Кроме того, если b < 0, то х\ следует вычислять, используя (i), и Х2 следует вычислять, используя (и). 13. Используйте подходящие формулы для х\ и ггг, упомянутые в упр. 12, для нахождения корней следующих квадратных уравнений. (a) я;2-1000,001я; + 1 = 0 (b) ж2-10000,0001х + 1 = 0 (c) х2 - 100 000,00001* + 1=0 (d) х2 - 1000 000,000001а: + 1 = 0
1.3. Анализ ошибок 53 Алгоритмы и программы 1. Используйте результаты упр. 12 и 13, чтобы построить алгоритм и MATLAB- программу, которая бы точно вычисляла корни квадратного уравнения во всех ситуациях, включая затруднительный случай, когда |6| « у/Ь2 — 4ас. 2. Как в примере 1.25, сгенерируйте 10 первых численных приближений для каждого из следующих трех разностных уравнений. В каждом случае введена малая начальная ошибка. Если не существует начальной ошибки, то каждое из разностных уравнений будет генерировать последовательность {1/2п}<?=1. Получите ответ, аналогичный результату, приведенному в табл. 1.4 и 1.5 и на рис. 1.8-1.10. (a) го = 0,994 и гп = ^гп_ь для п = 1, 2, ... (b) ро = l,pi = 0,497, и рп = §рп_х - рп„2, для п = 2, 3, ... (c) q0 = 1, qi = 0,497, и qn = §gn_i - gn_2, для п = 2, 4, ...
2 Решение нелинейных уравнений f(x) = О Рассмотрим следующую задачу из физики. Шар радиуса г погружен в воду на глубину d (рис. 2.1). Предположим, что шар имеет радиус г = 10 см и сделан из старой сосны, имеющей плотность р = 0,638. Какая часть шара будет находиться в воде? Масса вытесненной воды Mw, когда шар погружен в воду на глубину d, равна rd тгН^Го = ^(r - (Ж - r)Z) ИХ = ; Jo - d) и масса шара равна М& = 4тгг3р/3. Применяя закон Архимеда Mw = Мь, получим следующее уравнение, которое необходимо решить: n{ds - Ы2г + 4г3р) = 0. Рис. 2.1. Часть шара радиуса г, погруженного на глубину d 54
2.1. Использование итерации для решения уравнения х = д(х) у 55 2000 1000 0 -1000 = 2552 - 30d2 + d3 10 15 Рис. 2.2. Кубическое уравнение у = 2552 — ЗОЙ2 + В нашем случае (при г = 10 и р = 0,638) это уравнение становится таким: тгB552 - 30d2 = 0. График кубического полинома у = 2552 — 30d2 + d3 показан на рис. 2.2, и мож- можно увидеть, что решение находится около значения d = 12. В этом разделе из- излагается ряд методов приближенного нахождения корней уравнения. Например, метод деления пополам дает три корня: d\ = —8,17607212, cfo = 11,86150151 и с!з = 26,31457061. Первый корень, d\9 является недопустимым решением этой задачи, так как d не может быть отрицательным. Третий корень, d^, больше, чем диаметр сферы, и это также недопустимо. Корень с?2 = 11,86150151 лежит на интервале [0; 20] и является правильным решением. Его величина приемлема, потому что немного больше половины шара должно быть погружено. 2.1. Использование итерации для решения уравнения х = д(х) Фундаментальным принципом компьютерной науки является итерация. Как подсказывает название, процесс повторяется до тех пор, пока не будет получен ответ. Техника итераций используется для нахождения корней уравнений, реше- решения систем линейных и нелинейных уравнений и решения дифференциальных уравнений. В этом разделе рассматривается процесс итераций, использующий повторные подстановки. Для последовательного вычисления членов итерации необходимы правило или функция д(х) и начальное значение ро- Тогда получаем последовательность значе-
56 Глава 2. Решение нелинейных уравнений f(x) = О ний {рк}, используя правило p&+i = д{рк)- Последовательность имеет такой вид: Ро (начальное значение) A) = ' Рк = д(Рк-\) = д(рк) Что можно сказать о бесконечной последовательности чисел? Если последо- последовательность чисел стремится к пределу, мы чувствуем, что он в некотором роде достигается. Но что происходит, если последовательность чисел расходится или является периодической? В следующем примере описана такая ситуация. Пример 2.1. Правило итерации р0 = 7 и рк+\ = 1,001р* для к = 0,2,... порождает расходящуюся последовательность. Первые ее 200 членов выглядят следующим образом: Pi = 1,001р0 = A,001)A,000000) = 1,001000, р2 = l,001pi = A,001)A,001000) = 1,002001, рз = 1,001р2 = A,001)A,002001) = 1,003003, Pioo = 1,001рэ9 = A,001)A,104012) = 1,105116. Процесс можно продолжать бесконечно, и легко показать, что Imin^^pn = +оо. В разделе 9 показано, что последовательность {рк} является численным реше- решением дифференциального уравнения у' = 0,001у. Как известно, решением урав- уравнения является у(х) = е5'001*. Действительно, если сравнить сотый член после- последовательности с уA00), то получится, что pioo = 1,105116 « 1,185171 = е0'1 = = »A00). ¦ В этом разделе будут рассмотрены типы функций д(х), которые производят сходящиеся последовательности р&. Нахождение неподвижных точек Определение 2.1 (неподвижная точка). Неподвижной точкой функции д(х) называется такое действительное число Р, что Р =
2.1. Использование итерации для решения уравнения х = д(х) 57 Геометрически неподвижные точки функции у = д(х) — это точки пересечения у = д(х) и у = ж. Определение 2.2 (итерация неподвижной точки). Итерация pn+i = д{рп) для п = 0,1,... называется итерацией неподвижной точки. А Теорема 2.1. Предположим, что g — непрерывная функция и что {pn}%Lo ~~ последовательность, сгенерированная с помощью итерации неподвижной точки. Если lim рп = Р9 то Р является неподвижной точкой д(х). п—>оо Доказательство. Если lim рп = Р, то lim рп-м == -Р- Из непрерывности р и п—*оо nfoo соотношения pn+i = 5(Рп) следует, что B) д(Р) =g(\im рп) = lim д(рп) = lim pn+i = P. Таким образом, Р является неподвижной точкой д{х). Пример 2.2. Рассмотрим сходящуюся итерацию ро = О,5 и Первые 10 членов получаем с помощью следующих вычислений: pi = e-o,5ooooo = 0,606531, р2 = e-o,6O653i = 0,545239, рз = е-°>545239 = 0,579703, р9 = е-°'566409 = 0,567560, рю = е-°'567560 = 0,566907. Последовательность сходится, и дальнейшие вычисления показывают, что lim pn = 0,567143.... п-юо Так мы нашли приближение для неподвижной точки функции у = ё~~х. т Условия существования неподвижной точки и сходимость итерационного про- процесса неподвижной точки к неподвижной точке устанавливаются в следующих даух теоремах.
58 Глава 2. Решение нелинейных уравнений f(x) = О Теорема 2.2. Предположим, что д е С[а; Ь]. C) Если область отображения у = д(х) удовлетворяет условию у € [а; Ь] для всех х ? [а; Ь],тод имеет неподвижную точку на [а; Ь]. D) Кроме того, предположим, что д'(х) определена на {а;Ь) и что существует положительная константа К < 1, такая, что \д'(х)\ < К < 1 для всех х Е ? (а; Ь). Тогда # имеет единственную неподвижную точку Р на [а; Ь]. Доказательство C). Если д(а) = а или д(Ь) — Ь, то утверждение справедливо. Иначе значения д(а) и д(Ь) должны удовлетворять условиям д(а) ? (а; Ь] и (?(&) Е G [а; Ь). Функция f(x) = х — д(х) обладает следующим свойством: /(а) = а-(/(а)<0 и /F) = Ь - д{Ь) > 0. Теперь применяем теорему 1.2 и теорему о промежуточном значении к /(ж), когда константа L = 0, и заключаем, что существует такое число Р, Р е (а; Ь), при ко- котором /(Р) = 0. Следовательно, Р = #(Р) и Р является требуемой неподвижной точкой д{х). Доказательство D). Сейчас нужно показать, что это решение единственное. Доказываем от противного, предположив, что существуют две неподвижные точки Pi и Р2- Теперь применяем теорему 1.6 и теорему о среднем значении и приходим к заключению, что существует такое число d € (а; Ь), что Далее, учитывая тот факт, что д{Р\) = Pi и р(Рг) = Р2, упростим правую часть выражения E) и получим Но это противоречит гипотезе D), что |</(#)| < 1 на (а; Ь), поэтому существование двух неподвижных точек невозможно. Следовательно, при условиях, заданных в D), д{х) имеет единственную неподвижную точку Р на (а; Ь). • Пример 2.3. Применим теорему 2.2, чтобы строго доказать, что д(х) = cos(x) имеет единственную неподвижную точку. Очевидно, что д € С[0; 1]. Кроме того, д(х) = cos(z) на интервале [0; 1] — убывающая функция. Таким образом, выполняется условие C) теоремы 2.2 и д имеет неподвижную точку на [0;1]. Наконец, если х Е @;1), то \д'(х)\ = = | — sin(rr)| = sin(z) < sin(l) < 0,8415 < 1. Поэтому К = sin(l) < 1, и выполняется условие D) теоремы 2.2. Значит, д имеет единственную неподвиж- неподвижную точку на [0; 1]. ¦
2.1. Использование итерации для решения уравнения х = д(х) 59 -piM*—\р-р°\- a Pi P Ро Ь Рис. 2.3. Соотношения между P,po, pi, \P — po\ и Теорема 2.3 (теорема о неподвижной точке). Предположим, что (i) g', g Е Е С[а; Ь], (ii) if — положительная константа, (ш) ро ? (я; Ь)> (iv) g(x) € [а; Ь] для всех х ? [а; й]. . F) Если \д'(х)\ < К < 1 для всех я Е [а; 6], то итерация рп = g(pn-i) будет схо- сходиться к единственной неподвижной точке Р ? [а; 6]. В этом случае говорят, что Р — неподвижная точка притяжения. G) Если \д'{х)\ > 1 для всех х € [а;Ь]9 то итерация рп = g(pn-i) не сходится к Р. В этом случае говорят, что Р — неподвижная точка отталкивания и итерация проявляет локальную расходимость. Замечание 1. В утверждении G) предполагается, что ро Ф Р- Замечание 2. Так как д непрерывна на интервале, содержащем Р, допустимо использование более простых критериев |^;(-РI ^ Кк^ и |9'(-РI > 1 в F) и G) соответственно. Доказательство. Прежде всего покажем, что все точки {pn}?Lo лежат на интер- интервале (а;Ь). Начиная с ро> применим теорему 1.6 и теорему о среднем значении. Существует такое значение со ? (а; 6), что |Р-Р1| = \д(Р)-д(ро)\ = \9'(со)(Р-Ро)\ = = \9'Ы\\Р-ро\<К\Р-ро\<\Р-ро\. Поэтому pi не более удалено от Р, чем ро, из чего следует, что р\ € (а; Ь) (рис. 2.3). В общем случае предположим, что рп-\ € (о; Ь). Тогда \Р-Рп\ = \g(P)-g(pn-i)\ = Hcn |/(c)||P-pn-i| <К\Р-рп.г\ Таким образом, pn-i € (a; b) и по индукции все точки {Pn}^Lo лежат на интервале (а; 6). Чтобы завершить доказательство F), осталось показать, что A0) Прежде всего докажем по индукции неравенство (П) \Р-Рп\<Кп\Р-Р0\.
60 Глава 2. Решение нелинейных уравнений f(x) = 0 Случай, когда п = 1, следует из соотношения (8). Используя предположение индукции \Р — Pn-il < Кп~1\Р — ро| и соотношение (9), получим Следовательно, по индукции неравенство A1) выполняется для всех п. Так как 0 < К < 1, член Кп стремится к нулю, когда п стремится к бесконечности. Отсюда A2) 0< lim \P-pn\< lim Kn\P-p0\. п—>оо п—юо Предел \Р — рп\ заключен между нулем слева и нулем справа, поэтому можно сделать вывод, что lim IP — рп\ = 0. Таким образом, lim рп = Р и согласно п->оо п-юо теореме 2.1 итерация рп = #(pn_i) сходится к неподвижной точке Р. Следователь- Следовательно, утверждение F) теоремы 2.3 доказано. Оставляем читателю доказательство правильности утверждения G). • Следствие 2.1. Предположим, что д удовлетворяет условиям F) теоремы 2.3. Грани ошибки, возникающей при использовании приближения рп для Р, задаются формулами A3) \Р - рп\ < Кп\Р - ро\ для всех п>1 и A4) |Р-Рп|<^^Ц^ для всех п>1. Графическая интерпретация итерации неподвижной точки Для существования неподвижной точки Р кривой д(х) необходимо, чтобы гра- график кривой у = д(х) и прямая у = х пересекались в точке (Р,Р). Два простых типа сходящейся итерации, монотонной и колеблющейся, показаны на рис. 2.4(а) и 2.4(Ь) соответственно. Чтобы проследить за процессом, начинаем с точки ро на оси х и двигаемся вертикально к точке (poiPi) = (ро;<?(ро)) н& кривой у = д{х). Затем двигаемся горизонтально от (po;Pi) к точке (pi;pi) на прямой у = х. Наконец, двигаемся вертикально вниз к р\ на оси х-в. Рекуррентная формула pn+i = g{pn) исполь- используется для построения точки (pn;pn+i) на графике. Затем, двигаясь по прямой, определяем положение точки (pn+i;pn+i) на прямой у = х. Вертикальное дви- движение оканчивается в точке рп+\ на оси х. Эта ситуация показана на рис. 2.4. Если ^'(.Р)! > 1, то итерация рп+\ = д(Рп) порождает последовательность, ко- которая расходится от Р. Два простых типа расходящейся итерации, монотонной и колеблющейся, показаны на рис. 2.5(а) и (Ь) соответственно.
2.1. Использование итерации для решения уравнения х = д(х) у 61 Р Р2 Pi РО Рис. 2.4. (а) Монотонная сходимость, когда О < 9*{Р) < 1 У = 9(х) Рис. 2.4. (Ь) Колеблющаяся сходимость, когда — 1 < д'{Р) < О Пример 2.4. Рассмотрим итерацию рп+\ = з(Рп)> в которой используется функ- функция д(х) = 1 + х — #2/4. Неподвижные точки можно найти, решив уравнение х = д(х). Решениями являются (неподвижные точки д) х = —2 и х = 2, про- производная функции равна д'(х) = 1 — х/2, и необходимо рассмотреть только два случая.
62 Глава 2. Решение нелинейных уравнений f(x) = О P PO Pi P2 Рис. 2.5. (а) Монотонное расхождение, когда 1 < Случай (i) Начинаем с Тогда получаем р\ = -2 -2,05 - 2,100625 - 2,20378135 - 2,41794441 lim рп = — оо П-+ОО Так как \д'{х)\ > § на [-3;/ - 1], то согласно теореме 2.3 последователь- последовательность не будет сходиться к Р = —2. Случай (И) Начинаем с Тогда получаем = 1,9996 = 1,99999996 lim pn = 2 п—юо Так как |р'(ж)| < i на [1;3], то согласно теореме 2.3 последователь- последовательность не будет сходиться к Р = 2. Теорема 2.3 не говорит, что произойдет, когда д'(Р) = 1. Следующий при- пример специально построен так, что последовательность {рп} сходится, как только ро > Р, и расходится, если выбрать ро < Р. Пример 2.5. Рассмотрим итерацию рп+\ = g(n), когда функция д(х) = 2(х — — II/2 для rr > 1. Существует только одна неподвижная точка Р = 2. Производная функции равна </(о;) = 1/(х — II/2 и </B) = 1, поэтому теорема 2.3 не приме- применяется. Рассмотрим два случая, когда начальное значение лежит слева или справа от точки Р = 2.
2.1. Использование итерации для решения уравнения х = д(х) у 63 \ \ к Р'2Р0 Pi PZ Рис. 2.5. (b) Расходящиеся колебания, когда д'(Р) < -1 Случай (i) Начинаем с ро = 1,5. Тогда получаем pi = 1,41421356 р2 = 1,28718851 рз = 1,07179943 р4 = 0,53590832 Р5 = 2(-0,46409168I/2 Поскольку ра лежит вне области определения д(х), член р*> не вычис- вычисляем. Случай (И) Начинаем с ро = 2,5. Тогда получаем р\ = 2,44948974 Р2= 2,40789513 рз = 2,37309514 Ра = 2,34358284 lim pn = 2 п—>оо Эта последовательность сходится также медленно к значению Р = 2; действительно, Рюоо = 2,00398714. Абсолютная и относительная ошибки В примере 2.5, случай (ii), последовательность сходится медленно, и после 1000 итераций три последовательных члена равны Рюоо = 2,00398714; ргш = 2,00398317 и рШ2 == 2,00397921. Но не следует возмущаться; затем можно вычислить еще несколько тысяч членов и найти лучшее приближение! Но что станет критерием для остановки итерации? Заметим, что можно использовать разницу между последовательными членами biooi — P1002I = |2,00398317 - 2,00397921| = 0,00000396. Кроме того, известно, что абсолютная ошибка приближения рюоо равна \Р -Pioool = |2,00000000 - 2,00398714| = 0,00398714.
64 Глава 2. Решение нелинейных уравнений f(x) = О Существует около 1000, членов больших, чем |piooi — Рюо2|5 и это показывает, что близость последующих членов не дает гарантии, что точность достигнута. Но обычно это самый доступный критерий, и его часто используют, чтобы остановить итерационный процесс. Программа 2.1 (итерация неподвижной точки). Получить приближенное решение уравнения х = д{х), начав с предположительно угаданного значения ро и итерационного правила pn+i = g(Pn)- function [k,p,err,P]=f ixpt(g,pO,tol,maxl) Ув Вход - g - итерационная функция, вводимая как строка }g} Уо - рО - начальное угаданное значение неподвижной точки % - tol - допустимое отклонение У, - maxl - максимальный член итерации УоВыход - к - число произведенных итераций Ув - р - приближение для неподвижной точки Ув - err - ошибка приближения Уо - Р - содержит последовательность {рп} РA)= рО; for k=2:maxl P(k)=feval(g,P(k-l)); err=abs(P(k)-P(k-l)); relerr=err/(abs(P(k))+eps); p=P(k); if (err<tol) I (relerr<tol),break;end end if k == maxl disp(Jмаксимально допустимое число итерацийО end Р=Р'; Замечание. Если использовать строго определенную функцию f ixpt, то необхо- необходимо вводить М-файл g.m в виде строки: 'g' (см. MATLAB Дополнение). Упражнения к разделу 2.1 1. Определите точно, имеет ли функция единственную неподвижную точку на заданном интервале (следуя примеру 2.3). (a) д(х) = 1 - х2/4 на [0; 1] (b) д(х) = 2~* на [0; 1]
2.1. Использование итерации для решения уравнения х = д(х) 65 (с) 0(а;) = 1/*на[О,5;5,2] 2. Исследуйте природу итерации неподвижной точки, когда д(х) = -4 + 4ж - -ж2. (a) Решите уравнение g(rr) = х и покажите, что Р=2иР=4— непо- неподвижные точки. (b) Используйте в качестве начального значения ро = 1,9 и определите р\, р2 ир3. (c) Используйте ро = 3,8 в качестве начального значения и определите р\,р2 ирз- (d) Найдите ошибку J5^ и относительную ошибку Rk значения р^ в пп. (Ь) и (с). (e) Какой вывод можно сделать из теоремы 2.3? 3. В одной и той же системе координат заданы график д{х), прямая у = х и неподвижная точка Р. Используя начальное значение ро, вычислите р\ и Р2- Постройте рисунок, подобный рис. 2.4 и 2.5. Исходя из своего графика, определите геометрически, когда итерация неподвижной точки сойдется. (a) д(х) = F + хI/\Р = Зир0 = 7 (b) д{х) = 1 + 2/х,Р = 2иро = 4 (c) д(х) = ж2/3, Р = 3 и ро = 3,5 (d) д(х) = -а;2 + 2а: + 2, Р = 2 и ро = 2,5 4. Пусть д(ж) = х2 + х — 4. Можно ли использовать итерацию неподвижной точки для нахождения корня (или корней) уравнения х — д{хI Если можно, то объясните, почему? 5. Пусть д(х) = xcos(ar). Решите уравнение х = д(х) и определите все непо- неподвижные точки д (их бесконечно много). Можно ли использовать итерацию неподвижной точки для нахождения корня (корней) уравнения х = д(х)! Объясните, почему? 6. Предположим, что д(х) и д'{х) определены и непрерывны на (a; b); Po-,PiiP2€ G (а; Ь), р\ = д{ро) и р2 = д{р\)- Предположим также, что существует такая константа К, что \д'(х)\ < К. Покажите, что \р2 — р\\ < К\р\ — ро|- Указа- Указание. Воспользуйтесь теоремой о среднем значении. 7. Предположим, что д(х) и д'{х) непрерывны на интервале (а; Ь) и что на этом интервале \д'(х)\ > 1. Если неподвижная точка Р и начальные приближения ро и р\ лежат на интервале (а; Ь), то покажите, что из р\ = д{ро) следует, что |J57x| — \Р—Рг\ > \Р~Pol = |^o|- Таким образом будет доказано утверждение G) (локальная несходимость) теоремы 2.3.
66 Глава 2. Решение нелинейных уравнений f(x) = О 8. Пусть д(х) = —0,0001ж2 + х и ро = 1. Рассмотрите итерацию неподвижной точки. (a) Покажите, что ро > р\ > • • • > рп > Pn+i > • • •. (b) Покажите, что рп > О для всех п. (c) Так как последовательность {рп} убывающая и ограничена снизу, то она имеет предел. Чему равен этот предел? 9. Пусть д(х) = 0,5ж + 1,5 иро = 4. Рассмотрите итерацию неподвижной точки. (a) Покажите, что неподвижной точкой является Р = 3. (b) Покажите, что \Р - рп\ = \Р — pn-i|/2 Для п = 1,2,3, (c) Покажите, что |Р - рп| = |Р - Ро|/2П для п = 1,2,3,.... 10. Пусть ^(ж) = ж/2. Рассмотрите итерацию неподвижной точки. (a) Найдите величину \рк+г -p*|/bfc+i|. (b) Что случится, если только относительная ошибка явится критерием оста- остановки, как в программе 2.1? 11. Почему для итерации неподвижной точки благоприятно, когда д'{Р) ~ 0? Алгоритмы и программы 1. Используйте программу 2.1, чтобы приблизить неподвижные точки (если они есть) следующих функций. Должна ли точность иметь 12 десятичных знаков? Постройте график каждой функции и прямой у = ж, где ясно показана любая из неподвижных точек. (a) д(х) =х5- Зх3 - 2х2 + 2 (b) д(х) = cos(sin(a;)) (c) д(х) = х2 — sin(a: + 0,15) (d) д(х)=а*-«»Ы 2.2. Методы интервалов локализации корня Рассмотрим для интереса знакомый пример. Предположим, что вы ежемесячно вкладываете в банк сумму, равную Р, и ежегодный процент дохода равен /. Тогда общая сумма А после N вкладов составляет Первый член справа равенства A) равен последнему вкладу. Вклад, который бла- благодаря процентам, выплаченным за один период, равен Р A + ^). Еще более
2.2. Методы интервалов локализации корня 67 ранний вклад теперь составляет Р A + ^) и т. д. Наконец, первый взнос, сде- сделанный N — 1 месяц тому назад, составляет Р A + ^) . Напомним, что сумма N членов геометрического ряда равна B) i + r + r2 + r3 + ..e + rJV-ilzI^ 1 — г Выражение A) можно записать в виде и, выполнив замену г = A + //12) в B), получить Это выражение можно упростить, чтобы получить формулу для ежегодно причи- причитающейся ренты: C) —цп В следующем примере равенство используется для вычисления ежегодно при- причитающейся ренты и рекуррентная последовательность вычислений — для нахо- нахождения ответа. Пример 2.6. Будем платить $250 в месяц в течение 20 лет и потребуем, чтобы общая сумма всех вкладов и процентов через 20 лет была равна $250 000. Какой должна быть процентная ставка / для достижения этой цели? Если зафиксировать N = 240, то А — функция только от /, т. е. А = А{1). Начнем с двух предполо- предположений, что /о = 0,12 и 1\ = 0,13, и, выполнив последовательность вычислений, придем к окончательному ответу. Начиная с /о = 0,12, получим Поскольку это значение является несколько меньшим, чем требуется в задаче, следующей попыткой будет присвоение 1\ = 0,13:
68 Глава 2. Решение нелинейных уравнений f(x) - О Это значение несколько больше, поэтому попытаемся взять среднее значение I<i = = 0,125: Полученное значение снова больше, и можно заключить, что требуемая процент- процентная ставка лежит на интервале [0,12; 0,125]. Следующее предположение — средняя точка h = 0,1225: -1 =255803. Это снова больше, и сейчас интервал сузился до [0,12; 0,1225]. В последнем вы- вычислении опять используется средняя точка 1± = 0,12125: -1 =251518. Последующая итерация дает возможность получить столько значащих цифр, сколько требуется. Назначение этого примера — найти значение /, которое обес- обеспечивает точно установленное значение функции L (оно является решением урав- уравнения A(I) = L). Обычно константа L стоит слева и решается уравнение А{1) — - L = 0. ¦ Определение 2.3 (корень уравнения, нуль функции). Предположим, что f(x) — непрерывная функция. Любое число г, для которого /(г) = 0, называ- называется корнем уравнения f(x) = 0. Говорят также, что г является нулем функции fix). A Например, уравнение 2.x2 + 5х — 3 = 0 имеет два действительных нуля г\ = 0,5 и Г2 = —3, в то время как соответствующая функция f(x) = 2х2 + Ъх — 3 = Bх — — 1)(х + 3) имеет два действительных корня: т\ = 0,5 и Г2 = —3. Метод Больцано деления пополам (метод бисекции) В этом разделе рассматривается первый метод интервалов для нахождения ну- нулей непрерывной функции. Начнем с исходного интервала [а; Ь], на котором /(а) и f(b) имеют противоположные знаки. Так как график непрерывной функции у = = f(x) является непрерывным, он пересекает ось х в точке х — г, которая лежит где-то на интервале (рис. 2.6). Метод деления пополам сдвигает крайние точки все ближе и ближе, пока на интервале не получится произвольно малый отрезок,
2.2. Методы интервалов локализации корня (a-J(a)) (a;f(a)) 69 (а) Если /(а) и /(с) имеют про- противоположные знаки, то вы- выполнять сжатие справа. Рис. 2.6. Решение методом деления пополам (с; f(c)) (b) Если /(с) и /(&) имеют про- противоположные знаки, то вы- выполнять сжатие слева. содержащий нуль функции. Решающим шагом процесса деления интервала по- пополам является выбор средней точки с = (а + fr)/2 и анализ трех возможностей, которые могут возникнуть. D) Если f(a) и /(с) имеют разные знаки, нуль лежит на интервале [а; с]. E) Если /(с) и /(Ь) имеют разные знаки, нуль лежит на интервале [с; Ь]. F) Если /(с) = 0, значит, нулем является с. В любом из двух случаев, D) или E), мы рассматриваем половину интервала как начальный интервал, который содержит корень, и "сжимаем его" (см. рис. 2.6). Продолжаем процесс, обозначая новый меньший интервал [а; Ь] и повторяя про- процесс до тех пор, пока интервал не станет настолько малым, насколько требуется. Таким образом, процесс деления пополам включает последовательность вложен- вложенных интервалов и их средних точек. Используем следующее обозначение, чтобы отслеживать детали процесса. [floi fro] — начальный интервал и со = Q°^Q — средняя точка. [^1; b\] — второй интервал, который содержит нуль г, и с\ — его средняя точка; длина интервала [а\\ Ь{\ равна половине длины [ао; fro]. После достижения n-го интервала [ап;Ьп], который включает г и имеет среднюю точку с^,, строим интервал [an+i; frn+i]> который также содержит г и длина которого равна половине длины [an; frn].
70 Глава 2. Решение нелинейных уравнений f(x) = 0 Оставим в качестве упражнения для читателя доказательство того, что после- последовательность левых конечных точек убывающая, а последовательность правых крайних точек — возрастающая, т. е. (8) а0 < аг < • • • < ап < • - • < г < • • • < Ьп < - • • < Ъх < Ьо, где сп = ^±&iL? и если /(an+i)/Fn+i) < 0, то (9) [on+i;bn+i] = [ап]сп] или [an+i;bn+i] = [cn',bn] для всех п. Теорема 2.4 (теорема о делении отрезка пополам). Предположим, что / € G <7[a; Ъ] и существует такое число г Е [а; Ь], что /(г) = 0. Если /(а) и /(Ь) имеют различные знаки и {cn}?L0 представляет последовательность средних точек, по- полученных в результате деления пополам (8) и (9), то A0) \г-сп\< 2^ТГ ДОЯ п = 0, 1, ..., и, значит, последовательность {cn}^L0 сходится к нулю функции х — г, т. е. A1) lim сп = г. П-ЮО Доказательство. Так как и нуль г и средняя точка сп лежат на интервале [ап; Ьп], расстояние между сп и г не может быть больше половины длины этого интервала (рис. 2.7). Поэтому A2) \г - cn| < n n для всех п. Заметим, что следующие один за другим интервалы образуют последовательность h-01 = ^2^- &2 — Q>2 = 2 22 * Оставим читателю в качестве упражнения доказать с помощью математической индукции, что A3) Ьп-ап = Ь^. Объединив результаты A2) и A3), получим, что A4) \г - сп\ < °2п+^° для всех п. А сейчас можно воспользоваться рассуждениями, сходными с приведенными в теореме 2.3, для доказательсва, что из A4) вытекает, что последовательность }^=0 сходится к г, и теорема доказана. •
2.2. Методы интервалов локализации корня 71 2 Рис. 2.7. Корень г и средняя точка сп интервала [ап; Ьп] для метода деления пополам Пример 2.7. Функция h(x) = xsin(a;) возникает при изучении недемпфирован- недемпфированных форсированных колебаний. Найти значение х, которое лежит на интервале [0;2], на котором функция принимает значение h(x) = 1 (функция sin(x) вычис- вычисляется в радианах). Воспользуемся методом деления пополам для нахождения нуля функции f(x) = = xsin(x) — 1. Начав с ао = 0 и bo = 2, вычислим /@) = -1,000000 и /B) = 0,818595. Таким образом, корень f(x) = 0 лежит на интервале [0;2]. Средняя точка — со = 1 и /A) = —0,158529. Следовательно, функция меняет знак на интервале [со;6о] = [1;2]. Далее выполняем сжатие влево и присваиваем а\ = со и b\ = bo. Средняя точка равна ci = 1,5 и f{cx) = 0,496242. Из /A) = -0,158529 и /A,5) = 0,496242 вытекает, что корень лежит на интервале [ai;ci] = [1,0; 1,5]. Следующим шагом является сжатие вправо и присвоение а>2 = а\ и 62 = ci* Таким образом получаем последовательность {с&}, которая сходится к rwl, 114157141. Пример вычислений приведен в табл. 2.1. ¦ Достоинством метода деления пополам является то, что формула A0) дает предопределенную оценку точности вычисляемого решения. В примере 2.7 на- начальная длина интервала равнялась bo — ао = 2. Предположим, что табл. 2.1 продлена до 31-й итерации. Тогда в силу A0) ошибка была бы ограничена значе- значением |??31|<B — 0)/232 «4,656613 х 10~10. Поэтому С31 было бы приближением к г с 9-ю десятичными знаками точности. N повторяемых делений пополам, необ- необходимых для гарантии того, что N-я средняя точка с# является приближением к нулю функции и ошибка приближения меньше, чем наперед заданное значение S, равно Доказательство этой формулы оставлено читателю в качестве упражнения. Другим популярным алгоритмом является метод ложного положения, или метод regula falsi. Его стали использовать потому, что метод деления пополам
72 Глава 2. Решение нелинейных уравнений f(x) = О Таблица 2.1. Решение уравнения ж sin (ж) — 1 = 0 методом деления пополам ГЪ 0 1 2 3 4 5 6 7 8 Крайняя слева точка, а^ 0 1,0 1,00 1,000 1,0000 1,06250 1,093750 1,1093750 1,10937500 Средняя точка, Cfc 1, 1,5 1,25 1,125 1,0625 1,09375 1,109375 1,1171875 1,11328125 Крайняя справа точка, bk 2, 2,0 1,50 1,250 1,1250 1,12500 1,125000 1,1250000 1,11718750 Значение функции, f(ck) -0,158529 0,496242 0,186231 0,015051 -0,071827 -0,028362 -0,006643 0,004208 -0,001216 сходится весьма медленно. Как и раньше, предполагаем, что f(a) и f(b) име- имеют противоположные знаки. В методе деления пополам средняя точка интерва- интервала [а; Ь] используется как следующая итерация. Приближение получается лучше, если найти точку (с;0), в которой секущая L, соединяющая точки (a;f(a)) и F; f{b)), пересекает ось х (рис. 2.8). Чтобы найти значение с, запишем ниже два варианта для тангенса угла наклона т прямой L: (.6) о — а с использованием точек (а; /(а)) и (Ь; f(b)) и где используются точки (с;0) и F; Приравнивая тангенсы угла наклона прямой в A6) и A7), получим уравнение /(Ь)-/(а)= 0-/F) 6-а с-Ь ' которое легко решаем относительно с, и f(b)(b-a) A8) c = b- f(b)-f(aY Здесь, как и ранее, также существуют три возможности. A9) Если /(а) и /(с) имеют различные знаки, нуль лежит на интервале [а; с]. B0) Если/(с) и f(b) имеют различные знаки, нуль лежит на интервале [с; Ь]. B1) Если /(с) = 0, значит, нулем является с.
2.2. Методы интервалов локализации корня (a; f(a)) («;/(«)) 73 \^^Jc;/(c)) (а) Если f(a) и /(с) имеют про- противоположные знаки, то вы- выполняем сжатие справа. Рис. 2.8. Процесс решения для метода ложного положения (Ь) Если /(с) и f(b) имеют про- противоположные знаки, то вы- выполняем сжатие слева. Сходимость метода ложного положения Процесс решения, включающий A9) и B0) вместе с A8), используется для по- построения последовательности интервалов {[ап; Ьп]}, каждый из которых содержит нуль. Каждый шаг приближения нуля г равен B2) сп = и можно доказать, что последовательность {сп} будет сходиться к г. Но необхо- необходима осторожность: хотя интервалы длины Ьп — ап становятся все меньше, может случиться, что они не сходятся к нулю. Если график у == f(x) вогнутый вблизи точки (г;0), одна крайняя точка остается фиксированной, а другая сходится к решению (см. рис. 2.9). Сейчас снова решим уравнение х sin(rr) — 1 = 0 с помощью метода ложного положения и отметим, что он сходится быстрее, чем метод деления пополам. Отметим также, что {6П — ап}™=0 не приводит к нулю. Пример 2.8. Воспользуемся методом ложного положения для нахождения корня уравнения х sm(x) — 1=0, который находится на интервале [0,2] (функция sin(a;) вычисляется в радианах). Начиная с а0 = 0 и Ьо = 2, получим, что /@) = -1,00000000 и /B) = = 0.81859485, поэтому корень лежит на интервале [0;2]. Воспользуемся форму- формулой B2) и получим
74 Глава 2. Решение нелинейных уравнений f(x) = О у = <2о =z 0,1 = Рис. 2.9. Стационарные крайние точки для метода лож- ложного положения Функция изменяет знак'на интервале [со; Ьо] = [1,09975017; 2], поэтому сдвигаем- сдвигаемся влево и присваиваем а\ = со и Ъ\ = &о- Формула B2) приводит к приближению _ 0,81859485B - 1,09975017) 0,81859485 - (-0,02001921) = 0,00983461. Следующее изменение знака функции /(ж) происходит на интервале [ai;ci] = = [1,09975017; 1,12124074], и следующим решением будет сдвиг вправо и при- присвоение О2 = ai и &2 = сь Результаты вычислений приведены в табл. 2.2. ¦ Таблица 2.2. Решение уравнения х sin(z) - к 0 1 2 3 Левая крайняя точка, а* 0,00000000 1,09975017 1,09975017 1,09975017 Средняя точка, Ск 1,09975017 1,12124074 1,11416120 1,11415714 -1 = 0 методом ложного положения Правая крайняя точка, Ьк 2,00000000 2,00000000 1,12124074 1,11416120 Значение функции, f(ck) -0,02001921 0,00983461 0,00000563 0,00000000 Критерий окончания итерационного процесса, который используется в методе деления пополам, не пригоден для метода ложного положения и может привести к бесконечному циклу. Близость последовательных итераций и величина |/(сп)| используются в критерии окончания итерации в программе 2.3. В разделе 2.3 обсуждается причина такого выбора.
2.2. Методы интервалов локализации корня 75 Программа 2.2 (метод деления пополам). Приближенное нахождение корня уравнения f(x) = О на интервале [а; 6]. Применять только для случая, когда функция f(x) непрерывна и /(а) и f(b) имеют различные знаки. function [c,err,yc]=bisect(f,a,b,delta) '/«Ввод - f - функция вводится как строка Jf' 7, - аи b - левая и правая крайние точки % - дельта - допустимое отклонение УвВыход - с - нуль X - yc=f(c) '/• - err - ошибка вычисления с ya=feval(f,а); yb=feval(f,b); if ya*yb>0,break,end maxl=l+round((log(b-a)-log(delta))/logB)); for k=l:maxl c=(a+b)/2; yc=feval(f,c); if yc==O a=c; b=c; elseif yb*yc>0 b=c; yb=yc; else a=c; ya=yc; end if b-a < delta, break,end end c=(a+b)/2; err=abs(b-a); yc=feval(f,c); Программа 2.3 (метод ложного положения или метод regula falsi). Прибли- Приближенное нахождение корня уравнения f(x) = 0 на интервале [а; 6]. Только для случая, когда функция f(x) непрерывна и /(а) и f(b) имеют различные знаки. function [c,err,yc]=regula(f,a,b,delta,epsilon,maxl) */,Ввод - f - функция вводится как строка 3f' 7, - а и b - левая и правая крайние точки 7, - delta - допустимое отклонение для нуля
76 Глава 2. Решение нелинейных уравнений f(x) = О У, - epsilon - допустимое отклонение для значения f в нуле °/о - maxl - максимальное число итераций '/«Вывод - с - нуль у. - yc=f(c) Ув - err - ошибка вычисления для с ya=feval(f,а); yb=feval(f,b); if ya*yb>0 disp('Замечание: f(a)*f(b)>0>), break, end for k=l:maxl dx=yb*(b-a)/(yb-ya); c=b-dx; ac=c-a; yc=feval(f,c); if yc==0,break; elseif yb*yc>0 b=c; yb=yc; else a=c; ya=yc; end dx=min(abs(dx),ac); if abs(dx)<delta,break,end if abs(yc)<epsilon,break,end end c; err=abs(b-a)/2; yc=feval(f,c); Упражнения к разделу 2.2 В упр. 1 и 2 найдите приближение для процентной ставки /, которая даст общую сумму ренты, равную А, если 240 месяцев делать ежемесячный вклад, равный Р. Используйте два начальных значения для / и вычислите три последующих приближения с помощью метода деления пополам. 1. Р = S275; А = $250000; /0 = 0,11; h = 0,12
2.2. Методы интервалов локализации корня 77 2. Р = $325; А = $400000; /0 = 0,13; Д = 0,14 3. Для каждой из функций найдите такой интервал [а; ft], что /(а) и /(ft) имеют различные знаки. (a) f(x) = ех -2-х (b) f(x) = cos(x) + 1 — ж (c) /(ж) = 1п(ж)-5 + ж (d) /(ж) =ж2-10ж + 23 В упр. 4-7 начните с интервала [ао; fto] и используйте метод ложного положения для вычисления со, сь c-i и сз. 4. еж - 2 - х = 0, [а0; Ьо] = [-2,4; -1,6] 5. cos(z) + 1 - х = 0, [а0; fto] = [0,8; 1,6] 6. ln(rc) - 5 + ж = 0, [а0; ft0] = [3,2; 4,0] 7. я2 - 10* + 23 = 0, [а0; fto] = [6,0; 6,8] 8. Обозначим интервалы, которые появятся в методе деления пополам, как [ao;fto], [ai;bi], ..., [an;ftn]. (a) Покажите, что ао < а>\ < • • • < ап < • • • и • • • < Ьп < • • • < fti < Ьо. (b) Покажите, что Ьп — ап = (fto — ao)/2n. (c) Пусть сп = (ап + Ьп)/2 — средняя точка каждого интервала. Покажите, что lira ап = lira cn = lim ftn. п—>оо п—>-оо п—»оо Указание. Найдите в учебниках теоремы о сходимости монотонных по- последовательностей. 9. Что произойдет, если метод деления пополам использовать для функции /(*) = 1/(х-2)и (а) интервала [3; 7]; (Ь) интервала [1; 7]? 10. Что произойдет, если метод деления пополам использовать для функции f(x) — tan(a:) и (а) интервала [3; 4]; (Ь) интервала [1:3]? 11. Предположим, что метод деления пополам используется для нахождения нуля функции f(x) на интервале [2; 7]. Сколько раз нужно делить этот интервал, чтобы иметь гарантию, что точность приближения сдг будет равна 5 х 10~9? 12. Покажите, что формула B2) для метода ложного положения является алге- алгебраическим эквивалентом выражения Q>nf{bn) ~ bnf(an) f(bn)-f(an) *
78 Глава 2. Решение нелинейных уравнений f(x) = О 13. Докажите формулу A5) для определения числа итераций, которые необхо- необходимо выполнить в методе деления пополам. Указание. Воспользуйтесь нера- неравенством |Ь — a|/2n+1 < 6 и постройте алгоритм. 14. Полином f(x) = (х — 1K{х — 2)(х — 3) имеет три нуля: х = 1 кратности 3 и х = 2иж = 3 каждый кратности 1. Если по и Ьо — любые два действительных числа, таких, что ао < 1 и Ьо > 3, то f(o>o)f{bo) < 0. Значит, на интервале [ао; Ьо] метод деления пополам сходится к одному из трех нулей. Если ао < 1 и Ьо > 3 выбрать так, что сп = a*+b* не равно 1, 2 или 3 для любого п > 1, то метод деления пополам никогда не сойдется к одному из нулей. Объясните, почему? 15. Если полином f(x) имеет нечетное число нулей на интервале [ао; Ьо] и каж- каждый нуль имеет нечетную кратность, то /(ао)/(Ьо) < 0 и метод деления пополам сойдется к одному из нулей. Если ао < 1 и Ьо > 3 выбрать так, что сп = an+bn не равнр какому-либо из нулей функции f(x) для любого п> 1, то метод деления пополам никогда не сойдется к одному из нулей. Объясните, почему? Алгоритмы и программы 1. Найдите приближение (с точностью до 10 десятичных знаков) для процент- процентной ставки /, которая даст общую сумму годовой ренты, равную $500 000, если 240 месяцев постоянно вносить по $300. 2. Рассмотрите шар радиуса г = 15 см, который сделан из вида белого дуба, имеющего плотность р = 0,710. Какая часть шара (с точностью до 8 деся- десятичных знаков) погружена в воду, если он находится в воде? 3. Преобразуйте программы 2.2 и 2.3, чтобы получить на выходе матрицу, по- подобную матрице, представленной в табл. 2.1 и 2.2 (т. е. первая строка матрицы должна иметь вид [0 ао со 6о /(со)]). 4. Используйте свою программу для решения упр. 3, чтобы найти приближенно три наименьших положительных корня уравнения х = tan(x) (с точностью до 8 десятичных знаков). 5. Шар радиусом, равным единице, разрезан плоскостью на два сегмента. Один сегмент содержит две части объема другого. Определите расстояние х плос- плоскости от центра шара (с точностью до 10 десятичных знаков). 2.3. Начальное приближение и критерий сходимости Метод интервалов зависит от того, можно ли найти интервал [а; Ь] таким об- образом, чтобы /(а) и f(b) имели различные знаки. Как только будет найден такой
2.3. Начальное приближение и критерий сходимости 79 интервал, величина которого не имеет значения, итерация будет длиться до тех пор, пока не будет найден корень. Поэтому данные методы называют глобально сходящимися. Однако, если f(x) = 0 имеет несколько корней на интервале [а; 6], следует использовать различные начальные интервалы для нахождения каждого корня. Но определять эти малые интервалы, на которых f(x) меняет знак, нелегко. В разделе 2.4 излагается метод Ньютона-Рафсона и метод секущих для решения уравнения f(x) = 0. Оба метода требуют, чтобы сначала было найдено такое приближение к корню, которое гарантировало бы сходимость. Поэтому данные методы называются локально сходящимися. Обычно они сходятся более быстро, чем глобально сходящиеся методы. Некоторые смешанные алгоритмы начинают с глобально сходящихся методов и переходят к локально сходящемуся методу, когда итерация близко подходит к корню. Если вычисление корней является частью большего проекта, то удобно сначала построить график функции. Увидев график функции у = /(ж), можно принять решение на основании того, как выглядит график (вогнутая функция, наклон, ко- колебательное поведение, локальный экстремум, точки перегиба и т. д.). Но более важно следующее: когда координаты точек на графике приблизительно известны, тогда их можно проанализировать и приближенно определить расположение кор- корней. Эти приближения затем можно использовать в качестве начальных значений в алгоритмах нахождения корней уравнения. Поступать следует осторожно. В программном обеспечении компьютера гра- графики используются в несколько искаженном виде. Предположим, что компьютер использует график функции у = f(x) на [а; Ь]. Обычно интервал делят на N + 1 равных отрезков точками, а = хо < х\ < • • • < ггдг = Ь, и вычисляют значения функции у*; = / (хь). Затем каждый отрезок прямой или "подогнанной кривой" вычерчивают между последовательными точками (xk*-i',yk-i) и {хк\Ук) Для к = = 1,2,..., N. Точек должно быть настолько много, чтобы не пропустить корень в той части кривой, где функция изменяется медленно. Если f(x) непрерывна и две смежные точки, (ж*_1; Ук-i) и (#&; Ук), лежат по различные стороны оси х, то согласно теореме о промежуточном значении по крайней мере один корень лежит на интервале [a^-i;^]» Но если существует корень или даже несколько близко расположенных корней на интервале [ж*_1 ;:*;*] и две соседние точки {xk-i]Vk-i) и [хк\Ук) лежат на одной и той же стороне оси х, то построенный компьютером график не отразит ситуацию, в которой применима теорема о промежуточном значении. График не будет соответствовать действительному графику функции /. Это не редкость, когда функция имеет "сливающиеся" корни, т.е. корни, в которых график соприкасается с осью х, но не пересекает ее, или корни, "сливающиеся" с вертикальной асимптотой. Такие ситуации необходимо рассматривать, когда при- применяется любой численный алгоритм для нахождения корня. Таким образом, вблизи двух соседних корней или около сливающихся корней у построенной компьютером кривой между точкой {xk-i\yk-i) и {хк\Ук) может
80 Глава 2. Решение нелинейных уравнений f(x) = 0 Таблица 2.3. Приближенное нахождение места расположения корней * -1,2 -0,9 -0,6 -0,3 0,0 0,3 0,6 0,9 1,2 Значения Ук-i -3,125 -0,968 0,361 1,024 1,183 1,000 0,637 0,256 0,019 функции Ук -0,968 0,361 1,024 1,183 1,000 0,637 0,256 0,019 0,088 Разность у-ов У к -Ук-1 2,157 1,329 0,663 0,159 -0,183 -0,363 -0,381 -0,237 0,069 Ук+1 - Ук 1,329 0,663 0,159 -0,183 -0,363 -0,381 -0,237 0,069 0,537 Изменение знака у f(x) или f'(x) f изменяет знак на [xk-i,Xk] /' изменяет знак около Хк /' изменяет знак около Xk недоставать пересечения или соприкосновения с осью х. Если \f(xk)\ меньше наперед заданного значения е (т. е. f{xk) ~ 0), то х^ является предварительным приближением корня. Однако график может быть близок к нулю на широком диа- диапазоне значений около точки Хк- Тогда точка #&, возможно не близка к истинному корню. Поэтому добавляется требование, чтобы тангенс угла наклона графика из- изменял знак вблизи точки (хк',Ук), т.е. тк-\ = ^1^1* и тк = jj^Ij* должны иметь различные знаки. Так как Xk — Хк-\ > 0 и Xk+\ — ж* > 0, нет необходимо- необходимости использовать отношение разностей, и достаточно для проверки увидеть, что разности yk — Ук-\ и y/c+i — Ук меняют знак. В этом случае Хк является прибли- приближением корня. К несчастью, нет гарантии, что такое начальное значение приведет к сходящейся последовательности. Если график у = f(x) имеет локальный ми- минимум (или максимум), чрезвычайно близкий к нулю, то, возможно, что Хк будет рассматриваться как приближенное значение корня, когда f{xk)~ 0, несмотря на то, что Хк, возможно, и не близка к корню. Пример 2.9. Найдем приближенное расположение корней уравнения ж3 — х2 — — х + 1 = 0 на интервале [—1.2; 1.2]. Для определенности выберем N = 8 и посмотрим табл. 2.3. Рассмотрим три абсциссы: —1,05; —0,3 и 0,9. Так как f(x) меняет знак на ин- интервале [—1,2;—0,9], значение —1,05 является приближенным корнем. Действи- Действительно, /(-1,05) = -0,210. Несмотря на то что тангенс угла наклона меняет знак около точки —0,3, /(-0.3) = 1,183; следовательно, —0,3 не близко к корню. И наконец, тангенс угла наклона меняет знак около 0,9 и /@,9) = 0,019, поэтому 0,9 является при- приближенным корнем (рис. 2.10). ¦
2.3. Начальное приближение и критерий сходимости у 81 -1,0 Рис. 2.10. График кубического полинома у = х3— х2—х + 1 Проверка сходимости График можно использовать для того, чтобы увидеть приблизительно место на- нахождения корня, но алгоритм должен использовать для вычисления значения рп, т. е. приемлемое компьютерное решение. Часто применяют итерацию для получе- получения последовательности {рь}, сходящейся к корню р, и критерий (или стратегия) останова должен быть составлен заранее так, чтобы компьютер прекратил вы- вычисления, когда достигнет необходимого приближения. Поскольку нужно решить уравнение f(x) = 0, окончательное значение рп должно удовлетворять неравен- неравенству \f{pn)\ < б. Пользователь может задать допустимое значение в для величины |/(рп)|> и тогда итеративный процесс будет порождать точки Рь = (pk->f{pk)) ДО тех пор, пока последняя точка Рп лежит в горизонтальной полосе, юграниченной прямыми у = +е и у = —6, как показано на рис. 2.11(а). Этот критерий пригоден, если пытаться решить уравнение h(x) = L, применив алгоритм для нахождения корня к функции f(x) = h(x) - L. Другой критерий останова использует абсциссу, и можно попытаться остано- остановиться, если последовательность {p/J сходящаяся. Если нарисовать вертикальные Линии х = р + 5нх = р — 6 с каждой стороны от х = р, то остановить итерацию можно, когда точка Рп лежит между этими двумя вертикальными линиями, как Показано на рис. 2.11(Ь). Последний критерий часто удобен, но его сложно выполнять, потому что он включает неизвестное значение р. Используем эту идею и в дальнейшем будем останавливать вычисления, когда последовательные итерации pn_i ирп достаточ- достаточно близки или если у них совпадают М значащих цифр. Иногда достаточно выполнения соотношения рп «pn-i или f(pn) « 0. Необ- Необходимо правильно логически объяснить, что это обозначает. Если потребовать, чтобы было \рп — р\ < 5 и |/(рп)| < б, точка Рп будет определена в прямоуголь-
82 Глава 2. Решение нелинейных уравнений f(x) = О Ро Рис. 2Л1. (а) Горизонтальная полоса сходимости для нахождения реше- решения уравнения f(x) = О Po x=p —6 x=p+5 У = fix) Рис. 2.11. (Ь) Вертикальная полоса сходимости для нахождения решения уравнения /(ж) =0 ной области около решения (р, 0), как показано на рис. 2.12(а). Если потребовать, чтобы было \рп — р\ < S или |/(рп)| < е> точка Рп может быть определена где- нибудь в области, образованной объединением горизонтальной и вертикальной полос, как показано на рис. 2.12(Ь). Область допустимых отклонений S и е явля- является крестообразной. Если допустимые отклонения выбраны слишком малыми, то итерация может продолжаться вечно. Их следует выбирать приблизительно в 100 раз больше, чем 10"м, где М — число десятичных знаков компьютера для чисел с плавающей точкой. Близость к абсциссе проверяется одним из критериев: \Рп — Pn-i| < б (оценка абсолютной ошибки)
2.3. Начальное приближение и критерий сходимости у 83 Рис. 2.12. (а) Прямоугольная область, определенная неравенствами |ж-р| <6И\у\ <€ P Pn У = /(*) \ _^^- у —— Рис. 2.12. (Ь) Безграничная область, определенная неравенством \x-v\ < <5 ИЛИ |2/| <е ИЛИ Эп -Pn-ll »l + \Vn-\\ < 6 (вычисление относительной ошибки). Близость ординаты обычно проверяется неравенством |/(рп)| < с Неудобные функции Компьютерное решение уравнения f(x) = 0 почти всегда имеет ошибку, обу- обусловленную округлением и/или неустойчивостью в вычислениях. Если график у = f(x) крутой около корня (р; 0), то задача нахождения корня хорошо обуслов- обусловлена (т. е. можно легко получить решение с несколькими значащими цифрами).
84 Глава 2. Решение нелинейных уравнений f(x) = О Если график у = f(x) пологий около (р;0), то задача нахождения корня плохо обусловлена (т. е. вычисленный корень может иметь лишь несколько значащих цифр). Это случается, когда f(x) имеет кратный корень в р. Более детальное обсуждение будет приведено в следующем разделе. Программа 2.4 (приближенное нахождение места расположения кор- корней). Найти приблизительное место расположения корней уравнения f(x) = О на интервале [a; ft], используя точки {х^;/(х^)) и следующий критерий: (i) {ук-\){Ук) <0, или (п) \ук\ <еи{ук- yk-i)(yk+i - Ук) < 0. Иначе говоря, либо f(xk-i) и f(xk) имеют различные знаки, либо |/(a:^)| мал и тангенс угла наклона кривой у = f(x) меняет знак около (гг function R = approdt (X,epsilon) % Вход - f - функция записанная как М-файл под именем f.m У. - X - вектор абсцисс Уо - epsilon - допустимое отклонение Уо Выход - R - вектор приближений корней Y=f(X); yrange = max(Y)-min(Y); epsilon2 = yrange*epsilon; n=length(X); m=0; X(n+l)=X(n); Y(n+l)=Y(n); for k=2:n, if Y(k-l)*Y(k)<=0, m=m+l; R(m)=(X(k-l)+X(k))/2; end s=(Y(k)-Y(k-l))*(Y(k+l)-Y(k)); if (abs(Y(k)) < epsilon2) к (s<=0), m=m+l; R(m)=X(k); end end Пример 2.10. Используем программу approot для того, чтобы найти место приближенного расположения корней уравнения f(x) = sin(cos(a;3)) на интерва- интервале [—2; 2]. Сначала запишем / в виде М-файла под именем f.m. Затем используем
2.3. Начальное приближение и критерий сходимости 85 результаты как начальное приближение для алгоритма нахождения корня и по- построим вектор X так, чтобы приближение имело точность 4 десятичных знака. >>Х=-2:.001:2; >>approot (X,0.00001) ans= -1.9875 -1.6765 -1.1625 1.1625 1.6765 1.9875 Сравнивая результаты с графиком функции /, видим, что получено хорошее при- приближение для одного из алгоритмов для нахождения корня. ¦ Упражнения к разделу 2.3 В упр. 1-6 используйте компьютер или графическое вычисление, чтобы графи- графически определить приближенное место расположения корней уравнения f(x) =0 на заданном интервале. В каждом случае определите интервал [а; Ь] так, чтобы найти корни, используя программы 2.2 и 2.3 (т. е. f(a)f(b) < 0). 1. f{x) = x2 - ех для -2 < х < 2 2. f(x) = х — cos(x) для — 2 < х < 2 3. f(x) = sin(a;) — 2cos(:e) для — 2 < x < 2 4. f(x) = cos(x) + A + x2) для -2 < x < 2 5. f(x) = (ж - 2J - ln(rr) для 0,5 < x < 4,5 6. f(x) = 2x- tan(x) для -1,4 < x < 1,4 Алгоритмы и программы В задачах 1 и 2 используйте компьютер или графическое вычисление и програм- программу 2.4, чтобы приближенно вычислить действительные корни с 4 десятичными знаками каждой заданой функции на заданом интервале. Затем воспользуйтесь программой 2.2 или 2.3, чтобы найти каждый корень с 12 десятичными знаками. 1. f(x) = lOOOOOOz3 - ШОООж2 + ШОх - 1 для -2 < х < 2 I f{x) = 5х10 - 38х9 + 21а;8 - 5тгх6 - Зтгж5 - 5ж2 + 8ж - 3 для -15 < х < 15. 3. Программа построения графика у = f(x) на интервале [а; Ь] использует точки (жо; уо): (#i; у]), •. • и (ждг: ?улО и обычно определяет масштаб вертикально по
86 Глава 2. Решение нелинейных уравнений f(x) = О высоте графика, поэтому должна быть записана процедура для определения минимального и максимального значений функции / на интервале. (а) Постройте алгоритм, который найдет значения Утах = тах^у^} и (с) (b) Напишите MATLAB-программу для нахождения приближенного распо- расположения максимального (минимального) значения функции f(x) и ее величину на интервале [а; 6]. Используйте свою программу из п. (Ь), чтобы найти приближенное место расположения и значение максимума (минимума) функций из задач 1 и 2. Сравните свои приближения с действительными значениями. 2.4. Метод Ньютона-Рафсона и метод секущих Метод касательных для нахождения корней Если f{x), f'(x) и f"{x) непрерывны в окрестности корня р, эту дополнитель- дополнительную информацию о свойствах функции f(x) можно использовать для построения алгоритмов, которые порождают последовательности {рк}, сходящиеся к р бы- быстрее, чем при методе деления пополам или методе ложного положения. Метод Ньютона-Рафсона (или просто Ньютона) является одним из наиболее полезных и самым известным алгоритмом, в котором используется непрерывность ff(x) и /"(#). Введем его графически и затем дадим более строгую трактовку на основа- основании полиномов Тейлора. Предположим, что начальное приближение ро близко к корню р. Тогда график у = f[x) пересекает ось х в точке (р;0) и точка (ро;/(ро)) лежит на кривой около точки (р; 0) (рис. 2.13). Определим точку рь как точку пересечения оси х и Рис. 2.13. Геометрическое построение pi и метода Ньютона-Рафсона для
2.4. Метод Ньютона-Рафсона и метод секущих 87 касательной к кривой в точке (ро; /(ро)). На рис. 2.13 показано, что в этом случае рх ближе к р, чем ро. Соотношение, связывающее р\ и ро, можно найти, если записать два варианта для тангенса угла наклона касательной L: m O-/(Po) A) т = , Pi "Ро где m равно тангенсу угла наклона линии, проходящей через точки (pi;0) и (ро;/(р0)), и B) т = /'(ро), где т равно тангенсу угла наклона к кривой в точке (ро;/(ро))- Приравняем значения тангенса угла наклона т в выражениях A) и B) и результатом решения относительно р\ будет C) Pi=f Приведенный выше процесс можно повторять, чтобы получить последователь- последовательностью {ра;}, сходящуюся к р. А сейчас изложим это более строго. Теорема 2.5 (теорема Ньютона-Рафсона). Предположим, что / € С2[а;Ь] и существует такое число р € [а;Ь], что /(р) = 0. Если /'(р) ф 0, то существует такое 8 > 0, что последовательность {р*}?!-0' определенная итерацией D)' Рк = gipk-г) = Рк-г - yr^j для fc = 1, 2, ... будет сходиться к р для любого начального приближение ро Е [р — ?,р + E]. Замечание. Функция <7(я)> определенная формулой называется интерполяционной функцией Ньютона-Рафсона. Так как /(р) = = 0, легко видеть, что д(р) = р. Таким образом, итерация Ньютона-Рафсона для нахождения корней уравнения f(x) = 0 осуществляется путем нахождения неподвижной точки функции д{х). Доказательство. Геометрическое построение точки рь показанное на рис. 2.13, не помогает понять, почему необходимо, чтобы ро была близко расположена к р, или почему важна непрерывность /"(#)• Начнем анализ с полинома Тейлора степени п=1и его остаточного члена: F) /(*) = /Ы + /' (Ро)(х-ро) + /<>(c)(g!"PDJ,
88 Глава 2. Решение нелинейных уравнений f(x) = О где с лежит где-то между роих. Подставляя х = р в равенство F) и учитывая то, что f(p) = 0, получим G) O f"ic)iP-poJ Если ро достаточно близко к р, то последний член правой части выражения G) будет существенно меньше суммы двух первых членов. Следовательно, им можно пренебречь и использовать приближение (8) О«/(ро) + /'(ро)(р-Ро)- Решив уравнение (8) относительно р, получаем р~ро — /(ро)//'(Ро)- Это прибли- приближенное равенство используем, чтобы определить р\ — следующее приближение к корню: Общее правило D) будет установленным, когда место ро в уравнении (9) зай- займет Рк-х- Это все, что необходимо понимать для большинства случаев. Однако для полного понимания того, что происходит, необходимо рассмотреть итерации неподвижной точки функции и применить в нашей ситуации теорему 2.2. Ключом является анализ д'{х): i Гтл _ 1 /'(*)№ - /(*)А*) _ П*)Пх) 9 К) (П*)J U'ix)J " По предположению f(p) = О, поэтому д'(р) = 0. Так как д'(р) = 0 и д(х) непре- непрерывна, можно найти такое S > 0, что предположение |</'(:г)| < 1 теоремы 2.2 выполняется на интервале (р — 6,р + 6). Тогда достаточным условием для того, чтобы ро была начальной точкой сходящейся последовательности {paJJ^Lo' кото" рая сходится к корню f(x) = 0, является выбор ро G (р - ?,р + 6), где 6 такое, что \f(x)f"(x)\ I///ш < Х для всех х е (Р " *'Р + J)' 1/(I Следствие 2.2 (итерация Ньютона для нахождения квадратных корней). Предположим, что А > 0 — действительное число, и пусть ро > 0 — начальное приближение к у/А. Найдем последовательность {р^}^=0' используя рекуррентное правило А Рк-1 + A1) рк = 2"^ для * = 1, 2, .... Тогда последовательность {pfc}?Lo сходится к у/А, т. е. lim^^oop^ = у/А.
2.4. Метод Ньютона-Рафсона и метод секущих 89 Схема доказательства. Начнем с функции f(x) = х2 — А и заметим, что кор- корнями уравнения х2 — А = 0 являются ±у/А. Используем функцию f(x) и ее про- производную f'{x) в формуле E) и запишем ниже итерационную формулу Ньютона- Рафсона: -х /() 2х После упрощения формулы получим (В) 9(Х) = -у*. Затем д(х) в A3) используем, чтобы определить рекуррентную итерацию в D); в результате получим формулу A1). Можно доказать, что последовательность, генерируемая в A1), будет сходиться для любого начального значения ро > 0. Подробное доказательство оставим для упражнений. • Важным моментом следствия 2.2 является то, что итерационная функция д(х) включает только арифметические операции +,—, х и /. Если бы д(х) включа- включала вычисление квадратного корня, то мы вычисляли бы квадратные корни без , построения рекуррентной последовательности, которая сходится к \fA. Из этих соображений было выбрано выражение f(x) = х2 — А, так как оно приводит только к арифметическим операциям. Пример 2.11. Воспользуемся алгоритмом Ньютона нахождения квадратного кор- корня для вычисления уД>. Начав с ро = 2 и использовав формулы A1), вычислим 2,36067978 + 5/2,236067978 _2236067978. .Дальнейшие итерации дают pk « 2,236067978 для к > 4, и мы видим, что дости- J гается точность сходимости 9 десятичных знаков. ¦ А сейчас вернемся к знакомой задаче из элементарной физики и выясним, почему определение места расположения корня является важной задачей. Пред- Предположим, что был выпущен снаряд под углом bo с начальной скоростью vq. Из Элементарного курса известно, что сопротивлением воздуха можно пренебречь и
90 Глава 2. Решение нелинейных уравнений f(x) - 0 300 200 100 = (*¦(*);/(*)) 200 400 600 800 1000 Рис. 2.14. Траектория движе- движения снаряда с учетом сопротив- сопротивления воздуха что высота у = y(t) и дальность полета х = x(t), измеренные в футах A фут = = 30,5 см), удовлетворяют уравнениям A4) = vyt - Ш2 X = Vxt, где горизонтальная и вертикальная составляющие начальной скорости соответ- соответственно равны vx = vocos(bo) и vy = vosin(bo). Математическая модель, вы- выраженная уравнением A4), проста для вычислений, но дает слишком большую высоту и слишком большую величину пути. Если сделать дополнительное пред- предположение о том, что сопротивление воздуха пропорционально скорости, то по- получим уравнения движения A5) и у = f(t) = (Cvy + 32С2) (l - е"*/с) - 32С* х = r(t) = Си* (l - е-*/с) , где С = га/А; и А; равно коэффициенту сопротивления воздуха, а га — масса сна- снаряда. Большее значение С приводит к большей максимальной высоте и большей дальности полета снаряда. График пути полета снаряда, когда учитывается сопро- сопротивление воздуха, показан на рис. 2.14. Эта уточненная модель более реалистична, но требует использования алгоритма нахождения корня для решения уравнения f(t) = 0, чтобы найти время полета снаряда до падения. Элементарная модель A4) не требует сложной процедуры нахождения времени полета. Пример 2.12. Снаряд выпущен под углом Ьо = 45°, vy = vx = 160 фут/с и С = 10. Найти время полета до падения и дальность полета. Используя формулы A5) и A6), получим уравнения движения у = /(<) = = 4800A -е-*/10) — 320* иж = r(t) = 1600A -е-*/10). Так как /(8) = 83,220972
2.4. Метод Ньютона-Рафсона и метод секущих 91 Таблица к 0 1 2 3 4 2.4. Определение времени полета (с момента, Время, рк 8,00000000 8,79773101 8,74242941 8,74217467 8,74217466 Pk+i -Рк 0,79773101 -0,05530160 -0,00025475 -0,00000001 0,00000000 когда высота f(t) равна нулю) Высота, f(pk) 83,22097200 -6,68369700 -0,03050700 -0,00000100 0,00000000 и /(9) =—31,534367, используем начальное приближение ро = 8. Производная /(*) равна /'(*) = 480е~^10 - 320; ее значение в точке р0 - f(po) = /'(8) = =-104,3220972, тогда из формулы D) получаем 83,22097200 87qrnimn Pl = 8 " -104,3220972 = 8'797731010' Результаты вычислений приведены в табл. 2.4. Величина р\ имеет 9 десятичных знаков точности, и время до падения равно t и 8,74217466 с. Дальность полета можно вычислить, используя r(t): г(8,74217466) = 1600 A - е-°>874217466) = 932,4986302 футов. ¦ Ошибка деления на нуль Одной очевидной ловушкой в методе Ньютона-Рафсона является возможность деления на нуль в формуле D), которая возникает, если f'ipk-i) = 0. Програм- Программа 2.5 имеет процедуру проверки такой ситуации, но как в таком случае исполь- использовать последнее вычисленное приближение p^-i? Вполне вероятно, что f(pk-\) достаточно близко к нулю и рь-\ — приемлемое приближение к корню. Изучим ^сейчас эту ситуацию и откроем интересный факт; т. е. определим скорость сходи- сходимости итерации. Определение 2.4 (порядок корня). Предположим, что функция f(x) и ее произ- производные f'(x),..., f(M\x) определены и непрерывны на интервале в окрестности точки х = р. Говорят, что f(x) = 0 имеет корень порядка М в точке х = р тогда и только тогда, когда A7) /(р) = 0, /'(р) = 0, и ¦ Корень порядка М = 1 часто называют простым корнем, а если М > 1, его называют кратным корнем. Корень порядка М = 2 иногда называют двойным корнем и т. д. Следующий результат пояснит эти понятия. А
92 Глава 2. Решение нелинейных уравнений f(x) = О Лемма 2.1. Если уравнение f(x) = О имеет корень порядка М при х = р, то существует такая непрерывная функция Д(ж), что f(x) можно представить в виде произведения A8) f(x) = (я - p)Mh(x), где Л(р) ^ 0. Пример 2.13. Функция f(x) = х3 — Зх + 2 имеет простой корень в р = — 2 и двойной — в р = 1. Это можно проверить, рассмотрев производные ff(x) = З.т2 — — 3 и f"(x) = бх. При значении р = — 2 получим /(—2) = 0 и /;(—2) = 9, так что М = 1 в определении 2.4, поэтому р = -2 — простой корень. Для значения р = 1 получаем, что /A) = 0, /'A) = 0 и /"A) = 6, так что М = 2 в определении 2.4, поэтому р = 1 — двойной корень. Заметим также, что разложение на множители функции f(x) имеет вид /(ж) = (х + 2)(ж — IJ. ¦ Скорость сходимости Рассмотрим следующие свойства сходимости. Если р — простой корень уравне- уравнения f(x) = 0, то метод Ньютона сходится быстро и количество десятичных знаков точности приблизительно удваивается с каждой итерацией. С другой стороны, ес- если р является кратным корнем, то ошибка в каждом последующем приближении равна части предыдущей ошибки. Чтобы уточнить это, определим понятие поряд- порядка сходимости. Он является мерой скорости сходимости последовательности. Определение 2.5 (порядок сходимости). Предположим, что {pn}^L0 сходится к р и положим Еп = р — рп для п > 0. Если существуют такие две положительные константы А ф 0 и R > 0, что /1Оч г \P~Pn+i\ у \En+i\ A9) lim гр- = lim R = А, п->оо |р-рп|я n->oo \En\R то говорят, что последовательность сходится к р с порядком сходимости R. Чис- Число А называют постоянной асимптотической ошибкой. Случаи, когда Д = 1,2, рассматриваются особо. B0) Если R = 1, то сходимость {pn}?L0 называется линейной. B1) Если i? = 2, то сходимость {pn}?L0 называется квадратичной. А Если Д большое, последовательность {рп} сходится быстро к р, т. е. из соот- соотношения A9) следует, что для больших значений п справедливо приближенное равенство |2?n+i| и A\En\R. Например, предположим, что R = 2 и \Еп\ « 10~2. Тогда можно ожидать, что |25n+i| & Ах 10~4. Некоторые последовательности сходятся с порядком, не являющимся целым числом, и мы увидим, что порядок сходимости в методе секущих равен R = A + + л/5)/2 « 1,618033989.
2.4. Метод Ньютона-Рафсона и метод секущих 93 Таблица 2.5. Квадратичная сходимость к простому корню в методе к 0 1 2 3 4 Рк -2,400000000 -2,076190476 -2,003596011 -2,000008589 -2,000000000 Рк+1 Рк 0,323809524 0,072594465 0,003587422 0,000008589 0,000000000 Ек -р Рк 0,400000000 0,076190476 0,003596011 0,000008589 0,000000000 Ньютона 0,476190475 0,619469086 0,664202613 Пример 2.14 (квадратичная сходимость к простому корню). Начнем с ро к -2,4 и воспользуемся итерацией Ньютона-Рафсона, чтобы найти корень р = -2 полинома f(x) = х3 — Зх + 2. Итерационная формула для вычисления {р имеет вид B2) Рк = 9\Рк-\) = - 2 Используем формулу B1) для проверки квадратичной сходимости. Полученные значения приведены в табл. 2.5. ¦ Детальное рассмотрение скорости сходимости в примере 2.14 показывает, что ошибка в каждой последующей итерации пропорциональна квадрату ошибки пре- предыдущей итерации, т. е. 2 где А « 2/3. Для проверки воспользуемся тем, что \р - рз| = 0,000008589 и \р - р2\2 = |0,003596011|2 = 0,000012931. Легко видеть, что \р - рз\ = 0,000008589 « 0,000008621 = \\р - р2\2. Пример 2.15 (линейная сходимость к двойному корню). Начнем с ро = 1,2 и воспользуемся итерацией Ньютона-Рафсона, чтобы найти двойной корень р = 1 полинома f(x) = х3 - Зх + 2. Для проверки линейной сходимости используем формулу B0). Полученные значения приведены в табл. 2.6. ¦
94 Глава 2. Решение нелинейных уравнений f{x) = О Таблица 2.6. Линейная сходимость метода Ньютона к двойному корню к 0 1 2 3 4 5 Рк 1,200000000 1,103030303 1,052356420 1,026400811 1,013257730 1,006643419 Pk+i Рк -0,096969697 -0,050673883 -0,025955609 -0,013143081 -0,006614311 -0,003318055 Ек -р Рк -0,200000000 -0,103030303 -0,052356420 -0,026400811 -0,013257730 -0,006643419 |?*+i| |Я*1 0,515151515 0,508165253 0,496751115 0,509753688 0,501097775 0,500550093 Отметим, что метод Ньютона-Рафсона медленно сходится к двойному корню. Значения f(pk) в примере 2.15 сходятся к нулю быстрее, чем значения ff(pk), так что отношение f(pk)/f'{Pk) B формуле D) определено, когда рк ф р. По- Последовательность сходится линейно и ошибка убывает с каждой последующей итерацией с коэффициентом приближения 1/2. В следующей теореме показано действие метода Ньютона на простой и двойной корни. Теорема 2.6 (скорость сходимости итерации Ньютона-Рафсона). Предпо- Предположим, что итерация Ньютона-Рафсона производит последовательность {Pn}5?Lo> которая сходится к корню р функции fix). Если р — простой корень, то сходимость является квадратичной и B3) для достаточно больших п. 2|/'(р)Г Если р — кратный корень порядка М, то сходимость линейная и М-1, B4) Wi+i| м -\Еп\ для достаточно больших п. Ловушки Ошибку деления на нуль легко предупредить, но существуют другие сложно- сложности, которые не так легко выявить. Предположим, что задана функция f(x) = = х2 — Ах + 5, тогда последовательность действительных чисел {рк}, полученная с помощью формулы D), будет блуждать назад и вперед, слева направо и не сойдется. Простой анализ ситуации покажет, что функция f(x) > 0 и не имеет действительных корней. Иногда начальное приближение ро слишком далеко от требуемого корня и по- последовательность {рк} сходится к некоторому другому корню. Это обычно проис- происходит, когда тангенс наклона /'(ро) мал и касательная к кривой у = f(x) близка
2.4. Метод Ньютона-Рафсона и метод секущих 95 к горизонтали. Например, если f(x) = cos(x) и ищем корень р = тг/2, начиная с ро = 3, вычисления покажут, чторх = —4,01525255,р2 = —4,85265757,... и {р^} будут сходиться к другому корню: —Зтг/2 « —4,71238898. Предположим, что f(x) — положительная и монотонно убывающая функция на неограниченном интервале [а, оо) и ро > а. Тогда последовательность должна расходиться к +оо. Например, если f(x) = хе~х и ро = 2,0, то pi = 4,0; = 5,333333333; pis = 19,723549434; и {pk} медленно расходится к -Ьос (рис. 2.15(а)). Эта особенная функция ставит другую неожиданную проблему. Значение f(x) стремится к нулю так же быстро, как увеличивается я, например /(pis) = 0,0000000536, и вероятно, pi5 можно ошибочно принять за корень. Из этих соображений в программе 2.5 построен кри- критерий останова, основанный на относительной ошибке 2\pk+i —Pk\/(\Pk\ + Ю~6), и, когда к = 15, его значение равно 0,106817, так что допустимое отклонение 5 = Ю~6 защищает от ложного корня. Другой феномен, циклический, встречается, когда члены последовательности {рк} стремятся повторяться или почти повторяться. Например, если f(x) = ж3 — - х — 3 и начальное приближение равно ро = 0, то последовательность будет такой: Pl = -3,000000; р2 = -1,961538; р3 = -1,147176; р4 = -0,006579; р5 = -3,000389; ре = -1,961818; р7 = -1,147430; Здесь мы приходим к циклу, где Pk+A ^ Рк Для к = 0, 1, ... (рис. 2.15(Ь)). Но если начальное значение ро достаточно близко к корню р « 1,671699881, то = хе Рис. 2.15. (а) Итерация Ньютона-Рафсона для f(x) = xe~~x может дать расходящуюся последо- последовательность
96 Глава 2. Решение нелинейных уравнений f(x) = О Р2 РЗ РО 1 Рис. 2.15. (Ь) Итерация Ньютона-Рафсона для f(x) = хг — х — 3 может дать циклическую по- последовательность -3 -2 Pi 1 -1 1 Ро г* , у = arctan(x) Рис. 2.15. (с) Итерация Ньютона-Рафсона для f(x) = arctan(x) может дать расходящуюся ос- осциллирующую последовательность сходится. Если ро = 2, последовательность сходится: р\ = 1,72727272; р2 = = 1,67369173; рз = 1,671702570 ир4 = 1,671699881. Когда |^'(ж)| > 1 на интервале, содержащем корень р, существует вероятность появления расходящихся колебаний. Например, пусть f(x) = arctan(a:). Тогда функция итерации Ньютона-Рафсона равна д(х) = х — A+х2) arctan(a;) и gf(x) = = — 2xarctan(rc). Если выбрать начальное значение равным ро = 1,45, то pi = -1,550263297; р2 = 1,845931751; р3 = -2,889109054
2.4. Метод Ньютона-Рафсона и метод секущих 97 и т. д. (рис. 2.15(с)). Но если начальное значение достаточно близко к корню р = О, в результате получим сходящуюся последовательность. Если ро = 0,5, то рх = -0,079559511; р2 = 0,000335302; р3 - 0,000000000. Ситуация, рассмотренная выше, указывает на тот факт, что следует быть осто- осторожным при сообщении ответа. Иногда последовательность не сходится. Не все- всегда бывает так, что решение найдено после N итераций. Тот, кто использует алгоритм нахождения корня, должен быть предупрежден о ситуации, когда нельзя найти корень. Если существует дополнительная информация относительно смыс- смысла задачи, то менее вероятно, чем именно найденный корень ошибочен. Иногда известно, что корень }{х) находится на определенном интервале. Если доступ- доступна информация о поведении функции или известен "точный" график, то легче выбрать ро. Метод секущих В алгоритме Ньютона-Рафсона требуется вычислить две функции для каждой итерации — /(p/c-i) и /'(paj-i). Традиционно вычисление производных элемен- элементарных функций требует значительных усилий. Но при наличии современного па- пакета программного обеспечения компьютеров эти сложности уменьшаются. Все еще много функций имеют непростую форму (интегралы, суммы и т. д.), и жела- желательно иметь метод, который сходится почти так же быстро, как метод Ньютона, и включает только вычисление функции /(я), но не вычисление f'(x). Метод секущих потребует только одного вычисления функции f(x) при одной итерации, и простой корень имеет порядок сходимости R « 1,618033989. Этот метод почти так же быстр, как и метод Ньютона, который имеет порядок сходимости 2. В методе секущих используется такая же формула, как и в методе regula falsi, но существуют различные логические решения относительно способа поиска каж- каждого последующего члена. Необходимо иметь две начальные точки, (ро;/(ро)) и (pi;/(pi)), около точки (р;0) как показано на рис. 2.16. Определим pi как аб- абсциссу точки пересечения линии, проходящей через эти две точки, и оси гг. Тогда на рис. 2.16 показано, что рг будет ближе к р, чем любая из точек ро или pi. Уравнение, связывающее P2,Pi и ро, находим, рассматривая тангенс угла наклона B5) m=/MzJM и т = ^1М. Рх - ро рг - Р\ Значения т в B5) равны тангенсу угла наклона секущей, которая проходит через два первых приближения к тангенсу угла наклона прямой, проходящей через точки (pi; /(pi)) и (рг; 0) соответственно. Приравняем правые части в B5), решим относительно Р2 = s(pi;po) и получим B6) р2 =
98 Глава 2. Решение нелинейных уравнений f(x) = О у (Ро;/Ы) Рис. 2.16. Геометрическое построение рг Для ме- метода секущих Общий член, определенный согласно двухточечной итерационной формуле, равен ч f(Pk)(Pk~Pk-l) B7) Pk+1 = f(Pk)~fiPk-i)' Пример 2.16 (метод секущих при простом корне). Начнем ср0 pi = —2,4 и воспользуемся методом секущих, чтобы найти корень р = номиальной функции /(#) = х3 — 3# + 2. В этом случае итерационная формула B7) имеет вид -2,6 и — 2 поли- полиB8) = 9(Pk,Pk-l) =Pk~ Преобразовав эту формулу, получим B9) Последовательность итераций приведена в табл. 2.7. ¦ Существует связь между методом секущих и методом Ньютона. Для полиноми- полиномиальной функции f(x) двухточечная формула pk+i = g(pk',Pk-\) метода секущих может быть приведена к одноточечной формуле метода Ньютона рь+\ = gipk)* если рь-1 заменить на р*. Действительно, если заменить рь-\ на рь в B9), то правая часть становится такой же, как правая часть формулы B2) примера 2.14. Результаты относительно скорости сходимости метода секущих можно найти в специальных книгах по численному анализу. Заметим только, что члены последо- последовательности ошибок удовлетворяет соотношению C0) I 771 I r^ I 171 11,618 \Ек+1\ & \Ек\ Г(р) 0,618
2.4. Метод Ньютона-Рафсона и метод секущих Таблица 2.7. Сходимость метода секущих к простому корню 99 к 0 1 2 3 4 5 6 7 Рк -2,600000000 -2,400000000 -2,106598985 -2,022641412 -2,001511098 -2,000022537 -2,000000022 -2,000000000 Pk+i - Рк 0,200000000 0,293401015 0,083957573 0,021130314 0,001488561 0,000022515 0,000000022 0,000000000 Ек = р - Рк 0,600000000 0,400000000 0,106598985 0,022641412 0,001511098 0,000022537 0,000000022 0,000000000 |?fc+i| is*!1*618 0,914152831 0,469497765 0,847290012 0,693608922 0,825841116 0,727100987 где порядок сходимости равен R = A + \/5)/2 « 1,618, и что соотношение C0) выполняется только при простых корнях. Чтобы проверить это, воспользуемся примером 2.16, специально подбирая сле- следующие значения: |р-р5| =0,000022537 \р -P4I1'618 = 0,001511098lj618 = 0,000027296, и А = |/"(-2)/2/'(-2)|0'618 = B/3H'618 = 0,778351205. Теперь легко видеть, что \р - Р5\ = 0,000022537 » 0,000021246 = А\р 7 p4|lj618. Ускоренная сходимость Можно надеяться, что существуют технические приемы нахождения корня, которые сходятся быстрее, чем линейно, когда р — корень порядка М. Следующий результат показывает, что можно так модифицировать метод Ньютона, что для кратного корня сходимость станет квадратичной. Теорема 2.7 (ускорение итераций Ньютона-Рафсона). Предположим, что ал- алгоритм Ньютона-Рафсона порождает последовательность, которая линейно схо- сходится к корню х = р порядка М > 1. Тогда интерполяционная формула Ньютона- Рафсона C1) Р*=Р*-1- производит последовательность {} " ~ /'(Wb-i) 1о> которая квадратично сходится к р.
100 Глава 2. Решение нелинейных уравнений f(x) = о Пример 2.17 (ускоренная сходимость к двойному корню). Начнем с ро = 1*2 и воспользуемся итерацией ускоренного метода Ньютона-Рафсона, чтобы найти двойной корень р = 1 функции f(x) = я3 - Зя + 2. При М = 2 формула ускоренного метода C1) принимает вид Рк = Pfc-1 - 2-тп-— и мы получаем значения, показанные в табл. 2.8. Таблица * 0 1 2 3 2.8. Ускоренная Рк 1,200000000 1,ообововов ¦ 1,000006087 1,000000000 сходимость к двойному РШ-Pk -0,193939394 -0,006054619 -0,000006087 0,000000000 корню Ек=р-рк -0,200000000 -0,006060606 -0,000006087 0,000000000 0,161516150 0,165718578 В табл. 2.9 сравниваются скорости сходимостей различных методов нахождения корня, которые мы изучили. Значения константы А различны для каждого метода. Таблица 2.9. Сравнение скорости сходимости Метод Деления пополам Regula falsi Метод секущих Ньютона-Рафсона Метод секущих Ньютона-Рафсона Ускоренный метод Ньютона-Рафсона Кратность корня Кратный корень Кратный корень Простой корень Простой корень Кратный корень Соотношение между членами последовательности ошибок Ek+l « 2^*1 Ек+1ъА\Ек\ ??*+!« AJJEkj Ек+1&А\Ек\ Д*+1«Д|Я*|1'618 Ек+1*А\Ек\2 Ек+г&А\Ек\2 Программа 2.5 (итерация Ньютона-Рафсона). Найти корень функции f(x) = 0 с одним заданным начальным приближением рсь используя итерацию /fofc-i) Рк = Pfc-1 - для к = 1, 2, .... function [pO,err,k,y]=newton(f,df,pO,delta,epsilon,maxl) У, Вход - f - функция, вводимая как строка 9fy У» - df - производная f, вводимая как строка *df'
2.4. Метод Ньютона-Рафсона и метод секущих 101 X - рО - начальное приближение функции f к нулю 7, - delta - допустимое отклонение для рО X - epsilon - допустимое отклонение для значений функции у X - maxl - максимальное число итераций 7оВыход - рО - приближение Ньютона-Рафсона к нулю X - err - ошибка вычисления для рО X - к - число итераций X - У - значение функции f(рО) for k=l:maxl pl=pO-feval(f,рО)/feval(df,pO); err=abs(pl-pO); relerr=2*err/(abs(pl)+delta); pO=pl; y=feval(f,p0); if (err<delta) I (relerr<delta) I (abs(y)<epsilon),break,end end Программа 2.6 (метод секущих). Найти корень уравнения f(x) = 0 с двумя заданными начальными приближениями ро> р\ и используя итерацию Рк+1=Рк~ *12 function [pi,err,k,у] =secant(f,pO,pl,delta,epsilon,maxl) X Ввод - f - функция, вводимая как строка yf' X - рО и pi - начальные приближения к нулю X - delta - допустимое отклонение для pi , X - epsilon - допустимое отклонение для значений функции у X - maxl - максимальное число итераций ХВыход - pi - приближение к нулю для метода секущих X - err - ошибка вычисления для р! X - к - число итераций X - у - значение функции f(pi) for k=l:maxl p2=pl-f eval(f,pl)*(pl-pO)/(f eval(f,pi)-fevaKf ,p0)); err=abs(p2-pl); relerr=2*err/(abs(p2)+delta); pO=pl; pl=p2; y=feval(f,pl); if (err<delta)I(relerr<delta)I(abs(y)<epsilon),break,end end
102 Глава 2. Решение нелинейных уравнений f(x) = 0 Упражнения к разделу 2.4 Для задач, требующих вычисления, можете использовать либо калькулятор, либо компьютер. 1. Пусть задана функция f(x) = х2 — х + 2. (a) Найдите формулу Ньютона-Рафсона для р* = (b) Начните с ро = —1,5 и найдите рь рг и рз. 2. Пусть функция f(x) = х2 — я — 3. (a) Найдите формулу Ньютона-Рафсона для pk = (b) Начните с ро = 1,6 и найдите ръ Р2 и р3. (c) Начните с ро = 0,0 и найдите pi, p2, рз и р4. Что можно сказать об этой последовательности? 3. Пусть дана функция f(x) = (ж — 2L. (a) Найдите формулу Ньютона-Рафсона для р* = g(pfc_i). (b) Начните с ро = 2,1 и найдите ръ Р2, Рз и р4. (c) Эта последовательность сходится квадратично или линейно? 4. Пусть дана функция f(x) = я3 - Зх — 2. (a) Найдите формулу Ньютона-Рафсона для р* = g(pk-i)- (b) Начните с ро = 2,1 и найдите pi, рг, рз и р4. (c) Эта последовательность сходится квадратично или линейно? 5. Рассмотрите функцию f(x) = cos (ж). (a) Найдите формулу Ньютона-Рафсона для р* = <7(p*-i)- (b) Найдите корень р = Зтг/2. Можно ли использовать начальное прибли- приближение ро = 3? Почему? (c) Найдите корень р = Зтг/2. Можно ли использовать начальное прибли- приближение ро = 5? Почему? 6. Рассмотрите функцию f(x) = arctan(rc). (a) Найдите формулу Ньютона-Рафсона для pk = g(pk-i)- (b) Если ро = 1,0, найдите рь р2, рз и р4. Чему равен (c) Если ро = 2,0, найдите рь рг, рз и р4. Чему равен 7. Рассмотрите функцию f(x) = хе~х. (a) Найдите формулу Ньютона-Рафсона для р* = gipk (b) Если ро = 0,2, найдите рь р2, рз и р4. Чему равен (c) Если ро = 20, найдите рь р2, рз и р4. Чему равен (d) Чему равно значение /(р4) в п. (с)?
2.4. Метод Ньютона-Рафсона и метод секущих 103 В упр. 8-10, используя метод секущих и формулу B7), вычислите следующие две итерации р2 ирз. 8. Пусть f(x) = х2 - 2х - 1. Начните с ро = 2,6 и р\ = 2,5. 9. Пусть f(x) = х2 — х — 3. Начните с ро = 157 и pi = 1,67. 10. Пусть f(x) = #3 — ж + 2. Начните с ро = —1,5 и pi = —1,52. 11. Алгоритм для нахождения корня кубического уравнения. Начните с функ- функции f(x) = х3 — А, где А — любое действительное число, и используйте рекуррентную формулу Л-*Ы±4Й=1 д. *_!.,,.._ 12. Рассмотрите функцию /(ж) = ж^ — А, где JV — положительное целое число. (a) Чему равны действительные решения уравнения f(x) = 0 для различных NnA? (b) Используйте рекуррентную формулу Pk = ^ =-i- для fc = 1, 2, ... для нахождения JV-го корня А. 13. Можно ли использовать итерацию Ньютона-Рафсона, чтобы решить уравне- уравнение f(x) = 0, если f(x) = а;2 — 14гс + 50? Объясните, почему? 14. Можно ли использовать итерацию Ньютона-Рафсона, чтобы решить уравне- уравнение f(x) = 0, если f(x) = ж1/3? Почему? 15. Можно ли использовать итерацию Ньютона-Рафсона, чтобы решить уравне- уравнение f(x) = 0, если f(x) = (х — ЗI/2 и начальное .значение равно ро = 4? Почему? 16. Найдите предел последовательности в A1). 17. Докажите, что последовательность {р*} в итерации D) теоремы 2.5 сходится к р. Используйте следующие шаги. (a) Покажите, что если р — неподвижная точка д(х) в формуле E), то р является нулем функции f(x). (b) Если р — нуль функции f(x) и /;(р) ^ 0, то покажите, что д'(р) = 0. Воспользуйтесь п. (Ь) и теоремой 2.3, чтобы показать, что последова- последовательность {рк} в итерации D) сходится к р. 18. Докажите приближенное равенство B3) теоремы 2.6. Ипользуйте приведен- приведенную ниже последовательность действий. Согласно теореме 1.11 можно раз- разложить функцию f(x) в окрестности точки х = рь чтобы получить f(x) = fiPk) + f'iPk)(x-pk) + \f"(ck)(x-PkJ.
104 Глава 2. Решение нелинейных уравнений f(x) = 0 Так как р — нуль функции /(ж), положим ж=ри получим о = /Ы + Г(Рк){р-рк) + \f"{ck)(p-pk)\ (а) Сейчас предположим, что f'(x) Ф 0 для всех х около корня р. Исполь- Используем приведенные выше факты и то, что /'(р*) Ф О, чтобы показать следующее: ррк + = :Ш(р (Ь) Предположим, что /'(#) и f"(x) не настолько быстро изменяются, чтобы можно было использовать приближения /'(р*)« /'(р) и /"(с^) « /"(р). Тоща используем п. (а), чтобы получить 19. Предположим, что А — действительное положительное число. (a) Покажите, что А можно представить в виде А = q x 22m, где 1/4 < q < 1 и т — целое число. (b) Используйте п. (а), чтобы показать, что квадратный корень равен А1!2 = = qll2 х 2m. Примечание. Пусть р0 = Bд + 1)/3, где 1/4 < g < 1; воспользуйтесь формулой Ньютона A1). После трех итераций рз буцет приближением к д1/2 с точностью, равной 24 двоичным знакам. Этот алгоритм часто используется во встроенных прикладных программах на компьютере для вычисления квадратного корня. 20. (а) Покажите, что формула B7) метода секущих является алгебраическим эквивалентом выражения (b) Объясните, почему потеря значащих разрядов в вычитании делает эту формулу худшей для вычислений, чем формула B7). 21. Предположим, чтор — корень порядка М = 2 уравнения f(x) = 0. Докажите, что ускоренная итерация Ньютона-Рафсона сходится квадратично (см. упр. 18).
2.4. Метод Ньютона-Рафсона и метод секущих 105 22. Метод Хейли является еще одним из способов улучшения скорости сходи- сходимости метода Ньютона. Итерационная формула Хейли имеет вид -1 Член в скобках — это модификация формулы Ньютона-Рафсона. Метод Хейли дает кубическую сходимость (R = 3) к простому нулю функции f(x). (a) Начните с функции f(x) = х2 - А и найдите итерационную формулу Хейли д(х) для нахождения у/А. Используйте ро = 2 в качестве прибли- приближения к у/Е и вычислите рь рг и рз. (b) Начните с функции f(x) = я3—Зж+2 и выведите итерационную формулу Хейли д(х). Используйте ро = -2,4 и вычислите pi,p2 и рз. 23. Модифицированный метод Ньютона-Рафсона для кратных корней. Если р — корень кратности М, то f(x) = (х - р)мд(ж), где g(p) ^ 0. (a) Покажите, что h(x) = f(x)/ff{x) имеет простой корень в р. (b) Покажите, что, когда применяется метод Ньютона-Рафсона для нахожде- нахождения простого корня р функции h(x)9 получаем д(х) = х — h(x)/hf(x), которая приводится к виду д(х) = гг — . 2 ТТГПтТлГТ• (c) Итерация, использующая g(rr) в п. (Ь), сходится квадратично к р. Объ- Объясните, почему так происходит. (d) Нуль — корень кратности 3 для функции f(x) = sin(a;3). Начните с ро = 1 и вычислите pi, P2 и рз, используя модифицированный метод Ньютона-Рафсона. 24. Предположим, что итеративный метод решения уравнения f(x) = 0 произво- производит следующие четыре члена последовательности ошибок (см. пример 2.11): Ео = 0,400000; Ех = 0,043797; Е2 = 0,000062 и Ег = 0,000000. Оцените асимптотическую ошибку А и порядок сходимости Я последовательности, генерируемой итеративным методом. Алгоритмы и программы 1. Преобразуйте программы 2.5 и 2.6, чтобы появлялось сообщение о соот- соответствующей ошибке, когда (i) возникает деление на нуль в итерационных формулах D) и B7) соответственно или (и) превышено максимальное число итераций maxl.
106 Глава 2. Решение нелинейных уравнений f(x) = 0 2. Часто поучительно показывать члены последовательностей, генерируемых итерационными формулами D) и B7) (вторая колонка табл. 2.4). Преобразуй- Преобразуйте программы 2.5 и 2.6 так, чтобы можно было показывать последовательно- последовательности, генерируемые итерационными формулами D) и B7) соответственно. 3. Преобразуйте программу 2.5 так, чтобы можно было использовать алгоритм Ньютона нахождения квадратного корня для нахождения каждого из следу- следующих квадратных корней с 10 десятичными знаками. (a) Начните с ро = 3 и вычислите л/8. (b) Начните с ро = Ю и вычислите \/9Т. (c) Начните с ро = — 3 и вычислите —>/8. 4. Измените программу 2.5 так, чтобы можно было использовать алгоритм для нахождения кубического корня из упр. 11, чтобы найти кубические корни с 10 десятичными знаками. (a) Начните с ро — 2 и вычислите 71/3. (b) Начните с ро = 6 и вычислите 2001/3. (c) Начните с ро = —2 и вычислите (—7I/3. 5. Измените программу 2.5 так, чтобы, используя алгоритм ускоренного метода теоремы 2.7, можно было найти корень р порядка М следующих функций. (a) f(x) = (х - 2M, М = 5, р = 2; начать с р0 = 1. (b) f(x) = sin(x3), М = 3, р = 0; начать с ро = 1. (c) f(x) = (re — 1) ln(rr), M = 2, р = 1; начать с ро = 2. 6. Преобразуйте программу 2.5 так, чтобы, используя метод Хелли из упр. 22, можно было найти простой нуль функции f(x) = х3 — Зх + 2, полагая р0 = = ~2,4. 7. Предположим, что уравнение движения снаряда имеет вид у = f(t) = 9600A - е"*/15) - 480*, х = r(t) = 2400A - е~*/15). (a) Найдите время полета до падения с точностью до 10 десятичных знаков. (b) Найдите дальность полета с точностью до 10 десятичных знаков. 8. (а) Найдите точку на параболе у = #2, примыкающую к точке C; 1), с точностью до 10 десятичных знаков. (b) Найдите точку на графике у = sin(x — sin(rr)), примыкающую к точке B,1; 0,5), с точностью до 10 десятичных знаков. (c) Найдите значение х, равное минимальному расстоянию по вертикали между графиками функций f(x) = х2 + 2 и д(х) = (ж/5) — sin(x), с точностью до 10 десятичных знаков.
2.5. Процесс Эйткена и методы Стеффенсена и Мюллера 107 9. Открытый сверху ящик построен из прямоугольного куска листа металла размером 10 х 16 дюймов A дюйм = 2,54 см). Квадраты какого размера (точность до 0,000000001 дюймов) следует срезать по углам, если объем ящика должен быть равен 100 кубическим дюймам? 10. Цепная линия — это кривая, сделанная из подвесного каната. Предположим, что самая низкая точка — @;0). Тогда цепная линия описывается формулой у = Ccosh(x/C) — С. Чтобы найти цепную линию, которая проходит через точки (±а;Ь), следует решить уравнение Ъ = Ccosh(a/C) —С для С. (a) Покажите, что цепная линия, которая проходит через точку (±10; 6), имеет вид у = 9,1889 cosh(s/9,1889) - 9,1889. (b) Найдите цепную линию, которая проходит через точки (±12; 5). 2.5. Процесс Эйткена и методы Стеффенсена и Мюллера (оптимальные) В разделе 2.4 было показано, что метод Ньютона медленно сходится к кратному корню и порядок последовательности итераций {рь} — линейный. В теореме 2.7 показано, как ускорить сходимость, но это возможно, если заранее известен по- порядок корня. Процесс Эйткена Технику, называемую процесс Эйткена А2, можно использовать для ускоре- ускорения сходимости любой последовательности, которая сходится линейно. Для ее описания необходимо следующее определение. Определение 2.6. Задана последовательность {pn}%Lo- Определим сначала раз- разности Арп A) Арп = pn+i -рп для п > 0. Разности высшего порядка Акрп определяются рекуррентно по формуле B) АкРп = Ак~1(Арп) для к > 2. ^ Теорема 2.8 (ускорение Эйткена). Предположим, что последовательность {Pn}^Lo линейно сходится к пределу р и что р — рп Ф 0 для всех п > 0. Ес- Если существует такое действительное число А, \А\ < 1, что C) lim ^ZftHl = A, „к» р-рп то последовательность {gn}?L0, определяемая формулой А2рп П Рп+2 ~ 2pn+i + рп'
108 Глава 2. Решение нелинейных уравнений f(x) = 0 Таблица 2.10. Линейно сходящаяся последовательность {рп} п 1 2 3 4 5 6 Рп 0,606530660 0,545239212 0,579703095 0,560064628 0,571172149 0,564862947 Еп -Рп-р 0,039387369 -0,021904079 0,012559805 -0,007078663 0,004028859 -0,002280343 1 Еп Лп Sn-i -0,586616609 -0,556119357 -0,573400269 -0,563596551 -0,569155345 -0,566002341 сходится к р быстрее, чем {pn}?Lo> в том смысле, что E) lim П->00 Р-Яп Р-Рп = 0. Доказательство. Покажем, как вывести формулу D), и оставим читателю дока- доказательство E) в качестве упражнения. Так как члены в C) стремятся к пределу, можно записать F) Р-Рп+1 р-Рп+2 P-Pn P - Pn+1 Из соотношений F) следует, что G) {р - Pn+lJ « (р - Рп+2) (Р-Рп). После преобразования обеих частей G) члены с р2 пропадут, и в результате полу- получим (8) Pn-f 2 - + Рп дляп = Формулу (8) используют для определения члена qn. Формулу D) можно полу- получить из (8) путем простых алгебраических преобразований. При ее использовании ошибка увеличивается меньше при вычислениях на компьютере. • Пример 2.18. Покажем, что последовательность {рп} из примера 2.2 имеет линейный порядок сходимости и что последовательность {qn}, полученная в ходе процесса Эйткена Д2, сходится быстрее. Последовательность {рп} получена методом итерации неподвижной точки для функции д(х) = е~х с начальным приближением ро = 0,5. Последовательность
2.5. Процесс Эйткена и методы Стеффенсена и Мюллера Таблица 2.11. Получение последовательности {qn} с использованием процесса Эйткена 109 п 1 2 3 4 5 6 0,567298989 0,567193142 0,567159364 0,567148453 0,567144952 0,567143825 Яп-р 0,000155699 0,000049852 0,000016074 0,000005163 0,000001662 0,000000534 итераций сходится к пределу Р « 0,567143290. Значения рп и qn приведены в табл. 2.10 и 2.11. Для наглядности покажем, как вычисляется д^: = P1- (p2-piJ = °-5б72!)8989- Хотя последовательность {qn} в табл. 2.11 сходится линейно, она сходится быстрее, чем последовательность {рп}, в смысле теоремы 2.8. Обычно метод Эйткена дает большее улучшение, чем полученное. Если объединить процесс Эй- Эйткена и итерацию неподвижной точки, то в результате получим метод, называемый ускорением Стеффепсена. Детали приведены в программе 2.7 и упражнениях. Метод Мюллера Метод Мюллера является обобщением метода секущих в том смысле, что в нем не требуется производная функции. Это итерационный метод, для которого необ- необходимы три начальные точки: (ро> /(Ро))? (рь /(Pi)) и (Р2? /(Рг))- Далее строится парабола, проходящая через эти три точки, и следующее приближение находится, как корень квадратного уравнения. Докажем, что в окрестности простого корня метод Мюллера сходится быстрее, чем метод секущих, и почти так же быстро, как метод Ньютона. Этот метод можно использовать, чтобы найти действительные или комплексные нули функции. Его можно запрограммировать с использованием комплексной арифметики. Без потери общности предположим, что р2 — наилучшее приближение к корню, и рассмотрим параболу, которая проходит через три начальных значения, как показано на рис. 2.17. Сделаем замену переменной \7) ъ — х — до?
110 Глава 2. Решение нелинейных уравнений /(ж) = 0 P2 P3\ * = 0 t = z Рис. 2.17. Начальные приближения ро, pi и рч для метода Мюллера и разно- разности hn и /ii и используем разности A0) Ло=Ро-Р2 и /ii=pi-p2. Рассмотрим квадратный полином от переменной t: A1) y = at2 + fa + c. Будем использовать каждую точку, чтобы получить уравнение для нахождения а, b и с: A2) при t = /io: a/i(j + Ь/io + с = /о, при t = hx: ahl + bhi+c = fu при t = 0: аО2 + 60 + с = /2. Из третьего уравнения в A2) видно, что A3) с = /2. Подставляя A3) в первые два уравнения из A2) и используя определение ео = = /о ~ с и е\ = /i — с, получим в результате систему линейных уравнений ahl + bho = /о — с = ео, a/i2 + 6/ii = /i - с = ei. Решаем ее относительно а и b и получаем в результате A4) A5) а = 6 =
2.5. Процесс Эйткена и методы Стеффенсена и Мюллера 111 Квадратичная формула используется для нахождения корней t = 21,22 уравне- уравнения A1): A6) *=- Ь±л/Ь2-4ас Формула A6) эквивалентна обычной формуле для вычисления корней квадратного уравнения, но удобнее для данного случая, так как известно, что с = /2. Чтобы гарантировать устойчивость метода, выберем в A6) корень, наименьший по абсолютной величине. Если Ь > О, используем положительный знак квадрат- квадратного корня, и, если 6 < 0, используем отрицательный знак. Тогда рз показано на рис. 2.17 и задается равенством A7) Рз = Р2 + *. Чтобы выбрать итерации, возьмем два значения, ро ирь среди {ро>РъРз}> которые лежат ближе к рз (т. е. отбросим то, которое находится дальше осталь- остальных). Затем поменяем рг с рз. Несмотря на то что в методе Мюллера проделано множество дополнительных вычислений, он требует вычисления только одного значения функции на итерацию. Если использовать метод Мюллера, чтобы находить действительные корни уравнения f(x) = 0, то, вероятно, может встретиться комплексное приближе- приближение, так как квадратные корни в A6) могут быть комплексными (не равная нулю мнимая часть). В этих случаях мнимая часть будет иметь малую величину и может быть установлена равной нулю, так что вычисления продолжатся с действитель- действительными числами. Сравнение методов Метод Стеффенсена можно использовать вместе с методом Ньютона-Рафсона для нахождения неподвижной точки функции д(х) = х — f(x)/ff(x). В следую- следующих двух примерах рассмотрим корни полинома f(x) = х3 — Зх + 2. Функцией Ньютона-Рафсона является д(х) = Bхг — 2)/(Зж2 — 3). Как только эта функция будет использована в программе 2.7, приведем вычисления в колонке для методов Стеффенсена и Ньютона табл. 2.12 и 2.13. Например, начиная с ро = -2,4, можно вычислить A8) pi = д(р0) = -2,076190476, и A9) р2 = g(pi) = -2,003596011. Тогда улучшение Эйткена даст значение рз = —1,982618143.
112 Глава 2. Решение нелинейных уравнений f(x) = О Таблица 2.12. Сравнение сходимости около простого корня К 0 1 2 3 4 5 6 7 Метод секущих -2,600000000 -2,400000000 -2,106598985 -2,022641412 -2,001511098 -2,000022537 -2,000000022 -2,000000000 Метод Мюллера -2,600000000 -2,500000000 -2,400000000 -1,985275287 -2,000334062 -2,000000218 -2,000000000 Метод Ньютона -2,400000000 -2,076190476 -2,003596011 -2,000008589 -2,000000000 Метод Стеффенсена и Ньютона -2,400000000 -2,076190476 -2,003596011 -1,982618143 -2,000204982 -2,000000028 -2,000002389 -2,000000000 Таблица 2.13. Сравнение сходимости около двойного корня Л 0 1 2 3 4 5 6 7 8 9 Метод секущих 1,400000000 1,200000000 1,138461538 1,083873738 1,053093854 1,032853156 1,020429426 1,012648627 1,007832124 1,004844757 Метод Мюллера 1,400000000 1,300000000 1,200000000 1,003076923 1,003838922 1,000027140 0,999997914 0,999999747 1,000000000 Метод Ньютона 1,200000000 1,103030303 1,052356417 1,026400814 1,013257734 1,006643418 1,003325375 1,001663607 1,000832034 1,000416075 Метод Стеффенсена и Ньютона 1,200000000 1,103030303 1,052356417 0,996890433 0,998446023 0,999223213 0,999999193 0,999999597 0,999999798 0,999999999 Пример 2.19 (сходимость около простого корня). Это сравнение методов для функции f(x) = х3 — Зх + 2 около простого корня р = —2. Метод Ньютона и метод секущих для этой функции приведены в примерах 2.14 и 2.16 соответственно. В таб. 2.12 приведены результаты вычислений для этих методов. ¦ Пример 2.20 (сходимость около двойного корня). Сравнение методов для функции f(x) = хг - Зх + 2 около двойного корня р = 1. В таб. 2.13 приве- приведены результаты вычислений. ¦ Метод Ньютона является наилучшим для нахождения простого корня (см. табл. 2.12). Для двойного корня хорошо выбирать либо метод Мюллера, либо
2.5. Процесс Эйткена и методы Стеффенсена и Мюллера 113 метод Стеффенсена с формулой Ньютона-Рафсона (см. табл. 2.13). Отметим, что в формуле D) ускоренного метода Эйткена может появиться деление на нуль, тогда как последовательность {pk} сходится. В этом случае последнее вычислен- вычисленное приближение к нулю следует использовать в качестве приближения к нулю функции /. В приведенной ниже программе последовательность {pk}> которая генерирует- генерируется методом Стеффенсена с формулой Ньютона-Рафсона, хранится в матрице Q, состоящей из maxl строк и 3 столбцов. В первом столбце Q содержатся начальное приближение к корню, ро> и члены рз> Рб, • • •> Рзь • • •> генерируемые ускоренным методом Эйткена D). Во втором и третьем столбцах матрицы Q содержатся чле- члены, генерируемые методом Ньютона. Критерий останова в программе основан на разнице между последовательными членами первого столбца матрицы Q. Программа 2.7 (ускоренный метод Стеффенсена). Быстрое нахождение ре- решения уравнения неподвижной точки х = д(х) с заданным начальным при- приближением ро- Предполагается, что и д(х), и д'(х) непрерывны, \д'(х)\ < 1 и обычная итерация неподвижной точки медленно (линейно) сходится к р. function [р,Q] =steff (f,df,рО,delta,epsilon,maxl) '/, Вход - f - функция, вводимая как строка 'f X - df - производная, вводимая как строка 'df' У, - рО - начальное приближение к нулю функции f X - delta - допустимое отклонение для рО X - epsilon - допустимое отклонение для значений функции у X - maxl - максимальное число итераций У,Выход - р - приближение Стеффенсена к нулю X - Q - матрица, содержащая последовательность Стеффенсена '/.Инициализация матрицы R R=zeros(maxl,3); R(l,l)=pO; for k=l:maxl for j=2:3 '/.Вычисление знаменателя в формуле метода Ньютона-Рафсона nrdenom=feval(df ,R(k, j-O); '/•Вычисление приближений Ньютона-Рафсона if nrdenom==0 'деление на нуль в методе Ньютона-Рафсона9 break else R(k,j)=R(k,j-l)-feval(f,R(k,j-l))/nrdenom; end
114 Глава 2. Решение нелинейных уравнений f(x) = О '/•Вычисление знаменателя в ускоренном процессе Эйткена aadenom=R(k,3)-2*R(k,2)+R(k,l); '/Вычисление приближений ускоренного процесса Эйткена if aadenom==0 'деление на нуль в ускоренном процессе Эйткена9 break else R(k+l,l)=R(k,l)-(R(k,2)-R(k,l))~2/aadenom; end end ХКонец программы при появлении деления на нуль if (nrdenom==0)I(aadenom==0) break end '/•Вычисление р для критерия останова и матрицы Q err=abs(R(k,l)-R(k+l,l)); relerr=err/(abs(R(k+1,1))+delta); y=feval(f,R(k+l,l)); if (err<delta)I(relerr<delta)I(y<epsilon) */• вычисляем р и матрицу Q p=R(k+l,l); break end end Программа 2.8 (метод Мюллера). Нахождение корня уравнения f(x) = 0 с тремя заданными различными начальными приближениями ро> Pi и Р2- function [p,y,err]=muller(f,pO,pi,p2,delta epsilon,maxl) */• Вход - f - функция, вводимая как строка *f' X - рО, pi и р2 - начальные приближения '/• - delta - допустимое отклонение для рО, pi и р2 '/• - epsilon - допустимое отклонение для значений функции у '/• - maxl - максимальное число итераций '/•Выход - р - приближение Мюллера к нулю функции f '/• - у - значение функции у = f (р) '/• - err - ошибка приближения к р ^Инициализация матриц Р и Y Р=[рО pi р2]; Y=feval(f,P);
2.5. Процесс Эйткена и методы Стеффенсена и Мюллера 115 '/.Вычисление а и b в формуле A5) for k=l:maxl hO=P(l)-PC);hl=PB)-PC);eO=Y(l)-YC);el=YB)-YC);c=YC); denom=hl*hO~2-hO*hl~2; a=(eO*hl-el*hO)/denom; b=(el*hO~2-eO*hl~2)/denom; '/•Подавление любых комплексных корней if Ъ~2-4*а*с > О disc=sqrt(b~2-4*a*c); else disc=0; end '/•Нахождение наименьшего корня уравнения A7) if b < О disc—disc; end z=-2*c/(b+disc); p=PC)+z; '/•Сортировка входных Р для поиска двух ближайших к р if abs(p-PB))<abs(p-P(O) Q=[PB) P(l) PC)]; P=Q; Y=feval(f,P); end if abs(p-PC))<abs(p-PB)) R=[PA) PC) PB)]; P=R; Y=feval(f,P); end '/•Замена входного Р ближайшим от р рп PC)=p; YC) = feval(f,PC)); y=YC); '/•Вычисление критерия останова err=abs(z); relerr=err/(abs(p)+delta); if (err<delta)I(relerr<delta)I(abs(y)<epsilon) break end end
116 Глава 2. Решение нелинейных уравнений /(ж) = О Упражнения к разделу 2.5 1. Найдите Арп, где (а) pn = 5 (b) рп = 6п 2. Пусть рп = 2п2 + 1. Найдите Акрп, где (a) fc = 2 (b) fc = 3 (С) pn=n(n+l) (с) А: = 4 3. Пусть рп = 1/2п. Покажите, что qn = О для всех п, где gn задано формулой D). 4. Пусть рп = 1/п. Покажите, что gn = l/Bn + 2) для всех п. Следовательно, существует небольшое ускорение сходимости. Сходится ли {рп} к 0 линейно? Почему? 5. Пусть рп = 1/Bп - 1). Покажите, что qn = 1/ Dn+1 - l) для всех п. 6. Последовательность рп = 1/Dп+4~п) сходится линейно к 0. Воспользуйтесь формулой Эйткена D), чтобы найти gi,g2 и дз> и таким образом ускорить сходимость. п 0 1 2 3 4 5 Рп 0,5 0,23529412 0,06225681 0,01562119 0,00390619 0,00097656 Чп -0,26437542 7. Последовательность {рп}, генерируемая итерацией неподвижной точки, на- начинается с ро = 2,5, использует функцию д(х) = F + жI/2 и сходится линейно к р = 3. Воспользуйтесь формулой Эйткена D), чтобы найти qu 92 и дз и таким образом ускорить сходимость. 8. Последовательность {рп} генерируется итерацией неподвижной точки, на- начиная с точки ро = 3,14, и, используя функцию д(х) = 1п(ж) + 2, сходится линейно кр«3,1419322. Воспользуйтесь формулой D) Эйткена, чтобы найти 91) 92 и qz и таким образом ускорить сходимость. 9. Для уравнения cos(#)-l = 0 функция метода Ньютона-Рафсона равна д(х) = = х — A — cos(#))/ sin(#) = х — tan(ar/2). Воспользуйтесь алгоритмом Стеф- фенсена с функцией д(х), начните с ро = 0,5 и найдите сначала рь р2 и рз, а затем — р4, ps и ре.
2.5. Процесс Эйткена и методы Стеффенсена и Мюллера 117 10, Сходимость рядов. Метод Эйткена можно использовать для ускорения схо- сходимости рядов. Если h-я частичная сумма ряда равна покажите, что ряд, полученный с помощью метода Эйткена, имеет вид Л2 т — Q о. "+1 An+i - Ап+2 В упр. 11-14 для ускорения сходимости ряда применяются метод Эйткена и ре- результаты упр. 10. 13 Я = V^ro к 14- sn = ELi 2^ 15. Воспользуйтесь методом Мюллера, чтобы найти корень уравнения f(x) = = хг — х — 2. Начните с ро = 1,0, pi = 1,2 и р2 = 1,4 и найдите рз, Р4 16. Воспользуйтесь методом Мюллера, чтобы найти корень уравнения f(x) = = Ах2 — ех. Начните с ро = 4,0, р\ = 4,1 и рг = 4,2 и найдите рз, Р4 и ps. 17. Пусть {рп} и {qn} — любые две последовательности действительных чисел. Покажите, что (а) Д(рп + qn) = Apn + Aqn .18. Начните с формулы (8), прибавьте члены рп+2 и —рп+2 к правой части и j покажите, что эквивалентная формула имеет вид Рп+2 - 19. Предположим, что ошибка итерационного процесса удовлетворяет соотно- соотношению 2?n+i = КЕп для некоторой константы К и \К\ < 1. (a) Найдите выражение для JSn, в которую входят Eq9 К ип. (b) Найдите такое наименьшее целое число iV, чтобы \Ец\ < 10~8.
118 Глава 2. Решение нелинейных уравнений f(x) = О Алгоритмы и программы 1. Воспользуйтесь методом Стеффенсена с начальным приближением ро = 0,5, чтобы найти приближение к нулю функции f(x) = х — sin(z) с точностью до 10 десятичных знаков. 2. Воспользуйтесь методом Стеффенсена с начальным приближением ро = 0,5, чтобы найти приближение к нулю функции f(x) = sin(a;3), ближайшее к 0,5, с точностью до 10 десятичных знаков. 3. Воспользуйтесь методом Мюллера с начальными приближениями ро = 1,5; Рх = 1,4 и р2 == 1?3, чтобы найти нуль функции f(x) = 1 + 2х — tan(a;) с точностью до 12 десятичных знаков. 4. В программе 2.8 (метод Мюллера) матрица Р размера 1x3 инициализирова- инициализирована с ро> Рх и Р2- Затем в конце цикла одно из значений ро9р\ и р2 заменяется новым приближением к нулю. Этот процесс продолжается до тех пор, пока не выполнится критерий останова, скажем, при к = К. Преобразуйте про- программу 2.8 так, чтобы в дополнение к р и err матрица Q размера (К +1) х 3 получалась такой, чтобы ее первая строка включала матрицу Р размера 1x3 с начальными приближениями к нулю и k-я строка матрицы Q содержала А;-й набор трех начальных приближений к нулю. Используйте это преобразование программы 2.8 с начальными приближе- приближениями ро = 2,4; р\ = 2,3 и р2 = 2,2, чтобы найти нули функции f(x) = = 3cos(a;) + 2sin(a;) с точностью до 8 десятичных знаков.
3 Решение систем линейных уравнений АХ = В На рис. 3.1 изображены три плоскости, которые ограничивают тело в первом октанте. Предположим, что уравнения этих плоскостей записываются так: Ъх + у + z = 5, х + 4у + z = 4, х + у + Zz = 3. Чему равны координаты точки пересечения трех плоскостей? Для решения систе- системы линейных уравнений использовался метод приведения к одному неизвестному (метод Гаусса): я = 0,76, у = 0,68 и z = 0,52. В этой главе будут рассмотрены численные методы решения систем линейных уравнений. 3.1. Введение в теорию векторов и матриц Действительный iV-мерный вектор X — это упорядоченный набор из N дей- действительных чисел, который обычно в координатной форме записывается как A) , X = (xux2,...,xN). Числа х\, Х2, ... и xn называются компонентами X. Множество всех N-мер- ных векторов называется N мерным пространством. Когда вектор используется 119
120 0,0 Глава 3. Решение систем линейных уравнений АХ = В 0,0 1,0 Рис. 3.1. Пересечение трех плоскостей для обозначения точки или положения в пространстве, его называют радиус- вектором. Когда вектор используется для обозначения перемещения между двумя точками в пространстве, его называют вектором переноса. Пусть У = (yi,y2,...,yjv) — произвольный вектор. Говорят, что вектор X равен вектору Y тогда и только тогда, когда каждая координата одного вектора равна такой же координате другого, т. е. B) X — Y тогда и только тогда, когда Xj = yj для j? = 1, 2, ..., N. Сумма векторов X и Y вычисляется покомпонентно согласно определению C) X + Y = (xi + yi, х2 + У2, • •.,%n + Vn)- Отрицание вектора X получаем, заменяя каждую координату ее отрицанием: D) -X = (-Ж1, -ж2, • - •, Разность Y — X является вектором, координаты которого равны разностям координат соответствующих векторов: E) - X = (yi ~ ХЪ у2 - , VN -
3.1. Введение в теорию векторов и матриц 121 Для векторов в iV-мерном пространстве выполняется алгебраическое свойство F) У - X = У + (-Х). Если с — действительное число (скаляр), то определим умножение на скаляр сХ следующим образом: G) сХ = (cxi,cx2,... ,cxN). Если с и d — скаляры, то взвешенную сумму сХ + ЗУ называют линейной комбинацией векторов X и У и записывают как (8) сХ + dY = (cxi + dyi,cx2 + dy2,..., cxN Скалярное произведение двух векторов X и У — это скалярная величина (действительное число), определенная выражением (9) X • У = xiyi + х2у2 Н h Норма (или длина) вектора X определяется как (Ю) Выражение A0) еще называют нормой Евклида (или длиной) вектора X. Умножение на скаляр сХ удлиняет вектор X, когда \с\ > 1, и сокращает, когда \с\ < 1. Это можно показать, используя формулу A0): ( \ . Существует важное соотношение между скалярным произведением и нормой вектора. Если обе части равенства A0) возведем в квадрат и используем равенство (9), заменив У на X, то получим A2) ||Х||2 = х\ + х\ + • • • + х% = X • X. Если X и У — радиус-векторы, которые определяют место расположения двух точек (ж1,Я2,...,ялг) и (уьУ2?---?2Мг) в iV-мерном пространстве, то вектор переноса от X к У задается разностью A3) У — X (перенос из положения X в положение У). Заметим, что если частица выходит из положения X и двигается по вектору У - X, то ее новой позицией будет У. Это можно получить с помощью следую- следующей суммы векторов: A4) У = Х + (У-Х).
122 Глава 3. Решение систем линейных уравнений АХ = В Используя равенства A0) и A3), запишем формулу для расстояния между двумя точками в iV-мерном пространстве: A5) - Х\\ = ((ух - XXf + (у2 ~ Х2J Когда расстояние между точками вычисляется согласно формуле A5), говорят, что точки лежат в N-мерном Евклидовом пространстве. Пример 3.1. Пусть X = B,-3,5,-1) и Y = F,1,2,-4). Проиллюстрируем для векторов в 4-мерном пространстве упомянутые выше понятия. Сумма Разность Умножение на скаляр Длина Скалярное произведение Перенос из X к Y Расстояние от X до Y Х + У = (8,-2,7,-5) X -У = (-4,-4,3,3) ЗХ = F, -9,15, -3) X Y = 12-3 + 10 + 4 = 23 У-Х = D,4,-3,-3) \\Y - Х\\ = A6 + 16 + 9 + 9I/2 = 501/2 Иногда векторы записывают в виде столбцов, а не строк, например A6) XI XN И Y = Уг VN Тогда линейная комбинация сХ + dY имеет вид A7) сХ + dY = сх2 + dy2 Выбрав соответственно с и d в равенстве A7), можно получить сумму IX +1Y, разность IX — 1У и умножение на скаляр cJt + OY. В дальнейшем будем исполь- использовать верхний индекс ";" для обозначения транспонирования, чтобы обозначить вектор-строку, который преобразуется в вектор-столбец и наоборот: A8) XI XN И хг XN T I
3.1. Введение в теорию векторов и матриц 123 Множество векторов имеет нулевой элемент 0, который определен как A9) 0 = @,0,...,0). Теорема 3.1 (векторная алгебра). Предположим, что X, Y и Z — TV-мерные векторы и а и b — скаляры (действительные числа). Тогда выполняются следую- следующие свойства сложения векторов и умножения вектора на скаляр. B0) У + Х = Х B1) 0 + Х = Х B2) Х-Х = B3) (X + Y) + B4) (а + Ь)Х = B5) a(X + Y) B6) а{ЬХ) = (аЬ)Х Свойство коммутативности Аддитивное тождество Аддитивное обращение Свойство ассоциативноси Свойство дистрибутивности для скаляров Свойство дистрибутивности для вектора Свойство ассоциативности для скаляров Матрицы и двухмерные массивы Матрица — это прямоугольный массив чисел, который упорядочен по строкам и столбцам. Матрица, состоящая из М строк и N столбцов, называется матрицей размера М х N (читается "М на TV"). Обозначается матрица большой буквой А; буквой щ с нижними индексами обозначается одно из чисел, образующих матрицу. Запишем B7) А = [aij]MxN Для 1 < г < М, 1 < j < N, где а^ — число на месте (i,j) (т. е. число, которое хранитря в г-й строке и j-м столбце матрицы). Мы обращаемся к а^, как к элементу, занимающему место (г, j). В развернутом виде матрица записывается так: B8) строка г -> an аи амг ^22 a2j = A. столбец j Строки матрицы А размера М х N — это iV-мерные векторы: B9) Vi = (aib ai2,..., aiN) для i = 1, 2, ..., M.
124 Глава 3. Решение систем линейных уравнений АХ = В Вектор-строку в B9) также можно представить в виде матрицы размера 1 х N, т. е. разделить матрицу А размера М х N на М частей (подматриц), каждая из которых является матрицей размера 1 х N. В этом случае можно представить матрицу А в виде матрицы размера Mxl, содержащей 1 х N матриц в виде Vu т. е. C0) V2 V2 У* Аналогично столбцы матрицы А размера М х N являются матрицами размера Mxl: C1) Сг = аи аи , ..., Сj = a>2N В этом случае можно представить матрицу А в виде матрицы размера 1 х N, содержащую Mxl матриц в виде столбцов Су. C2) A=[Ci C2 CN]. Пример 3.2. Идентифицируем строки и столбцы матрицы, ассоциированной с матрицей размера 4x3: Г-2 4 9" 5 -7 1 0-3 8 -4 6 -5. Четыре матрицы строки равны V\ = [—2 4 9], V2 = [5 —7 l], V3 = = [О —3 8] и V4 = [—4 6 —5]. Три матрицы столбца равны Г-2' 5 0 -4 4" -7 -3 6 9" 1 8
3.1. Введение в теорию векторов и матриц 125 Отметим, как матрицу А можно представить с помощью этих матриц: С2 С3]. ¦ Пусть А ш [a,ij]MxN и В = [bij]MxN — две матрицы одинакового размера. Говорят, что две матрицы Аи В равны тогда и только тогда, когда равны все их соответствующие элементы, т. е. C3) АшВ только тогда, когда для 1 <t<М, l<j<N. Сумма двух матриц Аи В размера MxN вычисляется поэлементно согласно определению C4) mi Отрицание матрицы А получается в результате замены каждого элемента его отрицанием: C5) для Разность матриц А - В — это матрица, элементы которой равны разности соответствующих элементов матриц: C6) для 1<г< Если с — действительное число (скаляр), то можно определить умножение матрицы на скаляр сА следующим образом: C7) сА — [caij]MxN для 1 < г < М, l<j<N. Если р и q — скаляры, то взвешенная сумма рА + qB называется линейной комбинацией матриц А и В и записывается в форме C8) рА + qB = \paij + qbij]MxN для 1<г<М, l<j<N. Нулевая матрица размера М х N состоит из всех нулей: C9) 0 = [О]мхлг. Пример 3.3. Найдем произведение на скаляр 2А и 3J3 и линейную комбинацию 2Л - ЪВ матриц А = 1 7 3 2 5 -4 и В = -2 1 —•9 3 -4 7
126 Глава 3. Решение систем линейных уравнений АХ = В Используем формулу C7) и получим 2А= 14 10 и ЗВ = -2 14 6 4 10 -8 -6 9" 3 -12 -27 21 Найдем линейную комбинацию 2 А — ЗВ: ЧА - ЗВ = -2 + 6 4-9' 14-3 10 + 12 6 + 27 -8-21 '4 И 33 -5" 22 -29 Теорема 3.2 (сложение матриц). Предположим, что А, В и С — матрицы размера М xN upaq — скаляры. Тогда операции сложения матриц и умножения матрицы на скаляр имеют следующие свойства. D0) D1) D2) D3) D4) D5) D6) А-А = А + {-А) = {А + В) + С = А + ( (р + q)A = рА + qA В)=рА + рВ Свойство коммутативности Аддитивное тождество Аддитивное обращение Свойство ассоциативности Свойство дистрибутивности для скаляров Свойство дистрибутивности для матриц Свойство ассоциативности для скаляров Упражнения к разделу 3.1 Следующие упражнения читатель может выполнять вручную и с помощью MATLAB. 1. Заданы векторы X и Y. Найдите (а) X + Y, (Ь) X - Y, (с) ЗХ, (d) (е) 1Y - 4Х, (f) X ¦ Y, и (g) \\7Y - 4Х\\. (i) X = C,-4) иУ = (-2,8) (и) X = (-6,3,2) иУ = (-8,5,1) (ш) X = D, -8,1)иУ = A, -12, -11) (iv) X = A, -2,4,2) и Y = C, -5, -4,0) 2. Используя закон косинуса, можно показать, что угол в между векторами X и Y задается отношением cos(<?)=щщ- Найдите угол (в радианах) между следующими векторами. (a) Х = (-6,3,2) иУ = B,-2,1) (b) Х = D,-8,1) иУ = C,4,12)
3.1. Введение в теорию векторов и матриц 127 3. Говорят, что два вектора X и Y ортогональны (перпендикулярны)^ если угол между ними равен тг/2. (a) Докажите, что X и Y ортогональны тогда и только тогда, когда X ¦ Y = = 0. Используя п. (а), определите, ортогональны ли следующие векторы. (b) X = (-6,4,2) иУ = F,5,8) (c) Х = (-4,8,3) иУ = B,5,16) (d) Х = (-5,7,2)иУ = D,1,6) (e) Найдите два различных вектора, ортогональных вектору X = A,2, —5). 4. Найдите (я) А + В, ф) А - В и (с) ЗА - 1В для матриц -1 9 4" 2 -3 -6 0 5 7 TJ -4 9 2' 3-5 7 8 1 -6 5. Транспонированная матрица А размера М х N, обозначаемая А', — это матрица размера N х М, которую получают из А посредством обращения строк матрицы А в столбцы А', т. е. если А = [а^д/хдг и А' = [Щ^хМ' то элементы удовлетворяют отношению bji = ац for 1 < г < М, 1 < j < N. (а) 1 7 И 4 0 -3 -1 6 8 (Ь) 9 5 1 Найдите транспонированные матрицы для следующих матриц. Г-2 5 12" 4 -1 0 6 -3 8. 6. Говорят, что квадратная матрица А размера N х N симметрична,'если А = = А' (см. определение А' в упр. 5). Определите, будут ли симметричными следующие квадратные матрицы. (a) 1 -7 4 -7 2 0 4 0 3 (с) А = [ац\ где «У = (d) A = [aij]isrxN, где а^- = 7. Докажите утверждения B0), B4) и B5) теоремы 3.1.
128 Глава 3. Решение систем линейных уравнений АХ = В 3.2. Свойства векторов и матриц Линейная комбинация величин хь хг, • • •» х# — это сумма A) й\Х\ + 02X2 + • • • где aje — коэффициенты при х* для А = 1, 2,..., N. Линейное уравнение относительно хь ВД> • • •» х# получаем, приравнивая ли- линейную комбинацию A) к значению Ь, т. е, B) a%xi + й^хъ + • • • + unxn ш 6. Систему линейных уравнений, которая часто возникает, когда заданы М урав- уравнений от N неизвестных, можно записать в виде C) + OM2X2 H Для того чтобы различать коэффициенты каждого уравнения, необходимо ис- использовать два нижних индекса (kj). Первый индекс определяет уравнение к, которому принадлежат коэффициенты, и второй индекс определяет переменную xj, перед которой стоит коэффициент. Решением системы уравнений C) является набор численных значений х\, Х2, ..., хм, которые одновременно удовлетворяют всем уравнениям в C). Следова- Следовательно, решение может иметь вид iV-мерного вектора: D) X = (Х1,ж2,...,хлг). Пример 3.4. Бетон (строительный материал) представляет собой смесь портланд- портландцемента, песка и гравия. Распределитель имеет в распоряжении три замеса бе- бетона для подрядчика. Первый замес бетона содержит цемент, песок и гравий, смешанные в пропорции 1/8,3/8,4/8; второй замес бетона имеет пропорции 2/10,5/10,3/10 и третий - 2/5,3/5,0/5. Пусть xi,#2, и хз определяют количество бетона в каждом замесе (в кубиче- кубических ярдах, 1 ярд = 3 фута = 91,44 см), общий объем бетона равен 10 кубическим ярдам. Также предположим, что смесь содержит bi = 2,3; 62 = 4,8 и 63 = 2,9 ку- кубических ярдов портланд-цемента, песка и гравия соответственно. Тогда система
3.2. Свойства векторов и матриц 129 линейных уравнений для ингредиентов имеет следующий вид: 0,125xi + 0,200аг2 + 0,400ж3 = 2,3 (цемент) E) 0,375^1 + 0,500x2 + 0,600х3 = 4,8 (песок) 0,500xi + 0,300x2 + 0,000хз = 2,9 (гравий) Решениями системы линейных уравнений E) являются xi = 4, хг = 3 и хз = 3, что можно проверить, подставив эти значения в уравнения: @,125)D) + @,200)C) + @,400)C) = 2,3; @,375) D) + @,500) C) + @,600) C) = 4,8; @,500) D) + @,300) C) + @,000) C) = 2,9. ¦ Умножение матриц Определение 3.1. Если А = [a,ik]MxN и J3 = [bkj]NxP — такие две матрицы, что А состоит из стольких же столбцов, из скольких строк состоит матрица JB, произведение матриц АВ — это матрица С размера М х Р: F) АВ ш С = [сц)МхР, где элемент с^ матрицы С равен скалярному произведению г-й строки матрицы А и j-ro столбца В: N G) C{j = 2^ ciikhj = anbij + ai2b2j H 1- для г = 1, 2,..., M и j = 1, 2, ..., P. A Пример 3.5. Найдем произведение С = АВ для следующих матриц и объясним, почему матрица В Л не определена: , Г5 -2 11 ¦[-М- В~ 13 8-6 ЛВ~ Матрица А состоит из двух столбцов, матрица В — из двух строк, поэтому произведение матриц АВ определено. Произведение матриц размера 2 х 2 и 2 х 3 равно матрице размера 2x3. Вычисления показывают, что 2 3] [5 -2 1 -1 4J [3 8 -( 10 + 9 -4 + 24 2-18] = [19 20 -16 -5 + 12 2 + 32 -1 - 24| ~[ 7 34 -25 Когда мы попытались получить произведение матриц В А, то обнаружили, что размерности не совместимы по порядку, так как строки матрицы В — это трех- трехмерные векторы, а столбцы матрицы А двухмерные векторы. Поэтому скалярное произведение j-й строки матрицы В и fc-ro столбца А не определено. ¦
130 Глава 3. Решение систем линейных уравнений АХ = В В случае, когда АВ = ВА9 говорят, что матрицы Аи В коммутативны. Очень часто, даже когда обе матрицы, АВ и В А, определены, эти произведения не обязательно совпадают. Рассмотрим, как можно использовать матрицы для представления системы ли- линейных уравнений. Систему линейных уравнений C) можно записать как про- произведение матриц. Коэффициенты а^ содержатся в матрице А размера М х N (называемой матрицей коэффициентов), а неизвестные Xj содержатся в матри- матрице -X" размера N х 1. Константы Ь^ содержатся в матрице В размера М х 1. Общепринято использовать матрицы-столбцы и для X, и для В. Тогда запишем аи «22 a2j &2N 0>MNm I Xj -XN. ¦ рм (8) Умножение матриц АХ = В в (8) напоминает скалярное произведение для обычных векторов, потому что каждый элемент Ь^ в матрице В равен скалярному произведению строки к матрицы А и столбца матрицы X. Пример 3.6. Выразим систему линейных уравнений E) из примера 3.4 в ви- виде произведения матриц. Используем умножение матриц, чтобы проверить, что [4 3 3]; — это решение E): (9) 0,125 0,200 0,400' 0,375 0,500 0,600 0,500 0,300 0,000 XI Х2 2,3 4,8 2,9. 4 3 3 = 0,5 H 1,5 н 2,0 H h 0,6 H hl,5H hO,9H 1-1,2 1-1,8 hO,O = 2,3 4,8 2,9 Чтобы убедиться, что [4 3 3] является решением E), нужно показать, что А [А 3 3]' = [2,3 4,8 2,9]': 0,125 0,200 0,400' 0,375 0,500 0,600 0,500 0,300 0,000_ Некоторые специальные матрицы Матрица размера М х N, все элементы которой равны нулю, называется нуле- нулевой матрицей размера М х N и записывается как (Ю) 0 = [0]мжлг. Когда размерность известна, для записи нулевой матрицы используется 0.
3.2. Свойства векторов и матриц 131 Единичной матрицей порядка N называется квадратная матрица, заданная в виде 0D /«-л {j ZW Как будет показано в следующем примере, при умножении эта матрица осуще- осуществляет тождественное преобразование. Пример 3.7. Пусть А — матрица размера 2x3. Тогда I2A = А1± = А, Умножив матрицу А слева на матрицу /г, в результате получим 1*1 01 Гаи аи ахз"! = Р*11 + ° °12 + ° аи + °1 = А 10 1J Iа21 а22 а2з| U21 +0 022 + 0 агз + 0J Умножаем матрицу А справа на матрицу 1з и получаем в результате Га1Х ап ахз! Л - J Гахх+О + 0 0 + ах2 + 0 0 + 0 + а13 1 0 0 0 1 0 0 0 1 — = А ш О>2\ «22 »23| л л Т I а21 +0 + 0 0 + 022+0 0 + 0 + | J |_0 0 1J L Некоторые свойства умножения матриц приведены в следующей теореме. Теорема 3.3 (умножение матриц). Предположим, что с — скаляр и что А, В и С такие матрицы, что определены указанные ниже их суммы и произведения. Тогда получаем следующее. A2) (АВ)С = А(ВС) Ассоциативность умножения матриц A3) IA = AI = А Тождественная матрица A4) А(В + С) = АВ + АС Свойство левой дистрибутивности A5) (А + В)С = АС + ВС Свойство правой дш^ибутивности A6) с(АВ) = (сА)В = -А(сВ) Свойство ассоциативности скаляра Обращение невырожденных матриц Понятие "обращение" применяется к матрицам, но требует специального рас- рассмотрения. Матрица А размера N х N называется невырожденной (несингуляр- (несингулярной) или обратимой (неособенной), если существует такая матрица В размера N х N, что A7) АВ = В А = I. Если такая матрица В не существует, говорят, что матрица А — вырожденная (сингулярная). Когда существует матрица В и равенство A7) выполняется, то обычно записывают В = А" и используют хорошо известное отношение A8) АА~~1 = Л"^ если А не вырожденная.
132 Глава 3. Решение систем линейных уравнений АХ = В Легко показать, что можно найти самое большее одну матрицу В, которая может удовлетворять отношению A7). Предположим, что матрица С есть также обращение матрицы А (т. е. АС = С А = I). Тогда можно использовать свойства A2) и A3), чтобы получить С = 1С = (ВА)С = В(АС) = В1 = В. Определители Определитель квадратной матрицы А — это скалярная величина (действитель- (действительное число); обозначается как det(A) или \А\. Если А — матрица размера N х N аи то обычно для определителя используется запись аи det(A) = Хотя по форме определитель, возможно, выглядит, как матрица, их свойства совер- совершенно отличаются. Во-первых, определитель — это скалярная величина (действи- (действительное число). Во-вторых, определитель det(A), определение которого можно найти почти во всех книгах по линейной алгебре, нелегко поддается вычисле- вычислению, когда N > 3. Сейчас рассмотрим, как использовать метод алгебраического дополнения для вычисления определителя. Для вычисления определителей высо- высокого порядка можно использовать метод исключения неизвестных Гаусса, о чем упоминается в описании программы 3.3. Если А = [a,ij] — матрица размера 1 х 1, то определитель равен det(A) = ац. Если А = [o>ij]NxN> где JV>2, то пусть Мц — определитель подматрицы А разме- размера TV—lxJV—1, полученной путем удаления г-й строки и j-ro столбца в матрице А. Говорят, что определитель Мij называется минором ац. Алгебраическое до- дополнение A{j к aij определяется как Ац = (—lJ+JMjj. Тогда определитель матрицы А размера N х N задается формулой N A9) det(A) = ^2 aijAij (^"я строка разложения) 3=1
3.2. Свойства векторов и матриц 133 или N B0) det(A) = 22а{з^ч (•?"** голбец разложения). Применяя формулу A9) при i = 1 к матрице размера 2x2 А=\ап Н, ICL21 ^22 ! видим, что det А = а\\п22 — ^12021. В следующем примере иллюстрируется при- применение формул A9) и B0) для рекуррентного вычисления определителя матрицы размера N х N путем вычисления определителей матриц размера 2x2. Пример 3.8. Используем формулу A9)сг = 1и формулу B0) с j = 2, чтобы вычислить определитель матрицы А = -4 3 8 5 -1 7 -6 9 С помощью формулы A9) с i = 1 получим det(A) = B) 5 -1 -6 9 "C) -4 7 (8) -4 5 7 -6 = B)D5 - 6) - C)(-3б + 7) + (8)B4 - 35) = 77. При использовании формулы B0) с j = 2 получим det(A) = -C) -4 -1 E) 2 8 7 9 (-6) 2 -4 8 = 77. Следующая теорема дает достаточные условия существования и единственно- единственности решения системы линейных уравнений АХ — В для квадратных матриц. Теорема 3.4. Предположим, что А — матрица размера N х N. Следующие утверждения эквивалентны. B1) Для любой заданной матрицы В размера N х 1 система линейных уравнений АХ = В имеет единственное решение. B2) Матрица А невырождена (т. е. существует А~г). B3) Система уравнений АХ = 0 имеет единственное решение X = 0. B4) det(A) ф 0.
134 Глава 3. Решение систем линейных уравнений АХ = В Теоремы 3.3 и 3.4 связывают алгебру матриц с обычной алгеброй. Если спра- справедливо утверждение B1), то утверждение B2) вместе со свойствами A2) и A3) приводит к следующему простому заключению: B5) АХ = В влечет А АХ = А~гВ, которое влечет X = А~гВ. Пример 3.9. Используем обращение матрицы -_i_ 1 Г 4 -1 А - б 1-7 3 и рассуждения из B5), чтобы решить систему линейных уравнений АХ = JB: Используем B5) и получим Примечание. Практически мы никогда не используем численные методы для обращения невырожденной матрицы или определителя квадратной матрицы. Эти понятия употребляются как теоретический "инструмент", чтобы установить су- существование и единственность решений, или как средство алгебраического выра- выражения решения системы линейных уравнений (см. пример 3.9). Вращение плоскости Предположим, что А — матрица размера 3 х 3 и ?7 = [а; у z] — матрица размера 3x1, тогда их произведение V = AU — матрица размера 3x1. Это пример линейного преобразования, которое находит применение в компьютерной графике. Матрица U эквивалентна радиус-вектору U = (#, j/, z)9 который обозна- обозначает координаты точки в трехмерном пространстве. Рассмотрим три специально подобранные матрицы: B6) B7) B8) Rx(a) = О cos(a) sin(a) О — sin(a) cos(a)_ ' cos(/3) 0 sinOS О 1 О -sin(?) 0 cos(/3)_ cos G) — sinG) 0 sinG) cos G) 0 0 0 1
3.2. Свойства векторов и матриц 135 Матрицы Rx{ot), Ry(fi) и Rz{l) используются для вращения точки вокруг осей х, у и z под углами а, /3 и 7 соответственно. Обратные матрицы Rx(-a)9 Ry(-p) и Rz{—7) вращают плоскость вокруг осей #, у и 2 под углами —а, — /3 и —7 соответственно. Следующий пример иллюстрирует этот случай, но дальнейшие исследования оставлены читателю. Пример ЗЛО. Единичный куб расположен в первом октанте с одной из вершин в начале координат. Сначала поворачиваем куб на угол тг/4 вокруг оси z, затем поворачиваем этот образ на угол тг/6 вокруг оси у. Найдем образ всех восьми вершин куба. Первый поворот задан отображением cos(f) sin(f) О -sin(f) 0" cos(f) О О 1 0,707107 0,707107 0,000000 0,707107 0,000000' 0,707107 0,000000 0,000000 1,000000 Затем задан второй поворот: coe(f) 0 sin(f) О 1 О L-sin(f) О cos(|)J 0,866025 0,000000 0,500000' 0,000000 1,000000 0,000000 V. -0,500000 0,000000 0,866025J ' Композиция обоих поворотов имеет вид V = 0,612372 -0,612372 0,707107 0,707107 -0,353553 0,353553 0,500000' 0,000000 0,866025 Вычисленные значения координат углов куба заданы в табл. 3.1 (как радиус- векторы); образы куба показаны на рис. 3.2. ¦ MATLAB MATLAB-функции det (А) и inv(A) вычисляют определитель и обратную мат- матрицу (если матрица А обратима) соответственно квадратной матрицы А.
136 Глава 3. Решение систем линейных уравнений АХ = В Таблица 3.1. Координаты вершин куба при последовательных вращениях и @;0;0)' A;0;0)' @; 1; 0)' @; 0; 1)' A;0;1)' A; 1; 1)' V = Rz (f) U @,000000; 0,000000; 0)' @,707107; 0,707107; 0)' (-0,707107; 0,707107; 0)' @,000000; 0,000000; 1)' @,000000; 1,414214; 0)' @,707107; 0,707107; 1)' (-0,707107; 0,707107; 1)' @,000000; 1,414214; 1)' W = R,{*)Rt(i)u' @,000000; 0,000000; 0,000000)' @,612372; 0,707107; -0,353553)' (-0,612372; 0,707107; 0,353553)' @,500000; 0,000000; 0,866025)' @,000000; 1,414214; 0,000000)' A,112372; 0,707107; 0,512472)' (-0,112372; 0,707107; 1,219579)' @,500000; 1,414214; 0,866025)' (а) (Ъ) (с) Рис. 3.2. (а) Начальное положение куба. (Ь) V = Rz (тг/4) U. Поворот вокруг оси г. (с) W — Ду(тг/6)У. Поворот вокруг оси у Пример 3.11. Воспользуемся MATLAB, чтобы решить систему линейных урав- уравнений из примера З.б. Используем для обращения матрицы, метод описаний в B5). Сначала убедимся, что матрица А — невырожденная, показав, что det(A) ф 0 (см. теорему 3.4). >>А»[0.125 0.200 0.400;0.375 0.500 0.б00;0.500 0.300 0.000]; >>det(A) ans= -0.0175 Следуя рассуждениям в B5), решение системы АХ — В представим в виде X = А~ХВ. >>X=inv(A)*[2.3 4.8 2.9]' Х= 4.0000 3.0000 3.0000
3.2. Свойства векторов и матриц 137 Проверим наше решение, убедившись, что АХ — В. >>В=А*Х В» 2.3000 4.8000 2.9000 Упражнения к разделу 3.2 Следующие упражнения читатель может выполнять как вручную так и с помо- помощью MATLAB. 1. Найдите АВ и В А для следующих матриц: A = , B = 2. Найдите АВ и В А для следующих матриц: Л_[1  3] [2 О 5J ' о 2 -61 ' 3 О' -1 5 3 -2 3. Пусть А, В и С заданные матрицы: (a) Найдите (АВ)С и А{ВС). (b) Найдите А(В + С) и АВ + АС. (c) Найдите (А + В)С и АС + ВС. (d) Найдите (АВ)' и В'Л'. 4. Воспользуемся обозначением А2 = АА. Найдите А2 и В2 для следующих матриц: 2 0 61 -1 -7 5 2 О -1 5 -4 3-5 2 5. Найдите определитель следующих матриц, если он существует. 2 0 61 (b) -1 -7 5 -1 5 -4 3-5 2
138 Глава 3. Решение систем линейных уравнений АХ = В (с)  3 0 2" 4 0 (d) 1 0 0 0 2 2 0 0 3 4 5 0 4 6 4 7 6. Покажите, что Rx(a)Rx(—a) = I согласно обычному умножению матриц Rx(a) и Rx(-a) (см. формулу B6)). 7. (а) Покажите, что Rx(a)Ry(/3) = cos(/3) 0 sin(/3) sin(/3) sin(a) cos(a) — cos(/3) sin(a) m— cos(of) sin(/3) sin(a) cos(/3)cos(a) e (см. формулы B6) и B7)). (b) Покажите, что Ry(f3)Rx(a) = cos(/3) sin(/3) sin(a) 0 cos (a) _— sin(a) cos(/3) sin(a) cos(a) sin(/3) — sin(a) cos(/3) cos (a) 8. Если Л и В — невырожденные матрицы размера N х iV и С = AJ3, покажи- покажите, что С" = В Л". Указание. Используйте свойство ассоциативности умножения матриц. 9. Докажите утверждения A3) и A6) теоремы 3.3. 10. Пусть А — матрица размера М х N и X — матрица размера N х 1. (a) Сколько операций умножения необходимо для вычисления АХ? (b) Сколько операций сложения необходимо для вычисления АХ? 11. Пусть А — матрица размера MxNhBhC — матрицы размера N х Р. Докажите левый дистрибутивный закон для умножения матриц: А(В + С) = = АВ + АС. 12. Пусть А и В — матрицы размера М х N и С — матрица размера ЛГ х х Р. Докажите правый дистрибутивный закон для умножения матриц: (А + 13. Найдите XX1 и Х'Х, где X = [l —1 2]. Заметка. Матрица X' равна транспонированной матрице X. 14. Пусть А — матрица размера М х N и В — матрица размера N х Р. До- Докажите, что (AjB)' = В'А1. Указание. Положите С = АВ и покажите, используя определение умножения матриц, что (t, j)-fi элемент матрицы С' равен (г, j)-My элементу матрицы В1 А!. 15. Воспользуйтесь результатом упр. 14 и свойством ассоциативности умноже- умножения матриц, чтобы показать, что {ABCI = С'В'А*.
3.2. Свойства векторов и матриц Алгоритмы и программы 139 В первом столбце табл. 3.1 содержатся координаты вершин единичного куба, расположенного в первом октанте с одной вершиной в начале координат. Заме- Заметим, что координаты всех восьми вершин можно записать в виде матрицы U размера 8x3, где каждая строка представляет собой координату одной вершины. Из упр. 14 следует, что матрица, равная произведению U и транспонированной матрицы Д2(тг/4), имеет размер 8x3 (см. второй столбец табл. 3.1, где каждая строка представляет собой преобразование соответствующей строки матрицы U). Из вышесказанного и упр. 15 следует, что координаты вершин куба при любом ко- количестве последовательных вращений можно записать, как произведение матриц. 1. Единичный куб расположен в первом октанте с одной вершиной в начале координат. Сначала поворачиваем куб на угол тг/6 вокруг оси у, затем пово- поворачиваем этот образ на угол тг/4 вокруг оси z. Найдите образы всех восьми вершин начального положения куба. Сравните результаты с результатами упр. ЗЛО. Каковы различия? Объясните свой ответ, учитывая тот факт, что, вооб- вообще, умножение матриц не коммутативно (рис. 3.3). Используйте программу plot3, чтобы построить каждый из трех кубов. (а) (Ъ) (с) Рис. 3.3. (а) Начальное положение куба, (b) V = RyGc/6)U. Враще- Вращение вокруг оси у. (с) W = Hz(tt/4)V. Вращение вокруг оси z 2, Единичный куб расположен в первом октанте с одной вершиной в начале координат. Сначала поворачиваем куб на угол тг/12 вокруг оси х, затем пово- поворачиваем этот образ на угол тг/6 вокруг оси z. Найдите образы всех восьми вершин начального положения куба. Используйте программу plot3, чтобы построить каждый из трех кубов. 3. Тетраэдр с вершинами в точках @;0;0), A;0;0), @; 1;0) и @; 0; 1) сначала поворачивают на угол 0,15 радиан вокруг оси у, затем - на угол —1,5 радиан вокруг оси z и наконец на угол 2,7 радиан вокруг оси х. Найдите координаты образа всех четырех вершин. Используйте программу plot3 для построения каждого из четырех образов.
140 Глава 3. Решение систем линейных уравнений АХ = В 33. Верхняя треугольная система линейных уравнений Рассмотрим алгоритм обратной подстановки, который полезен для решения систем линейных уравнений, имеющих верхнюю треугольную матрицу коэффи- коэффициентов. В разделе 3.4 этот алгоритм войдет в алгоритм для решения общих систем линейных уравнений. Определение 3.2. Матрица А = [а^] размера N х N называется верхней тре- треугольной в том случае, если элементы aij = 0, как только г > j. Матрица А = [ау] размера N х N называется нижней треугольной в том случае, если элементы матрицы а^ = 0 всякий раз, как только i < j. A Рассмотрим метод получения решения верхней треугольной системы линей- линейных уравнений и оставим читателю исследование нижней треугольной системы уравнений. Если А — верхняя треугольная матрица, то говорят, что АХ = В — это верхняя треугольная система линейных уравнений и она имеет вид A) UNNZn. = ON. Теорема 3.5 (обратная подстановка). Предположим, что АХ = В — верхняя треугольная система линейных уравнений, заданная в виде A). Если B) аккф$ Для к = 1, 2, ..., N, то существует единственное решение системы A). Конструктивное доказательство. Решение сожно легко найти. Последнее урав- уравнение включает только одно неизвестное xn, поэтому вычисляем его первым: C) XN = -^-. CLNN Сейчас xn известно и его можно использовать в следующем уравнении: га\ „ Ьдг-i - aN D) %N-l — Затем xn и xn-i используем для нахождения E) Xjv-2 = а
3.3. Верхняя треугольная система линейных уравнений 141 Когда значения х#, гсдг-ь • • •> я/н-i известны, можно записать общую формулу: Легко видеть, что решение единственно. Из «/V-ro уравнения следует, что bN/a>NN — единственное возможное значение хдг. Наконец используем индук- индукцию, чтобы установить единственность решений хдг_ь ядг_2, ¦ .., х\. • Пример 3.12. Используем обратную подстановку для решения следующей си- системы линейных уравнений. -Х2 + 2х3 + Зя4 = 20 - 4д?4 = -7 = 4 = 6. Решение для х\ дано в последнем уравнении: Используя ^4 = 2 в третьем уравнении, получим 4 - яз = = -1. Сейчас используем х$ = -1 и д?4 = 2, чтобы найти Ж2 из следующего уравнения: -7-7(-1)+4B)= ' -2 И окончательно из первого уравнения получаем х\: 20 + 1(-4)-2(-1) xi 3 а Условие, что а** ф 0, существенно, так как уравнение F) включает деление на йкк- Если это требование не выполняется, то либо не существует решения, либо существует бесконечно много решений. Пример ЗЛЗ. Покажем, что система линейных уравнений G) не имеет решения. 4xi - х2 + 2х3 + Зх4 = 20 0х2 + 7х3 - 4х4 = -7 б + 5x4 = 4 Зх4 = 6.
142 Глава 3. Решение систем линейных уравнений АХ = В Из последнего уравнения в G) получим х± = 2, которое подставим во второе и третье уравнения, и получим 713- 8 = -7 6х3 + 10 = 4. Из первого уравнения (8) следует, что х% = 1/7, а из второго — х3 = —1. Это противоречие приводит к заключению, что система линейных уравнений G) не имеет решения. ¦ Пример 3.14. Покажем, что система уравнений (9) имеет бесконечно много решений. - х2 + 2х3 + Зх4 = 20 0х4 = -7 бхз + 5x4 = 4 Зх4 = 6. Из последнего уравнения в (9) получим Х4 = 2, подставим его значение во второе и третье уравнения, чтобы получить хз = — 1, которое удовлетворяет обоим урав- уравнениям. Но только два значения, хз и Х4, можно получить из уравнений второго по четвертое. Если подставить их в первое уравнение системы уравнений (9), в результате получится уравнение A0) х2 = 4xi - 16, которое имеет бесконечно много решений. Следовательно, (9) имеет бесконечно много решений. Если выбрать значение х\ в A0), то значение х2 определено единственным образом. Например, если включить равенство х\ = 2 в систему (9), из A0) получим, что х2 = —8. ¦ Теорема 3.4 утверждает, что система линейных уравнений АХ = В, где А — матрица размера N х N, имеет единственное решение тогда и только тогда, когда det(A) Ф 0. Следующая теорема утверждает, что если элемент на главной диаго- диагонали верхней или нижней треугольной матрицы равен нулю, то det(A) = 0. Таким образом, при внимательном рассмотрении коэффициентов матриц предыдущих уравнений становится ясно, что система линейных уравнений примера 3.12 име- имеет единственное значение, а системы линейных уравнений примеров 3.13 и 3.14 не имеют единственного решения. Доказательство теоремы 3.6 можно найти в большинстве учебников по линейной алгебре.
3.3. Верхняя треугольная система линейных уравнений 143 Теорема 3.6. Если А = [а^] размера N х N — либо верхняя, либо нижняя треугольная матрица, то N A1) det(A) = апа22 • • • aNN = Д пц. t=i Значение определителя матрицы коэффициентов в примере 3.12 равно det A = = 4(-2)F)C) = —144. Значение определителя матрицы коэффициентов в при- примерах 3.13 и 3.14 равно 4@)F)C) = 0. Следующая программа будет решать верхнюю треугольную систему линейных уравнений A) методом обратной подстановки при условии, что пкк Ф 0 для к = 1, 2 ЛГ. Программа 3.1 (обратная подстановка). Решение верхней треугольной си- системы линейных уравнений АХ = В методом обратной подстановки. Обра- Обращаться к методу только в том случае, когда диагональные элементы не равны нулю. Сначала вычисляем хдг — Ь^/а^н, а затем используем правило <>>кк function X=backsub(A,B) '/•Вход - А - верхняя треугольная матрица размера n x n % - В - матрица размера n x 1 '/«Выход - X - решение системы линейных уравнений АХ = В '/•Находим размер матрицы В и инициализируем X n=length(B); X=zeros(n,l); X(n)-B(n)/A(n,n); for k«n-l:-l:l X(k)=(B(k)-A(k,k+l:n)*X(k+l:n))/A(k,k); end Упражнения к разделу 3.3 В упр. 1-3 решите верхнюю треугольную систему линейных уравнений и най- найдите значение определителя матрицы коэффициентов. 1. 3xi—2x2+ жз ~~ Ж4 = 8 2. 5х1—3х2 — 7жз+ Х4 = —14 4х2 ~ яз + 2х4 = -3 11х2 + 9х3 + 5х4 = 22 2х3 + Зх4 = 11 Зх3 - 13х4 = -И 5x4 = 15 7x4 = 14
144 3. Глава 3. Решение систем линейных уравнений АХ = В — ^5 = 4 -2х2 + 6х3 + 2х4 + 7х5 = О Хз — ДГ4 — 2#5 = 3 = 6 4. (а) Рассмотрите две верхние треугольные матрицы 11 0 0 012 022 0 ai3 023 аззи и JB = Ьи 0 .0 bi2 &22 0 Ь\г &23 Ьзз. Покажите, что их произведение С = АВ также является верхней тре- треугольной матрицей. (Ь) Пусть А и В — две верхние треугольные матрицы размера N х N. Покажите, что их произведение также является верхней треугольной матрицей. 5. Решите нижнюю треугольную систему линейных уравнений АХ = В и найдите определитель det(A). = 6 —xi + 4x2 = 5 3xi — 2x2 ~ #з = 4 xi - 2х2 + 6х3 + Зх4 = 2 6. Решите нижнюю треугольную систему линейных уравнений АХ = В и найдите определитель det(A). = -10 = 4 4x2 + 2хз = 2 — бХз ~" Х4 = 5 XI 7. Покажите, что для обратной подстановки требуется N операций деления, (N2 - N)/2 операций умножения и (N2 - N)/2 операций сложения или вычитания. Указание. Можно воспользоваться формулой м
3.4. Метод исключения Гаусса и выбор главного элемента 145 Алгоритмы и программы 1. Воспользуйтесь программой 3.1, чтобы решить систему линейных уравнений UX = В, где U ss [u«l1ft4,in И _ fcos(ij), i<j, 2. Алгоритм прямой подстановки. Система линейных уравнений АХ == В называется нижней треугольной при условии, что ау = 0, когда i < j. По- Постройте программу for sub, аналогичную программе 3.1, для решения следу- следующей системы нижней треугольной системы линейных уравнений. Приме- Примечание. Эта программа найдет применение в разделе 3.S. 022^2 " &2 = 63 a>N-i 1^1 + ojv-i 2^2 + ejv-i з^з H 1- алг-i jv- 3. Воспользуйтесь программой for sub, чтобы решить систему линейных урав- уравнений LX = В, где {2 " 7 2 ^ 7 ."" .' и В = [bji]20xi и Ьц = i О, г < j, 3.4. Метод исключения Гаусса и выбор главного элемента В этом разделе будет рассмотрена схема решения системы АХ = В N уравне- уравнений с N неизвестными. Нашей целью является построение эквивалентной верхней треугольной системы UX = У, которую можно решить методами, рассмотрен- рассмотренными в разделе 3.3. (Далее, как это принято в литературе по вычислительным методам, под термином "система" (или "линейная система") будем понимать си- систему линейных уравнений. — Прим. ред.) Говорят, что две линейные системы размера N х N эквивалентны, если они имеют одно и то же множество решений. Теоремы из линейной алгебры пока- показывают, что применение определенных преобразований к заданной системе не изменяет множества решений.
146 Глава 3. Решение систем линейных уравнений АХ = В Теорема 3.7 (элементарные преобразования). Следующие операции, приме- примененные к линейной системе, приводят к эквивалентной системе. A) Перестановки Порядок двух уравнений может быть изменен B) Масштабирование Умножение уравнения на не равную нулю константу C) Замещение Уравнение можно заменить суммой этого же уравне- уравнения и любого другого уравнения, умноженного на не равную нулю константу Обычно используют C), чтобы заменить уравнение разностью между этим уравнением и кратным другому уравнению. Эти понятия проиллюстрируем на следующем примере. Пример 3.15. Найдем параболу у = А + Вх + Сх2, которая проходит через три Для каждой точки йолучим уравнение, связывающее значения х со значением у. Результатом является система линейных уравнений. А+ В + С= 1 вA;1) D) А + 2В + 4С = -1 вB;-1) Если вычесть первое уравнение из второго и третьего, то исключается пере- переменная А. Это применение преобразования замещения C). В результате получаем эквивалентную линейную систему. А + В+ С= 1 E) В + ЪС = -2 2В + 8С = 0. Переменная В исключается из третьего уравнения E) путем двукратного вычита- вычитания из него второго уравнения. Мы пришли к эквивалентной верхней треугольной системе линейных уравнений. А + В+ С= 1 F) В + ЗС = -2 2С= 4. А сейчас воспользуемся алгоритмом обратной подстановки для нахождения ко- коэффициентов С = 4/2 = 2, В = -2 - 3B) = -8 и А = 1 - (-8) -2 = 7. Следовательно, уравнение параболы имеет вид у = 7 — &х + 2х2. ш
3.4. Метод исключения Гаусса и выбор главного элемента 147 Эффективнее всего можно хранить коэффициенты линейной системы АХ = = В, как матрицу размера N х (N + 1). Коэффициенты В хранятся в (N + 1)-м столбце матрицы (т. е., а^+х = б*;). В каждой строке содержатся все необхо- необходимые для уравнения линейной системы коэффициенты. Расширенная матрица обозначается как [A|J3], и систему линейных уравнений представляют в следую- следующем виде: G) [А\В] = аи а\г О>2\ 0,22 <*>2N b2 Систему АХ = В с заданной в G) расширенной матрицей можно решить, вы- выполнив ряд операций над расширенной матрицей [А|В]. Переменные х* опреде- определяются положением коэффициентов и могут быть опущены до конца вычислений. Теорема 3.8 (элементарный ряд операций). Следующие операции, применен- примененные к расширенной матрице G), приводят к эквивалентной линейной системе. (8) Перестановки (9) Масштабирование A0) Замещение Порядок двух строк может быть изменен Умножение строки на не равную нулю константу Строку можно заменить суммой этой же строки и лю- любой другой строки, умноженной на не равную нулю константу (ненулевое кратное другой строки), т. е. строкаг = строкаг -mrp x строка^. Обычно, чтобы воспользоваться A0), заменяют строку разностью между этой строкой и кратным другой строки. Определение 3.3 (главный элемент). Коэффициент агг матрицы А, который используется, чтобы исключить элементы а*г, где к = г + 1, г + 2, ..., N, назы- называется r-м главным элементом и r-я строка — главной строкой. А Следующий пример иллюстрирует, как использовать операции теоремы 3.8, чтобы получить эквивалентную верхнюю треугольную линейную систему UX = = Y для линейной системы АХ = В, где А — матрица размера N х N. Пример 3.16. Выразим следующую систему в форме расширенной матрицы, найдем эквивалентную ей верхнюю треугольную систему линейных уравнений и ее решение. Xi + 2X2 + Х3 + 4X4 = 13 4хз + 3x4 = 28 2х3 + х4 = 20 = 6.
148 Глава 3. Решение систем линейных уравнений АХ = В Расширенная матрица имеет вид гл. эл. —> Ш21 = 2 тз1 = 4 Ш41 = -3 1 2 4 -3 2 0 2 1 1 4 2 3 4 3 1 2 13 28 20 6 Первая строка используется, чтобы исключить элементы под диагональю в первом столбце. Мы обращаемся к первой строке, как к главной, и называем элемент ац = 1 главным. Значение ган является множителем строки 1, которую вычитаем из к строк, к = 2,3,4. Результатом первого исключения будет гл. эл. 1,5 -1,75 1 0 0 0 2 -4 -6 7 1 2 -2 6 4 -5 -15 14 13 2 -32 45 Вторая строка используется, чтобы исключить элементы под диагональю во вто- втором столбце. Эта строка является главной, и значение ты является множителем строки 2, которую вычитаем из к строк, А; = 3,4. Результатом исключения будет га. эл. -» т43 = -1,9 1 0 0 0 2 -4 0 0 1 2 -5 9,5 4 -5 -7,5 5,25 13 2 -35 48,5 Наконец, умножаем тп^з = —1,9 на третью строку, вычитаем из четвертой строки и в результате получаем верхнюю треугольную систему линейных уравнений (Н) Для решения системы линейных уравнений (И) воспользуемся алгоритмом обратной подстановки и получим 1 0 0 0 2 -4 0 0 1 2 ~~0 0 4 -5 -7,5 -9 13 2 -35 -18 = 2, = 4, х2 = -1, = 3. Описанный выше процесс называется методом исключения Гаусса и должен быть модифицирован так, чтобы его можно было использовать в большинстве случаев. Если аы = 0, то строку к нельзя использовать для исключения элементов столбца к и строку к следует заменить такой же строкой под диагональю, чтобы получить не равный нулю главный элемент. Если этого сделать нельзя, значит, матрица коэффициентов системы линейных уравнений является вырожденной и система не имеет единственного решения.
ЗА Метод исключения Гаусса и выбор главного элемента 149 Теорема 3.9 (метод исключения Гаусса с обратной подстановкой1). Если мат- матрица А размера N х N невырождена, то существует система UX = У, эквива- эквивалентная АХ = J3, где U — верхняя треугольная матрица с элементом одь Ф 0. После построения матриц U и Y можно использовать обратную подстановку, чтобы решить систему UX = Y для X. Доказательство. Используем расширенную матрицу с элементами матрицы столбца В, записанными в (N + 1)-й столбец: а A) A) A) а ,AI l2N 11 2 3 A) A) A) «21 a22 a23 A) A) A) «31 «32 «33 Ю Затем построим эквивалентную верхнюю треугольную систему UX = Y: 'xi~ Х2 S3 = ¦a(l) " аA) аA) aNN+l ¦o(i) 0 0 A) «12 «22 0 A) а13 аB) «23 аC) азз а A) IN -О) х2 хз • XN B) a2iV+l аC) iV+l t ^NN+1 = У. 0 0 0 7. Запишем коэффициенты в расширенной матрице. Верхний индекс а^с означает, что сначала число занимает место (г, с), т. е. находится на пересечении г-й строки и столбца с: пМ лA) лA) а11 а12 а13 A) A) A) 1 2 3 A) A) A) а31 а32 аЗЗ () а() Nl aN2 4Й 4 а1ЛГ+1 A) аA) аЛГЛГ+1 говорят — метод Гаусса с обратным ходом. — Прим. перев.
150 Глава 3. Решение систем линейных уравнений АХ = В Шаг 2. Если есть необходимость, переставляем строки так, чтобы a[i Ф О, затем исключаем х\ в строках 2-N. При этом тг\ — множитель строки 1 при ее вычитании из строки г. for Г : 771 r for = 2:N '=0; c = 2:N „B) _ _A) arc — «re end end [ (i). и ' + 1 — mri B) Новые элементы записаны как arc\ чтобы показать, что на втором шаге число хранится в матрице на том же месте (г, с). После второго шага получаем 7(i) 12 7(D 213 о 4? «S о 4? «з? о аB) аB) aN2 a№ a\N аB) aZN aNN оA) аB) оB) °ЛГЛГ+1 Шаг З. Если необходимо, так переставляем вторую строку со строкой, стоящей ниже, чтобы С22 7^ 0, затем исключаем %ъ из строк 3-JV. В этом случае тГ2 — множитель строки 2 при ее вычитании из строки г. for г = 3 : N for с = 3 : JV + 1 C) B) B) end end
3.4. Метод исключения Гаусса и выбор главного элемента 151 Новые элементы записаны как <4с , чтобы показать, что на третьем шаге число хранится в матрице на том же месте (г, с). После третьего шага получаем о о о 2A) 213 iB) Z23 2C) Z33 2(з) аB) C) 4 8 а1ЛГ+1 лB) аC) аЗЛГ+1 а(з) aNN+l Шаг р+1. Это шаг общего вида. Если необходимо, так переставляем строку р со строкой, стоящей ниже, чтобы Орр ф 0, затем исключаем хр в строках р + 1-JV. Здесь тгр — множитель строки р при вычитании из строки г. for г = р + 1 : N Tflrp == &pp I Oipp \ CLfp -= U, forc = p+l:JV + l end end — 0>хс "~" f~^rp * ^pc ? Окончательно после исключения гслг-i из строки N получаем о о B) B) а22 а23 О а ? 7A) Hn 2B) ,C) 0 0 0 2A) zliV+l .B) аC) аЗЛГ+1 lNN+l На этом процесс построения верхней треугольной матрицы окончен. Так как матрица А невырождена, после осуществления этих операций получим также невырожденную матрицу. Это является гарантией, что arkJj ф 0 для всех к в процессе построения. Таким образом, можно использовать обратную подстановку, чтобы решить UX = Y для X. Теорема доказана. •
152 Глава 3. Решение систем линейных уравнений АХ = В Выбор главных элементов во избежание a^J = О Если а!рр = О, то строку р нельзя использовать, чтобы исключать элементы в столбце р ниже главной диагонали. Необходимо найти строку к, где afj^ Ф О и к > р, и затем поменять местами строку р и строку к так, чтобы получить главный элемент, не равный нулю. Этот процесс называется выбором главного элемента, и критерий для решения, какую выбрать строку, называется стратегией выбора главного элемента. Стратегия тривиального выбора главного элемента следующая. Если а,рр Ф 0, то не переставляем строки. Если а,рр = 0, найдем первую строку ниже строки р, в которой а^ ф 0, и поменяем местами строки к и р. В результате получим новый элемент Орр Ф 0, который и будет главным элементом, не равным нулю. Выбор главного элемента для уменьшения ошибки Поскольку компьютер использует арифметику с фиксированной точностью, то, возможно, при выполнении арифметической операции каждый раз вводится небольшая ошибка. Проиллюстрируем на следующем примере, как использование стратегии тривиального выбора главного элемента в методе исключения Гаусса может привести к значительной ошибке в решении системы линейных уравнений. Пример 3.17. Значения х\ = Х2 = 1,000 являются решениями системы 1ДЗЗЯ1+ 5,281x2 = 6,414 24,14s! - 1,210ж2 = 22,93. Используем арифметику с четырьмя знаками точности (см. упр. 6 и 7 раздела 1.3) и метод исключения Гаусса с тривиальным выбором главного элемента, чтобы найти приближенное решение системы. Чтобы получить верхнюю треугольную систему линейных уравнений, строку 1, умноженную на m2i = 24,14/1,133 = 21,31, вычитаем из строки 2. Используя четыре знака в вычислениях, получим новые коэффициенты: ag} = -1,210 - 21,31E,281) = -1,210 - 112,5 = -113,7 а$ = 22,93 - 21,31F,414) = 22,93 - 136,7 = -113,8. Вычисленная верхняя треугольная система линейных уравнений имеет вид = 6,414 -113,7^2 = -113,8. С помощью обратной подстановки вычислим Х2 = —113,8/(—113,7) = 1,001 и xi = F,414 - 5,281A,001))/A,133) = F,414 - 5,286)/A,133) = 0,9956. ¦
3.4. Метод исключения Гаусса и выбор главного элемента 153 Ошибка в решении системы линейных уравнений A2) обусловлена значени- значением множителя Ш21 = 21,31. В следующем примере значение множителя rri2i уменьшается после первой замены первого и второго уравнений линейной систе- системы A2). Затем, чтобы получить решение системы, в методе исключения Гаусса используется стратегия тривиального выбора главного элемента. Пример 3.18* Чтобы решить следующую линейную систему, используем ариф- арифметику с четырьмя знаками и метод исключения Гаусса с тривиальным выбором главного элемента: 24,14a?i - 1,210я2 = 22,93 = 6,414. В этот раз множитель строки A) равен rri2i = 1,133/24,14 = 0,04693. Новые коэффициенты равны 422} = 5,281 - 0,04693(-1,210) = 5,281 + 0,05679 = 5,338 4з} = 6,414 - 0,04693B2,93) = 6,414 - 1,076 = 5,338. Получим верхнюю треугольную систему 24,14^1 - 1,210x2 = 22,93 5,338^2 = 5,338. Используем обратную подстановку, чтобы вычислить Х2 = 5,338/5,338 = 1,000 и xi = B2,93 + 1,210A,000))/B4,14) = 1,000. ¦ ; Назначение стратегии выбора главного элемента — сдвиг наибольшего по вели- величине элемента на главную диагональ и его использование для исключения остав- оставшихся в столбце элементов. Если существует больше одного, не равного нулю, элемента в столбце р, который лежит на главной диагонали или ниже нее, то выбор определяет, какую из строк заменить. Стратегию частного выбора главного эле- элемента иллюстрирует пример 3.18; она является наиболее общей и используется в программе 3.2. Чтобы уменьшить распространение ошибки, советуем проверить значения всех элементов в столбце р, которые лежат на главной диагонали или ниже нее. Определим строку fc, в которой находится наибольший по абсолютной величине элемент, т. е. \акр\ = maxfloppl, |aP+iP|,..., \aN-ip\, \aNp\}, и затем поменяем строку р со строкой fc, если к > р. Сейчас каждый из множи- множителей тгр для г = р + 1, ..., N меньше или равен 1 по абсолютной величине. Этот процесс обычно сохраняет относительные величины элементов матрицы U в теореме 3.9 такими же, как и элементов исходной матрицы коэффициентов А.
154 Глава 3. Решение систем линейных уравнений АХ = В Обычно выбор наибольшего главного элемента приводит в результате к меньшему распространению ошибки. В разделе 3.5 указывается, что для решения системы размера N х N достаточ- достаточно всего DЛГ3 + 9N2 - 7N)/6 арифметических операций. Когда N = 20, общее число арифметических операций, которые нужно выполнить, равно 5910 и распро- распространение ошибки в вычислениях может привести к ошибочному ответу. Технику определения масштаба частного выбора главного элемента или уравновешива- уравновешивания можно использовать для дальнейшего уменьшения влияния распространения ошибки. При масштабном частном выборе главного элемента мы выбираем из всех элементов в столбце р, которые лежат на главной диагонали или ниже нее, элемент, являющийся наибольшим относительно элементов в его строке. Сначала рассмотрим строки p-N, чтобы найти наибольший по величине элемент в каждой строке, например sr: A3) sr = max{|orpJ,|arp+i|,...,|arAr|} Для r=p, p+1, ..., N. Главную строку к находим, определяя A4) =max/?i),...,tei\. Заменим строку р строкой fc, исключая случай, когда р = к. Этот процесс выбора главного элемента составлен так, чтобы сохранить отношение величин элементов матрицы U в теореме 3.9 такими же, как в исходной матрице коэффициентов А. Плохая обусловленность Матрица А называется плохо обусловленной, если существует такая матрица В, что при небольших возмущениях коэффициентов матриц А или В произой- произойдут большие изменения в X = А В. Говорят, что система АХ = В плохо обусловлена, когда матрица А плохо обусловлена. В этом случае численные ме- методы приближенного вычисления могут привести к большим ошибкам. Плохая обусловленность возникает, когда матрица А "почти вырождена" и определитель А близок к нулю. Плохая обусловленность также имеет место в системах двух уравнений, когда две линии почти параллельны (или в системе из трех уравнений, когда три плоскости почти паралллельны). Следствием плохой обусловленности является то, что может произойти замена истинного решения ошибочным значением. Рассмотрим, например, два уравнения: я+ 2у-2,00 = 0 2х + Зу - 3,40 = 0. Подстановка xq = 1,00 и уо = 0,48 в эти два уравнения "почти приводит к нулям": 1 + 2@,48) - 2,00 = 1,96 - 2,00 = -0,04 » 0 2 + 3@,48) - 3,40 = 3,44 - 3,40 = 0,04 w 0.
3.4. Метод исключения Гаусса и выбор главного элемента 155 У 1,2 1,0 0,8 0,6 0,4 0,2 0,0 2х + Зу = 3,4 @,8; 0,6) х + 2у = 2 0,5 1,0 1,5 2,0 Рис. 3.4. Область, точки ко- торой "почти удовлетворяют" обоим уравнениям Здесь расхождение с 0 равно только ±0,04. Тем не менее истинное решение этой линейной системы равно х = 0,8 и у = 0,6, поэтому ошибки приближенного решения равны х - х0 = 0,80 - 1,00 = -0,20 и у - у0 = 0,60 - 0,48 = 0,12. Таким образом, просто подстановка значений в систему уравнений не является надежным критерием точности. Ромбообразная область R на рис. 3.4 представляет множество, точки которого "почти удовлетворяет" обоим уравнениям в A5): R = {(х; у) : \х + 2у - 2,00| < 0,1 и \2х + Зу - 3,40| < 0,2}. В области R существуют точки, которые достаточно далеки от точки, которая является решением, @,8; 0,6); все-таки они дают малые значения, если подставить их в уравнения в A5). Если окажется, что линейная система плохо обусловлена, вычисления нужно будет выполнять с арифметикой многократной точности. Заин- Заинтересованный читатель может познакомиться с понятием чисел обусловленности матрицы и их свойствами, чтобы получить больше информации об этом феномене. Плохая обусловленность имеет более сильные последствия, когда нужно ре- решить несколько уравнений. Рассмотрим задачу нахождения кубического полино- полинома у = с\хг+С2Х2 +С3Я+С4, который проходит через четыре точки: B; 8), C; 27), D; 64) и E; 125) (очевидно, что у = xz — требуемый кубический полином). В раз- разделе 3.5 будет введен метод наименьших квадратов. Применим метод наименьших квадратов, чтобы найти требуемые коэффициенты. Для этого решим следующую линейную систему: 20514 4424 978 224' 4424 978 224 54 978 224 54 14 224 54 14 4 "C\~ c2 сз '20514 4424 978 224.
156 Глава 3. Решение систем линейных уравнений АХ = В Для вычисления коэффициентов использовался компьютер с 9-ю знаками точно- точности. Были получены значения ci = 1,000004; с2 = -0,000038; с3 = 0,000126 и с4 = -0,000131. Хотя они близки к истинному решению с\ = 1 и c<i = сз = с± = 0, этот пример показывает, как легко ошибка может прокрасться в решение. Более того, предпо- предположим, что коэффициент ац = 20514 в верхнем левом углу матрицы коэффи- коэффициентов заменен значением 20 515 и решается возмущенная система. Значения, полученные на таком же компьютере и равные d = 0,642857; с2 = 3,75000; с3 = -12,3928 и с4 = 12,7500, являются ничего не стоящим ответом. Плохую обусловленность нелегко обна- обнаружить. Если после повторного решения системы со слабо возмущенными ко- коэффициентами обнаружится, что ответ существенно отличается от предыдуще- предыдущего, значит, присутствует плохая обусловленность. Раздел, посвященный анализу чувствительности методов, обычно входит в книги повышенной сложности по численному анализу. MATLAB В программе 3.2 MATLAB обозначение [А В] используется для построения расширенной матрицы линейной системы АХ = В; команда max использует- используется для определения главного элемента в частном выборе главного элемента. Как только получена эквивалентная треугольная матрица [С^У], она разделяется на матрицы U и Y; для выполнения обратной подстановки используется програм- программа 3.1 (backsub(U,Y)). Использование этих команд и процессов иллюстрируется в следующем примере. Пример 3.19. (а) Используем MATLAB, чтобы построить расширенную матри- матрицу для линейной системы из примера 3.16; (Ь) используем команду шах, чтобы найти наибольший по величине элемент в первом столбце матрицы коэффициен- коэффициентов А; (с) разъединим расширенную матрицу A1) на матрицу коэффициентов U и матрицу постоянных членов Y верхней треугольной системы UX = У. (а) >> А-[1 2 1 4;2 0 4 3;4 2 2 1;-3 13 2]; >> В=[13 28 20 6]'; >> Aug=[A В] 1 2 1 4 13 2 0 4 3 28 4 2 2 1 20 -31326
3.4. Метод исключения Гаусса и выбор главного элемента 157 (b) В следующей программе MATLAB показано, что а — наибольший элемент в первом столбце матрицы А и j — номер строки. >> [a,j]=max{abs(A(l:4,l))} 4 3 (c) Пусть Augup = [l/|Y] — верхняя треугольная матрица для A1). >> Augup=[l 2 14 13;0 -4 2 -5 2;0 0 -5 -7.5 -35;0 0 0-9 -18]; >> U=Augup(l:4,l:4) П- 1.0000 2.0000 1.0000 4.0000 0 -4.0000 2.0000 -5.0000 0 0 -5.0000 -7.5000 0 0 0 -9.0000 >> Y=Augup(l:4,5) "Y- 13 2 -35 -18 ¦ Программа 3.2 (построение верхней треугольной матрицы для примене- применения метода обратной подстановки). Чтобы найти решение системы АХ = = 23, сначала приводим расширенную матрицу [-4.|JB] к верхней треугольной форме, а затем выполняем обратную подстановку. function X = uptrbk(A,B) У.Вход - А - невырожденная матрица размера N х N У, - В - матрица размера N х 1 '/Выход - X - матрица размера N х 1, содержащая решение АХ=В '/Инициализация X и временное сохранение матрицы С [N N]=size(A); X=zeros(N,l); C=zeros(l,N+l); /¦Вид расширенной матрицы:Аи§=[А|В] Aug=[AB]; for p±l:N-i ¦/.Частный выбор главного элемента для столбца р [Y,j]=max(abs(Aug(p:N,p)));
158 Глава 3. Решение систем линейных уравнений АХ = В '/•Меняем местами строки р и j C=Aug(p,:); Aug(p,:)=Aug(j+p-1,:); Aug(j+p-l,:)=C; if Aug(p,p)==O 'А вырождена. Нет единственного решения' break end •/«Процесс исключения для столбца р for k=p+l:N m=Aug(k,p)/Aug(p,p); Aug(k,p:N+l)=Aug(k,p:N+l)-m*Aug(p,p:N+l); end end i У,Обратная подстановка в [U|Y] с использованием программы 3.1 X=backsub(Aug(l:N,l:N),Aug(l:N,N+l)); Упражнения к разделу 3.4 В упр. 1-4 покажите, что АХ = В эквивалентна верхней треугольной системе линейных уравнений UX = Y, и найдите ее решение. 1. 2xi + 4x2 ~ бхз = ~4 2xi + 4x2 — бхз = —4 х\ + 5х2 + Зх3 = 10 Зх2 + 6х3 = 12 xi + Зх2 + 2х3 = 5 Зх3 = 3 2. Xi + Х2 + бхз =7 Xi + Х2 + бхз = 7 -xi + 2х2 + 9х3 = 2 Зх2 + 15х3 = 9 xi - 2х2 + Зхз = 10 12х3 = 12 3. 2xi ~- 2x2 + 5хз = 6 2xi "~ 2x2 + 5хз = 6 2xi + 3x2 + хз = 13 5x2 - 4хз = 7 - xi + 4х2 - 4х3 = 3 0,9х3 = 1,8 4« — 5xi + 2x2 "~ Д'З z=z —I — 5з?1 + 2x2 — #з = ~1 xi + 0х2 + Зхз = 5 0,4х2 + 2,8х3 = 4,8 3xi + Х2 + бхз = 17 — Юхз = —10 5. Найдите коэффициенты параболы у = А + Вх + Сх4, которая проходит через точки @; 4), B; 7) и C; 14).
3.4. Метод исключения Гаусса и выбор главного элемента 159 6. Найдите коэффициенты параболы у = А+Вх + Сх2, которая проходит через точки A; 6), B;5)иC;2). 7. Найдите коэффициенты кривой третьего порядка у = А + Вх + Сх3 + 2)х3, которая проходит через точки @; 4), A; 1), B; 2) и C; 2). В упр. 8-10 покажите, что АХ = В эквивалентна верхней треугольной системе линейных уравнений UX = Y, и найдите решение. 8. 9. 10. И. 12. 4xi + 8х2 Xi + 5X2 xi+4x2 Xi + 3X2 2xi + 4x2 Xi + 5X2 2xi + 3x2 Xi + 4X2 Xi + 2X2 2xi + 3x2 Oxi + 4x2 5xi + 5x2 + 4хз + 0x4 = + 4х3 - Зх4 = + 7хз + 2x4 == + Охз - 2х4 = - 4х3 + 0х4 = — 5хз — 3x4 == + Хз + 3X4 = - 2х3 + 2х4 = + Охз — Х4 = — Хз + 0X4 = + 2х3 - 5х4 = + 2хз — 4x4 = 8 -4 10 -4 12 18 8 8 9 9 26 32 Найдите решение линейной системы Xi + 2X2 2xi+3x2- 4X2 ¦ Найдите решение линейной системы Xi \" Х2 2xi- x2-\ Зх2- 4 2 - я3 f 2х3 2х3 к 5х3 -4хз 2х3 :Xl + 8X2 ЗХ2 tXi + 4X2 ЗХ2 Xi + 2X2 = = + 3х4 = — 4X4 = = = + 2х4 = + 6X4 = + 4х3 + 3х3 4х3 -4хз -Зх3 4хз + 0х3 - яз -2х3 7 9 10 ' 12 5 -9 19 2 + 0х4 -Зх4 + 4X4 х4 + 0х4 -Зх4 + 2х4 ЗХ4 - х4 + 2х4 + ЗХ4 1,5X4 = 8 = -6 = 12 = 2 = 12 = 12 = 0 = -6 = 9 = -9 = -10 = -3 13. Компании Rockmore Corp. необходим новый компьютер. Пока она остановила свой выбор на DoGood 174 и MightDo 11 и проверяют возможности обоих компьютеров на решении системы линейных уравнений 34х + 55у - 21 = 0 55х + 89у - 34 = 0.
160 Глава 3. Решение систем линейных уравнений АХ = В Компьютер DoGood 174 дал значения х = —0,11 и у = 0,45; его точность проверяется подстановкой: 34(-0,11) + 55@,45) - 21 = 0,01 55(-0,11) + 89@,45) - 34 = 0,00. Компьютер MightDo 11 получил значения х = -0,99 и у = 1,01; его точность проверяется подстановкой: 34(-0,99) + 55A;01) - 21 = 0,89 55(-0,99) + 89A,01) - 34 = 1,44. Ответ какого компьютера лучше? Объясните, почему? 14. Решите следующую систему линейных уравнений с помощью (i) метода ис- исключения Гаусса с частным выбором главных элементов и (ii) метода исклю- исключения Гаусса с определением масштаба частного выбора главных элементов. (a) 2xi - Зх2 + ЮОхз = 1 (Ь) х\ + 20х2 - х3 + 0,001х4 = 0 xi + 10х2 - 0,001хз = 0 2xi - 5х2 + 30х3 - 0,1х4 = 1 3xi - 100х2 + 0,01хз = 0 5xi + х2 - 100х3 - Юх4 = О 2xi - 100х2 - х3 + х4 = 0 15. Матрица Гильберта — это пример классической плохо обусловленной матри- матрицы, и малые изменения ее коэффициентов приводят к большим изменениям в решении возмущенной системы. (а) Найдите точное решение АХ = В (оставьте все числа в виде дро- дробей и точно выполняйте арифметические операции), используя матрицу Гильберта размера 4x4: 5 х 4 5 5 5 Ъ 1 6 1 (b) Решите АХ = В, используя арифметику с округлением до четырех знаков: ,0000 0,5000 0,3333 0,2500] IT . 0,5000 0,3333 0,2500 0,2000 0 0,3333 0,2500 0,2000 0,1667 ' 0 0,2500 0,2000 0,1667 0,1429j [о Заметка. Матрица коэффициентов п. (Ь) является приближением для мат- матрицы коэффициентов п. (а).
3.4. Метод исключения Гаусса и выбор главного элемента 161 Алгоритмы и программы 1. Многие приложения включают матрицы с большим количеством нулей. Прак- Практическое значение имеют трехдиагональные системы (см. упр. 11 и 12) вида п\Х\ -i + Постройте программу, которая решит трехдиагональную систему. Можете предположить, что нет необходимости переставлять строки и что строку к можно использовать для исключения элемента эд в строке к + 1. 2. Используйте программу 3.2, чтобы найти кривую шестого порядка у = а\ + + п2Х + а^х2 + a±xz + а$хА + а^хъ + ajx^9 которая проходит через точки @;1), A;3), B; 2), C;1), D;3), E; 2) и F;1). Используйте команду plot, чтобы построить график кривой с заданными точками на нем. Объясните любые расхождения в вашем графике. 3. Используйте программу 3.2, чтобы решить линейную систему АХ = В, где А = [оу]лгхлг, a,ij = г', В = [Ьу]лгхь где 6ц = N и Ъц = iN~2/(i - - 1) для г > 2. Используйте N = 3,7 и 11. Точное решение равно X = = [1 1 ... 1 1] . Объясните любые отклонения ор точного решения. 4. Постройте программу, которая заменит стратегию выбора главного элемента программы 3.2 методом определения масштаба частного выбора главного элемента. 5. Используйте свою программу определения масштаба частного выбора глав- главного элемента в задаче 4, чтобы решить систему, заданную в задаче 3 для N = 11. Объясните любые отклонения от точного решения. 6. Модифицируйте программу 3.2 таким образом, чтобы она стала эффектив- эффективной для решения М линейных систем с одинаковыми матрицами коэффи- коэффициентов А9 но различными матрицами-столбцами В. М линейных систем выглядят так: 7. Следующие результаты обсуждаются для матриц размера 3 х 3, но их можно применять к матрицам размера N xN. Если А невырождена, то существуют
162 Глава 3. Решение систем линейных уравнений АХ = В А 1 и АА 1 = I. Пусть Ci, C2 и С3 — столбцы матрицы А * и JE?i, Е2 и 223 — столбцы матрицы I. Уравнение А А = I можно записать в виде А [Сг С2 Сг] = [JBi Е2 Е3]. Произведение матриц эквивалентно трем линейным системам: Поэтому нахождение матрицы А х эквивалентно решению трех линейных систем. Воспользуйтесь программой 3.2 или своей программой из задачи 6 и най- найдите обратную к каждой из следующих матриц. Проверьте ответ с помощью вычисления произведения АА~1 и команды inv(A). Объясните любые раз- различия. -120 240 -140" 1200 -2700 1680 -2700 6480 -4200 1680 -4200 2800 (а) 0 2 -1 (Ь) 16 -120 240 -140 3.5. Разложение на треугольные матрицы Из раздела 3.3 видно, как легко решить верхнюю треугольную систему. Сей- Сейчас введем понятие разложения (также используется термин "факторизация". — Прим. ред.) данной матрицы А на произведение нижней треугольной матрицы L, на главной диагонали которой стоят 1, и верхней треугольной матрицы U с не равными нулю диагональными элементами. Для простоты проиллюстрируем эти понятия на матрице размера 4 х 4, но они применимы к произвольной системе размера N х N. Определение 3.4. Невырожденную матрицу А можно разложить на треуголь- треугольные матрицы, если ее можно представить как произведение нижней треугольной матрицы L и верхней треугольной матрицы U: A) А = LU. В матричном виде это записывается как аи а\2 ахз а\± а2\ а22 а2з а2± ^31 «32 азз «34 «41 «42 «43 «44. 1 0 0 0" 77121 1 0 0 7^31 т32 1 0 77141 77142 т43 1. «11 «12 «13 «14 0 U22 1123 «24 0 0 U33 «34 0 0 0 U44 (Такое разложение автор называет LU разложением. — Прим. ред.)
3.5. Разложение на треугольные матрицы 163 Из условия, что А не вырождена, следует, что Ukk ф 0 для всех к. Обозначим элементы матрицы L через rriij и дадим обоснование, почему выбрано обозначе- обозначение mij вместо l(j. Решение линейной системы Предположим, что матрицу коэффициентов А линейной системы АХ = В можно разложить на треугольные матрицы A). Тогда решение B) LUX = В можно получить, полагая Y = UX, и затем решить две системы: C) LY = В для У, чтобы получить UX = Y для X. Сначала решаем нижнюю треугольную систему Ух =Ьг D) Ш21У1 t У2 t "~ .2 т31У1 + ™>32У2 + УЗ =Оз ^41У1 + ГО42У2 + ^43УЗ + У4 = &4 чтобы получить J/1, у2, уз и у4. Используем их для решения верхней треугольной системы. E) Пример 3.20. Решить следующую систему х\ + 2x2 + 4жз + Х4 = 21 8х2 + 6х3 + 4гг4 = 52 10х2 + 8х3 + 8х4 = 79 12х2 + Юх3 + 6х4 = 82. Воспользуемся методом разложения на треугольные матрицы и тем фактом, что = У2 + ^34^4 = УЗ = У4- 1 2 3 4 2 8 10 12 4 6 8 10 1 4 8 6 1 2 3 4 0 1 1 1 0 0 1 2 0 0 0 1. 12 4 1 ' 0 4-22 0 0-23 0 0 0-6 = LU.
164 Глава 3. Решение систем линейных уравнений АХ = В Чтобы решить систему LY — В, используем метод прямой подстановки. VI =21 2yi + у2 =52 Зу1+у2+ Уз =79 2х2 + 4 4х2-2 [х3 + Х4 *.Хз + 2Ж4 !а?з + 3x4 —6X4 = 21 = 10 = 6 = -24. F) Получаем значения ух = 21, у2 = 52 - 2B1) = 10, у3 = 79 - 3B1) - 10 = 6 и у4 = 82 - 4B1) -10 - 2F) = -24 или Y = [21 10 6 -24]'. Затем записываем систему UX = Y. G) Воспользуемся обратной подстановкой и вычислим Х4 = —24/(—6) = 4, хз = F- - 3D))/(-2) = 3, х2 = A0 - 2D) + 2C))/4 = 2их!=21-4- 4C) - 2B) = 1 илиХ= [1 2 3 4]'. ¦ Разложение на треугольные матрицы А сейчас обсудим, как получить разложение на треугольные матрицы. Если нет необходимости менять местами строки, то, когда используется метод исключения Гаусса, коэффициенты тц являются элементами, расположенными под диагона- диагональю матрицы L. Пример 3.21. Используем метод исключения Гаусса, чтобы построить разложе- разложение на треугольные матрицы А = 4 3-1" -2 -4 5 1 2 6 Построим матрицу L из единичной матрицы, расположенной слева. В результате каждой операции со строкой, используемой для построения верхней треуголь- треугольбудут помещены на их собственные места слева. ной матриц?, множители Начнем с Строку 1 используем, чтобы исключить элементы матрицы А в столбце 1 под аи. Элементы rrt2i = —0,5 и тз1 = 0,25 умножаем на строку 1 и вычитаем из 1 0 0 0 1 0 0 0 1 4 -2 1 3 -4 2 -1 5 6
3.5. Разложение на треугольные матрицы 165 строк 2 и 3 соответственно. Эту же операцию производим с матрицей слева и в в результате получаем 4 3 -1 О -2,5 4,5 О 1,25 6,25 Строку 2 используем, чтобы исключить элементы матрицы А в столбце 2 ниже а22- Множитель тз2 == —0,5 второй строки вычитаем из строки 3, коэффициент помещаем в матрице слева и получаем требуемое разложение матрицы А на треугольные матрицы. 1 -0,5 0,25 0 1 0 0 0 1 (8) А = 1 -0,5 0,25 0 1 -0,5 0 0 1 4 0 0 3 -2,5 0 -1 4,5 8,5 Теорема ЗЛО (прямое разложение А = LU; без перестановки строк). Пред- Предположим, что методом исключения Гаусса, без перестановок строк, можно успеш- успешно решить линейную систему АХ = В. Тогда матрицу А можно разложить на множители в виде произведения нижней треугольной матрицы L и верхней тре- треугольной матрицы U: A = LU. Более того, матрицу L можно построить так, чтобы на диагонали стояли 1 и мат- матрица U на диагонали имела не равные нулю элементы. После того как построены матрицы L и U, решение X получаем за два шага. 1. Решаем LU = В для У, используя прямую подстановку. 2. Решаем UX = Y для X, используя обратную подстановку. Доказательство. Покажем, что, когда применен метод исключения Гаусса и мат- матрица В хранится как (N + 1)-й столбец расширенной матрицы, в результате шага, на котором матрица приводится к виду верхней треугольной матрицы, получаем эквивалентную верхнюю треугольную систему UX = У. Матрицы JD, J7, В и Y будут иметь следующий вид: 1 Ш21 "*31 0 1 77132 0 0 1 0 ... о ... о TIJV3 В = а2ЛГ+1 аЗЛГ+1 аЛГЛГ+1
166 Глава 3. Решение систем линейных уравнений АХ = В iV 0 0 °12 og> 0 a13 "' aB) ... aO) ... 42 42 42 О ОО 7() lNN a а a B) 2ЛГ+1 ЗЛГ+1 (ЛГ) Примечание. Чтобы найти именно L и U9 в (ЛГ + 1)-м столбце нет необходимости. Шаг 7. Запишем коэффициенты в расширенную матрицу. Верхний индекс аГс означает, что на первом шаге число занимает место (г, с). « A) 13 a 1» a() a32 4 2 Nl (i) NN 7(i) hit 'ЛГЛГ+1 Шаг 2. Исключим элемент х\ в строках 2-ЛГ и сохраним множитель тг\, используемый для исключения х\ из ряда г. В матрице он занимает место (г, 1). for г = 2 : N for с = 2 : JV + 1 end end Новые элементы записаны как агс\ чтобы показать, что это второй шаг и чис- число будет храниться в матрице на месте (г, с). В результате после второго шага получаем 4V 8 ш21 4? 42 42 ,B) „B) 32 ЗЗ тт а$2 «!?з NN а1ЛГ+1 B)
3.5. Разложение на треугольные матрицы 167 Шаг 3. Исключим элемент х2 в строках 3-N и сохраним множитель тГ2, который использовался для исключения элемента x<i в строке г, в матрице на месте (г, 2). for г = 3 : N аг2 = for с = 3 : end end _nB) — arc — г :а2с; Новые элементы записаны как аггс\ чтобы показать, что это третий шаг и что число занимает в матрице место (г, 2). A) A) A) а11 а12 а13 '" ш21 4^ 4? •" C) C) азз "" азлг й ,(!) аB) а2ЛГ+1 л<3) lNN+l Шаг р +1. Это шаг общего вида. Исключаем жр в строках р + 1-N и сохраняем множитель на месте (г,р). for г =р + тгр = < агр = end end : N (p)
168 Глава 3. Решение систем линейных уравнений АХ = В Окончательным результатом после исключения элемента ад-х в JV-й строке будет М) М) .A) ... JD а13 Ш21 э C) Шз2 а33 IS а C) злг аB) а2ЛЧ-1 () ЗЛГ+1 *ЛГЛГ+1 Построение верхней треугольной матрицы завершено. Отметим, что одна мат- матрица используется для записи элементов обеих матриц L и U. Ни единицы мат- матрицы L, ни нули матриц X и 17, которые лежат выше и ниже диагонали, соответ- соответственно не записаны.,Необходимы только существенные коэффициенты, чтобы воссоздать перестроенные матрицы L и 17! Убедимся, что произведение LU = А. Предположим, что D = LU, и рассмот- рассмотрим случай, когда г <с. Тогда drc равно (9) drc = Используя замену уравнений на шагах с 1-го по р + 1 = г, получим следующие подстановки: A0) mrr_14r_-11c)=4r1)-4rc)- Если подстановки в A0) использовать в (9), то в результате получим arc — arc arc т urc urc т т wrc "rc -r arc — arc . Другой случай, г> с, доказывается аналогично. • Вычислительные трудности Процесс приведения к треугольному виду одинаков как для метода исключения Гаусса, так и для метода разложения на треугольные матрицы. Можно подсчитать число операций, если посмотреть на первые N столбцов расширенной матрицы теоремы 3.10. Внешний цикл шага р +1 требует N-p = N-(p+1) + 1 делений для вычисления множителей mrp. Внутренние циклы, но только для первых N
3.5. Разложение на треугольные матрицы 169 столбцов, требуют для вычисления новых строк элементов агрс всего (N - -p)(N - p) умножений и такое же число вычитаний. Этот процесс выполняется для р = 1, 2, ..., iV - 1, Таким образом, часть вычислений, которую занимает разложение на треугольные матрицы А = LU> требует ^ N*-N X/ W ~Р)(^"~р + *) ^ —о— умножений и делений w*r ч 2N-W + N ~P)(N~Р) ^ вычитаний. Чтобы получить A1), используем формулы суммирования и 2л - Произведя замену переменных к = iV — р, перепишем A1) в виде ЛГ-1 fe+ А;=1 (N - Как только разложение А = LC/ на треугольные матрицы будет получено, для решения нижней треугольной системы LY = В потребуется 0 + 1Н f-iV-l = = (N2 - N)/2 умножений и вычитаний, но операции деления не потребуются, потому что диагональные элементы матрицы L равны 1. Решение верхней тре- треугольной системы UX = Y потребует 1+2 Н h iV = (ЛГ2+N)/2 умножений и делений и (N2-N)/2 вычитаний. Следовательно, для решения системы LUX = = В потребуется N2 умножений и делений nN2 - N вычитаний. Мы видим, что большая часть вычислений приходится на разложение на тре- треугольные матрицы. Если линейную систему решать много раз с той же матрицей
170 Глава 3. Решение систем линейных уравнений АХ = В коэффициентов А, но с различными матрицами-столбцами В, нет необходимо- необходимости в разложении матрицы каждый раз, если запомнить множители. Поэтому в таком случае метод разложения на треугольные матрицы предпочитают методу исключения Гаусса. Но, если решается только одна линейная система, оба метода одинаковы, за исключением того, что метод разложения на треугольные матрицы позволяет сохранить множители. Перестановка матриц Разложение матрицы А = LU в теореме 3.10 предполагает, что строки не пере- переставляют. Но случается, что невырожденную матрицу А нельзя непосредственно представить в виде А = LU. Пример 3.22. Покажем, что следующую матрицу нельзя непосредственно пред- представить в виде А = LU: Г 1 2 6" А= 4 8-1 Г2 3 Предположим, матрицу А можно представить в виде LU, тогда A3) 1 4 -2 2 8 3 6" -1 5_ 1 ТП21 »Jlai 0 1 тм 0 0 1 0 0 «12 «22 0 Можно перемножить матрицы L и U, расположенные справа в A3), и каждый элемент произведения сравнить с соответствующим элементом матрицы А. В первом столбце 1 = 1иц, затем 4 = m2\u\i = rri2i и наконец —2 = m^\U\\ = =s тпзь Во втором столбце 2 = Iui2, затем 8 = rri2iui2 = D)B) + U22 (откуда следует, что г/22 = 0) и наконец 3 = т^ии + т32«22 = (-2)B) + тз2@) = = —4, что приводит к противоречию. Следовательно, А нельзя разложить на произведение матриц LU. ш Перестановка первых N положительных чисел 1, 2, ..., N является разме- размещением к\, &2, •••> &лг этих целых чисел в определенном порядке. Например, 1,4,2,3,5 является перестановкой пяти целых чисел 1,2,3,4,5. В следующем определении используем стандартные обозначения для векторов, образующих ба- базис, JE7i = [0 0 • • • 0 U 0 • • • 0] для г = 1, 2, ..., N. Определение 3.5. Матрицей перестановок Р размера N х N называется мат- матрица с точно одним элементом, равным 1 в каждом столбце и строке, и всеми остальными элементами, равными 0. Строки матрицы Р являются перестановка- перестановками строк единичной матрицы и могут быть записаны как A4) Е'к к2
3.5. Разложение на треугольные матрицы 171 Элементы матрицы Р = [р^] имеют вид [О в Pij 1" в остальных случаях. Например, следующая матрица размера 4x4 является матрицей перестановок: A5) п z=z 0 10 0" 10 0 0 0 0 0 1 0 0 10 = [Е2 Теорема 3.11. Предположим, что Р = [E'kl Erk2 ... EfkN] — матрица пере- перестановок. Произведение РА — это новая матрица, строки которой состоят из строк матрицы А, размещенных в таком порядке: строка^ А, строка^ А,..., строка^ А. Пример 3.23. Пусть А — матрица размера 4 х 4 и Р — матрица перестановок, за- заданная в A5). Тогда РА — это матрица, строки которой содержат строки матрицы А, размещенные в таком порядке: строка2 А, строках А, строка4 А, строка3 А. Вычислим произведение и получим A6) 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 аи аи «13 О21 «22 0.23 О24 «31 О32 0,33 0.34 О41 О42 О43 О44. «21 «22 О.23 О24 ап аи а\з аи «41 О.42 «43 «44 .«31 «32 «33 О34. Теорема 3.12. Если Р — матрица перестановок, то она невырождена иР ! = Р'. Теорема 3.13. Если А — невырожденная матрица, то существует такая матрица перестановок Р, что РА можно разложить на треугольные матрицы A7) РА = LU. Доказательство можно найти в книге повышенной сложности по линейной алгебре. Пример 3.24. Если строки 2 и 3 матрицы из примера 3.22 поменять местами, то в результате получим матрицу РА, которую можно разложить на треугольные матрицы. Матрица перестановок, меняющая местами строки 2 и 3, имеет вид Р = = [Е[ Е'з Е'2] . Вычислим произведение РА и получим 1 0 0 0 0 1 0 1 0 1 4 -2 2 8 3 6 -1 5 = 1 -2 4 2 3 8 6 5 -1
172 Глава 3. Решение систем линейных уравнений АХ = В А сейчас можно использовать метод исключения Гаусса без перестановки строк: гл. эл. -» Ш21 » -2 — 4 -2 3 5 4 8-1 После исключения элемента, стоящего на пересечении столбца 2 и строки 3, получим A8) ГЛ, ЭЛ. =0 1 2 б' О _7 17 О 0 -25 Расширение метода исключения Гаусса Следующая теорема'является обобщением теоремы ЗЛО, поскольку включает случай, требующий перестановки строк. Такое разложение на треугольные матри- матрицы может быть использовано для нахождения решения любой линейной системы АХ = В , где матрица А не вырождена. Теорема 3.14 (непрямое разложение: РА = LU). Пусть задана матрица А размера NxN. Предположим, что методом исключения Гаусса можно решить ли- линейную систему общего вида АХ = В, но требуются перестановки строк. Тогда существует такая матрица перестановок Р, что произведение РА можно разло- разложить на произведение нижней треугольной матрицы L и верхней треугольной матрицы U: РА = LU. Более того, матрицу L можно построить так, чтобы на главной диагонали стояли единицы, а на диагонали матрицы U были элементы, не равные нулю. Решение X находим за четыре шага. 1. Строим матрицы L,U и Р. 2. Вычисляем вектор-столбец РВ. 3. Используя прямую подстановку, решаем LY = РВ для У. 4. Используя обратную подстановку, решаем UX = Y для X. Примечание. Предполагаем, что линейная система АХ = В имеет решение для фиксированной матрицы А и нескольких различных матриц столбцов В. Тогда шаг 1 выполняем только один раз и шаги 2-4 используем, чтобы найти решение X, соответствующее столбцу В. Шаги 2-4 для нахождения решения X вычисляются эффективным методом и требуют O(N2) операций вместо O(N3), необходимых для метода исключения Гаусса.
3.5. Разложение на треугольные матрицы 173 MATLAB Команда MATLAB [L,U,P]=lu(A) строит нижнюю треугольную матрицу L, верхнюю треугольную матрицу U (для разложения А на треугольные матрицы) и матрицу перестановок Р из теоремы 3.14. Пример 3.25, Используем команду MATLAB [L, U, Р] -lu(А) для матрицы А из примера 3.22. Убедимся, что А = P~lAU (эквивалентно тому, что РА = LU). >>А-[1 2 6 ;4 8 -1;-2 3 -Б]; 1.0000 0 0 -0.5000 1.0000 0 0.2500 0 1.0000 и- 4.0000 8.0000 -1.0000 0 7.0000 4.5000 О 0 6.2500 Р- 0 10 0 0 1 10 0 >>inv(P)*L*U 12 6 4 8-1 -2 3 5 ' ш Как отмечалось ранее, метод разложения на треугольные матрицы часто пред- предпочитают методу исключения. К тому же его используют в программах MATLAB inv(A) и det(A). Например, из курса линейной алгебры известно, что определи- определитель невырожденной матрицы А равен (—1)я det С/, где U — верхняя треугольная матрица разложения А и q — число переставленных строк, которые требуют- требуются для получения матрицы Р из единичной матрицы I. Так как U — верхняя треугольная матрица, известно, что определитель U точно равен произведению элементов ее главной диагонали (см. теорему 3.6). Читателю следует убедиться, что в примере 3.25 det(-A) = 175 = (-1JA75) = (-lJdet(l7). В следующей программе осуществлен процесс, описанный в доказательстве теоремы ЗЛО. Это расширение программы 3.2, использующее частный выбор главного элемента. Перестановка строк, обусловленная частным выбором глав- главного элемента, записана в матрицу R. Затем матрица R используется на шаге прямой подстановки для нахождения матрицы Y.
174 Глава 3. Решение систем линейных уравнений АХ = В Программа 3.3 (РА = LU: разложение с выбором главного элемен- элемента). Построение решения линейной системы АХ = В, где А — невыро- невырожденная матрица. function X = lufact(A,B) '/Вход - А - матрица размера N х N % - В - матрица размера N х 1 •/.Выход - X - матрица размера N х 1, содержащая решение АХ = В •/Инициализация X, Y, временное сохранение матрицы С и строк •/заданной матрицы перестановок R [N,N]=size(A); X=zeros(N,l); Y=zeros(N,l); C=zeros(l,N); R=1:N; for p=l:N-l •/.Находим главный элемент строки для столбца р [maxl,j]=max(abs(A(p:N,p))); 7,Меняем местами строки р и j С=А(р,:); d=R(p); R(p)=R(j+p-l); R(j+p-l)=d; if A(p,p)==O 'А вырождена. Нет единственного решения' break end •/.Вычисление множителя и размещение под диагональю матрицы А for k=p+l:N mult=A(k,p)/A(p,p); A(k,p) = mult; A(k,p+l:N)=A(k,p+l:N)-mult*A(p,p+l:N); end end •/.Решение для Y Y(l) = B(R(D); for k=2:N
3.5. Разложение на треугольные матрицы 175 end '/•Решение для X X(N)=Y(N)/A(N,N); for k=N-l:-l:l X(k)=(Y(k)-A(k,k+l:N)*X(k+l:N))/A(k,k); end Упражнения к разделу 3.5 1. Решите LY = B,UX = Y и убедитесь, что В = АХ для (а) В = [-4 10 5]'и(Ь)В= [20 49 32]', где А = LC7 имеет вид '2 1 1 4 5 3 -6" 3 2 = 1 1/2 1/2 0 1 1/3 0 0 1 2 0 0 4 3 0 -6 6 3 2. Решите LY = B,UX = Y и проверьте, что В == АХ для (а) В = [7 2 10]' и (Ь) В - [23 35 7]', где А = LU имеет вид 1 1 1 1 2 -2 6 9 3 1 1 1 0 1 -1 0" 0 1 •1 0 о 1 3 0 6" 15 12 3. Найдите разложение на треугольные матрицы А = LU следующих матриц. (а) -5 2 -1" 1 0 3 3 1 6 (Ь) 1 0 3 1 -5 2 4. Найдите разложение А = LU следующих матриц. (а) '4 2 1' 2 5-2 1 -2 7 (Ь)  -2 4 2 2 5 6 -1, . 7" 1 -2 5. Найдите решение LY" = В, UX = У и подтвердите, что В = АХ для (а) В =[8 -4 10 -4]'и (Ь) В = [28 13 23 4]', где А = LU имеет вид 8 5 4 3 4 4 7 0 0" -3 2 -2 1 0 11 I I L.4 3 0 0 1 \ 0 0 0 1 4 0 0 0 8 3 0 0 4 3 4 0 0 -3 4 1
176 Глава 3. Решение систем линейных уравнений АХ -В б. Найдите разложение на треугольные матрицы А = LU для матрицы ' 1 2 5 -3 1 О -1 5 2 1 О 2 7. Получите формулу A2) из этого раздела. 8. Покажите, что разложение на треугольные матрицы единственно в следую- следующем смысле: если А не вырождена и L\U\ = А = L2U2, то L\ = L4 и VX = U2. 9. Докажите теорему 3.10 в случае, если г > с. 10. (а) Проверьте утверждение теоремы 3.12, показав, что РР1 = / = Р'Р для матрицы перестановок 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 (Ь) Докажите теорему 3.12. Указание. Воспользуйтесь определением умно- умножения матриц и тем фактом, что каждая строка и столбец матриц Р и Р' содержат точно одну единицу. 11. Докажите, что матрица, обратная к невырожденной верхней треугольной мат- матрице размера N х N, является верхней треугольной матрицей. Алгоритмы и программы 1. Используя программу 3.3, решите систему АХ = В, где 1 2 0 -2 3 -1 0 -6 5 3 2 -3 7 5 5 1_ __ d И О = Т 2 3 _4_ Используйте команду MATLAB [L, U, Р] =lu (А), чтобы проверить свой ответ. 2. Воспользуйтесь программой 3.3, чтобы решить линейную систему АХ = = В, где А = [aij]NxN, ац = р, и В = [Ьу]лгхь где 6ц = N и 6а = = iN~2/(i — 1) для t > 2. Возьмите N = 3,7 и 11. Точным решением является Х= [1 1 ... 1 1]. Объясните любые отклонения от точного решения.
3.5. Разложение на треугольные матрицы 177 Рис. 3.5. Электрическая цепь для упр. 4 3. Модифицируйте программу 3.3 таким образом, чтобы она вычисляла А \ повторяя вычисления N линейных систем ACj = Ej для J = 1, 2, .... N. A[Ci С2 ... CN] = [Ei E2 ... EN] Тогда A~l = [Ci C2 ... CN]. Убедитесь, что вы вычисляете разложение LU только один раз! 4. Закон Кирхгофа гласит, что сумма падения напряжения по любому замкну- замкнутому пути в сети в заданном направлении равна нулю. Когда этот закон применяется к цепи (рис. 3.5), мы получаем следующую систему линейных уравнений: A9) R3I1 + (Д2 + Дз + Rb)h - Rbh - Eh, Д4/1 - Rbh + (Д4 + Rb + Ra)h = 0. Используйте программу 3.3, чтобы найти решение для токов 1\, 12 и /з, если (a) Hi = 1, R2 = 1, Д3 = 2, Я4 = 1, Rb - % Лб = 4 и Е\ = 23, Е2 = 29; (b) Я1 = 1, Д2 = 0,75, Д3 = 1,Д4 = 2, Д5 = 1, Дб = 4 и Ех = 12, Я2 = 21,5; (c) Дг = 1, Д2 = 2, Д3 = 4, Д4 = 3, Д5 = 1, Дб = 5 и JE?i = 41, Е2 = 38. 5. Для вычисления следующего интеграла следует применить метод разложения на элементарные дроби: Г х2 + х + 1 (х - 1){х - 2)(х - dx.
178 Глава 3. Решение систем линейных уравнений АХ = В Требуется найти коэффициенты А{ для % = 1, 2,..., 6 в выражении х2 + х + 1 А2 А. (*-з) (я - 1) ' (я - 2) ' (я - ЗJ ' (ж — 3) ' (х2 + 1) ' Воспользуйтесь программой 3.3, чтобы найти коэффициенты элементарных дробей. 6. Используя программу 3.3, решите линейную систему АХ = J3, где матри- матрица А сгенерирована командами MATLAB A=randA0,10) и В=[1 2 3 ... 10]'. Не забудьте проверить, не вырождена ли матрица A (det(A)^ 0), прежде чем использовать программу 3.3. Проверьте точность своего ответа, формируя разницу матриц АХ — В и проверяя, насколько элементы этой матрицы близки к нулю (точный ответ дает АХ — В = 0). Повторите этот процесс с матрицей А, коэффициенты которой сгенерированы командами A=randB0,20) и В=[1 2 3 ... 20] \ Объясните любые видимые расхо- расхождения в точности программы 3.3 на этих двух системах. 1. В выражении (8) раздела 3.1 определено понятие линейной комбинации в iV-мерном пространстве. Например, вектор D,-3), который эквивален- эквивалентен матрице [4 — 3] , можно записать как линейную комбинацию столбцов [1 0]'и[0 1]': 5 7 9] Используйте программу 3.3, чтобы показать, что матрицу [13 можно записать как линейную комбинацию матриц столбцов " 0' 4 -2 3 -1 " 0 0 4 4 Г 2 0 5 1 ¦ 5" 6 -3 0 2. и ¦ г 4 -2 7 0. Объясните, почему любую матрицу [х\ виде линейной комбинации этих матриц. х$ можно записать в 3.6. Итеративные методы для линейных систем В этом разделе речь пойдет о распространении некоторых итеративных ме- методов, введенных в разделе 2, на системы больших размерностей. Рассмотрим расширение метода итерации неподвижной точки, которую применим к системам линейных уравнений.
3.6. Итеративные методы для линейных систем 179 Итерация Якоби Пример 3.26. Рассмотрим систему линейных уравнений 4х - у + z = 7 A) 4х-8у + г = -21 -2х + у + 5г = 15. Уравнения можно записать в виде 7 + y-z п, 21 + Ax + z B) у = - z = 8 15 + 2х - у 5 Это позволяет предложить следующий итеративный процесс Якоби: 4 m 21 + 4хк + C) Ук+i = — 8 15 + 2хк - ук Покажем, что если начать с точки Ро = (яо;уо;*о) = A;2;2), то итерация C) сходится к решению B; 4; 3). Подставим жо = 1,уо = 2 и ^о ^ 2 в правую часть каздого уравнения в C), чтобы получить новые значения: „-«i±t2- 3,375 15 + 2-2 zx = g = 3,00. Новая точка Pi = A,75; 3,375; 3,00) ближе к B;4;3), чем Ро. Итерация, ис- использующая C), генерирует последовательность точек {Р^}, которая сходится к решению B; 4; 3) (табл. 3.2). •¦ 4 ¦ Этот процесс называется итерацией Якоби и может использоваться для ре- решения определенных типов линейных систем. После 19-и шагов итерация схо- сходится к приближению с девятью значащими цифрами B,00000000; 4,00000000; 3,00000000).
180 Глава 3. Решение систем линейных уравнений АХ = В Таблица 3.2. Сходимость итерации Якоби для систем линейных уравнений A) к 0 1 2 3 4 5 15 19 Хк 1,0 1,75 1,84375 1,9625 1,99062500 1,99414063 1,99999993 2,00000000 Ук 2,0 3,375 3,875 3,925 3,97656250 3,99531250 3,99999985 4,00000000 Zk 2,0 3,0 3,025 2,9625 3,00000000 3,00093750 2,99999993 3,00000000 Линейные системы с таким большим количеством переменных, как 100 000, ча- часто возникают в решениях дифференциальных уравнений в частных производных. Матрицы коэффициентов этих систем полупустые, т. е. большой процент элемен- элементов матрицы коэффициентов равен нулю. Если существует модель с не равными нулю элементами (т. е. трехдиагональная система), в таком случае итеративный процесс является эффективным методом решения этих больших систем. Иногда метод Якоби не работает. Проведем эксперимент и увидим, что переста- перестановка начальной линейной системы приведет к системе итерационных уравнений, которые дадут расходящуюся последовательность точек. Пример 3.27. Пусть линейная система A) переставлена следующим образом: D) -2х+ у + 5z= 15 Ах - $у + z = -21 Ах - у + z = 7. Полученные уравнения можно записать в виде х = E) 21 + 4ж + z ~8 ~ z = 7 - Ах + у. У =
3.6. Итеративные методы для линейных систем Это подразумевает следующий итеративный процесс Якоби: F) 181 Vk+i = Zk+1 21 3 ¦4xk zk 8 yk. Очевидно, что если начать с точки Pq = (#о;г/о;*о) = A;2;2), то итерация F) отклоняется от решения B; 4; 3). Подставим xq = 1,уо = 2 и zq = 2 в правую часть каждого уравнения F), чтобы получить новые значения rci, у г и z\\ 2 + 10 ~ "" ' 21+4 + 2 . з,375 zx =7-4 + 2 = 5,00. Новая точка Pi = (-1,5; 3,375; 5,00) дальше от решения B;4;3), чем Ро. Ис- Используемые итерационные уравнения F) порождают расходящуюся последова* тельность (табл. 3.3). ¦ Таблица 3.3. Расходящаяся итерация Якоби для линейной системы D) к 0 1 2 3 4 5 6 Хк 1,0 -1,5 6,6875 34,6875 -46,617188 -307,929688 502,62793 Ук 2,0 3,375 2,5 8,015625 17,8125 -36,150391 -124,929688 Zk 2,0, 5,0 16,375 -17,25 -123,73438 211,28125 1202,56836 Итерация Гаусса-Зейделя Иногда сходимость можно ускорить. Отметим, что итеративный процесс Якоби C) производит три последовательности, {хк}, {ук} и {zk}9 которые сходятся со- соответственно к 2,4 и 3 (см. таблицу 3.2). Кажется разумным, что зд+i может быть использовано вместо хк в вычислении г/к+г- Аналогично хк+\ и ук+\ можно ис- использовать в вычислении zk+\. В следующем примере показано, что произойдет, когда применить это к уравнениям из примера 3.26.
182 Глава 3. Решение систем линейных уравнений АХ = В Пример 3.28. Рассмотрим систему уравнений, заданную в A), и итеративный процесс Гаусса-Зейделя, использующий B): 7 + у к - zk G) Ук+1 = 21 zk 8 15 + 2xk+i - Ук+i zk+i = g ¦ Ясно, что если начать с точки Ро = (жо; уо; *о) = A; 2; 2), то итерация, заданная G), сходится к решению B; 4; 3). Подставим уо = 2 и 2о = 2 в первое уравнение системы G) и получим 7 + 2-2 = 1,75. Затем подставим х\ = 1,75 и zq = 2 во второе уравнение и получим 21 +4A,75) + 2 У\ = 8 = 3,75. Наконец подстановка х\ = 1,75 и у\ = 3,75 в третье уравнение даст 15+ 2A,75)-3,75 z\ = = 2,У5. о Новая точка Pi = A,75; 3,75; 2,95) ближе к точке B;4;3), чем Ро, и луч- лучше, чем значение, заданное в примере 3.26. Итерация, использующая уравне- уравнения G), генерирует последовательность {Р*}, которая сходится к B;4;3) (см. табл. 3.4). ¦ Таблица 3.4. Сходимость итерации Гаусса-Зейделя для системы A) к 0 1 2 3 8 9 10 Хк 1,0 1,75 1,95 1,995625 1,99999983 1,99999998 2,00000000 Ук 2,0 3,75 3,96875 3,99609375 3,99999988 3,99999999 4,00000000 Zk 2,0 2,95 2,98625 2,99903125 2,99999996 3,00000000 3,00000000
3.6. Итеративные методы для линейных систем 183 Принимая во внимание примеры 3.26 и 3.27, необходимо иметь некоторый критерий, определяющий, будет ли сходиться итерация Якоби. Поэтому дадим следующее определение. Определение 3.6. Говорят, что матрица А размера N х N называется строго диагонально доминирующей, если выполняется условие, что N (8) \акк\ > ]Г \akj\ для к = 1, 2, ..., N. А 3=1 фк Это означает, что в каждой строке матрицы величина элемента на главной диа- диагонали должна превышать сумму величин всех остальных элементов в строке. Матрица коэффициентов линейной системы A) из примера 3.26 строго диаго- диагонально доминирующая, потому что В строке 1 |4| > |-1| + В строке 2 |-8| > |4| + В строке 3 |5| > |-2| + Все строки удовлетворяют соотношению (8) определения 3.6; следовательно, мат- матрица коэффициентов А линейной системы A) строго диагонально доминирующая. Матрица коэффициентов А линейной системы D) из примера 3.27 не строго диагонально доминирующая, так как В строке 1 | — 2| < |1| + |5|, В строке 1 | — 2| < |1| + |5|, В строке 2 |-8| > |4| + |1|, В строке 3 |1|<|4| + |-1|. Строки 1 и 3 не удовлетворяют соотношению (8) в определении 3.6, поэтому матрица коэффициентов А для линейной системы D) не строго диагонально до- доминирующая. А сейчас обобщим итерационные процессы Якоби и Гаусса-Зейделя. Предпо- Предположим, что задана линейная система + alNxN = Ь\ jj • ' • + 0>2NxN = &2 (9) ' ' 0x + Q>j2x2 H + ajjxj H + ajNxN ~ bj 0>Nlxl + 0>N2x2 + " • + CLNjXj H + Q>NNxN ^
184 Глава 3. Решение систем линейных уравнений АХ = В Пусть fe-я точка имеет вид Р* = (а^ , х\ ,..., xf\..., ху). Следующая точка, (* + 1)-я, - Pk+i = (a?i*+i)i4*+1)i ¦ • • i*i*+1>' • •''*#+1))- ВеРхний инДекс (*) координат точки Р* предоставляет возможность устанавливать координаты, ко- которые относятся к этой точке. Итерационная формула использует j-ю строку (9), чтобы выразить Xj1' в терминах линейной комбинации предыдущих значений Jk) (к) (к) (к) Итерация Якоби: для j =s 1, 2,..., -/V. Итерация Якоби использует все старые координаты, чтобы получить все новые координаты, тогда как итерация Гаусса-Зейделя использует новые координаты по мере их появления. Итерация Гаусса-Зейделя: и j "" (к) для j = 1, 2, ..., N. В следующей теореме приводятся эффективные условия для сходимости ите- итерации Якоби. Теорема 3.15 (итерация Якоби). Предположим, что А — строго диагонально доминирующая матрица. Тогда АХ = В имеет единственное решение X = = Р. Итерационная формула A0) порождает последовательность векторов {Ра?}, которые сходятся к Р для любого выбора начального вектора Pq. Доказательство. Доказательство можно найти в книгах повышенной сложности по численному анализу. • Можно доказать, что метод Гаусса-Зейделя также будет сходиться, когда А — строго диагонально доминирующая матрица. Во многих случаях метод Гаусса- Зейделя сходится быстрее, чем метод Якоби, поэтому предпочитают обычно его (ср. примеры 3.26 и 3.28). Важно понять, что достаточно небольшой модификации формулы A0), чтобы получить формулу A1). В некоторых случаях метод Якоби будет сходиться даже несмотря на то, что метод Гаусса-Зейделя не сходится.
3.6. Итеративные методы для линейных систем 185 Сходимость Следует дать определение близости двух векторов так, чтобы можно было ввести понятие сходимости {Рк} к Р. Расстояние Евклида (см. раздел ЗЛ) между Q = (УъУ2?- • • ,Vn) равно 02) Это неудобное определение, так как оно требует значительных усилий для вычис- вычислений. Поэтому введем другую норму A3) Следующий результат гарантирует, что норма \\Х\\г имеет математическую структуру метрик и, следовательно, подходит для использования в качестве обоб- обобщения "формулы расстояния". Из курса линейной алгебры известно, что в век- векторном пространстве ограниченной размерности все нормы эквивалентны, т. е. если два вектора близки в норме ||*|li> они также близки в норме Евклида ||*||. Теорема ЗЛ6. Пусть X и Y — векторы размера N и с — скаляр. Тогда функция \\Х\\г имеет следующие свойства: A4) \\Х\\г>0, A5) \\Х\\г = 0 тогда и только тогда, когда X = О, A6) \\cX\\, = A7) Доказательство. Докажем A7) и оставим доказательство остальных свойств в качестве упражнений. Для каждого j неравенство треугольника для действитель- действительных чисел гласит, что \xj + yj\ < \xj\ + \yj\. Суммируя их, получаем неравен- неравенство A7): и*+YHi - Е to+vA * Е toi+Е iwi = n*iii + nyiii • j=i j=i j=i Норму, заданную формулой A3), можно использовать, чтобы определять рас- расстояние между точками.
186 Глава 3. Решение систем линейных уравнений АХ = В Определение 3.7. Предположим, что X и Y — две точки в iV-мерном простран- пространстве. Определим расстояние между X и Y в норме Ц*]^ как 3=1 Пример 3.29. Определим расстояние Евклида и расстояние \\*\\г между точками Р = B; 4; 3) и Q = A,75; 3,75; 2,95). Расстояние Евклида равно \\Р - Q\\ = (B - 1,75J + D - 3,75J + C - 2,95J)х/2 = 0,3570. Расстояние Ц*)^ равно \\Р - Q\\[ = |2 - 1,75| + |4 - 3,75| + |3 - 2,95| = 0,55. Расстояние Ц*!^ легче вычисляется и используется для определения сходимости в JV-мерном пространстве. ¦ Команда MATLAB A(j, [1: j-l,j+l:N]) используется в программе 3.4. Она эффективно выбирает все элементы в j-й строке матрицы А, кроме элемента в j-м столбце (т. е. А (j , j)). Это замечание используется, чтобы упростить шаг A0) итерации Якоби в программе 3.4. В обеих программах, 3.4 и 3.5, используется команда MATLAB norm, которая является нормой Евклида. Норму Ц*!^ также можно использовать и читателю предлагаем проверить Help menu в MATLAB или одну из работ, указанных в списке литературы, чтобы получить информацию о команде norm. Программа 3.4 (итерация Якоби). Решение линейной системы АХ = В, начиная с исходного значения X = Ро, и генерирования последовательности {Р/к}, которая сходится к решению. Эффективным условием для применения метода является то, что А — строго диагонально доминирующая матрица. function X=jacobi(A,B,P,delta, maxl) '/•Вход - А - невырожденная матрица размера N х N 7. - В - матрица размера N х 1 У, - Р - матрица размера N х 1, начальное предположение У. - delta - допустимое отклонение для Р У. - maxl - максимальное число итераций У,Выход - X - матрица размера N х 1: приближение Якоби к решению 7. АХ - В N = length(В);
3.6. Итеративные методы для линейных систем 187 for k=l:maxl for j«i:M end err=abs(norm(X'-P)); relerr=err/(norm(X)+eps); P=X>; if(err<delta)I(relerr<delta) break end end X=X>; Программа 3.5 (итерация Гаусса-Зейделя). Решение линейной системы АХ = В, начиная с исходного значения X = Pq методом генерирования по- последовательности {Pk}> которая сходится к решению. Эффективным условием для применения метода является то, что А — строго диагонально доминирую- доминирующая матрица. function X=gseid(A,B,P,delta, maxl) '/•Вход - А - невырожденная матрица размера N х N '/• - В - матрица размера N х 1 % - Р - матрица размера N х 1, начальное предположение '/• - delta - допустимое отклонение для Р У» - maxl - максимльное число итераций '/Выход - X матрица размера N х 1: приближение Гаусса-Зейделя к % решению АХ = В N = length(В); for k=l:maxl for j«l:H if j—1 elseif j==N else У.Х содержит k-e приближение и Pk-\ end end err=abs(norm(X'-P));
188 Глава 3. Решение систем линейных уравнений АХ = В relerr=err/(norm(X)+eps); if(err<delta)I(relerr<delta) break end end X=X>; Упражнения к разделу 3.6 В упр. 1-8 поступайте следующим образом. (a) Начните с Pq = 0 и используйте итерацию Якоби, чтобы найти Р* для к = 1, 2, 3. Будет ли итерация Якоби сходиться к решению? (b) Начните с Pq =' 0 и, используя итерацию Гаусса-Зейделя, найдите Р* для к = 1, 2, 3. Сходится ли итерация Гаусса-Зейделя к решению? 1. 4s- у = 15 2. 8я-3у = 10 ж + 5у= 9 -х + 4у=6 3. - х + Зу = 1 4. 2х + Зу = 1 6х-2у= 2 7ж-2у= 1 5. 5ж- у+ z= 10 6. 2х + 8у- z = 11 2ж + 8у~ z= 11 Ьх- у+ z- 10 -a;+y + 4z=3 -ж+у + 4г=3 7. гг - 5у - z = -8 8. 4ж + у - г: = 13 4я + у - z = 13 ж - 5у - г = -8 2я - у - 6г = -2 2ж - у - 6z = -2 9. Пусть JC = («1, а?2) • • • > ^лг). Докажите, что норма И*!^ /c=l удовлетворяет свойствам A4)—A6) теоремы 3.16. 10. Пусть X = (ль а?2,..., гглг). Докажите, что норма Евклида 1/2 удовлетворяет свойствам A4)—A7) теоремы 3.16.
3.6. Итеративные методы для линейных систем 189 11. Пусть X = (xi,#2, • ¦ • ,xn)- Докажите, что норма ||*|1оо 11X11,= max \xk\ 11 |1о° 1<*<лг' ' удовлетворяет свойствам A4)—A7) теоремы 3.16. Алгоритмы и программы 1. Используя программы 3.4 и 3.5, решите линейные системы упр. 1-8. Исполь- Используйте команды format long и delta = 10""9. 2. В теореме 3.14 условие, что А — строго диагональная доминантная матри- матрица, достаточное, но не необходимое. Используйте обе программы, 3.4 и 3.5, и несколько различных начальных предположений для Ро в следующей линей- линейной системе. Примечание. Итерация Якоби сходится, в то время как итерация Гаусса-Зейделя расходится. х + z = 2 -х+ у =0 х + 2у - 3z = 0 3. Рассмотрим следующую трехдиагональную систему и предположим, что мат- матрица коэффициентов — строго диагональная доминантная матрица. -.! + (i) Напишите алгоритм итерации, следуя (9)-A1), который решит эту систему. Ваш алгоритм должен эффективно использовать то, что матрица коэффици- коэффициентов "полупустая". (и) Постройте MATLAB-программу, основанную на вашем алгоритме, и ре- решите следующие трехдиагональные системы.
190 Глава 3. Решение систем линейных уравнений АХ = В (a) Ami + ™>2 =3 (b) Ami + ™>2 = 1 mi + 4m2 + шз = 3 mi + 4m2 + тз = 2 т2 + 4тз + 7тц = 3 т2 + 4тз + гтц = 1 тз + 4т4 + т$ = 3 тз + 4т4 + Шб = 2 77148 + 4т49 + Ш50 = 3 т4д + 4т5о = 3 т4д + 4т5о = 2 4. Используйте итерацию Гаусса-Зейделя, чтобы решить следующую полосо- полосовую систему. — 2x2 + #з =5 +12х2 - 2х3 + х4 =5 ' xi — 2x2 + 12хз — 2x4 + Х5 = 5 Х2 — 2хз + 12X4 — 2X5 + Хб = 5 Х46 - 2X47 + 12X48 - 2X49 + #50 = 5 Х47 — 2X48 + 12X49 "~ 2X50 = 5 Х48 "~ 2X49 + 12X50 ^ 5 5. В программах 3.4 и 3.5 в качестве критерия останова используется отно- относительная ошибка между двумя последовательными итерациями. Задачи с использованием исключительно этого критерия обсуждались в разделе 2.3. Линейную систему АХ = В можно записать как АХ — В = 0. Если Xk — это к-я итерация для итерационного процесса Якоби или Гаусса-Зейделя, то норма разности АХь — В является, в общем, более подходящим критерием останова. Модифицируйте программы 3.4 и 3.5, чтобы они использовали разность в качестве критерия останова. Затем используйте модифицированные програм- программы для решения полосовой системы из задачи 4. 3.7. Итерация для нелинейных систем: методы Ньютона и Зейделя (оптимальные) В этом разделе обсуждаются способы обобщения методов, описанных в главе 2 и в разделах 3.6, на случай систем нелинейных функций. Рассмотрим функции fi(x;y)=x2-2x-y + 0? /(J + 424
3.7. Итерация для нелинейных систем 191 Мы ищем метод решения системы нелинейных уравнений B) Л(*;у)=0 и /2(я;у)=0. Уравнения f\(x; у) = 0 и /г(ж; у) = 0 неявно определяют кривые на плоскости. Следовательно, решением системы B) является точка (p;q), в которой пересека- пересекаются две кривые (т. е. и /i(p; q) = 0, и /2(р; д) = 0). Кривые системы A) хорошо известны: C) х2 — 2х + 0,5 = 0 — график параболы, х2 + 4у2 - 4 = 0 график эллипса. Графики на рис. 3.6 показывают, что существуют две точки решения и что они находятся в окрестности точек (—0,2; 1,0) и A,9; 0,3). У у = х2 - 2х + 0,5 -1,0 Рис. 3.6. Графики для нелинейной системы у±ж2- - 2х + 0,5 и х2 + 4у2 = 4 Первый метод — это итерация неподвижной точки. Метод изобретен для ге- генерирования последовательности {(pk'<>Qk)}> которая сходится к решению (р;д). Первое уравнение в C) можно решить непосредственно относительно х. Однако к каждой части второго уравнения можно прибавить число, кратное у, чтобы по- получить х2 + Ау2 — 8у — 4 = ~8у. Выбор величины —8у является решающим и будет объяснен позже. А сейчас мы получили эквивалентную систему уравнений: х = D) х2-у + 0,5 2 -ж2 ~ 4у2 + 8у + 4 8 " Эти два уравнения используются для получения рекуррентных формул. В ка- качестве начальной точки берем (ро;9о) и затем вычисляем последовательность
192 Глава 3. Решение систем линейных уравнений АХ = В Таблица 3.5. Итерация неподвижной Случай (i). Начинаем с @; 1) к 0 1 2 3 4 5 6 7 8 9 Рк 0,00 -0,25 -0,21875 -0,2221680 -0,2223147 -0,2221941 -0,2222163 -0,2222147 -0,2222145 -0,2222146 Як 1,00 1,00 0,9921875 0,9939880 0,9938121 0,9938029 0,9938095 0,9938083 0,9938084 0,9938084 точки, использующая формулы E) Случай (ii). Начинаем с B; 0) к 0 1 2 3 4 5 6 7 Рк 2,00 2,25 2,78125 4,184082 9,307547 44,80623 1011,995 512 263,2 Як 0,00 0,00 -0,1328125 -0,6085510 -2,4820360 -15,891091 -392,60426 -205477,82 Эта последовательность расходится. {(Pk+i\Qk+i)}> используя соотношения E) Рк+i = 9\\Рк\Чк) = ~ Чк +0,5 Случай (i). Если в качестве начального значения выбрать (ро; 9о) =? @; 1), то 02-1 + 0,5 -02-4AJ+8A)+4 °25 и 91 == 10 Pi = и В табл. 3.5 приведена последовательность, генерируемая итерацией для случая (i). В этом случае последовательность сходится к решению, которое лежит около начального значения @; 1). Случай (и). Если в качестве начального значения выбрать (ро; Яо) = B; 0), то Pi = ,5_ ' 5 8 В табл. 3.5 приведена последовательность, генерируемая итерацией для случая (ii). В этом случае последовательность расходится. Итерационные формулы E) не могут быть использованы для нахождения вто- второго решения A,900677; 0,3112186). Чтобы найти эту точку, необходима отличная от E) пара итерационных формул. Возьмем уравнения C), добавим — 2х к первому уравнению и —Ну ко второму уравнению и получим х2 - Ах - у + 0,5 = -2ж и
~3.7. Итерация для нелинейных систем 193 Таблица 3.6. Итерация неподвижной точки, использующая формулы F) к 0 1 2 3 4 8 12 16 20 24 Рк 2,00 1,75 1,71875 1,753063 1,808345 1,903595 1,900924 1,900652 1,900677 1,900677 Qk 0,00 0,0 0,0852273 0,1776676 0,2504410 0,3160782 0,3112267 0,3111994 0,3112196 0,3112186 Затем используем эти уравнения, чтобы получить итерационные формулы Л / ч ~р| + 4рк + дк - 0,5 PJfc-fi = 9i\Pk\4k) = ^ F) В табл. 3.6 показан процесс использования F) для нахождения второго решения. Теория Выясним, почему уравнения F) подходят для того, чтобы найти поиска реше- решения вблизи точки A,9; 0,3), а уравнения E) не подходят. В разделе 2.1 величи- величина производной в неподвижной точке определяла, будет ли итерация сходиться. Когда применяется функция от нескольких переменных, тогда должны исполь- использоваться частные производные. Обобщением "производной" для систем функций от нескольких переменных является матрица Якоби. Рассмотрим лишь несколько предварительных идей, имеющих отношение к рассматриваемым задачам. Более водробное изложение можно найти в любой книге повышенной сложности по численным методам. Определение 3.8 (матрица Якоби). Предположим, что /i(z;y) и /2B;у) — функции от независимых переменных х и у, тогда их матрица Якоби J(x;y) шеет вид G) 'dfi dh дх ду dh dh дх ду
194 Глава 3. Решение систем линейных уравнений АХ = В Аналогично, если fi(x;y;z),h{x;y;z) и h{x\y\z) — функции от независимых переменных х\ у и z, то их матрица Якоби J(x; у; z) размера 3x3 определяется следующим образом: (8) dfi dh dfi дх ду dz dh d/2 dh дх ду dz dx dy dz Пример 3.30. Найдем матрицу Якоби J(x;y;z) размера 3 х 3 в точке A;3;2) для трех функций: fi(x]y;z) =x3-y2 + y-zA + z2 /з [еет i dfi дх df2 dx dh dx (ж; у; »ид dh ду dh dy dh dy *) = - XZ dfi' dz dh dz dh dz' ' Зж2 -2y 4-1 -4z3 + y + z x + z y + x II. JL ZH - X2Z XZ XZ2 J(x; y; z) = Таким образом, матрица Якоби в точке A; 3; 2) — это матрица размера 3x3: «7A; 3; 2) = 3 -5 -28' 3 I 2 4 3 '4J Дифференциал функции от нескольких переменных Для функции от нескольких переменных дифференциал используется, чтобы показать, как повлияет изменение независимых переменных на зависимые пере- переменные. Предположим, что есть I u I «у —~» #•- I «•• ««• у] «1 — Ye\ I ф' *!/* 2Г1 И 4 /« —— т« I о^* 7/* .2? 1 Предположим также, что значения функций в (9) известны в точке (^о;уо;^о) и необходимо предугадать их значения в близкой точке (x;y;z). Пусть du,dv и
3.7. Итерация для нелинейных систем 195 dw обозначают дифференциалы зависимых переменных, a dx, dy и dz — диффе- дифференциалы независимых переменных. Справедливы соотношения du = -т^ 0 Try A0) dv = -^ ; уо; ; уо; *о) dy + -д^ (j Try 0 Теу dx + —(хо\уо; z0) dy + -7^ = -^-(so; yo; ^o) dx + C/ f % ; z0) dy + -^- z. Если использовать векторное обозначение, то с помощью матриц Якоби A0) можно записать сокращенно. Изменения функций обозначим, как dF9 а изменения переменных как — dX: dF = du dv dw -J(xo;yo;zo) dx dy dz dX. Пример 3.31. Используем матрицу Якоби, чтобы найти дифференциал (du; dv; dw), когда независимые переменные из точки A;3;2) перемещаются в точку A,02; 2,97; 2,01) для системы функций « = fi(x;y;z) =x3-y2 + y-z4 + z2 v = /2(ж; у; z) =xy + yz + xz w = h{x;y;z) = J^. Используем соотношение A1) с матрицей Якоби J(l;3;2) из примера 3.30 и дифференциал (dx;dy;dz) — @,02; —0,03;0,01), чтобы получить du dv 3 -5 -28" 5 3 4 " 0,02 -0,03 0,01 = -0,07 0,05 -0,0525 Заметим, что значение функции в A,02; 2,97; 2,01) близко к линейному прибли- приближению, полученному посредством добавления дифференциалов du = —0,07; dv = = 0,05 и dw = —0,0525 к соответствующим значениями функций /i(l;3;2) = = -17, /2A;3;2) = 11 и /3A;3;2) = 1,5, т. е. ЛA,02; 2,97; 2,01) = -17,072 « -17,01 = ДA; 3; 2) + du /2A,02; 2,97; 2,01) = 11,0493 « 11,05 = /2A; 3; 2) + dv ш /зA,02; 2,97; 2,01) = 1,44864 « 1,4475 = /3A; 3; 2) + dw.
196 Глава 3. Решение систем линейных уравнений АХ = В Сходимость вблизи неподвижных точек Расширим определения и теоремы из раздела 2.1 для функций от двух и трех переменных. Функции от N переменных рассматриваться не будут. Читатель легко найдет обобщения для этого случая во многих книгах по численному анализу. Определение 3.9. Неподвижной точкой для системы двух уравнений от двух переменных A2) = 51 (я; у) и называется такая точка (р; q), что р = g\ (р; q) и q = 52 (р; q)- Аналогично для трех переменных неподвижной точкой для системы A3) x = gi(x;yiz), y = g2(z;y;z) и z = g3(x;y;z) называется такая точка (р; q; г), чтор = gi (р; q\ r), q = g2(p\ q\ г) и г = д$(р; q; r).k Определение ЗЛО. Для функций A2) итерация неподвижной точки опреде- определяется следующим образом: A4) Ран-1 = 9\{рк\Чк) и qk+i = д2{рк\Чк) для к = 0, 1, Аналогично для функций A3) итерация неподвижной точки определяется следующим образом: A5) для к = 0,1,.... ^ Теорема 3.17 (итерация неподвижной точки). Предположим, что функции в A2) и A3) и их первые частные производные непрерывны в области, содержащей неподвижную точку (р; q) или (р; q; r) соответственно. Если выбрать начальную точку достаточно близко к неподвижной точке, то будет справедливым одно из следующих утверждений. Случай (г). Размерность — два. Если точка (ро;9о) достаточно близка к (р;д) и если A6) ду
3.7. Итерация для нелинейных систем 197 то итерация, заданная в A4), сходится к неподвижной точке (p;q). Случай (И). Трехмерный. Если (po;qo;ro) достаточно близка к точке (p;q;r) и если A7) ддз то итерация, заданная в A5), сходится к неподвижной точке (р; д; г). Если условия A6) или A7) не выполняются, итерация может расходиться. Обычно это происходит, когда сумма значений частных производных намного больше 1. Теорему 3.17 можно использовать, чтобы показать, почему итерация E) сходится к неподвижной точке вблизи точки (—0,2; 1,0). Частные производные равны 9 г\ д Поэтому для всех (#, у), удовлетворяющих неравенствам —0,5 < х < 0,5 и 0,5 < у < 1,5, частные производные удовлетворяют неравенствам = \x\ + I - 0,5| < 1, = Ц^ + |-у + 1|< 0,625 Таким образом, условия A6) для частных производных выполняются и из те- рремы 3.17 следует, что итерация неподвижной точки сходится к (р;д)« «(-¦0,2222146; 0,9938084). Отметим, что вблизи другой неподвижной точки A,90068; 0,31122) частные производные не удовлетворяют условиям A6), поэто- поэтому сходимость не гарантируется, т. е. -?-01A,90068; 0,31122) ОХ -|-02A,9ОО68; 0,31122) ох ^-01A,90068; 0,31122) ^-02A,90068; 0,31122) Оу = 2,40068 > 1, = 1,16395 > 1.
198 Глава 3. Решение систем линейных уравнений АХ = В Итерация Зейделя Можно получить итерацию неподвижной точки, подобную методу Гаусса- Зейделя, для линейных систем. Предположим, что рь+i используется для вы- вычисления qk+i (в трехмерном случае и р*+1 и q^+i используются для вычисления r&+i). Когда эти модификации включены в формулы A4) и A5), метод называется итерацией Зейделя: A8) Pfc+i = 9\[pk\ Як) и qk+x = и Рк+1 Як+i A9) Программа 3.6 выполняет итерацию Зейделя для нелинейных систем. Выпол- Выполнение итерации неподвижной точки оставляем читателю. Метод Ньютона для нелинейных систем Изложим основные принципы метода Ньютона для двух переменных. Метод Ньютона можно легко расширить на большие размерности. Систему B0, "?(*») можно рассматривать как преобразование плоскости ху в плоскость uv. Нас ин- интересует поведение этого преобразования около точки (жо;уо)> образом которой является точка (щ; vo). Если две функции имеют непрерывные частные производ- производные, то можно использовать дифференциал, чтобы записать систему линейных приближений, которая справедлива в точке (жо,уо)- и —но = fefi(xitiVo)(x - *о) + 0-/i(so;yo)B/ - yo)i ^21^ д д ^ - v0 = ^/2(^0; Уо)(х - гго) + ^:/2(so; уо)(у ~ W))- Система B1) — это локальное линейное преобразование, которое связывает небольшие изменения в независимых переменных с небольшими изменениями в зависимых переменных. Если использовать матрицу Якоби J(#o;yo)> то эти соотношения можно легко представить в виде B2) -vo ^-/i (so; г/о) 1 __  .У - Уо\
3.7. Итерация для нелинейных систем 199 Если система B0) записана как вектор-функция V = F(X), матрица Якоби J(x;y) — это двухмерный аналог производной, потому что B2) можно запи- записать как B3) AF « J(xo; yo) АХ. А сейчас для описания метода Ньютона в случае двух переменных воспользуемся выражением B3). Рассмотрим систему B0), приравняв и и v к нулю: B4) Zf( \ Предположим, что (р; д) — решение B4), т. е. B5) О=ЛГ»:*Л Чтобы обобщить метод Ньютона для решения системы B4), необходимо рас- рассмотреть небольшие изменения в функциях около точки (ро5 9о)- B6) Аи = и — по, Ар = х — ро- Ди = v — ^о, Ад = у — go- Присвоим (ж; у) = (р; д) в B0) и используем B5), чтобы убедиться, что (и; v) = = @;0). Следовательно, изменения зависимых переменных равны и - щ = /i(p, g) - /i(po, go) = 0 - /i(p0, go) v - vo == /2(p,g) - /2(po,go) = о - /г(ро,до). Используем результаты B7) в B2), чтобы получить линейное преобразование B7) B8) ^/i(po; go) тр ) о; до) ГДр Ад Если матрица Якоби J(po;qo) в B8) не вырождена, то решение для системы ДР = [Ар Aq]' = [р q]' — [ро до]' можно записать в виде B9) AP«-J(po;go)-1i;t(po;go)- Тогда следующее приближение Pi к решению Р имеет вид C0) Pl = Po l Отметим, что C0) является обобщением метода Ньютона для одной переменной, т.е.р1=ро-/(ро)//'Ы-
200 Глава 3. Решение систем линейных уравнений АХ = В Схема метода Ньютона Предположим, что Р* получена. Шаг L Вычисление функции Шаг 2. Вычисление матрицы Якоби д J(Pk) = Шаг 3. Решение линейной системы J(Pk)AP = -F(Pk) для АР. Шаг 4. Вычисление следующей точки: Рм = Рк + АР. Повтор процесса. Пример 3.32. Рассмотрим нелинейную систему О = х2 - 2х - у + 0,5 0 = х2 + Ау2 - 4. Воспользуемся методом Ньютона с начальным значением (ро; <?о) = B,00; 0,25) и вычислим (pr,gi), (P2!92) и (рз;дз). Вектор-функция и матрица Якоби имеют вид В точке B,00; 0,25) они принимают значения Дифференциалы Ар и Ад являются решениями линейной системы 2,0 -1,0] ГАр] _ _ [0,25] 4,0 2,01 [Ад |0,251 '
3.7. Итерация для нелинейных систем 201 Таблица 3.7. Значения функции, матрицы Якоби и дифференциалы, необходимые на каждой итерации метода Ньютона при решении примера 3.32 Pk [2,00] [0,25] [1,90625] [ 0,3125J [1,900691] [0,311213j f1' is, [1,801381 [3,801381 Решение линейной системы J(Pk)AP = -F(Pk) [2,0 -1,0] [-0,09375] [0,25] [4,0 2,0J [ 0,0625J ~" [0,25j 8125 -1,0] [-0,005559] [0,008789] 8125 2,5j [-0,001287] " [0,024414j -1,000000] [-0,000014] [0,000031] 2,489700J [ 0,000006J "" [0,000038J Л + 4Р [1,90625] [ 0,3125J [1,900691] [0,311213J [1,900677] [0,311219j Простое вычисление показывает, что АР = [Apl = f-°'09375l ~ [Aq\ ~ [ 0,0625 J ' Следующая точка итерации равна Рг = PQ + АР = 2,00' 0,25 -0,09375] 0,0625 J 1,90625] 0,3125 J # Аналогично следующими двумя точками будут 1,900691] p,311213j п 1,900677] 0,311219J ' Координаты Рз вычислены с точностью до шести десятичных знаков. Вычисле- Вычисления для Р2 и Рз приведены в табл. 3.7. ¦ При выполнении метода Ньютона может потребоваться вычислить несколько частных производных. Допускается использование численных приближений для значений этих частных производных, но нужна осторожность при выборе сле- следующего шага. При больших размерностях это необходимо, чтобы использовать методы для решения линейных систем, включенные ранее в этот раздел для ре- решения АР. MATLAB Программы 3.6 (нелинейная итерация Зейделя) и 3.7 (метод Ньютона-Рафсона) требуют записи нелинейных систем X = G(X) и F(X) = 0 и их матриц Якоби
202 Глава 3. Решение систем линейных уравнений АХ = В JF соответственно в форме М-файлов. Например, рассмотрим запись нелинейной системы из примера 3.32 и соответствующей матрицы Якоби в форме М-файлов F.m и JF.m соответственно. function Z=F(X) function W=JF(X) x=X(l);y=XB); x=X(l);y=XB); Z=zeros(l,2); W=[2*x-2 -l;2*x 8*y] ; Z(l)=x~2-2*x-y+0.5; ZB)=x~2+4y~2-4; Функцию следует вычислять, используя стандартные команды MATLAB. >>A=feval(>F\[2.00 0.25]) А= 0.2500 0.2500 >>V=JF([2.00 0.25]) 2 -1 4 2 Программа З.б (нелинейная итерация Зейделя). Решение нелинейной систе- системы неподвижной точки X = G(X) с заданным начальным приближением Ро и генерированием последовательности {.Р*}, которая сходится к решению Р. function [P,iter] » seidel(G,P,delta, maxl) '/Вход - G - нелинейная система, записанная в форме М-файла G.m % - Р - начальное приближение к решению % - delta - грань ошибки % - maxl - число итераций '/.Выход - Р - приближение Зейделя к решению У, - iter - число потребовавшихся итераций N=length(P); for k=l:maxl Х=Р; '/• X k-oe приближение к решению for j=l:N A=feval('G\X); % Вывод членов X по мере их вычисления end err=abs(norm(X-P)); relerr=err/(norm(X)+eps); P=X;
3.7. Итерация для нелинейных систем 203 iter=k; if (err<delta)I(relerr<delta) break end end В следующей программе команда MATLAB command A\B используется для решения линейной системы АХ = В (см. Q=P-(J\Y>)')• Вместо нее можно использовать приведенную ранее в этом разделе программу. Выбор соответству- соответствующей программы для решения линейной системы зависит от размера и характе- характеристики матрицы Якоби. Программа 3.7 (метод Ньютона-Рафсона). Решение нелинейной системы F(X) = 0 с одним заданным приближением Pq и генерированием последова- последовательности {Pfc}, которая сходится к решению Р. function [Р, iter,err] =newdim(F,JF,P,delta,epsilon,maxl) ХВход - F - система, записанная в форме М-файла F.m X - JF - матрица Якоби F, записанная в форме М-файла JF.M X - Р - начальное приближение к решению X - delta - допустимое отклонение для Р 7, - epsilon - допустимое отклонение для F(P) 7, - maxl - максимальное число итераций ХВыход - Р - приближенное решение 7в - iter - число потребовавшихся итераций X - err - ошибка вычисления Р ' Y=feval(F,P); for k=l:maxl J=feval(JF,P); Q=P-(J\Y')'; Z=feval(F,Q); err=norm(Q-P); relerr=err/(norm(Q)+eps); P=Q; Y=Z; iter=k; if (err<delta)I(relerr<delta)I(abs(Y)<epsilon) break end end
204 Глава 3. Решение систем линейных уравнений АХ = В Упражнения к разделу 3.7 1. Найдите аналитически неподвижную точку (или точки) для каждой из сле- следующих систем. (a) х = 3i (ж; у) = х-у2 У = 92(х\у) = -я + 6у (b) х = дх (х; у) = {х2 - у2 - х - 3)/3 у = »(*;у) = (-* + у-1)/з (c) х = дг(х;у) = sin(y) У = 32(ж;у) = -6ж + у (d) x = gi(x;y;z)=9-3y-2z * = 9з(х; у; ^) = -9 + Зх + Ay - z 2. Найдите аналитически нуль (или нули) для каждой из следующих систем. Вычислите матрицу Якоби каждой системы в каждом нуле. (a) O = /i(x;y) = 2a; + 2/-6 (b) 0 = (c) 0 = /i(:r;y) = 2x- 0 = /2(z;y) = 4zsin(y) (d) 0 = /!(х;у;г)=2:2 + у2-2: 0 = /2(*;y;*) = x2 + y2 + z2 - 1 0 = /з(д:;у;^) = ж + у 3. Найдите в плоскости ху такую область, в которой при условии, что (ро;9о) находится в этой области, итерация неподвижной точки гарантированно схо- сходится (используйте обоснование, подобное тому, которое следует из теоре- теоремы 3.17) для системы: * = 9\{х\у) = (х2 - у2 - х - 3)/3 4. Перепишите следующую линейную систему в форме системы неподвижной точки. Найдите такие ограничения для х, у и z, что итерация неподвижной точки гарантированно сойдется для любого начального значения (ро;9о;го)> которое удовлетворяет граничным условиям.
3.7. Итерация для нелинейных систем 205 6х + у + z = 1 х + 4у+ z = 2 х + y + 5z = 0 5, Для заданной нелинейной системы используйте начальное приближение (ро;<7о) = AД; 2,0) и вычислите следующие три приближения к неподвиж- неподвижной точке, используя (а) итерацию неподвижной точки и формулы A4), и (Ь) итерацию Зейделя, используя формулы A8). 8х - 4х2 + у2 + 1 х = 3i (я; у) = 8 2x - x2 + Ay - у2 + 3 (гипербола) (окружность). Рис, 3.7. Гипербола и окруж- окружность для упр. 5 6. Вычислите следующие три приближения к неподвижной точке, используя начальное приближение (ро;?о) = (-0,3;-1,3), с помощью (а) итерации неподвижной точки и формул A4) и (Ь) итерации Зейделя и формул A8) для следующей нелинейной системы. ж = 3i (я; у) = у - х3 + Зх2 + За У2 + : 7 - х - 2 (кривая третьего порядка) (парабола). 7. Рассмотрим нелинейную систему Как показано на рис. 3.9, эти параболы пересекаются в двух точках, (а) Начните с точки (ро;<7о) = A>2; 1,2) и примените метод Ньютона для нахождения точек (pi; gi) и (р?, 92)•
206 Глава 3. Решение систем линейных уравнений АХ = В i- x Рис. 3.8. Кубическая кривая и парабола для упр. 6 (Ь) Начните с точки (ро;?о) = (—0,2;— 0,2) и, применяя метод Ньютона, найдите (pi\qi) и (P2W2). 8. Рассмотрим нелинейную систему, изображенную на рис. 3.10. (a) Убедитесь, что решениями являются точки A; 1) и (—1; —1). (b) Какие могут возникнуть сложности, если попытаться найти решение методом Ньютона? -2Ь Рис. 3.9. Параболы для упр. 7 Рис. 3.10. Окружность и ги- гипербола для упр. 8 9. Покажите, что итерация Якоби для линейной системы размера 3x6 является частным случаем итерации неподвижной точки A5). Кроме того, проверьте, что если матрица коэффициентов линейной системы размера 3x3 строго диагонально доминирующая, то выполняются условия A7) теоремы 3.17.
3.7. Итерация для нелинейных систем 207 10. Покажите, что метод Ньютона для двух уравнений можно записать в форме итерации неподвижной точки ? = 5i(#;y)? У = 02(ж;у), где д\(ж; у) и д2(х\ у) заданы выражениями det(J(*;y)) 92{x;y)-y det(J(*;y)) 11. Для решения нелинейной системы A2) использовалась итерация неподвиж- неподвижной точки. Используйте приведенные ниже шаги, чтобы доказать следующее: условий A6) достаточно для гарантии того, что {(рк',Як)} сходится к {p\q). Предположим, что существует такая константа К, 0 < К < 1, что ~л (*; у) а дх 92(х;у) д dyL д_ ду 92{х;у) <К <К для всех (ж; у), лежащих в прямоугольнике R = {(ж; у) : a < х < Ь, с < у < d}. Предположим также, что а <ро <Ьис < qo < d. Определим ek=p-Pk, Ek = q-qk, и rk = тах{|е*|, \Ek\}. Используем следующую форму теоремы о среднем значении, примененную к функции двух переменных: = ¦7^92(bk;qk)ek + —g2{p;d*k)Ek, где а? и bl принадлежат [a,b] vi c*k и d? лежат в интервале [с; d]. Докажите следующее. (a) (ei|<iirroH 1^] < ЛГг0 (b) Ы < Кп < К2г0 п\Е2\< Кп < К2г0 (c) |еА| < ЛГгк_1 < JJTfcr0 и |?^| (d) limn-^ooPfc = p и Ит„_юо qk = q
208 Глава 3. Решение систем линейных уравнений АХ = В 12. Как отмечалось ранее, матрица Якоби системы B0) является двухмерным аналогом производной. Запишем систему B0) как вектор-функцию V = = F(X), и пусть J(F) — матрица Якоби этой системы. Заданы две нелиней- нелинейные системы, V = F(X),hV = G(X) и действительное число с. Докажите следующее. (a) J(cF(X))=cJ(F(X)) (b) Алгоритмы и программы 1. Воспользуйтесь программой 3.6, чтобы найти приближения к неподвижной точке систем из упр. 5 и 6. Ответ должен иметь точность 10 десятичных знаков. 2. Воспользуйтесь программой 3.7, чтобы найти приближения к нулям систем из упр. 7 и 8. Ответ должен иметь точность 10 десятичных знаков. 3. Постройте программу для нахождения неподвижной точки системы методом итерации неподвижной точки. Воспользуйтесь программой, чтобы найти при- приближения к неподвижной точке систем из упр. 5 и 6. Ответ должен иметь точность 8 десятичных знаков. 4. Воспользуйтесь программой 3.7, чтобы найти приближения к нулям следую- следующих систем. Ответ должен иметь точность 10 десятичных знаков. (а) 0 = х2 - х + у2 + z2 - 5 (Ь) 0 = х2 - х + 2у2 + yz - 10 0 = rr2 + y2 -y + z2 -4 0 = 5ж-6у + г 0 = Z2 + y2 + ;Z2+2-6 0 = 2- X2 -у2 (с) 0 = (х + IJ + (у + IJ - z (d) 0 = 9х2 + Збу2 + 4z2 -~ 36 0 = {х - IJ + у2 - z 0 = х2 - 2у2 - 20* 0 = 4х2 + 2у2 + z2 - 16 0 = 16х - я3 - 2у2 - 16*2 5. Решите нелинейную систему 0 = 7хг - Юж - у - 1, С помощью MATLAB нарисуйте графики обеих кривых в той же системе координат. Используйте график для проверки того, что существует 9 точек, в которых графики пересекаются. Используйте график, чтобы оценить точки пересечения. Используйте эти оценки и программу 3.7 для приближения точек пересечения с 9 десятичными знаками.
3.7. Итерация для нелинейных систем 209 б. Систему из задачи 5 можно переписать в форме системы неподвижной точки: 7*3-у-1 X = 10 11 Проведем несколько экспериментов на компьютере и обнаружим, что безраз- безразлично, каким было начальное значение. Только одно из девяти решений мож- можно найти, используя итерацию неподвижной точки (при этой особой форме метода неподвижной точки). Существует ли другая форма итерации непо- неподвижной точки системы в 5, которую можно использовать для нахождения других решений системы?
Интерполяция и приближение полиномами Для вычисления стандартных функций, таких как sin(a:) cos(x), и ех, в пакетах прикладных программ используются вычислительные процедуры, включающие в себя приближение полиномами. При более совершенных методах используются рациональные функции (которые являются отношениями полиномов). Тем не ме- менее теория приближения полиномами подходит для начального курса численного анализа и она, главным образом, рассматривается в этом разделе. Предположим, У = Р(х) = «(*) -1,0 -0,5 0,0 0,5 1,0 -1,0 -0,5 0,0 0,5 1,0 (а) (Ъ) Рис. 4.1. (а) Полином Тейлора р(х) = 1,000000 + 1,000000x4- 0,500000а;2, который приближает f(x) = ех на [—1;1]. (Ь) Приближе- Приближение Чебышева q(x) = 1,000000 4- 1,129772х 4- 0,532042х2 для /(х) = ех 210
4.1. Ряды Тейлора и вычисление функций 211 у 6 5 4 3 Рис. 4.2. График коллокаци- коллокационного полинома, который про- х ходит через точки A; 2), B; 1), 12 3 4 5 C;5), D; 6) иE;1) что функция f(x) = ех приближается полиномом степени п = 2 на интервале [-1; 1]. Полином Тейлора, показанный на рис. 4.1 (а), можно сравнить с приближе- приближением Чебышева на рис. 4.1(Ь). Максимальная ошибка для приближения Тейлора равна 0,218282, в то время как максимальная ошибка для полинома Чебышева равна 0,056468. В этой главе предлагаются основы теории приближения полино- полиномами. Близкая проблема состоит в построении коллокационного полинома. Заданы п + 1 точки на плоскости (из них нет двух точек, которые бы располагались на одной вертикальной прямой). Коллокационный полином — это единственный полином степени <п, который проходит через эти точки. Коллокационный по- полином иногда используется для нахождения полинома, который проходит через заданные точки, если эти точки определены с высокой степенью точности. Для построения коллокационного полинома можно использоваФь различные методы: решение линейной системы для определения коэффициентов, использование ко- коэффициентов полинома Лагранжа и построение таблиц разностных отношений и коэффициентов полинома Ньютона. Все три метода важны для научных работни- работников, занимающихся численным анализом. Например, коллокационный полином степени п = 4, который проходит через пять точек A;2), B;1), C;5), D; 6) и E; 1), равен 5ж4 - 82s3 + 427rr2 - 806а: + 504 ™ " 24 и на графике (рис. 4.2) показаны и точки, и полином. 4.1. Ряды Тейлора и вычисление функций Основой вычислений является предельный переход. Например, производная
212 Глава 4. Интерполяция и приближение полиномами является пределом отношения приращений, где и числитель, и знаменатель стре- стремятся к нулю. Ряды Тейлора иллюстрируют другой тип предельного перехода. В этом случае складывают неограниченное число членов и находят предел опре- определенных частных сумм. Важным применением является их использование для представления элементарных функций: sin(rr), cos (ж), еху 1п(ж) и т. д. В табл. 4.1 приведено несколько общих разложений в ряды Тейлора. Частные суммы подсчи- тываются до тех пор, пока функция не будет приближена с заданной точностью. Решения в виде ряда используются в различных областях физики и техники. Далее будет показано, как конечные суммы можно использовать для хорошего приближения бесконечных сумм. Для иллюстрации используем экспоненциаль- экспоненциальный ряд из табл. 4.1, чтобы подсчитать число е = е1, которое является основа- основанием натурального логарифма и экспоненциальной функции. Выберем х = 1 и используем ряд ! ; 1 l2 I3 14 1* 6 =1+l! + 2! + 3T+4!+-+fc!+ — В определении суммы бесконечного ряда в разделе 1.1 требуется, чтобы част- частные суммы ряда Spj стремились к пределу. Значения этих сумм приведены в табл. 4.2. Таблица 4.1. Ряды Тейлора для некоторых функций х3 х5 х7 sin(x) = х~ -#+ "ёт ~ jf + '- для всех х х2 х4 х6 cos(x) = l - — + — - — + ... для всех х х2 х3 хА Для всех х xz х5 х7 arc tan (я) = х —^" + т ^" 3 5 7 для |x| < 1 Естественный способ представить функцию в виде разложения в степенной ряд — представить ее в виде предела полиномов возрастающей степени. Если суммируемых членов ряда достаточно, то получим приближение с требуемой точностью. Это следует уточнить. Какую степень полинома нужно выбрать и как вычислить коэффициенты полинома при степенях xl На эти вопросы отвечает теорема 4.1.
4.1. Ряды Тейлора и вычисление функций 213 Таблица 4.2. Частные суммы Sn, используемые для нахождения е п 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Sn==l + ± + i. + ... + .L 1! 2! п! 1,0 2,0 2,5 2,666666666666... 2,708333333333... 2,716666666666... 2,718055555555... 2,718253968254... 2,718278769841... 2,718281525573... 2,718281801146... 2,718281826199... 2,718281828286... 2,718281828447... 2,718281828458... 2,718281828459... Теорема 4.1 (приближение полиномом Тейлора). Предположим, что / 6 CN+1 [а; Ь] и xq € [а; 6] — некоторое фиксированное значение. Если х € [а; 6], то О) f(x) = PN(x)+EN(x), где Pn(x) — полином, который можно использовать для приближения /(ж): B) Ошибка приближения Е^(х) имеет вид C) для некоторого с = с(я), которое лежит между жи% Доказательство. Доказательство оставляем читателю в качестве упражнения. • • В соотношении B) показано, как вычислить коэффициенты полинома Тейлора. Хотя в ошибку C) входит подобное выражение, отметим, что выражение f^N+l\c) содержит неопределенное число с, которое зависит от х. Поэтому можно попы- попытаться вычислить En(x): это выражение используется для определения грани точности приближения.
214 Глава 4. Интерполяция и приближение полиномами Пример 4.1. Покажем, почему достаточно 15 членов, чтобы получить приближе- приближение е = 2,718281828459 с точностью 13 знаков. Результаты приведены в табл. 4.2. Разложим f(x) = ех в виде полинома Тейлора степени 15, используя фиксиро- фиксированное значение xq = 0, и степени (х — 0)* = хк. Требуемые производные — это fr(x) = /"(#) = • • • = /A6) = ех. Первые 15 производных используются, чтобы вычислить коэффициенты а& = е°/к\ и записать D) х2 х3 ж15 Подставляя х = 1 в D), получим частную сумму Sis = -Pls(I)- Остаточный член необходим, чтобы найти точность приближения: E) El5(x) = Так как выбраны xq =^0 и х = 1, значение с лежит между ними (т. е. 0 < с < 1); отсюда вытекает, что ес < е1. Заметим, что частные суммы в табл. 4.2 ограничены сверху числом 3. Объединив эти два неравенства, получаем ес < 3, которое и используем для следующих вычислений: Следовательно, все цифры приближения е « 2,718281828459 правильны, потому что фактическая ошибка (какой бы она ни была) должна быть меньше, чем 2 в 13-м десятичном знаке. . ¦ Вместо того чтобы дать строгое доказательство теоремы 4.1, обсудим несколько особенностей приближений; читатель может найти в любой стандартной книге по численному анализу более детальное описание этих задач. Для примера снова используем функцию f(x) = ех и значение xq = 0. Из элементарных вычислений следует, что тангенс угла наклона кривой у = ех в точке (х;ех) равен ff(x) = = ех. Поэтому тангенс угла наклона в точке @; 1) равен /'(О) = 1. Следовательно, касательной к кривой в точке @; 1) будет прямая у = 1 + х. Это такая же формула, какую можно было бы получить, положив N = 1 в теореме 4.1, т. е. Pi (x) = /@)+ + /'@)#/1! = 1 + х, поэтому Р\{х) является уравнением касательной линии к кривой. График изображен на рис. 4.3. Отметим, что приближение ех « 1 + х хорошее около точки xq = 0 и что расстояние между кривыми увеличивается по мере того, как х удаляется от точки 0. Заметим, что наклоны кривых растут в точке @; 1). Из математического анализа известно, что вторая производная показывает, куда вогнута кривая: вверх или вниз. Изучение кривизны1 показывает, что если две кривые у = f(x) и у = д(х) ¦Кривизна К графика у = f(x) в точке (хо; г/о) определяется соотношением К = |///(гсо)|/A + [/'(*о)]2K/2.
4.1. Ряды Тейлора и вычисление функций 215 Рис. 4.3. Графики у = ех и обладают свойством, что /(ж0) = 9(яо),/'(хо) = ^'(^o) и /"(яо) = з'Ч^о), то они имеют одинаковую кривизну в точке хо- Это свойство следует требовать для полиномиальных функций, которые приближают /(#). В следствии 4.1 показано, что полиномы Тейлора имеют эти свойства при N > 2. Следствие 4.1. Если Pn{%) полином Тейлора степени АГ, заданый в теореме 4.1, то F) = /(fc)(a;o) Для fc = O, 1, ..., N. Доказательство. Подставим х = xq в выражения B) и C) и получим Pjv(#o) = = /(яо). Таким образом, соотношение F) выполняется для к = 0. Сейчас возьмем производную от выражения, стоящего справа в B), и получим G) Подставим ж = хо в G), чтобы получить Р^(#о) = /;(яо). Таким образом, со- соотношение F) справедливо для к = 1. Последовательным дифференцированием соотношения G) устанавливаем другие тождества в F). Детальное рассмотрение доказательства оставляем читателю в качестве упражнения. • Применяя следствие 4.1, видим, что у — Рг(^) обладает свойствами /(#о) = = ^М^о), /'(^о) = -RK^o) и /" (хо) = P^xq), поэтому графики имеют одинако- одинаковую кривизну в точке xq. Например, рассмотрим f(x) = ех и Рг(ж) = 1+х+х2/2. Их графики изображены на рис. 4.4, и оказывается, что они одинаково изгибаются вверх в точке @; 1).
216 Глава 4. Интерполяция и приближение полиномами Рис. 4.4. Графики кривых у = ех и у = Р2(х) = = ! + * + х2/2 В теории приближений часто пытаются найти точное полиномиальное при- приближение к аналитической функции2 f(x) на [а; 6]. Один из методов включен в усовершенствованную версию программного обеспечения компьютеров. Точность полинома Тейлора увеличивается, когда ЛГ выбирают большим. Точность любо- любого заданного полинома обычно будет уменьшаться по мере того, как значение х удаляется от центра xq. Поэтому следует выбрать N достаточно большим и огра- ограничить максимальное значение |ж—а?о| так, чтобы ошибка не превышала заданной грани. Если выбрать интервал шириной 2R и xq в центре (т .е. \х — xq\ < R), то абсолютная ошибка будет удовлетворять соотношению (8) |ошибка| = |Ялг(*)| < где M<max{\f(N+l)(z)\ : xo—R<z<xq+R}. Если N фиксировано и производные равномерно ограничены, то грань ошибки в (8) пропорциональна RN+l/(N+1I и убывает, если Д стремится к нулю, как только ЛГ становится большим. В табл. 4.3 показано, как выбор этих двух параметров влияет на точность приближения ех « « Pn(z) на интервале \х\ < R. Ошибка наименьшая, когда ЛГ — наибольшее иД- самое малое. Графики для Рг> Рз и Ра приведены на рис. 4.5. Пример 4.2. Установим грань ошибки приближения ех « Ps(x) на каждом из интервалов \х\ < 1,0 и \х\ < 0,5. 2Функция f(x) является аналитической в точке хо, если она имеет непрерывные производные всех порядков и ее можно представить в виде ряда Тейлора на интервале, содержащем точку хо.
4.1. Ряды Тейлора и вычисление функций 217 Таблица 4.3. Значения для грани ошибки (ошибка] < eRRN+x/(N 4* 1)!, использующие приближение ех « Pn(x) для \х\ < R R = 2,0, |х| < 2,0 Л =1,5, \х\ < 1,5 R = 1,0, \х\ < 1,0 Я = 0,5, |ж|<0,5 ( е*«Р7(х) ех«Р8(х) 0,65680499 0,18765857 0,04691464 0,01042548 0,07090172 0,01519323 0,00284873 0,00047479 0,00377539 0,00053934 0,00006742 0,00000749 0,00003578 0,00000256 0,00000016 0,00000001 У = е* ,у = Ра(х) У = А(«) Рис. 4.5. Графики у = еж, у = Ръ(х) у = ), и Если |rr| < 1,0, то, предполагая, что R = 1,0 и |/(9)(с)| ='|ес| < е1'0 = М в (8), получаем |ошибка| = \Es(x)\ < ' » 0,00000749. Если |я?|<0,5,то,полагая R = 0,5 и |/(9)(с)| = |ес| <е°>5 = Мв(8),получаем, что |ошибка| = 0,00000001. Пример 4.3. Если f(x) = еж, покажем, что ЛГ = 9 — наименьшее целое число, такое, что |ошибка| = \En(x)\ < 0,0000005 для х на интервале [—1;1]. Значит, Pg(z) можно использовать для вычисления приближения значений ех с точностью 6 десятичных знаков. Необходимо найти наименьшее целое число N, такое, что |ошибка| = \EN{x)\ 0,0000005.
218 Глава 4. Интерполяция и приближение полиномами Зх 10 -7 2х 10 1 xlO" -7 -1,0 -0,5 0,0 У = Ед(х) 0,5 1,0 Рис. 4.6. График ошибки = Е9(х) = е* - Р9(х) В примере 4.2 показано, что N = 8 также мало, поэтому попытаемся взять JV = 9 и обнаружим, что \EN(x)\ < ег{1)9+1/(9 +1)! < 0,000000749. Это значение несущественно больше, чем требуется, поэтому должен быть подходящим выбор N = 10. Но неравенство ес < е1 использовалось в качестве грубой оценки для нахождения грани ошибки. Поэтому 0,000000749 немного больше, чем истинная ошибка. На рис. 4.6 показан график Е$(х) = ех — Р${х). Отметим, что максимум вертикальной линии равен приблизительно 3 х 10~7 и достигается справа от точки A;??9A)). Действительно, максимальное значение ошибки на интервале равно ЕдA) = 2,718281828 - 2,718281526 » 3,024 х 10~7. Поэтому значение N = 9 обеспечивает нужную точность. ¦ Методы вычисления полиномов Существует несколько математически эквивалентных методов вычисления по- полинома. Рассмотрим, например, функцию (9) /(х) = (а:-1)8. Для вычисления / требуется использовать экспоненциальную функцию. Или мож- можно использовать биномиальную формулу, чтобы разложить f(x) по степеням х: fc=0 = х8 - Sx7 + 28s6 - 56ж5 + 70ж4 - 56а;3 + 28ж2 - 8а; + 1. Сейчас можно использовать метод Горнера (см. раздел 1.1), который также на- называют методом вложенных умножений, для вычисления полинома в A0). С помощью вложенных умножений соотношение A0) можно записать следующим
4.1. Ряды Тейлора и вычисление функций 219 образом: A1) f{x) = (((((((я - 8)х + 28)х - 56)х + 70)ж - 56)я + 28)я - 8)х + 1. Чтобы вычислить /(#), сейчас потребуется 7 умножений и 8 сложений или вычитаний. Необходимость использования экспоненциальной функции для вы- вычисления полинома можно исключить. Закончим этот раздел теоремой, которая связывает ряд Тейлора в табл. 4.1 и полиномы Тейлора из теоремы 4.1. Теорема 4.2 (ряды Тейлора). Предположим, что f(x) аналитическая и име- имеет непрерывные производные всех порядков N = 1, 2,... на интервале (а;6), содержащем xq. Предположим, что полиномы Тейлора B) стремятся к пределу A2) S(x) ш lim PN(x) = lim ? ^^(х - хо)к. N-юо ЛГ-юо f—' kl Тогда f(x) можно разложить в ряд Тейлора аз) /w Доказательство, Это непосредственно следует из определения сходимости ря- рядов (см. раздел 1.1). Предельное условие часто формулируется следующим обра- образом: величина ошибки должна стремиться к нулю, когда N стремится к беско- бесконечности. Таким образом, необходимым и достаточным условием для выполне- выполнения A3) является (.О где с зависит от N и х. Упражнения к разделу 4.1 1. Пусть f(x) = sin(x). Примените теорему 4.1. (a) Используйте xq == 0 и найдите Рь(х), Pj(x) и (b) Покажите, что если \х\ < 1, то приближение . , ч хг хь х7 х9 sm(x)*x-- + --- + - имеет ошибку, ограниченную значением |2?9(я)| < 1/10! < 2,75574 х х Ю-7. (c) Используйте xq = тг/4 и найдите Рь(х)9 который содержит степени (х — - тг/4).
220 Глава 4. Интерполяция и приближение полиномами 2. Пусть /(х) = cos (ж). Примените теорему 4.1. (a) Используйте xq = 0 и найдите Ра(х), Pq(x) и Р$(х). (b) Покажите, что если \х\ < 1, то приближение , ч , X2 Ж4 X6 XS имеет ошибку, ограниченную значением |??e(^)| < 1/9!<2,75574х 10~6. (с) Используйте xq = тг/4 и найдите Р±(х), который содержит степени (х — -тг/4). 3. Можно ли разложить в ряд Тейлора в окрестности точки хо = 0 функцию f(x) = х1/2? Обоснуйте свой ответ. Можно ли разложить в ряд Тейлора в окрестности точки xq = 1 функцию /(ж) = я1/2? Обоснуйте свой ответ. 4. (а) Найдите полином Тейлора степени N = 5 для разложения в окрестности ТОЧКИ Xq = 0 фуНКЦИИ /(х) = 1/A + х). (Ь) Найдите значение ошибки Е^(х) для полинома из п. (а). 5. Найдите полином Тейлора степени N = 3 для разложения в окрестности точки хо = 0 функции /(х) = е~х /2. 6. Найдите полином Тейлора степени N = 3, Рз(я) для разложения в окрестно- окрестности точки хо = 1 функции/(х) = х3-2х2 + 2х. Покажите, что/(х) = Р${х). 7. (а) Найдите полином Тейлора степени N = 5 для разложения в окрестности точки хо = 4 функции /(х) = х1/2. (b) Найдите полином Тейлора степени N = 5 для разложения в окрестности точки хо = 9 функции /(х) = х1/2. (c) Определите, какой из полиномов пп. (а) и (Ь) будет лучшим приближе- приближением для F,5)*/2. 8. Используйте /(х) = B + хI/2 и примените теорему 4.1. (a) Найдите полином Тейлора Рз(#) разложения в окрестности точки хо = = 2. (b) Используйте Рз(х), чтобы найти приближение к З1/2. (c) Найдите максимальное значение |/^4^(с)| на интервале 1 < с < 3 и грань для |#з(я)|. 9. Определите степень полинома Тейлора Рлг(х) разложения в окрестности точ- точки хо = 0, который следует использовать для такого приближения е0'1, чтобы ошибка была меньше, чем 10~6. 10. Определите степень полинома Тейлора Pn(x) разложения в окрестности точ- точки хо = тг, который следует использовать для такого приближения cosC37r/32), чтобы ошибка была меньше, чем 10~~6.
4.1. Ряды Тейлора и вычисление функций 221 11. (а) Найдите полином Тейлора степени N = 4 для разложения в окрестности точки жо = 0 функции F(x) = J* j cos(t2) dt. (b) Используйте полином Тейлора для приближения -Р@,1). (c) Найдите грань ошибки приближения в п. (Ь). 12. (а) Используйте геометрический ряд J == * ""х* + х* ~~ х* + х% для W < !» X *т* Ж и проинтегрируйте почленно обе части, чтобы получить ах^ап(ж) = ж — — + — ~-Н для |ж| < 1. о о 7 (Ь) Используйте соотношение 7г/6 = axctanC~1/2) и ряд из п. (а), чтобы показать, что (с) Используйте ряд из пункта (Ь), чтобы вычислить 7г с точностью 9 знаков. Факт, тг«3,141592653589793284.... 13. Используйте функцию /(ж) = 1пA + ж) и жо = 0 и примените теорему 4.1. (a) Покажите, что /^(ж) = (—l)fc((fe — 1)!)/A + ж)*. (b) Покажите, что полином Тейлора степени N имеет вид г Х2 Х3 Ж4 <_Л\К-\„Ы Ptf(*)=*-- + --- + ...+ 2 3 4 N (с) Покажите, что значение ошибки для Pn(x) равно (d) Вычислите Рз@,5), Рб@,5) и Рд@,5). Сравните с 1пA,5). (e) Покажите, что если 0,0 < ж < 0,5, то приближение х2 х3 х7 х8 х9 имеет ошибку, ограниченную значением \Е$\ < 0,00009765
222 . Глава 4. Интерполяция и приближение полиномами 14. Биномиальный ряд. Пусть f(x) = A + х)р и xq = 0. (a) Покажите, что f(k\x) = р(р - 1) • • • (р - к + 1)A + х)р~к. (b) Покажите, что полином Тейлора степени N имеет вид (c) Покажите, что EN(x) = р(р - 1) • • • (р - АГИ+1/(A + с)^1""^ + 1)!). (d) Положите р = 1/2 и вычислите Р2@,5), Р4@,5) и Ре@,5). Сравните с (e) Покажите, что если 0,0 < х < 0,5, то приближение ч1/о , а: ж2 ж3 5ж4 7х5 имеет ошибку, ограниченную величиной \Е&\ < @,5NB1/1024) = 0,0003204.... (f) Покажите, что если р = N — положительное целое число, то PN(x) = 1 + Nx+ N{N~ 1)x2 +¦¦¦ + Nx»-1 + xN. Заметим, что это хорошо известное биномиальное разложение. 15. Найдите такое с, что jl&il < Ю~6, как только \х — хо| < с, для следующих функций. (a) Пусть f(x) = cos(x) и xq = 0. (b) Пусть f(x) = sin(a;) ижо = тг/2. (c) Пусть f(x) = еж и хо = 0. 16. (а) Предположим, что у = /(#) — четная функция (т. е. /(—х) = /(ж) для всех х в области определения /). Что вы можете сказать о Рдг(ж)? (Ь) Предположим, что у == f(x) — нечетная функция (т. е. f{—x) = — /(я) для всех rr в области определения /). Что вы можете сказать о 17. Пусть у = /(я) — полином степени N. Пусть /(жо) > 0 и f(NHxo) > 0. Покажите, что все действительные корни функции / мень- меньше, чем xq. Указание. Представьте / в виде полинома Тейлора степени N в окрестности точки xq.
4.1. Ряды Тейлора и вычисление функций 223 18. Пусть f(x) = ех. Используйте теорему 4.1, чтобы найти Pn(x) для N = 1, 2, 3,..., разложения в окрестности точки хо = 0. Покажите, что каждый дей- действительный корень Pn(x) имеет кратность, меньшую единицы или равную ей. Примечание. Если р — корень полинома Р(х) кратности М, то р — корень полинома Р'(х) кратности М — 1. 19. Завершите доказательство следствия 4.1, записав выражение для Р^(х) и показав, что Р$\х0) = /(fc)(*o) для к = 2, 3, ..., N. Упр. 20 и 21 являются доказательством теоремы Тейлора. 20. Пусть g(t) и ее производные g^{t), к = 1, 2,..., N + 1, непрерывны на интервале (а, 6), содержащем хо- Предположим, что существуют две такие различные точки х и хо, что д(х) = 0 и р(хо) = ^'(^о) = • • -9^NHxo) = 0. Докажите, что существует такое значение с, которое лежит между xq и х, что Примечание. Заметим, что функцию g(t) от ? и значения х я х$ можно рассматривать как константы относительно переменной t. Указание. Используйте теорему Ролля (теорема 1.5, раздел 1.1) на интерва- интервале, ограниченном точками xq и я, чтобы найти такое число с\9 что д'(с\) = 0. Затем примените теорему Ролля к функции g'(t) на интервале, ограниченном точками хо и с\9 чтобы найти такое число С2, что дп{с2) = 0. Повторяйте по индукции этот процесс до тех пор, пока не найдете такое число с^+ъ что 21. Используйте результаты упр. 20 и специальную функцию где Pn{x) — полином Тейлора степени N, чтобы доказать, что ошибка = f(x) - Pn(x) имеет вид Указание. Найдите g(N+l^(t) и вычислите его при t = с. Алгоритмы и программы Способ построения матриц в пакете MATLAB позволяет быстро вычислять функции от большого числа переменных. Если Х=[-1 0 1], то sin(X) записыва- записывается как [sin(-l) sin@) sinA)]. Аналогично, если Х=-1:0.1:1, то Y=sin(X)
224 Глава 4. Интерполяция и приближение полиномами записывается как матрица Y такого же размера, как X со значениями, соответству- соответствующими синусам. Эти две матрицы-строки могут быть показаны в виде таблицы согласно определению матрицы D = [X * Y * ]. (Примечание. Матрицы X и Y долж- должны быть одинакового размера.) 1. (а) Используйте команду plot, чтобы построить графики функций sin(x), Ръ(х), Pi{x) и Р$(х) из упр. 1 на одном и том же графике на интервале -1<ж<1. (Ь) Постройте матрицу, в столбцах которой содержатся значения sin(rr), Рь{х), Pi{x) и Р${х), вычисленные в 10 одинаковых точках х из ин- интервала [—1; 1]. 2. (а) Используйте команду plot, чтобы построить графики функций cos(x), Р\{х), Ре(х) и Р&(х) из упр. 2 на одном и том же графике на интервале -1<я<1. (Ь) Постройте матрицу, столбцы которой содержат значения cos(rc), Ра(х), Ре(х) и Р&(х)9 вычисленные в 19 одинаковых точках х из интервала [-1; 1]. 4.2. Введение в интерполяцию В разделе 4.1 показано, как можно использовать полином Тейлора для прибли- приближения функции f(x). Необходимыми данными для построения полинома Тейлора являются значение функции / и ее производных в точке хо. Недостаток состоит в том, что должны быть известны производные высокого порядка и часто они либо неизвестны, либо сложны для вычислений. Предположим, что функция у = f(x) известна в ЛГ + 1 точке (яо;Уо)»---, (ад; Vn), где значения эд принадлежат интервалу [а; 6] и удовлетворяют условиям а < хо < х\ < • • • < xn < b и yk = f(%k)- Можно построить полином Р(х) степени N, чтобы он проходил через эту N + 1 точку. Для построения полинома необходимы только численные значения я* и yk. Поэтому в производных высоких порядков нет необходимости. Полином Р(х) можно использовать для приближения f(x) на всем интервале [а; 6]. Тем не менее, если требуется найти функцию ошибки Е(х) = f(x) - Р{х)9 необходимо, чтобы была известна f(N+l\x) и грань ее значения, т. е. М = шах{|/^+1>(я?)| : a < х < Ь}. В статистическом и научном анализе возникают ситуации, когда функция у ~ = f(x) известна только в N + 1 расположенных в виде таблицы точках (х^Ук) и необходим метод для приближения f(x) в незатабулированных абсциссах. Если
4.2. Введение в интерполяцию 225 существует значительное количество ошибок в табличных значениях, то следует пользоваться методом подгонки кривой из главы 5. С другой стороны, если точки {хк\Ук) известны с высокой степенью точности, то можно рассматривать поли- полиномиальную кривую у = Р(х), которая проходит через них. Когда хо < х < xn, приближение Р(х) называется значением интерполяции. Если либо х < хц, либо хм < х, то Р(х) называют значением экстраполяции. Полиномы исполь- используются для составления схем алгоритмов для программного обеспечения для при- приближения функций, численного дифференцирования, численного интегрирования и рисунков кривых на компьютере, которые должны проходить через заданные точки. Напомним вкратце как вычислять полином Р(х): A) Р(х) = aNxN + aN-ixN~l + • • • + а2х2 + агх + а0. Эффективным методом вычисления Р(х) является метод Горнера. Производная Р'(х) равна B) Р'(х) = NaNxN~l + (N~ l)aN-ixN~2 + • - - + 2а2х + аг и неопределенный интеграл I(x) = J P(x) dx, который удовлетворяет равенству Г(х) = Р(х), имеет вид J где С — постоянная интегрирования. В алгоритме 4.1 (см. раздел 4.2) показано, как приспособить метод Горнера к вычислению Р'(х) и 1{х). Пример 4.4. Полином Р{х) = — 0,02ж3 + 0,2ж2 — 0,4ж + 1,28 проходит через четыре точки: A; 1,06), B; 1,12), C; 1,34) и E; 1,78). Найдем (а) РD), (Ь) Р'D), (с) Jj P(x)dx и (d) PE,5). Наконец, (е) покажем, как найти коэффициенты Р(х). Воспользуемся алгоритмом 4.1(i)-(iii) (что эквивалентно процессу, приведен- приведенному в табл. 1.2) с х = 4. (a) Ь3 = аз = -0,02 &2 = а2 + Ь3х = 0,2 + (-0,02)D) = 0,12 Ъ1=а1 + Ъ2х = -0,4 + @,12)D) = 0,08 Ь0 = а0 + hx = 1,28 + @,08) D) = 1,60. Значение интерполяции равно РD) = 1,60 (рис. 4.7(а)). (b) d2 = За3 = -0,06 dx = 2а2 + d2x = 0,4 + (-0,06)D) = 0,16 d0 = oi + dxx = -0,4 + @,16) D) = 0,24.
226 Глава 4. Интерполяция и приближение полиномами у 2,0 1,5 1,0 0,5 0,0 D;РD)) E,5;РE,5)) г = Р(х) Рис. 4.7. (а) Приближающий по- полином Р(х) можно использо- использовать для интерполяции в точке D; РD)) и экстраполяции в точке E,5;РE,5)) Касательная имеет тангенс угла наклона Р'D) 2,0 1,5 1,0 0,5 0,0 Рис. 4.7. (Ь) Приближающий по- полином Р(х) дифференцируется, и Р'(х) используется, чтобы найти тангенс угла наклона в точке ин- интерполяции D; РD)) Численная производная равна Р'D) = 0,24 (рис. 4.7(Ь)). (с) и = -г = -О.005 4 iz = ^ + i4X = 0,06666667 + (-0,005) D) = 0,04666667 г2 = у +г3ж = -0,2 + @,04666667) D) = -0,01333333 h = ao + i2x = 1,28 + (-0,01333333) D) = 1,22666667 г0 = 0 + чх = 0 + A,22666667) D) = 4,90666667. Поэтому /D) = 4,90666667. Аналогично /A) = 1,14166667. Следовательно, Jj P(x) dx = 1D) - 1A) = 3,765 (рис. 4.8). (d) Используем алгоритм 4.1(i) ci = 5,5. b3 = а3 = -0,02 6з = а2 + Ьгх = 0,2 + (-0,02) E,5) = 0,09 bl=ai + b2x = -0,4 + @,09) E,5) = 0,095 Ъо = ао + Ьхх = 1,28 + @,095)E,5) = 1,8025. Значение экстраполяции равно РE,5) = 1,8025 (см. рис. 4.7(а)). (e) Для нахождения коэффициентов можно воспользоваться методами, описанны- описанными в главе 3. Предположим, что Р(х) = А + Вх + Сх2 + Dx3; тогда для каждого
4.2. Введение в интерполяцию 227 2,0 1,5 1,0 0,5 0,0 У = Р(х) I 1 2 Рис. 4.8. Приближающий по- полином Р(х) интегрируем, и его первообразная функция исполь- х зуется для нахождения области под кривой для I < х < 4 D) значения х = 1,2,3 и 5 получаем линейные уравнения, включающие А% 5, С и D. При х = 1, А + 15+ 1С+ 12? = 1,06; при о: = 2,4 + 25 + 4С+ 8D = 1,12; при х = 3, А + 35 + 9С + 27?> = 1,34; при х = 5, А + 55 + 25С + 125D = 1,78. Решением системы D) является А = 1,28, 5 = -0,4, С = 0,2 и D = -0,2. ¦ Методы нахождения коэффициентов математически логичны, но иногда мат- матрицы сложно поддаются точному вычислению. В этой главе составлены особые алгоритмы для полиномов. Возвратимся к разделу, в котором полином используется для вычисления при- приближения известной функции. Из раздела 4.1 видно, что полином Тейлора пятой степени для f(x) = ln(l + х) равен E) хг х5 Если использовать Т(х), чтобы приблизить 1пA+#) на интервале [0; 1], то ошибка равна 0 при х = 0 и наибольшая, когда х = 1 (см. табл. 4.4). Возможно, что разница между ГA) и правильным значением 1пA) равна 13%. Ищем полином пятой степени, который будет лучше приближать 1пA + х) на интервале [0; 1]. Полином Р(х) в примере 4.5 является интерполирующим и будет приближать 1пA + х) на интервале [0; 1] с ошибкой, не большей 0,00002385. Пример 4.5. Рассмотрим функцию f(x) = ln(l + х) и полином Р{х) = 0,02957206а;5 - 0,12895295а;4 + 0,28249626а;3- - 0,48907554а;2 + 0,99910735а;,
228 Глава 4. Интерполяция и приближение полиномами Таблица 4.4. Значения полинома Тейлора Т(х) пятой степени, функции 1пA + х) и ошибки 1пA + х) - Т(х) на [0; 1] 0,0 0,2 0,4 0,6 0,8 1,0 Полином Тейлора, Т(х) 0,00000000 0,18233067 0,33698133 0,47515200 0,61380267 0,78333333 Функция, 1пA + я) 0,00000000 0,18232156 0,33647224 0,47000363 0,58778666 0,69314718 Ошибка, \пA+х)-Т(х) 0,00000000 -0,00000911 -0,00050909 -0,00514837 -0,02601601 -0,09018615 Таблица 4.5. Значения приближающего полинома Р(х) из примера 4.5, функции f(x) = ln(l + х) и ошибки Е(х) на [-0,1; 1,1] 1* *> -од 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1,0 1,1 Приближение полиномом, В(х) -0,10509718 0,00000000 0,09528988 0,18232156 0,26237015 0,33647224 0,40546139 0,47000363 0,53063292 0,58778666 0,64184118 0,69314718 0,74206529 Функция, /(*) = 1пA + *) -0,10536052 0,00000000 0,09531018 0,18232156 0,26236426 0,33647224 0,40546511 0,47000363 0,53062825 0,58778666 0,64185389 0,69314718 0,74193734 Ошибка, ВД = /(*)-Р(х) -0,00026334 0,00000000 0,00002030 0,00000000 -0,00000589 0,00000000 0,00000372 0,00000000 -0,00000467 0,00000000 0,00001271 0,00000000 -0,00012795 основанный на шести узлах х^ = к/Ъ для к = 0,1,2,3,4 и 5. Дадим эмпирическое описание приближения Р(х) «1пA + х). 1. P(xk) = f(xk) в каждом узле (см. табл. 4.5). 2. Максимальная ошибка на интервале [—0,1; 1,1] достигается в х = —0,1 и |ошибка| < 0,00026334 для -0,1 < х < 1,1 (рис. 4.10). Поэтому график у = = Р(х) кажется идентичным графику у = In A + х) (см. рис. 4.9). 3. Максимальная ошибка на интервале [0; 1] достигается в х = 0,06472456 и (ошибка) < 0,00002385 для 0 < х < 1 (см. рис. 4.10). Замечание. В узлах я* получаем, что f{xk) = P{xk). Поэтому ошибка в узлах равна E(xjc) = 0. График Е(х) = f(x) — P(x) выглядит подобно колеблющейся строке с узлами, расположенными на абсциссе, где нет смещения. ¦
4.2. Введение в интерполяцию у 0,6 0,4 0,2 у = 1пA + х) 0,0 0,2 0,4 0,6 0,8 1,0 229 Рис. 4.9. График у = Р(х), х "который лежит на вершинах" графика у = 1пA + х) 0,00002 У = Е(х) 0X^/0,4 0,6^ 0,8 110 -0,00002 -0,00004 Рис. 4.10. График ошибки у = Е(х) = 1пA + х) -Р(х) Алгоритм 4.1 (вычисление полинома). Вычисление полинома Р(х), его про- производной Pf(x) и интеграла J P(x) dx посредством искусственного деления. BBORN вводе ВВОД* {Степень Р(х)} {Коэффициенты Р{х)} {Постоянная интегрирования} {Независимая переменная}
230 Глава 4. Интерполяция и приближение полиномами (i) Алгоритм вычисления Р(х) B(N) := A(N) FOR К = N - 1 DOWNTO 0 DO Б(АГ) := A(K) + Б(ДГ 4-1) * X PRINT "Значение" Р(х), Б@) (ii) Алгоритм вычисления Р'{х) D(N - 1) := N * A(iV) FOR К = AT - 1 DOWNTO 1 DO jD(a: -1) := к * а(аг) + ?>(!<:) * л: PRINT "Значение" P'(x), D@) (iii) Алгоритм вычисления 1(х) I(N + l):=A(N)/(N + l) FOR К = AT DOWNTO 1 DO /(/С):=Л(АГ-1)/АГ + /(А: + 1)*Х /@) := С + /A) * X PRINT "Значение" 1(х), 1@) Версия экономной записи: Poly := A(N) FOR К = N - 1 DOWNTO 0 DO Poly := A(K) + Poly * Ar PRINT "Значение" Р(ж), Poly Версия экономной записи: Deriv := N * A(N) FOR К = AT - 1 DOWNTO 1 DO Deriv := AT * A(K) + Deriv * X PRINT "Значение" Р'(х), Deriv Версия экономной записи: Integ := A(N)/(N + 1) FOR К = N DOWNTO 1 DO Integ := A(K - l)/К + Integ * X Integ := С + Integ * X PRINT "Значение" 7(x), Integ Упражнения к разделу 4.2 1. Рассмотрите кривую Р(х) = —0,02а:3 4- 0,1ж2 — 0,2# +1,66, которая проходит через четыре точки: A; 1,54), B; 1,5), C; 1,42) и E; 0,66). (a) Найдите РD). (b) Найдите Р*D). (c) Найдите определенный интеграл от Р(х) на интервале [1;4]. (d) Найдите значение экстраполяции РE,5). (e) Покажите, как найти коэффициенты Р(х). 2. Рассмотрите кривую Р(х) = — 0,04я3 + 0,14л;2 — 0,16ж + 2,08, которая про- проходит через четыре точки: @; 2,08), A; 2,02), B; 2,00) и D; 1,12). (a) Найдите РC). (b) Найдите Р'C). (c) Найдите определенный интеграл от Р(х) на интервале [0; 3]. (d) Найдите значение экстраполяции РD,5). (e) Покажите, как найти коэффициенты Р(х). 3. Рассмотрите кривую Р(х) = -0,0292166667я3 + 0,275я2 - 0,570833333х - — 1,375, которая проходит через четыре точки: A; 1,05), B; 1,10), C; 1,35) и E;1,75). (a) Покажите, что ординаты 1,05; 1,10; 1,35 и 1,75 отличаются от ординат примера 4.4 меньше, чем на 1,8%; несмотря на это коэффициенты при х3 и х отличаются более чем на 42%. (b) Найдите РD) и сравните результат с примером 4.4. (c) Найдите Р'D) и сравните результат с примером 4.4.
4.2. Введение в интерполяцию 231 (d) Вычислите определенный интеграл от Р(х) на интервале [1;4] и срав- сравните результат с примером 4.4. (e) Найдите значение экстраполяции РE,5) и сравните результат с приме- примером 4.4. Замечание. В п. (а) показано, что вычисление коэффициентов интерполяци- интерполяционного полинома является плохо обусловленной задачей. Алгоритмы и программы 1. Напишите программу в MATLAB, которая обеспечит выполнение алгорит- алгоритма 4.1. В программе следует записывать коэффициенты полинома Р(х) = = a^xN + ax-ixN~l H h a^x1 + a\x + clq в виде матрицы размера 1 х TV: Р = [адг CLN-i ••• о>2 Q>\ ao]. 2. Для каждой заданной функции полином пятой степени Р(х) проходит через шесть точек: @;/@)), @,2;/@,2)), @,4;/@,4)), @,6;/@,6)), @,8;/@,8)), A; /A)). Шесть коэффициентов Р(х) равны ао> аъ • • • > а5» гДе Р(х) = а$хъ + а±х* + а^х3 + п2Х2 + а\х + clq. (i) Найдите коэффициенты Р(х), решив систему линейнцх уравнений 6x6 а0 + а\х + п2Х2 + азх3 + а±хА + а$хъ = f(xj) использовав Xj = (j — 1)/5 и j = 1, 2, 3, 4, 5, 6 для шести неизвестных L (ii) Воспользуйтесь своей MATLAB-программой для решения задачи 1, что- чтобы вычислить интерполяцинные значения Р@,3); Р@,4) и Р@,5), и сравните их соответственно с /@,3); /@,4) и /@,5). (iii) Воспользуйтесь своей MATLAB-программой, чтобы вычислить значе- значения экстраполяции Р(—0,1) и РA,1), и сравните их соответственно с /(-ОД) и/A,1). (iv) Воспользуйтесь своей MATLAB-программой, чтобы вычислить инте- интеграл от Р(х) на интервале [0; 1], и сравните с интегралом от f(x) на интервале [0; 1]. Постройте графики f(x) и Р(х) на интервале [0; 1] в одной и той же системе координат. (v) Постройте таблицу значений Р(ж*), f(xk) и E(xk) = f(xk) - Р{%к)> где хк = fc/100 для к = 0,1,..., 100. (a) f(x) = ex (b) f(x) = sin(x) (c) /(ж) = (х + 1)(ж+1)
232 Глава 4. Интерполяция и приближение полиномами 3. Часть аллеи парка моделируется с использованием трех полиномов. Первый отрезок — полином первой степени, Р\(х)9 который охватывает расстояние, равное 100 футам, начиная с высоты 110 футов и заканчивая высотой 60 фу- футов. Третий отрезок также является полиномом первой степени, Q\(x), и покрывает расстояние по горизонтали 50 футов, начиная с высоты 65 футов и заканчивая высотой 70 футов. Средний участок — также полином, Р(х) (наименьшей возможной степени), который покрывает расстояние по гори- горизонтали 150 футов. (a) Найдите такие выражения для Р{х), Р\(х) и Q\(x), что Р(ЮО) = = PiA00), Р'(Ю0) = Р{(Ю0), PB50) = QiB50) и Р;B50) = QiB50) и кривизна Р(х) равна кривизне Р\{х) в точке х = 100 и кривизне Qi(x) в точке х = 250. (b) Постройте графики Р\{х)9 Р(х) и Q\(x) в одной и той же системе ко- координат. (c) Используйте алгоритм 4.1(ш), чтобы найти среднюю высоту аллеи на заданном расстоянии по горизонтали. 4.3. Приближение Лагранжа Интерполирование предполагает вычисление неизвестных значений функции путем получения взвешенного среднего значения функции в известных соседних точках. При линейном интерполировании используется отрезок прямой, которая проходит через две точки. Тангенс угла наклона между точками (xq; уо) и (xi; y\) равен т = (уг — Уо)/(х\ — xq)9 и формулу, использующую тангенс угла наклона прямой в точке, у = т(х — xq) + уо, можно переписать в виде A) у = Р(х)=уо + (у1Х~Х° X\ XQ Если разложить формулу A), то в результате получим полином степени <1. Вы- Вычисляя Р(х) в точках xq и х\9 получаем соответственно точки уо и у\\ Р(хо) = Уо + (yi ~ Уо)(О) = уо, Р(х\) = Уо + (У1 ~ Уо)A) = Уь Французский математик Жозеф Луи Лагранж (Joseph Louis Lagrange) использовал для нахождения этого полинома несколько иной метод. Он отметил, что полином можно записать в виде C) п ' ч . х~хг . .. x-v* — Х\
4.3. Приближение Лагранжа 233 Каждый член в правой части C) включает линейный множитель, поэтому сум- сумма является полиномом степени <1. Обозначим отношения в C) соответственно через D) Lifi(x) = и LM(a;) = . Xq — Х\ Х\— Xq Вычисления показывают, что Li,o(#o) = 1, ?1,0(^1) = 0, Zq,i(#o) = OhjLi?i(#i) = = 1. Таким образом полином Р\(х) в C) также проходит через две данные точки: E) Pi(x0) = Уо + yi@) = уо и Р^ягх) = уо(О) + уг = уь Члены ?1,0B;) и Li7i (ж) в D) называются коэффициентами полинома Лагранжа, основанными на узлах жо и ж^ Используя это замечание, можно записать C) в виде суммы Предположим, что ордината у& вычислена по формуле у* = /(а^). Если Р\(х) используется для приближения f(x) на интервале [жо;хх], такой процесс назы- называется интерполированием. Если х < xq (или х\ < х\ то использование Р\{х) называют эстранодированием. Проиллюстрируем эти понятия на примере. Пример 4.6. Рассмотрим график у = f(x) = cos(a:) на отрезке [0,0; 1,2]. (a) Используем узлы xq = 0,0 и х\ = 1,2, чтобы построить линейный интерпо- интерполирующий полином Р\(х). (b) Используем узлы хо = 0,2 и х\ = 1,0, чтобы построить линейный полином приближения Qi{x). Используя C) с абсциссами хо = 0,0 и х\ = 1,2 и ординатами уо = cos@,0) = = 1,000000 и yi = cos(l,2) = 0,362358, получаем Рг{х) = 1,000000 *~~ 1>2 + 0,362358 ^ ~ °° 0,0-1,2 ' ^ 1,2-0,0 = -0,833333(ж - 1,2) + 0,301965(я - 0,0). Если использовать узлы xq = 0,2 и х\ = 1,0 с ординатами уо = cos@,2) = = 0,980067 и yi = cos(l,0) = 0,540302, то результатом будет Qi(rc) = 0,980067AV Уп + 0.540302 х " °'2 0,2-1,0 ' ' 1,0-0,2 = -1,225083(х - 1,0) + 0,675378(ж - 0,2).
234 Глава 4. Интерполяция и приближение полиномами У 1,0' 0,8 0,6 0,4 0,2 ^Чччч"^ у = Pi (. - - У = Нх) 1 1 1 1 1,0 0,8 0,6 0,2 У = /(*) 0,0 0,2 0,4 0,6 0,8 1,0 1,2 (а) 0,0 0,2 0,4 0,6 0,8 1,0 1,2 (Ъ) Рис. 4.11. (а) Линейное приближение у = Р\(х), когда узлы хо = 0,0 и х\ = 1,2 являются крайними точками интервала [а\Ь]. (Ь) Линейное при- приближение у = Qi(x), когда узлы хо = 0,2 и х\ = 1,0 лежат внутри интер- интервала [а; Ь] * Таблица 4.6. Сравнение f(x) = cos(x) и линейных приближений Рг(х) и Qi(x) Хк 0,0 од 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1,0 1,1 1,2 f(xk) = cos(xfc) 1,000000 0,995004 0,980067 0,955336 0,921061 0,877583 0,825336 0,764842 0,696707 0,621610 0,540302 0,453596 0,362358 Pi(xk) 1,000000 0,946863 0,893726 0,840589 0,787453 0,734316 0,681179 0,628042 0,574905 0,521768 0,468631 0,415495 0,362358 0,000000 0,048141 0,086340 0,114747 0,133608 0,143267 0,144157 0,136800 0,121802 0,099842 0,071671 0,038102 0,000000 Qi(xk) 1,090008 1,035037 0,980067 0,925096 0,870126 0,815155 0,760184 0,705214 0,650243 0,595273 0,540302 0,485332 0,430361 f(xk)-Qi(xk) -0,090008 -0,040033 0,000000 0,030240 0,050935 0,062428 0,065151 0,059628 0,046463 0,026337 0,000000 -0,031736 -0,068003 На рис. 4.11 (а) и 4.11 (b) показан график у = cos(x) и сравнение его с у = Р\(х) и у = Qi(x) соответственно. Вычисления приведены в табл. 4.6; они показывают, что у Qi(x) ошибка меньшая в точках х^ которые удовлетворяют неравенству 0,1<ж*<1,1. Наибольшая ошибка в таблице, /@,6)—Pi @,6) = 0,144157, сводится к /@,6) - Qi@,6) = 0,065151 при использовании Qi(x). ш Обобщением F) является построение полинома Pn{x) степени, не большей, чем N, который проходит через N + 1 точку (#о;Уо), (ei;j/i),. .. ,{xn]Vn) и
4.3. Приближение Лагранжа 235 i имеет вид N G) Pn (х) = ^2 VkLN,k (х), к=0 где L^fc — коэффициенты полинома Лагранжа, основанного на этих узлах: • • (ж - afr-iKa: - gfc+i) • ¦ • (ж - xN) (хк - Понятно, что члены (х — хь) и (я^ — ж*) не появляются в правой части выражения (8). Это дает возможность ввести обозначение для умножения в (8) и записать Обозначения в выражении (9) указывают, что в числителе стоит произведение линейных множителей (z—Xj)y но множитель (х—х^) не включен (или пропущен). Подобное обозначение приведено в числителе. Простые вычисления показывают, что для каждого фиксированного к коэффи- коэффициенты полинома Лагранжа Ь^^(х) обладают свойствами A0) LNJs(xj) = 1, когда j = к и LNjk(xj) = 0, когда j ф к. Используем прямую подстановку этих значений в G), чтобы показать, что кривая у = Рн(х) проходит через точки (xj] yj): A1) Pn{xj) = Чтобы показать, что Pn(x) — единственный такой полином, обратимся к фун- фундаментальной теореме алгебры, которая утверждает, что полином Т(х) степени <N имеет максимум N корней. Другими словами, если Т(х) имеет нули в (N + + 1)-й различной абсциссе, то он тождественно равен нулю. Предположим, что Pn{x) — не единственный полином и что существует другой полином Qn{x) степени <АГ, который также проходит через N + 1 точку. Запишем разность по- полиномов Т(х) = Pn(x) — Qn{x). Заметим, что степень полинома Т(х) <N и T{xj) = Pn(xj) - Qn(xj) = yj - yj = 0 для j = 0, 1, ..., N. Следовательно, Если расписать формулу G), то можно получить в результате запись, подобную C). Квадратичный интерполяционный полином Лагранжа по трем точкам (хо; уо), \xi\yi) и (х2\У2) имеет вид - (x-xi)(x-x2) , „, (х-хр)(х-х2) , лш (х - хр)(х - хг) = У0 (х хО(х - х2) + У1 (Xl + У2
236 Глава 4. Интерполяция и приближение полиномами I 0,5 -0,5 1 0,6 - 1,2 Vl,8 у = Р2\У (а) 0,5 -0,5 -« 1 1 ^- L- X 0,4 0,8 1,2 1,6V 2 V- /(*) у = (Ь) Рис. 4.12. (а) Квадратичный приближающий полином у = Р2(х), построен- построенный по узлам хо = 0,0; xi = 0,6 и х2 = 1,2. (Ь) Кубический приближающий полином у = Рз(х), построенный по узлам хо = 0,0; xi = 0,4; х2 = 0,8 и х3 = 1,2 Кубический интерполяционный полином Лагранжа по четырем точкам (жо;уо). и (а;3;уз) имеет вид г> / ч (x-xi)(x-x2)(x-x3) (x-xo)(x-x2)(x-x3) ^ ^ Ш (ХО " Хг)(Х0 - Х2)(ХО - Х3) ""¦ Щ (X! - ХО)(Х! - X2)(Xi - Х - Х2)(ХО - Х3) " Щ (X! - ХО)(Х! - - Х3) (x-xo)(x-xi)(x-x3) , д- (x-xo)(x-xi)(x-x2) —|— ^уо ^——————^———^————~—» -4— /О ' ' ( )( )( ) (х2 - хо)(х2 - Пример 4.7. Рассмотрим у = f(x) = cos(#) на интервале [0,0; 1,2]. (a) Построим квадратичный интерполирующий полином Р2{х) по трем узлам хо == 0,0; х\ = 0,6 иа?2 = 1,2. (b) Построим кубический интерполирующий полином Рг{х) по четырем узлам = 0,0; xi = 0,4; х2 = 0,8 и я3 = 1,2. Подставим хо = 0,0; xi = 0,6; Х2 = 1,2 и j/o = cos@,0) = 1, у\ = cos@,6) = = 0,825336, J/2 = cosA,2) = 0,362358 в формулу A2) и получим ftW - l^Jr^L'! + 0,825336 J^Mi^b?L+ @,0-0,6)@,0-1,2) @,6-0,0)@,6-1,2) х — 0 6) (ж — 1 2)— - 2,292599(ж - 0,0)(ж - 1,2) + 0,503275(ж - 0,0)(ж - 0,6). Подставив хо = 0,0; х\ = 0,4; хъ = 0,8; хз = 1,2 и уо = cos@,0) = 1,0; у\ = = cos@,4) = 0,921061; у2 = cos@,8) = 0,696707; у3 = cos(l,2) = 0,362358 в
4.3. Приближение Лагранжа 237 формулу A3), получим Р3(Х) = 1,оооооо ПГШ1 (ж-0,0)(ж-0,8)(ж-1,2) °'921061 '696707 @,4-0,0)@,4-0,8)@,4-1,2) (х-0,0)(х-0,4)(х-1ё) @,8-0>0)@,8-0,4)@,8-1,2) («-0,0)(х-0,4)(х-0,8) + 0,362358 = -2,604167(ж - 0,4)(ж - 0,8)(ж - 1,2)+ + 7,195789(ж - 0,0)(ж - 0,8)(ж - 1,2)- - 5,443021(ж - 0,0)(ж - 0,4)(ж - 1,2)+ + 0,943641 (ж - 0,0) (ж - 0,4) (ж - 0,8). Графики у = cos (ж) и полиномов у = РгС^О и У = Рз(х) соответственно показаны на рис. 4.12(а) и 4.12 (Ь). ¦ Остаточные члены и грани ошибок Важно понять сущность остаточного члена, когда полином Лагранжа исполь- используется для приближения непрерывной функции f(x). Он подобен остаточному члену полинома Тейлора за исключением того, что множитель (х — xq)n+1 за- заменен произведением (ж — xq)(x — xi) • • ¦ (х — х^). Это естественно, потому что интерполирование происходит точно по каждому из N+1 -у узлу ж*, где En (ж* ) = = f(xk) - PN{xk) = Ук - Ук = 0 для к = 0,1, 2,... ,N. ' Теорема 4.3 (приближение полиномом Лагранжа). Предположим, что / € 6 CN+X[a; b] и жо, х\,..., ж# G [о; Ь] — N + 1 узел. Если ж G [а; Ь], то A4) f(x) вде Рдг(ж) — полином, которым приближают /(ж): N A5) f(x) « Рлг(я Остаточный член Е^(х) имеет вид (х-жо)(ж-ж1)---(ж-жлг)/(ЛГ+1)(с) для некоторого с = с(х), лежащего на интервале [а; 6].
238 Глава 4. Интерполяция и приближение полиномами Доказательство. В качестве иллюстрации общего метода докажем A6), когда N = 1. Общий случай обсуждается в упражнении. Начнем с определения специ- специальной функции g(t): A7) (x-xo)(x-zi)' Заметим, что ж,жо и х\ — постоянные по отношению к переменной t и что g(t) принимает значение нуль в этих трех точках, т. е. д(х) = /(*) - Рг(х) - ^(«)[*1*°ц*1*|) = ^ " Ж*) " Ei(*) = О, 9Ы = /Ы - д(Х1) = f(Xl) - Предположим, что х лежит на открытом интервале (#о; #i)- Применим теорему Ролля к g(t) на интервале [#о; х] и получим такое значение do, xo < do < x, что A8) g\do) = 0. Второе применение теоремы Ролля к g(t) на отрезке [х;х\] даст такое значение d\9 х <d\ < x\9 что A9) g'(di)=O. Из равенств A8) и A9) видно, что функция gf(t) равна нулю в t = do и t = d\. Третье применение теоремы Ролля, но на этот раз к g'(t) на интервале [do;di], даст значение с, для которого B0) 5B)(с)=0. Сейчас возвратимся к формуле A7) и вычислим производные gf(t) и g"(t): B2, m = m-, В B2) используется тот факт, что Pi(t) — полином степени N = 1, поэтому ее вторая производная Р"(?) = 0. Вычисление B2) в точке t = с и использование B0) приводят к следующему результату: B3) (x-xo)(x-
4.3. Приближение Лагранжа 239 Решение B3) для Е\(х) дает результат в требуемом виде A6) для остаточного члена: B4) *(„ = (« На этом доказательство окончено. • Следующий результат относится к специальному случаю, когда узлы для по- полинома Лагранжа находятся в равномерно отстоящих одна от другой точках хь = = хо + hk для к = 0, 1, ..., N и полином Pn(%) используется для интерполиро- интерполирования только внутри интервала [xq\ xn]. Теорема 4.4 (грани ошибок для интерполирования полиномом Лагранжа, равномерно отстоящие узлы). Предположим, что функция f(x) определена на отрезке [а; Ь], который содержит равномерно отстоящие один от другого узлы я* = хъ + hk. Вдобавок предположим, что f(x) и производные от f(x) до порядка N +1 непрерывны и ограничены на специальных подынтервалах [жо; х{\9 [xq\ X2] и [яо;#з] соответственно, т. е. B5) |/(ЛГ+1)(*)| < MN+i для хо < х < xNy для N = 1, 2, 3. Остаточный член A6), относящийся к случаям N = 1, 2 и 3, имеет для своих значений полезные грани следующего вида: B6) |jE?i(х)\ < ——- справедливо для х е [#o,#i], о B7) \Е2{х)\<—-~ справедливо для хе[а?о,х2], 9v3 B8) \Ег(х)\ < 4 справедливо для х G [жо,яз]. Доказательство. Докажем B6) и оставим читателю доказательство остальных неравенств. Произведем замену переменных х — xq = t и х — х\ = t — h, тогда остаточный член Е\ (х) можно записать как B9) Ег(х) = Ei(x0 + t)= ^ В этом случае грань для производной имеет вид C0) |/B)(с)| < М2 для х0 < с < хг. Сейчас определим грань для выражения (t2 — ht), стоящего в числителе B9), обозначим этот член через Ф(?) = t2 — ht. Так как Ф'(?) = 2t — h, существует одна
240 Глава 4. Интерполяция и приближение полиномами критическая точка t = /i/2, которая является решением Ф'(?) = 0. Экстремальные значения Ф(?) на интервале [0,/i] появляются либо в крайней точке Ф@) = О, ф(Д) = о либо в критической точке Ф(/г/2) = —Л2/4. Так как последнее значение наибольшее, установлена грань для Ф(<): I — h2\ h2 C1) |Ф(*)| = \t2 - ht\ < ]—j-± = — для 0 < t < h. Используя C0) и C1), чтобы вычислить значение произведения в числителе вы- выражения B9), получим C2) | Формула B6) доказана. Сравнение точности и Значение теоремы 4.4 заключается в обосновании простого соотношения между величинами остаточных членов для линейного, квадратического и кубического интерполирования. В каждом случае грань ошибки \En(x)\ имеет двойственную зависимость от h. Во-первых, hN+l явно присутствует, так что |J5^(^)| про- пропорционален /iN+1. Во-вторых, значение Мн+и вообще говоря, зависит от Л и стремится к \f(N+1\xo)\, когда h стремится к нулю. Следовательно, как только h стремится к нулю, \Е^(х)\ сходится к нулю с такой же скоростью, с какой /iN+1 сходится к нулю. Обозначение O(hN+l) уже использовалось ранее. Например, грань ошибки B6) можно записать как |JE?i(a:)| = O(h2) справедливо для х Е [xo,a;i]. Обозначение O(h2) стоит вместо h2M2/S в соотношении B6) и обозначает, что грань остаточного члена приближенно кратна /i2, т. е. Отсюда следует, что если производная f(x) постоянно ограничена на интервале \h\ < 1, то, выбирая N большим, делаем hN+l малым, и приближающий полином высокого порядка будет давать малую ошибку. Пример 4.8. Рассмотрим у = f(x) = cos(#) на интервале [0,0; 1,2]. Воспользу- Воспользуемся формулами B6)-B8) и определим грани ошибок для полиномов Лагранжа Р\(х)9 Р2(х) и Рз(х), которые построены в примерах 4.6 и 4.7.
4.3. Приближение Лагранжа 241 Сначала определим грани Мг,Мз и М^ для производных \f^(x)\, \f^(x)\, и |/D)(ж)| соответственно, взятых на интервале [0,0; 1,2]: \ = |-cos(x)| < |-cos@,0)| = 1,000000 = М2, (а:)| = |sin(x)| < |sin(l,2)| =0,932039 = М3, | = | cos(a;)| < | cos@,0)| = 1,000000 = М4. Для Pi (ж) промежуток между узлами равен h = 1,2 и грань ошибки равна C3) №W|<^< (i^iMooooo) =О)ШООа 8 - 8 Для Р2{х) промежуток между узлами равен h = 0,6 и грань ошибки равна h3M3 ^ @,6K @,932039) C4) < 9\/3 = 0,012915. Для Рз(х) промежуток между узлами равен h = 0,4 и грань ошибки равна C5) =0,001067. Из примера 4.6 видно, что |?7Х@,6)| = | cos@,6) - Р\@,6)| = 0,144157, поэтому грань 0,180000 в C3) приемлема. График функций ошибок ??2 (я) = cos(rr)—Рг(^) и Е$(х) = cos(x) — Рз(^) изображен на рис. 4.13(а) и 4.13 (Ь), соответственно, и вычисления приведены в табл. 4.7. Воспользуемся значениями из таблицы и найдем, что значения |?2A,0)| = |cos(l,0) - Р2A,0)| = 0,008416 и |Я3@,2)| = = |cos@,2) — Рз@,2)| = 0,000855 хорошо согласуются с гранями 0,012915 и 0,001607, заданными неравенствами C4) и C5) соответственно. Таблица 4.7, Сравнение f{x) = cos(x) с квадратичным приближениями и кубическим полиномами Рг(^) и Рз(я) 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1,0 1,1 1,2 f(xk) = cos(xk) 1,000000 0,995004 0,980067 0,955336 0,921061 0,877583 0,825336 0,764842 0,696707 0,621610 0,540302 0,453596 0,362358 Р2(хк) 1,000000 0,990911 0,973813 0,948707 0,915592 0,874468 0,825336 0,768194 0,703044 0,629886 0,548719 0,459542 0,362358 Е2{хк) 0,0 0,004093 0,006253 0,006629 0,005469 0,003114 0,0 -0,003352 -0,006338 -0,008276 -0,008416 -0,005946 0,0 PiiPh) 1,000000 0,995835 0,980921 0,955812 0,921061 0,877221 0,824847 0,764491 0,696707 0,622048 0,541068 0,454320 0,362358 Е2{хк) 0,0 -0,000831 -0,000855 -0,000476 0,0 0,000361 0,00089 0,000351 0,0 -0,000438 -0,000765 -0,000724 0,0
242 Глава 4. Интерполяция и приближение полиномами -0,004 - -0,008 ¦ У = Е3(х) (а) (Ь) Рис. 4.13. (а) Функция ошибки Е2(х) = cos(x) — Р2(х). (Ь) Функция ошибки Е3(х) = cos(s) - Рг(х) MATLAB Предлагаемая программа находит коллокационный полином, который прохо- проходит через заданное множество точек и построен, как вектор, элементы которого являются коэффициентами интерполирующего полинома Лагранжа. В программе используются команды poly и conv. Команда poly создает вектор, элементы ко- которого — это коэффициенты полинома с точно определенными корнями. Команда conv образует вектор, элементами которого являются коэффициенты полинома, который равен произведению двух других полиномов. Пример 4.9, Найдем произведение двух полиномов первого порядка Р(х) и Q(x) с корнями 2 и 3 соответственно. >>Р=ро1уB) Р= 1 -2 >>Q«polyC) Q- 1 -3 >>conv(P,Q) ans= 1-5 6 Произведение полиномов Р(х) и Q(x) равно х2 - Ъх + 6. ¦
4.3. Приближение Лагранжа 243 Программа 4.1 (приближение Лагранжа). Программа вычисляет полином Лагранжа Р{х) = ^к=оУк^м,к(х)> основанный на N + 1 точке {х^Ук) для к = 0, 1,..., N. function [C,L]=lagran(X,Y) •/•Вход - X - вектор абсцисс У» - Y - вектор ординат •/.Выход - С - матрица коэффициентов интерполирующего У, полинома Лагранжа У, - L - матрица коэффициентов полинома Лагранжа w=length(X); n=w-l; L=zeros(w,w); '/•Формирование коэффициентов полинома Лагранжа for k=l:n+l V=l; for j=l:n+l if k~=j V=conv(V,poly(X(j)))/(X(k)-X(j)); end end L(k,:)=V; end '/•Определение коэффициентов интерполирующего полинома '/•Лагранжа OY*L; Упражнения к разделу 4.3 1. Найдите полиномы Лагранжа, которые приближают функцию f(x) = хг. (a) Найдите линейный интерполяционный полином Pi(x), используя узлы Xq = — 1 И Х\ = 0. (b) Найдите квадратичный интерполяционный полином Рг(^), используя УЗЛЫ Xq = —1, Х\ = 0 И Х2 = 1. (c) Найдите кубический интерполяционный полином Рг(х)> используя узлы Xq = -1, Х\ = 0, Х2 = 1 И Хз = 2. (d) Найдите линейный интерполяционный полином Pi(x), используя узлы Xq = 1 И Х\ = 2. (e) Найдите квадратичный интерполяционный полином Р2(х), используя УЗЛЫ Xq = 0, Х\ = 1 И Х2 = 2.
244 Глава 4. Интерполяция и приближение полиномами 2. Пусть /(х) = х + 2/х. (a) Используйте квадратичную интерполяцию Лагранжа, построенную по узлам #о = 1> #1 = 2 и Х2 = 2,5, чтобы найти приближение к функции /A,5) и /A,2). (b) Используйте кубическую интерполяцию Лагранжа, построенную по уз- узлам гго = 0,5, х\ = 1, Х2 = 2 и х$ = 2,5, чтобы найти приближение к функции/A,5) и/A,2). 3. Пусть f(x) = 2sinGrx/6), где х задана в радианах. (a) Используйте квадратичную интерполяцию Лагранжа, построенную по узлам xq = 0, х\ = 1 и Х2 = 3, чтобы найти приближение к функции /B) и /B,4). (b) Используйте кубическую интерполяцию Лагранжа, построенную по уз- узлам хо = 0, х\ = 1, Х2 = 3 и хз = 5, для приближения к функциям /B) и /B,4). - 4. Пусть f(x) = 2sinGrx/6), где х задана в радианах. (a) Используйте квадратичную интерполяцию Лагранжа, построенную по узлам хо = 0, х\ = 1 и Х2 — 3, для приближения к функциям /D) и /C,5). (b) Используйте кубическую интерполяцию Лагранжа, основанную на узлах х0 = 0, х\ = 1, Х2 = 3 и xz = 5 для приближения функций /D) и /C,5). 5. Запишите остаточный член Е$(х) для кубического интерполирования Лагран- Лагранжа функции /(#), когда интерполирование производится точно по четырем узлам хо = — 1, х\ = 0, Х2 = 3 и х± = 4, а функция /(х) имеет следующий вид. (a) f(x) = 4х3 - Зх + 2 (b) /(х) = х4 - 2х3 (c) /(х) = х5 - 5х4 6. Пусть /(х) = хх. (a) Найдите квадратичный полином Лагранжа Рг(^M используя узлы хо = = 1, xi = 1,25 и Х2 = 1,5. (b) Используйте полином из п. (а), чтобы оценить среднее значение /(х) на интервале [1; 1,5]. (c) Используйте формулу B7) из теоремы 4.4, чтобы получить грань ошибки в приближении /(х) полиномом Р2{х). 7. Рассмотрите коэффициенты полиномов Лагранжа L2,fc(#)> которые использу- используются для квадратичного интерполирования в узлах хо, х\ и хг. Определите д(х) = L2fl(x) + L2,i(x) + L2,2(x) - 1. (a) Покажите, что д — полином степени <2. (b) Покажите, что g{xk) = 0 для fc = 0,1,2.
4.3. Приближение Лагранжа 245 (с) Покажите, что д(х) = 0 для всех х. Указание. Воспользуйтесь фунда- фундаментальной теоремой алгебры. 8. Пусть ?лг,о(#)> Lni\(x), ... и Ln}at(x) — коэффициенты полинома Лагранжа, построенного по N + 1 узлу жо, #ь • • • и xn- Покажите, что Х^?_о ^Ntk(x) = 1 для любого действительного числа х. 9. Пусть f(x) — полином степени <N. Пусть Pn(%) — полином Лагранжа степени <N, построенный по N + 1 узлу хо, х\9 ..., xn. Покажите, что f(x) = Pn(x) для всех х. Указание. Покажите, что остаточный член Е^{х) тождественно равен нулю. 10. Рассмотрите функцию f(x) = sin(x) на интервале [0; 1]. Используя теоре- теорему 4.4, определите такую длину шага h, чтобы (a) точность линейной интерполяции Лагранжа была ,1(Г6 (т. е. найдите такое h9 что |?i(:c)| < 5 х 10~7); (b) точность квадратичной интерполяции Лагранжа была 10~6 (т. е. найдите такое Л, что |??2(ж)| < 5 х 10~); (c) точность кубической интерполяции Лагранжа была 10~6 (т. е. найдите такое Л, что \Е3(х)\ < 5 х КГ7*). 11. Начните с формулы A6) и N = 2 и докажите неравенство B7). Пусть х\ = = xq + Л, Х2 = xq + 2h. Докажите, что если xq < х < Х2, то \х - хо\\х - xi\\x - х2\ < Указание. Используйте подстановки ? = # — x\,t + h = x — XQttt — h = х — Х2 и функцию v(t) = t3 — ?/i2 на интервале —h<t<h. Рассмотрите уравнение v'{t) = 0 и решите его относительно t в терминах h. , 12. Линейное интерполирование в двумерном случае. Рассмотрите полином z = = Р(х,у) = Л + Вж + Су, который проходит через три точки: (жо;уо;^о)? 0&i; yi; 2i) и (^2; У2; ^2)- Тогда А, В и С — решения системы линейных урав- уравнений А + Bxq + Суо = zq А + Bxi + Суг = z\ А + Вх2 + Су2 = 22- (a) Найдите такие А9 В и С, чтобы 2: = Р(ж;у) проходила через точки A;1;5), B;1;3)иA;2;9). (b) Найдите такие А, В и С, чтобы z = Р(х-,у) проходила через точки A;1;2,5),B;1;0)иA;2;4). (c) Найдите такие А, В и G, чтобы z = Р(х;у) проходила через точки B;1;5), A;3;7) и C;2;4).
246 Глава 4. Интерполяция и приближение полиномами (d) Можно ли найти такие значения А, В и С, чтобы z = Р(х; у) проходила через точки A; 2; 5), C; 2; 7) и A; 2; 0)? Почему? 13. Используйте теорему 1.7, обобщенную теорему Ролля и специальную функ- функцию \Х XQ)\X Х\) \Х XJSI) где Pn{x) — полином Лагранжа степени iV, чтобы доказать, что остаточный член Е^(х) = f(x) — Pn(x) имеет вид / (с) = (а? - х)(ж a?i) (ж sjv) \ Указание. Найдите </^+1)(?) и затем вычислите ее в точке t = с. Алгоритмы и программы 1. Используйте программу 4.1 для нахождения коэффициентов интерполирую- интерполирующего полинома в задачах 2(i) a, b и с из приложения "Алгоритмы и програм- программы" раздела 4.2. Постройте график каждой функции и соответствующего интерполирующего полинома в одной и той же системе координат. 2. 8 ноября в окрестностях Лос-Анджелеса измеряли температуру в течение пяти часов и получили приведенную ниже таблицу. (a) Используйте программу 4.1, чтобы построить интерполирующий поли- полином Лагранжа для данных таблицы. (b) Используйте алгоритм 4.1(ш), чтобы вычислить среднюю температуру, заданную за пяти часовой период. (c) Постройте график данных из таблицы и полинома из п. (а) в одной и той же системе координат. Обсудите возможную ошибку, которая возникнет в результате использования полинома из п. (а) для вычисления средней температуры. Время пополудни 1 2 3 4 5 6 Градусы по Фаренгейту 66 66 65 64 63 63
4.4. Полиномы Ньютона 247 4.4. Полиномы Ньютона Иногда полезно найти несколько приближающих полиномов Pi (я), Р2(х), ..., P/v(x) и затем выбрать из них тот, который удовлетворяет нашим требованиям. Если использовать полиномы Лагранжа, то не существует прямо выраженного со- соотношения между P/v_i(#) и P/v(#). Каждый полином строится индивидуально, и вычисление полинома высокой степени потребует выполнения множества опе- операций. Выберем новый подход и построим полином Ньютона, который обладает рекуррентным свойством A) Pi(x) = ao + ai(x B) Р2(#) = ao + ai(x- xq) + а2(х - xq)(x C) Рз(х) = «о + <*>i(x - #о) + a>2(% ~ хо)(х + аг(х - хо){х - xi)(x - D) Pn(x) = «о + a>i(x — хо) + а2(х - хо)(х - + аз(х - xq)(x - xi)(x — + а±(х - xq)(x - х\)(х — + aN(x - Здесь полином Рдг(х) получаем из P/v_i(x) с помощью рекуррентного соотно- соотношения E) Pn(x) = Pn-i(x) + Q>n(x - хо)(х - xi)(x -x2)"-(x- xN-i). Говорят, что полином D) — это полином Ньютона с N центрами хо, ..., ядг_1. Он включает сумму произведений линейных множителей {x — хо)(х — х\){х — х2) - • • (х — xjy-i), поэтому Pn(x) — обычный полином степени <N. Пример 4.10. Заданы центры хо = 1, х\ = 3, х2 = 4 и х$ = 4,5 и коэффициенты ао = 5, а\ = —2, а2 = 0,5, аз == —0,1 и а± = 0,003. Следует найти полиномы Pi(x), Р2(х), Рг(х) и РА(х) и вычислить ЛьB,5) для к = 1, 2, 3, 4. Используем формулы A)-D) и получим Р2(х) = 5 - 2(х - 1) + 0,5(ж - 1)(х - 3), ft (я?) = ft (х) - 0,1@? - 1)(х - 3)(х - 4), РА{х) = Р3(д?) + 0,003(я - 1)(х - 3)(гг - 4)(ж - 4,5).
248 Глава 4. Интерполяция и приближение полиномами В результате вычисления полиномов в точке х = 2,5 получим А B,5) = 5-2A,5) = 2, Р2B,5) = РхB,5) + 0,5A,5)(-0,5). = 1,625, Р3B,5) = Р2B,5) - 0,1A,5)(-0,5)(-1,5) = 1,5125, Р4B,5) = Р3B,5) + 0,003A,5)(-0,5)(-1,5)(-2,0) = 1,50575. ¦ Вложенные умножения Вложенные умножения следует использовать, когда N — фиксированное число и полином Pn(x) вычисляется многократно. Этот процесс подобен вложенным умножениям для обычных полиномов, но центры Xk вычитают из независимых переменных х. Форма вложенного умножения для Рз(#) имеет вид F) Р3(я) = ((а3(ж - х2) + а2){х - хг) + аг)(х - х0) + а0. Чтобы вычислить Р$(х) для заданного значения х9 начнем с самой внутренней группы и сформируем последовательно величины S2 = S\ = Величина Sq — это и есть Рз(ж). Пример 4.11. Вычислим РзB,5) из примера 4.10, используя вложенные умно- умножения. Воспользуемся F) и запишем Р3(гг) = ((-0,1(аг - 4) + 0,5)(х - 3) - 2)(х - 1) + 5. Значения в G) равны 53 = -ОД, S2 = -0,1B,5-4) +0,5 = 0,65, Si = 0,65B,5 - 3) - 2 = -2,325, Sq = -2,325B,5 - 1) + 5 = 1,5125, Таким образом, РзB,5) = 1,5125. ¦
4.4. Полиномы Ньютона 249 Приближение полиномами, узлы и центры Предположим, что требуется найти коэффициенты а* для всех полиномов Р\(х), ..., Pn(%), которые приближают заданную функцию f(x). Тогда Рк(х) построены по центрам хо, х\, ..., эд и имеют узлы хо, х\, ..., я/ь+ь Для по- полинома Р\(х) коэффициенты ао и а\ имеют хорошо известное значение. В этом случае (8) Pi(x0) = f(x0) и Рг(хг) = /(ял). Используя A) и (8), чтобы найти решение относительно ао, получим (9) f{x0) = Р\(х0) = а0 + ai(a?0 - х0) = а0. Следовательно, ao = /(#о)- Далее, используем A), (8) и (9) и получим уравнение f(xi) = Pi(zi) = a0 + ai(xi - хо) = /(ж0) которое можно решить относительно а\, и получить Таким образом, а\ равно тангенсу угла наклона касательной, проходящей через две точки: (жо;/(жо)) и (xi\f(xi)). Коэффициенты ао и ai — одни и те же как для Pi (ж), так и для Р2{х). Вычисляя B) в узле Х2, получаем A1) f(x2) = Р2Ы) = а0 + ах(х2 - х0) + а2{х2 - хо){х2 — Значения ао и а\ в (9) и A0) можно использовать в A1), чтобы получить f{x2) -ao-ai(x2 -х0) (X2 - X0)(x2 ~ = //Ы-/Ы _ f(xi)-f(xo)\ I _ \ X2 — Xo X\—Xo)l Для вычислительных целей предпочтительнее записать эту последнюю величину в виде A2) a2 = I / \x2 - ж0). \ X2 — X\ X\— Xo ) I Можно показать, что эти две формулы для а2 эквивалентны, если записать их как отношения с общим знаменателем (х2—х\)(х2 — хо)(х\ — #о). Детали оставля- оставляем читателю. Числитель в A2) равен разности между разностными отношениями первого порядка. Для продолжения изложения необходимо ввести понятие раз- разностных отношений.
250 Глава 4. Интерполяция и приближение полиномами Определение 4Л (разностные отношения). Разностные отношения для функ- функции f(x) определяются следующим образом: f[xk] = /[**]-/[**-!] A3) Рекуррентное правило построения разностных отношений высокого порядка име- имеет вид A4) _j+1,..., Хк] = Xfc и использовано для построения разностных отношений в табл. 4.8. Таблица 4.8. Таблица разностных отношений для у = f(x) Хк хо XI Х2 хз Х4 f[xo] Лхз] Л , /[«о, ЛХ1, /[*а, Л*з, ] х2] хз] /[ , /[хо, Лхъ /1*2, J Xi, Х2, хз, ] хг] хз] Х4] /[Х0,Х1,Х2,Х3] /[Х1,Х2,Хз,Х4 ЛХО,Х1,Х2)ХЗ,Х4] Коэффициенты ак полинома Pn{x) зависят от значений f(xj), j = 0, 1,..., к. В следующей теореме показано, как можно вычислять а& с использованием раз- разностных отношений: Теорема 4.5 (полином Ньютона). Предположим, что хо, х\9 .. ,9 хм — N + + 1 различных чисел, принимающих значения на интервале [а; 6]. Существует единственный полином Pn(x) не более чем степени N, обладающий следующим свойством: f(xj) = Pn(xj) для j = 0, 1, ..., N. Форма Ньютона этого полинома имеет вид A6) где а^ = Н Ь э для fe = 0, 1,..., N. (ж - жлг-i),
4.4. Полиномы Ньютона 251 Замечание. Если {{xj]yj)}jL0 — множество точек с различными абсциссами, то значения f(xj) = yj можно использовать для построения единственного полинома степени <N9 который проходит через N + 1 точку. Следствие 4.2 (приближение Ньютона). Предположим, что Pn{%) — полином Ньютона, заданный в теореме 4.5 и приближающий функцию /(#), т. е. A7) f(x) = Pn(x) + En(x). Если / G CN+l[a; b], то для каждого х € [а;6] существует такое соответствующее число с = с(х) из интервала (а; Ь), что остаточный член имеет вид A8) EN(x) = (N + 1I Замечание. Остаточный член Е^(х) имеет точно такой же вид, как и введенный формулой A6) в разделе 4.3 для интерполирования Лагранжа. Представляет интерес начать с известной функции /(ж), которая является по- полиномом степени N, и вычислить для нее таблицу разностных отношений. В этом случае известно, что f(N+l\x) = 0 для всех ж, и вычисления показыва- показывают, что (N + 1)-е разностное отношение равно нулю. Это удачно, потому что разностное отношение A4) пропорционально численному приближению для j-й производной. Пример 4.12. Пусть f(x) = хг — 4ж. Построим таблицу разностных отношений, основанных на узлах xq = 1, х\ = 2, ..., х$ = 6, и найдем полином Ньютона Рз{х), основанный на #о, а?ь Х2 и х$ (табл. 4.9). ¦ Коэффициенты ао = —3, а\ == 3, аг = 6 и аз = 1 полинома Рз(х) появляются на диагонали таблицы разностных отношений. В первом столбце таблицы указаны Таблица 4.9. Таблица разностных отношений, используемая для построения полинома Ньютона Р${х) в примере 4.12 Хк Хо = 1 XI =2 Х2 =3 хз = 4 Х4 = 5 Х5 = 6 -3 0 15 48 105 192 Первое разностное отношение 3 15 33 57 87 Второе разностное отношение 6 9 12 15 Третье разностное отношение 1 1 1 Четвертое разностное отношение 0 0 Пятое разностное отношение 0
252 Глава 4. Интерполяция и приближение полиномами значения центров хо = 1, х\ = 2 и x<i = 3. Используя формулу C), запишем Р3(х) = -3 + 3{х - 1) + 6(ж - 1)(ж - 2) + (а; - 1)(ж - 2)(х - 3). Пример 4.13. Построим таблицу разностных отношений для функции f(x) = = cos(x), основанной на пяти точках (fc,cos(A;)) для к = 0, 1, 2, 3, 4. Используем ее, чтобы найти коэффициенты а* и четыре интерполирующих полинома Ньютона Рк(х) ддяк^1, 2, 3, 4. Для простоты все значения, приведенные в табл. 4.10, округлены до семи деся- десятичных знаков. Запишем первые четыре полинома Ньютона, которые получены из формулы A6) по узлам хо, #ь #2? #з и элементам ао, аь а2> ^з> а±, находящимся на диагонали табл. 4.10: Pi(x) = 1,0000000 - 0,4596977(я - 0,0), Р2(х) = 1,0000000 - 0,4596977(х - 0,0) - 0,2483757(х - 0,0)(а? - 1,0), Р3(х) = 1,0000000— 0,4596977(ж - 0,0) - 0,2483757(ж - ОЩх - 1,0)+ + 0,1465592(а: - О,О)(яг - 1,0)(х - 2,0), РА(х) = 1,0000000 - 0,4596977(ж - 0,0) - 0,2483757(ж - 0,0)(а; - 1,0)+ + 0,1465592(ж - 0fl)(x - 1,0)(я: - 2,0)- - 0,0146568(гг - 0,0)(о: - 1,0)(ж - 2,0)(ж - 3,0). Следующая модель вычислений показывает, как найти коэффициент а^ /Ы . 0,5403023-10000000 _ t[xiM = rci — жо 1,0 — 0,0 /М-/М _ -0.416Н68 -( Ж2-Ж1 ' O2 = Х2 -XQ 2,0 — 0,0 = -0,9564491, = -0,2483757. Таблица 4.10. Таблица разностных отношений, используемая для построения полинома Ньютона Рк(х) в примере 4.13 Хк хо = 0,0 xi = 1,0 х2 = 2,0 хз = 3,0 х4 = 4,0 1,0000000 0,5403023 -0,4161468 -0,9899925 -0,6536436 /[ , 1 -0,4596977 -0,9564491 -0,5738457 0,3363499 Л . . ] -0,2483757 0,1913017 0,4550973 Л,,,] 0,1465592 0,0879318 Л i , , , ] -0,0146568
4.4. Полиномы Ньютона 253 Графики у = cos(o?) и у = Р\(х)9 у = 4.14(с) соответственно. ^M У = -Рз(#) показаны на рис. 4.14(а)- 1, -1,01- Рис. 4.14. (а) Графики у = cos(x) и линейного полинома Ньютона у = Р\{х), построенного по узлам х0 = 0,0 и xi = 1,0 1,' 1,| -1,01- Рис. 4.14. (Ь) Графики у = cos(rr) и квадратичного полинома Нью- Ньютона у = Р2(х), построенного по узлам хо = 0,0, хг = 1,0 и х2 = 2,0 Рис. 4Л4. (с) Графики у = = cos(#) и кубического поли- _ , v нома Ньютона у = Р2(х), по- ~ строенного по узлам xq = 0,0, xi = 1,0, Х2 = 2,0 ихз= 3,0 При вычислении разностные отношения для табл. 4.8 заносили для хранения в массив D(k,j). Поэтому формула A5) принимала вид ,j) = f[xk-j, xk-j+u -. •, хк] для j < fc. A9) Соотношение A4) использовали, чтобы получить рекуррентную формулу для вы- вычисления элементов массива: B0) Заметим, что значения ак в формуле A5) — это элементы, стоящие на диагонали ак = D(fc, к). Ниже приведен алгоритм для вычисления разностных отношений и вычисления полинома Pn{x). Отметим, что в задаче 2 в упражнениях "Алгоритмы и программы" исследуется как модифицировать алгоритм таким образом, чтобы значения {ак} вычислялись с использованием одномерного массива. ¦
254 Глава 4. Интерполяция и приближение полиномами Программа 4.2 (интерполяционный полином Ньютона). Для построения и вычисления полинома Ньютона степени <JV, который проходит через точки (хк, Ук) = (a*, f(xk))> к = 0, 1,..., N: B1) Р(х) = d0,o + rfi,i(* - жо) + <*2,2(я - хо)(х - Н где function [C,D]=newpoly(X,Y) УвВход - X вектор абсцисс 7, - Y вектор ординат '/«Выход - С вектор коэффициентов интерполирующего У, полинома Ньютона У, - D таблица разностных отношений n=length(X); D=zeros(n,n); D(:,1)=Y>; ^Использование формулы B0) для формирования таблицы for j=2:n for k=j:n D(k,j) = (D(k,j-l)-D(k-l,j-D)/(X(k)-X( end end УоОпределение коэффициентов интерполирующего •/.полинома Ньютона C=D(n,n); for k=(n-l):-l:l C=conv(C,poly(X(k))); m=length(C); C(m)=C(m)+D(k,k); end Упражнения к разделу 4.4 В упр. 1-4, используя центры xq9 хи #2 и хз и коэффициенты ао, а\, a<i> аз и сц, найдите полиномы Ньютона Р\(х)9 Р2(х), Рз(х) и Ра(х) и вычислите их значения
4.4. Полиномы Ньютона 255 в точке х - в примере 1. ао = zo = 2. ао = XQ = 3. ао = хо = 4. ао = хо = В упр. 5-8 = с. Указание. 4.9. 4 ai = 1 #i = 5 CL\ = 0 XI = 1 /у» — -2 ai = ~~"О X \ —— Используйте формулы A)-D) и технику, -1 3 -2 1 3 0 4 -1 а2 = 0,4 ж2 = 4 а2 = 0,5 xi = 2 а2 = 0,1 ж2 = 1 а2 = -0,04 Ж2 = 1 выполните следующее. а3 = 0,01 х3 = 4,5 а3 = -0,1 жз = 3 а3 = 0,05 х$ == 4 а3 = 0,06 применявшуюся а4 = -0,002 с = 2,5 а4 = 0,003 с = 2,5 а4 = -0,04 с = 3 а4 = 0,005 с = 2 (a) Постройте таблицу разностных отношений для функций, значения которых приведены в таблицах. (b) Запишите полиномы Ньютона Рх(х), Р2(ж), Рз(х) и Ра(х). (c) Вычислите полиномы Ньютона из п. (Ь) в заданных значениях х. (d) Сравните значения, полученные в п. (с), с истинными значениями функции я*). 5. ж = 4,5; 7,5 6. 7. 0 1 2 3 4 /(*) = ж = 0 1 2 3 4 4,0 5,0 6,0 7,0 8,0 = 3sin2 = 1,5; з 0,0 1,0 2,0 3,0 4,0 /Ы 2,00000 2,23607 2,44949 2,64575 2,82843 (тгж/6) 5 /ы 0,00 0,75 2,25 3,00 2,25 8. /(*) = = 3,6/ж х = 2,5; 3 к 0 1 2 3 4 Хк 1,0 2,0' 3,0 4,0 5,0 f(x) = е-1 х = 0,5; 1 к 0 1 2 3 4 Хк 0,0 1,0 2,0 3,0 4,0 ,5 f{Xk) 3,60 1,80 1,20 0,90 0,72 ,5 1,00000 0,36788 0,13534 0,04979 0,01832
256 Глава 4. Интерполяция и приближение полиномами 9. Рассмотрите М + 1 точку (xq; 3/0M • - •, (^м; Ум)- (a) Если (N + 1)-е разностное отношение равно нулю, то покажите, что разностные отношения от (N + 2)-го по М-ное также равны нулю. (b) Если N + 1 разностное отношение равно нулю, то покажите, что суще- существует такой полином Pn(x) степени N, что Pn(xic) ^ Ук Для к = 0, 1, ..., Af. В упр. 10-12 используйте результаты упр. 9, чтобы найти полином Pn{x), который проходит через М + 1 точку (N < М). 10. 1 11. 1 12. 0 1 2 3 4 5 Ук -2 2 4 4 2 -2 я* 1 2 3 4 5 6 Ук 8 17 24 29 32 33 ж* 0 1 2 3 4 5 6 Ук 5 5 3 5 17 45 95 13. Используйте следствие 4.2, чтобы найти грань максимальной ошибки (| Е2 (х) |) на интервале [0; тг]. Интерполирующий полином Ньютона Рг(^) используется для приближения функции f(x) = cos(tts) на этом же интервале в центрах Xq = 0, Х\ = 7Г/2 И Ж2 = 7Г. Алгоритмы и программы 1. Используйте программу 4.2 и повторите задачу 2 из раздела "Алгоритмы и программы" раздела 4.3. 2. В программе 4.2 матрица D используется для хранения таблицы разностных отношений. (а) Убедитесь, что предлагаемая модификация программы 4.2 эквивалентна методу вычисления интерполирующего полинома Ньютона. for k=O:N A(k)=Y(k); end for j=l:N for k=N:-l:j end end (b) Повторите задачу 1, используя модифицированную программу 4.2.
4.5. Полиномы Чебышева (произвольные) 257 4.5. Полиномы Чебышева (произвольные) Обратим внимание на то, что интерполирующий полином для f(x) на интервале [-1; 1] построен по узлам — 1 < хо < х\ < • • • < хм < 1. И полином Лагранжа, и полином Ньютона удовлетворяют равенству f(x) = PN(x) + EN{x), где О) и Q(x) — полиномы степени N + 1: B) Q{x) = (x- хо)(х Воспользуемся соотношением Наша задача — следуя идеям Чебышева, так выбрать совокупность узлов чтобы минимизировать max_i<x<i{|Q(a;)|}. Это приводит к введению полиномов Чебышева и изучению некоторых их свойств. Для начала приведем в табл. 4.11 первые восемь полиномов Чебышева. Таблица 4.11. Полиномы Чебышева от Т0(х) по Т7(х) Го(х) = 1 Ti(x) = x Т2(х) = 2х2 - 1 Гз(х) = 4х3 - Зх Г4(х) = 8х4-8х2 + 1 Г5(ж) = 16х5 - 20х3 + 5х Те (ж) = 32х6 - 48х4 + 18х2 - 1 Т7(х) = 64х7 - 112х5 4- 56х3 - 7х Свойства полиномов Чебышева Свойство 1. Рекуррентное соотношение Полиномы Чебышева можно получать следующим способом. Положим То (ж) = 1 и Т\ (х) = # и используем рекуррентное соотношение C) Тк(х) = 2жГ^1(х) - Т^2(ж) для * = 2, 3, .... Свойство 2. Старший коэффициент Коэффициент при xN в полиноме Т^(х) равен 2iV~1, когда iV > 1.
258 Глава 4. Интерполяция и приближение полиномами Свойство 3. Симметрия Когда N = 2М, Т2л/(ж) — четная функция, т. е. D) Т2М(-*)=Т2М(я). Когда N = 2М + 1, T2m+i(#) — нечетная функция, т. е., E) T2M+i(-x) = -T2M+i(*). Свойство 4. Тригонометрическое представление на отрезке [—1; 1] F) Tn(x) = cos(iVarccos(x)) для — 1 < х < 1. Свойство 5. Различные нули на отрезке [—1; 1] Tn(x) имеет N различных нулей Xk, лежащих на отрезке [—1; 1] (рис. 4.15): G) для^О, 1, ..., N-1. Эти значения называют абсциссами (или узлами) Чебышева. Свойство б. Экстремальные значения (8) \TN(x)\<l для -1<ж<1. Свойство 1 часто используют как определение полиномов Чебышева высшего порядка. Покажем, что Гз(гг) = 2хТ2(х)— Т\(х). Используем выражения для Т\{х) и Т2(ж) из табл. 4.11 и получим 2хТ2(х) - Ti(x) = 2жBж2 - 1) - х = 4х3 - Зх = Г3(х). Рис. 4.15. Графики полино« мов Чебышева То(а;), Ti(o:), ..., Т±(х) на интервале [—1; 1]
4.5. Полиномы Чебышева (произвольные) 259 Свойство 2 очевидно, если заметить, что рекуррентное соотношение удваивает старший коэффициент полинома TN_X (x), чтобы получить старший коэффициент TN{x). Свойство 3 установим, показав, что Т2м(х) содержит только четные степени х и T2M+i(rr) содержит только нечетные степени х. Детали оставляем читателю. В доказательстве свойства 4 используется тригонометрическое тождество cos(A;0) = cosB0) cos((fc - 2H) - sinB0) sin((fc - 2H). Подставим cosB0) = 2cos2@) — 1 и sinB0) = 2sin@) cos@) и получим cos(fc0) = 2cos@)(cos@) cos((fc - 2H) - sin@) sin((fc - 2H)) - cos((A; - 2H), которое в упрощенном виде запишем как cos(fc0) = 2cos@) cos((fc - 1H) - cos((fc - 2H). Наконец подставим 0 = arccos(z) и получим (9) 2х cos((k — 1) arccos(rr)) — cos((k — 2) arccos(rc)) = = cos(A; arccos(z)) для —1 < x < 1. Два первых полинома Чебышева — это Tq(x) = cos(Oarccos(:r)) = 1 и Т\{х) = = cos(larccos(x)) = x. Предположим, что Tk{x) = cos(/carccos(rr)) для к = 2, 3, ..., N - 1. Используем формулы C) и (9), чтобы установить общий случай: TN(x) = 2xTN-i(x) - TN-2(x) = = 2a;cos((iV — 1) arccos(x)) — cos((JV — 2) arccos(x)) = = cos(JVarccos(a;)) для — 1 < x < 1. Свойства 5 и 6 следуют из свойства 4. Минимакс Русский математик Чебышев изучил способы минимизации верхней грани \En(x)\. Верхнюю грань можно сформировать, взяв произведение максималь- максимального значения \Q{x)\ по всем х из интервала [—1;1] и максимального значения \f(N+l\x)/(N +1)!| по всем х из интервала [—1; 1]. Чебышев открыл, что для ми- минимизации множителя тах{|<2(я)|} следует так выбирать xq9 #i, ... ,xn9 чтобы Q(x) = (l/2N)TN+1(x).
260 Глава 4. Интерполяция и приближение полиномами Теорема 4.6. Предположим, что N фиксировано. Среди всех возможных вариан- вариантов выбора для Q(x) в выражении B) и среди всех возможных вариантов выбора для различных узлов {xk}%=0 на интервале [—1; 1] полином Т(х) = Tn+i(x)/2n является единственным, который обладает свойством max {|Г(ж)|}< max -Kz<lU /IJ —1<ж< Более того, Доказательство. Доказательство можно найти в книге [29]. • Из этого результата может следовать, скажем, утверждение, что для интер- интерполирования Лагранжа функции f(x) = Pn{x) + Е^{х) на интервале [—1;1] минимальное значение грани ошибки достигается, когда узлы {х^} являются абсциссами Чебышева полинома 2V+i(e). В качестве иллюстрации рассмотрим коэффициенты полинома Лагранжа, которые используются для построения Рг(х). Сначала используем равноотстоящие узлы, а затем — узлы Чебышева. Напомним, что полином Лагранжа степени N = 3 имеет вид A1) Р3(х) = f(xo)L3fi(x) + f(xi)LzA{x) + f(x2)LSi2(x) Равноотстоящие узлы Если приближать функцию f(x) полиномом степени не больше чем N = 3 на интервале [—1; 1], то равномерно отстоящие узлы хо = —1, х\ = —1/3, х2 = 1/3 и #з = 1 будут удобны для вычислений. Подставим эти значения в формулу (8) раз- раздела 4.3, упростим полученное выражение и получим коэффициенты полиномов I,3,fc(#)> которые приводятся в табл. 4.12. Узлы Чебышева Если функцию f(x) приближать полиномом степени не больше чем N = 3, используя узлы Чебышева жо = cosGtt/8), zi = cosE7r/8), x2 = cosCtt/8) и xs = cos(tt/8), to найти коэффициенты полинома будет весьма утомительно (но это можно сделать на компьютере). Результат после упрощений приведен в табл. 4.13.
4.5. Полиномы Чебышева (произвольные) 261 Таблица 4.12. Коэффициенты полинома Лагранжа, используемые для формирования Рз(х), который построен на равноотстоящих узлах Xk = — 1 + 2А:/3 L3,o(x) = -0,06250000 + 0,06250000я + 0,56250000а;2 - 0,56250000х3 L3,i (х) = 0,56250000 - 1,68750000* - 0,56250000х2 + 1,68750000х3 Ьз,2(х) = 0,56250000 + 1,68750000х - 0,56250000я2 - 1,68750000ж3 1<з,з (х) = -0,06250000 - 0,06250000х + 0,56250000s2 + 0,56250000х3 Таблица 4.13. Коэффициенты полинома, используемые для формирования полинома Рз(х), которой построен по узлам Чебышева Xk = cos(G - 2&)тг/8) Со(х) = -0,10355339 4- 0,11208538ж + 0,70710678х2 - 0,76536686х3 Сг(х) = 0,60355339 - 1,57716102х - 0,70710678х2 4-1,84775906а:3 С2(х) = 0,60355339 + 1,57716102х - 0,70710678ж2 - 1,84775906х3 Сг(х) = -0,10355339 - 0,11208538х + 0,70710678х2 4- 0,76536686х3 Пример 4.14. Сравним полиномы Лагранжа степени N = 3 для функции f(x) = = ех, которые получены с использованием коэффициентов полиномов, приведен- приведенных в табл. 4.12 и 4.13 соответственно. Используя равноотстоящие узлы, получим полином Р(х) = 0,99519577 + 0,99904923ж + 0,54788486s2 + 0,17615196х3. Он получается из линейной комбинации найденных значений функции /(so) = е^15 = 0,36787944, f{xx) = е(/3) = 0,71653131, f(x2) = еA/3) = 1,39561243, /(х3) = еA) = 2,71828183, и коэффициентов полиномов Ьз,А;(#) из табл. 4.12 Р{х) = О,36787944?3,о(я) + 0,71653131L3,i(^) + 1,39561243L3,2(^)+ + 2,71828183L3,3(x). Подобным образом при использовании узлов Чебышева получаем V(x) = 0,99461532 + 0,99893323s + 0,54290072s2 + 0,17517569s3.
262 Глава 4. Интерполяция и приближение полиномами Заметим, что коэффициенты этого полинома отличаются от коэффициентов Р(ж). Это происходит вследствие использования различных узлов и значений функции: f(Xo) = е-0,92387953 = 0,39697597, f(xx) = е-°>38268343 = 0,68202877, f(X2) = е0'38268343 = 1,46621380, = е0'92387953 = 2,51904417. Тогда для формирования линейной комбинации используем альтернативную со- совокупность коэффициентов полиномов С* (ж) из табл. 4.13: F(a:)=0,39697597C0(a:)+0,68202877CiB:)+l,46621380C2(a:)+2,51904417C3(x). Для сравнения точности полиномов Р(х) и V(x) ошибка функций изображе- изображена на рис. 4.16(а) и 4.16(Ь) соответственно. Максимальная ошибка \ех — Р(х)\ достигается в точке х = 0,75490129 и \ех - Р(х)\ < 0,00998481 для -1 < х < 1. Максимальная ошибка |ех — V^(a:)| достигается в точке х = 1, и получаем, что \ex-V{x)\< 0,00665687 для -1<ж<1. Отметим, что максимальная ошибка для V(x) равна приблизительно двум третьим максимальной ошибки для Р(х). Ошибка также более равномерно распространя- распространяется по интервалу. ¦ Рис. 4.16. (а) Функция ошибок у = ех — Р(х) для приближения Лагранжа на интервале [—1; 1]. (Ь) Функция ошибок у = ех — V(x) для приближения Лагранжа на интервале [—1; 1]
4.5. Полиномы Чебышева (произвольные) 263 Феномен Рунге А сейчас посмотрим глубже, чтобы увидеть преимущество использования ин- интерполяционных узлов Чебышева. Рассмотрим интерполирование Лагранжа функ- функции f(x) на интервале [-1; 1], построенное на равноотстоящих узлах. Стремится ли ошибка En(x) = /(х) — Рн(х) к нулю при возрастании iV? Ответ утвердитель- утвердительный для функций, подобных sin(rr) и ех, все производные которых ограничены одной и той же постоянной М. В общем случае ответ на этот вопрос отрицателен, и легко найти функции, для которых последовательность {Р^(х)} не сходится. Если f(x) = 1/A + 12а:2), то максимальное значение остаточного члена Е^(х) растет при N -» оо. Эта несходимость называется феноменом Рунге (см. [90], с. 275-278). Полином Лагранжа степени 10, построенный по 11 равноотстоящим узлам для этой функции показан на рис. 4.17(а). Около конца интервала появляется беспорядочная осцилляция. Если число узлов возрастает, то осцилляция увеличи- увеличивается. Эта проблема возникает потому, что выбраны равноотстоящие узлы! Рис. 4.17. (а) Приближающий полином для функции у = = 1/A 4- 12я2), построенный по 11 равноотстоящим узлам на интервале [—1; 1] -0,5 0,0 0,5 1,0 Рис. 4.17. (Ь) Приближаю- Приближающий полином для функции у = = 1/A 4- 12х2), построенный по 11 узлам Чебышева на интерва- интервале [-1; 1] Если использовать узлы Чебышева, чтобы построить интерполирующий поли- полином степени 10 для функции f(x) = 1/A + 12#2), то ошибка будет очень мала, как можно увидеть на рис. 14.17(Ь). При условии, что будут использованы узлы
264 Глава 4. Интерполяция и приближение полиномами Чебышева, ошибка Е^(х) будет стремиться к нулю, как только N -? оо. Вообще, если f(x) и f'(x) непрерывны на отрезке [—1; 1], можно доказать, что интеполи- рование Чебышева приводит к последовательности полиномов {Р^(х)}9 которая равномерно сходится к f(x) на интервале [—1; 1]. Преобразование интервала Иногда возникает необходимость задачу, сформированную для интервала [а; 6], переформулировать в задачу на интервале [c;d], на котором решение известно. Если получено приближение Pn(x) к функции f(x) на интервале [а; Ь], то заменим переменную таким образом, чтобы получить задачу на интервале [—1; 1]: A2) ж= (__)*+___ or t = 2—-l, где а<ж<6и-1< €•< 1. Требуемые узлы Чебышева для T/v+i(?) на интервале [—1; 1] равны A3) tk = cos (BN + 1 - 2к)^-Л для к = 0, 1, ..., N и интерполяционные узлы на интервале [а; Ь] получаем из формулы A2): A4) х* = **^ + ^ Теорема 4.7 (приближение полиномом Лагранжа-Чебышева). Предположим, что Pn(x) — полином Лагранжа, построенный по узлам Чебышева, заданным в A4). Если / 6 CN+l[a; Ь], то A5) |/(*) - PN(x)\ < Пример 4.15. Для функции f(x) = sin(rr) на интервале [0;тг/4] найдем узлы Чебышева и грань ошибки A5) для полинома Лагранжа Рь{х). Для нахождения узлов воспользуемся формулами A2) и A3): /A1 - 2А:)тг\ тг тг , л хк = cos I — ) g" + з даЯ = '"'' Используя грань |/^(^)| ^ I — sinGr/4)| = 2~ll2 = Мв A5), получим \f(x) - PN(x)\ < (|N(|J~1/2 ^ 0,00000720. .
4.5. Полиномы Чебышева (произвольные) 265 Свойство ортогональности В примере 4.14 узлы Чебышева использовались для нахождения интерполяци- интерполяционного полинома Лагранжа. В общем, из этого вытекает, что полином Чебышева степени N можно получить интерполированием Лагранжа, построенным по N + +1 узлу, который является N +1 нулем полинома TW+i (х). Тем не менее прямым подходом для нахожения приближающего полинома является представление по- полинома Pn(x) в виде линейной комбинации полиномов Тк{х), которые приведены в табл. 4.11. Поэтому интерполяционный полином Чебышева можно записать в виде N A6) PN{x) = Y, скТк(х) = соТо(х) + ciT^x) + • • • + cNTN(x). к=0 Коэффициенты {с*} в A6) легко найти. Но техника доказательства потребует использования следующих свойств ортогональности. Пусть цдя к=0*lj •••' N; N A8) Y,Tt(x*)Ti(xk) = 0, где %ф], к=0 N ЛГ+ 1 A9) ?т«(а*)Т,(**) = —~, где г = j ф О, к=о Z N B0) ^Го(о:Л)ТоЫ = ^ + 1. к=0 Воспользуемся свойством 4 и тождествами A8) и B0) для доказательства сле- следующей теоремы. Теорема 4.8 (приближение Чебышева). Приближающий полином Чебышева Pn(x) степени <N для функции f(x) на интервале [—1; 1] можно записать как сумму полиномов {Tj(x)}: N B1) f{x) Коэффициенты B2) {cj} со вычисляются 1 " по (Хк формуле 1 /V -J- N [к=о f(xk)
266 Глава 4. Интерполяция и приближение полиномами 2 N fc=O :/(**)сое(jtj::' i »«j=1,2,.... лг. Пример 4.16. Найдем полином Чебышева Рз(х), который приближает функцию f(x) = ех на интервале [—1; 1]. Вычислим коэффициенты с помощью формул B2) и B3) и узлы х^ = cosGrBfc+ + 1)/8) для к = 0, 1, 2, 3: 3 3 с° = 7 ? е**То(ж*) = 7 S ^ = 1>26606568, к=0 ' к=0 e^xjk = 1,13031500, fc=0 fc=0 о о С2 = \Y1 еХ*Т2(^) = | E e*k COS B?r^f^) = °'27145036. о 5EeX/e cos f37r^^l = 0.04379392. =0 ^fc=o V 8 / Таким образом, полином Чебышева Рз{х) для функции ех есть B4) Р3(х) = 1,26606568Т0(х) + l,13031500Ti(a;)+ + 0,27145036Г2(я) + 0,04379392Т3(х). Если разложить полином Чебышева B4) по степеням х, то в результате получим Рг{х) = 0,99461532 + 0,99893324х + 0,54290072ж2 + 0,17517568ж3, такой же, как и полином V(х) в примере 4.14. Если же необходимо найти полином Чебышева, то предпочтительнее использовать формулы B2) и B3). ¦ MATLAB В следующей программе используется команда eval вместо f eval, которая применялась в предыдущей программе. Команда eval интерпретирует текстовую строку MATLAB как выражение или утверждение. Например, следующие коман- команды быстрее вычисляют значения косинуса от х = fc/10 для к = 0, 1,..., 5.
4.5. Полиномы Чебышева (произвольные) 267 >> х=0:.1:.5; >> evaK'cos(x)') ans = 1.0000 0.9950 0.9801 0.9553 0.9211 0.8776 Программа 4.3 (приближение Чебышева). Построение и вычисление интер- интерполирующего полинома Чебышева степени N на интервале [—1; 1], где полином N построен по узлам Xk = COS function [С, X, Y]=cheby(fun,n,а,b) 7,Вход - fun - функция, заданная в виде строки, которую приближают У, - N - степень интерполирующего полинома Чебышева У, - а - левая крайняя точка У, - b - правая крайняя точка У,Выход - С - массив коэффициентов полинома У, - X - массив абсцисс У. - Y - массив ординат if nargin—2, a=-l;b=l;end d=pi/B*n+2); C=zeros(l,n+1); for k=l:n+l X(k)=cos(B*k-l)*d); end X=(b-a)*X/2+(a+b)/2; x=X; Y=eval(fun); for k =l:n+l z=B*k-l)*d; for j=l:n+l C(j)=C(j)+Y(k)*cos((j-l)*z); end end O2*C/(n+l);
268 Глава 4. Интерполяция и приближение полиномами Упражнения к разделу 4.5 1. Используйте свойство 1 и (a) постройте полином Т^{х) из полиномов Т^{х) и Т2{х); (b) постройте полином Т$(х) из полиномов Т^{х) и Тз(#). 2. Используйте свойство 1 и (a) постройте полином Tq(x) из полиномов Т$(х) и (b) постройте полином Т?(х) из полиномов Tq(x) и 3. Докажите свойство 2 по индукции. 4. Докажите свойство 3 по индукции. 5. Найдите максимальное и минимальное значения полинома 6. Найдите максимальное и минимальное значения полинома Указание. 1^A/2) = 0 и Г^(-1/2) = 0. 7. Найдите максимальное и минимальное значения полинома Т±(х). Указание. Т4'@) = 0, ТЦ2~1/2) = 0 и Т^-2/2) = 0. 8. Пусть функция f(x) = sin(x) задана на интервале [—1; 1]. (a) Используйте коэффициенты полиномов из табл. 4.13, чтобы получить приближающий полином Лагранжа-Чебышева Р$(х). (b) Найдите грань ошибки для | sin(a;) — Рз{х)\. 9. Пусть функция f(x) = 1п(ж + 2) задана на интервале [—1; 1]. (a) Используйте коэффициенты полиномов из табл. 4.13, чтобы получить приближающий полином Лагранжа-Чебышева Рз{х). (b) Найдите грань ошибки для 11п(я; + 2) — Рз(х)\. 10. Полином Лагранжа степени N = 2 имеет вид f(x) = f(xo)L2io(x) + f{xi)L2,i(*) + f(x2)L2,2{x). Покажите, что если использовать узлы Чебышева хо = cosEtt/6), х\ = 0 и Х2 = cos(tt/6), to коэффициентами полинома будут х 2х2 = -7! + -з-, 4х2 х 2х2 = ^ + -3- 11. Пусть функция f(x) = cos(o;) задана на интервале [—1; 1]. (а) Используйте коэффициенты полиномов из упр. 10, чтобы получить при- приближающий полином Лагранжа-Чебышева
4.5. Полиномы Чебышева (произвольные) 269 (Ь) Найдите грань ошибки для | cos(x) — 12. Пусть функция f(x) = ех задана на интервале [—1; 1]. (a) Используйте коэффициенты полиномов из упражнения 10, чтобы полу- получить приближающий полином Лагранжа-Чебышева Р2(х). (b) Найдите грань ошибки для \ех — i^O^)!- В упр. 13-15 сравните полином Тейлора и приближение Лагранжа-Чебышева функции f(x) на интервале [—1; 1]. Найдите грани их ошибок. 13. f(x) = sin(rc) и N = 7, полином Лагранжа-Чебышева sin(x) » 0,99999998s - 0,16666599а;2 + 0,00832995а;5 - 0,00019297s7. 14. f(x) = cos (x) и N = 6, полином Лагранжа-Чебышева cos(s) « 1 - 0,49999734a;2 + 0,04164535a;4 - 0,00134608z6. 15. f(x) = ex и N = 7, полином Лагранжа-Чебышева ex « 0,99999980 + 0,99999998a; + 0,50000634a;2+ + 0,16666737a;3 + 0,04163504a;4 + 0,00832984a;5+ + 0,00143925a;6 + 0,00020399a;7. 16. Докажите равенство A8). 17. Докажите равенство A9). Алгоритмы и программы В задачах 1-6 используйте программу 4.3, чтобы вычислить коэффициенты для приближающего полинома Чебышева Pn(z) функции f(x) на интервале [— -1; 1], когда (а) N = 4, (Ь) N = 5, (с) N = 6 и (d) N = 7. Для каждого случая постройте графики f(x) и Pn(x) в одной и той же системе координат. 1. f{x) = ex 2. f(x) = sin(a;) 3. /(ж) = cos(a;) 4. /(ж) = 1п(ж + 2) 5. f{x) = (а; + 2I/2 6. /(ж) = (а; + 2)(*+2) 7. Воспользуйтесь программой 4.3 (N = 5), чтобы получить приближение для Jo cos(a;2
27* Глава 4. Интерполяция и приближение полиномами 4.6. Приближение Паде В этом разделе вводится понятие рационального приближения для функций. Будем приближать функцию f(x) на малых частях области, на которой она зада- задана. Например, если f(x) = cos (ж), то достаточно иметь формулу, чтобы построить приближение на интервале [0;тг/2]. Затем можно использовать тригонометриче- тригонометрические тождества, чтобы вычислить cos (ж) для любого значения я, лежащего вне интервала [0;тг/2]. Рациональное приближение к функции f(x) на интервале [а; 6] — это отношение двух полиномов Pn(x) и Qm(x) степеней N и М соответственно. Используем обозначение Rn,m(x) для определения этого отношения: A) RnM*) = 7ГТ^ Для а < х < 6. Основная задача — сделать максимальную ошибку настолько малой, насколько это возможно. При определенном усилии обычно удается построить рациональное приближение, которое имеет меньшую ошибку на интервале [а, Ь], чем приближе- приближение полиномом. В этом направлении ограничимся приближениями Паде (Pade). Для метода Паде (Pade) требуется, чтобы функция f(x) и ее производные были непрерывны в точке х = 0. Существуют две причины произвольного выбо- выбора х = 0. Во-первых, с ней проще обращаться. Во-вторых, можно посредством замены переменной сместить вычисления на интервал, который содержит нуль. В равенство A) входят полиномы B) PN(x) = ро + Р\х + р2х2 + • • • + pNxN C) QM(x) = 1 + qix + q2x2 + ¦ • • + qMxM. Полиномы B) и C) построены так, что функции f(x) и Rn,m(x) совпадают в точке х = 0 и их производные до N + М порядка также совпадают в точке х = = 0. В случае Qo(x) = 1 точным приближением является разложение Маклорена (Maclaurin) для функции /(#). При фиксированном значении N + М ошибка будет наименьшая, когда полиномы Pn(x) и Qm{x) имеют одинаковую степень или когда степень полинома Pn(x) больше, чем степень полинома Qm(#)- Заметим, что постоянный коэффициент полинома Qm равен до = 1- Это до- допустимо, поскольку он не может быть равным 0 и Rn,m(x) не изменяется при делении обоих полиномов Pn{x) и Qm(x) на одну и ту же константу. Таким об- образом, рациональная функция Rn,m(x) имеет N + M +1 неизвестный коэффици- коэффициент. Предположим, что f(x) — аналитическая функция, которая имеет разложение Маклорена D) f(x) = а0 + а\х + а2х2 + • • • + акхк + ¦ • • :
4.6. Приближение Паде 271 Образуем разность /(#)Qm(#) — Pn(x) = Z(x): (оо \ / М \ N оо ? «^ Е <&** - Е «** = Е <***• Нижний индекс суммирования j = M+iV+lB правой части равенства E) выбран так потому, что первые N + М производных функций f(x) и Ддг,м(я) совпадают в точке х = 0. Если в левой части равенства суммы E) перемножить и коэффициенты при степенях ж-7 приравнять нулю для к = 0, 1, ..., N + М, то в результате можно получить систему N + М + 1 следующих линейных уравнений: «о - Ро = 0 F) G2^0 + Qlal + a2 — Р2 = 0 + 92^1 + 9i^2 + аз — рз = 0 Н Ь aN - PiV = 0 -M+2 + qM-lO>N-M+3 H 1" 91^ЛГ+1 + «ЛГ+2 = 0 G) H h QiaN+M-i + «лгч-м = 0. Заметим, что в каждом уравнении сумма нижних индексов множителей каждого произведения одинаковая и возрастает последовательно от 0 к N + М. М урав- уравнений в системе G) включают только неизвестные q\9 q2,..., дм и должны быть решены первыми. Затем уравнения в системе F) последовательно используются для нахождения р0, ри • • • ,Pn- Пример 4.17. Найдем приближение Паде , х „ , ч 15120 - 6900ж2 + (8) () IUA) На рис. 4.18 изображены графики cos(a;) и R±,±{x) на интервале [—5; 5]. Использовав разложение Маклорена для cos (ж), получим девять уравнений с девятью неизвестными. Кроме того, заметим, что обе функции, cos(x) и R^iix), четные и включают степени х2. Вычисления можно упростить, если начать с функции f(x) = cos(x1/2):
272 Глава 4. Интерполяция и приближение полиномами -5\\-4 -3 -21 у = cos(z) \/ /0,5 -0,5 -1,0 \ / 1 \2 3 а) Ъ Рис. 4.18. График функции у = cos(x) и ее при- приближения Паде Д4 4(я) В этом случае уравнение E) принимает вид = 0 + Ох + Ох2 + Ох3 + Ох4 + с5хъ + СбХ6 + Сравнив коэффициенты первых пяти степеней х, получаем систему линейных уравнений: 1-ро = О (Ю) " 72091 + 2492 = 40320 72091 + 24 Последние два уравнения в A0) следует решать первыми. Их можно переписать в удобном для решения виде: q\ - 30 и — i -1 56"
4.6. Приближение Паде 273 Сначала найдем #2, сложив уравнения, а затем найдем q\\ 19 A1) ~ ' ' * ' = 1 (L - 1Л = 42 18 V30 56/ 15120 ' - J_ 156 П_ 41 ~ 30 + 15 120 ~ 252 * Используем первые три уравнения системы A0). Очевидно, чторо = 1 и можно использовать gi и 92 в A1), чтобы найти р\ ир2'. 1 11 13 313 г 2, с% л 24 504 15120 15120 А сейчас используем коэффициенты в уравнениях A1) и A2), чтобы сформировать рациональное приближение к /(ж): 1 - 115ж/252 + 313ж2/15120 ( } НХ)" 1 + Ш/252 + 13s2/15120 ' Так как cos(x) = /(ж2), можно подставить х2 вместо х в уравнение A3) и в результате получить формулу (8) для i?4,4(z)- ¦ Цепные дроби Приближение Паде #4,4 (ж) в примере 4.17 для выполнения вычислений требует как минимум 12 арифметических операций. Можно уменьшить это число до 7, если использовать цепные дроби. Это достигается следующим образом: начинаем с формулы (8), находим отношение и его остаточный полисном: 15120/313 - F900/313)а:2 + ж4 _ Я4А{х) _ 313 _ /296 280 3 V 169 / 12 600/823+ж2 \ \15120/13 + F00/13)ж2+ж4у " Процесс выполняется еще раз с использованием предыдущего остатка. Результат равен 313 296 280/169 4,4 (X) - 13 15120/13 + F60/13)ж2 + ж4 ~ 12600/823+ж2 313 296280/169 13 379380 2 420078960/677329 10699 +Х + 12600/823+ж2
274 Глава 4. Интерполяция и приближение полиномами -1,0 -0,5 0,0 0,5 1,0 -1 х10 -2 х ИГ7 -3 х 10" (а) у = Ец(х) 1 0,000025 1 0,000020 1 0,000015 1 0,000010 \ 0,000005 1 • ¦ 1 -1,0 -0,5 0,0 0,5 1,0 (Ь) Рис. 4.19. (а) График ошибки Er(x) = cos(x) — R±^{x) для приближения Паде Й4,4(я)- (Ь) График ошибки Ер{х) = cos(:r) — Pq(x) для приближения Тейлора Рб(х) Для успешных вычислений дроби приводят к десятичной форме, и получаем A4) RAA{x) = 24,07692308- 1753,13609467 35,45938873 + х2 + 620,19928277/A5,30984204 + х2)' Чтобы вычислить A4), сначала вычисляем и сохраняем х2, а затем продолжа- продолжаем от нижнего правого члена знаменателя и подсчитываем операции: сложение, деление, сложение, сложение, деление и вычитание. Таким образом, необходимо всего семь арифметических операций для вычисления R^(x), записанного в виде цепной дроби в A4). Можно сравнить R4,a(x) с полиномом Тейлора Ре(х) степени N = 6, который требует для вычислений семи арифметических операций, когда он записан во вложенной форме: (.5, = 1 + *2(-0,5 + ж2@,0416666667 - 0,0013888889х2)). Графики Er{x) = cos(x) — R^A{x) и Ер(х) = cos(#) — Pq(x) на интервале [—1; 1] показаны на рис. 4.19(а) и 4.19(Ь) соответственно. Наибольшие ошибки появляют- появляются на крайних точках и равны ERA) = -0,0000003599 и ЕРA) = 0,0000245281 соответственно. Величина наибольшей ошибки для i?4,4(#) приблизительно рав-
4.6. Приближение Паде 275 на 1,467% от ошибки Pq{x). Приближение Паде делать лучше, чем приближе- приближение Тейлора, на меньших интервалах, и на интервале [—0,1; 0,1] находим, что #я@,1) = -0,0000000004 и ??Р@,1) = 0,0000000966. Таким образом, величи- величина ошибки для приближения R^{x) приблизительно равна 0,384% от величины ошибки Pq(x). Упражнения к разделу 4.6 1. Найдите приближение Паде: . / х 2 + д: ех 2-х' 2. (а) Найдите приближение Паде Ri9i(x) для функции f(x) = ln(l + х)/х. Указание. Начните с разложения Маклорена: X X2 /М-1-3 + Т —¦• (Ь) Используйте результат выполнения п. (а), чтобы найти приближение 3. (а) Найдите i?i,i(rr) для f(x) = tan(x1/2)/a:1/2. Указание. Начните с разло- разложения Маклорена: (Ь) Используйте результат пункта (а), чтобы найти приближение х 4. (а) Найдите i?i,i(x) для функции f(x) = arctan(rr1/2)/rr1/2. Указание. На- Начните с разложения Маклорена: (b) Используйте результат выполнения п. (а), чтобы найти приближение arctan(o;) « Щу2(х) = 15 + 9д,2 - (c) Выразите рациональную функцию Дз,2(#) из п. (Ь) в форме цепной дроби.
276 Глава 4. Интерполяция и приближение полиномами 5. (а) Установите приближение Паде: х _ . . 12 + бх + ж2 (Ь) Выразите рациональную функцию i?2,2(#) из пункта (а) в форме цепной дроби. 6. (а) Найдите приближение Паде i?2,2(#) Для функции f(x) = ln(l + х)/х. Указание, Начните с разложения Маклорена: хх2 х3 х4 (Ь) Используйте результат выполнения п. (а), чтобы установить (с) Выразите рациональную функцию i?3,2(#) из п. (Ь) в форме цепной дроби. 7. (а) Найдите i?2,2(#) для функции f(x) = tan(a;1/2)/x1/2. Указание, Начните с разложения Маклорена: (Ь) Используйте результат пункта (а), чтобы установить 945а; - 105а;3 + ж5 (с) Выразите рациональную функцию i?s,4(^) из пункта (Ь) в форме цепной дроби. 8. (а) Найдите i?2,2(#) Для функции f(x) = arctan(a;1/2)/a;1/2. Указание. На- Начните с разложения Маклорена: •JU «X/ JU «л/ (Ь) Используйте результат пункта (а), чтобы найти 945а; + 735а;3 + 64а;5 arctan(x) « Л5>4(х) = 945 + 1050а;2 (с) Выразите рациональную функцию i?5,4(^) из пункта (Ь) в форме цепной дроби.
4.6. Приближение Паде 277 9. Найдите приближение Паде: х 120 + 60ж + 12ж2 + х3 К{) 6 * Кз'з{х) 120 -60* 10. Найдите приближение Паде: х _ 1680 + 840а: + 180а:2 + 20а:3 + х4 е « м [х) - Алгоритмы и программы 1. Сравните следующие приближения к функции f(x) = ех. 2 3 4 Тейлора: Т6(х) = 1 + х + ^- + ^ + ^- 2 О 24 (a) Постройте в одной и той же системе координат графики функций f(x), Т6{х) и R2fi{x). (b) Найдите максимальную ошибку, появляющуюся, когда функцию f(x) приближают Тв(х) и i?2,2(^) соответственно на интервале [—1; 1]. 2. Сравните следующие приближения к функции f(x) — ln(l + х). X2 X3 X4 X5 Тейлора: Т5(х) = х ~ Y + Т ~ Т + ~5 _ _ , ч ЗОж Паде: Д3,2(*) = 30 + Збх + (а) Постройте в одной и той же системе координат графики функций f(x), (Ь) Найдите максимальную ошибку, появляющуюся, когда функцию f(x) приближают Ть(х) и Дз,2(^) соответственно на интервале [—1; 1]. 3. Сравните следующие приближения к функции f(x) = tan(a:). х3 2хъ Их1 62а:9 Тейлора: Т9{х) = х + — + —- + —— + Паде: 3 15 315 2835 945а: - 105а:3 + хъ "°'*v"; 945 - 420a:2 + 15x4 (a) Постройте в одной и той же системе координат графики функций /(о:), Т9(х) н R5A(x). (b) Найдите максимальную ошибку, появляющуюся, когда функцию f(x) приближают Т9(х) и RsA(x) соответственно на интервале [—1; 1].
278 Глава 4. Интерполяция и приближение полиномами 4. Сравните следующие приближения Паде функции f(x) = sin(s) на интервале [-1,2; 1,2]. _ 166 320s - 22 260s3 + 551s5 5'4(ГС}~ 15A1088 + 364*2 + 5х4) 11511339 840s - 1640 635 920s2 + 52 785 432s5 - 479 249s7 7,6W - ?^б44477120 + 39702960s2 + 453960s4 + 2623s6) (a) Постройте в одной и той же системе координат графики функций /(s), Я5,4(я) и R7i<>(x). (b) Найдите максимальную ошибку, появляющуюся, когда функцию f(x) приближают i?5,4(#) и Rjfi(x) соответственно на интервале [—1,2; 1,2]. 5, (а) Используйте системы F) и G), чтобы получить Rg$(x) и Rsys(x) для функции /(s) = cos(s) на интервале [—1,2; 1,2]. (b) Постройте в одной и той же системе координат графики функций /(s), Д6,б(я) и R*fi(x). (c) Найдите максимальную ошибку, появляющуюся, когда функцию f(x) приближают jR6,6(^) и i?8,e(#) соответственно на интервале [—1,2; 1,2].
Построение кривой по точкам Техника численного анализа в науке и в инженерном деле часто применяется для вычерчивания графиков экспериментальных данных. Например, в 1601 году немецкий астроном Джон Кеплер (Johannes Kepler) сформулировал третий закон движения планет, Т = Сх3/2, где х — расстояние до Солнца, измеряемое в милли- миллионах километров, Т — период прохождения по орбите в днях и С — постоянная. Наблюдения пар данных (#, Т) для первых четырех планет, Меркурия, Венеры, Земли и Марса, дали результаты E8; 88), A08; 225), A50; 365) и B28; 687); ко- коэффициент С, полученный методом наименьших квадратов, равен С = 0,199769. Кривая Г = 0,199769#3/2; наблюдаемые точки показаны на рис. 5.1. 750 500 250 Т = 50 100 150 200 Рис. 5.1. Кривая, полученная методом наименьших квадратов, Г = 0,199769ж3/2, вычерчена для первых четырех планет, ко- которые использовал Кеплер для выведения третьего закона дви- движения планет 279
280 Глава 5. Построение кривой по точкам 5.1. Линия, построенная методом наименьших квадратов В науке и инженерии в результате экспериментов часто получают совокупность точек (:ri,yi),..., (ялг?Улг)> абсциссы {хк} которых различны. Одно из назначе- назначений численных методов — определение формулы у = /(#), которая связывает эти переменные, точнее — выбор класса допустимых формул, коэффициенты в кото- которых должны быть определены. Существует целый ряд различных типов функций, которыми можно воспользоваться. Часто это основанная на физических опытах математическая модель, которая в дальнейшем будет исследоваться и которая определяет вид функции. В этом разделе выделим класс линейных функций вида A) y = f(x)=Ax + B. В главе 4 показано, как построить полином, который проходит через множество точек. Если все численные значения {я^}, {ук} известны с несколькими знаками точности, то интерполяционный полином может быть успешно использован, ина- иначе это невозможно. В некоторых экспериментах применяется специализированное оборудование, позволяющее получить измеряемые точки по крайней мере с пятью знаками точности. Однако большинство экспериментов проводится на оборудо- оборудовании, которое надежно дает только три или меньше знаков точности. Часто в измерениях присутствует экспериментальная ошибка, и хотя записываются три цифры для значений {х^ и {ук}, подразумевается, что истинное значение f{xk) удовлетворяет равенству B) /(**)= У*+ efc, где вк — ошибка измерения. Как найти лучшее линейное приближение вида A), которое пройдет близко к точкам (не всегда через них)? Чтобы ответить на этот вопрос, необходимо иссле- исследование ошибок (также называемых отклонениями или остатками): C) ek = f(xk)-yk Для l<k<N. Существует несколько норм, которые можно использовать с остатками в C), чтобы измерить, насколько далеко от данных лежит кривая у = f{x). D) Максимальная ошибка: i?oo(/) = max {\fixk) ~У*|}5 1 N E) Средняя ошибка: Ex(f) = — ^ \f(xk) - yk\, (i N \1/2 F) Среднеквадратическая E2{f) = f — ^T \f(xk) - Ук\2 1 • ошибка: V fc=i / В следующем примере показано, как применять эти нормы, когда заданы функ- функция и множество точек.
5.1. ЛИНИЯ, ПОСТРОЕННАЯ МЕТОДОМ НАИМЕНЬШИХ КВАДРАТОВ 281 Пример 5.1. Сравним максимальную, среднюю и среднеквадратическую ошибки для линейного приближения функции у = f(x) = 8,6 — 1,6ж по заданным точкам (-1; 10), @;9), A;7), B; 5), C;4), D;3), E;0) и (б;-1). Найдем ошибки, используя значения функции /(ж*) и е*, заданные в табл. 5.1. G) (8) (9) = max{0,2; 0,4; 0,0; 0,4; 0,2; 0,8; 0,6; 0,0} = 0,8, = ^B,6) =0,325, ~Чт 1/2 : 0,41833 Ясно, что максимальная ошибка наибольшая и если одна точка плохая, то ее значение определяет ??оо(/)- Средняя ошибка Е\ (/) — просто среднее абсолютных величин ошибок различных точек. Она часто используется благодаря простоте вы- вычисления. Ошибку i?2(/) часто используют при изучении ошибок статистической природы. Наилучшая построенная линия определяется путем минимизации одной из ве- величин, заданных выражениями D)-F). Таким образом, можно найти три наилуч- наилучшим образом постренные линии. Традиционно выбирается третья норма потому что ее намного легче минимизировать. Таблица 5.1. Вычисления для нахождения Е\ (/) и из примера 5.1 Хк -1 0 1 2 3 4 5 6 Ук 10,0 9,0 7,0 5,0 4,0 3,0 0,0 -1,0 /(**) = 8.6-1.6а* 10,2 8,6 7,0 5,4 3,8 2,2 9,6 -1,0 м 0.2 0.4 0.0 0.4 0.2 0.8 0.6 0.0 2.6 el 0.04 , 0.16 0.00 0.16 0.04 0.64 0.36 0.00 1.40 Нахождение линии, построенной методом наименьших квадратов Пусть {(zfc,2/A:)}fcLi — сосвокупность N точек с различными абсциссами Линия построенная, методом наименьших квадратов у = f(x) = Ах + В, — это линия, которая минимизирует среднеквадратичную ошибку 2?2(/). Величина ??г(/) будет минимальной тогда и только тогда, когда будет мини- минимальной величина N(E2(f)J = SlbLiC^fc + В — у*J. Ниже будет показано геометрически, как выглядит минимизация суммы квадратов расстояний по вер- вертикали от точек до линии. Следующий результат объясняет этот процесс.
282 У Глава 5. Построение кривой по точкам X2 -i XN Рис. 5.2. Расстояния по верти- вертикали между точками {(#*,2/*)} и линией, построенной методом х наименьших квадратов, у = Ах + В Теорема 5.1 (линия, построенная методом наименьших квадратов). Предпо- Предположим, что {(#?, 2/fc)}jfcLi "" N точ^к с различными абсциссами {xk}?-v Коэффи- Коэффициенты линии, построенной методом наименьших квадратов, у = Ах + Ву являются решениями следующей системы линейных уравнений, известной под названием нормальные уравнения: A0) N к=1 N k=l Доказательство. Выполним доказательство геометрически. Начнем с линии у = = Ах + В. Расстояние по вертикали dk от точки (а^; у к) до точки (ж&; Ахк + В) на линии равно dk = \Ахк + В — ук\ (рис. 5.2). Нужно минимизировать сумму квадратов расстояний по вертикали cfo: N N (И) Е(А, В) = к=1 к=1 Минимальная величина Е(А, В) определяется, если положить частные произ- производные дЕ/дА и дЕ/дВ равными нулю и решить эти уравнения относительно А и В. Заметим, что {#*} и {ук} — постоянные в уравнении A1) и что А и В — переменные! Зафиксируем J5, а затем продифференцируем Е(А, В) по А и
5.1. ЛИНИЯ, ПОСТРОЕННАЯ МЕТОДОМ НАИМЕНЬШИХ КВАДРАТОВ 283 получим +в - «*)(**) =2 Зафиксируем Л и продифференцируем Е(А, В) по 5. Получим N N A3) ^it^ = Е 2(А^ + # ~ Ы = 2 Е(Ахл + В - у*). Положим частные производные равными нулю в A2) и A3) и воспользуемся свойством дистрибутивности суммы, чтобы получить N N N N A4) 0 = J2{Ax2k + Вхк - хкУк) = AY,4 + BY,*k-J2 k~l fc=l A:=l к=1 N N N A5) 0 = ^ к=Х Уравнения A4) и A5) можно привести к стандартному виду систем и получить нормальные уравнения A0). Решаются такие системы уравнений с помощью той же техники, что и для решения систем линейных уравнений в главе 3. Тем не менее метод, примененный в программе 5.1, преобразует ^сходные точки таким образом, чтобы матрица была хорошо обусловлена (см. упражнения). Пример 5.2. Найдем линию, построенную по методу наименьших квадратов, для исходных точек, заданных в примере 5.1. Суммы, требуемые для нормальных уравнений A0), легко получить, используя значения табл. 5.2. Линейная система, включающая Аи В, имеет вид 92А + 20В = 25, 20А+ 8? = 37. Решением линейной системы будет А « -1,6071429 иВй 8,6428571. Таким образом, линия, построенная методом наименьших квадратов, имеет вид (рис. 5.3) у = -l,6071429z + 8,6428571 ¦
284 Глава 5. Построение кривой по точкам Таблица 5.2. Получение коэффициентов нормальных уравнений Хк -1 0 1 2 3 4 5 6 20 Ук 10 9 7 5 4 3 0 1 37 х\ 1 0 1 4 9 16 25 36 92 ХкУк -10 0 7 10 12 12 0 -6 25 -1 Рис. 5.3. Линия, построенная методом наименьших квадратов (МНК), у = -1,6071429х + + 8,6428571 Степенная подгонка у = Ахм В некоторых случаях функция имеет вид f(x) = Ахм, где М — известная постоянная. Примером может служить движение планет, показанное на рис. 5.1. В этом случае определяем только один параметр А. Теорема 5.2 (степенная подгонка)* Предположим, что {(#*;?yjfc)}fcLi — N то- точек с различными абсциссами. Коэффициент А кривой, построенной методом наименьших квадратов, у = Ахм, равен A6)
5.1. ЛИНИЯ, ПОСТРОЕННАЯ МЕТОДОМ НАИМЕНЬШИХ КВАДРАТОВ 285 Благодаря технике метода наименьших квадратов видим, что минимум функции Е(А) равен N A7) В данном случае достаточно решить уравнение Е'(А) = 0. Производная равна N N A8) Е\А) = jf) " Vk)(xjf) = Таким образом, коэффициент А является решением уравнения A9) которое приводит к равенству A6). k=i Пример 5.3. Студенты собрали данные в табл. 5.3. Рассмотрим отношение d = = \gt2, где d — расстояние, указанное в метрах, и t — время, указанное в секундах. Найдем гравитационную постоянную д. Значения из табл. 5.3 используем, чтобы найти суммы, требуемые в A6), где степень М = 2. Коэффициент равен А = 7,68680/1,5664 = 4,9073, и получаем, что d = = 4,9073*3 и д = 2А = 9,7146 м/с2. ¦ Следующая программа для построения линии методом наименьших квадратов численно устойчива: она дает надежные результаты в случае, когда нормальные уравнения A0) плохо обусловлены. Приглашаем читателя усовершенствовать ал- алгоритм этой программы в упр. 4-7. Таблица 5.3. Вычисление коэффициентов для степенной подгонки Время, tk 0,200 0,400 0,600 0,800 1,000 Расстояние, dk 0,1960 0,7850 1,7665 3,1405 4,9075 dkt\ 0,00784 0,12560 0,63594 2,00992 4,90750 7,68680 tt 0,0016 0,0256 0,1296 0,4096 1,0000 1,5664
286 Глава 5. Построение кривой по точкам Программа 5.1 (построение линии методом наименьших квадратов). По- Построение линии методом наименьших квадратов у = Ах + В, которая соответ- соответствует N данным точкам (хц у\),..., {xn\ Vn)- function [A,B]=lsline(X,Y) %Вход - X - вектор абсцисс размера lxn 7. - Y - вектор ординат размера lxn •/.Выход - А - коэффициент при х в уравнении Ах + В 7, - В - постоянный коэффициент в уравнении Ах + В xmean=mean(X); ymean=mean(Y); sumx2=(X-xmean)*(X-xmean)'; sumxy:=(Y-ymean)*(X-xmean) '; A=sumxy/sumx2; B=ymean-A*xmean; Упражнения к разделу 5.1 В упр. 1 и 2 найдите линию, построенную методом наименьших квадратов, у = = f{x) = Ах + В, по наблюдениям и вычислите 1. (а) (с) -2 -1 0 1 2 хк -4 -1 0 2 3 Ук 1 2 3 3 4 Ук -3 -1 0 1 2 1,2 1,9 2,6 3,3 4,0 /Ы -3,0 -0,9 -0,2 1,2 1,9 (Ь) Хк -6 -2 0 2 6 7 5 3 2 0 /Ы 7,0 4,6 3,4 2,2 -0,2
5.1. ЛИНИЯ, ПОСТРОЕННАЯ МЕТОДОМ НАИМЕНЬШИХ КВАДРАТОВ 287 2. (а) (с) Хк -4 -2 0 2 4 хк -8 -2 0 4 6 Ук 1,2 2,8 6,2 7,8 13,2 Ук 6,8 5,0 2,2 0,5 -1,3 /Ы 0,44 3,34 6,24 9,14 12,04 /Ы 7,32 3,81 2,64 0,30 -0,87 (Ь) -6 -2 0 2 6 У* -5,3 -3,5 -1,7 0,2 4,0 -6,00 -2,84 -1,26 0,32 3,48 3. Найдите степенную подгонку у = Ах9 где М = 1, линии, которая проходит через начало координат, по наблюдениям и вычислите i?2(/)- (а) Хк -4 -1 0 2 3 У* -3 -1 0 1 2 -2,8 -0,7 0,0 1,4 2,1 (Ь) Хк 3 4 5 6 8 Ук 1,6 2,4 2,9 3,4 4,6 f(Xk) 1,722 2,296 2,870 3,444 4,592 (с) Хк 1 2 3 4 5 У* 1,6 2,8 4,7 6,4 8,0 f(Xk) 1,58 3,16 4,74 6,32 7,90 4. Найдите средние значения ж и у для точек {{хк,Ук)}%=1 п0 формулам N N к=1 Покажите, что точка (ж, у) лежит на линиии, построенной методом наимень- наименьших квадратов, которая определена заданной совокупностью точек.
288 Глава 5. Построение кривой по точкам 5. Покажите, что решение системы A0) можно задать в виде N N N \ N где к=1 Указание. Используйте метод исключения Гаусса для системы A0). 6. Покажите, что значение D в упр. 5 не равно нулю. Указание. Покажите, что D = N Х)ь=1 (xk — хJ. 7. Покажите, что коэффициенты Аи В для линии, построенной методом наи- наименьших квадратов, можно вычислить следующим образом. Сначала вычис- вычислите средние значения х и у из упр. 4, а затем выполните вычисления N N С = Указание. Используйте Xk = я* — х, Yk = у^ — У и сначала найдите линию Г = 8. Найдите степенную подгонку у = Лж2 и у = Вж3 для данных, приведен- приведенных ниже, и используйте ??2(/)> чтобы определить, какая из кривых лучше подогнана. (а) 2,0 2,3 2,6 2,9 3,2 Ук 5,1 7,5 10,6 14,4 19,0 (Ь) Хк 2,0 2,3 2,6 2,9 3,2 Ук 5,9 8,3 10,7 13,7 17,0 9. Найдите степенную подгонку для у = А/х и у = В/ж2 по приведенным ниже данным и используйте ??2(/)> чтобы определить, какая из кривых лучше подогнана.
5.1. ЛИНИЯ, ПОСТРОЕННАЯ МЕТОДОМ НАИМЕНЬШИХ КВАДРАТОВ 289 (а) 0,5 0,8 1,1 1,8 4,0 Ук 7,1 4,4 3,2 1,9 0,9 (Ь) Хк 0,7 0,9 1,1 1,6 3,0 Ук 8,1 4,9 3,3 1,6 0,5 10. (а) Выведите нормальные уравнения, по которым методом наименьших квад- квадратов можно найти линию, которая проходит через начало координат, у = Ах. (b) Выведите нормальные уравнения, по которым можно найти выравнива- выравнивание методом наименьших квадратов, параболы у = Ах2. (c) Выведите нормальные уравнения, по которым можно найти выравнива- выравнивание методом наименьших квадратов, параболы у = Ах2 + В. И. Рассмотрите построение методом наименьших квадратов линии для каж- каждой совокупности точек, определяемых следующим образом: Sn = = {(тЬ (т?) )}ь=1' где N = 2,3,4,.... Отметим также, что для каждого значения N все точки в Sn лежат на графике функции f(x) = х2 на замкну- замкнутом интервале [0; 1]. Пусть х^ и у^ — средние значения заданных точек (см. упр. 4). Пусть х — среднее значение х на интервале [0; 1] и пусть у — среднее (среднее арифметическое) значение f(x) = ж2 на интервале [0; 1]. (a) Покажите, что Нт^-^оо #лг = #- (b) Покажите, что Пт^_юо Ум =: У- 12. Рассмотрите построение методом наименьших квадратов линии для каждой совокупности точек, определяемых следующим образбм: для N = 2,3,4, Предположим, что у = f(x) — функция интегрируемая на замкнутом интервале [a; b]. Повторите пп. (а) и (Ь) из упр. 11. Алгоритмы и программы 1. Закон Гука (Нооке) гласит, что F = кх9 где F — сила (в унциях; 1 унция = = 28,3 г), используемая для растяжения пружины, и х — величина ее растя- растяжения в дюймах (дюйм = 2,54 см). Используйте программу 5.1, чтобы найти приближение к постоянной растяжения к для приведенных ниже данных.
290 (а) 0,2 0,4 0,6 0,8 1,0 Fk 3,6 7,3 10,9 14,5 18,2 Глава 5. Построение кривой по точкам (Ь) хк 0,2 0,4 0,6 0,8 1,0 Fk 5,3 10,6 15,9 21,2 26,4 2. Напишите программу для определения гравитационной постоянной д следу- следующих совокупностей данных. Используйте степенную подгонку из упр. 5.3. (а) Время, tk 0,200 0,400 0,600 , 0,800 1,000 Расстояние, dk 0,1960 0,7835 1,7630 3,1345 4,8975 (b) Время, tk 0,200 0,400 0,600 0,800 1,000 Расстояние, dk 0,1965 0,7855 1,7675 3,1420 4,9095 3. Ниже приведены измерения расстояний девяти планет от Солнца и их звезд- звездный период в днях. Планета Меркурий Венера Земля Марс Юпитер Сатурн Уран Нептун Плутон Расстояние от солнца (км х 106) 57,59 108,11 149,57 227,84 778,14 1427,0 2870,3 4499,9 5909,0 Звездный период (дни) 87,99 224,70 365,26 686,98 4332,4 10 759 30684 60188 90 710 Модифицируйте свою программу для решения задачи 2, чтобы также вы- вычислить ??2(/). Используйте ее, чтобы найти степенную подгонку вида у = = Схъ12 для (а) первых четырех планет и (Ь) всех девяти планет. 4. (а) Найдите линию, построенную методом наименьших квадратов, по точ- точкам {(хк, Ук)}Ьк°=1> гДе хк = @,1)& иук=хк + cos(A;1/2). (b) Вычислите i?2(/). (c) Постройте график совокупности точек и линии, построенной методом наименьших квадратов, в одной и той же системе координат.
5.2. Построение кривой по точкам 291 5.2. Построение кривой по точкам Метод линеаризации данных для у = СеАх Предположим, что заданы точки (#i, yi), (#2,1/2)? • • • ? (#лг, Vn) и требуется вы- выполнить подгонку экспоненциальной кривой вида A) У = СеАх. Первым шагом будет логарифмирование обеих частей: B) Затем заменим переменные: C) У В результате получим линейное соотношение между новыми переменными X и У: D) Y = АХ + В. Исходные точки (зд,у&) на плоскости ху преобразовались в точки (Xk\Yk) = = (хь; ln(yfc)) на плоскости XY. Этот процесс называют линеаризацией данных. Тогда построенная методом наименьших квадратов (МНК) линия D) является подгонкой к точкам {(-X*; 1^)}. Нормальными уравнениями для нахождения А и В будут уравнения / N \ ЛГ \к=1 I fc=l После того как Аи В найдены, вычисляем параметр С уравнения A): F) С = ев. Пример 5.4. Используем метод линеаризации данных и найдем экспоненци- экспоненциальную подгонку у = СеЛх по пяти точкам: @; 1,5), A; 2,5), B; 3,5), C; 5,0) и D; 7,5). Применим преобразование C) к исходным точкам и получим G) {(**; Ук)} = {@; 1пA,5), A; 1пB,5)), B; 1пC,5)), C; 1пE,0)), D; 1пG,5)) = = {@; 0,40547), A; 0,91629), B; 1,25276), C; 1,60944), D; 2,01490)}.
292 Глава 5. Построение кривой по точкам 2,0 1,5 1,0 0,5. о У = АХ +, 5.4. Преобразованные точки {(Xk;Yk)} Таблица 5.4. Вычисление коэффициентов нормальных уравнений для преобразованных точек {(Хкш, Yk)} Хк 0,0 1,0 2,0 3,0 4,0 Ук 1,5 2,5 3,5 5,0 7,5 хк 0,0 1,0 2,0 3,0 4,0 10,0 = ?** Yk = \п(ук) 0,405465 0,916291 1,252763 1,609438 2,014903 6,198860 = ЕП XI 0,0 1,0 4,0 9,0 16,0 30,0 = Е**2 XkYk 0,000000 0,916291 2,505526 4,828314 8,059612 16,309743 = ZXkYk На рис. 5.4 показаны преобразованные точки и линеаризированная форма кривой. Уравнение полученной методом наименьших квадратов линии Y = АХ + В по точкам G) имеет вид (8) Y = 0,391202Х + 0,457367. Вычисления коэффициентов по нормальным уравнениям E) приведены в табл. 5.4. В результате линейная система E) для нахождения Аи В примет вид (9) 3(Ь4 + 10В = 16,309742, 10А+ 5В= 6,198860. Решениями будут значения А = 0,3912023 и В = 0,457367. Тогда вычисляем С, С = е0'457367 = 1,579910, и эти значения Аи С подставляем в формулу A), чтобы получить экспоненциальную подгонку (рис. 5.5): A0) у = 1,579910е0'3912023ж (подгонка линеаризированных данных). ¦
5.2. Построение кривой по точкам 293 Рис. 5.5. Экспоненциальная подгонка у = 1,579910 х X е0>3912023ж? ПОЛуЧенная ме_ тодом линеаризации данных Нелинейный метод наименьших квадратов для у = СеАх Предположим, что заданы точки {х\\ yi), (#2; уг)> • • • ? (#лг; Улг) и требуется про- произвести подгонку экспоненциальной кривой: A1) у = СеАх. Для процедуры нелинейного метода наименьших квадратов требуется найти ми- минимум N A2) Частные производные Е(А, С) по Аи С равны A3) Т -ук){СхкеА*ь) fc=i A4) N ОС к=1 Если положить частные производные в A3) и A4) равными нулю и затем упро- упростить эти выражения, то можно получить нормальные уравнения N N 2^ ?* = 0, fc=i к=\
294 Глава 5. Построение кривой по точкам Уравнения A5) — это нелинейные уравнения с неизвестными А и С, которые можно решить методом Ньютона. На это требуется только время на вычисле- вычисления и итерация, для которой нужны хорошие начальные значения для А и С. Во многих пакетах прикладных программ содержатся встроенные подпрограммы ми- минимизации функций от нескольких переменных, которые можно непосредственно использовать для минимизации функции Е(А, С). Например, симплекс-алгоритм Нелдера-Мида (Nelder-Mead) можно непосредственно использовать для миними- минимизации A2) и обойтись без уравнений A3)-A5). Пример 5.5. Используем метод наименьших квадратов и найдем экспоненци- экспоненциальную подгонку у = СеАх по пяти точкам: @; 1,5), A;2,5), B; 3,5), C; 5,0) и D; 7,5). Для этого минимизируем величину Е(А, С): Е(А, С) = (С- 1,5J + {СеА - 2,5J + (Се2Л - 3,5J+ * + (Сезл - 5,0J + (Се4Л - 7,5J. Воспользуемся командой MATLAB f mins, чтобы найти приближения величин А и С, которые минимизируют Е(А, С). Сначала запишем Е(А^С) как М-файл в MATLAB. function z=E(u) A=u(l); C=uB); z=(C-1.5).~2+(C.*exp(A)-2.5).~2+(C.*expB*A)-3.5).~2+... (C.*expC*A)-5.0).~2+(C.*expD*A)-7.5).~2; Используя команду MATLAB Command Window f mins и начальные значения A = 1,0 и С = 1,0, найдем >>fmins('E>,[l 1]) ans = 0.38357046980073 1.61089952247928 Такая экспоненциальная подгонка по пяти точкам имеет вид A7) у = 1,6108995е0'3835705 (подгонка нелинейным МНК). Сравнение решений, полученных методом линеаризации данных и нелинейным методом наименьших квадратов, приведено в табл. 5.5. Существует незначитель- незначительное различие в коэффициентах. При интерполировании, как можно убедиться, приближения различаются не более чем на 2% на интервале [0; 4] (см. табл. 5.5 и рис. 5.6). Если предполагается нормальное распределение ошибок в данных, обычно предпочитают A7). Если экстраполировать данные вне области, то разни- разница между двумя решениями будет возрастать и расхождение увеличится прибли- приблизительно до 6%, когда х = 10. ¦
5.2. Построение кривой по точкам 295 Таблица 5.5. подгонок Сравнение двух экспоненциальных 0,0 1,0 2,0 3,0 4,0 5,0 6,0 7,0 8,0 9,0 10,0 Ук 1,5 2,5 3,5 5,0 7,5 1.5799ео'3912Ох 1,5799 2,3363 3,4548 5,1088 7,5548 11,1716 16,5202 24,4293 36,1250 53,4202 78,9955 1.6109е038357х 1,6109 2,3640 3,4692 5,0911 7,4713 10,9644 16,0904 23,6130 34,6527 50,8535 74,6287 т— х Рис. 5.6. График сравнения 10 двух экспоненциальных кривых Преобразования для линеаризации данных Техника метода линеаризации данных применяется научными работниками для подгонки таких кривых, как у = Се^Ах\у = А\п(х) + В и у = А/х + В. Когда выбрана кривая, следует найти такое подходящее преобразование переменных, которое предоставит возможность получить линейную зависимость. Читатель, например, может проверить, что у = D/(x + С) преобразовывается в линейную задачу Y = АХ + В с использованием замены переменных (и постоянных) X = = xy,Y = у, С = —1/А и D = —В/А. Графики нескольких случаев возможных кривых показаны на рис. 5.7, а другие полезные преобразования приведены в табл. 5.6.
296 Глава 5. Построение кривой по точкам D Ax + B' У = Вх' А=\,С=\ I У = У = у = Рис. 5.7. Возможные кривые, используемые в "методе линеаризации данных"
5.2. Построение кривой по точкам 297 Таблица 5.6. Замена У У У У У У " У У У Функция, /=/(х) - А в X D х + С 1 Ах + В X Ах + В = Л1п(х) + Б = СеАх = Схл = (Лх + Я) = Cxe~Dx L 1 + Се^* переменной (переменных) для Линеаризированная форма, Y = Ах + В X -1 D У Н (жу) 4~ 77 - - Ах + В У У х у = А\п(х) + В 1п(у) = Ах + 1п(С) \х/ In Г- - Л - Ах + 1п(С) метода линеаризации данных Замена переменной (переменных) и постоянных Х= -,Y = y X X-xy,Y-y У Х- i,y- i х у Х = 1п(х),У = у Х = х,У = 1пЫ С = ев 1 Vx/ ж? п V у / С = ев и L — постоянные, которые должны задаваться Линейный метод наименьших квадратов Задача линейного метода наименьших квадратов формулируется следующим образом. Предположим, что заданы N точек {(я^; у к)} и совокупность М линейно независимых функций {fj{x)}. Требуется найти М таких коэффициентов {с^}, чтобы функция f(x)9 заданная в виде линейной комбинации м A8)
298 Глава 5. Построение кривой по точкам минимизировала сумму квадратов ошибок N A9) е(с1,с2?...)см) = fc=i Чтобы функция .Е была минимальной, каждая ее частная производная должна равняться нулю (т. е. dE/dci = 0 для г = 1, 2, ..., М). В результате получим систему уравнений <20> Е ( ( Е ci г = 1, 2, .... М. Перестановка порядка суммирования в B0) приведет к системе линейных урав- уравнений размера М х М, где {cj} — неизвестные коэффициенты. Они называются нормальными уравнениями: м / N \ N ( b )v* дам t = l, 2, .... М. Запись в матричном виде Несмотря на то что B1), как легко видеть, является системой М линейных уравнений с М неизвестными, нужна некоторая ловкость, чтобы не было излиш- излишних вычислений, когда система записана в матричном обозначении. Ключом к этому является приведенная ниже запись матриц F и F': fi(xN) Рассмотрим произведение матрицы F' и матрицы столбца У: B2) f\{x2) /2(^2) f\{xz) /2(^3) fi(xN) /2B n) У2
5.2. Построение кривой по точкам 299 Элемент в г-й строке произведения матриц F'Y в B2) такой же, как г-й элемент в столбце матрицы выражения B1), т. е. N B3) ]Г fi(xk)Vk = строка^ F' • [yi у2 ... vn]' • А сейчас рассмотрим произведение FfF, которое является матрицей размера МхМ: лы /i(x3) ••• л(хлгI R1!^1? i2 Jl\x2) /2 Л(^з) /: Элемент в г-й строке и j-m столбце матрицы FfF — это коэффициент Cj в г-й строке уравнения B1), т. е. N B4) ]Г fi(xk)fj(xk) = /i(a?i)/j(rci) + fi(x2)fj(x2) + • - • + fi(xN)fj(xN). Когда М мал, численно эффективным методом вычисления коэффициентов урав- уравнения A8) линейным методом наименьших квадратов является сохранение мат- матрицы F, вычисление FfF и F'Y и затем решение системы линейных уравнений B5) F'FC = FrY для матрицы коэффициентов С. Построение полинома по точкам Когда упомянутый выше метод приспособлен для использования функций {fj(x) = xi~1} и индекс суммирования изменяется от j = 1 до j = М + 1, то функция /(ж) будет полиномом степени М: B6) f(x) = ci + с2я + с3ж2 + • • ¦ + cM+isM- Покажем, как найти методом наименьших квадратов параболу; обобщение на полиномы высшей степени получается просто, поэтому оставляем его читателю. Теорема 5.3 (построение параболы методом наименьших квадратов). Пред- Предположим, что {(#fc;yfc)}fcLi -~ N точек, абсциссы которых различны. Коэффици- Коэффициенты параболы, построенной методом наименьших квадратов, B7) y = f(x) = Ax2
300 Глава 5. Построение кривой по точкам А, В и С являются решениями линейной системы (N \ / N \ / N \ N ( fc=l / U=l / \к=1 / fc= / N \ / N \ ( N \ ЛГ B8) Е4И+ Е4 5+ 5>* C = ? \fc=l / \fc=l / \fc=l / A;= / N \ ( N \ ЛГ \A:=1 / \fc=l / A;=l Доказательство. Коэффициенты А, В и С минимизируют величину: B9) Е(А, В, С) = Y,(M + Bxk + C- у*J- k-l Все частные производные дЕ/дА, дЕ/дВ и дЕ/дС должны быть равны нулю. Это можно записать как 0 = N C0) 0 = дЕ^°) = 2 Е(^4 + Вхк дВ iT 0= = Используя свойство дистрибутивности сложения, можно вынести значения А, В и С за знак суммы в C0), чтобы получить нормальные уравнения, заданные в B8). • Пример 5.6. Построим параболу методом наименьших квадратов по четырем точкам: (-3; 3), @; 1), B; 1) и D; 3). Данные из табл. 5.7 используются для вычисления сумм, требуемых в линейной системе B8). Система линейных уравнений B8) для нахождения А, В и С примет вид 353А + 455 + 29С = 79 45Л + 29Б+ ЗС= 5 29А+ ZB+ АС= 8.
5.2. Построение кривой по точкам 301 Таблица 5.7. Получение коэффициентов для построения параболы методом наименьших квадратов в примере 5.6 Хк -3 0 2 4 3 Ук 3 1 1 3 8 х\ 9 0 4 16 29 -27 0 8 64 45 xt 81 0 16 256 353 ХкУк -9 0 2 12 5 х\ук 27 0 4 48 79 -3 -2 -1 Рис. 5.8. Парабола, построен- построенная методом наименьших квад- квадратов в примере 5.6 Решениями линейной системы будут значения А = 585/3278, В = —631/3278 и С = 1394/1639, и требуемая парабола имеет вид (см. рис. 5.8) 585 3278 х2- ~ 0,192495* + 0,850519. Полиномиальное раскачивание Заманчиво использовать построение полинома методом наименьших квадратов для подгонки нелинейных данных. Но если данные не проявляют полиномиальной природы, то в результате получается кривая, которая будет сильно осциллировать. Этот феномен называется полиномиальное раскачивание. Оно явно наблюдается у полиномов высокой степени. Из этих соображений полиномы степени 6 или выше редко используются, если неизвестно, что истинная функция, выражающая зависимость, является полиномом. Например, пусть f(x) — 1,44/ж2 + 0,24ж используется для генерирования ше- шести точек: @,25; 23,1), A,0; 1,68), A,5; 1,0), B,0; 0,84), B,4; 0,826) и E,0; 1,2576). Кривые, построенные по этим точкам методом наименьших квадратов с помощью
302 Глава 5. Построение кривой по точкам 30 20 10 0 -10 -20 у = Рз(х) (а) 12 3 4 5 (Ь) 30 20 10 0 -10 -20 v 1 Рл 2 , У = /(х) (с) 30 20 10 0 -10 -20 («0 Рис. 5.9. (а) Использование Рг(^) для подгонки данных. (Ь) Использование Рз(^) Для подгонки данных, (с) Использование Р±{х) для подгонки данных, (d) Использование Рь(х) для подгонки данных полиномов и Р2(х) = 22,93 - 16,9бх + 2,553х2, Р3(х) = 33,04 - 46,51ж + 19,51ж2 - 2,296ж3, РА(х) = 39,92 - 80,93я + 58,39ж2 - 17,15д;3 + 1,680а;4, ,4х2 - 57,51я3 + 13,03ж4 - 1,085д;5, Рь(х) = 46,02 - 118, показаны на рис. 5.9(a)-(d). Заметим, что Р$(х), Р±{х) и Рь(х) проявляют наи- наибольшее раскачивание на интервале [2; 5]. Даже несмотря на то, что полином Ръ{х) проходит через шесть точек, он дает наихудшую подгонку. Если же нужно подгонять эти данные полиномом, следует выбрать полином Р2(х). В следующей программе используется матрица F с элементами fj(x) = х*~1 для функции A8).
5.2. Построение кривой по точкам 303 Программа 5.2 (построение полинома методом наименьших квадратов). Построение полинома степени М методом наименьших квадратов Рм(х) = с\ + С2Х + сзх2 Н который подогнан по N точкам Ь смхМ~1 + function С = lspoly(X,Y,M) •/«Вход - X - вектор абсцисс размера lxn У, - Y - вектор ординат размера lxn У, - М - степень полинома, построенного У, методом наименьших квадратов У,Выход - С - коэффициенты полинома n=length(X); B=zeros(l:M+l); F=zeros(n,M+l); '/.Заполнение столбцов матрицы F степенями X for k=l:M+l F(:,k)=X>.~(k-l); end '/.Решение линейной системы B5) A=F'*F; B=F'*Y>; С=А\В; C=flipud(C); Упражнения к разделу 5.2 1. Для каждой совокупности данных найдите параболу f(x) = Ах2 + Вх + С, построенную методом наименьших квадратов. (а) хк -3 -1 1 3 Ук 15 5 1 5 (Ь) я* -3 -1 1 3 Ук -1 25 25 1 2. Для каждой совокупности данных найдите параболу f(x) = Ах2 + Вх + С, построенную методом наименьших квадратов.
304 Глава 5. Построение кривой по точкам (а) -2 -1 0 1 2 Ук -5,8 1Д 3,8 3,3 -1,5 (Ь) Хк -2 Y 0 1 2 Ук 2,8 2,1 3,25 6,0 11,5 (с) Хк -2 __ J 0 1 2 У* 10 1 0 2 9 3. Для каждой совокупности данных найдите кривую, построенную методом наименьших квадратов. (a) f(x) = СеАх, используя замену переменных X = х9 Y = 1п(у) иС = ев из табл. 5.6 для линеаризации данных. (b) f(x) = СхА, используя замену переменных X = ln(x), Y = 1п(у) и С = ев из табл. 5.6 для линеаризации данных. 4 (c) Используйте ?^(/), чтобы определить, какая из кривых лучше подогнана. Хк 1 2 3 4 5 У<к 0,6 1,9 4,3 7,6 12,6 4. Для заданной совокупности данных найдите кривую, построенную методом наименьших квадратов. (a) f(x) = СеАх, используя замену переменных X = х, Y = 1п(у) иС = е5 из табл. 5.6 для линеаризации данных. (b) f(x) = 1/(Ах + В), используя замену переменных X = х и У = 1/у из табл. 5.6 для линеаризации данных. (c) Используйте #2 (/), чтобы определить, какая из кривых лучше подогнана. Хк -1 0 1 2 3 Ук 6,62 3,94 2,17 1,35 0,89
5.2. Построение кривой по точкам 305 5. Для каждой совокупности данных найдите кривую, построенную методом наименьших квадратов. (a) f(x) = СеАх, используя замену переменных X = х, Y = \п(у) и С — ев из табл. 5.6 для линеаризации данных. (b) f(x) = (Ах + В), используя замену переменных X = х и Y = у~112 из табл. 5.6 для линеаризации данных. (c) Используйте Е2(/), чтобы определить, какая из кривых лучше подогнана. (О Хк -1 0 1 2 Ук 13,45 3,01 0,67 0,15 W Хк -1 0 1 3 Ук 13,65 1,38 0,49 0,15 6. Логистическая кривая роста населения. Когда число особей в популяции P(t) ограничено предельным значением L, его можно описать логистической кривой вида P(t) = L/(l + CeAt). Найдите А и С для нижеприведенных данных, где L известно. (a) @,200), A,400), B,650), C,850), D,950), and L = 1000. (b) @,500), A,1000), B,1800), C,2800), D,3700), and L = 5000. 7. Используйте данные о населении США и найдите логистическую кривую P(t). Дайте оценку на 2000 год. (а) Предположим, что L = 8 х 108. (Ь) Предположим, что L = 8 х 108 Год 1800 1850 1900 1950 tk -10 -5 0 5 Pk 5,3 23,2 76,1 152,3 Год 1900 1920 1940 1960 1980 tk, 0 2 4 6 8 Pk 76,1 106,5 132,6 180,7 226,5 В упр. 8-15 осуществите указанные замены переменных в табл. 5.6 и получите линеаризированную форму для каждой из приведенных функций. 14+в - D X 1 12. у = А1п{х) + В 14. у = (Ах + В)-2 Z7 • 11. 13. 15. У У - У = У = х + С X А + Вх СхА Cxe~Dx
306 Глава 5. Построение кривой по точкам 16. (а) Следуя наброску доказательства теоремы 5.3, получите нормальные урав- уравнения для построения кривой f(x) = Acos(x) + Bsin(x) методом наи- наименьших квадратов. (Ь) Воспользуйтесь результатами из п. (а), чтобы найти методом наимень- наименьших квадратов кривую f(x) = A cos (ж) +В sin(a;) для нижеприведенных данных. -3,0 -1,5 0,0 1,5 3,0 Ук -0,1385 -2,1587 0,8330 2,2774 -0,5110 17, Плоскость z = Ах + By + С, построенная методом наименьших квадратов по N точкам (a?i,yi,2i), ..., (ядг,2/лг,2лг)> получена путем минимизации выражения N Е(А, В, С) = + Вук + С - zk)\ Получите нормальные уравнения: k=l 18. Найдите методом наименьших квадратов плоскости для следующих данных. (a) A; 1; 7), A; 2; 9), B; 1; 10), B; 2; 11), B; 3; 12). (b) A; 2; 6), B; 3; 7), A; 1; 8), B; 2; 8), B; 1; 9). (c) C; 1; -3), B; 1; -1), B; 2; 0), A; 1; 1), A; 2; 3).
5.2. Построение кривой по точкам 307 19. Рассмотрите следующую таблицу данных: 1,0 2,0 3,0 4,0 5,0 Ук 2,0 5,0 10,0 17,0 26,0 Если замену переменных X = ху и Y = 1/у использовать для функции у = = D/(x + С), то преобразование подгонки методом наименьших квадратов имеет вид _ -17,719403 У~ х -5,476617' Если замену переменных I = а; и У = 1/у использовать для функции у = = 1/(Ах + В), то преобразование подгонки методом наименьших квадратов имеет вид У = -0,1064253:г + 0,4987330 Определите, какая из подогнанных кривых лучше и почему одно из решений полностью абсурдно. Алгоритмы и программы 1. Температурный цикл в пригороде Лос-Анджелеса за 8 ноября показан в та- таблице ниже. Приведены 24 наблюдения. (a) С помощью наброска процедуры примера 5.5 (используйте команду fmins) построите кривую f(x) = Acos(Bx) + Csin(Dx) методом наи- наименьших квадратов для заданной совокупности данных. (b) Найдите ?2(/). (c) Постройте график кривой из п. (а), найденной методом наименьших квадратов, и нанесите данные в одной и той же системе координат.
308 Глава 5. Построение кривой по точкам Время 1 2 3 4 5 6 7 8 9 10 11 Полдень Градусы 58 58 58 58 57 57 57 58 60 64 67 68 Время 13 14 15 16 17 18 19 20 21 22 23 Полночь Градусы 66 66 65 64 63 63 62 61 60 60 59 58 5.3. Интерполирование сплайнами Интерполирование полиномом по совокупности (N + 1)-й точки часто бывает неудовлетворительным. Как обсуждалось в разделе 5.2, полином степени N может иметь N — 1 локальный максимум и минимум и график может раскачиваться, чтобы пройти через точки. Еще одним методом является объедине- объединение фрагментов графиков полиномов низкой степени Sk(x) и интерполирование между последовательными узлами {х^Ук) и (xk+иУк+г) (рис. 5.10). Две при- примыкающие части кривой у = Sk(x) и у = Sk+i{x), которые лежат выше точек [sjbja/b+i] и [xk+i;xk+2] соответственно, проходят через общий узел {xk+i\yk+i)- Две части графика соединены вместе в узле (#fc+i; Ук+1), и совокупность функций {Sk(x)} формируют кусочно-полиномиальную кривую, которая определяет S(x). (хо',Уо) —I 1 1 1 1 1 1— x Xo Xi #2 Xk Xk + 1 XN-1 XN Рис. 5.10. Кусочно-полиномиальное интерполирование
5.3. Интерполирование сплайнами 309 (so; г/о) Ч h Xq X\ X2 Xk+1 Рис. 5.11. Кусочно-линейное интерполирование (ли- (линейный сплайн) Кусочно-линейное интерполирование Самый простой в использовании полином (это полином степени 1) создает многоугольный путь из отрезков линий, которые проходят через точки. Чтобы представить эту кусочно-линейную кривую, используется полином Лагранжа из раздела 4.3: A) Sk(x)=yk X — Ук+1 X — — хк for xk<x<xk+i. Результирующая кривая выглядит подобно ломаной линии (рис. 5.11). Эквивалентное выражение можно получить, если использовать формулу для тангенса угла наклона отрезка линии в точке: Sk(x) =yk+dk(x-xk), где dk = (j/fc+i — yk)/(xk+i— xk). Полученный линейный сплайн можно записать в форме ддя х в для х в B) S(x) = Ук + dk(x - хк) 2/АГ-1 дляхв ДЛЯ X В Для точного вычисления S(x) формула B) лучше, чем формула A). Предполо- Предположим, что абсциссы упорядочены следующим образом: xq < х\ < • • • < xn-\ <
310 Глава 5. Построение кривой по точкам xn. Для фиксированного значения х интервал [xk,xk+i], содержащий х, можно найти, последовательно вычисляя разности х — х\,..., х — хк, х - хк+\ до такого наименьшего целого числа к Л-1, что х — хк+\ < 0. Таким образом находим такое к, что Xk < х < Xk+ъ и значение функции сплайна S(x) будет равно C) S(x) = Sk(x) =yk + dk(x-xk) для xk<x<xk+i. Эту технику можно обобщить для полиномов высшего порядка. Например, если задано нечетное число узлов Х(ь#ь • • • >#2М? то кусочно-квадратичный полином можно построить на каждом подынтервале [#2fc;#2fc+2J Для к = 0, 1, ..., М — 1. Недостатком полученного в результате квадратичного сплайна является то, что кривизна в четных узлах Х2к резко изменяется, и это может вызвать нежелатель- нежелательный изгиб или искривление графика. Вторая производная квадратичного сплайна имеет разрыв в четных узлах. Если использовать кусочно-кубические полиномы, то и первую, и вторую производные можно сделать непрерывными. Кусочно-кубические сплайны Вычерчивание полиномиальной кривой по совокупности точек применяется в CAD (проектирование с помощью компьютера), САМ (применение компьютера в обрабатывающей промышленности) и системах компьютерной графики. Опе- Оператор хочет нарисовать гладкую кривую, которая проходит через заданные точки и не искажена. Традиционно было распространено использование французской кривой или архитектурного сплайна и субъективно гладкая кривая рисовалась на глаз. Математически можно построить такие кубические функции Sk(x) на каж- каждом интервале [#fc;a;fc+i]> чтобы полученная в результате кривая у = S(x) и ее первая и вторая производные были непрерывны на большом интервале [яо;^]. Непрерывность S" (х) означает, что график у = S(x) не будет иметь острых углов. Непрерывность S"(x) означает, что радиус кривизны определен в каждой точке. Определение 5.1 (интерполяционный кубический сплайн). Предположим, что {(ж*; у*)}ь=о — iV + 1 точка, где а = xq < х\ < - • • < ждг = Ь. Функция S(x) называется кубическим сплайном, если существует N кубических полиномов Sk(x) с коэффициентами sk?, 5^д, s*,2 и sk^, которые удовлетворяют следующим условиям. I. S(x) = Sk(x) = skfi + Sk,i(x - xk) + ski2(x - xkJ + sk,s(x - хк)г для х € [я*;, rrfc+i] и к = 0, 1, ..., N - 1. II. S(xk)=yk для А; = 0, 1, ...,N. III. Sk{xk+i) = Sib+ifr/b+i) Для к = 0, 1,..., N - 2. IV. Sfk(xk+l) = S'k+1(xk+1) для к = 0, 1, ..., N - 2. V. S'?(xk+i) = S?+1(a*+i) для fc = 0, 1, ..., N - 2.
5.3. Интерполирование сплайнами 311 Свойство I утверждает, что S(x) состоит из кубических полиномов. Свойство II утверждает, что кусочно-кубическое интерполирование задается совокупностью точек. Свойства III и IV требуют, чтобы кусочно-кубическое представление состо- состояло из кривых, которые являются гладкими непрерывными функциями. Свойство V утверждает, что вторая производная полученной в результате функции также непрерывна. Существование кубического сплайна Попытаемся выяснить, насколько это возможно, как построить кубический сплайн, который удовлетворяет свойствам I-V. Каждый кубический полином Sk(x) имеет 4 неизвестные постоянные (sfc,o> 5fc,i> sk,2 и 5&,з)> ПОЭТОМУ существует AN коэффициентов, которые нужно найти. Неточно говоря, есть 4iV степеней свободы или условий, которые должны быть точно определены. Заданные точки обеспе- обеспечивают N + 1 условие, и каждое из свойств III—V обеспечивает N — 1 условие. Следовательно, задаются N + 1 + 3(N — 1) = AN — 2 условия. Это оставляет две степени свободы. Будем называть их ограничениями в крайних точках: они будут включать либо Sf(x), либо S"(x) в точках хо и х^ (обсудим их ниже). А сейчас продолжим построение. Так как S(x) — кусочно-кубический полином, его вторая производная S" (х) кусочно-линейна на интервале [xq]Xn]. Формула линейного интерполирования Лагранжа дает следующее представление для Sff(x) = S%(x): X~Xk+1 + ff'W) *"** D) S'{(x) = S"(xk)X~Xk+1 + %k Xk1 Используем в D) т& = S"(xk), гпь+\ = Sn(xk+\) и hk = #?+i — x^ и получим E) Si(x) = ^(xk+l -x) + 2?±Ц* - xk) hk hk Для xk < x < xk+\ и fc = 0, 1, ..., JV — 1. Интегрируя уравнение E) дважды, введем две постоянные интегрирования. Результат можно преобразовать так, что он примет вид F) Sk{x) = ~{xk+i - xf + ^г1^ - xkf +рк(хк+г - ж) + qk(x - хк). Ьпк Ьпк Подставляя хк и хк+\ в уравнение F) и используя значения ук = Sk(xk) и ук+1 = Sk(xk+i), получим следующие уравнения, в которые входят рк и qk соот- соответственно: G) Vk = Y-hl
312 Глава 5. Построение кривой по точкам * Эти два уравнения можно легко решить относительно рк и qk и затем их значения подставить в уравнение F). В результате получим следующее выражение для кубической функции Sk(x): ; Заметим, что представление (8) приводится к форме, которая включает только неизвестные коэффициенты {тк}. Для того чтобы найти их значения, нужно использовать производную от функции (8), которая имеет вид ад = -?( J hk 6 J hk hk Вычислив (9) в точке хк и упростив результат, получим A0) S'k(xk) = -^hk-^hk + dk, где 4 = 0 0 Подобным образом можно заменить к на к — 1 в (9), чтобы получить выражение для 5j[._1(rr), и, вычислив его в точке хк, получить (П) Sj-i(s*) Используем свойство IV и уравнения A0) и A1), чтобы получить важное соот- соотношение, включающее га&_1, тк и A2) %_imfc_i + 2(/iA;_1 + /1^O71^ + hkmk+\ = ик, где ик = 6 (dfc - ck_i) для fc = 1, 2, ..., JV - 1. Построение кубического сплайна Заметим, что неизвестные в уравнении A2) являются требуемыми значения- значениями {тк} и другие члены — постоянные, полученные в результате выполнения простых арифметических действий над заданными точками {(хк; ук)}. Поэтому в действительности система A2) является неопределенной системой с N — 1 линей- линейным уравнением, включающим N+1 неизвестное, и следует восполнить ее двумя дополнительными уравнениями. Их используют, чтобы исключить то из первого уравнения и т^ из (N — 1)-го уравнения системы A2). Обычная стратегия для ограничений в крайних точках приведена в табл. 5.8.
5.3. Интерполирование сплайнами 313 Таблица 5.8. Ограничения в @ (и) (iii) (iv) (v) Описание стратегии Смыкающий кубический сплайн: задаем S'(xo), S'(xn) ("лучший выбор", если производные известны) Естественный кубический сплайн ("релаксированная кривая") Экстраполирование S" (х) в крайних ограничивающих точках S"(x) постоянная около крайних точек Задание S"(X) в каждой крайней точке крайних точках для кубического сплайна Уравнения, включающие то и ttin то :=z —(do — S (xo)) —- h>o 2 *^ t r%l i \ i \ 771JV— 1 mjv = (S (xn) - dN i) — mo = 0, tyin = 0 ho(ffi2 "~ mi) h\ /ijV — 1 \MN — l —77ijV — 2) flN-2 mo = mi, m;v = mjv-i mo = S"(x0), mN = S"(xN) Рассмотрим стратегию (v) из табл. 5.8. Если задано mo, то можно вычислить Лото, и первое уравнение (где к = 1) системы A2) примет вид 2(ho + hi)m\ + h\rri2 = щ — homo. 9 и последнее A3) Подобным образом, если задано тдг, можно вычислить Н^- уравнение системы A2) (где к = N — 1) примет вид A4) Уравнения A3) и A4) используют для к = 2, 3,..., ЛГ — 2 вместе с системой A2), образующей ЛГ — 1 линейное уравнение с коэффициентами mi, m2,..., тм-г- Не обращая внимания на стратегию выбора в табл. 5.8, можно переписать уравнения 1 и N — 1 в системе A2) и получить трехдиагональную линейную систему формы НМ = V, которая включает mi, 7712,..., A5) C2 bN-2 СЛГ-2 CLN-2 ^ЛГ~1_ mi 7Ti2 тдг-2 1^1 V2 VN-2 VN-1.
314 Глава 5. Построение кривой по точкам Линейная система A5) является строго диагонально доминирующей и имеет единственное решение (подробности приведены в главе 3). После коэффициентов {тк} коэффициенты {skj} сплайна Sk(x) вычисляют по формулам $к,о = Ук-> s*m = a*~ A6) 6 v ' тк тк+1 - тк sk = sk = Каждый кубический полином Sk(x) для эффективности вычислений можно, записать в форме вложенных умножений A7) Sk(x) = ({skjw + ski2)w + skA)w + yk, для w = x-xk где Sk(x) рассматриваем на интервале хк < х < xk+i. Уравнения A2) совместно со стратегией из табл. 5.8 можно использовать для построения кубического сплайна со свойствами, различными в крайних точках. Точнее говоря, значения то и тдг из табл. 5.8 используются, чтобы доопределить первое и последнее уравнения системы A2) и форму системы из N — 1, уравне- уравнения заданную в A5). Затем трехдиагональная система решается для оставшихся коэффициентов mi,m2,...,mw-i. И наконец формулы A6) используются для вычисления коэффициентов сплайна. В заключение сообщим, как должны быть подготовлены уравнения для каждого типа сплайна. Ограничения в крайних точках В следующих пяти леммах показана форма трехдиагональной линейной си- системы, которую следует решать для каждого ограничения в крайних точках из табл. 5.8. Лемма 5.1 (смыкающий сплайн). Существует единственный кубический сплайн, который имеет первую производную с граничными условиями S'(a) = do и 5Г(Ь) = dN. Доказательство. Решим линейную систему I -ho + 2hi J mi + him2 = Щ - 3(d0 - S'(xq)) -i + 2(/ifc-i + hk)mk + hkmk+x = uk для k = 2, 3, ..., N - 2 3 + ^
5.3. Интерполирование сплайнами 315 Замечание. Смыкающий сплайн имеет определенный наклон в крайних точках. Этот сплайн можно представить себе как кривую, полученную, когда гибкий эла- эластичный стержень вынужден проходить через заданные точки, и примыкающую к каждому краю с фиксированным наклоном. Этот сплайн может пригодиться чер- чертежнику для того, чтобы рисовать гладкую кривую, проходящую через несколько точек. Лемма 5.2 (естественный сплайн). Существует единственный кубический сплайн со свободными граничными условиями S"(a) = 0 и S"(b) = 0. Доказательство. Решим линейную систему _i + hk)mk + hkmk+i = uk для k = 2, 3, ..., N - 2, Замечание. Естественный сплайн — это кривая, которую получили, вынуждая гиб- гибкий эластичный стержень пройти через заданные точки, но допуская свободный наклон на краях, чтобы обеспечить положение, которое минимизирует осцил- осцилляцию кривой. Это полезно для вычерчивания кривой по экспериментальным данным, которые имеют несколько значащих цифр. Лемма 5.3 (экстраполяционный сплайн). Существует единственный кубиче- кубический сплайн, который используется для экстраполирования по внутренним узлам х\ и Х2, чтобы найти S"(a), и экстраполирования по узлам х^-\ и #лг-2> чтобы найти S"(b). Доказательство. Решим линейную систему _i + 2(/ifc-i + hk)mk + hkmk+i = uk для k = 2, 3, ..., N - 2, I ™N2 + I 2/l;v2 + 3/1ДГ1 + h>N-2 — , I ™>N-2 + I 2/l;v-2 + 3/1ДГ--1 + ">N-2 Замечание. Экстраполяционный сплайн эквивалентен предположению, что край кубического полинома является продолжением смежного кубического полинома, т. е. форма сплайна — единственная кубическая кривая на интервале [#о;#2] и другая единственная кубическая кривая на интервале [xn-2]Xn]- Лемма 5.4 (сплайн, заканчивающийся параболой). Существует такой един- единственный кубический сплайн, что S/f(x) = 0 на интервале [жо, #i] и Sn{x) = 0 на интервале
316 Глава 5. Построение кривой по точкам Доказательство. Решим линейную систему (З/io + 2hi)m\ + h\m2 = и\, hk-imk-i + 2(/г*_1 + hk)mk + hkmk+i = uk для k = 2, 3, ..., AT - 2, Замечание. Предположение, что 5"(ж)=0 на интервале [жо; a?i], заставляет кубиче- кубическую кривую вырождаться в параболу на интервале [xo;^i] и подобная ситуация происходит на интервале [xn~i;xn]. Лемма 5.5 (Сплайн с заданной кривизной в крайних точках). Существует единственный кубический сплайн с заданными значениями второй производной в крайних точках S"(a) и S"F). Доказательство. Решим линейную систему h\m2 = щ — hk-imk-i + 2(hkJi + hk)mk + hkmk+i = uk для k = 2, 3, ..., N - 2, /гдг_2ГП7уг-2 + 2(/1дг_2 + /lAT-lJmTV'-l = W^-i — h,N-iSff(xN). t Замечание. Задавая значения «^''(а) и 5"(b), профессионал имеет возможность получать нужную кривизну в каждой крайней точке. В следующих пяти примерах проиллюстрировано поведение различных сплай- сплайнов. Можно рассматривать комбинации условий в крайних точках, чтобы полу- получить больше различных возможностей, но оставим исследование этих случаев читателю. Пример 5.7. Найдем смыкающий кубический сплайн, который проходит через точки @; 0), A; 0,5), B; 2,0) и C; 1,5). Первая производная удовлетворяет гранич- граничным условиям S"@) = 0,2 и 5'C) = -1. Сначала вычислим величины ho = hi = h2 = I, do = B/1 - yo)/ho = @,5 - 0,0)/l = 0,5, di = (V2 - Vi)/hi = B,0 - 0,5)/l - 1,5, d2 = C/3 - V2)/h2 = A,5 - 2,0)/l = -0,5, tii = 6(di - d0) = 6A,5 - 0,5) = 6,0, u2 = 6(d2 - di) = 6(-0,5 - 1,5) = -12,0. Затем воспользуемся леммой 5.1 и получим уравнения 1 + 2 J mi + m2 = 6,0 - 3@,5 - 0,2) = 5,1, ^\ m2 = -12,0 - 3(-1,0 - (-0,5)) = -10,5.
5.3. Интерполирование сплайнами 317 Если эти уравнения упростить и записать в виде матриц, то можно получить [3,5 1,0] [mi] _ Г 5,1] [1,0 3,5j [т2\ ~ [-10,51 ' Вычисление решения тпх = 2,25 и т2 = —3,72 — простая задача. А сейчас, чтобы найти коэффициенты то и тз, применим уравнения (i) из табл. 5.8: 2 52 ш0 = 3@,5 - 0,2) - -у- = -0,36, т3 = 3(—1,0 + 0,5) - ^^ = 0,36. Затем значения то = —0,36, mi = 2,25, m2 = —3,72 и тз = 0,36 подставим в уравнения A6), чтобы найти коэффициенты сплайна. Решением является S0(x) = 0,48ж3 - 0,18ж2 + 0,2ж для 0 < х < 1, Si(x) = -1,04(ж - IK + 1,26(ж - IJ A8) + 1,28(ж-1)+0,5 для 1<ж<2, S2(x) = 0,68(ж - 2K - 1,86(д: - 2J + 0,68(^-2)+ 2,0 для 2<ж<3. Смыкающий кубический сплайн показан на рис. 5.12. ¦ Пример 5.8, Найдем естественный кубический сплайн, который проходит через точки @;0,0), A;0,5), B; 2,0) и C; 1,5) с граничными условиями S"(x) = 0 и 5"C) = 0. Используем те же значения {/ifc}, {d^} и {г^}, которые вычислены в приме- примере 5.7. Затем используем лемму 5.2 и получим уравнения 2A + l)mi + 7П2 = 6,0, ТП\ + Z[L + 1)ТП2 = —±Z,U. В матричной записи линейная система имеет вид [4,0 1,0] [mi] [ 6,0] [1,0 4,0j [m2\ [-12,0j ' Решения mi = 2,4 и m2 = —3,6 найти легко. Следовательно, mo= 5"@) = 0 и тз = S"'C) = 0. Если уравнения A6) использовать для нахождения коэффициен- коэффициентов сплайна, можно получить v W л I /у» I ¦¦¦¦! 11 ^ /у» ^* J || Т /у» Т? ТТ Cf II ^L Т* ^^ Т 51(ж) = -(а;-1K + 1,2(ж-1J A9) + 1,3(ж - 1) + 0,5 для 1<ж<2, S2(x) = 0,6(ж - 2K - 1,8(ж - 2J + 0,7(ж - 2) + 2,0 для 2<ж<3.
318 Глава 5. Построение кривой по точкам 2,0 1,5 1,0 0,5 0,5 1,0 1,5 2,0 2,5 3,0 Рис. 5.12. Смыкающий кубиче- кубический сплайн с производной, удо- удовлетворяющей граничным услови- условиям S'@) = 0,2 и 5;C) = -1 2,0 1,5 1,0 0,5 - - - 0,5 у / 1 1,0 / / 1,5 2,0 t 2,5 \ | 3,0 Рис. 5.13. Естественный кубиче- кубический сплайн с 5"@) = 0 и 5"C) = = 0 Этот естественный кубический сплайн показан на рис. 5.13. ¦ Пример 5.9. Найдем экстраполяционный кубический сплайн, который проходит через точки @;0,0), A;0,5), B; 2,0) и C; 1,5). Используем значения {h^}, {dk} и {щ} из примера 5.7, лемму 5.3 и получим линейную систему C + 2 + l)mi + A - l)m2 = 6,0, A - l)mi + B + 3 + I)m2 = -12,0. В матричной форме она имеет вид 6,0 6,0 0,0] [mi 0,0 6,OJ [m2 и очень просто получаем т\ = 1,0 и т2 = —2,0. Применяем уравнения (iii) из табл. 5.8, чтобы вычислить то ит^: т0 = 1,0 - (-2,0 - 1,0) = 4,0, ш3 = -2,0 + (-2,0 - 1,0) = -5,0. И наконец, значения {ш^} подставляем в уравнения A6), чтобы найти коэффици- коэффициенты сплайна. Получим решение
5.3. Интерполирование сплайнами 319 SQ(x) = -0,5a;3 + 2,0ж2 -х для 0 < а; < 1, Si(x) = -0,5(ж - IK + 0,5(ж - IJ B0) +1,5(х-1)+0,5 для 1<ж<2, S2(x) = -0,5(ж - 2K - (х - 2J + (х - 2) + 2,0 для 2 < х < 3. Экстраполяционный кубический сплайн показан на рис. 5.14. ¦ Пример 5.10. Найдем кубический сплайн, заканчивающийся параболой, который проходит через точки @; 0,0), A; 0,5), B; 2,0) и C; 1,5). Используем значения {/&&}, {d^} и {щ} из примера 5.7 и затем применим лемму 5.4, чтобы получить C + 2)mi + т2 = 6,0, mi + B + 3)m2 = -12,0. В матричной форме система имеет вид 5,0 1,0] fmi 1,0 5,oJ [m2 и решениями будут mi = 1,75 ит2 = —2,75. Поэтому S"(x) = 0 на подынтервале у каждого края, а из формулы (iv) табл. 5.8 вытекает, что mo = mi = 1,75 и тз = т2 = —2,75. Затем значения {т^} подставляем в уравнения A6), чтобы получить решение S0(x) = 0,875ж2 - 0,375х для 0 < х < 1, х) = -0,75(ж - IK + 0,875(я - IJ + 1,375(х - 1) + 0,5 для 1<х<2, S2(x) = -1,375(а; - 2J + 0,875(ж - 2) + 2,0 для 2 < х < 3. Кубический сплайн, заканчивающийся параболой, показан на рис. 5.15. ¦ Пример 5.11. Найдем кубический сплайн урегулированной кривизны, который проходит через точки @; 0,0), A; 0,5), B; 2,0) и C; 1,5), с граничными условиями на вторую производную 5"@) = -0,3 и S"C) = 3,3. Используем значения {/&&}? {d^} и {щ} из примера 5.7 и затем применим лем- лемму 5.5, чтобы получить 2A + l)mx + m2 = 6,0 - (-0,3) = 6,3, mi + 2A + l)m2 = -12,0 - C,3) = -15,3.
320 Глава 5. Построение кривой по точкам у 2,0 1,5 1,0 0,5 ¦*б,5 1,0 1,5 2,0 2,5 3,0 Рис. 5Л4. Экстраполяционный кубический сплайн 2,0- 0,5 1,0 1,5 2,0 2,5 3,0 Рис. 5.15. Кубический сплайн, заканчивающийся параболой Матричная форма имеет вид Г4 4,0 1,0] \т{\ Г 6,3] 1,0 4,OJ [m2j [-15,3j ' и решениями будут т\ = 2,7 и m<i = —4,5. Заданные граничные условия исполь- используем, чтобы найти то = S"'@) = —0,3 итз = S"'C) = 3,3. Подстановка {m/J в уравнения A6) дает решение B2) S0{x) = 0,5ж3 - 0,15я2 + Si(x) = -1,2(ж - IK + 1,35(я? - IJ +1,35(ж — 1) + 0,5 S2(x) - 1,3(яг - 2K - 2,25(ж - 2J + 0,45(ж - 2) + 2,0 для 0 < х < 1, для 1 < х < 2, для 2 < х < 3. Этот кубический сплайн урегулированной кривизны показан на рис. 5.16. ¦ Обоснование использования кубических сплайнов Полезное свойство, которым обладают сплайны, — это минимизация коле- колебательного поведения. Следовательно, среди всех дважды дифференцируемых, непрерывных на интервале [а;Ь] функций /(#), интерполирующих заданную со- совокупность точек {(хк',Ук)}^=о> кубический сплайн меньше всего осциллирует. Следующий результат объясняет этот феномен.
5.3. Интерполирование сплайнами 321 У 2,0 1,5 1,0 0,5 - - - - 0,5 / 1 1,0 / / 1 1,5 /~\ X 1 1 2,0 2,5 3,0 Рис. 5.16. Кубический сплайн урегулированной кривизны с 5"@) = -0,3 и 5"C) = 3,3 Теорема 5.4 (минимизирующее свойство кубического сплайна). Предполо- Предположим, что / Е С2[а\ Ь] и S(x) — единственный кубический сплайн, которым интер- интерполируют функцию f{x), проходящий через точки {(ж^; f{xk))}%=0 и удовлетво- удовлетворяющий условиям смыкания на краях S'(a) = /'(а) и S'(b) = ff(b). Тогда B3) \\s"(x)Jdx<\\f"(x)Jdx. Ja Ja Доказательство. Используем интегрирование по частям и граничные условия, чтобы получить равенство Ja s"(x)(f"(x)-S"(x))dx = = S"(x)(f'(x) - S'(x) Х=6 - Г S'"(x)(f *=<* la - S'(x))dx = = 0 - 0 - [ S'"(x){f'(x) - S'(x)) dx. Ja Так как Sm(x) = бз^з на интервале [a;fc,#fc+i], значит, Г+1 S'"(x)(f'(x) - S'(x))dx = 6eM(/(x) - S(x)) JXk = 0 для к = 0,1,..., N-l. Следовательно, Jba S"(x)(f"(x)-S"(x)) dx = 0. Получаем, что B4) [ S"(x)f"(x)dx = f {S"{x)Jdx. Ja Ja
322 Глава 5. Построение кривой по точкам Так как 0 < (/"(ж) — S"(x)J, получаем интегральное соотношение гЬ 0< B5) 0<\(f"(x)-S"(x)Jdx = Ja = f {f"(x)Jdx-2 [ f"(x)S"(x)dx+ [ (S"(x)Jdx. Ja Ja Ja fa Равенство B4) подставим в B5) и получим неравенство гЬ <[ (f"(x)Jdx-\ {S"{x)Jdx. Ja Ja Его легко записать таким образом, чтобы получить соотношение B3). Теорема доказана. • Следующая программа строит интерполяционный кубический сплайн по за- заданным точкам {(xk]yk)}^-o- Коэффициенты в порядке убывания, Sk(x), к = О, 1,..., N — 1, содержатся в (к — 1)-й строке выходной матрицы S. В упражнениях читатель может модифицировать программу для других ограничений в крайних точках, указанных в табл. 5.8 и описанных в леммах 5.2-5.5. Программа 5.3 (смыкающий кубический сплайн). Построение и вычис- вычисление интерполяционного смыкающего кубического сплайна S(x) по N + 1 заданной точке {(хк; Ук)}%=о- function S=csfit(X,Y,dxO,dxn) •/.Вход - X - вектор абсцисс размера lxn У, - Y - вектор ординат размера lxn X - dxO s S'teO) - граничное условие на первую производную 7. - dxn = S'(xn) - граничное условие на первую производную •/.Выход - S: строки S - это коэффициенты в порядке убывания % для интерполяционного кубического сплайна N=length(X)-l; H=diff(X); D=diff(Y)./H; A=HB:N-1); B=2*(HA:N-1)+HB:N)); C=HB:N); U=6*diff(D); •/.Смыкающий сплайн с ограничениями в крайних точках U(l)=U(l)-3*(D(l)-dxO);
5.3. Интерполирование сплайнами 323 B(N-l)=B(N-l)-H(N)/2; U(N-l)=U(N-l)-3*(dxn-D(N)); for k=2:N-l temp=A(k-l)/B(k-l); B(k)=B(k)-temp*C(k-l); U(k)=U(k)-temp*U(k-l); end M(N)=U(N-1)/B(N-1); for k=N-2:-l:l M(k+l)=(U(k)-C(k)*M(k+2))/B(k); end M(l)=3*(D(l)-dxO)/H(l)-MB)/2; M(N+l)=3*(dxn-D(N))/H(N)-M(N)/2; for k=0:N-i S(k+l,l)=(M(k+2)-M(k+l))/F*H(k+D); S(k+l,2)=M(k+l)/2; S(k+l,3)=D(k+l)-H(k+l)*B*M(k+l)+M(k+2))/6; S(k+l,4)=Y(k+l); end Пример 5.12. Найдем смыкающий кубический сплайн, который проходит через точки @;0,0), A; 0,5), B; 2,0) и C; 1,5), с первой производной, удовлетворяющей граничным условиям 5"@) = 0,2 и 5"C) = —1. В MATLAB программа выглядит следующим образом. >>Х=[0 12 3]; Y=[0 0.5 2.0 1.5];dx0=0.2; dxn=-l; >>S=csfit(X,Y,dxO,dxn) S = 0.4800 -0.1800 0.2000 0 -1.0400 1.2600 1.2800 0.5000 0.6800 -1.8600 0.6800 2.0000 Заметим, что строки матрицы S точно являются коэффициентами интерполя- интерполяционного кубического сплайна из уравнений A8) примера 5.7. В следующей про- программе показано, как построить график интерполяционного кубического сплайна, используя команду polyval. В результате получаем точно такой же график, как на рис. 5.12. >>xl=0:.01:l; yl=polyval(S(l,:),xl-X(l)); >>х2=1:.01:2; y2=polyval(SB,:),х2-ХB)); >>хЗ=2:.01:3; y3=polyval(SC,:),хЗ-ХC)); >>plot(Xl,yl,x2,y2,x3,y3,X,Y,\') ¦
324 Глава 5. Построение кривой по точкам Упражнения к разделу 53 1. Рассмотрите полином S(x) = ао + а\х + а2гг? + а3я3. (a) Покажите, что условия 5A) = 1, 5'A) = 0, 5B) = 2 и 5'B) = О приводят к следующей системе уравнений. ао + а\ + а2 + а3 = 1, а\ + 2а2 + За3 = О, ао + 2ах + 4а2 + 8а3 = 2, аг + 4а2 + 12а3 = 0. (b) Решите систему из п. (а) и постройте график полученного кубического полинома. 2. Рассмотрите полином S(x) = ao + а\х + а2ж2 + а3ж3. (а) Покажите, что условия 5A) = 3, 5'A) = -4, 5B) = 1 и 5'B) = 2 порождают следующую систему уравнений. ао + а\ + а2 + а3 = 3, а\ + 2а2 + За3 = —4, ai + 4а2 + 12а3 = 2. (Ь) Решите систему из п. (а) и постройте график полученного кубического полинома. 3. Определите, какая из следующих функций является кубическим сплайном. Указание. Какому (если это так) из пяти пунктов определения 5.1 не удовле- удовлетворяет заданная /(#)? {*¦& ol /у» I I Сч/т»^ __ JLi/y»" ТТТТ<1 Л ^ Т* ^ О е\ А. ' ±*JJU л *Ь {АЛЛ X _^» Jb ^ ?t^ =jt + ^х - 1\х2 + ±±х3 для 2 < х < 3. 11 - 24ж + 18ж2 - 4я3 для 1 < х < 2, { 1 -54 + 72я - ЗОгс2 + 4ж3 для 2 < х < 3. I 18 —9~а; "f" 26а; —тгх для 1 < х < 2, (с) /(ж) — л [-70 + ^ж - 40ж2 + ^ж3 для 2 < х < 3. fl3 - 31* + 23s2 - 5я3 для 1 < х < 2, ^ ~ 1—35 Н- 51х - 21х2 + 3хг для 2 < ж < 3.
5.3. Интерполирование сплайнами 325 4. Найдите смыкающий кубический сплайн, который проходит через точки (—3;2), (—2;0), A;3) и D; 1), с граничными условиями для первой про- производной S'(-3) = -1 и S*D) = 1. 5. Найдите естественный кубический сплайн, который проходит через точки (—3;2), (—2;0), A;3) и D; 1), с произвольными граничными условиями S"(-3) = 0 и S"D) = 0. 6. Найдите экстраполирующий кубический сплайн, который проходит через точки (-3; 2), (-2;0), A;3)иD;1). 7. Найдите сплайн, заканчивающийся параболой, который проходит через точки (-3;2),(-2;0),A;3)иD;1). 8. Найдите кубический сплайн с урегулированной кривизной, который проходит через точки (—3;2), (—2;0), A;3) и D; 1), с граничными условиями для второй производной S"(-3) = -1 и S"'D) = 2. 9. (а) Найдите смыкающий кубический сплайн, который проходит через точки {(а;?; f{xk))}l=o> на графике функции f(x) = х+1, используя узлы х0 = = 1/2,zi = 1,Ж2 = 3/2 и жз — 2. Используйте граничные условия для первой производной S'(xq) = /'(^о) и ?'(#з) — /'(яз)- График функции / и интерполяционного смыкающего кубического сплайна постройте в одной и той же системе координат. (Ь) Найдите естественный кубический сплайн, который проходит через точ- точки {(хкщ, f(%k))}l=o> на график функции f(x) = х + |, используя узлы хо = 1/2, х\ = 1,Я2 = 3/2 и #з = 2. Используйте граничные условия S"(xo) = 0 и 5;/(жз) = 0. График функции / и интерполяционного есте- естественного кубического сплайна постройте в одной системе координат. 10. (а) Найдите смыкающий кубический сплайн, который проходит через точки ())}fc=o> на графике функции f(x) = cos(#2), используя узлы = 0, #i = ^/7г/2,Ж2 = ^/Зтг/2 и хз = у/Ьтг/2. Используйте гра- граничные условия для первой производной S'(xq) = /'(хо) и S'(xs) = = /'(хз). График функции / и интерполяционного смыкающего кубиче- кубического сплайна постройте в одной и той же системе координат. (Ь) Найдите естественный кубический сплайн, который проходит через точ- точки {(хь; /(rcfc))}|=0, на графике функции f(x) = cos (ж2), используя узлы хо = 0, х\ = ^/тг/2, Ж2 = \/Зтг/2 ихз = у/Ьп/2. Используйте гранич- граничные условия S"(xo) = 0 и S/f(xs) = 0. График функции / и интерполя- интерполяционного естественного кубического сплайна постройте в одной системе координат. 11. Используйте подстановки - х = hb + {xk - х)
326 Глава 5. Построение кривой по точкам и - жK = h*k + ЪН2к{хк -х) + 3hk{xk - хJ + {хк - х)\ чтобы показать, что если уравнение (8) можно разложить по степеням (хк - - я), то коэффициенты можно найти из формул A6). 12. Рассмотрите каждую кубическую функцию Sk(x) на интервале [xjt;^A;+i]- (a) Приведите формулу для J^fc+1 Sk(x) dx. Затем вычислите J^ S(x) dx из п. (а) для (b) упр. 10, (с) упр. 11. 13. Покажите, как объединить стратегию (i) из табл. 5.8 и систему A2), чтобы получить уравнения из леммы 5.1. 14. Покажите, как объединить стратегию (Ш) из табл. 5.8 и систему A2), чтобы получить уравнения из леммы 5.3. 15. (а) Используя узлы xq = — 2 и х\ = 0, покажите, что функция f(x) = = #3 — х является ее собственным смыкаемым кубическим сплайном на интервале [—2;0]. (b) Используя узлы xq — —2, х\ = 0 и Х2 = 2, покажите, что функция, f(x) — х3 — х является ее собственным смыкаемым кубическим сплай- сплайном на интервале [—2; 2]. Примечание, f имеет точку перегиба х\. (c) Используйте результаты пп. (а) и (Ь), чтобы показать, что любой полином третьей степени f(x) = ао + о>\х + а,2Х2 + аз#3 является собственным смыкаемым кубическим сплайном на любом замкнутом интервале [a; ft]. (d) Что можно сказать (если есть что) о других четырех типах кубических сплайнов, описанных в леммах 5.2-5.5? Алгоритмы и программы 1. Расстояние dk, которое автомобиль проезжает за время tk> приведено в та- таблице ниже. Используйте программу 5.3 с граничными условиями для пер- первой производной S'@) = 0 и 5'(8) = 98 и найдите смыкаемый кубический сплайн по точкам. Время, tk Расстояние, dk 0 0 2 40 4 160 6 300 8 480 2. Модифицируйте программу 5.3, чтобы найти (а) естественный, (Ь) экстрапо- ляционный, (с) оканчивающийся параболой или (d) урегулированной кривиз- кривизной в крайних точках кубический сплайн для заданной совокупности точек.
5.4. Ряды Фурье и тригонометрические полиномы 327 3. Используйте свою программу для решения задачи 2, чтобы найти пять раз- различных кубических сплайнов по точкам @; 1), A; 0), B; 0), C; 1), D; 2), E; 2) и F; 1), когда 5'@) = -0,6, 5'F) = -1,8, S"@) = 1 и S"F) = -1. Построй- Постройте графики пяти кубических сплайнов в одной и той же системе координат. 4. Используйте свою программу для решения задачи 2, чтобы найти пять раз- различных кубических сплайнов по точкам @; 0), A; 4), B; 8), C; 9), D; 9), E; 8) и F; 6), когда S'@) = 1, S'F) = -2, S"@) = 1 и S"F) = -1. Постройте графики пяти кубических сплайнов в одной и той же системе координат. 5. В приведенной ниже таблице дана температура (по Фаренгейту), измеряе- измеряемая каждый час в течение 12 часов в пригороде Лос-Анджелеса. Найдите естественный кубический сплайн по этим данным. График естественного кубического сплайна и данные постройте в одной и той же системе коорди- координат. Используйте естественный кубический сплайн и результаты выполнения п. (а) из упр. 12 для определения средней температуры за 12-часовой период. Время 1 2 3 4 5 6 Градусы 58 58 58 58 57 57 Время 7 8 9 10 11 полдень Градусы 57 58 60 64 67 68 6. Используя смыкаемый кубический сплайн, постройте приближенный график функции f(x) = х — cos(#3) на интервале [—3; 3]. 5.4. Ряды Фурье и тригонометрические полиномы Ученые и инженеры часто изучают такие физические явления, как свет и звук, которые имеют периодический характер. Они описываются периодическими функциями д(х) A) д(х + Р) = д(х) для всех х. Число Р называется периодом функции. Достаточно рассматривать функции с периодом 27г. Если период функции д(х) равен Р, то функция f(x) = д(Рх/2к) будет иметь период 2тг. Этот легко прове- проверить: B)
328 Глава 5. Построение кривой по точкам -2тг 0 2тг 4тг Рис. 5.17. Непрерывная функция f(x) с периодом 2п У = /(*) H h Рис. 5.18. Кусочно-непрерывная функция на интервале [а; Ь] Впредь в данном разделе предполагается, что f(x) — периодическая функция с периодом 2тг, т. е. C) f(x + 2тг) = f(x) для всех х. График функции у = /(ж), как видно на рис. 5.17, получается повторения частей графика на любом интервале длины 2тг. Примерами функций с периодом 2тг служат sin(jx) и cos(jx)> где j — целое число. Это вызывает следующий вопрос: "можно ли представить периодическую функцию в виде суммы a,j cos(jx) и bj sin(jxO" Вскоре мы увидим, что ответ положительный. Определение 5.2 (кусочная непрерывность). Говорят, что функция f(x) кусоч- кусочно-непрерывная на интервале [а;6], если существуют такие значения ?о,*ъ..., гк, о, = to < t\ < • • • < гк = Ь> что f(x) непрерывна на каждом открытом интервале t^i < х < U для г = 1, 2, ..., К и f(x) имеет пределы слева и справа в каждой из точек tj. Эта ситуация проиллюстрирована на рис. 5.18. ^ Определение 5.3 (ряд Фурье). Предположим, что функция f(x) периодична с периодом 2тг и кусочно-непрерывна на отрезке [-тг;тг]. Ряд Фурье S(x) для
5.4. Ряды Фурье и тригонометрические полиномы 329 функции f(x) имеет вид оо D) S(x) = у + X^(aJ cos(i*) + ьз sinO's))> где коэффициенты clj и bj вычисляются по формуле Эйлера: 1 Г E) aj = - f(x) cos(jx) dx для j = 0, 1, ... F) 1 Г bj = - /(ж) sin(ja:) dx для j = 1, 2, .... 7Г J-тг Множитель ^ в постоянном члене ао/2 ряда Фурье D) введен для удобства, что- чтобы ао можно было вычислить по общей формуле E), присвоив j = 0. Сходимость ряда Фурье обсуждается в следующей теореме. Теорема 5.5 (разложение в ряд Фурье). Предположим, что S(x) — ряд Фурье для функции f(x) на интервале [—тг; тг]. Если ff(x) кусочно-непрерывна на интер- интервале [—тг; тг] и имеет производные слева и справа в каждой точке этого интервала, то S(x) сходится для всех х Е [—тг; тг]. Соотношение S(x) = /Or) выполняется во всех точках х G [—тг; тг], где f(x) непрерывна. Если х = а — точка разрыва функции /, то ям , где f{oT) и /(а+) означают соответственно левый и правый пределы. Используя это, получаем разложение в ряд Фурье: оо G) f(x) = -^ + yVo,- cosO'z) + fy sinO'a;)). 1 Краткая схема вывода формул E) и F) приведена в конце раздела. Пример 5.13. Покажем, что функция f(x) = х/2, — тг < ж < тг, продолженная периодически согласно равенству f(x + 2тг) = f(x), имеет представление в виде ряда Фурье „:»г„\ sinBs) , sinCa:)
330 Глава 5. Построение кривой по точкам Используя формулу Эйлера и интегрирование по частям, получим = 0 — 7Г для j = 1,2,3,... и —rrcosQrr) sin(jx) ^ (— . _ 1 Г х j " » J_Л SmUa'/ "^ ~ 27rj ' 2тгЯ для j = 1,2,3, Коэффициент ао вычисляем отдельно: 1 Г x J xl a0 = - 7Г 7Г J^ 2 47Г = 0. —7Г Вычисления показывают, что все коэффициенты при косинусах равны нулю. График функции f(x) и частичные суммы S2{x) = sin(s) ^—i, / ч . / ч sinBx) sin( (я) = sin(x) ^ + — ад = sm(x) - ^ + показаны на рисунке 5.19. ¦ Сейчас сформулируем некоторые свойства рядов Фурье. Доказательства остав- оставляем читателю в качестве упражнений. Теорема 5.6 (ряд косинусов). Предположим, что f(x) — четная функция, т. е. предположим, что f(—x) = f(x) справедливо для всех х. Если период функции f(x) равен 2тг и если f(x) и f'(x) кусочно-непрерывны, то ряд Фурье для f(x) содержит только члены с косинусами: оо (8) /(«) = у где 2 Г (9) О; = - f(x) cos(jx) dx для j = 0, 1, .... ^" Jo Теорема 5.7 (ряд синусов). Предположим, что f(x) — нечетная функция, т. е. f(—x) = —f(x) справедливо для всех ж. Если период f(x) равен 2тг и если f(x)
5.4. Ряды Фурье и тригонометрические полиномы 331 У У = S4(x) 1,5 1,0 0,5 У = у = -1,5 Рис. 5.19. Функция /(х) = я/2 на интервале [—тг; 7г] и ее тригонометрические приближения 5г(х), 5з(#) и S^x) и /'(ж) кусочно-непрерывны, то ряд Фурье для функции f(x) содержит только члены с синусами: A0) где (И) 2 Гп = - /(ж) sin(j:r) rfa; для j = 1, 2, .... тг Jo Пример 5.14. Покажем, что функция f(x) = \х\9 —тг <ж < 7г, продолженная периодически согласно равенству f(x + 2п) = f(x), имеет представление в виде ряда Фурье, содержащего косинусы: cos(Bj - 1)ж) A2) i=i 7Г 4 _ _ _ •*" - 1\2 cosC:r) cosEx) 32 52 Функция f(x) четная, поэтому можно использовать теорему 5.6 и вычислить только коэффициенты {clj}: 4 = ^ 2x sin(jx) 2 cos(jx) 7TJ 2cos(jtt)-2 для j == 1, 2, 3, ....
332 Глава 5. Построение кривой по точкам Так как ((—I)-7 — 1) = 0, когда j четное, ряд косинусов включает только нечетные ,. члены. Нечетные коэффициенты имеют вид - — - — - -Zi Коэффициент ао вычисляем отдельно: _2Г тг Jo а0 = — х dx = — = 7Г. A3) 7Г Следовательно, требуемые в A2) коэффициенты найдены. ¦ Доказательство формулы Эйлера для теоремы 5.5. В следующем эвристиче- эвристическом рассуждении предполагается существование и сходимость представления в виде ряда Фурье. Чтобы найти ао, можно проинтегрировать обе части разложения G)и получить ГГ7Г I a °° \ f(x) dx = j — + ^(о; cos(jx) + bj sin(jx)) I dx = 7Г J-7T \ 2 ._^ J = — dx + У^ aj cosijx) dx + У^ bj sinfjx) dx = J-7T 2 JT[ J-тг fr{ 3L* V ^ = тгао + 0 + 0. Обоснование для замены порядка интегрирования и суммирования требует де- детального изучения равномерной сходимости, и его можно найти в книгах повы- повышенной сложности. Поэтому покажем, что A4) ao = -f f(x)dx. К J-тг Чтобы найти am, положим т > 0 фиксированным целым числом, умножим обе части разложения G) на cos(mx) и, проинтегрировав обе части, получим Г7Г п Г7Г A5) /(х) cos(mx) dx = — cos(mx)dx+ J-ТГ ^ i-7t + 2-/ аэ cos(jx) cos(mx) dx + ^J bj sin^'x) cos(ma;) dx. • i J—7Г ,.- i J— 7Г Формулу A5) можно упростить, если использовать свойства ортогональности три- тригонометрических функций, что сейчас и будет сделано. Значение первого коэф- коэффициента в правой части A5) равно Г7Г ao sin(ma:) ао г* A6) — cos(mx)dx = 2т 7Г = 0. — 7Г
5.4. Ряды Фурье и тригонометрические полиномы 333 Значение коэффициента перед cos(jx) cos(mx), найдем, используя тригонометри- тригонометрическое тождество A7) cos(jx) cos(mx) = - cos((j + т)х) + - cos((j — т)х). Когда j Ф m, можно использовать A7), чтобы получить dj cos(jx) cos(mx) dx = -a,j cos((j + m)x) dx+ J-7T 2 J-7T + -cy cos((j - m)x) dx = 0 + 0 = 0. Когда j = m, интеграл равен „ * A9) am cos(jrc) cos(mx) drr = am7r. J-7T Значение коэффициента в правой части A5) при sin(j:r) cos (гш;) найдем, ис- используя тригонометрическое тождество B0) sin^'a;) cos(mx) = - sin((j + т)х) Н— sin((j — т)х). Для всех значений j и т в B0) получаем Г 1 Г bj sin(jx) cos(mx) dx = -bj sin((j + m)rr) dx+ + ~bj sin((j - m)x) dx = 0 + 0 = 0. 2 J-тг , Таким образом, используя результаты A6), A8), A9) и B1) в уравнении A5), приходим к выводу, что Г . B2) 7гат = /(x)cos(ma;)da;, для т = 1, 2, J-7T Итак, формула Эйлера E) доказана. Формула Эйлера F) доказывается аналогично.• Приближение тригонометрическим полиномом Определение 5,4 (тригонометрический полином). Сумма вида м ¦ B3) Тм{х) = у + ^(aj- cos(ix) + 6j sin(jrr)) называется тригонометрическим полиномом порядка М (в книге для единооб- единообразия изложения такие суммы называются рядами. — Прим, ред.). А
334 Глава 5. Построение кривой по точкам Теорема 5.8 (дискретный ряд Фурье). Предположим, что {(xj;yj)}jL0 — N + + 1 точка, в которой yj = f(xj) и равноотстоящие абсциссы: B4) xj = -тг + -^ для j = 0, 1, ..., ЛГ. Если /(#) — периодическая функция с периодом 2тг и 2М < N, то существует тригонометрический полином Тм{х) вида B3), который минимизирует величину B5) ?(/Ы -TM{xk)f. Коэффициенты полинома о,- и 6,- вычисляют по формулам 2 N B6) а,==—^/(a^cos^a;*) для j = О, 1, ..., М и 2 * B7) 6, = — J3 f(xk) sm(jxk) для j = 1, 2, ..., М. Формулы B6) и B7) определены процедурой наименьших квадратов, но их также можно рассматривать как численное приближение интегральных формул Эйлера E) и F). По формуле Эйлера получаем коэффициенты для ряда Фурье непрерывной функции, в то время как формулы B6) и B7) дают тригономет- тригонометрический полином для кривой, построенной по заданным точкам. В следующем примере используются заданные точки, сформированные функцией f(x) = ж/2 как дискретные. Чем больше используется точек, тем ближе коэффициенты три- тригонометрического полинома к коэффициентам ряда Фурье. Пример 5.15. Используем 12 равноотстоящих точек ж* = -тг + &тг/6, к = 1, 2, ..., 12, и найдем приближение тригонометрическим полиномом для М = 5 по 12 точкам {(#fc;/(sfc))}jS;Li> гДе f(x) = х/2. Сравним также результаты, когда используются 60 и 360 точек, и с первыми пятью членами разложения в ряд Фурье функции f(x) из примера 5.13. Поскольку предполагается периодическое расширение функции в точках раз- разрывности, значение функции /(тг) следует вычислять по формуле B8) Функция f(x) нечетная, поэтому коэффициенты при членах с косинусами все равны нулю (т. е. dj = 0 для всех j). Тригонометрический полином степени М = = 5 включает только члены с синусами, и, если формулу B7) использовать с
5.4. Ряды Фурье и тригонометрические полиномы формулой B8), можно получить Г5 (х) = 0,9770486 sin(s) - 0,4534498 sinBz) + 0,26179938 sinCs)- - 0,1511499 sinDrr) + 0,0701489sinEx). График полинома T$(x) показан на рис. 5.20. 335 ь 1,5 1,0 0,5 1 1 1 j ° -1,5 ! У = Т5(х) 1 2 о \ \ 3 Рис. 5.20. Тригонометрический полином Т$(х) степени М = 5, построенный по 12 заданным точкам, которые лежат на прямой у = х/2 Коэффициенты тригонометрического полинома пятой степени изменяются мед- медленно, когда число точек интерполирования возрастает от 60 до 360. Когда же чис- число точек возрастает, они становятся ближе к коэффициентам разложения функции }{х) в ряд Фурье. Результаты сравнения приведены в табл. 5.9. ¦ Следующая программа строит матрицы Л и В, содержащие соответственно коэффициенты a,j и bj тригонометрического полинома B3) степени М. Таблица 5.9. Сравнение коэффициентов тригонометрического полинома, приближающего функцию f(x) = х/2 на интервале [-тг; тг] ь2 Ъг Ьа Ьь Коэффициенты тригонометрического полинома 12 точек 0,97704862 -0,45344984 0,26179939 -0,15114995 0,07014893 60 точек 0,99908598 -0,49817096 0,33058726 -0,24633386 0,19540972 360 точек 0,99997462 -0,49994923 0,33325718 -0,24989845 0,19987306 Коэффициенты ряда Фурье 1,0 -0,5 0,33333333 -0,25 0,2
336 Глава 5. Построение кривой по точкам Программа 5.4 (тригонометрические полиномы). Построение тригономет- тригонометрического полинома степени М вида м + Yl(a COSUX) + ьз sin(js))i построенного по N равномерно отстоящим значениям Xk = —тг+2тгА;/ЛГ, к = 1, 2, ..., N. В программе допускается, что 2М + 1 < iV. function [A,B]=tpcoeff(X,Y,M) У.Вход - вектор равноотстоящих абсцисс на интервале [-pi,pi] Ус - вектор ординат У, - степень тригонометрического полинома У,Выход - вектор, содержащий коэффициенты при cos(jx) Ув - вектор, содержащий коэффициенты при sin(jx) N=length(X)-l; maxl=fix((N-l)/2); if M>maxl M=maxl; end A=zeros(l,M+l); B=zeros(l,M+l); Yends=(Y(l)+Y(N+l))/2; Y(l)=Yends; Y(N+l)=Yends; A(l)=sum(Y); for j=l:M A(j+l)=cos(j*X)*Y>; B(j+l)=sin(j*X)*Y>; end A=2*A/N; B=2*B/N; Следующая короткая программа вычисляет тригонометрический полинома Р(х) степени М из программы 5.4 для частных значений х. function z=tp(A,B,x,M) z=A(l); for j= 1:M z=z+A(j+l)*cos(j*x)+B(j+l)*sin(j*x); end
5.4. Ряды Фурье и тригонометрические полиномы 337 Для примера приведенная ниже последовательность команд MATLAB command window строит график, аналогичный изображенному на рис. 5.20. >>x=-pi:.01:pi; >>y=tp(A,B,x,M); >>plot(x,y,X,Y,'o>) Упражнения к разделу 5.4 В упр. 1-5 найдите представление данной функции в виде ряда Фурье. Указание. Следуйте схеме процедуры из упр. 5.13 и 5.14. График функции и частичные суммы ^(ж), Ss(x) и 54(х) ее представления в виде ряда Фурье по- постройте в одной и той же системе координат (см. рис. 5.19). ч ,, ч , —1 для -тг < ж < 0 _ г/ч Jf+# ДОЯ -тг<ж<0 1 ДЛЯ 0 < Ж < ТГ f — X ДЛЯ 0 < X < ТГ . ~1 ДОЯ \ < х < к 0 для — тг < х < 0 ДЛЯ 0 < X < 7Г — 1 ДЛЯ — 7Г < Ж < | — 7Г — а: для —тг < х < zj- 5. f{x) = < д; для ^ < х < ^ [ 7Г — а; для | < х < тг 6. В упр. 1 присвойте х = тг/2 и покажите, что тг _ 1 1 _ 1 4 "" 3 5 7 7. В упр. 2 присвойте ж = 0 и покажите, что — = И 1 1 1 g з2 52 72 8. Найдите представление для периодической функции в виде ряда косинусов Фурье, если период, на котором определена функция f(x) = ж2/4, равен —тг < х < тг. 9. Предположите, что f(x) — периодическая с периодом 2Р, т. е. f{x + 2P) = = f(x) для всех х. Сделав соответствующую подстановку, покажите, что формулы Эйлера E) и F) для / имеют вид
338 Глава 5. Построение кривой по точкам 1 Г г J -p 1 [Р (J7TX\ aj = р I ^cos I "p"Jdx ДДЯ 3; = 1э 2> " ¦* 1 Гр / jnx \ Ьз = Ъ\ fW sin I ~p~ J dx дая 3 = *' 2' • • - г i-Р \ г ) В упр. 10-12 используйте результаты упр. 9, чтобы найти представление в виде ряда Фурье заданной функции. Графики /(#), S\{x) и Sq(x) постройте в одной системе коородинат. \1 для,0<х<2 12. /(ж) = -ж2 + 9 для -3<rr<3. 13. Докажите теорему 5.6. 14. Докажите теорему 5.7. Алгоритмы и программы 1. Используйте программу 5.4 с N = 12 точками и следуйте примеру 5.15, что- чтобы найти тригонометрический полином степени М = 5 для равноотстоящих точек {(xk] /(^fc))}jt=i? где f(x) — функция из (а) примера 1, (Ь) примера 2, (с) примера 3 и (d) примера 4. В каждом случае постройте график /(я), Т5(х) и {{xk]f(xk))}%Li в одной и той же системе координат. 2. Используйте программу 5.4, чтобы найти коэффициенты Т$(х) из приме- примера 5Л 5 сначала по первым 60, а затем по 360 равноотстоящим точкам. 3. Модифицируйте программу 5.4 таким образом, чтобы найти тригонометри- тригонометрический полином с периодом 2Р = Ь — а, когда заданы равноотстоящие точки на интервале [а, Ь]. 4. Используйте программу 5.4, чтобы найти Т^(х) для (a) f(x) из упражнения 10 по 12 равноотстоящим точкам, и (b) f(x) из упр. 12 по 60 равноотстоящим точкам. Для каждого случая график Т^(х) и заданные точки расположите в одной системе координат. 5. Температурный цикл (по Фаренгейту) в пригороде Лос-Анджелеса за 8 ноя- ноября приведен в следующей таблице. Измерены 24 значения. (a) Найдите тригонометрический полином Т-?{х). (b) График Тт{х) и 24 значения расположите в одной системе координат.
5.4. Ряды Фурье и тригонометрические полиномы 339 (с) Повторите пп. (а) и (Ь), используя измерения температуры в вашей мест- местности. Время 1 2 3 4 5 6 7 8 9 10 11 Полдень Градусы 58 58 58 58 57 57 57 58 60 64 67 68 Время 13 14 15 16 17 18 19 20 21 22 23 Полночь Градусы 66 66 65 64 63 63 62 61 60 60 59 58 6. Годовой температурный цикл (по Фаренгейту) для г. Фербенкса, Аляска, при- приведен в следующей таблице. Здесь представлено 13 равноотстоящих измере- измерений, которые проводились каждые 28 дней. (a) Найдите тригонометрический полином Tq(x). (b) График Tq(x) и 13 значений расположите в одной системе координат. Дата 1 января 29 января 26 февраля 26 марта 23 апреля 21 мая 18 июня 16 июля 13 августа 10 сентября 8 октября 5 ноября 3 декабря Средняя температура -14 -9 2 15 35 52 62 63 58 50 34 12 -5
6 Численное дифференцирование Формулы для численного вычисления производных важны в разработке ал- алгоритмов при вычислении граничных значений в задачах, связанных с обыч- обычными дифференциальными уравнениями и дифференциальными уравнениями в частных производных (см. главы 9 и 10). Часто в обычных примерах численно- численного дифференцирования используются такие известные функции, что их числен- численное приближение можно сравнивать с точным ответом. Для иллюстрации возь- возьмем функцию Бесселя (Bessel) J\(x)9 таблицы значений которой можно найти в книгах, указанных в списке литературы. Восемь равноотстоящих точек из ин- интервала [0;7] -это @; 0,0000), A; 0,4400), B; 0,5767), C; 0,3391), D;-0,0660), E; -0,3276), F;-0,2767) и G;-0,004). Основным принципом является диффе- дифференцирование интерполяционного полинома. Сосредоточим внимание на нахо- нахождении J[B). Интерполяционный полином Р2{х) = -0,0710+0,6982я-0,1872я2 проходит через три точки, A; 0,4400), B; 0,5767) и C; 0,3391), и используется для получения «/{B) ~pf2B) = —0,0505. Этот квадратичный полином р2(х) и каса- касательная к нему линия в точке B; JiB)) показаны на рис. 6.1(а). Если взять для интерполирования пять точек, то можно получить лучшее приближение. Полином р4(х) = 0,4986ж + 0,011ж2-0,0813ж3 + 0,0116ж4 проходит через точки @; 0,0000), A; 0,4400), B; 0,5767), C; 0,3391) и D;-0,0660) и используется для получения J[{2) ^р'А{2) = —0,0618. Полином четвертой степени ра{х) и касательная к нему линия в точке B; Л B)) показаны на рис. 6.1(Ь). Истинное значение производной равно J[{2) = —0,0645, и ошибки в р2(х) и ра(х) равны —0,0140 и —0,0026 со- соответственно. В этой главе приведены основы теории, необходимой для изучения точности численного дифференцирования. 340
6.1. Приближение производной 341 I 0,6 0,4 0,2 -0,2 -0,4 l i - $ 0 0 0 ' 1 1 1 2 - \ % % % i \ 3 %% i \ 5 % i .i 6/7 0 0 • * (а) i 0,6 0,4 0,2 -0,2 -0,4 I 74 / \ f , , ,\ 1 2 3 \ - f • >> 5 6/7 0 0 0 (Ь) Рис. 6.1. (а) Касательная к р2(х) в точке B; 0,5767) с наклоном р'2B) = = —0,0505. (Ь) Касательная к pt{x) в точке B;0,5767) с тангенсом угла наклона р'4B) = -0,0618 6.1. Приближение производной Предел отношения приращений Рассмотрим численный процесс приближения производной f(x): fix -\- h) — fix) Метод выглядит просто — выбираем последовательность {/г^} так, что вычисляем ее предел: 0, и B) для fc = 1, 2, ...э' п, .... Необходимо предупредить читателя, что вычисляться будет только конечное коли- количество членов Du D2,..., 1?лг последовательности B); значит, для ответа следует использовать 2)дг. Часто спрашивают: "Почему вычисляют D\, D2, ¦ •., D^^\T\ Аналогично можно задать вопрос: "Почему следует так выбирать значение /гдг, чтобы Dn было хорошим приближением к производной f'(x)T\ Чтобы отве- ответить на этот вопрос, нужно рассмотреть пример, который показывает, почему не существует простого решения. Для примера рассмотрим функцию f(x) = ex и используем длину шагов, рав- равную h = 1, 1/2 и 1/4, чтобы построить секущую линию, которая проходит между точками @; 1) и (h;f(h)) соответственно. Так как h уменьшается, то секущая приближается к касательной, как показано на рис. 6.2. На этом рисунке хорошо виден процесс, описанный в A). Нужно произвести вычисления при h = 0,00001, чтобы получить приемлемый численный ответ, и для этого значения h графики касательной и секущей должны быть неразличимы.
342 Глава 6. Численное дифференцирование 0,25 0,50 0,75 У = /(*) х Рис. 6.2. Несколько секущих 1,00 линий для у = еж Пример 6.1. Пусть /(ж) = е1 и х = 1. Вычислим отношение приращений D^ используя длину шага/ifc = 10"* для А; = 1, 2,..., 10. Все вычисления выполнены с девятью десятичными знаками. Ниже приведена таблица значений /A + hk) и (/A + hk) — f(l))/hk, которые использовались для вычислений Dk (табл. 6.1). ¦ Наибольшее значение hi = ОД не дает хорошего приближения D\ « /'A), по- потому что длина шага h\ слишком велика и разностное отношение равно тангенсу угла наклона касательной, проходящей через две точки, которые недостаточно близки одна к другой. Когда формула B) используется с фиксированной точно- точностью, равной девяти десятичным знакам, hg дает приближение Dq = 3 и hw — Diq = 0. Если hk слишком мало, то вычисленные значения функции f(x + hk) и f(x) очень близки. Разность f(x + hk) — f(x) может служить демонстрацией потери точности при вычитании почти равных значений. Величина Лю = 100 Таблица 6.1. Определение отношения приращений Dk = (e = (e1+/lfc — e)/hk hk /ii=0,l /12=0,01 Лз = 0,001 /i4 = 0,0001 h5 = 0,00001 h6=10~6 /i7 = 10-7 /is = Ю"8 /i9 = 10"9 /llo = io-10 Л = /A + л*) 3,004166024 2,745601015 2,721001470 2,718553670 2,718309011 2,718284547 2,718282100 2,718281856 2,718281831 2,718281828 fk-e 0,285884196 0,027319187 0,002719642 0,000271842 0,000027183 0,000002719 0,000000272 0,000000028 0,000000003 0,000000000 Dk = (fk - e)/hk 2,858841960 2,731918700 2,719642000 2,718420000 2,718300000 2,719000000 2,720000000 2,800000000 3,000000000 0,000000000
6.1. Приближение производной 343 так мала, что значения f(x + hw) и f(x) не изменяются, и поэтому отношение приращений равно нулю. В примере 6.1 математическое значение предела равно /'A) « 2,718281828. Отметим, что значение h& = Ю~5 дает наилучшее прибли- приближение ?>5 = 2,7183. В примере 6.1 показано, что не так просто найти численный предел выраже- выражения B). Последовательность начинает сходиться к е, и D$ является ближайшим значением; затем члены последовательности удаляются от е. В программе 6.1 говорится, что члены последовательности {Dk} следует вычислять только до вы- выполнения неравенства \Dn+\ — D^\ > |Х?^ — Av-i|- Это попытка определить наи- наилучшее приближение прежде, чем члены последовательности начнут удаляться от предела. Если применить этот критерий в примере 6.1, то получится 0,0007 = = \Dq — Ds\ > \D$ — D±\ = 0,00012, поэтому и выбран ответ D$. А сейчас приступим к усовершенствованию формулы, которая даст приемлемую точность для больших значений h. Формула центральной разности Если функцию f(x) можно вычислить для значений, которые лежат слева и справа от х, то наилучшая двухточечная формула будет содержать абсциссы, ко- которые выбраны симметрично относительно х. Теорема 6.1 (центрированная формула порядка O{h2)). Предположим, что / G Сг[а; Ь] и что х — /i, ж, х + h G [а; Ь]. Тогда О) ГA) в Я*+ Ц-/(*-/¦) ГA) в . Более того, существует такое число с = с(х) G [а; Ь], что D) где "усеч" — это усечения: Член JS(/, h) называется ошибкой усечения. Доказательство. Начнем с разложения Тейлора второго порядка f(x) в окрестности точки х для f(x + h) и f(x — h): E, Пх + к) = т + ПФ+
344 Глава 6. Численное дифференцирование F, Затем F) вычтем из E), в результате чего получим j у.*, , ,Vf j у~ .«/у ~j Гу.» I j Так как /C) (х) непрерывна, можно воспользоваться теоремой о промежуточном значении, чтобы найти такое значение с, что (8) Можно подставить это выражение в G) и перегруппировать члены так, чтобы получить ,дч ?М - fi* + h)-f(x-h) W •Mj~~ 2/i 3! ' Первый член в правой части (9) — формула C) центральной разности, второй член — это усеченная ошибка. Таким образом, теорема доказана. • Предположим, что значение третьей производной /f3) (с) не слишком быстро изменяется, тогда усеченная ошибка в D) стремится к нулю таким же образом, как и h2, что выражено в обозначении О (Л2). Когда вычисления выполняются на компьютере, то нежелательно, чтобы h выбиралось слишком малым. По этой при- причине полезно иметь формулу для приближения f'(x)9 ошибка усечения которой имеет порядок O(/i4). Теорема 6.2 (центрированная формула порядка O(h4)). Предположим, что / е Сь[а; b] H4TOx-2h,x-h,x,x + h,x + 2he [a; 6]. Тогда _ -/(а? + 2h) + 8f(x + h)- 8f(x -h) + f(x - 2h) Более того, существует такое число с = с(х) Е [а; Ь], что nn fu, -f(x + 2h) + 8f(x + h)-8f(x-h) + f(x-2h) A1) f (x) = — + Eyce4(f,h), где EycQ4{f,h) =
6.1. Приближение производной 345 Доказательство. Следующий метод является одним из способов получения фор- формулы A0). Начнем с разности между разложениями в ряд Тейлора до четвертой степени f(x) = Р±(х) + Е±{х) в окрестности точки х — f(x + h) и f(x — h): Затем возьмем длину шага, равную 2h, вместо h, и запишем следующее прибли- приближение: A3) ,(, + », - /(, - ЭД . 4Аф После этого умножаем члены выражения A2) на 8 и вычитаем из него A3). Члены, содержащие /C)(ж), будут исключены, и мы получим -fix + 2ft) + Sf{x + ft) - 8f(x - ft) + f(x - 2ft) = Если fE\x) не меняет знак и если его значения медленно изменяются, то можно найти такое значение с, которое лежит на интервале [х — 2h]x + 2h], что A5) 16/E)(ci) - 64/E>(c2) = -48/<5>(c). Затем A5) подставляем в A4) и получаем в результате решение для ff(x): , _ -f{x + 2ft) + 8/(х + h) - 8/(s - ft) + f{x - 2ft) | /E)(c)ft4 12h 30 Первый член в правой части A6) является формулой центрированной разности A0), а второй — ошибкой усечения. Теорема доказана. • Предположим, что |/^5Нс)| ограничено для с G [а; Ь], тогда усеченная ошибка в A1) стремится к нулю таким же образом, как и Л4, что выражено в обозначении O(/i4). Теперь можно сравнить формулы C) и A0). Предположим, что f(x) имеет пять непрерывных производных и что |/^3НсI и 1/^(сI приблизительно оди- одинаковы. Тогда ошибка усечения для формулы четвертого порядка для формулы A0) равна O(hA) и стремится к нулю быстрее, чем ошибка усечения O(h2) для формулы второго порядка C). Это позволяет использовать шаг большей длины. Пример 6.2. Пусть f(x) = cos(x). (a) Используем формулы C) и A0) с длиной шага h = 0,1; 0,01; 0,001 и 0,0001 и вычислим приближения для /;@,8). Все вычисления выполняем с девятью десятичными знаками. (b) Сравним с истинным значением /;@,8) = — sin@,8).
346 Таблица 6.2. и (Ю) Глава 6. Численное дифференцирование Численное дифференцирование, в котором используются формулы C) Длина шага 0,1 0,01 0,001 0,0001 Приближение по формуле C) -0,716161095 -0,717344150 -0,717356000 -0,717360000 Ошибка при формуле C) -0,001194996 -0,000011941 -0,000000091 -0,000003909 Приближение по формуле A0) -0,717353703 -0,717356108 -0,717356167 -0,717360833 Ошибка при формуле A0) -0,000002389 0,000000017 0,000000076 0,000004742 (а) Используя формулу C) с шагом h = 0,01, получим ,, /@,81) - /@,79) 0,689498433 - 0,703845316 i Если использовать формулу A0) с шагом h = 0,01, то f,m и -/@,82) + 8/@,81) - 8/@,79) + /@,78) _ и,1^ _ -0,682221207 + 8@,689498433) - 8@,703845316) +0,710913538 _ 0,12 w -0,717356108. (Ь) Ошибка приближения для формул C) и A0) оказывается равной —0,000011941 и 0,000000017 соответственно. В этом примере формула A0), когда шаг h = 0,01, дает лучшее приближение к /'@,8), чем формула C). Проанализировав ошибки, можно будет объяснить этот пример и показать, почему так получается. Остальные вычисления представлены в табл. 6.2. ¦ Анализ ошибок и оптимальная длина шага Важным разделом численного дифференцирования является влияние ошибки округления в компьютере. Рассмотрим формулы более подробно. Предположим, что для вычислений использовался компьютер и что f(x0 - h) = y_i + e-i и f(xo + h) =yi + eb где f(xo - h) и f(xo + h) приближены численными значениями y_i и j/ь a e_i и ei - ошибки округления соответственно. Следующий результат показывает сложную природу анализа ошибок для численного дифференцирования.
6.1. Приближение производной 347 Следствие 6 Л (а). Предположим, что функция / удовлетворяет условиям теоре- теоремы 6.1, и используем вычислительную формулу A7) ?Ы « ^Г1- Анализ ошибки поясняется следующими выражениями: A8) /'(х0) = Ш ~ У-1 + E(f, h), где E(f, h) = Яокр(/, h) + Eyce4(f, h) = O9) _ в! - e-i _ Л2/C)(с) zAl О где общий остаточный член E(f,h) имеет часть, обусловленную ошибкой округления, плюс часть, обусловленную ошибкой усечения. Следствие 6.1(Ь). Предположим, что функция / удовлетворяет условиям те- теоремы 6.1 и произведены численные расчеты. Если |e_i| < €, |ei| < е и М = = таха<х<ь{\}^\х)\), то B0) и значение h, которое минимизирует правую часть A9), равно 1/3 <21) A=U Когда h мало, часть A9), содержащая (ei — e_i)/2/i, может быть относительно большой. В примере 6.2, когда h = 0,0001, мы столкнулись с этой трудностью. Ошибка округления равна /@,8001) = 0,696634970 + еь где ех « -0,0000000003, /@,7999) = 0,696778442 + е_ь где e_i « 0,0000000005. Ошибка округления остаточного члена равна -@,0001J (^Ш) «0,000000001. 6 Теперь можно вычислить остаточный член ??(/, h) в A9): адh)«-0.0000000003-0.0000000005 .Oi000000001. = -0,000004001.
348 Глава 6. Численное дифференцирование Граница ошибок 4x 10" 2 х Ю-6 0,002 0,004 Рис. 6.3. Нахождение оп- оптимальной длины шага h = = 0,001144714 при применении формулы B1) к f(x) = cos(a:) в примере 6.2 Действительно, численное приближение для производной, использующее шаг h = 0,0001, находим в.результате вычисления /@,8001) - /@,7999) 0*696634970 - 0,696778442 /'@,8) 0,0002 = -0,717360000, 0,0002 и потеря приблизительно четырех значащих цифр очевидна. Ошибка равна —3,909 х 10~6, и это близко к предсказанной ошибке: —4,001 х 10~6. Когда формула B1) применяется в примере 6.2, можно использовать грань |/C)(ж)| < | sin(rc)| < 1 = М и значение е = 0,5 х 10~9 для величины ошибки округления. Оптимальное значение h легко вычислить: h = A,5 х 10"9/!I/3 = = 0,001144714. Длина шага h = 0,001 близка к оптимальному значению 0,001144714, и он дает наилучшее приближение к /'@,8) среди четырех выбраных шагов при вычислениях по формуле C) (см. табл. 6.2 и рис. 6.3). Аналогично анализируются ошибки для формулы A0). Предположим, что вы- вычисления выполняются на компьютере и что /(xq + kh) = y& + е*. Следствие 6.2(а). Предположим, что функция / удовлетворяет условиям теоре- теоремы 6.2 и производятся численные вычисления по формуле i, ч ~i/2 + 8?/i — 8ту 1 + V—1 \2.L) J \Xq) ~ —r . Анализ ошибки поясняется следующими выражениями: B3) где / ч ~У2 + 8yi - 8у-1 + У-2 „, - , v (so) = ^2h '*' '' B4) —62 + 8ei — 8e_i 12Л 30
6.1. Приближение производной Граница ошибок 349 4х 10 -7 2x10 -7 0,02 0,04 0,06 Рис. 6.4. Нахождение оптимальной длины шага h = 0,022388475 при применении формулы B6) к f(x) = cos(ar) в примере 6.2 общий остаточный член ??(/, h) имеет часть, обусловленную ошибкой округления, плюс часть, обусловленную ошибкой усечения. Следствие 6.2(Ь). Предположим, что функция / удовлетворяет условиям теоре- теоремы 6.2 и вычисления произведены. Если |е^| < € и М = таха<х<ь{|/E)(я;)|}, то Ч1 Зе Mh4 B5) 30 и значение h, которое минимизирует правую часть B5), равно 1/5 B6) *¦(?) Если в примере 6.2 применяется формула B5), то можно использовать грань |/^(жI ^ | sin(o:)| <1 = Ми значение в = 0,5 х 10~9 для величины ошибки округления. Оптимальное значение h легко вычислить: h = B2,5 х 10~9/4I/5 = = 0,022388475. Длина шага h = 0,01 близка к оптимальному значению 0,022388475 и дает наилучшее приближение к /'@,8) среди четырех выбранных шагов для вычислений по формуле A0) (см. табл. 6.2 и рис. 6.4). В завершение обсуждения примера 6.2 напомним, что формулы численного дифференцирования можно получить альтернативным дифференцированием. Их можно получить посредством дифференцирования интерполяционного полинома. Например, форма Лагранжа квадратичного полинома Р2{х), который проходит через три точки, @,7;cos@,7)), @,8;cos@,8)) и @,9;cos@,9)), имеет вид = 38,2421094(д; - 0,8)(ж - 0,9) - 69,6706709(ж - 0,7)(ж - 0,9)+ + 31,0804984(я? - 0,7) (х - 0,8).
350 -1,0 h (a) Глава 6. Численное дифференцирование у %%*..Уу = cos(x) **.-*• У = cos(s) Рис. 6,5. (а) График у = cos(x) и интерполяционного полинома P2(s), исполь- используемого для вычисления /'@,8) «Р2@»8) = —0,716161095. (b) График у = cos(x) и интерполяционного полинома Р4(я), используемого для вычисления /'@,8) « = -0,717353703 Этот полином можно преобразовать, чтобы получить обычную форму: Р2(х) = 1,046875165 - 0,159260044ж - 0,348063157х2. Аналогичным образом можно получить полином четвертой степени р^(х)9 ко- который проходит через точки @,6;cos@,6)), @,7;cos@,7)), @,8;cos@,8)), @,9; cos@,9)) hA,0;cosA,0)): P4(x) = 0,998452927 + 0,009638391a: - 0,523291341s2+ + 0,026521229a;3 + 0,028981100a;4. Когда эти полиномы будут продифференцированы, получим значения р'2@,8) = -0,716161095 и р'4@,8) = -0,717353703, которые согласуются со значениями, приведенными в табл. 6.2 под шагом h = 0,1. Графики Р2(х) и ра(х) и касательные к ним линии в точке @,8; cos@,8)) показаны соответственно на рис. 6.5. Экстраполирование Ричардсона В этом разделе выясняется соотношение между формулами C) и A0). Пусть Д = f(xk) = f(xo + kh). Используем запись Do(h) и DoBh) для обозначения приближений к f(xo)9 которые получим по формуле C) при длине шага h и 2Л соответственно: B7)
6.1. Приближение производной 351 B8) /'(zo)~A>B/i)+4C7i2. Если умножить соотношение B7) на 4 и затем вычесть соотношение B8), то члены, содержащие С, сократятся и результатом будет B9) 3/'(*о) « 4Do(h) - D0Bh) = Затем решим B9) относительно /'(#о) и получим C0) /'Ы 3 Последнее выражение в C0) является формулой центрированной разности A0). Пример 6.3. Пусть f(x) = cos(a;). Используем B7) и B8) с шагом h = 0,01 и покажем, как линейную комбинацию DД)(/г) — DoBh))/3 из C0) можно ис- использовать, чтобы получить приближение к /'@,8), заданное в формуле A0). Все вычисления выполнены с девятью десятичными знаками. Воспользуемся B7) и B8) с шагом h = 0,01, чтобы получить /@,81) - /@,79) 0,689498433 - 0,703845316 0,02 0,02 » -0,717344150 г, /«L4 /@,82) - /@,78) 0,682221207 - 0,710913538 Do{2h) * о^ w ojoT w w -0,717308275. Вычислим линейную комбинацию из C0): , 4D0(h) - D0Bh) 4(-0,717344150) - (-0,717308275) « -0,717356108. Это решение такое же, как решение в примере 6.2, в котором непосредственно используется формула A0) для приближения /'@,8). ¦ Метод получения формулы для /'(жо) высшего порядка из формулы низше- низшего порядка называется экстраполяцией. Для доказательства требуется, чтобы остаточный член формулы C) можно было разложить в ряд, содержащий только четные степени h. Всегда можно показать, как использовать длину шага h и 2/г,
352 Глава 6. Численное дифференцирование чтобы извлечь члены, содержащие /i2. Чтобы показать, как извлечь /г4, предпола- предполагаем, что через D\(h) и D\Bh) обозначены приближения к f'(xo) порядка O(/i4), полученные по формуле A6) при длине шага h и 2/г соответственно. Тогда C2) 30 Предположим, что f^(x) медленно изменяется и не меняет знак. Также пред- предположим, что f^(c\) « f^{c2) может использоваться для исключения членов, содержащих /i4 в C1) и C2). Результатом будет / (х0) « Общая схема улучшеных вычислений сформулирована в следующей теореме. Теорема 6.3 (экстраполяция Ричардсона). Предположим, что существуют два приближения, Dk-i(h) и Dfc-iB/i), порядка O(h2k) для /'(гго) и они удовлетво- удовлетворяют отношениям C4) f'(xo) = Дь_1(Л) + ci/i2* + с2/12/с+2 + • • • C5) f'(x0) = Dfc-i BЛ) + 4*Cl/i2fc + 4fc+1c2/l2fc+2 + • • • . Тогда улучшенное приближение имеет форму C6) /'Ы = Dk(h) В следующей программе содержатся формула центрированной разности по- порядка O(h2) и формула C) для получения приближения производной функции в заданной точке. Генерируется последовательность приближений {D^}, центриро- центрированный интервал для 1)&+1 которой равен одной десятой длины центрированного интервала для D^. На выходе программы получаем матрицу L=[H' D> E'], где Н — вектор, содержащий длины шагов, D — вектор, содержащий приближения к производной, и Е — вектор, содержащий грани ошибок. Примечание. Функцию f необходимо вводить, как строку, т. е. 3f \
fcl. Приближение производной 353 Программа 6.1 (дифференцирование, использующее пределы). Чтобы по- получить численное приближение /'(я), генерируем последовательность „, х _ f(x + 10-kh)-f(x-10-kh) . п до тех пор, пока не будет выполнено неравенство |-Dn+i — jDu| > \Dn—Dn-i I или |Ai - A»-i| не будет меньше допустимого отклонения, что является попыткой найти наилучшее приближение f'(x) « Dn. function [L.nl^difflimCf,x,toler) У.Вход - f - функция, вводимая в виде строки 'f X - х - точка дифференцирования % - toler - допустимое отклонение для ошибки •/¦Выход - L*[H> D> E']: У» Н - вектор длин шагов '/« D - вектор приближений производной % Е - вектор граней ошибок X - п - координата "наилучшего приближения" maxl=15; h-1; D(l)=(feval(f,x+h)-feval(f,x-h))/B*h); ЕA)=0; R(l)=0; for n=l:2 h=h/10; H(n+l)=h; D(n+l)=(feval(f,x+h)-feval(f,x-h))/B*h); E(n+l)=abs(D(n+l)-D(n)); R(n+l)=2*E(n+l)*(abs(D(n+l))+abs(D(n))+eps); end n=2; while((E(n)>E(n+l))&(R(n)>toler))ftn<maxl h=h/10; H(n+2)=h; D(n+2)=(feval(f,x+h)-feval(f,x-h))/B*h); E(n+2)=abs(D(n+2)-D(n+l)); R(n+2)=2*E(n+2)*(abs(D(n+2))+abs(D(n+l))+eps); n=n+l; end
354 Глава 6. Численное дифференцирование n=length(D)-l; L=[H> D> Е>]; Программа 6.2 включает теорему 6.3 (экстраполяцию Ричардсона). Заметим, что выражения для элементов строки j являются алгебраическим эквивалентом формулы C6). Программа 6.2 (дифференцирование с использованием экстраполяции). Чтобы найти численное приближение /'(#), генерируем таблицу приближений ?)(j, к) для k<j и используем /;(x)«D(n, n) в качестве окончательного ответа. Приближения Z)(jf, к) хранятся в нижней треугольной матрице, первый столбец которой равен и элементы строки j имеют вид function [D, err,relerr,n] =diffext (f,3c,delta,toler) °/,Вход - f - функция, вводимая как строка Jf > % - delta - допустимое отклонение для ошибки 7, - toler - допустимое отклонение для относительной ошибки УоВыход - D - матрица приближений производных % - err - грань ошибки У, - relerr - грань относительной ошибки У. - п - координата "наилучшего приближения** егг=1; relerr=l; h=l; j-i; D(l,l)=(feval(f,x+h)-feval(f,x-h))/B*h); while relerr>toler & err>delta &j<12 h=h/2; D(j+l,l)=(feval(f,x+h)-feval(f,x-h))/B*h); for k=l:j end err«abs(D(j+l,j+D-D(j,j)); relerr=2*err/(abs(D(j+l,j+l))+abs(D(j,j))+eps); end [n,n]=size(D);
6.1. Приближение производной 355 Упражнения к разделу 6.1 1. Пусть f(x) = sin(x), где х измеряется в радианах. (a) Вычислите приближение к /'@,8), используя формулу C) с шагамим h = 0,1, h = 0,01 и h = 0,001. Вычисления проведите с восемью или девятью десятичными знаками. (b) Сравните полученное приближение со значением /;@,8) = cos@,8). (c) Вычислите грани для ошибки усечения по формуле D). Используйте |/C)(с)| < cos@,7) « 0,764842187 для всех случаев. 2. Пусть f(x) = ех. (a) Вычислите приближение к /;B,3), используя формулу C) с шагами h = = 0,1; h = 0,01 и h = 0,001. Вычисления проведите с восемью или девятью десятичными знаками. (b) Сравните полученное приближение со значением /'B,3) = е2'3. (c) Вычислите грани для ошибки усечения подформуле D). Используйте |/C)(с)|<е2'4« 11,02317638 во всех случаях. 3. Пусть f(x) = sin(a:), где х измеряется в радианах. (a) Вычислите приближение к /'@,8), используя формулу A0) с шагами h = 0,1 и h = 0,01 и сравните со значением /'@,8) = cos@,8). (b) Воспользуйтесь экстраполяционной формулой B9) для вычисления при- приближения к /;@,8) п. (а). (c) Вычислите грани ошибки усечения по формуле'A1). В обоих случаях используйте |/E)(с)| < cos@,6) «0,825335615. 4. Пусть f(x) = ех. (a) Вычислите приближение к /'B,3), используя формулу A0) с шагами /i = 0,1h/i = 0,01 и сравните со значением /'B,3) = е2'3. (b) Воспользуйтесь экстраполяционной формулой B9) для вычисления при- приближения к /'B,3) из п. (а). (c) Вычислите грани ошибки усечения по формуле A1). В обоих случаях используйте |/E)(с)|<е2>5« 12,18249396. 5. Сравните формулы C) и A0) численного дифференцирования. Пусть f(x) = = хг. Найдите приближение к /'B). (а) Используйте формулу C) с шагом h = 0,05.
356 Глава 6. Численное дифференцирование (b) Используйте формулу A0) с шагом h = 0,05. (c) Вычислите грани ошибки усечения по формулам D) и A1). 6. (а) Используйте теорему Тейлора, чтобы показать, что (b) Используйте п. (а), чтобы показать, что отношение приращений в выра- выражении B) имеет ошибку порядка O(h) = -hfW(c)/2. (c) Почему лучше использовать формулу C), чем формулу B)? 7. Формула частной производной. Частную производную /ж(ж,у) функции /(я, у) по х получаем, если при фиксированном у дифференцируем функцию по х. Аналогично находим /у(ж,у), фиксируя х и дифференцируя функцию по у. Формулу C) можно следующим образом записать в частных производ- производных: (a) Пусть /(ж, у) = ху/(х+у). Вычислите приближение к /хB,3) и /уB,3), используя формулы (i) с шагами Л = 0,1; Л = 0,01 и h = 0,001. Сравните со значениями, полученными диффференцированием /(ж, у) по х и у. (b) Пусть z = f(x,y) = axctan(y/:r), где я измеряется в радианах. Вычис- Вычислите приближение к /^C,4) и /^C,4), используя формулы (i) с шагами Л = 0,1, Л = 0,01 и h = 0,001. Сравните со значением, полученным дифференцированием /(ж, у) по ж и у. 8. Подробно распишите, как из формул C1) и C2) получить формулу C3). 9. (а) Покажите, что формула B1) задает значение /г, которое минимизирует правую часть формулы B0). (Ь) Покажите, что формула B6) задает значение Л, которое минимизирует правую часть формулы B5). 10. Напряжение Е = E(t) в электрической сети удовлетворяет уравнению E(t) = = L(dl/dt) + RI(t), где R — сопротивление и L — индукция. Используйте значения L = 0,05 ий = 2и приведенные в таблице значения I(t). t 1,0 1,1 1,2 1,3 1,4 Щ 8,2277 7,2428 5,9908 4,5260 2,9122
6.1. Приближение производной 357 (a) Найдите /'A,2), выполнив численное дифференцирование, и для полу- полученного значения вычислите ЕA,2). (b) Сравните ваш ответ со значением I(t) = 10е~^10 sinBt). 11. Дальность полета снаряда D = D(t) приведена в таблице. t 8,0 9,0 10,0 11,0 12,0 D(t) 17,453 21,460 25,752 30,301 35,084 (a) Найдите скорость VA0), выполнив численное дифференцирование. (b) Сравните ваш ответ со значением производной, если D(t) = —70 + 7t + / 12. Значения f(x) приведены в таблице. Неустранимая ошибка округления имеет грани |efc| < 5 х 10~6. Используйте округление в своих вычислениях. X 1,100 1,190 1,199 1,200 1,201 1,210 1,300 f(x) = cos(x) 0,45360 0,37166 0,36329 0,36236 0,36143 0,35302 0,26750 (a) Найдите приближения к /'A,2) по формуле A7) с шагами h = ОД, h = 0,01 и h = 0,001. (b) Сравните ответ со значением /'A,2) = — sin(l,2) » —0,93204. (c) Найдите грань общей ошибки A9) для трех случаев из п. (а). 13. Значения f(x) приведены в таблице. Неустранимая ошибка округления имеет грани |е*| < 5 х 10~6. Используйте округление в своих вычислениях. X 2,900 2,990 2,999 3,000 3,001 3,010 3,100 /(s) = ln(s) 1,06471 1,09527 1,09828 1,09861 1,09895 1,10194 1,13140
358 Глава 6. Численное дифференцирование (a) Найдите приближения к /'C,0) по формуле A7) с шагами h = ОД, h = 0,01 и h = 0,001. (b) Сравните свое приближение со значением /'C,0) = | « 0,33333. (c) Найдите грань общей ошибки A9) для трех случаев из п. (а). 14. Предположим, что значения функции f(xk) в таблице вычислялись с округ- округлением до трех десятичных знаков и неустранимая ошибка округления равна 5 х ИГ4. Предположим также, что |/C)(с)| < 1.5 и |/E)(с)| < 1.5. (a) Найдите наилучшую длину шага h для формулы A7). (b) Найдите наилучшую длину шага h для формулы B2). 15. Значения функции f(x) приведены в таблице ниже. Неустранимая ошибка округления имеет грань ||e^| < 5 х 10"~6. Используйте округленные значения в своих вычислениях. X 1,000 1,100 1,198 1,199 1,200 1,201 1,202 1,300 1,400 /(х)=сов(х) 0,54030 0,45360 0,36422 0,36329 0,36236 0,36143 0,36049 0,26750 0,16997 (a) Найдите приближение /'A,2) по формуле B2) с шагами h = 0,1 и h = = 0,001. (b) Найдите грань общей ошибки B4) для обоих случаев из п. (а). 16. Значения функции f(x) приведены в таблице ниже. Неустранимая ошибка округления имеет грань |е*| < 5 х 10~6. Используйте округленнные значения в своих вычислениях. X 2,800 2,900 2,998 2,999 3,000 3,001 3,002 3,100 3,200 /(х) = 1п(х) 1,02962 1,06471 1,09795 1,09828 1,09861 1,09895 1,09928 1,13140 1,16315
6.2. Формулы численного дифференцирования 359 (a) Найдите приближение /'C,0) по формуле B2) с шагами h = 0,1 и h = = 0,001. (b) Найдите грань общей ошибки B4) для обоих случаев из п. (а). Алгоритмы и программы 1. Используйте программу 6.1 для приближения производной каждой из следу- следующих функций в заданном значении х. Приближения должны иметь точность 13 десятичных знаков. Примечание. Возможно, стоит выбрать значения maxl и начальное значение h в программе. (a) f(x) = 60ж45 - 32я33 + 233ж5 - 47ж2 - 77; х = /u\ t( \ 4. ( />/5 + sin(a;)\\ I-h л/5 (b) f(x) = tan (cos ( 1 + x2v M I; x = —g—. (c) /(я?) = sin(cos(l/rr)); x = 1/л/2. (d) /(a:)=sin(a;3-7a;2 + 6a; + 8);a; = i-y^. (e) /(ж) = жжХ;х = 0,0001. 2. Модифицируйте программу 6.1 так, чтобы включить формулу центрирован- центрированной разности A0) порядка О (Л4). Используйте программу, чтобы найти при- приближение производных функций из задачи 1. Точность приближения снова должна быть равной 13 десятичным знакам. 3. Используйте программу 6.2, чтобы найти приближение производных функ- функций из задачи 1. Точность приближения снова должна быть равной 13 деся- десятичным знакам. Примечание. Возможно, стоит выбрать начальные значения err, relerr и h. 6.2. Формулы численного дифференцирования Еще несколько формул центрированной разности В предыдущем разделе в формулах для /'(жо) требовалось, чтобы функция вычислялась в абсциссах, лежащих по обе стороны от х, и их можно было рас- рассматривать как формулы центрированной разности. Чтобы получить формулы центрированной разности для производых высших порядков, можно использо- использовать ряд Тейлора. Самые распространенные из выбираемых порядков — O(h2) и О (Л4) — приведены в табл. 6.3 и 6.4. В таблицах использованы обозначения Л = /fao + kh) ддяк = -3, -2, -1, 0, 1, 2, 3.
360 Глава 6. Численное дифференцирование Таблица 6.3. Формула центрированной разности порядка O(h2) Таблица 6.4. Формула центрированной разности порядка O(h4) /»(,0)« -Л + Ц/1-30/0 ~/з + 8/г - 13/i + 13/-i - 8/-2 + /-з /D)(хо) й -/з -f 12/2 - 39/х + 56/о - 39/-! + 12/-2 - /-, Для иллюстрации получим формулу для /"(ж) порядка О (/г2) из табл. 6.3. Начнем с разложения Тейлора: о) /,*+м = /(*)+Л/'М r vw • • / «/ v / • j v / О fi О А И Суммируя выражения A) и B), исключаем члены, которые содержат нечетные производные f'(x), /C)(s)> ()
6.2. Формулы численного дифференцирования 361 Решаем уравнение C) относительно f"(x) и получаем „ f(x + h)-2f(x) + f(x-h) D) Л) = * 6! Если рассматривать ряд D) до четвертой производной, то существует такое значение с, которое лежит на интервале [х — h; x + h], что E) / (хо) = Это дает формулу для приближения f"{x): F) Пример 6.4. Пусть /(дг) = cos(x). (a) Используем формулу F) с шагами Л = 0,1, h = 0,01 и h = 0,001 и найдем приближения к /"@,8). Все вычисления проведены с девятью десятичными знаками. (b) Сравним полученное приближенмие с истинным значением /"@,8) = = -cos@,8). (а) Приведем вычисления для шага h = 0,01 /@,81)-2/@,80) 0,0001 0,689498433 - 2@,696706709) + 0,703845316 ю 0,0001 w » -0,696690000. (b) Ошибка приближения в этом случае равна —0,000016709. Остальные вычис- вычисления объединены в табл. 6.5. При анализе ошибок рассмотрим этот пример и покажем, почему шаг, равный h = 0,01, лучший. ¦ Таблица 6.5. Длина шага Л = 0.1 h = 0.01 Л = 0.001 Численные приближения к f"(x) для примера 6.4 Приближение по формуле F) -0,696126300 -0,696690000 -0,696000000 Ошибка при использовании формулы F) -0,000580409 -0,000016709 -0,000706709
362 Глава 6. Численное дифференцирование Анализ ошибок Пусть fk = yk + ek> где е* — ошибка вычисления /(#&), содержащая помехи в измерениях и округленную ошибку. Тогда формулу F) можно записать в виде Остаточный член E(h,f) для численной производной G) состоит из части, обу- обусловленной ошибкой округления, и части, обусловленной ошибкой усечения: Etf м_е12е0 E{f, h) -2 Если предположить, что каждая ошибка е* равна величине е с соответствующим знаком и что |/^(я?)| < Af, то можно получить следующую грань ошибки: (9) ' % ^ Если h мало, то вклад 4e/h2 делает ошибку округления большой. Когда h велико, то велик и вклад Mh2/12. Оптимальная длина шага будет минимизировать величину Если приравнять g'{h) = 0, то результатом будет — 8б/Л3 + Mh/6 = 0, что приведет к уравнению Л4 = 48е/М> из которого можно получить оптимальное значение h: Если формулу A1) применить в примере 6.4, а также использовать грани |/D) (х) \< < | cos(x)| <1 = Ми значение б = 0.5 х 10~9, то оптимальная длина шага будет равна h = B4 х 10~9/1I/4 = 0,01244666, и видно, что шаг h = 0,01 ближе всего к оптимальному значению. Так как часть ошибки, обусловленная ошибкой округления, обратно пропорци- пропорциональна квадрату Л, этот член возрастает, когда h становится малым. Иногда об этом говорят, как о дилемме длины шага. Частично эта проблема решается с по- помощью формулы столь высокого порядка, чтобы большое значение h приводило к требуемой точности. Формула для /"(xq) порядка O(h4) из табл. 6.4 имеет вид ПОЛ f»( \ ^/2 + 16/1 - 30/0 + 16/^! ^ /_2 , р/, L4 A2) / (хо) = ^2 + E\f> h>-
6.2. Формулы численного дифференцирования 363 Остаточный член для A2) равен 16с W где с лежит на интервале [х - 2Л; х + 2h]. Грань для \E(f, /i)| равна A4) где |/F)(х)| < М. Оптимальное значение h задается формулой <¦» " Н™Т- Пример 6.5. Пусть f(x) = cos(rc). (a) Используем формулу A2) с шагами h = 1,0; 0,1 и 0,01 и найдем прибли- приближение к /"@,8). Все вычисления будут проведены с девятью десятичными знаками. (b) Сравним полученное приближение с истинным значением /"@,8) = = -cos@,8). (c) Найдем оптимальную длину шага. (a) Вычисления для шага Л = 0,1: Г@,8)« _ -/A,0) + 16/@,9) - 30/@,8) 4-16/@,7) - /@,6)^ 0,12 _ -0,540302306 + 9,945759488 - 20,90120127 + 12,23747499 - 0,825335615 _ 0,12 и -0,696705958. (b) Ошибка приближения равна —0,000000751. Остальные вычисления сведены в табл. 6.6. (c) В случае применения формулы A5) можно использовать грань |/F)(ж)| < < | cos(a;)| < 1 = М и значение б = 0,5 х 10~9. Эти значения дают оптимальную длину шага h = A20 х 10"9/!I/6 = 0,070231219. ¦ Таблица 6.6. Длина шага /i = l,0 /i = 0,l /г = 0,01 Численные приближения к /"(х) из примера 6.5 Приближение по формуле A2) -0,689625413 -0,696705958 -0,696690000 Ошибка при использовании формулы A2) -0,007081296 -0,000000751 -0,000016709
364 Глава 6. Численное дифференцирование Вообще, при выполнении численного дифференцирования получаем прибли- приблизительно только половину точности, которую допускает компьютер. Эта крупная потеря значащих цифр будет почти всегда происходить, если не удастся найти оптимальную длину шага. Поэтому следует всегда проявлять осторожность при выполнении численного дифференцирования. Трудности чаще всего проявляются при работе с экспериментальными данными, когда значения функции округляются только до нескольких цифр. Если численное значение производной нужно полу- получить по наблюдениям, то следует пользоваться построением кривой по точкам с использованием техники метода наименьших квадратов и формулой дифференци- дифференцирования для кривой. Дифференцирование полинома Лагранжа Для вычисления значения функции в абсциссе, которая лежит с одной стороны от точки хо, нельзя использовать формулу центрированной разности. Формулы для равноотстоящих абсцисс, которые лежат справа (или слева) от точки хо, на- называют формулами для правых (или левых) разностей. Эти формулы можно по- получить дифференцированием интерполяционного полинома Лагранжа. Некоторые общие формулы для правых и левых разностей приведены в табл. 6.7. Таблица 6.7. Формулы для правой и левой разностей порядка O(h2) -3/o + 4/i~/2 /правая \ 2Л V Разность ) 3/о-4/-1+/-2 (левая \ 2/i V Разность ) 2/0-5/1+4/а-/а (пРавая \ дг ^разность; «и \ ~ 2/о-5/-1+4/_2-/-з / левая \ (*°)w j^ ^разность; /(8)(жо) и -5/0 + 18/! -24/2 + 14/3- 3/4 /C) 5/р - 18/-1 + 24/-а - 14/-8 + 3/-4 3/р - 14/х + 26/2 - 24/з + ИД - 2/6 З/о - 14/,i + 26/-2 - 24/-з + П/-4 - 2/-5
6.2. Формулы численного дифференцирования 365 Пример 6.6. Получим формулу Начнем с интерполяционного полинома Лагранжа для /(?), построенного по точкам xq, х\, х2 и х$: г {t ~ Xj)(t - X2)(t - Хз) + j, (t - Xp)(t - X2)(t - X3) | °(xo-xi){xo -x2){x0 -s) ^s ^)(^ ^)(^ я) + / 2 - xo){x2 - xi)(x2 - Продифференцируем дважды произведения в числителях и получим | 2«txQ) + (tx2) + (tx3)) i (x a;0)(a; x2)(xi ж) | 2((txQ) + (txi) + (tx3)) [ (Х2 Жо)(х2 Х) (х2 Х3) + / (х3 - хо)(х3 - xi)(x3 - х2) Затем подстановка ? = хо и тот факт, что ж* - Xj = (t — j)/i, дадут ° ~ Ж3^ I x) . 2((g0 - ж0) + (жр a?2) + (sp жз)) | 1 (ж1а;о)(ж1Ж2)(я:1жз) (ж2 - ж 2((з?о - ж0) + (жр - жх) + (ж0 - (жз - жо)(жз - Ж1)(жз - жг) (-3/1)) 2(@) + (-Oh) + (-3ft)) (-Л)(-2Л)(-8Л) +Л о. / 2(@) + (-Н) + (-З/i)) 2(@) + (-Л) + (-2Л)) + /2 BЛ)(Л)(-Л) +/3 -12Л , . -ЮЛ . . -8Л , . -6Л _2/р-5/1+4/2-/з Л2 Итак, формула получена.
366 Глава 6. Численное дифференцирование Пример 6.7. Получим формулу гы т -цы-чл-ад+чл-ц. Начнем с интерполяционного полинома Лагранжа для /(<), построенного по точкам xq, х\, х2, х3 и ж4: - х2)(х0 - х3)(х0 - ж4) , (<-жо)(^-а;2)(<-а:з)(<-а;4) 1 (« x)(z x)(x x)(a; ж) (tgO)(tgi)(tg3)(tg4) , 2 (S Ж)(Ж Ж)(ж Х)(Х Ж) 3 , (f - a:0)(t - xi)(t - x2)(t - x3) 4 (S4 - XO)(X4 - Xi)(x4 - X2){X4 - X3) Трижды продифференцируем числители, затем в знаменатели подставим xi = (i — j)h и получим (t - Xj) + (t- XZ) + (t- Ж4)) , (-h)(-2h)(-3h)(-4h) + - gp) + (t- Xj) + (t- X3) + (t- X4)) (h)(-h)(-2h)(-3h) (t-x1) + (t-x3) + (t-x4)) Bh)(h)(-h)Bh) (t-x1) + (t-x2) + (t-xA)) Ch)Bh)(h)(-h) 6((t - s0) + (t - si) + (t -
6.2. Формулы численного дифференцирования 367 Затем подставим t = хо в выражение t — Xj; = xq — #j = —j/i 6(@) + (-ft) + (-3ft) + (-4ft)) 4Й? 6(@) + (-ft) + (-2ft) + (-4ft)) 6(@) + (-ft) + (-2ft) + (-3ft)) + h 24ft? = . -60ft 54ft -48ft 42ft -36ft = /o + h+ h + h + h _ -5/p + 18/t - 24/2 + 14/3 - З/4 2ft3 и формула получена. ¦ Дифференцирование полинома Ньютона В этом разделе будет найдено соотношение между тремя формулами порядка О (ft2) для приближения /'(жо) и приведен общий алгоритм вычисления произ- производной. В разделе 4.3 было показано, что полином Ньютона P(i) степени N — 2, который приближает функцию f(t) по узлам to, t\ и ti, имеет вид A6) P(t) = о0 + ai(t - t0) + a2(t - to)(t - где a0 = f(t0), ax = (f(h) - /(to))/(*i - «о), и f(t2)-f(h) f(ti)-f(t0) Производная P(t) равна A7) и если ее вычислить в точке t = to, то в результате можно получить A8) P'(to) = ai + a2(t0 - ii) « /'(t0). Отметим, что узлы {t*} необязательно должны быть расположены на равном расстоянии, чтобы были справедливы формулы A6)—A8). Выбирая абсциссы со- соответствующим образом, получим различные формулы для приближения f'{x).
368 Глава 6. Численное дифференцирование Случай (i). Если to = x, t\ = х + h и t<i = х + 2h, то f(x + h)-f{x) 02 = h fix)-2fix + h) + fix + 2h) 2h2 Затем подставим эти значения в A8) и получим ix + h)- fjx) -fjx) + 2fjx + h)- fjx + 2h) ~ h + 2h Упростим выражение и получим A9) 2/1 Это и есть формула правой разности второго порядка для f'(x). Случай (и). Если <о = ^> *1 = # + h и *2 = х — К то 01 = fix + h) - 2/(х) + fix - h) 02 Затем подставим эти значения в A8) и получим Упростив это выражение, получим B0) р(д). формулу центрированной разности второго порядка для /'(а?), Случай (ш). Если to = х, t\ = ж ~ h и *2 я ж - 2Л, то _ fjx) - 2/(g - ft) + /(» - 2h) ш Подставим эти значения в A8) и упростим, тогда получим B1, Р-W = УМ-</(«-»> + /<-»>« ,,,,,, формулу левой разности второго порядка для f'(x).
6.2. Формулы численного дифференцирования 369 Полином Ньютона P(t) степени N, который приближает функцию /(?), ис- используя узлы to, t\9 ..., *дг, имеет вид P(t) = а0 + ax(t - t0) + a2(t - to)(t - + a3(t - k){t - h)(t - t2) + • • • + aN(t - to) Производная P(t) равна = ai + O2((t - to) + (* - + o3((t - «o)(< - *i) + (* - *o)(* - *2) + (t - ti)(t - t2))+ B3) A:=0 j=0 Когда P'(t) вычисляют в точке t = to» некоторые члены суммы равны нулю и имеет более простой вид: B4) + а(* *)(«0 «й)(«й - *з) • • • (*й - *iv-i к-я частичная сумма в правой части равенства B4) — это производная полинома Ньютона fc-ro порядка, построенная на первых к узлах. Если |*о - <i| < |*о - «2I < • • • < 1*0 - tN\ и если {(tj,O)}jlo является совокупностью N + 1 равноотстоящей точки на действительной оси, то к-я частичная сумма — это приближение к /'(*о) порядка O(hk~l). Предположим, что N = 5. Если пять узлов равны t* = х + hk для к = 0, 1, 2, 3 и 4, то B4) является эквивалентом формулы правой разности порядка O(h4) для /'(ж). Если выбрать пять узлов {**} равными to = ж, *i = х + h, *2 = % - К Ц — х + 2h и U = # - 2Л, то B4) будет формулой центрированной разности порядка О (Л4) для /'(ж). Когда пять узлов равны tk — x- kh% то B4) является формулой левой разности порядка O(h4) для ff(x). Следующая программа является улучшенным вариантом программы 4.2, и ее можно использовать для вычисления по формуле B4). Заметим, что узлы не обя- обязательно должны быть равноотстоящими. Кроме того, программа вычисляет про- производную f'(xo) только в одной точке.
370 Глава 6. Численное дифференцирование Программа 6.3 (дифференцирование, использующее N + 1 узел). Про- Программа предназначена для численного приближения /'(#) полиномом Ньютона ЛГ-й степени Р(х) = ао + а\(х - хо) + а,2(х - хо)(х - + а3(я - хо){х - xi)(x -х2)-\ + aN(x - и использует значение /'(хо)&Р'(хо) в качестве ответа. Метод следует исполь- использовать для точки #о- Для вычисления /'{хк)~Р'(хк) точки можно перегруппи- перегруппировать function [A,df]=diffnew(X,Y) •/.Вход - X - вектор абсцисс размера lxn 7, - Y - вектор ординат размера lxn '/•Выход - А - вектор размера lxn, который содержит коэффициенты У, полинома Ньютона N-й степени */0 - df - приближение производной A=Y; N=length(X); for j=2:N for k=N:-l:j end end xO=X(l); df=AB); prod=l; nl=length(A)-l; for k=2:nl prod=prod*(xO-X(k)); df=df+prod*A(k+l); end Упражнения к разделу 6.2 1. Пусть f(x) = ln(x) и вычисления следует производить с восемью или девя- девятью десятичными знаками. * (a) Найдите приближение /"E) по формуле F) с шагом h = 0,05. (b) Найдите приближение /"E) по формуле F) с шагом h = 0,01. (c) Найдите приближение /"E) по формуле A2) с шагом h = 0,1.
6.2. Формулы численного дифференцирования 371 (d) Какой из ответов — (а), (Ь) или (с) — наиболее точный? 2. Пусть f(x) = cos(x) и вычисления следует производить с восемью или де- девятью десятичными знаками. (a) Найдите приближение /"A) по формуле F) с шагом h = 0,05. (b) Найдите приближение /"A) по формуле F) с шагом h = 0,01. (c) Найдите приближение /"A) по формуле A2) с шагом h = 0,1. (d) Какой из ответов — (а), (Ь) или (с) — наиболее точный? 3. Рассмотрите таблицу значений f(x) = ln(rc), округленных до четырех деся- десятичных знаков. X 4,90 4,95 5,00 5,05 5,10 /(*) = ln(x) 1,5892 1,5994 1,6094 1,6194 1,6292 (a) Найдите приближение /"E) по формуле F) с шагом h = 0,05. (b) Найдите приближение /"E) по формуле F) с шагом h = 0,01. (c) Найдите приближение /"E) по формуле A2) с шагом h = 0,05. (d) Какой из ответов — (а), (Ь) или (с) — наиболее точный? Рассмотрите таблицу значений /(ж) = cos (ж), округленных до четырех деся- десятичных знаков. X 0,90 0,95 1,00 1,05 1,10 f(x) = cos(x) 0,6216 0,5817 0,5403 0,4976 0,4536 (a) Найдите приближение /"A) по формуле F) с шагом h = 0,05. (b) Найдите приближение /"A) по формуле F) с шагом h = 0,01. (c) Найдите приближение /"A) по формуле A2) с шагом h = 0,05. (d) Какой из ответов — (а), (Ь) или (с) — наиболее точный? 5. Найдите приближение //;A) по формуле численного дифференцирования F) с шагом Л = 0,01 для следующих функций. (a) f(x)=x2 (b) f(x) = x*
372 Глава 6. Численное дифференцирование 6. Найдите приближение /"A) по формуле численного дифференцирования A2) с шагом h = 0,1 для следующих функций. (a) f(x)~xA (b) f(x)=x6 7. Используйте разложение в ряд Тейлора функций f(x + h),f(x — h),f(x+2h) и f(x — 2h) и найдите формулу центрированной разности: fc /(* + 2/i) - 2f(x + h)+ 2f(x - Л) - /(ж - 2h) 8. Используйте разложение в ряд Тейлора функций f(x + h),f(x-h),f(x+2h) и f(x — 2h) и найдите формулу центрированной разности: i f(x + 2h) - 4f(x + h) + 6f{x) - 4/(a? - h) + f(x - 2Л) ft4 9. Найдите приближение порядка О (Л2) к приведенных ниже в таблицах. в каждой из четырех точек (а) X 0,0 0,1 0,2 0,3 0,989992 0,999135 0,998295 0,987480 (Ь) X 0,0 0,1 0,2 0,3 0,141120 0,041581 -0,058374 -0,157746 10, Используйте приближения 'Ы)~ и получите приближение /i-/o ¦ Л- /-г 11. Используя формулы A6Н18), найдите построенную на абсциссах <о " $> <1 = а? + /i и <2 в я? + ЗЛ формулу для /'(я?). 12. Используя формулы A6)-<18), найдите построенную на абсциссах ?q » а?, ti ss ж - Л и <2 в х + 2Л формулу для /'(я), 13. Для численного решения определенного дифференциального уравнения тре- требуется приближение к /"(#) + f(x) порядка О (Л2). (а) Найдите формулу центрированной разности для f"(%) + /'(#), сложив формулы для f'(x) и /"(#) порядка О (Л2).
6.2. Формулы численного дифференцирования 373 (b) Найдите формулу правой разности для f"(x) + /'(ж), сложив формулы для f(x) и f (х) порядка O(/i2). (c) Что произойдет, если формулу для /'(#) порядка O(h4) сложить с фор- формулой для f"(x) порядка О (Л2)? 14. Опровергните следующее суждение. Формулу Тейлора можно использовать, чтобы получить представления Сложим эти величины и в результате получим уравнение fix + h) + f(x -h) = 2f(x) + h2f"(x), которое можно решить и получить точную формулу для f"(x): f(rp 4- М _ Of (<r\ JL fir — h\ /"(*) =f{x+h} 2/J)+/(a: hK Алгоритмы и программы 1. Модифицируйте программу 6.3 так, чтобы она вычисляла Р'{хм) для М = 1, 2 ЛГ + 1.
7 Численное интегрирование Численное интегрирование является основным методом, используемым инже- инженерами и научными работниками для получения приближенного ответа при вы- вычислении определенных интегралов, которые нельзя вычислить аналитически. В области статистической термодинамики модель Дебье (Debye) для вычисления теплоемкости твердого тела содержит следующую функцию: Так как это не аналитическое выражение для Ф(ж), для получения приближенного значения следует использовать численное интегрирование. Например, значение ФE) равно площади под кривой у = f(t) = <3/(е* — 1) для 0 < t < 5 (рис. 7.1). Численное приближение для ФE) имеет вид - Г5 *3 ~ Jo е* - 1 ФE) = -—-Л« 4,8998922. Jo e — 1 Каждое дополнительное значение Ф(х) определяется другим численным инте- интегрированием. В табл. 7.1 показаны некоторые из этих приближений на интерва- интервале [1; 10]. Назначение этой главы — описать основные принципы численного интегриро- интегрирования. В главе 9 формулы численного интегрирования используются для полу- получения прогнозирующих-корректирующих методов решения дифференциальных уравнений. 374
7.1. Введение в квадратуру 375 1,5 1,0 0,5 A /&. : 0 1 Рис. 7.1. Площадь под кривой дляО<*<5 Таблица 1 X 1,0 2,0 3,0 4,0 5,0 6,0 7,0 8,0 9,0 10,0 м. Значения Ф(х) Ф(х) 0,2248052 1,1763426 2,5522185 3,8770542 4,8998922 5,5858554 6,0031690 6,2396238 6,3665739 6,4319219 7.1. Введение в квадратуру А сейчас перейдем к численному интегрированию. Задача состоит в том, чтобы найти приближение определенного интеграла от f(x) на интервале [а; Ь]9 вычисляя функцию f(x) в конечном числе выбранных точек. Определение 7.1. Предположим, что а = хо < х\ < • • • < хм = Ь. Формула вида м A) Q[f] = = wQf(x0) + wif(xi) wMf(xM), k=0 обладающая таким свойством, что B)
376 Глава 7. Численное интегрирование & называется формулой численного интегрирования или формулой квадратуры* - Член E[f] называется ошибкой усечения для интегрирования. Значения называются узлами квадратуры и {wk}kLo называются весами. к В зависимости от применения узлы {х^} выбираются различными способами. Для формул трапеций, Симпсона и Буля выбираются равноотстоящие узлы. Для квадратуры Гаусса-Лежандра выбранные узлы должны быть нулями определен*' ных полиномов Лежандра. Если формула интегрирования используется, чтобы псь лучить формулу прогноза для дифференциальных уравнений, то все узлы следует выбирать меньшими, чем Ь. И во всех случаях применения формулы необходимо кое-что знать о точности численного решения. Определение 7.2. Степень точности формулы квадратуры равна такому по- положительному целому числу п, что Е[РЦ = 0 для всех полиномов Р{(х) степени г < п, но для которого JS[Pn+i] ф О для некоторого полинома Pn+i(x) степени п+1. ' к Вид E[Pi] можно заранее определить, если изучить, что происходит, когда f(x) — полином. Рассмотрим произвольный полином степени г ; Pi(x) = щх1 + щ-1Хг~1 Н Ь а\х + ао. Когда г < n, JF^(n+1)(x) = 0 для всех х и P^l\x) = (n + l)!an+i для всех х. Поэтому не является неожиданностью, что общая форма для ошибки усечения ч равна C) где К — определенная постоянная и п — степень точности соответственно. Дока- Доказательство этого общего результата можно найти в книгах повышенной сложности по численному интегрированию. Получение квадратурной формулы иногда основано на интерполяционном по- полиноме. Напомним, что существует единственный полином Рм(х) степени <М, который проходит через М + 1 равноотстоящую точку {(rr^; 2//fc)}^Lo- К°гДа этот полином используется для приближения f(x) на интервале [a; b] и затем инте- интеграл от f(x) приближается с помощью интеграла от Рм(х), в результате полу- получается формула квадратуры Нъютона-Котса (Newton-Cotes) (рис. 7.2). Когда используются точки хо = а и хм = Ь, формула называется замкнутой формулой Ньютона-Котса. Следующая теорема дает формулы для приближения полинома- полиномами степени М = 1,2,3 и 4. Теорема 7.1 (замкнутая формула квадратуры Ньютона-Котса). Предполо- Предположим, что Xk = хо + kh — равноотстоящие узлы иД = /(#&)• Приведем первые
7.1. Введение в квадратуру 377 0,0 У 1,5- 1,0 ч 0,5- 0 / 0 0,5 0,5 1,0 (а) ч У = 1,0 (с) 1 ,5 **~ 1,5 2,0 —• 2,0 0, 0 У 1,5- 1,01 0,5- 0 / 0 0,5 0,5 1,0 (b) 1,0 (d) 1,5 1,5 2 0 :=* ¦¦ i- | 2,0 Рис. 7.2. (а) Формула трапеций для интегрирования функции у = Pi(x) на интервале [#o;#i] = [0,0; 0,5]. (b) Формула Симпсона для интегрирования у = Р2(х) на интервале [xo;a:i] = [0,0; 1,0]. (с) Формула Симпсона | для интегрирования у = Рз(#) на интервале [хо] #з] = [0,0; 1,5]. (d) Формула Буля для интегрирования у = Р^{х) на интервале [xq]X4] = [0,0; 2,0] четыре замкнутые формулы квадратуры Ньютона-Котса: D) E) F) G) s -(/о + /i) (формула трапеций), [Х2 h f(x) dx « ~(/о + 4/i + /2) (формула Симпсона), Jxo ^ гхз з^ 3 f{x)dx&— (/о + З/i + З/2 + /3) (формула Симпсона -), Jxo о о Х4 (х) dx'. 32/3 + 7/4) (формула Буля). Следствие 7.1 (точность Ньютона-Котса), Предположим, что функция f(x) имеет достаточное число производных. Тогда E[f] для квадратуры Ньютона- Котса содержит соответствующие производные высокого порядка. Формула тра- трапеций имеет степень точности п = 1. Если / € С2[а\ 6], то (8) /i) - ^
378 Глава 7. Численное интегрирование Формула Симпсона имеет степень точности п = 3. Если / Е С4 [а; 6], то (9) ? /(х) dx = |(/0 + 4Д + /2) - ^/D)(с). Формула Симпсона | имеет степень точности п = 3. Если / е С4 [а; 6], то A0) f{x)dx=6 {h + Zfl + Zf2 + h)-6—fW{c). Jx0 8 **U Формула Буля имеет степень точности п = 5. Если / G С6 [а; 6], то f{x) dx = ^G/о + 32/! + 12/2 + 32/з + 7/4) - ^ Доказательство теоремы 7.7. Начнем с полинома Лагранжа Рм{х), построен- построенного по точкам #о, х\у ..., жд/, который используем для приближения функции м A2) /(х) где fk = f(xk)> k = 0, 1, ..., М. Приближение для интеграла получаем путем замены подынтегральной функции /(х) полиномом Рм{х)- Существует общий метод получения формулы интегрирования Ньютона-Котса: f(x)dx&\ jxo Jxo A3) = I 2^ fkLMAx) ) dx = X/ ( fkLM,k(x)dx) = = X/ ( LM,fc(x) dx ] fk = 22 wbfa- Подробности общего доказательства A3) утомительны. Приведем пример доказа- доказательства формулы Симпсона для случая М = 2. Этот случай включает прибли- приближающий полином (ххх)(хх2) (хо xi)(x0 х2) 2 - xi)(x0 - х2) (xi - xo)(xi - х2) (x-xo)(x-xi)
7.1. Введение в квадратуру 379 Так как /о, /i и /2 являются постоянными по отношению к интегрированию, соотношения в A3) приводят к виду ixo V^u ' fi I dx-\- Jxq \*^1 ~"~ *^Oy v*^l ^2/ Используем замену переменных х = жо + ht, dx = /i di, которая поможет в вычислении интегралов в A5). Новыми пределами интегрирования станут t = О и t = 2. Равноотстоящие узлы Xk = #о + ^^ примут вид ж* — xj = (А; — j)fc и ж - я*: = h(t — /г). Используем это, чтобы упростить A5), и получим х0 Г2 h(t-Q)h(t-2) Jo о 2 ?2 h Г, 2 A6) +/2|[V- ^ Jo о 2 t=2 t=2 На этом доказательство окончено. Отложим схему доказательства следствия 7.1 до раздела 7.2. • Пример 7.1. Рассмотрим функцию /(ж) = 1 + е~х sinDrc), равноотстоящие узлы квадратуры хо = 0,0, х\ = 0,5, Х2 = 1,0, х$ = 1,5 и а?4 = 2,0 и соответствующие
380 Глава 7. Численное интегрирование им значения функции /0 = 1,00000, /i = 1,55152, /2 = 0,72159, /3 = 0,93765 и /4 = 1,13390. Применим различные формулы квадратуры от D) до G). Длина шага равна h = 0,5, и вычисления имеют вид [ ' fix) dx « ^A,00000 + 1,55152) = 0,63788, Jo 2 0 5 f{x) dx « -^-A,00000 + 4A,55152) + 0,72159) = 1,32128, о 3 1,5 О/Q С\ f(x) dx « -^-^A,00000 + 3A,55152) + 3@,72159) + 0,93765) =, о 8 = 1,64193 2,0 ОСП Vi f{x) dx « -^jP GA,00000) + 32A,55152) + 12@,72159)+ о 45 ' + 32@,93765) + 7A,13390)) = 2,29444. Важно понять, что приведенные выше формулы D}-G) иллюстрируют полу- получение приближения определенного интеграла на различных интервалах. График кривой у = fix) и площадь под полиномами Лагранжа у = Pi(rr), у = Рг(а:), у = Рз(я) и У = AfaO показаны на рис. 7.2. В примере 7.1 применялись формулы квадратуры с шагом h = 0,5. Если за- зафиксировать конечные точки интервала [а; Ь], то длину шага нужно регулировать для каждой формулы. Длина шага равна h = Ь — a, h = (Ь — а)/2, Л = (Ь — а)/3 и Л = F — а) /4 для формулы трапеций, Симпсона, формулы Симпсона | и Буля соответственно. В следующем примере иллюстрируются вычисления с такими длинами шагов. Пример 7.2. Рассмотрим интегрирование функции fix) = 1 + e""xsinDrr) на фиксированном интервале [щЬ] = [0; 1]. Применим различные формулы D)-G). При шаге h = 1 по формуле трапеций получаем j: = -A,00000 + 0,72159) = 0,86079. При шаге h = 1/2 по формуле Симпсона получаем Г Нх) dx » ^(/@) + 4/(|) + /A)) = Jo * = ^A,00000 +4A,55152) +0,72159) = 1,32128. о
7.1. Введение в квадратуру 381 При длине шага, равной h = 1/3, по формуле h = | Симпсона получаем f(x) dx « ^^(/@) + 3/A) + 3/(|) + /A)) = 1 = -A,00000 + 3A,69642) + 3A,23447) + 0,72159) = 1,31440. О По формуле Буля при длине шага, равной Д = 1/4, результатом будет Pl f{x) dx « 2^G/@) + 32/A) + 12/A) + 32/(|) + 7/A)) = = ^-GA,00000) +32A,65534) + 12A,55152)+ + 32A,06666) + 7@,72159)) = 1,30859. Истинное значение определенного интеграла равно f{x) dx = 21e-4coeD)-ainD) = 1)ЗО825о6о46426..., и приближение 1,30859, которое получено по формуле Буля, — наилучшее. Пло- Площадь под каждым из полиномов Лагранжа Pi (ж), Р2(ж), Рз(#) и P±ix) показана на рис. 7.3. ¦ Чтобы беспристрастно сравнить методы квадратуры, нужно использовать одно и то же количество вычислений функций каждым методом. Последний пример связан со сравнением вычислений интеграла на фиксированном интервале [а;Ь]. В нем используются точно пять значений функции Д = /(ж*), к = 0,1,..., 4, для каждого метода. Когда применяется формула трапеций на четырех подынтервалах, [so;si]> [zi;#2]> [#2;#з] и [жз;^4]» ее называют составной формулой трапеций: ГХ4 ГХ1 ГХ2 ГХз ' ГХ4 fix) dx = fix) dx + fix) dx + fix) dx + fix) dx& JXq JXo Jxi «*X2 **Хз w о (Л + /l) + o(/l + /2) + x(/2 + /з) + 7г(/з + /4) = Формулу Симпсона можно использовать таким же способом. Если формулу Симп- : сона применяют на двух подынтервалах, [жо; х^ и [х2] х^], то ее называют состав- I ной формулой Симпсона: ГХА ГХ2 ГХ4 f{x)dx=\ f{x)dx+\ f{x) Jxq Jxo Jx2 * j(/o + 4/i + /2) + ?(/2 + 4/3 + /4) = = ?(/0+4/1 + 2/2+4/3+/4).
382 Глава 7. Численное интегрирование 0,0 0,2 0,4 0,6 0,8 1,0 0,0 0,2 0,4 0,6 0,8 1,0 (а) (Ь) 0,0 0,2 0,4 0,6 0,8 1,0 (с) 0,0 0,2 0,4 0,6 0,8 1,0 (d) Рис. 7.3. (а) Применение формулы трапеций на интервале [0; 1] дает при- приближение 0,86079. (Ь) Применение формулы Симпсона на интервале [0; 1] дает приближение 1,32128. (с) Применение формулы Симпсона | на ин- интервале [0; 1] дает приближение 1,31440. (d) Применение формулы Буля на интервале [0; 1] дает приближение 1,30859 В следующем примере сравниваются значения, полученные по формулам G), A7) и A8). Пример 7.3. Рассмотрим интегрирование функции f(x) = 1 + е~х sinDx) на ин- интервале [а; Ь] = [0; 1]. Используем точно пять значений функции и сравним резуль- результаты, полученные по составным формулам трапеций, Симпсона и формуле Буля. Единственная длина шага равна h = 1/4. По составной формуле трапеций A7) получаем Р /(*) dx « ^(/@) + 2/A) + 2/(i) + 2/(|) + /A)) = Jo z = i(l,00000 + 2A,65534) + 2A,55152) + 2A,06666) + 0,72159) = 8 = 1,28358.
7.1. Введение в квадратуру у 1,5 383 1,5 1,0' 0,5 - /iOv^i / ':'¦-¦:¦.¦'.•••'':ИЩ% О, "'¦'% Щ%Щ$; illl к Ik 0,00 0,25 0,50 0,75 1,00 0,00 0,25 0,50 0,75 1,00 (а) (Ь) Рис. 7.4. (а) Составная формула трапеций дает приближение 1,28358. (Ь) Со- Составная формула Симпсона дает приближение 1,30938 При использовании составной формулы Симпсона A8) результат равен f(x) dx « ^(/@) + 4/A) + 2/(±) + 4/(|) + /A)) = = -^-A,00000 + 4A,65534) + 2A,55152) + 4A,06666) -I- 0,72159) = = 1,30938. Результат применения формулы Буля виден из примера 7.2: f(x)dx « + 32/A) + 12/A) + 32/C) = 1,30859. Истинное значение интеграла равно Г1 dx = 21e-4cosD)-smD) = 1308250б04642б.. J 1'е и приближение 1,30938 по формуле Симпсона намного лучше, чем значение 1,28358, полученное по формуле трапеций. Опять же, приближение 1,30859, полу- полученное по формуле Буля, ближе. Графики площадей под трапециями и параболами показаны на рис. 7.4. ¦ Пример 7.4. Определим степень точности формулы Симпсона |. Достаточно применить формулу Симпсона | на интервале [0; 3] с пятью про- проверяемыми функциями f(x) = 1, х9 х2, х3 и х4. Для первых четырех функций
384 Глава 7. Численное интегрирование формула Симпсона | точная: lcfc = 3 = |A+ 3A)+3A)+ 1) о 8 xdx = l = |@ + 3A) + 3B)+ 3) 0 Z о 3 о х2 dx = 9 = J@ + 3A) + 3D) + 9) о 8 х3 dx = Ц- = 1@ + 3A) + 3(8) + 27). 0 4 о f3 JO Функция f(x) = ж4 — это наименьшая степень я, для которой формула не является точной. = fS и ^ = ?@ + 3A) + 3A6) + 81). Таким образом, степень точности формулы Симпсона | равна п = 3. ¦ Упражнения к разделу 7.1 1. Рассмотрите интегрирование функции f(x) на фиксированном интервале [а; Ь] = [0; 1]. Примените различные формулы квадратуры D)-G). Длина ша- шага равна h = 1, Л = ^, h = |иЛ = | для формул трапеций, Симпсона, Симпсона h = | и Буля соответственно. (a) /(х) = sinGrrc) (b) /(a:) = l + e~xcosDx) (c) f(x) = sin(v^) Примечание. Истинные значения определенного интеграла равны (а) 2/тг = = 0,636619772367...,(b) A8e-cosD)+4sinD))/A7e) = 1,007459631397... и (с) 2(sin(l) - cos(l)) = 0,602337357879.... Графики функций показаны на рис. 7.5. 2. Рассмотрите интегрирование функции f(x) на фиксированном интервале [a;b] = [0;l]. Примените различные формулы квадратуры: составную фор- формулу трапеций A7), составную формулу Симпсона A8) и формулу Буля G). Используйте пять вычислений функции в равноотстоящих узлах. Длина шага одинакова и равна h = |. (a) f(x) = sin(Trx) (b) f(x) = 1 + e~xcosDa;) (c) f{x) =
7.1. Введение в квадратуру 385 1,0 0,5 0,0 2,0 1,0 0,5 1,0 0,0 0,5 1,0 0,0 0,5 (а) (Ь) (с) Рис. 7.5. (а) у = sinGra:), (b) у = 1 + е~" cosDa;), (с) у = sin(v'x) 1,0 3. Рассмотрите интервал [a;b]. Покажите, что формула Симпсона дает точные результаты для функций f(x) = х2 и /(ж) = ж3, т. е. Ь3 о3 У " Т9 (Ь) 4. Проинтегрируйте интерполяционный полином Лагранжа л X — Х\ . . X — Жп на интервале [жо; a?i] и выведите формулу трапеций. 5. Определите степень точности формулы трапеций. Для этого достаточно при- применить формулу трапеций на интервале [0; 1] к трем тестируемым функциям f(x) = 1, х и х2. 6. Определите степень точности формулы Симпсона. Для этого достаточно при- применить формулу Симпсона на интервале [0; 2] к пяти тестируемым функциям f(x) = 1, ж, ж2, а;3 и ж4. Сопоставьте полученный результат со степенью точности формулы Симпсона |. 7. Определите степень точности формулы Буля. Для этого достаточно приме- применить формулу трапеций на интервале [0; 4] к семи функциям f(x) = 1, ж, ж2, ж3, ж4, ж6 и ж6. 8. Интервалы в упр. 5-7 и примере 7.4 были выбраны так, чтобы упростить вычисление в узлах квадратуры. Но на любом замкнутом интервале [а; 6], на котором функция / интегрируема, каждая из четырех формул квадратуры D)-G) имеет степень точности, соответственно определенную в упр. 5-7 и примере 7.4. Формулу квадратуры на интервале [а; 6] можно получить из формулы квадратуры на интервале [c;d], заменив переменные в линейных функциях Ь — о. ad — bc d-c d-c '
386 Глава 7. Численное интегрирование , Ь — а .. где ах = -— at. d-c (a) Убедитесь, что линия х = з(?) проходит через точки (с; a) (d; Ь). (b) Убедитесь, что формула трапеций имеет такую же степень точности на интервале [а; 6], как и на интервале [0; 1]. (c) Убедитесь, что формула Симпсона имеет такую же степень точности на интервале [а; 6], как и на интервале [0; 2]. (d) Убедитесь, что формула Буля имеет такую же степень точности на ин- интервале [а; Ь]9 как и на интервале [0; 4]. 9. Выведите формулу Симпсона |, используя интерполяционный полином Ла- гранжа. Указание. После замены переменных интегралы приводятся к виду, полученному в A6): Г f(x) dx « ~/o| \\t - 1)(« - 2)(t - 3) dt+ Jxo ° Jo - 3) t=0 + /зт ~г - 10. Выведите замкнутую формулу квадратуры Ньютона-Котса, которая построе- построена по приближающему полиному Лагранжа степени 5, используя 6 равноот- равноотстоящих узлов Xk = хо + kh, k = 0, 1, ..., 5. 11. В доказательстве теоремы 7.1 формула Симпсона получена интегрированием полинома Лагранжа второй степени, построенного по трем равноотстоящим узлам: жо, #1 и #2- Получите формулу Симпсона с помощью интегрирования полинома Ньютона второй степени, построенного по трем равноотстоящим узлам: xq, x\ и #2.
7.2. Составная формула трапеций и Симпсона 387 7.2. Составная формула трапеций и Симпсона Метод, основанный на интуитивном нахождении площади под кривой у = f(x) на отрезке [а; Ь], — это приближение данной площади рядом трапеций, которые расположены выше интервалов {[я*;я*+1]}- Теорема 7.2 (составная формула трапеций). Предположим, что интервал [а; Ь] разбит на М подынтервалов [sfc;#*+i] длины h = (b — а)/М равноотстоящими узлами Xk = а + kh, к = 0, 1, ..., М. Составную формулу трапеций для М подынтервалов можно выразить любым из трех эквивалентных способов: h M Aа) Т(/,/0 = х , К) = |(/о + 2/i + 2/2 + 2/3 + • • • + 2/М-2 + 2fM-x или Aс) Г(/, Л) = -(/(в) + /F)) + Л X; /(**)¦ Это и есть приближение к интегралу от f(x) на интервале [а; 6], которая записы- записывается так: B) Доказательство. Применим формулу трапеций к каждому подынтервалу [#fc_i; Xk] (рис. 7.6). Используем свойство аддитивности интеграла на подинтервалах и запишем. М пЬ , Так как /i/2 — постоянная, чтобы получить Aа), применим свойство дистрибу- дистрибутивности сложения. Формула AЬ) является модифицированной версией форму- формулы Aа). Формула Aс) показывает, как сгруппировать все промежуточные члены в AЬ), которые кратны 2. • Приближение f(x) = 2 + sinBy/x) кусочно-линейными полиномами дает хо- хороший результат в тех местах, где приближения близки, а также в местах, где они не очень близки к функции. Для достижения хорошей точности составную формулу трапеций следует применять с большим количеством подынтервалов, В следующем примере выберем подынтегральную функцию, определенную на интервале [1;6]. Исследование интеграла на отрезке [0;1] оставим читателю в качестве упражнения.
388 Глава 7. Численное интегрирование Рис. 7.6. Приближение площа- х да под кривой у = 2 4- sinBv^) по составной формуле трапеций Пример 7.5. Рассмотрим функцию f(x) = 2 + sinBv/x). Используем состав- составную формулу трапеций с выборкой из 11 точек, чтобы вычислить приближение интеграла от f(x) на интервале [1;6]. Чтобы получить выборку из 11 точек, выберем М = 10 и шаг h = F —1)/10 = = 1/2. Воспользуемся формулой Aс) и вычислим /(ft /(I) = j B,90929743 + 1,01735756)+ + ?B,63815764 + 2,30807174 + 1,97931647 + 1,68305284 + 1,43530410+ + 1,24319750 + 1,10831775 + 1,02872220 + 1,00024140) = = \ C,92665499) + \ A4,42438165) = = 0,98166375 + 7,21219083 = 8,19385457. ¦ Теорема 7.3 (составная формула Симпсона). Предположим, что интервал [а; Ь] разбит на 2М подынтервалов [од Xk+i] одинаковой длины h = (b- а)/BМ), т. е. Xk = а + kh, к = 0,1 2М. Составную формулу Симпсона для 2М подын- подынтервалов можно выразить одним из трех эквивалентных способов: Dа) h , h) = - Db) + ¦ • ¦ + 2/2M-2 + 4/2M-1 + hid)
7.2. Составная формула трапеций и Симпсона 389 или Dс) , К) = ?( /F)) + у М Это приближение к интегралу от /(ж) на интервале [а; 6], и можно записать гЬ E) [ f{x)dxnS(f,h). Ja Доказательство. Применим формулу Симпсона к каждому подынтервалу X2k] (рис. 7.7). Воспользуемся свойством аддитивности интеграла для подынтер- подынтервалов: м ГМ гх2к /(*)<** = Е fc=1 *'a:2fc-2 М F) Так как Л/3 постоянная, чтобы получить формулу Dа), применим свойство дистрибутивности сложения. Формула DЬ) является модифицированной версией Dа). Формула Dс) собирает все промежуточные члены в DЬ), которые кратны 2 и 4. • Приближение функции f(x) = 2 + sinBv/?) кусочно-квадратичными полино- полиномами производят в местах, где приближения близки или где этой близости нет. Для достижения точности составной формулы Симпсона следует применять ее на нескольких подынтервалах. В следующем примере выберем подынтегральную функцию, определенную на интервале [1;6]. Исследование интеграла на отрезке [0; 1] оставим читателю в качестве упражнения. Рис. 7.7. Приближение площа- да под кривой у = 2 по формуле Симпсона
390 Глава 7. Численное интегрирование Пример 7.6. Рассмотрим функцию f(x) = 2 + sin^v'z). Используем составную формулу Симпсона с выборкой из 11 точек, чтобы вычислить приближение к интегралу от f(x) на интервале [1; 6]. Чтобы получить 11 точек, нужно взять М = 5 и длину шага h = F — 1)/10 = = 1/2. Для вычислений воспользуемся формулой Dс): S(f, |) = |(/A) + /F)) + |(/B) + /C) + /D) + /E))+ = ^B,90929743 +1,01735756)+ 6 + ^B,30807174 + 1,68305284 + 1,24319750 + 1,02872220)+ О + ^B,63815764 + 1,97931647 + 1,43530410 + 1,10831775+ + 1,00024140) = = ^C,92665499) + \ F,26304429) + \ (8,16133735) = 6 3 3 = 0,65444250 + 2,08768143 + 5,44089157 = 8,18301550. ¦ Анализ ошибок Смысл следующих двух результатов — в понимании того, что остаточные члены Er(fyh) и Es(f,h) составных формул трапеций и Симпсона имеют порядки O(h2) и O(hA) соответственно. Это показывает, что ошибка формулы Симпсона стремится к нулю быстрее, чем ошибка формулы трапеций, когда длина шага h стремится к нулю. В том случае, когда известны производные f(x)9 формулы можно использовать для подсчета числа интервалов, которые требуются для до- достижения заданной точности. Следствие 7.2 (формула трапеций: анализ ошибки). Предположим, что ин- интервал [а; Ь] разбит на М подынтервалов [адя^+х] длины h = (b-a)/M. Состав- Составная формула трапеций , м-1 G) Т(/, h) = ?(/(«.) + /F)) + h ]T f(xk) k=l является приближением к интегралу (8)
7.2. Составная формула трапеций и Симпсона 391 Более того, если / Е С2 [а; 6], существует такое значение с, а < с < Ь, что оста- остаточный член -Бг(/, h) имеет вид Доказательство, Сначала найдем остаточный член, когда формула применяется на интервале [zo;#i]. Интегрируем полином Лагранжа Р\(х) и его остаток: оо, W J Ja:o Член (ж—#o)(s—#i) не меняет знак на интервале [жо; хх]9 и производная непрерывна. Поэтому из второй теоремы о среднем значении для интеграла сле- следует, что существует такое значение с\9 что Г' /м * = |(л+л)+/B)(с) Г <-"«* Воспользуемся заменой переменной х = хо + ht в интеграле, расположенном в правой части A1): I A2) (x)dx = -(fo + fi)+ *-??] h(t-O)h(t-l)hdt = xo z z Jo -(f (/o (f+f 2(/o + /lI2• Теперь можно сложить остаточные члены на всех интервалах [зд; м г Ja _ f(x)dx = Jo ъ^л JXk — 1 A3) A:=l Первая сумма и является составной формулой трапеций Г(/, К). Во втором члене множитель h заменим его эквивалентом h = (b — a)/Af и в результате получим
392 Глава 7. Численное интегрированив Член в скобках можно рассмаривать как среднее значение второй производной, н поэтому можно заменить f^(c). Значит, установлено, что i: и следствие 7.2 доказано. • Следствие 7.3 (формула Симпсона: анализ ошибки). Предположим, что ин- интервал [a; ft] разбит на 2М подынтервалов [x*;xfc+i] равной длины h = F- — а)/BМ). Составная формула Симпсона h 2h M~l Ah M A4) S(f,h) = -(/(a) + /(ft)) + Т Е /(> + 3 3 * i является приближением к интегралу A5) \bf(x)dx = S(f, Ja Кроме того, если / € С*[а,Ь]9 то существует такое значение с, а < с < Ь, что остаточный член J3s(/, h) имеет вид Пример 7.7. Рассмотрим функцию /(ж) = 2 + sinB>/?). Исследуем ошибку, когда составная формула трапеций применяется на интервале [1;6] и количество подынтервалов равно 10, 20, 40, 80 и 160. В табл. 7.2 показаны приближения Т(/, h). Первообразная функция f(x) имеет вид sinB\/5) и истинное значение определенного интеграла равно Г f(x) dx = F(x) X 6 = 8,1834792077. Это значение использовалось для вычисления ошибок J5r(/, h) = 8,1834792077- - T(/,/i), приведенных в табл. 7.2. Важно отметить, что, когда h сокращается умножением на \> последующие ошибки Er(f,h) сокращаются приблизительно на \. Это подтверждает, что порядок ошибки равен О (/г2). ¦
7.2. Составная формула трапеций и Симпсона 393 Таблица 7.2. Составная формула трапеций, примененная к функции f(x) = 2 + sinB^x) на интервале [1;6] м 10 20 40 80 160 h 0,5 0,25 0,125 0,0625 0,03125 T(f,h) 8,19385457 8,18604926 8,18412019 8,18363936 8,18351924 ET(f,h) = O(h2) -0,01037540 -0,00257006 -0,00064098 -0,00016015 -0,00004003 Таблица 7.3. Составная формула Симпсона, примененная к функции f(x) = 2 -f sinBv/x) на интервале [1;6] м 5 10 20 40 80 h 0,5 0,25 0,125 0,0625 0,03125 S(/,fc) 8,18301549 8,18344750 8,18347717 8,18347908 8,18347920 Я*(/,Л)=:О(Л4) 0,00046371 0,00003171 0,00000204 0,00000013 0,00000001 Пример 7.8. Рассмотрим функцию f(x) = 2 + sinBx/i). Исследуем ошибку, когда на интервале [1; 6] применяется составная формула Симпсона и количество подынтервалов равно 10, 20, 40, 80 и 160. В табл. 7.3 приведены приближения S(f,h). Истинное значение интеграла, равное 8,1834792077, использовалось для вычисления значений функции ошибок Я5(/, h) = 8,1834792077 - 5(/, ft), приведенных в табл. 7.3. Важно отметить, что когда ft заменяется шагом \, то ошибки Es(f, ft) становятся меньше примерно в 16 раз. Это подтверждает, что порядок ошибки равен О (/г4). ¦ Пример 7.9. Найдем такие число М и длину шага Л, что ошибка 25г(/, Л) состав- составной формулы трапеций будет меньше, чем 5 х 10~9, для приближения f2 dx/x « *Т(/,А). Подынтегральная функция равна f(x) = 1/х, и ее первые две производные равны f(x) = —1/х2 и f№(x) = 2/х3. Максимальное значение |/^2'(ж)| на ин- интервале [2; 7] достигается в крайней точке х = 2, и, таким образом, получаем грань |/B)(с)| < |/B)B)| = j, 2 < с< 7. Если это значение использовать с формулой (9), то получим A7) = 1 - (Ь - а)/B)(с)Д2| G - 2)\h? = 5/t2 12 - 12 48 *
394 Глава 7. Численное интегрирование , Длина шага h и число М удовлетворяют соотношению h =* 5/М. Используей это в A7), чтобы получить соотношение % A8) Перепишем A8) в таком виде, который упростит вычисление М: A9) ^хЮ9< М2. Решив A9), найдем, что 22821,77 < М. Поскольку М должно быть целым числом, выберем М = 22822 и соответствующую длину шага, равную h = 5/22822 = = 0,000219086846. Когда составная формула трапеций применяется с большим числом вычислений функции, существует вероятность, что округленные значе- значения функции приведут к значительной ошибке. После вычислений полученный результат сравнили с истинным значением $2dx/x = 1п(ж)|^2 = 1,252762968. Ошибка оказалась меньше, чем прогнозировалась, потому что для |/^2Нс)| использовалась грань j. Экспериментально показано, что для достижения требуемой точности 5 х х 10~** нужно вычислять функцию приблизительно 10001 раз. При вычислении с М = 10000 получим = 1,252762973. ¦ Составная формула трапеций для достижения точного ответа обычно требует большого количества вычислений функции. В следующем примере она сравнива- сравнивается с формулой Симпсона, которая требует значительно меньше вычислений. Пример 7.10. Найдем такие число М и длину шага Л, чтобы ошибка Es{f,h) составной формулы Симпсона была меньше, чем 5 х 10~9, для приближения f2dx/x*tS{f,h). Подынтегральная функция равна f(x) = 1/х и f^(x) = 24/ж5. Максимальное значение |/^(с)| на интервале [2; 7] достигается в крайней точке х = 2, и, таким образом, получаем грань |/^(с)| < |/D)B)| = |, 2 < с < 7. Используем ее с формулой A6), чтобы получить B0) |ВД,л)| = Ь<ц№<Р^ = *! Длина шага h и число М удовлетворяют соотношению h = 5/BM). Используем это в B0), чтобы получить соотношение B1) |^(/,/i)|
7.2. Составная формула трапеций и Симпсона 395 Запишем B1) в виде, упрощающем нахождение М: B2) ?[| х 109 < М\ 7 Решим B2) и найдем, что 112,95 < М. Так как М должно быть целым чис- числом, выбираем М = 113, и соответствующая длина шага равна h = 5/226 = = 0,02212389381. Когда будут выполнены вычисления по составной формуле Симпсона, в результате получится величина = 1,252762969, которая согласуется с J2dx/x = 1п(д:)|^2 == 1,252762968. Экспериментально показано, что для достижения требуемой точности 5 х 10~~9 следует вычислять функцию приблизительно 129 раз, и, если производить вычисления с М = 64, в результате получится s ( /» 77^ I = 1,252762973. ¦ Таким образом, видно, что для достижения одинаковой точности составная формула Симпсона требует 229 вычислений функции, а составная формула тра- трапеций — 22823 вычислений /(#). В примере 7.10 формула Симпсона требует около j^Q количества вычислений функции по сравнению с формулой трапеций. Программа 7 Л (составная формула трапеций). Предназначена для прибли- приближения интеграла f6 Ja посредством подсчета /(х)вМ + 1 равноотстоящей точке Xk = а + kh9 к = 0, 1, 2,..., М. Заметим, что хо = а и хм = Ь. function s=traprl(f,a,b,M) У,Вход - f - подынтегральная функция, вводимая как строка '/• - аи b - верхний и нижний пределы интегрирования % - М - число подынтервалов •/.Выход - s - сумма формулы трапеций h=(b-a)/M; for k=l:(M-l)
396 Глава 7. Численное интегрирование: x=a+h*k; s=s+feval(f,x); end s=h*(feval(f,a)+feval(f,b))/2+h*s; Программа 7.2 (составная формула Симпсона). Предназначена для прибли- приближения интеграла f6 ~л Ja ~ 3 M Ah M посредством подсчета /(ж) в 2М +1 равноотстоящей точке х^ = а + fc/i, А; = О, 1, 2,..., 2М. Заметим, что хо == а и function s=simprl(f,a,b,M) У.Вход - f - подынтегральная функция, вводимая как строка >f9 У» - аи b - верхний и нижний пределы интегрирования X - М - число подынтервалов '/•Выход - s - сумма формулы Симпсона h«(b-a)/B*M); sl*0; s2=0; for k-l:M x«a+h*B*k-l); sl«sl+feval(f,x); end for k-l:(M-l) x=a+h*2*k; s2=s2+feval(f,x); end s=h*(feval(f,a)+feval(f,b)+4*sl+2*s2)/3; Упражнения к разделу 7.2 1. (i) Найдите приближение каждого интеграла по составной формуле трапе- трапеций при М = 10* (ii) Найдите приближение каждого интеграла по составной формуле Симп- Симпсона для М = 5. (a) /^(l + x2)-1^ (b) j}B+sinBV?))<k (с) fi
7.2. Составная формула трапеций и Симпсона 397 (d) Slx2e-*dx (e) ^2xcos(x)dx (f) J?sinBx)e-xdx 2. Длина кривой. Длина дуги кривой у — f(x) на интервале а < х < Ь равна длина = [ y/l + (f'(xJ)dx. Ja (i) Найдите приближение длины дуги кривой каждой функции по состав- составной формуле трапеций для М = 10. (ii) Найдите приближение длины дуги кривой каждой функции по состав- составной формуле Симпсона для М = 5. (a) f(x) = хг для 0 < х < 1 (b) f(x) = sin(rc) для 0 < х < 7г/4 (c) f(x) = е"ж для 0 < х < 1 3. Площадь поверхности. Тело вращения получается путем вращения области под кривой у = f(x), где а < х < Ь, вокруг оси х. Площадь поверхности тела вращения задана формулой гь площадь = 27г f(x)y/l + (f'(x)Jdx. Ja (i) Найдите приближение для площади поверхности тела вращения по со- составной формуле трапеций для М = 10. (ii) Найдите приближение для площади поверхности тела вращения по со- составной формуле Симпсона для М = 5. (a) f(x) =ж3 для 0<я<1 (b) f(x) = sin(x) для 0 < х < тг/4 (c) f{x) = e~x для 0<х<1 4. (а) Проверьте, что формула трапеций (М = 1, h = 1) точна для полиномов степени <1 вида f(x) = с\х + со на интервале [0; 1]. (Ь) Возьмите подынтегральную функцию f(x) = C2^2 и проверьте, что оста- остаточный член формулы трапеций (М = 1, h = 1) на интервале [0; 1] равен 5. (а) Проверьте, что формула Симпсона (М = 1, h = 1) точна для полиномов степени <3 вида f(x) = сз^3 + С2Х2 + с\х + со на интервале [0; 2]. (Ь) Для подынтегральной функции f(x) = с±хА проверьте, что остаточный член формулы Симпсона (М = 1, /г = 1) на интервале [0; 2] равен
398 Глава 7. Численное интегрирование 6. Выведите формулу трапеций (М = 1, h = 1), используя метод неопределен- неопределенных коэффициентов. (a) Найдите такие постоянные wo и w\, что flg(t)dt = wog(O) + w\g(l) является точным для функций g(t) = 1 и g(t) = t. (b) Используйте соотношение f(xo + ht) = g(t) и сделайте замену перемен- переменных х = xq + ht и dx = hdt, чтобы преобразовать формулу трапеций для интервала [0; 1] в формулу для интервала [xq] х{\. Указание к п. (а). Получите линейную систему с двумя неизвестными (w$ и wi). 7. Выведите формулу Симпсона (М = 1, h = 1), используя метод неопределен- неопределенных коэффициентов. (а) Найдите такие постоянные wq9 w\ и w^ что Jq g(t) dt = wog(O) + + W2gB) будет точным для функций g(t) = 1, g(t) = t и (b) Используйте соотношение /(xq + ht) = g(t) и замену переменных х = = жо + Л< и с/ж = hdt, чтобы преобразовать формулу трапеций на ин- интервале [0;2] для интервала [жо;ж2]. Указание к л. (а). Получите линейную систему с тремя неизвестными г^о, w\ И W2- 8. Определите число М и длину шага h такими, чтобы составную формулу трапеций для М подынтервалов можно было использовать для вычисления заданных интегралов с точностью 5 х 10~~9. гтг/6 f3 ! f2 (a) cos(x)dx (b) —^— dx (с) xe'xdx J-тг/б J2 5~ж JO Указание к п. (с). /<2)(s) = (х - 2)е"х. 9. Определите число М и длину шага h такими, чтобы составную формулу Симпсона для 2М подынтервалов можно было использовать для вычисления заданных интегралов с точностью 5 х 10~9. г*/6 гЗ j г2 (a) cos(x)dx (b) dx (с) хе~х dx J-тг/б J2 5 - a: Jo Указание к п. (с). f^(x) = (ж - 4)е~ж. 10. Рассмотрите определенный интеграл L од cos(x) dx = 2sin@,l) = 0,1996668333. Ниже приведена таблица приближений интеграла по составной формуле тра- трапеций. Вычислите Er(f-> h) = 0,199668 — Т(/, Л) и подтвердите, что порядок равен О (/г2).
7.2. Составная формула трапеций и Симпсона 399 м 1 2 4 8 16 h 0,2 0,1 0,05 0,025 0,0125 5(/,Л) 0,1990008 0,1995004 0,1996252 0,1996564 0,1996642 ET(f,h) = O{h>) 11. Рассмотрите определенный интеграл 0,75 ГО,75 J-0,75 cos(x) drr = 2sin@,75) = 1,363277520. В приведенной ниже таблице даны приближения, полученные по составной формуле Симпсона. Вычислите Es(f, h) = 1,3632775-5(/, h) и подтвердите, что порядок равен O(/i4). м 1 2 4 8 h 0,75 0,375 0,1875 0,09375 S(f,h) 1,3658444 1,3634298 1,3632869 1,3632781 Es(fM = O(h*) 12. Формула средней точки. Формула средней точки на интервале [xq] x\] имеет вид (*) dx = hf где h = (а) Разложите -Р(ж), первообразную функцию /(ж), в ряд Тейлора в окрест- окрестности точки а?о + h/2 и выведите формулу средней точки на интервале (Ь) Используя п. (а), покажите, что составная формула средней точки для приближения интеграла от f(x) на интервале [а; Ь] имеет вид где /i = N ' Это приближение к интегралу от f(x) на интервале [а; 6], которое запи- записывается как г f(x)dxrsM(f,h).
400 Глава 7. Численное интегрирование (с) Покажите, что остаточный член Ем (/? h) в п- 0>) равен 13. Используйте формулу средней точки для М = 10, чтобы найти приближение для интегралов из упр. 1. 14. Докажите следствие 7.3. Алгоритмы и программы 1. (а) Для каждого интеграла из упр. 1 вычислите М и длину шага h такими, чтобы можно было использовать составную формулу трапеций для вы- вычисления данных интегралов с точностью до девяти десятичных знаков. Используйте программу 7.1 для приближения интегралов. (Ь) Для каждого интеграла из упр. 1 вычислите М и длину шага h такими, чтобы можно было использовать составную формулу Симпсона для вы- вычисления данных интегралов с точностью до девяти десятичных знаков. Используйте программу 7.2 для приближения интегралов. 2. Используйте программу 7.2 для приближения определенных интегралов из упр. 2 с точностью до одиннадцати десятичных знаков. 3. Составную формулу трапеций можно преобразовать для подынтегральной функции, известной только как совокупность точек. Преобразуйте програм- программу 7.1 так, чтобы получить приближение интеграла от функции, которая проходит через М заданных точек, на интервале [а;Ь]. (Примечание. Узлы не обязательно должны быть равноотстоящими.) Используйте эту програм- программу, чтобы приблизить интеграл от функции, которая проходит через точки 4. Составную формулу Симпсона можно преобразовать для подынтегральной функции, известной только как совокупность точек. Преобразуйте програм- программу 7.2 так, чтобы получить приближение интеграла от функции, которая проходит через М заданных точек, на интервале [a\b]. (Примечание. Узлы не обязательно должны быть равноотстоящими.) Используйте эту програм- программу, чтобы приблизить интеграл от функции, которая проходит через точки С 5. Модифицируйте программу 7.1 таким образом, чтобы ее можно было ис- использовать для вычисления по составной формуле средней точки (упр. 12)
7.2. Составная формула трапеций и Симпсона 401 приближения интеграла от f(x) на интервале [а; 6]. Используйте эту про- программу для приближения определенного интеграла из упр. 1 с точностью до одиннадцати десятичных знаков. 6. Получите приближение для каждого из следующих определенных интегралов с точностью до десяти десятичных знаков. Используйте любую программу из этого раздела. г1/4тг Г^Г-10 ' 1 (a) sin(l/a:)cte (b) dx J1/77T J?+10 Smi1/X) 7. На следующем примере показано, как формулу Симпсона можно использо- использовать для приближенного решения интегрального уравнения. Решим уравне- уравнение v(x) = х2 + 0,1 Jo (я2 + t)v(t) dt9 используя формулу Симпсона с шагом h = 1/2. Пусть t0 = 0, *i = 1/2 и t2 = 1. Тогда (V + t)v(t) dt« У±{{х2 + 0Ь + 4D + hvx + (х2 (V + t)v(t) dt« У±{{х2п + 0Ь + 4D + hvx + (х2п Jo * Пусть A) v(xn) =x2n + 0,l(i(D + Ob + 4D + !) Подставив rro = 0, x\ = 1/2 и x2 = 1 в уравнение A), получим систему линейных уравнений: = 0 + ^ B) Подставив решение системы B) (vo = 0,0273, v\ = 0,2866, v2 = 1,0646) в уравнение A) и упростив его, получим приближение C) v(x) » 1,037305ж2 + 0,027297. (a) Для проверки подставьте решение в правую часть интегрального урав- уравнения, проинтегрируйте и упростите полученное выражение, а затем сравните результат с приближением C). (b) Используйте составную формулу Симпсона с шагом h = 0,5 для нахо- нахождения приближенного решения интегрального уравнения Г1 x2 + t)v(t)dt. Г1 Jo Jo Воспользуйтесь схемой процедуры из п. (а) для проверки своего реше- решения.
402 Глава 7. Численное интегрирование 7.3. Рекуррентные формулы и интегрирование по Ромбергу В этом разделе будет показано, как вычислить приближение Симпсона по осо- особым линейным комбинациям формул трапеций. Приближения имеют высокую точность, если использовать большее количество подынтервалов. Сколько их сле- следует выбрать? Ответить на этот вопрос может помочь процесс последовательного выбора двух, четырех и т. д. подынтервалов, пока не будет достигнута требуемая точность. Сначала необходимо сгенерировать последовательность {T(J)} фор- формул трапеций для приближений. Как только число подынтервалов удваивается, число значений функции также приблизительно удваивается, поскольку функцию нужно вычислять во всех предыдущих точках и во всех средних точках преды- предыдущих подынтервалов (рис. 7.8). В теореме 7.4 объясняется, как удалить лишние вычисления функции и сложения. У = /0е) = f(x) y = f(x) (c) Рис. 7.8. (a) T@) — площадь под 2° = 1 трапецией, (b) T(l) — площадь под 21 = 2 трапециями, (с) ТB) — площадь под 22 = 4 трапециями, (d) ГC) — площадь под 23 = 8 трапециями Теорема 7.4 (последовательные формулы трапеций). Предположим, что J> 1 и точки {xk = a+kh} делят интервал [а; 6] на 2J = 2М подынтервалов с одинако- одинаковым шагом h = (b — a)/2J. Формулы трапеций Т(/, Л) и Т(/, 2h) удовлетворяют соотношению A)
7.3. Рекуррентные формулы и интегрирование по Ромбергу 403 Определение 7.3 (последовательность формул трапеций). Определим Т@) = = (Л/2)(/(а) + f{b)) как формулу трапеций с шагом длины h = Ь — а. Затем для каждого J> 1 определим T(J) = Г(/, /i), где Т(/, Л) — формула трапеций с шагом длины h = F — a)/2J. A Следствие 7.4 (рекуррентная формула трапеций). Начнем с Т@) = (Л/2) х х (/(а) + /(Ь)). Тогда последовательность формул трапеций {T(J)} генерируется согласно рекуррентной формуле B) T(J) = Г(J ~ 1} + Л ? /(rr2fc-i) Для J = 1, 2, ..., где /i = F - a)/2J и {я* = a + kh}. Доказательство. Для четных узлов xq < Х2 < • • • < #2М-2 < #2М используем формулу трапеций с шагом длины 2h: Oh C) T(J - 1) = у (/о + 2/2 + 2/4 + • • • + 2/2М-4 + 2/2М-2 + /2Af )• Для всех узлов #о < xi < #2 < • • • < %2М-1 < #2М используем формулу трапеций с шагом, равным h: D) Т( J) = -(/о + 2Л + 2/2 + • • • + 2/2М-2 + 2/2iVf-l + /2М). Соберем четные и нечетные индексы в формуле D) и получим h M E) T(J) = -(/о + 2/2 + • • • + 2/2М-2 + /2М) + h ^ /2*_!. А:=1 В результате подстановки C) в E) получим T(J) = T(J — 1)/2 + ft^fcli hk-i- Теорема доказана. • Пример 7.11. Последовательно применим формулу трапеций, чтобы вычислить приближения Т@), ГA), ТB) и ГC) для интеграла $\dx/x = lnE) - 1пA) = = 1,609437912. В табл. 7.4 приведены девять значений, потребовавшихся для вычисления ТC), и средние точки, необходимые для вычисления ГA), ТB) и ТC). Выпишем
404 Глава 7. Численное интегрирование Таблица 7.4. Девять точек, использованных для вычисления ГC), и средние точки, необходимые для вычисления ГA), ГB) и ГC) X 1,0 1,5 2,0 2,5 3,0 3,5 4,0 4,5 5,0 ,. . 1 /(*) = - X 1,000000 0,666667 0,500000 0,400000 0,333333 0,285714 0,250000 0,222222 0,200000 Крайние точки для вычисления Т@) 1,000000 0,200000 Средние точки для вычисления ГA) 0,333333 Средние точки для вычисления ГB) 0,500000 0,250000 Средние точки для вычисления ГC) 0,666667 0,400000 0,285714 0,222222 подробно вычисления. Когда h = 4: Т@) = -A,000000 + 0,200000) = 2,400000. л» Когда h = 2: ТA) = -^ + 2@,333333) = = 1,200000 + 0,666666 = 1,866666. Когда /i = l: ТB) = ^ + 1@,500000 + 0,250000) = = 0,933333 + 0,750000 = 1,683333. Когда h = -: At ТC) = -@,666667 + 0,400000+ + 0,285714 + 0,222222) = = 0,841667 + 0,787302 = 1,628968. Следующий результат устанавливает важное соотношение между формулой трапеций и формулой Симпсона. Когда вычисления выполняются по формуле трапеций с шагами 2/г и h, результатом являются Т(/, 2h) и Т(/, h) соответствен- соответственно. Объединим эти значения, чтобы получить формулу Симпсона: F) S(f,h) = 4T(f,h)-T(f,2h) Теорема 7.5 (рекуррентная формула Симпсона). Предположим, что {T(J)}— последовательность формул трапеций, сгенерированная согласно следствию 7.4. Если J > 1 и S(J) — формула Симпсона для 2J подынтервалов [а; Ь], то S(J) и
7.3. Рекуррентные формулы и интегрирование по Ромбергу 405 формулы трапеций T(J — 1) и Г(J) удовлетворяют соотношению Доказательство. По формуле трапеций T(J) с шагом h получаем приближение Г6 h (8) f(x) dx И -(/о + 2/i + 2/2 + • • • + 2/2М-2 + 2/2М-1 + /2М) = T(J). Ja * По формуле трапеций T(J — 1) с шагом 2h получаем (9) [ f(x) dx к Л(/о + 2/2 + • • • + 2/2м-2 + /2м) = Т( J - 1). Ja Умножив соотношение (8) на 4, получаем Г6 л m 4 ^^)drc ю ЛBЛ + 4/i + 4/2 + • • • + 4/2М>2 + 4/2М-1 + 2/м) = Uw/ Ja = 4Г( J). Вычтем (9) из A0) и в результате получим Г6 3 /(яг) dx и Л(/о + 4/i + 2/2 + • ¦ • + 2/2М-2 + 4/ш-1 + /гм) = Ja = 4T(J)-T(J-1). Это выражение можно преобразовать и получить I /(я?) dx « -(/о + 4/i + 2/2 + • • • + 2/2М-2 + 4/2М-1 + /2М) = A2) J^ J = 4T(J)-r(J-l) 3 Средний член в A2) является формулой Симпсона S(J) = 5(/, К). Следовательно, теорема доказана. • Пример 7.12. Используем последовательное применение формулы Симпсона для вычисления приближений 5A), 5B) и 5C) к интегралу из упр. 7.11. Используя результаты примера 7.11 и формулу G) при J = 1, 2 и 3, вычислим 4ГA)-Г@) 4A,866666)-2,400000 6A) = = = 1,688888, 4ГB)-ГA) 4A,683333) - 1,866666 5B) = = = 1,622222, = 4ТC)-ТB) = 4A,628968) - 1,683333
406 Глава 7. Численное интегрирование Формула Буля приведена в теореме 7.1 раздела 7.1. Она получена путем инте- интегрирования полинома Лагранжа степени 4, построенного на узлах хо, х\9 Х2, яз и х±. Альтернативный способ вывода формулы Буля упоминается в упражнениях. Если ее применяют М раз на 4М равновеликих подынтервалах интервала [а; Ь] с шагом длины h = (Ь — а)/DМ), то ее называют составной формулой Буля: 2h M A3) В(/, Л) = — J>/4*-4 + 32/4fc_3 + 12/4fc-2 + 32/4,_! + 7/4*). Следующий результат устанавливает соотношение между последовательными . формулами Буля и Симпсона. Теорема 7.6 (рекуррентная формула Буля). Предположим, что {S(J)} —по- —последовательность формул Симпсона, сгенерированная согласно теореме 7.5. Если J > 2 и В{J) — формула Буля для 2J подынтервалов интервала [а; Ь], то В(J) и формулы Симпсона S( J — 1) и S( J) удовлетворяют соотношению 165G) - Доказательство. Доказательство оставляем в качестве упражнения читателю. • Пример 7.13. Последовательно применим формулу Буля, чтобы вычислить при- приближения ВB) и J5C) для интеграла из примера 7.11. Используя результаты примера 7.12 и формулу A4) с J = 2 и 3, вычислим = 165B)-S(l) = 16A,622222) - 1,688888 = 1 Б = 165CI5-5B) в 16A,610846M-1,622222 = 15 15 Читатель вправе поинтересоваться, к чему его подготавливают. Покажем, что формулы G) и A4) являются особым случаем процесса интегрирования по Ром- бергу (Romberg). Сообщаем, что следующим уровнем приближения для интеграла из примера 7.11 будет 64ВC)-ВB) = 64A,610088) - 1,617778 = Ответ приводится с точностью до пяти десятичных знаков. Интегрирование по Ромбергу Из раздела 7.2 видно, что остаточные члены ?т(/> Л) и Es(f, h) для составных формул трапеций и Симпсона имеют порядок O{h2) и O(h4) соответственно.
7.3. Рекуррентные формулы и интегрирование по Ромбергу 407 Несложно показать, что остаточный член Ев(/,Ь,) для составной формулы Буля имеет порядок O(/i6). Таким образом, получаем схему A5) A6) \ Ja A7) [ f(x)dx = Ja Схема остатков формул A5)—A7) обобщается в следующем смысле. Предполо- Предположим, что формула приближения используется с шагами длины h и 2Л. Восполь- Воспользуемся алгебраическими преобразованиями двух ответов, чтобы получить уточ- уточненный ответ. Каждый последующий уровень улучшения увеличивает порядок остаточного члена с O(h2N) до O(h2N+2). Этот процесс, называемый интегри- интегрированием по Ромбергу, имеет сильные и слабые стороны. Формула Ньютона-Котса редко применяется после формулы Буля. Это происхо- происходит потому, что формула квадратуры Ньютона-Котса по девяти точкам включает отрицательные веса и все формулы после десяти точек включают отрицатель- отрицательные веса. Это может привести к появлению значащей ошибки, обусловленной округлением. Метод Ромберга предпочитают потому, что все веса положительны и равноотстоящие абсциссы можно легко вычислить. Слабой стороной вычисления интеграла по Ромбергу является то, что требу- требуется вдвое больше вычислений функции, чтобы уменьшить ошибку с O(h2N) до О(Л2ЛГ+2). Последовательно применяя формулы, можно уменьшить количество вычислений. Усовершенствование интегрирования по Ромбергу основывается на предположении, что если / ? CN[a; Ь] для всех N, то остаточный член формулы трапеций можно представить в виде ряда, содержащего только четные степе- степени /i, т. е. A8) где A9) JBH/, h) = аф2 + a2h* + аф6 + Вывод формулы A9) можно найти в [153]. Так как формула A9) содержит только четные степени h, усовершенствованный процесс Ричардсона (Richardson) используется, чтобы последовательно исключить сначала а\9 затем — а>2, аз и т. д. Этот процесс генерирует формулы квадратуры, остаточные члены которых имеют четный порядок: O(/i4), O(/i6), O(hs) и т. д.
408 Глава 7. Численное интегрирование Покажем, что первое усовершенствование является формулой Симпсона для 2М интервалов. Начнем с Г(/, 2/г) и Т(/, К) и формул B0) [ fix) dx = Г(/, 2h) + ai4h2 + a216/i4 + a364/i6 + - - • Ja И B1) fix) dx = T(/, /i) + ai/i2 + a2h4 + a3h6 + ¦ ¦ ¦ . Ja Умножим равенство B1) на 4 и получим Г6 B2) 4 fix) dx = 4Г(/, Л) + Мй2 + а24Л4 + о34Л6 + - • • . Ja Исключим oi, вычтя B0) из B2). В результате получим B3) 3 [ fix) da> = 4Т(/, h) - Т(/, 2Л) - a212/i4 - a360/i6 . Ja Разделим выражение B3) на 3 и переобозначим коэффициенты ряда: B4) Как отмечалось в F), первая величина в правой части B4) является формулой Симпсона ?(/,Л). Это показывает, что Esif,h) содержит только четные степе- степени h: rb B5) fix) dx = 5(/, h) + bi/i4 + b2h6 + 63/i8 + • • • . Ja Чтобы показать, что второе улучшение является формулой Буля, начнем с B5) и запишем ниже формулу, содержащую 5(/, 2h): [ f{x) dx = 5(/, Ja 16 B6) fix) dx = 5(/, 2h) + &1I6/14 + ^64^ Ja Если Ь\ исключить из B5) и B6), то из результата последует формула Буля: гЬ 1 *с' f, Л) - 5(/, 2Л) 6248/i6 63240/i8 f /(«)cfc = B7) Ja Общая схема интегрирования по Ромбергу опирается на лемму 7.1. Лемма 7.1 (улучшение Ричардсона для интегрирования по Ромбергу). За- Заданы два приближения, i?B/i, К — 1) и Rih,K — 1), для величины Q, которые удовлетворяют равенствам B8) Q =
7.3. Рекуррентные формулы и интегрирование по Ромбергу 409 и B9) Q = ДBЛ, К - 1) + ci4Kh2K + c24K+lh2K+2 + ¦ • • . Улучшенное приближение имеет вид C0) (? Доказательство простое, поэтому оставляем его читателю. Определение 7.4. Определим последовательность {R(J, if) : J>K}JL0 формул квадратуры для f(x) на интервале [а; 6] следующим образом. J5 о) = T(J) для J > 0, последовательная формула трапеций. C1) i?(J, 1) = S(J) для J > 1, последовательная формула Симпсона. R( J, 2) = J5( J) для J > 2, последовательная формула Буля. ^ Начальную формулу, {/?(«/, 0)}, используем для получения первого улучше- улучшения, {R( J, 1)}, которое, в свою очередь, используется для генерирования второго улучшения, {/?(«/, 2)}. Всегда можно вообразить схему 4^.7,0)-ДG -1,0) Д( J, 1) = -j— для J > 1, B2) п(тт 42il(J, 1) - R(J- 1,1) т^о R(J,2) = к ' >А2_ | ^ для J>2, которая является формулой в B4) и B7), установленной с,использование обозна- обозначений в C1). Общей формулой построения улучшений является C3) it(J, А) = к ^ ДЛЯ J>K. Для вычислительных целей значения R( J, 1(Г) приведены в таблице интегрирова- интегрирования по Ромбергу (табл. 7.5). Пример 7.14. Воспользуемся интегрированием по Ромбергу, чтобы найти при- приближение для определенного интеграла: J7T/2 2 {х2 + х + 1) cos(x) dx = -2 + - + — = 2,038197427067.... о 2 4 Вычисления приведены в табл. 7.6. В каждом столбце числа сходятся к значе- значению 2,038197427067 Значения в столбце, в котором вычисления осуществля- осуществлялись по формуле Симпсона, сходятся быстрее, чем значения, которые вычисляли
410 Глава 7. Численное интегрирование Таблица 7.5. Таблица J 0 1 2 3 4 R( J, 0) формула трапеций Я@,0)^_ Ц7г П) ¦— /?(Я, П) ^-, ДD,0)^^— интегрирования формула Симпсона ЯA1) /?(^' 1) - по Ромбергу Л« 2) формула Буля = ЛB,2)_^_ R(J,3) третье улучшение ^U 4) четвертое улучшение Ж4.4) Таблица 7.6. Таблица интегрирования по Ромбергу для примера 7 J 0 1 2 3 4 5 адо) , формула трапеций 0,785398163397 1,726812656758 1,960534166564 2,018793948078 2,033347341805 2,036984954990 Я«1) формула Симпсона 2,040617487878 2,038441336499 2,038213875249 2,038198473047 2,038197492719 ОД 2) формула Буля 2,038296259740 2,038198711166 2,038197446234 2,038197427363 .14 Д(/,3) третье улучшение 2,038197162776 2,038197426156 2,038197427064 по формуле трапеций. В этом примере сходимость в столбцах справа происходит быстрее, чем в прилегающем столбце слева. Сходимость значений Ромберга в табл. 7.6 становится нагляднее, если посмот- посмотреть на остаточный член Е( J, К) = — 2+тг/2+тг2/4—R( J, К). Предположим, что длина шага интервала равна h = b — а и высшие производные от функции /(#) имеют одну и ту же величину. Ошибка в столбце К таблицы Ромберга уменьша- уменьшается приблизительно на множитель \/22К+2 = 1/4^+1 по мере перехода вниз по строкам. Ошибки 25(J,0) уменьшаются на 1/4, ошибки ??(J, 1) уменьшаются на 1/16 и т. д. Это можно наблюдать, изучая элементы {Е( J, К)} табл. 7.7. ¦ Теорема 7.7 (точность интегрирования по Ромбергу). Предположим, что / е ? С2К+2[а;Ь]. Тогда ошибка усечения для приближения Ромберга задается фор- формулой C4) \" f{x) dx = R(J, К) + 6кЛ2К+2/BК+2)(о,к) Ja
7.3. Рекуррентные формулы и интегрирование по Ромбергу 411 Таблица 7.7. Таблица ошибок Ромберга для примера 7.14 J 0 1 2 3 4 5 h b-a b-a 2 b-a 4 b-a 8 b-a 16 b-a 32 JE(J,0) = O(/i2) -1,252799263670 -0,311384770309 -0,077663260503 -0,019403478989 -0,004850085262 -0,001212472077 S(J,l) = O(/i4) 0,002420060811 0,000243909432 0,000016448182 0,000001045980 0,000000065651 ?(J,2) = O(/i6) 0,000098832673 0,000001284099 0,000000019167 0,000000000296 E(J,3) = O(h*Y -0,000000264291 -0,000000000912 -0,000000000003 где h = (b — a)/2J, Ьк — постоянная, зависящая от К, и cj^k € [a; b] (см. [153], с. 126). Пример 7.15. Применим теорему 7.7 и покажем, что = 1024 ее ДD,4). Подынтегральная функция равна f(x) = 10х9 и f(l0\x) = 0. Тогда значение К = 4 будет давать ошибку, тождественно равную нулю, а вычисления дадут значение #D; 4) = 1024. ' ¦ Программа 7.3 (рекуррентная формула трапеций). Программа предназна- предназначена для вычислений по формуле трапеций I ?/ \ j XT'44 / w x ~ ^ 2L/ Jo z fc==1 и последовательного увеличения числа подынтервалов интервала [а; Ь]. J-я ите- итерация производит подсчет f(x) в 2J + 1 равноотстоящих точках. function T=rctrap(f,a,b,n) '/•Вход - f - подынтегральная функция вводится как строка 7. - а и Ъ - верхний и нижний пределы интегрирования 7, - п - количество рекурсий '/•Выход - Т - рекуррентная формула трапеций (значения)
412 Глава 7. Численное интегрирование М=1; h=b-a; T=zeros(l,n+1); T(l)=h*(feval(f,a)+feval(f,b))/2; for j=l:n M=2*M; h=h/2; s=0; for k=l:M/2 x=a+h*B*k-l); s=s+feval(f,x); end T(j+l)=T(j)/2+h*s; end Программа 7.4 (ш^гегрирование по Ромбергу). Программа предназначена для нахождения приближения интеграла г Ja f(x)dx&R(J,J) посредством генерирования таблицы приближений R(J, К) для J>K и исполь- использует R( J+1, J+1) в качестве окончательного ответа. Приближения R( J, К) хра- хранятся в специально созданной нижней треугольной матрице. Элементы R(J,0) столбца 0 вычисляются путем последовательного использования формулы тра- трапеций на 2J подынтервалах интервала [а; 6], затем R(J,K) вычисляется по формуле Ромберга. Элементы строки J равны лит=ад к -1) + для I <K <J. Программа прекращает вычисления на (J + 1)-й строке, когда |Д(J, J) - R(J + 1, J + 1)| < tol. function [R,quad,err,h]=romber(f,a,b,n,tol) '/•Вход - f - подынтегральная функция вводится как строка 7» - а и b - верхний и нижний пределы интегрирования % - п - максимальное число строк в таблице X - tol - допустимое отклонение ХВыход - R - табличное значение Ромберга X - quad - значение квадратуры X - err - ошибка исключения X - h - наименьший шаг
7.3. Рекуррентные формулы и интегрирование по Ромбергу 413 М-1; h=b-a; err=l; >0; R=zerosD,4); R(l,l)=h*(feval(f,a)+feval(f,b))/2; while((err>tol)&(J<n))I(J<4) h=h/2; s=0; for p=l:M x=a+h*B*p-l); s=s+feval(f,x); end R(J+l,l)=R(J,l)/2+h*s; M=2*M; for K=1:J end err=abs(R(J,J)-R(J+l,K+D); end quad=R(J+l,J+l); Упражнения к разделу 7.3 1. Для каждого из приведенных ниже определенных интегралов постройте (вру- (вручную) таблицу Ромберга (см. табл. 7.5), содержащую три строки. (a) f ^4(te = 0,6717578646... Jo l + xd г3 (b) sinDa)e-2xda = 0,1997146621... Jo (c) Г ±dx = lfi Jo,O4 Vх f2 1 (d) — rrfx = 4,4713993943... Jo & + & (e) f sin (-\ dx = 1,1140744942... Jl/Bw) \x/ r2 (f) y/A - x2 dx = 7Г = 3,1415926535... Jo
414 Глава 7. Численное интегрирование 2. Предположим, что последовательное применение формулы трапеций сходит- сходится к L (т. е. limj^oo T( J) = L). (a) Покажите, что последовательное применение формулы Симпсона схо- сходится к L (т. е. limj-юо S(J) = L). (b) Покажите, что последовательное применение формулы Буля сходится к L(t. e. limj^oo S(J)=L). 3. (а) Проверьте, что формула Буля (М = 1, h = 1) точна для полиномов степени <5 вида f(x) = с$хь + с\х^ Л V с\х + cq на интервале [0;4]. (Ь) Используйте подынтегральную функцию f(x) = с^х6 и убедитесь, что остаточный член формулы Буля (М = 1, h = 1) на интервале [0; 4] равен 4. Выведите формулу Буля (М = 1, h = 1), используя метод неопределенных коэффициентов: найдите такие постоянные wo, w\9 W2, w^ и w±y что I g(t) dt = «;o9(O) + wig{l) + w2gB) + w3gC) + wAg(A) Jo является точным для пяти функций: g(t) = 1, t, t2, t3 и t4. Указание. Получите линейную систему: Wo + W\ + W2+ W$+ W4= 4, = 8, 64 = —, о = 64, + 81w3 + 256W4 = ——. 5 5. Выведите соотношение B(J) = A65G) - S(J - 1))/16 для J = 2. Восполь- Воспользуйтесь следующей информацией: su) = f (/0+4/2+/4) и 6, Формула Симпсона |. Рассмотрите формулу трапеций на замкнутом интер- интервале [жо,*3]: Г(/,ЗЛ) = (ЗЛ/2)(/0 + /з) с шагом ЗЛ и Т(/,Л) = (Л/2)(/0 + + 2/i + 2/2 + /3) с шагом h. Покажите, что линейная комбинация (9Г(/, h) - — T(/,3/i))/8 приводит к формуле Симпсона |.
7.3. Рекуррентные формулы и интегрирование по Ромбергу 415 7. Чтобы вывести соотношение B7), воспользуйтесь соотношениями B5) и B6). 8. Чтобы вывести соотношение C0), воспользуйтесь соотношениями B8) и B9). 9. Найдите наименьшее целое число К, для которого (a) $208x7dx = 256 = R{K,K); (b) fillx10 dx = 2048 = R(K, К). 10, Интегрирование по Ромбергу использовалось для приближения интегралов (i) Jo y/xdx и (ii) Jo 2t2 dt. Результаты приведены в следующей таблице. Приближения для (i) Д@,0) =0,5000000 ЯA,1) = 0,6380712 ЯB,2) = 0,6577566 ЯC,3) = 0,6636076 ЯD,4) = 0,6655929 Приближения для (ii) Д@,0) = 1,0000000 #A,1) = 0,6666667 ДB,2) = 0,6666667 ЯC,3) = 0,6666667 #D,4) = 0,6666667 (a) Воспользуйтесь заменой переменных х = t2 и dx = 2tdt и покажите, что оба интеграла имеют одинаковые численные значения. (b) Объясните, почему последовательность Ромберга сходится медленнее для интеграла (i) и быстрее для интеграла (ii). 11. Интегрирование по Ромбергу по формуле средней точки. Составная формула средней точки конкурирует с составной формулой трапеций, что касается эффективности и скорости сходимости. Воспользуйтесь следующим фактом, относящимся к формуле средней точки: Jaf(x)dx = M(/,/i) + Ем(/,Ь>). Формула М(/, К) и остаточный член EmU-> h) заданы следующим образом: M(f,h) = hJTf (a+ (k-t^jh) , где h= И Ям(/, К) = axh2 + a2h4 (а) Начните с Усовершенствуйте последовательное применение формулы средней точ- точки для вычисления 2J M(J) = M(f,hj) = hj ?/ (a + (k - ХЛ hj) , b — a где hj = -^j-.
416 Глава 7. Численное интегрирование (Ь) Покажите, как последовательное применение формулы средней точки можно использовать вместо последовательного применения формулы трапеций в интегрировании по Ромбергу. Алгоритмы и программы 1. Воспользуйтесь программой 7.4 для нахождения приближения определенных интегралов из упр. 1 с точностью до одиннадцати десятичных знаков. 2. Воспользуйтесь программой 7.4 для нахождения приближения следующих двух определенных интегралов с точностью до десяти десятичных знаков. Точное значение каждого интеграла равно тт. Объясните любое явное разли- различие в оценке сходимости двух последовательностей Ромберга. (a) Г2 у Г1 4 y/4x--afi'dx (b) ^ Jo Jo l + xz 3. Функция плотности нормального распределения равна f(t) = A/\/2тг)е г /2, и функция распределения является функцией, определенной интегралом Ф(х) = i + -4^ Jq e"*2/2 dt. Вычислите значения для Ф@,5), ФA,0), ФA,5), ФB,0), ФB,5), ФC,0), ФC,5) и ФD,0) с девятью знаками точности. 4. Модифицируйте программу 7.3 таким образом, чтобы она останавливалась, когда последовательные значения Т(К - 1) и Т(К) для последовательного применения формулы трапеций будут различаться меньше, чем на 5 х 10~6. 5. Модифицируйте программу 7.3 таким образом, чтобы по ней можно бы- было также вычислять значения для последовательного применения формул Симпсона и Буля. 6. Модифицируйте программу 7.4 таким образом, чтобы ее можно было ис- использовать для последовательного применения формулы средней точки, что- чтобы получить интеграл по Ромбергу (воспользуйтесь результатами упр. 11), Найдите по вашей программе приближения для следующих интегралов с точностью до десяти десятичных знаков. Г1 sin(a Jo х 7. В программе 7.4 приближения заданных определенных интегралов хранятся на главной диагонали нижней треугольной матрицы. Модифицируйте про- программу 7.4 так, чтобы строки таблицы интегрирования по Ромбергу вычис- вычислялись последовательно и хранились в матрице R размера nxl, так как это экономит память. Протестируте свою программу на интегралах из упр. 1.
7.4. Адаптивная квадратура 417 7.4. Адаптивная квадратура Составная формула квадратуры вынуждена использовать равноотстоящие точ- точки. Типично, что малая длина шага h постоянно использовалась на всем интервале интегрирования, чтобы обеспечить общую точность. Не принималось в расчет, что некоторые части кривой могут иметь большие функциональные колебания, кото- которые требуют больше внимания, чем другие части кривой. Полезно ввести метод, который устанавливает меньшую длину шага на тех частях кривой, где появляют- появляются большие функциональные колебания. Такая техника называется адаптивной квадратурой. Метод основан на формуле Симпсона. В формуле Симпсона используются два подынтервала на интервале [ак\ Ьь\: A) S(ak,bk) = |(/(ofc) + 4/(cfc) + f(bk)), где Cfc = ^(ak + bk) — центр интервала [ak; bk] и h = (bk — ak)/2. Кроме того, если / 6 C4[ak; bk], существует такое значение d\ G [ак; bk], что B) Уточнение В составной формуле Симпсона используются четыре подынтервала интервала [а*; Ьк]9 которые можно получить, разделив этот интервал на два равных подынтер- подынтервала, [a/ы; bjfei] и [ak2] bk2]y а затем применить формулу A) рекурсивно на каждом отрезке. Необходимы только два дополнительных вычисления функции /(ж). В результате получаем S(akubkl) + S{ak2ibk2) = ? C) 6 где ак\ = аь Ьк\ = Q>k2 = сь bk2 = bk, ck\ — средние точки подынтервалов [afci;6fci], а с^2 — средняя точка [ак2',Ьк2\- В формуле C) длина шага равна h/2\ она соответствует множителю /г/6 в правой части равенства. Кроме того, если / € СА[а; Ь], существует такое значение d2 E [ak\ 6^], D) J /(a:)cfa = S(akubkl) + S(ak2,bk2) - Jg Jdk Предположим, что f^(d\) w f^(d2). Тогда правые части равенств B) и D) используются, чтобы получить соотношение E) S(ak,bk)-
418 Глава 7. Численное интегрирование которое можно записать как F) -/i5——— « jziSiaki.bki) + S(ak2,bk2) - S(ak,bk)). Затем соотношение F) подставляем в D), чтобы получить ошибку вычислений: гЬк f(x) dx - S(aki,bki) -S(ak2,bk2) « G) V i -S(ak2,bk2)-S(akibk)\. Так как в применяемом методе предполагается, что fD\d\) « f^(d2), в правой части уравнения G) дробь ^ заменяем дробью ^. Объяснение этому находим в следующем критерии. Критерий точности Предположим, что допустимое отклонение ек > 0 задано для интервала [ак\ Ь&]. Если (8) — |&(a/uAi) + 5(^27^2) - S(ak,bk)\ < ек, следовательно, (9) И * f{x) dx - S{aku bkl) - 5(afc2, bfc2) Таким образом, составная формула Симпсона C) используется для нахождения приближения интеграла гЬк A0) f{x) dx « S(aku и грань ошибки этого приближения на интервале [ак; Ьк] равна ек. Адаптивная квадратура осуществляется с помощью формул Симпсона A) и C). Начнем с {[ао; Ьо]? ?о}, где во — допустимое отклонение для численной квадратуры на интервале [ао; bo]. Разобьем интервал на два подынтервала, обозначенные через [aoi; &oi] и [йог; Ьо2]. Если критерий точности (8) выдержан, то формулу квадрату- квадратуры C) применяем на интервале [ао; Ьо] и заканчиваем подсчет. Если критерий (8) "провалился", то переобозначим два подынтервала через [ai; b{\ и [а2\ Ь2], на кото- которых допустимое отклонение будет равно е\ = ^ео и е2 = ^ео соответственно. Те- Теперь есть два интервала с соответствующими допустимыми отклонениями и мож- можно рассматривать следующее улучшение и критерий: {[ai;bi],€i} и
7.4. Адаптивная квадратура 419 где е\ + €2 = бо. Чтобы продолжить адаптивную квадратуру, следует уточнять и наименьшие интервалы с соответствующими им новыми допустимыми отклоне- отклонениями. На следующем шаге сначала рассмотрим {[а\; fci], 61} и преобразование интер- интервала [ai;&i] в [ац;6ц] и [ai2;bi2]. Если они проходят критерий точности (8) с допустимым отклонением бь то формулу квадратуры C) применяем к интервалу [аи Ь\] и точность на этом интервале достигнута. Если критерий (8) "провалива- "проваливается" с допустимым отклонением бь то каждый подынтервал [оц; 6ц] и [а\2\ 612] следует преобразовать и проверить на третьем шаге с сокращенным отклонением \е\. Кроме того, на следующем шаге рассматривается {[свдЬгЬсг} и преобразу- преобразуется [а,2\ Ь?\ в [п2\\ &2i] и [«22; 622]- Если на них проходит критерий точности (8) с допустимым отклонением 62, то применяем формулу квадратуры C) на интервале [аг; Ьг]- Точность на интервале достигнута. Если на этих интервалах критерий (8) с допустимым отклонением 62 "проваливается", то каждый подынтервал [a2i; 621] и [«225 &22] слеДУет преобразовать и проверить на третьем шаге с сокращенным до- допустимым отклонением ^62- Более того, на втором шаге получаем три или четыре интервала, которые соответственно следует переобозначить. Три интервала следу- следует переобозначить, чтобы получить {{[ai;bi],6i},{[a2;b2]562},{[a3;b3],63}}, где €i + 62 + бз = бо. Для четырех интервалов получаем {{[ai;6i],6i}, {^2;62],62}, {[аз; h], б3}, {[а4; 64], б4}}, где ег + е2 + б3 + б4 = б0. Чтобы продолжить адаптивную квадратуру, следует проверить и наименьшие интервалы с соответствующими им новыми допустимыми отклонениями. Оста- Остаточный член в D) показывает, что каждый раз преобразование происходит на мень- меньшем подынтервале, что уменьшает ошибку приблизительно в ^ раза. Таким обра- образом, процесс завершится после конечного числа шагов. Подсчет выполнения мето- метода включает "сторожевую" переменную, обозначающую подынтервал, на котором проходит критерий точности. Во избежание необходимости производить дополни- дополнительные вычисления функции f(x) значения функции можно включить в список данных, относящихся к каждому подынтервалу. Детали показаны в программе 7.6. Пример 7.16. Воспользуемся адаптивной квадратурой, чтобы получить числен- численное приближение значения определенного интеграла Jo 13(# — x2)e~Sx/2 dx при начальном допустимом отклонении, равном бо = 0,00001. Для осуществления метода необходимо 20 подынтервалов. В табл. 7.8 при- приведены каждый интервал [а*; 6*], составная формула Симпсона S^afcbfybi) + + ?(аА;25 bfc2)> гРань ошибки приближения и соответствующее допустимое откло- отклонение б*. Приближенное значение интеграла получаем в результате суммирования формул Симпсона: (И) [ и{х-х2)е~Ъх12Aхъ -1,54878823413. Jo
420 Глава 7. Численное интегрирование Таблица 7.8. f(x) = 13(з - Вычисления адаптивной квадратуры для функции 23/2 ft , 0,0 0,0625 0,125 0,1875 0,25 0,375 0,5 0,625 0,75 0,875 1,0 1,125 1,25 1,5 2,0 2,25 2,5 2,75 3,0 3,5 hu 0,0625 0,125 0,1875 0,25 0,375 0,5 0,625 0,75 0,875 1,0 1,125 1,25 1,5 2,0 2,25 2,5 2,75 3,0 3,5 4,0 Суммы S(aki,bki)+ 4-S(afc2,bfc2) 0,02287184840 0,05948686456 0,08434213630 0,09969871532 0,21672136781 0,20646391592 0,17150617231 0,12433363793 0,07324515141 0,02352883215 -0,02166038952 -0,06065079384 -9,21080823822 -0,60550965007 -0,31985720175 -0,30061749228 -0,27009962412 -0,23474721177 -0,36389799695 -0,24313827772 -1,54878823413 Грань ошибки для левой части (8) 0,00000001522 0,00000001316 0,00000001137 0,00000000981 0,00000025055 0,00000018402 0,00000013381 0,00000009611 0,00000006799 0,00000004718 0,00000003192 0,00000002084 0,00000031714 0,00000003195 0,00000008106 0,00000008301 0,00000007071 0,00000005447 0,00000103699 0,00000041708 0,00000296809 Допустимое отклонение б* лля [ак]Ьк] 0,00000015625 0,00000015625 0,00000015625 0,00000015625 0,0000003125 0,0000003125 0,0000003125 0,0000003125 0,0000003125 0,0000003125 0,0000003125 0,0000003125 0,000000625 0,00000125 0,000000625 0,000000625 0,000000625 0,000000625 0,00000125 0,00000125 0,00001 A2) Истинное значение интеграла равно 4108е~6 - 52 Г6{х -х~)е '"их = о Г4 Щх - х2)е~3х/2 dx = Jo 27 = -1,5487883725279481333. Следовательно, ошибка адаптивной квадратуры равна A3) | - 1,54878837253 - (-1,54878823413I = 0,00000013840, что меньше, чем специально выбранное допустимое отклонение во = 0,00001. Адаптивный метод включает 20 подынтервалов интервала [0;4] и 81 вычисление функции. На рис. 7.9 показаны график функции у = f(x) и эти 20 подынтервалов. Интервалы имеют меньшую длину в начале координат, где функция проявляет наибольшие колебания. В процессе преобразования и проверки в адаптивном методе первые четы- четыре интервала были разбиты на 8 подынтервалов длины 0,03125. Если продол- продолжить равномерное разбиение интервала [0;4], то для составной формулы Симп- сона потребуется М = 128 подынтервалов, на которых получим приближение
7.4. Адаптивная квадратура 421 Рис. 1.9. Подынтервалы интер- интервала [0;4], которые использова- использованы в адаптивной квадратуре -1,54878844029 с ошибкой, равной 0,00000006776. Хотя составной метод Симп- Симпсона имеет в два раза меньшую ошибку, чем метод адаптивной квадратуры, для него требуется на 176 больше вычислений функции. Этот выигрыш в точности незначительный, поэтому важнее попытаться экономно выполнить вычисления адаптивным методом. ¦ Программа 7.5, srule, является модификацией формулы Симпсона из разде- раздела 7.1. Выходной вектор Z содержит результаты вычислений по формуле Симп- Симпсона на интервале [а0; 60]. Программа 7.6 называется srule, как и подпрограмма, которая выполняет вычисления по формуле Симпсона на каждом подынтервале, генерируемом процессом адаптивной квадратуры. Программа 7.5 (формула Симпсона). Программа предназначена для нахо- нахождения приближения интеграла f{x) dx « -(/(аО) + 4/(сО) + /F0)) аО * по формуле Симпсона, когда сО = (аО + Ь0)/2. function Z=srule(f,a0,b0,tol0) 7, ВхоД - f - подынтегральная функция, вводимая как строка JfJ % - а0 и ЬО - верхний и нижний пределы интегрирования X - tolO - допустимое отклонение X Выход - Z - вектор [аО Ь0 S S2 err toll] размера 1x6 h=(bO-aO)/2; C=zeros(l,3); C=feval(f,[aO (а0+Ь0)/2 Ь0]); S=h*(C(l)+4*CB)+CC))/3; S2=S;
422 Глава 7. Численное интегрирование toll=tolO; err=tolO; Z=[aO ЬО S S2 err toll]; Программа 7.6 вычисляет матрицу SRmat, quad (адаптивную квадратуру при- приближения определенного интеграла) и err (грань ошибки приближения). Строка SRmat содержит крайние точки, приближение по формуле Симпсона и грань ошиб- ошибки на каждом подынтервале, генерируемом процессом адаптивной квадратуры. Программа 7.6 (адаптивная квадратура, использующая формулу Симпсо- Симпсона). Программа предназначена для вычисления приближения интеграла rb Ja dx Составная формула Симпсона применяется на AM подынтервалах где [а;Ь] = [#o;#4m] и хм-щ = #4fc-4 + jhk для каждого к = 1, ..., М и 7 = 1 4 function [SRmat,quad,err]=adapt(f,a,b,tol) У, Вход - f - подынтегральная функция, вводимая как строка 'fy X - а и b - верхний и нижний пределы интегрирования X - tol - допустимое отклонение 7, Выход - SRmat - матрица значений У# - quad - значение квадратуры У, - err - ошибка вычислений ^Инициализация значений SRmat = zerosC0,6); iterating=O; done=l; SRv.ec=zeros(l,6) ; SRvec=srule(f,a,b,tol); SRmat(l,l:6)=SRvec; m=l; state-iterating; while(state==iterating) n=m; for j=n:-l:l p=j; SROvec=SRmat(p,:); err=SR0vecE);
7.4. АДАПТИВНАЯ КВАДРАТУРА 423 tol=SR0vecF); if (tol<=err) •/.Деление интервала, рекуррентное применение '/•формулы Симпсона и нахождение ошибки state=done; SRlvec=SROvec; SR2vec=SR0vec; a=SR0vec(l); b=SR0vecB); c=(a+b)/2; err=SR0vecE); tol=SR0vecF); tol2=tol/2; SRlvec=srule(f,а,с,tol2); SR2vec=srule(f,с,b,tol2); err=abs(SROvecC)-SRlvecC)-SR2vecC))/10; •/•Критерий точности if (err<tol) SRmat(p,:)=SROvec; SRmat(p,4)=SRlvecC)+SR2vecC); SRmat(p,5)=err; else SRmat(p+l:m+l, :)=SRmat(p:m,:); m=m+l; SRmat(p,:)=SRlvec; SRmat(p+1,:)=SR2vec; state=iterating; end end end end quad=sum(SRmat(: ,4)); err=sum(abs (SRmat (:, 5) ) ) ; SRmat=SRmat A:m, 1:6) ; Алгоритмы и программы 1. Используйте программу 7.6, чтобы найти приближенное значение определен- определенного интеграла. Начальное допустимое отклонение возьмите равным во = = 0,00001. (а) fsp^dx (b) f3 sinD*)e-2* dx (с) I* -L Jo ! +x Jo Jo.O4 Vх
424 Глава 7. Численное интегрирование ; Г2 1 Г2 /1\ Г2 , (d) — rdx (е) sin(-)dx (f) \/4я - ж2 dz Jo ^2 + jq Ji/Btt) \x/ Jo 2. Для каждого определенного интеграла из упр. 1 постройте график, аналогии* ный графику на рис. 7.9. Указание. В первом столбце матрицы SRmat содер- содержатся крайние точки (кроме точки 6) подынтервалов для процесса адаптив- адаптивной квадратуры. Если T=SRmat(: ,1) и Z=zeros(length(T)) >, то программа plot(T,Z,'.') порождает подынтервалы (за исключением крайней справа точки 6). 3. Модифицируйте программу 7.6 так, чтобы формула Буля применялась на каждом подынтервале [а*, 6*]. 4. Воспользуйтесь модифицированной программой в упр. 3 для вычисления приближения и построения графика, аналогичного графику на рис. 7.9, для определенного интеграла из упр. 1. 7.5. Интегрирование по Гауссу-Лежандру (произвольный выбор) Требуется найти площадь под кривой Какой метод даст лучший результат, если вычислять значения функции только в двух точках? Уже было показано, что формула трапеций является методом для нахождения площади под кривой и что в ней используются два вычисления функ- функции в крайних точках (—1; /(—1)) и A; /A)). Но если график функции у = f(x) вогнут вниз, то ошибка приближения соответствует области, которая лежит между кривой и отрезком линии, соединяющей точки (рис. 7.10(а)). Если можно использовать узлы х\ и Х2, которые лежат на интервале [—1;1], значит, линия пересекает кривую в двух точках, {xi;f(xi)) и (tf2;/(#2))> и пло- площадь под линией лучше приближает площадь под кривой (рис. 7.10(Ь)). Уравнение линии имеет вид A) у №,) Х2 -Xi и площадь трапеции под линией равна B) -Атрап = f\xl) "~ "" — Х2 ~ xl X2— Х\ Заметим, что формула трапеции является частным случаем формулы B). Если выбрать х\ — —1, Х2 = 1 и h = 2, то Н - ^/(z2) = f(Xl) + f (x2).
7.5. Интегрирование по Гауссу-Лежандру (произвольный выбор) у у -1 (а) (Ь) 425 Рис. 7.10. (а) Приближение формулой трапеций, использующей абсциссы — 1 и 1. (Ь) Приближение формулой трапеций, использующей абсциссы х\ и хъ Для нахождения абсцис xi, X2 и весов w\, ^2> таких, что формула C) /(ж) dx будет точной для полинома третьей степени (т. е. f(x) = аз#3 +. а>2Х2 следует использовать метод неопределенных коэффициентов. Так как в уравне- уравнении C) необходимо определить четыре коэффициента, w\9 W2, х\ и ^2, выберем четыре условия, которым они удовлетворяют. Используем свойство аддитивности интегрирования, и этого будет достаточно, чтобы потреб9вать, чтобы C) было точным для четырех функций, f(x) = 1, х, х2, хъ. Четыре интегральных условия имеют вид /(*) = !: D) f(x) = x2: L f x3dx = 0 = J-i 1 dx = 2 = xdx = 0 = 101Ж1 +102^2, W\x\
426 Глава 7. Численное интегрирование Решим систему нелинейных уравнений E) wl+w2 = 2, F) G) W\X\ + tU2#2 = <|' (8) Можно разделить уравнение (8) на F) и получить (9) • х\ = х\ или х\ = — #2- Используем (9) и разделим левую часть уравнения F) на х\ и правую — на -яг, в результате чего получим A0) ' tt;i = ги2. После подстановки равенства A0) в уравнение E) получим w\ + W2 = 2. Таким образом, A1) w\ = г^2 = 1. Используя в уравнении G) равенства A1) и (9), запишем 2 1 A2) W\x\ + W2#2 ==: Х2 + ^2 == *" или Х2 == ""• 3 3 Наконец, из уравнения A2) и равенства (9) видно, что узлы равны -я?! = Х2 = 1/31/2 » 0,5773502692. Узлы найдены с помощью двухточечной формулы Гаусса-Лежандра. Поскольку формула точна для полинома третьей степени, остаточный член включает четвер- четвертую производную. Обсуждение остаточного члена можно найти в [41]. Теорема 7.8 (двухточечная формула Гаусса-Лежандра). Если функция / непрерывна на отрезке [—1; 1], то A3) Формула Гаусса-Лежандра G2(f) имеет степень точности, равную п = 3. Если /еС4[-1;1]>то A4)
7.5. Интегрирование по Гауссу-Лежандру (произвольный выбор) 427 где A5) ад) = Пример 7.17. Воспользуемся двухточечной формулой Гаусса-Лежандра, чтобы найти приближение j 1,09861, и сравним его с результатом, полученным по формуле трапеций Т(/, К) с шагом h = 2 и формуле Симпсона S(f, h) с шагом h — 1. Обозначим через <?2(/) двухточечную формулу Гаусса-Лежандра. Тогда G2(f) = /(-0,57735) + /@,57735) = = 0,70291 + 0,38800 = 1,09091, Г(/,2) = /(-1,00000) + /A,00000) = = 1,00000 + 0,33333 = 1,33333, Wiц . Л-В+4/@)+ /A) _ 1 + 2+1 . 1ДШ1. «5 о Ошибки соответственно равны 0,00770, —0,23472 и —0,01250. Таким образом, формула Гаусса-Лежандра оказывается наилучшей. Заметим, что для формулы Гаусса-Лежандра требуется только два вычисления функции, для формулы Симп- Симпсона — три. В этом примере величина ошибки для G2U) составляет около 61% величины ошибки для 5(/, 1). ¦ Общая TV-точечная формула Гаусса-Лежандра точна для полиномиальной функ- функции степени <2N — 1, и формула численного интегрирования имеет вид A6) GN(f) = wNiif(xNi\) + WNflf{xNfi) H + wNiNf(xNiN). Используемые абсциссы х^^ и веса w^^ сведены в таблицу и легко доступ- доступны. В табл. 7.9 приведены значения в восьми точках. В таблицу также включен остаточный член Ejsf(f), который соответствует формуле С?лг(/)> и его можно использовать для определения точности формулы Гаусса-Лежандра. Вообще, значения в табл. 7.9 имеют непростое представление. Это делает метод непривлекательным для тех, кому необходимо выполнять вычисления вручную. Но как только значения будут занесены в компьютер, к ним можно будет легко обратиться при необходимости. На самом деле узлы являются корнями поли- полиномов Лежандра и соответствующие им веса следует находить, решая систему уравнений. Для трехточечной формулы Гаусса-Лежандра узлы равны — @,6)х/2, О и @,6)х/2, а соответствующие веса — 5/9, 8/9 и 5/9.
428 Глава 7. Численное интегрирование Таблица 7.9. Абсциссы и веса для формулы Гаусса-Лежандра г1 N f(x)dx = Y^wN,kf(xNtk) + EN(f) N 2 3 4 5 6 7 8 АбсЦИССЫ, XN,k -0,5773502692 0,5773502692 ±0,7745966692 0,0000000000 ±0,8611363116 ±0,3399810436 ±0,9061798459 ±0,5384693101 0,0000000000 ±0,9324695142 ±0,6612093865 ±0,2386191861 ±0,9491079123 ±0,7415311856 ±0,4058451514 0,0000000000 ±0,9602898565 ±0,7966664774 ±0,5255324099 ±0,1834346425 Веса, WN,k 1,0000000000 1,0000000000 0,5555555556 0,8888888888 0,3478548451 0,6521451549 0,2369268851 0,4786286705 0,5688888888 0,1713244924 0,3607615730 0,4679139346 0,1294849662 0,2797053915 0,3818300505 0,4179591837 0,1012285363 0,2223810345 0,3137066459 0,3626837834 Ошибка усечения, En<J) /D)(c) 135 /W(O 15 750 /<8>(c) 3 472 875 /A0)(c) 1 237 732 650 /<12>(cJ13F!L A2!K13! /A4>(cJ15G!L A4!K15! /<16>(cJ17(8!L A6!K17! Теорема 7.9 (трехточечная формула Гаусса-Лежандра). Если функция / не- непрерывна на интервале [—1; 1], то -1 э Формула Гаусса-Лежандра (?з(/) имеет степень точности, равную п = 5. Если / Е С6[-1; 1], то f1 (]Q\ fir} Hr - yLo) jyx) ax - где A9) 15750-
7.5. Интегрирование по Гауссу-Лежандру (произвольный выбор) 429 Пример 7.18. Покажем, что трехточечная формула Гаусса-Лежандра точна для L Так как подынтеральная функция равна f(x) = 5х4 и fF\x) = О, можно вос- воспользоваться формулой A9), чтобы увидеть, что #з(/) = 0. Однако поучительно использовать формулу A7) и проделать вычисления для этого случая: 5E)@,6J + 0 + 5E)@,6J 18 = У = 2 - Следующий результат показывает, как сделать такую замену переменной инте- интегрирования, чтобы формулу Гаусса-Лежандра можно было применять на интер- интервале [а; 6]. Теорема 7.10 (преобразование Гаусса-Лежандра). Предположим, что на ин- интервале [—1;1] заданы абсциссы {х^^}^=1 и веса {ww,fc}jfcLi доя ^-точечной формулы Гаусса-Лежандра. Чтобы применить формулу на интервале [а; Ь], вы- выполним замену переменной _лч а + Ь Ь — а _ 6 — а , B0) t = — 1 —х и dt = ——- da;. 2i Z It Затем воспользуемся соотношением чтобы вычислить формулу квадратуры B2) Пример 7.19. Воспользуемся трехточечной формулой Гаусса-Лежандра, чтобы найти приближение 1 5 dt — = lnE) - 1пA) « 1,609438, и результат сравним с результатом, полученным по формуле Буля В B) с шагом Так как а = 1 и Ь = 5, по формуле B2) получаем ^5/C - гСО.бI/2) + 8/C + 0) + 5/C + 2@fi = B) g = B) 3,446359 + 2,666667 + 1,099096 =
430 Глава 7. Численное интегрирование Из примера 7.13 видно, что формула Буля дает значение ВB) = 1,617778. Ошибки соответственно равны 0,006744 и —0,008340. Таким образом, форму- формула Гаусса-Лежандра в этом случае немного лучше. Заметим, что для формулы Гаусса-Лежандра требуется три вычисления функции, а для формулы Буля — пять. В этом примере величины обеих ошибок примерно одинаковы. ¦ Формулы интегрирования Гаусса-Лежандра чрезвычайно точны, и к ним сле- следует относиться серьезно, когда нужно вычислять много интегралов подобного вида. В этом случае поступаем следующим образом. Вибираем несколько пред- представлений интегралов, включая интегралы с наихудшим поведением, какие види- видимо могут появиться. Определяем число выбранных точек N, которые понадобятся, чтобы получить требуемую точность. Затем фиксируем значение N и используем формулу Гаусса-Лежандра с выбранными N точками для всех интегралов. Для заданного значения N в программе 7.7 требуется, чтобы абсциссы и веса из табл. 7.9 были записаны соответственно в матрицы А и W размера 1 х N. Это можно сделать с помощью команды MATLAB command window или записи матри- матрицы как М-файла. Следует выбрать подходящую команду, чтобы записать табл. 7.9 в матрицу G размера 35 х 2. Первый столбец матрицы G должен состоять из абсцисс, а второй — из соответствующих им весов. Затем для заданного значения N, матриц А и W нужно получить подматрицу G. Например, если JV = 3, то A=GC:5,1)> HW=GC:5,2)\ Программа 7.7 (квадратура Гаусса-Лежандра). Программа предназначена для нахождения приближения интеграла Ь-а N k=i по значениям функции f(x) в N равноотстоящих точках {tN,k}%-i- Выполним замену переменных а+Ь Ь-а ,. Ь-а *=— + —* и <ft = —<fc. Абсциссы {ж#,*}?^1 и соответствующие им веса {w^^^i нужно брать из заранее введенной таблицы. function quad=gauss(f,a,b,A,W) '/.Вход - f - подынтегральная функция, вводимая как строка У, - а и b - верхний и нижний пределы интегрирования 7, - А - вектор абсцисс размера 1 х N из табл. 7.9 % - W - вектор весов размера 1 х N из табл. 7.9 '/Выход - quad - значение квадратуры
7.5. Интегрирование по Гауссу-Лежандру (произвольный выбор) 431 N=length(A); T=zeros(l,N); Т=((а+Ъ)/2)+((Ь-а)/2)*А; quad=((b-a)/2)*sum(W.*feval(f,T)); Упражнения к разделу 7.5 В упр. 1-4 покажите, что интегралы эквивалентны, и вычислите Г2 Г1 Г2 f1 1. б*5 dt = 6(х + IM dx. 2. sin(*) dt = sin(x 4-1) dx. Jo J-i Jo J-i -i 4. -t= e f /2dt= —== dx. 5. - f cos@,6sin(t)) dt = 0,5 [ cos (o,6sin ((a; 6. Используйте значения E^(f) из табл. 7.9 и замену переменной из теоре- теоремы 7.10, чтобы найти такое наименьшее целое число N, что Ew(f) = 0 для (a) $208х7dx = 256 = GN(f); (b) Jo Ux10 dx = 2048 = GN{f). 7. Найдите корни следующих полиномов Лежандра и сравните их с абсциссами из табл. 7.9. (a) Р2(х) = (Зх2 - 1)/2 (b) 3 (с) 8. Ошибка усечения для двухточечной формулы Гаусса-Лежандра на замкнутом интервале [—1; 1] равна /^(ci)/135. Ошибка усечения для формулы Симп- сона на интервале [а; 6] равна — /i5/^(c2)/90. Сравните ошибки усечения, когда интервал [а;Ь] = [— 1; 1]. Какой метод по вашему мнению лучший и почему? 9. Трехточечная формула Гаусса-Лежандра имеет вид Г1 Пх) dx ,. 5/(-@,6I/2) + 8/@) + бЖО,^/2) J—1 У Покажите, что формула точна для функций f(x) = 1, ж, х2, я3, х4, хъ. Указание. Если функция / нечетная (т. е. f(—x) = /(#)), то интеграл от / на интервале [—1; 1] равен нулю.
432 Глава 7. Численное интегрирование 10. Ошибка усечения для трехточечной формулы Гаусса-Лежандра на интер- интервале [—1;1] равна /F)(ci)/15 750. Ошибка усечения для формулы Буля на интервале [а\Ъ] равна — 8/i7/^(c2)/945. Сравните остаточные члены, когда [а; Ь] = [—1; 1]. Какой метод лучше и почему? 11. Выведите трехточечную формулу Гаусса-Лежандра, выполнив следующие шаги. Используйте тот факт, что абсциссы являются корнями полинома Ле- жандра степени 3. Найдите такие веса w\9 W2, w^, чтобы соотношение f(x) dx » wxtt-Qfifl2) + w2f @) + было точным для функций /(х) = 19хих2. Указание. Сначала получите систему линейных уравнений V3\ + W2 + Wz = 2, 2 0,6w;3 = -, а затем решите ее. 12. На практике при вычислении большого количества однотипных интегралов производится анализ, чтобы определить количество вычислений функции для получения требуемой точности. Предположим, что потребуется произвести 17 вычислений функции. Сравните ответ, полученный по Ромбергу ДD,4), с ответом, полученным по формуле Гаусса-Лежандра Gn(f). Алгоритмы и программы 1. Для каждого из интегралов упр. 1-5 воспользуйтесь программой 7.7, чтобы найти G6(/), G7(f) и G8(/). 2. (а) Модифицируйте программу 7.7 таким образом, чтобы по ней можно было вычислять Gi(/), <?2(/), •••> Gs(f) и останов происходил, ко- когда относительная ошибка приближений GN-i(f) и G^(f) становится меньше, чем наперед заданное значение tol, т. е. \GN-i{f)
7.5. Интегрирование по Гауссу-Лежандру (произвольный выбор) 433 Указание. Как рекомендовалось в конце раздела, запишите табл. 7.9 в М-файл G как матрицу G размера 35 х 2. (Ь) Воспользуйтесь своей программой для п. (а), чтобы найти приближение интегралов из упр. 1-5 с точностью до пяти десятичных знаков. 3, (а) Используйте семиточечную формулу Гаусса-Лежандра, чтобы найти при- приближенное решение интегрального уравнения Г3 v(x)=x2 + 0,l\ {x2 + t)v(t)dt. Jo Подставьте полученное решение в правую часть уравнения и упростите его. (Ь) Повторите п. (а) для восьмиточечной формулы Гаусса-Лежандра.
8 Численная оптимизация Двумерное волновое уравнение находит применение в механике при модели- моделировании вибрирующей прямоугольной пластинки. Если закреплены все четыре края пластинки, то синусоидальные колебания описываются двухкратным рядом Фурье. Предположим, что в определенный момент высота z = f(x,y) в точке (a) Рис. 8.1, (а) Смещение z = /(ж, у) вибрирующей пластинки. (Ь) Контурное изображение /(х, у) = С вибрирующей пластинки 434
8.1. Минимизация функции 435 (#, у) задана функцией * = fix,У) = 0,02sin(x) sin(y) - 0,03sinBrr) sin(y)+ + 0,04 sin(a;) sinBy) + 0,08 sinBx) sinBy). Где расположены точки с максимальным отклонением? Если рассматривать трех- трехмерный график и соседнее с ним контурное изображение на рис. 8.1, можно уви- увидеть, что существуют два локальных минимума и два локальных максимума на квадрате 0 < # < тг, 0<у<тг. Численные методы используются для приближенного определения их места расположения: /@,8278; 2,3322) = -0,1200 и /B,5351; 0,6298) = -0,0264 представляют собой локальные минимумы и /@,9241; 0,7640) = 0,0998 и /B,3979; 2,2287) = 0,0853 являются локальные максимумами. В этой главе кратко излагаются некоторые основные методы нахождения экс- экстремума функций от одной или нескольких переменных. 8.1. Минимизация функции Определение 8.1 (локальный экстремум). Говорят, что функция / имеет ло- локальный минимум в точке х = р, если существует такой открытый интервал /, содержащий р, что /(р) < f(x) для всех х € /. Аналогично говорят, что функция / имеет локальный максимум в точке х = р, если f(x) < /(р) для всех х Е /. Если функция / имеет или локальный минимум, или локальный максимум в точке х = р, то говорят, что она имеет локальный экстремум в точке х = р. А Определение 8.2 (возрастание и убывание функции). Предположим, что фун- функция f(x) определена на интервале /. (i) Если из неравенства х\ < Х2 следует, что f(xi) < /(#2) для всех х\9 Х2 G J, то говорят, что функция / возрастает на интервале /. (ii) Если из неравенства х\ < Х2 вытекает, что f(x\) > /(#2) Для всех хъ #2 ? 19 то говорят, что функция / убывает на интервале /. А Теорема 8.1. Предположим, что функция f(x) непрерывна на интервале J = = [а; 6] и дифференцируема на (а, Ь). (i) Если f'(x) > 0 для всех х G (а, Ь), то функция f(x) является возрастающей на интервале I. (ii) Если ff(x) < 0 для всех х G (а, Ь), то функция f(x) является убывающей на интервале J.
436 Глава 8. Численная оптимизация Теорема 8.2. Предположим, что функция f(x) определена на отрезке / = [а; 6] и имеет локальный экстремум во внутренней точке р Е (а, 6). Если f(x) диффе- дифференцируема в точке х = р, то ff(p) = 0. Теорема 8.3 (критерий первой производной). Предположим, что функция f(x) непрерывна на отрезке / = [а; Ь]. Кроме того, предположим, что f'(x) определена для всех х ? (а, 6) за исключением, возможно, точки х = р. (i) Если ff(x) < 0 на интервале (а,р) и f'(x) > 0 на (р, Ь), то f(p) — локальный минимум. (ii) Если f'{x) > 0 на интервале (а,р) и f'(x) < 0 на (р, Ь), то f(p) — локальный максимум. Теорема 8.4 (критерий второй производной). Предположим, что функция / непрерывна на отрезке [а; 6] и /' и /" определены на (а, 6). Также предположим, что р Е (а, Ь) — критическая точка, в которой ff(p) = 0. (i) Если f"(p) > 0, то значение f(p) является локальным минимумом /. (ii) Если f"(p) < 0, значение f(p) является локальным максимумом /. (iii) Если /"(р) = 0, то этот критерий не является окончательным. Пример 8.1. Используем критерий второй производной, чтобы классифициро- классифицировать локальный экстремум функции f(x) = ж3 + х2 — х + 1 на интервале [—2; 2]. Первая производная равна f'(x) = Зх2 + 2х — 1 = (Зх — 1)(х + 1), а вторая — /"(#) = 6х + 2. Существуют две точки, в которых f'{x) = 0 (т. е. х = 1/3, -1). Случай (i). Находим, что в точке х = 1/3 /'A/3) = 0 и /"A/3) = 4 > 0; таким образом, функция f(x) имеет локальный минимум в точке х = 1/3. Случай (ii). Находим, что в точке х = — 1 /'(—1) = 0 и //;(—1) = —4 < 0; таким образом, функция f(x) имеет в точке х = — 1 локальный максимум. ¦ Метод поиска Другой метод нахождения минимума функции f(x) состоит в многократном вычислении функции и поиске локального минимума. Для уменьшения количе- количества вычислений функции важно иметь хорошую стратегию, чтобы определить, где вычислять функцию f(x). Одним из наиболее эффективных методов является поиск методом золотого сечения, который так назван из-за отношения, использу- используемого при выборе точек. Золотое сечение Пусть [0; 1] — начальный интервал. Если 0,5 < г < 1, то 0 < 1 — г < 0,5 и интервал делится на три подынтервала: [0; 1 — г], [1 — г; г] и [г; 1]. В процессе решения используется либо сжатие вправо и получение нового интервала [0; г], либо сжатие влево и получение интервала [1—г; 1]. Затем эти новые подинтервалы делятся на три подынтервала в таком же соотношении, как и интервал [0; 1].
8.1. Минимизация функции 437 О 1-гг 1 О 1-гг 1 Е 1 1 3 Е 1 1 3 г2 1 - г2 Е 1 1 3 Е 1 1 3 О 1-гг 1-г г 1 Сжатие справа и новым Сжатие слева и новым интервалом будет [0; г] интервалом будет [1 — г; 1] Рис. 8.2. Интервалы, которые используются при поиске методом золото- золотого сечения Требуется так выбрать г, чтобы одна из старых точек была в правильном поло- положении относительно нового интервала, как показано на рис. 8.2. Из этого следует, что отношение A — г) : г такое же, как и г : 1. Следовательно, г удовлетворяет уравнению 1 — г = г2, которое можно записать в виде квадратного уравнения г2 + г — 1 = 0. Решение г, удовлетворяющее неравенству 0,5 < г < 1, равно Функция f(x) должна удовлетворять особым условиям, которые гарантируют существование истинного минимума на интервале, чтобы можно было использо- использовать поиск минимума функции f(x) методом золотого сечения. Определение 8.3 (унимодальная функция). Функция f(x) является унимо- унимодальной на интервале / = [а; 6], если существует такое единственное число pEl, что A) f(x) убывает на [а,р] B) f(x) возрастает на [р, 6]. А Если известно, что функция f(x) унимодальна на интервале [а;Ь], то можно заменить интервал подынтервалом, на котором функция f(x) принимает мини- минимальное значение. Для поиска методом золотого сечения требуется, чтобы ис- использовались две внутренние точки, с = а + A — г)F — а) и d = а + r(b — а), где г является золотым сечением, о котором упоминалось выше. Эти точки удо- удовлетворяют неравенству а < с < d < b. Условие, что функция f(x) унимодальна, гарантирует, что значения функции /(с) и f(d) меньше, чем тах{/(а),/(Ь)}. Рассмотрим два случая (рис. 8.3). Если /(с) < f(d), то минимум должен находиться на подынтервале [a;d]. За- Заменяем b на d и продолжаем поиск на новом подынтервале. Если f(d) < /(с), то минимум должен находиться на подинтервале [с; 6]. Заменяем а на с и продолжаем поиск. В следующем примере метод нахождения корня сравнивается с поиском методом золотого сечения.
438 Глава 8. Численная оптимизация Если /(с) < f{d), то сжимаем справа и используем [a; d] Если f(d) < f(c), то сжимаем слева и используем [с; Ь] Рис. 8.3. Процесс решения для поиска методом золотого сечения Пример 8.2. Найдем минимум унимодальной функции f(x) — х2 — sin(rr) на интервале [0; 1]. Решение с помощью корня уравнения f'(x) = 0. Метод нахождения кор- корня можно использовать для определения, где производная ff(x) = 2х — cos(x) равна нулю. Так как /'@) = -1 и /'A) = 1,4596977, корень /'(#) находится на интервале [0; 1]. Начиная с точек ро = 0 и pi = 1, в табл. 8.1 приведены все итерации. Если применить метод секущих, то можно получить /'@,4501836) = 0. Вторая производная равна / (х) = 2 + sin(rc), и можно вычислить /"@,4501836) = = 2,435131 > > 0. Таким образом, минимальное значение равно /@,4501836) = = -0,2324656. Решение, найденное методом золотого сечения. Сравниваем на каждом ша- шаге значения функции /(с) и f(d) и принимаем решение продолжать поиск на интервале [a\d\ или [с;Ь]. Некоторые вычисления приведены в табл. 8.2. На 23-й итерации интервал сужается до [а2з; Ьгз] = [0,4501827; 0,4501983] дли- длиной 0,0000156. Тем не менее полезно вычислять значения функции в крайних точках с девятью десятичными знаками (т. е. /(агз) ~ -0,23246558 « /(&2з)); по- Таблица 8.1. Метод секущих для решения f'{x) =2х — cos(x) = 0 к 0 1 2 3 4 5 Рк 0,0000000 1,0000000 0,4065540 0,4465123 0,4502137 0,4501836 2рк -cos(pfc) -1,00000000 1,45969769 -0,10538092 -0,00893398 0,00007329 -0,00000005
8.1. Минимизация функции 439 Таблица 8.2. Поиск минимума функции f(x) = х2 — sin(rc) методом золотого сечения к 0 1 2 3 4 5 6 21 22 23 0,0000000 0,0000000 0,2360680 0,3819660 0,3819660 0,3819660 0,4164079 0,4501574 0,4501730 0,4501827 Ск 0,3819660 0,2360680 0,3819660 0,4721360 0,4376941 0,4164079 0,4376941 0,4501730 0,4501827 0,4501886 dk 0,6180340 0,3819660 0,4721360 0,5278640 0,4721360 0,4376941 0,4508497 0,4501827 0,4501886 0,4501923 ьк 1 0,6180340 0,6180340 0,6180340 0,5278640 0,4721360 0,4721360 0,4501983 0,4501983 0,4501983 f(Ck) -0,22684748 -0,17815339 -0,22684748 -0,23187724 -0,23227594 -0,23108238 * -0,23227594 -0,23246558 -0,23246558 -0,23246558 f(dk) -0,19746793 -0,22684748 -0,23187724 -0,22504882 -0,23187724 -0,23227594 -0,23246503 -0,23246558 -0,23246558 -0,23246558 этому происходит останов алгоритма. Проблемой в использовании метода поиска является то, что функция может быть плоской около минимума. Это ограничи- ограничивает точность, которую можно получить. Метод секущих позволяет найти более точный ответ: ps = 0,4501836. Хотя метод золотого сечения действует медленнее в этом примере, он имеет хорошее, будущее поскольку его можно применять в тех случаях, когда функция f(x) не дифференцируема. ¦ Нахождение экстремальных значений функции /(ж, у) Определение 8.1 легко обобщить для функций от нескольких переменных. Предположим, что /(#, у) определена в области C) R = {(x,y):(x-pJ + (y-qJ<r2}. Функция /(#, у) имеет локальный минимум в точке (р, q), если D) /(р, q) < f(x, у) для каждой точки (я, у) е К Функция /(гг,у) имеет локальный максимум в точке (р,д), если E) /(х, у) < /(р, q) для каждой точки (ж, у) е Я Критерий второй производной для экстремального значения является рбоще- нием теоремы 8.4.
440 Глава 8. Численная оптимизация Теорема 8.5 (критерий второй производной). Предположим также, что функ- функция /(ж, у) и ее первая и вторая частные производные непрерывны в области R. Предположим, что (р, q) E R — критическая точка, в которой и /х(р, q) = 0, и fy(Pi я) — 0- Частные производные высшего порядка используются для определе- определения природы критической точки. (i) Если fxx{p, q)fyy(p, q)-fly(p, q) > 0 и /жх(р, q) > 0, то /(p, q) - локальный минимум функции /. (ii) Если fxx(p, q)fyy(p, q) - fxy(p, q)>0n fxx(p, q) < 0, то /(p, q) - локальный максимум функции /. (iii) Если fxx(p,q)fyy(p,q) - fly{p,<l) < 0, то функция f(x,у) не имеет локаль- локального экстремума в точке (р, q), (iv) Если fxx(Piq)fyy{p,q) - fly{p,q) = 0, этот критерий не является оконча- тельным. 4 Пример 8.3. Найдем минимум функции /(ж, у) = х2 — Ах + у2 — у — ху. Частные производные первого порядка равны F) fxfav) =2x-4-y и fy(x,y) =2y-l-x. Приравняем эти частные производные к нулю и получим систему линейных урав- уравнений G) К) -я + 2у = 1. Решением системы G) будет (ж, у) = C,2). Частные производные второго порядка функции /(ж, у) имеют вид fxx(x, у) = 2, fyy(x, у) = 2 и fxy(x, у) = -1. Легко видеть, что это случай (i) теоремы 8.5, т. е. /xxC,2)/wC,2) - /?,C,2) = 3 > 0 и /ххC,2) = 2 > 0. Следовательно, /(ж, у) имеет локальный минимум /C,2) = —7 в точке C,2). ¦ Метод Нелдера-Мида Симплекс-метод нахождения локального минимума функции от нескольких пе- переменных изобретен Нелдером и Мидом. Для двух переменных симплексом яв- является треугольник, и метод — это схема поиска, который сравнивает значения функции в трех вершинах треугольника. Наихудшая вершина, в которой функ- функция f(x,y) принимает наибольшее значение, отбрасывается и заменяется новой вершиной. Формируется новый треугольник, и поиск продолжается. При этом
8.1. Минимизация функции 441 строится последовательность треугольников (они могут иметь различную фор- форму), значения функции в вершинах которой становятся все меньше и меньше. Уменьшается размер треугольника, и координаты точки минимума найдены. В формулировке алгоритма используется термин "симплекс" (обобщенный ЛГ-мерный треугольник). С его помощью находим минимум функции от N пе- переменных. Он эффективен и компактен при вычислении. Исходный треугольник BGW Предположим, что нужно минимизировать функцию f(x,y). Для начала зада- зададим три вершины треугольника: Vk = (ЗД)У*)> А; = 1, 2, 3. Вычислим значения функции /(#, у) в каждой из трбх точек Zk = 1(хк,Ук)> & = 1,2,3. Упорядочим индексы таким образом, чтобы z\ < z2 < z$. Чтобы запомнить, что В — наилучшая вершина, G — хорошая (следует за наилучшей) и W — нахуцшая вершина, введем обозначения Средняя точка хорошей стороны При построении используется средняя точка отрезка, соединяющего вершины В и G. Находим ее посредством усреднения координат: (9) М = ^4^ = Отражение, использующее точку R Функция убывает при движении вдоль стороны треугольника от вершины W к вершине В так же, как при движении вдоль стороны от вердпины W к G. Следо- Следовательно, существует возможность, что функция /(#, у) принимает наименьшие значения в точках, которые лежат вдали от вершины W на противоположной стороне между вершинами В и G. Выберем для проверки точку R, т. е. точку, полученную путем "отражения" треугольника относительно стороны BG. Чтобы найти Я, сначала определяем среднюю точку М стороны BG. Затем проводим линию от вершины W к М и обозначаем длину полученного отрезка через d. Этот отрезок продолжается через точку М на длину d до точки R (рис. 8.4). Формула для вектора R имеет вид A0) R = М + (М - W) = 2М - W. Расширение, использующее точку Е Если значение функции в вершине R меньше значения функции в вершине W, то выбрано правильное направление в сторону минимума. Возможно, мини- минимум находится несколько дальше, чем точка JR. Поэтому продлим отрезок через
442 Глава 8. Численная оптимизация Рис. 8.4. Треугольник ABGW, средняя точка М и отраженная точка Д для метода Нелдера- Мида Рис. 8.5. Треугольник ABGW, точка R и продолженная точка Е вершины Мийк точке Е. Получится вытянутый треугольник BGE. Точку Е находим, двигаясь на расстояние d вдоль линии, соединяющей вершины М и Я (рис. 8.5). Если значение функции в вершине Е меньше значения функции в вер- вершине Д, значит, найдена лучшая вершина, чем R. Формула для вектора Е имеет вид (И) Е = R + (R - М) = 2R - М. Сжатие, использующее точку С Если значения функции в точках R и W одинаковы, следует проверить дру- другую точку. Возможно, значение функции меньше в точке М, но нельзя заменять вершину W точкой М, так как три точки должны составлять треугольник. Рас- Рассмотрим две средние точки С\ и Сг, которые лежат на отрезках WM и MR соответственно (рис. 8.6). Точку, в которой функция принимает наименьшее зна- значение, обозначаем через С и получаем новый треугольник BGC. Замечание. Выбор между точками С\ и С2 в двумерном случае может показаться неуместным, однако он очень важен для больших размерностей.
8.1. Минимизация функции в 443 Рис. 8.6. Сжатие точки С\ или Сч для метода Нелдера-Мида М Рис. 8.7. Сокращение тре- G угольника к точке В Сокращение по направлению к В Если значение функции в точке С не меньше, чем значение в W, точки G и W следует "стянуть" к точке В (рис. 8.7). Точку G заменяем точкой M,aW~ точкой S, которая является средней точкой на отрезке, соединяющем точки В Логическое решение на каждом шаге Численно эффективный алгоритм будет вычислять функцию только при необ- необходимости. На каждом шаге находим новую вершину, которой заменяем вершину W. После ее нахождения в дальнейшем исследовании не будет необходимости и шаг итерации будет завершен. Логические детали для двумерного случая объяс- объяснены в табл. 8.3. Пример 8.4. Используем алгоритм Нелдера-Мида, чтобы найти минимум функ- функции /(ж, у) = х2 — Ах + у2 — у — ху. Начнем с трех вершин: Vi = @; 0), V2 = A,2; 0,0), Vz = @,0; 0,8). Вычисляем значения функции /(#, у) в вершинах /@; 0) = 0,0, /A,2; 0,0) = -3,36, /@,0; 0,8) = -0,16.
444 Глава 8. Численная оптимизация Таблица 8.3. Логическое решение для алгоритма Нелдера-Мида Если f(R) < f(G), TO выполняем случай (i) {либо отражение, либо растягивание} ИНАЧЕ выполняем случай (ii) {либо сжатие, либо стягивание} BEGIN {Случай (i).} IF f(B) < f(R) THEN замена W на R ELSE Вычисление Е и f(E) IF f(E) < f(B) THEN замена W на Е ELSE замена W на R ENDIF ENDIF END {Случай (i).} BEGIN {Случай (ii).} IF f(R) < }{W) THEN | замена И^най Вычисление С = (W + М)/2 или С = (М + Д)/2 и /(С) IF /(С) < /(W) THEN замена W на С ELSE Вычисление 5 и /E) замена РУ на S замена G на М ENDIF END {Случай (ii).} Следует сравнить значения функции, чтобы определить В, G и W: В = A,2; 0,0), G = @,0; 0,8), W = @; 0). Вершину W = @; 0) следует заменить. Точки Мий имеют координаты B + G М = = @,6; 0,4) и Я = 2М - ТУ = A,2; 0,8). Значение функции f(R) = /A,2; 0,8) = —4,48 меньше значения f{G). Таким образом, приходим к случаю (i). Так как f(R) < f(B), движемся вправо, и нужно построить вершину Е: E = 2R-M = 2A,2; 0,8) - @,6;0,4) = A,8; 1,2). Значение функции f(E) = /A,8; 1,2) = —5,88 меньше значения /(В), и получа- получаем новый треугольник с вершинами Vx = A,8; 1,2), V2 - A,25 0,0), V3 = @,0;0,8). Продолжаем процесс и генерируем последовательность треугольников, которая сходится к решению в точке C; 2) (рис. 8.8). В табл. 8.4 приведены значения функции в вершинах треугольника на различных шагах итерации. Вычисление алгоритма на компьютере продолжается до 33-го шага, когда наилучшей вершиной будут В = B,99996456; 1,99983839), причем f{B) = -6,99999998. Эти значения найдены в примере 8.3 и являются приближениями к /C;2) = —7. Основанием для прекращения итерации до вычисления точки C; 2) является то, что функция плоская около минимума. Значения функции f(B)9 f(G) и f(W) проверены, и найдено, что они все одинаковы (это пример ошибки округления). Алгоритм завершен. ¦
8.1. Минимизация функции 445 Т9 Рис. 8,8. Последовательность треугольников C; 2) для метода Нелдера-Мида }, сходящаяся к точке Таблица 8.4. Значения функции в различных треугольниках из примера 8.4 к 1 2 3 4 5 6 7 8 9 10 Наилучшая точка /A,2; 0,0) = -3,36 /A,8; 1,2) = -5,88 /A,8; 1,2) = -5,88 /C,6; 1,6) = -6,24 /C,6; 1,6) = -6,24 /B,4; 1,6) = -6,72 /C,0; 1,8) = -6,96 /C,0; 1,8) = -6,96 /C,0; 1,8) = -6,96 /C,0; 1,8) = -6,96 Хорошая точка /@,0; 0,8) = /A,2; 0,0) = /C,0; 0,4) = /(/,8; 1,2) = /B,4; 2,4) = /C,6; 1,6) = /B,4; 1,6) = /B,55; 2,05) = /C,15; 2,25) = /B,8125; 2,0375) = -0,16 -3,36 -4,44 -5,88 -6,24 -6,24 -6,72 - 6,7725 - 6,9525 - 6,95640625 Наихудшая i ' /@,0; 0,0) = /@,0; 0,8) = /A,2; 0,0) = /C,0; 0,4) = /A,8; 1,2) = /B,4; 2,4) = /B,4; 2,4) = /B,4; 1,6) = /B,55; 2,05) = /C,15; 2,25) = гочка 0,00 -0,16 -3,36 -4,44 -5,88 -6,24 -6,24 -6,72 - 6,7725 - 6,9525 Минимизация с использованием производных Предположим, что функция f(x) унимодальна на интервале [а; Ь] и имеет един- единственный минимум в точке х = р. Предположим также, что f'{x) определена во всех точках интервала (а;Ь). Начнем с точки ро> лежащей на интервале (а;Ь). Если /;(ро) < 0, точка минимума р лежит справа от точки ро- Если /'(ро) > 0, точка р лежит слева от ро (рис. 8.9).
446 Глава 8. Численная оптимизация Если /'(р0) < О, тор лежит в \po\b] Если /'(р0) > О, то р лежит в [а; ро] Рис. 8.9. Использование /'(ж) для нахождения минимума унимо- унимодальной функции f(x) на интервале [а, Ь] Нахождение минимума методом интервалов Первая задача — получить такие три значения для проверки A2) ро, Pi=Po + h и р2=ро + 2Л, что Предположим, что /'(ро) < 0. Тогда ро < р и следует выбрать длину шага h поло- положительной. Легко найти такое значение h, чтобы три точки в A2) удовлетворяли неравенствам A3). Начнем с h = 1 в формуле A2) (при условии, что а + 1 < Ь). Случай (i). Если выполняются неравенства A3), то шаг определен. Случай (ii). Если /(ро) > /(pi) и /(pi) > /(Р2), то рг < р. Необходимо проверить точки, которые лежат дальше справа. Удваиваем шаг и повторяем процесс. Случай (ш). Если /(ро) </(pi), значит, мы "перепрыгнули" через точку р и h слишком велико. Необходимо проверить значения, ближайшие к точке ро. Уменьшаем шаг в 2 раза и повторяем процесс. Когда /'(ро) > 0, то длину шага h следует выбирать отрицательной и затем рассматривать случаи, подобные (i)-(iii). Нахождение р квадратическим приближением Наконец, есть три точки A2), которые удовлетворяют неравенствам A3). Ис- Используем квадратическое приближение, чтобы найти pmjn, которое является при- приближением к р. Полином Лагранжа, построенный на узлах A2), имеет вид A4) Q{x) = — 2/i2 2/i2
8.1. Минимизация функции 447 Производная Q(x) равна п*\ пЧ \ у°Bх - Pi - Р2) yiBx - ро - рт) , y2Brc-po-pi) A5) Q(x) = —2 -2 + ^ Запишем Qf(x) = 0 в виде Qf(po + hm[n) = 0: hm\n) -р\ -Р2) yiD(pp + /imin) - 2р0 - 2р2) A6) 2/l2 2/l2 + 2/i2 Умножим каждый член в A6) на 2/i2 и объединим члены, содержащие hm{n: -hmin{2y0 - 4yi + 2у2) = УоBро - Pi - Р2)~ - yiDpo - 2р0 - 2р2) + У2Bро ~ Ро - Pi) = = Уо(-ЗЛ) - yi(-4/i) + уй(-Л). Последнее уравнение легко решить относительно /imin: - Зу0 - у2) 4yi - 2у0 - 2у2 Значение pmin = ро + ^min является лучшим приближением к р, чем ро- Поэтому можно заменить ро на рт[п и повторить схему двух описанных выше процессов, чтобы определить новую длину шага h и новое hm[n. Продолжаем итерацию до тех пор, пока не достигнем требуемой точности. Подробная схема реализована в программе 8.3. Метод наискорейшего спуска, или градиентный метод Обратимся к минимизации функции /(X) от N переменных, где X = (х\, ж2, ..., xn). Градиент /(-X") — это вектор (векторная функция), определенный сле- следующим образом: A8) grad/(X) = (/i,/2>...,/*), где частные производные Д = df/dx^ вычисляются в точке -X". Напомним, что градиент A8) указывает направление наибольшей скорости возрастания функции /(-X"). Следовательно, — grad/pf) указывает направление наибольшего убывания. Начнем поиск из точки Ро вдоль линии, проходящей че- через Ро в направлении So = -G/ ||G||, где G = grad/(Po). И тогда придем в точку Рь где находится локальный минимум, когда точка X вынуждена будет попасть на линию X = Pq + tSo- Затем можно вычислить G = grad/(Pi) и двигаться в направлении Si = = — G/ \\G\\. Придем в точку Р2, где находится локальный минимум, когда точка X вынуждена будет попасть на линию X = Pi + tS\. Итерация порождает
448 Глава 8. Численная оптимизация последовательность точек {Pfc}, обладающих свойством /(Ро) > f{P\) > •" У*- > f{Pk) > • " • Если Нт^-юо Рк = Р, то f(P) будет локальным минимумом'1 для f(X). Схема метода градиента Предположим, что последовательность точек Рк получена. Шаг 1. Вычислим градиент G = grad/(Pfc). Шаг 2. Вычислим направление поиска S = —G/ \\G\\. Шаг 3. Определим единственный параметр минимизации Ф(?) = f(Pk + tS) на интервале [0,6], где Ь большое. Это даст значение t = /imjn, где для Ф(?) находится локальный минимум. Соотношение Ф(Лтт) = f{Pk+ + hmmS) показывает, что это минимум для f{X) вдоль выбранной линии X = Рк + hm\nS. Шаг 4. Построим следующую точку P*+i = Рк + hmmS. Шаг 5. Определим критерий останова для минимизации, т. е. достаточно ли близки значения функции f(Pk) и /(Pfc+i) и достаточно ли мало расстояние ||РА+1 - Повторение процесса. Программа 8.1 (поиск минимума методом золотого сечения). Программа предназначена для поиска численного приближения минимума функции f(x) на интервале [а; Ь] методом золотого сечения. Метод применяется, только если функция f(x) унимодальна на интервале [а; Ь]. funct ion[S,Е,G]=golden(f,a,b,delta,epsilon) УоВход - f - функция, вводимая как строка yf} % - а и b - крайние точки интервала 7, - delta - допустимое отклонение для абсцисс 7e - epsilon - допустимое отклонение для ординат 7оВыход - S=(p,yp) - содержит абсциссу р и ординату ур минимума 7о - E=(dp,dy) - содержит грани ошибки для р и ур 7в - G - матрица размера n x 4: k-я строка содержит 7e [ak ck dk bk] ; значения а, с, d и b на к-й итерации rl=(sqrtE)-l)/2; r2=rl~2; h=b-a; ya=feval(f,a); yb=feval(f,b); c=a+r2*h; d=a+rl*h; yc=feval(f,c);
8.1. Минимизация функции 449 yd=*eval(f;d); к=1; A(k)=a;B(k)=b;C(k)=c;D(k)=d; while(abs(yb-ya)>epsilon)I(h>delta) k=k+l; if(yc<yd) b=d; yb=yd; d=c; yd=yc; h=b-a; c=a+r2*h; yc=feval(f,c); else a=c; ya=yc; c=d; yc=yd; h=b-a; d=a+rl*h; yd=feval(f,d); end A(k)=a;B(k)=b;C(k)=c;D(k)=d; end dp=abs(b-a); dy=abs(yb-ya); p=a; if(yb<ya) p=b; yp=yb; end E=[dpdy]; В программах 8.2 и 8.4 требуется, чтобы функция f записывалась, как М-файл. Аргумент функции f должен быть матрицей размера 1 х п. Для иллюстрации рассмотрим запись функции из примера 8.3 в виде М-файла. function z=f(V) z=0; x=V(l); y=VB); z=x.~2-4x+y.-y-x.*y;
450 Глава 8. Численная оптимизация Программа 8.2 (метод минимизации Нелдера-Мида). Программа пред- предназначена для приближенного нахождения локального минимума функции /0&1, #2, • • • 1 xn)> r^e / ~~ непрерывная функция от N действительных перемен- переменных, и задана N + 1 начальная точка V* = (vjb,i, • • • > ^,iv) Для /г = 0, 1,..., N. function[V0,yO,dV,dy]=nelder(F,V,mini,maxl,epsilon,show) '/.Вход - F - функция, вводимая как строка 'F* У. - V - матрица размера 3 х п, содержащая исходный симплекс % - mini & maxl - минимальное и максимальное количество 7, итераций У, - epsilon - допустимое отклонение У, - show == 1 - показывает число итераций (Р и Q) '/.Выход - V0 - вершина для минимума % - уО - значение функции F(VO) У, - dV - размер окончательного симплекса У, - dy - грань ошибки для минимума % - Р - матрица, содержащая итерации вершин У, - Q - массив, содержащий итерации для F(P) if nargin==5, show=0; end [mm n]=size(V); % Последовательность вершин for j=l:n+l Z=V(j,l:n); Y(j)=feval(F,Z); end [mm lo]=min(Y) ; [mm hi]=max(Y); li=hi; ho=lo; for j=l:n+l if(j~=Lo&j~=hi&Y(j)<==Y(li)) li=j; end if(j~=hi&j~=lo&Y(j)>=Y(ho)) ho=j; end end cnt=0; % Начало алгоритма Нелдера-Мида
8.1. Минимизация функции 451 while(Y(hi)>Y(lo)+epsilon&cnt<maxl)|cnt<minl S=zeros(l,l:n); for j=l:n+l S=S+V(j,l:n); end M=(S-V(hi,l:n))/n; R=2*M-V(hi,l:n); yR=feval(F,R); if(yR<Y(ho)) V(hi,l:n)=R; Y(hi)=yR; else E=2*R-M; yE=feval(F,E); V(hi,l:n)=E; Y(hi)=yE; else V(hi,l:n)=R; Y(hi)=yR; end end else if(yR<Y(hi)) V(hi,l:n)=R; Y(hi)=yR; end C=(V(hi,l:n)+M)/2; yC=feval(F,C); C2=(M+R)/2; yC2=feval(F,C2); if(yC2<yC) C=C2; yC=yC2; end if(yC<Y(hi)) V(hi,l:n)=C; Y(hi)=yC; else for j=l:n+l
452 Глава 8. Численная оптимизация Z=V(j,l:n); Y(j)=feval(F,Z); end end end end [mm lo]=min(Y); [mm hi]=max(Y); li=hi; ho=lo; for j=l:n+l if(j~=Lo&j~=hi&Y(j)<=Y(li)) li=j; end if (j ~=hi& j ~=lo&Y ( j ) >=Y (ho)) ho=j; end end cnt=cnt+l; P(cnt,:)=V(lo,:); Q(cnt)=Y(lo); end У» Конец алгоритма Нелдера-Мида '/«Определение размера симплекса snorm=0; for j=l:n+l s=norm(V(j)-V(lo)); if(s>=snorm) snorm=s; end end Q=QJ; V0=V(lo,l:n); yO=Y(lo); dV=snorm; dy=abs(Y(hi)~Y(lo)); if (show==l) disp(P); disp(Q); end
8.1. Минимизация функции 453 Программа 8.3 (поиск локального минимума, использующий квадратич- квадратичное интерполирование). Программа предназначена для нахождения локаль- локального минимума функции f(x) на интервале [а;Ь]. Выбирается начальное при- приближение ро и затем происходит поиск на интервалах [а;ро] и [Ро; Ь]. function [р, ур, dp, dy, Р] =quadmin (f, a, b, delta, epsilon) '/«Вход - f - функция, вводимая как строка >f' Уе - а и b - крайние точки интервала Ув - delta - допустимое значение для абсцисс У, - epsilon - допустимое значение для ординат УвВыход - р - абсцисса минимума Ув - ур - ордината минимума Ув - dp - грань ошибки для р Ув - dy - грань ошибки для ур У, - Р - вектор итераций рО=а; maxj=20; maxk=30; big=le6; err=l; k=l; P(k)=pO; cond=0; h=l; if (abs(pO)>le4),h=abs(pO)/le4;end while(k<maxk&err>epsilon&cond~=5) fl=(feval(f,p0+0.00001)-feval(ffp0-0.00001))/0.00002; if (fl>0),h=-abs(h);end pl=pO+h; p2=pO+2*h; pmin=pO; yO=feval(f,pO); yl=f evaKf.pl); y2=feval(f,p2); ymin=yO; cond=0; 3=0; У.Определение такого h, что yl<yO&yl<y2 while(j <maxj &abs(h)>delta&cond==0) if (yO<=yl), p2=pl; y2=yl; h=h/2;
454 Глава 8. Численная оптимизация pl=pO+h; yl=feval(f,pl); else if(y2<yl), pl=p2; yl=y2; h=2*h; p2=pO+2*h; y2=feval(f,p2); else cond=-l; end end if (abs (h) >big I abs (pO) >big) , cond=5; end end if(cond==5), pmin=pl; ymin=feval(f,pl); else '/«Квадратичное интерполирование для нахождения ур d=4*yl-2*y0-2*y2; if(d<0), hmin=h*D*yl-3*yO-y2)/d; else hmin=h/3; cond=4; end pmin=pO+hmin; ymin=feval(f,pmin); h=abs(h); hO=abs(hmin); hl=abs(hmin-h); h2=abs(hmin-2*h); '/«Определение величины следующего h if(hO<h),h=hO;end if(hl<h),h=hl;end if(h2<h),h=h2;end if(h==0),h=hmin;end if(h<delta),cond=l;end if (abs(h)>bigIabs(pmin)>big),cond=5;end '/«Критерий останова для минимизации eO=abs(yO-ymin);
8.1. Минимизация функции 455 el=abs(yl-ymin); e2=abs(y2-ymin); if(eO~=O к eO<err) ,err=eO;end if(el~=O к eKerr) ,err=el;end if(e2~=0 к 2<err) ,err=e2;end if(eO~=O & el==O к e2==0) ,error=0;end if(err<epsilon),cond=2;end pO=pmin; k=k+l; P(k)=pO; end if(cond==2&h<delta),cond=3;end end p=pO; dp=h; yp=feval(f,p); dy=err; В программе 8.4 требуется, чтобы функция f записывалась, как М-файл. До- Дополнительно поиск направления — grad// ||grad/|| необходимо записывать, как М-файл. Для иллюстрации рассмотрим функцию / из примера 8.3, где градиент / равен Bх — 4 — у, 2у — 1 — х). Соответствующий М-файл для этой функции / имеет следующий вид: function z=G(V) z=zeros(l,2); x=V(l);y=VB); g=[2x-4-y 2*y-l-x]; z=-(l/norm(g))*g; Программа 8.4 (метод наискорейшего спуска или градиентный метод). Программа презназначена для нахождения численного приближения локаль- локального минимума /(-X"), где / — непрерывная функция от N действительных переменных и X = (a?i,a?2>. • • >ялг), начиная с одной точки Ро и применяя градиентный метод. f unct ion [РО, уО, err] =grads (F, G, РО,maxl, delta, epsilon, show) '/Вход - F - функция, вводимая, как строка >F> Ув - G = — (l/norm(gradF)) * gradF; выбор направления У. вводится, как строка *G} X - РО - начальная точка X - maxl - максимальное число итераций X - delta - допустимое отклонение для hmin в единственном X параметре минимизации в выбранном направлении
456 Глава 8. Численная оптимизация У, - epsilon - допустимое отклонение для ошибки в уО У, - show; если show==l, итерации выводятся на дисплей '/Выход - РО - точка минимума 7в - уО - значение функции F(PO) Ув - err - грань ошибки для уО Ув - Р - вектор, содержащий итерации if nargin==5,show=0;end [mm n]=]size(P0); maxj=10; big=le8; h=l; P=zeros(maxj,n+l); len=norm(P0); yO=feval(F,PO); if (Ien>e4),h=len/le4;end err=l;cnt=0;cond=0; P(cnt+l,:)=[P0 yO]-; while (cnt<maxl&cond~=5& (h>delta I err>epsilon)) УвВычисление направления поиска S=feval(G,PO); УеНачало выбора параметра квадратичной минимизации Pl=PO+h*S; P2=P0+2*h*S; yl=feval(F,Pl); y2=feval(F,P2); cond=0;j=0; while(j<maxj&cond==0) len=norm(P0); if (yO<yl) P2=P1; y2=yl; h=h/2; Pl=PO+h*S; yl=feval(F,Pl); else if(y2<yl) P1=P2; yl=y2; h=2*h; P2=P0+2*h*S; y2=feval(F,P2); else cond=~l; end
8.1. Минимизация функции 457 end if(h<delta),cond=l;end if(abs(h)>bigIlen>big),cond=5;end end if(cond==5) Pmin=Pl; ymin=yl; else d=4*yl-2*yO-2*y2; if(d<0) hmin=h*D*y1-3*yO-y2)/d; else cond=4; hmin=h/3; end •/Построение следующей точки Pmin=PO+hmin*S; ymin=feval(F,Pmin); '/Определение величины следующего h hO=abs(hmin); hl=abs(hmin-h); h2=abs(hmin-2*h); if(hO<h),h=hO;end if(hl<h),h=hl;end if(h2<h),h=h2;end if(h==0),h=hmin;end if(h<delta),cond=l;end •/Критерий останова для минимизации eO=abs(yO-ymin); el=abs(yl-ymin); e2=abs(y2-ymin); if (eO~=O&eO<err) ,err=eO;end if (el~=0&el<err) ,err=el;end if (e2~=0&e2<err), err=e2; end if(e0==0&el==0&e2==0),err=0;end if(err<epsilon),cond=2;end if(cond==2&h<delta),cond=3;end end cnt=cnt+l; P(cnt+1,:)=[Pmin ymin]; P0=Pmin;
458 Глава 8. Численная оптимизация yO=ymin; end if(show==l) disp(P); end Упражнения к разделу 8.1 1. Используйте теорему 8.1, чтобы определить, где каждая из следующих функ- функций возрастает и где убывает. (a) f(x) = 2хг - 9х2 + 12я - 5 (b) f(x) = x/{x + l) (c) f(x) = (x + l)/x (d) f(x) = x* 2. Используйте определение 8.3, чтобы показать, что следующие функции уни- унимодальны на интервале. (a) /(я) = а;2-2я + 1;[0;4] (b) /(aO = coe(a?);[0;3] (c) f(x)=x*;[l;10] (d) f(x) = -xC-x)W;[0;3] 3. Воспользуйтесь теоремами 8.3 и 8.4 по возможности, чтобы найти все локаль- локальные минимумы и максимумы каждой из следующих функций на заданном интервале. (a) f(x) = 4я3 - 8х2 - Их + 5; [0; 2] (b) /(s)=* + 3/s2;[0,5;3] (c) f(x) = (х + 2,5)/D - х2); [-1,9; 1,9] (d) /(я) = е7*2;[0,5;3] (e) f(x) = - sin(rc) - sinCs)/3; [0; 2] (f) f(x) = -2 sin(x) + sinBz) - 2sinCx)/3; [1; 3] 4. Найдите на параболе у = ж2 точку, которая ближе всех к точке C; 1). 5. Найдите на кривой у = sin(:r) точку, которая ближе всех к точке B; 1). 6. Найдите на окружности х2 + у2 = 25 самую дальнюю от хорды АВ точку (точки), если А = C; 4) и В = (-1, у/7А). 7. Воспользуйтесь теоремой 8.5, чтобы найти локальный минимум каждой из следующих функций. (a) f(x,y) = xs + y3-3x-3y + 5 (b) f{x,y)=x2+y2 + x-2y-xy + l
8.1. Минимизация функции 459 (c) /(я, у) = х2у + ху2 - Зху (d) f{x,y) 2 * (e) /(Ж,у) (Параболический желоб Розенброка; ок. 1960 г.) 8. Пусть В = B; -3), G = A; 1) и W = E; 2). Найдите точки М, Я и JE7 и сделайте наброски треугольников, которые они включают. 9. Пусть В = (-1; 2), G = (-2; -5) и W = C; 1). Найдите точки М,ДиЕ и сделайте наброски треугольников, которые они включают. 10. Приведите схему доказательства, что М = (В + С?)/2 — средняя точка отрезка, соединяющего точки В и G. 11. Дайте схему доказательства формулы A0). 12. Дайте схему доказательства формулы A1). 13. Дайте схему доказательства, что медианы любого треугольника пересекаются в точке, которая делит расстояние от каждой вершины до средней точки противоположной стороны в отношении ^ и |. 14. Пусть В = @; 0; 0), G = A; 1; 0), Р = @; 0; 1) и W = A; 0; 0). (a) Сделайте набросок тетраэдра BGPW. (b) Найдите M = (B + G + P)/3. (c) Найдите R = 2М — VT и сделайте набросок тетраэдра BGPR. (d) Найдите ?7 = 2R — Ми сделайте набросок тетраэдра BGPE. 15. Пусть В = @;0;0), G = @;2;0), Р = @; 1; 1) и ТУ = B; 1;0). Выполните пункты упр. 14. Алгоритмы и программы 1. Воспользуйтесь программой 8.1, чтобы найти локальный минимум каждой функции из упр. 3 с точностью до восьми десятичных знаков. 2. Воспользуйтесь программой 8.3, чтобы найти локальный минимум каждой функции из упр. 3 с точностью до восьми десятичных знаков. Начните со средней точки заданного интервала. 3. Воспользуйтесь программой 8.2, чтобы найти минимум каждой функции из упр. 7 с точностью до восьми десятичных знаков. Возьмите в качестве на- начальных следующие вершины. (а) A;2),B;0)иB;2) (Ь) @;0), B;0) и B; 1) (с) @;0),B;0)иB;1) (d) @;0), @; 1) и A; 1) (e) @;0),A;0)и@;2)
460 Глава 8. Численная оптимизация ' 4. Воспользуйтесь программой 8.4, чтобы найти минимум каждой функции из \ упр. 7 с точностью до восьми десятичных знаков. Используйте исходные <¦ вершины. (а) A;2) (Ь) @;0,3) (с) (ОД; ОД) (d) @,5; ОД 1) (е) @;0) 5. В программе 8.4 координаты итераций х и у хранятся соответственно в пер- первых двух столбцах матрицы Р. Модифицируйте программу 8.4 таким образом, чтобы она могла построить графики координат х и у Е итераций в одной и той же системе координат. Указание. Включите в свою программу команду plot(P(: ,1),P(:,2),'.J). Проверьте работу программы на функциях из упр. 7. 6. Используйте программу 8.2, чтобы найти локальный минимум каждой из следующих функций с точностью до восьми десятичных знаков. (a) /(#; у; z) = tx2 + 2у2 + z2 - 2ху + yz-7y-4z Начните с A; 1; 1), @; 1; 0), A; 0; 1) и @; 0; 1). (b) f{x\y\z\u) = 2(x2 + ij2 + z2 + u2)-x(y + z-u)+yz-Zx-8y-5z-9u Начните поиск вблизи точки A; 1; 1; 1). (c) f(x; у; z] u) = xyzu + - + -H Ь - х у z и Начните поиск вблизи точки @,7; 0,7; 0,7; 0,7). 7. Воспользуйтесь программой 8.4, чтобы найти локальный минимум каждой из функций задачи 6. Используйте начальные значения около одной из заданных вершин. 8. Воспользуйтесь программой 8.1 и/или 8.3, чтобы найти все максимумы и минимумы указанной функции на интервале [0; 2]. ж3 + ж2 - 12:г - 12 - За;5 - 4х4 + 9х2 + 12ж - 18 9. Найдите точку на поверхности z = х2 + у2, ближайшую к точке B; 3; 1). 10. У компании есть пять фабрик, А, В, С, D и Е, расположенных в точках A0; 10), C0; 50), A6,667; 29), @,555; 29,888) и B2,2221; 49,988) соответ- соответственно на площади ху. Предположим, что расстояние между двумя точками задает расстояние в милях между фабриками. Компания планирует построить склад в некоторой точке. Ожидается, что в среднем в течение недели должно быть 10, 18, 20, 14 и 25 поставок на фабрики А, В, С, D и Е соответственно. Покажите, как минимизировать еженедельное число пройденных миль для поставок, где следует расположить склад? 11. Где в задаче 10 следует расположить склад, если соответствующий район ограничен? Следует ли расположить его в точке на кривой у = х2!
9 Решение дифференциальных уравнений Дифференциальные уравнения находят применение в математическом модели- моделировании в науке и технике. Часто аналитическое решение неизвестно и требуется численное приближение. Для иллюстрации рассмотрим динамику рост численно- численности населения и нелинейную систему, которая является модификацией уравнений Лотка-Вольтерра (Lotka-Volterra): 1 х1 = /(*, ж, у) = х-ху- —х 10 у1 = g(t, х,у)=ху-у- —у2, с начальными условиями х@) = 2 и у@) = 1 для 0 < t'< 30. Несмотря на то что численное решение — это таблица чисел, она полезна для построения графи- графика многоугольного пути, соединяющего точки {(ж*,у*)}, и графика траектории, 1,5 1,0 0,5 0,0 0,5 1,0 1,5 2,0 Рис. 9.1. Траектория нелиней- нелинейной системы дифференциаль- дифференциальных уравнений х' = f(t,x,y) и у' =g(t,x,y) 461
462 Глава 9. Решение дифференциальных уравнений который показан на рис. 9.1. В этой главе рассмотрены стандартные методы ре- решения обыкновенных дифференциальных уравнений, систем дифференциальных уравнений и краевых задач. 9.1. Введение в теорию дифференциальных уравнений Рассмотрим уравнение A) I-1--- Это дифференциальное уравнение, так как оно содержит производную dy/dt "неизвестной функции" у = y(t). В его правой части содержится только незави- независимая переменная t; следовательно, решением является первообразная функции 1 — е~г. Чтобы найти y(t), можно использовать правила интегрирования: B) y{t) = t + e"' + С, где С — постоянная интегрирования. Все функции из B) являются решениями уравнения A), потому что удовлетворяют требованию yf(t) = 1 — е~*. Они обра- образуют семейство кривых (рис. 9.2). Техника интегрирования использовалась для нахождения явной формулы для функций в B), и на рис. 9.2 подчеркивается, что существует одна степень свободы, содержащаяся в уравнении, т. е. постоянная интегрирования С. Изменяя значение С, можно "сдвигать кривую, представляющую решение", вверх или вниз и можно найти такую кривую, которая будет проходить через любую требуемую точку. Все- Всемирные тайны редко наблюдаются в виде явных формул. Напротив, приходится С=2 С=1 -2 - Рис. 9.2. Семейство кривых, представляющих ре- решения y(t) = t + e"f + C
9.1. Введение в теорию дифференциальных уравнений 463 постоянно определять, как изменение одной переменной влияет на другую. Если построить математическую модель, то в результате получится уравнение, включа- включающее скорость изменения неизвестной функции и независимой и/или зависимой переменной. Рассмотрим температуру y(t) охлаждающегося предмета. Можно догадаться, что скорость изменения температуры тела зависит от разности между его тем- температурой и температурой окружающей среды. Эксперимент подтверждает это предположение. Закон Ньютона об охлаждении утверждает, что скорость изме- изменения температур прямо пропорциональна их разности. Если А — температура окружающей среды и y(t) — температура тела в момент ?, то C) ^ = -к(у-А), где к — положительная постоянная. Отрицательный знак требуется потому, что dy/dt будет отрицательно, когда температура тела выше температуры среды. Если известна температура предмета в момент t = 0, то это называется на- начальным условием и такая информация включается в постановку задачи. Обычно говорят "Решить уравнение D) 4? = _*(„_ А) с у@) = 2/о. Чтобы найти решение, можно использовать технику разделения переменных E) у = А + (уо-А)е-кК Для каждого выбранного уо существует кривая, соответствующая решению, и не существует простого способа повернуть одну кривую, чтобы получить другую. Начальное значение является точкой, к которой требуемое7 решение "приколоче- "приколочено". Некоторые кривые, соответствующие решению, показаны на рис. 9.3, и можно наблюдать, что, когда t становится большим, температура предмета приближается к температуре окружающей среды. Если уо < Д тело нагревается вместо того, чтобы остывать. Задача Коши Определение 9.1. Решением задачи Коши F) !/ = /(*, У) с y(to)=yo на интервале [to; Ь] является такая дифференцируемая функция у = y(t), которая удовлетворяет условиям G) у(*о) =2/о и y\t) = /(*, y{t)) для всех 16 [*о; Ч- А Заметим, что кривая, соответствующая решению у = y(t), должна проходить через начальную точку (?о>Уо)-
464 Глава 9. Решение дифференциальных уравнений Рис. 9.3. Кривые, соответству- соответствующие решению у = А + (уо - t — A)e~kt, для закона охлажде- охлаждения (и нагревания) Ньютона Геометрическая интерпретация В каждой точке (?,у) прямоугольной области R = {(t,y) : a <t <b, c<y < < d} тангенс угла наклона соответствующей решению кривой у = y(t) мож- можно найти, используя неявную формулу т = f{t,y(t)). Следовательно, значения niij = f(ti,yj) можно вычислить по всему прямоугольнику и каждое значение rriij представляет тангенс угла наклона касательной к кривой, соответствующей решению, которая проходит через точку (U,yj). Поле тангенсов угла наклона или поле направлений поля является диаграммой, которая задает тангенсы угла наклона {rriij} в области. Это можно использовать, чтобы отчетливо представить себе, как кривая, являющаяся решением, "подго- "подгоняется" ограничением на тангенс угла наклона. Чтобы двигаться вдоль кривой, являющейся решением, следует отправиться из начальной точки и проверить тан- тангенс угла наклона поля, чтобы определить, в каком направлении двигаться. Затем следует сделать малый шаг от точки to к to + h по горизонтали и переместиться по вертикали на расстояние /г/(^о5Уо) таким образом, чтобы окончательное пере- перемещение имело требуемый тангенс угла наклона. Следующую точку на кривой, соответствующей решению, обозначим через (?i,2/i). Повторим процесс, чтобы продолжить путешествие вдоль кривой. Так как используется конечное число ша- шагов, метод приводит к приближенному решению. Пример 9.1. Тангенс угла наклона поля для уравнения у1 = (t — y)/2 на пря- прямоугольнике R = {(?, у) : Q < t < 5,0 < у < 4} показан на рис. 9.4. Кривые, соответствующие решению, со следующими начальными значениями приведены ниже. 1. Для у@) = 1 решением будет y(t) = Зе"*/2 - 2 + L 2. Для 2/@) = 4 решением будет y(t) = 6е~*/2 -2 + 1 ¦
9.1. Введение в теорию дифференциальных уравнений у 465 Рис. 9.4. Поле тангенсов угла наклона для дифференциально- j t го уравнения у' = f(x,y) = 5 f=(t-y)/2 Определение 9.2. Задан прямоугольник R = {(?,у) : а < t < Ь, с < у < d]. Предположим, что функция f(t,y) непрерывна на R. Говорят, что функция / удовлетворяет условию Липшица по переменной у на R, если существует такая постоянная L > 0, что (8) 1Жш)-ЖЫ1<Ь|У1-У2| всякий раз, когда (t,yi), (?, 2/2) € Я- Постоянную L называют постоянной Лип- Липшица для функции /. А Теорема 9.1. Предположим, что /(?, у) определена в области R. Если существует такая постоянная L > 0, что (9) \fy{t, y)\<L для всех (t,у) € Я, то функция / удовлетворяет условию Липшица по переменной у с постоянной Липшица L на прямоугольнике R. Доказательство. Зафиксируем t и используем теорему о среднем значении, что- чтобы получить такое число с\9 у\ < с\ < j/2, что ~ 1/21 < Теорема 9.2 (существование и единственность). Предположим, что функция /(?, у) непрерывна в области R = {(?, у) : to<t<b, c<y<d}. Если / удовлетворяет на R по переменной у условиям Липшица и (*о,уо) € -Я» то задача Коши F), у' = f(t,y) с у(?о) = Уо> имеет единственное решение у = у(?) на некотором подынтервале to < t < to + 6. Доказательство. См. литературу по дифференциальным уравнениям, напри- например [38]. •
466 Глава 9. Решение дифференциальных уравнений Применим теоремы 9.1 и 9.2 к функциям /(?, у) = (t — у)/2. Частная произ- производная равна fy(t, у) = -1/2. Следовательно, \fy{t,у)\ < \ и согласно теореме 9.1 постоянная Липшица равна L = ^. Поэтому по теореме 9.2 задача Коши имеет единственное решение. Схему поля тангенсов угла наклона к кривой, соответствующей решению, можно построить с помощью команд MATLAB meshgrid и quiver. Следую- Следующий М-файл строит диаграмму аналогичную изображенной на рис. 9.4. В общем случае следует побеспокоиться, чтобы избежать точек (t\ у), в которых у1 не опре- определена. [t,y]=meshgrid(l:5,4:-l:l); dt=onesE,4); dy=(t-y)/2; quiver(t,y,dt,dy); hold on x=0:.01:5; zl=3*exp(-x/2)-2+x; z2=6*exp(-x/2)-2+x; plot(x,zl,x,z2) hold off Упражнения к разделу 9.1 В упр. 1-5 выполните следующее. (a) Покажите, что y(t) является решением дифференциального уравнения, под- подставив y(t) и у'(?) в дифференциальное уравнение y'(t) = f(t,y(t)). (b) Воспользуйтесь теоремой 9.1, чтобы найти постоянную Липшица L для прямоугольника R = {(?, у) : 0 < t < 3,0 < у < 5}. 1. у; = t2 - у, y(t) = Се~г + t2-2t + 2 2. у1 = Зу + 3*, y(t) = Ce3t - * - | 3. у' = -ty, y(t) = Ce~t2/2 4. y' = e^24 - 2y, y{t) = Ce^2t + te"* В упр. 6-9 постройте диаграмму поля тангенсов угла наклона m^ = }{t^yj) на прямоугольнике Л = {(?,у) : 0 < t < 4,0 < у < 4} и укажите кривую, соответ- соответствующую решению, в той же системе координат. 6. у' = -t/y9 y(t) = (С -12I/2 для С = 1, 2, 4, 9 7. у1 = */у, y(t) = (С +12I'2 для С = -4, -1, 1, 4
9.1. Введение в теорию дифференциальных уравнений 467 8. у' = 1/у, y(t) = (С + 2*I'2 для С = -4, -2, 0, 2 9. у' = у2, y(t) = 1/(С -1) для С = 1, 2, 3, 4 10. Здесь приведен пример, когда задача Коши имеет "два решения": у' = \yllz с у@) = 0. (a) Проверьте, что y(t) = 0 является решением для ? > 0. (b) Проверьте, что y(t) = ?3/2 является решением для t > 0. (c) Противоречит ли это теореме 9.2 и почему? 11. Рассмотрите задачу Коши (a) Проверьте, что y(t) = sin(t) является решением на интервале [0; тг/4]. (b) Определите наибольший интервал, на котором решение существует. 12. Покажите, что определенный интеграл §af(t)dt можно вычислить, решив задачу Коши у1 = f(t) для а < t < b с у(а) = 0. В упр. 13-15 найдите решение задачи Коши. 13. y/ = 3t2 + sin(*),y@) = 2 14. У' = т^, у@) = 0 15. у' = е~г /2, у@) = 0. Указание. Ответ должен быть выражен в виде опреде- определенного интеграла. , 16. Рассмотрите дифференциальное уравнение первого порядка y'(t)+p(t)y(t)=q(t). Покажите, что решение в общем виде y(t) можно найти, используя два спе- специальных интеграла. Сначала определим F(t) следующим образом: Затем определим y(t) как Указание. Продифференцируйте произведение F(t)y(t).
468 Глава 9. Решение дифференциальных уравнений 17. Рассмотрим распад радиоактивного вещества. Если y(t) — количество веще- вещества на момент t, то y(t) убывает и экспериментально показано, что скорость изменения y(t) пропорциональна количеству нераспавшегося вещества. Сле- Следовательно, задача Коши для распада радиоактивного вещества имеет вид у1 = -ку с у@) = од- (a) Покажите, что решением будет y(t) = yoe~kt. (b) Период полураспада радиоактивного вещества — это время, которое тре- требуется для распада половины начального количества вещества. Пери- Период полураспада 14С равен 5 730 годам. Найдите формулу y(t), которая определит количество 14С в момент t. Указание. Найдите такое fc, что уE730) = О352/о. (c) Проанализирован кусок древесины и обнаружено количество 14С, равное 0,712 того количества, которое присутствовало в живом дереве. Насколь- Насколько постарел образец древесины? (d) В наличии имеется 10 мг радиоактивного вещества. Через 23 с остался только 1 мг. Чему равен период полураспада вещества? В упр. 18 и 19 найдите уравнение для задачи Коши и решите его. 18. Предполагается, что выручка от продажи ежегодных билетов новым чле- членам лиги футболистов возрастает со скоростью, пропорциональной разности между выручкой от продажи на момент времени t и верхней гранью, равной $300 млн. Предположим, что вначале выручка от продажи ежегодных биле- билетов равна $0 и через 3 года (или роспуска лиги) должна составлять $40 млн. Основываясь на этих предположениях, определите, как скоро выручка от продажи ежегодных билетов достигнет $220 млн? 19. Объем новой библиотеки равен 5 млн кубических футов A фут = 30,48 см). Свежий воздух поступает в библиотеку по вентиляционной системе со ско- скоростью 45 000 кубических футов в минуту. Перед запуском вентиляционной системы процент двуокиси углерода внутри библиотеки и свежего возду- воздуха снаружи составлял 0,4 и 0,5% соответственно. Определите процентное содержание двуокиси углерода в библиотеке через 2 часа после запуска вен- вентиляционной системы. 9.2. Метод Эйлера Можно заверить читателя, что не все задачи Коши имеют явное решение и часто невозможно найти формулу для решения y(t) например, не существует "выраже- "выражения в замкнутой форме" для решения уравнения у1 = t3 + у2 с у@) = 0. Таким
9.2. Метод Эйлера 469 образом, в науке и технике необходимо иметь методы получения приближенно- приближенного решения. Если требуется решение с большим количеством значащих цифр, то следует приложить больше вычислительных усилий и использовать усложненный алгоритм. Первый подход называется методом Эйлера и годится для иллюстрации по- понятий, включенных в методы повышенной сложности. Он имеет ограниченное применение из-за большой ошибки накапливаемой в процессе вычислений. Тем не менее его важно изучить, потому что анализ ошибок этого метода просто для понимания. Пусть [а;Ь] - интервал, на котором требуется найти решение корректно по- поставленной задачи Коши у' = /(?, у) с у(а) = уо- В действительности не бу- будем находить дифференцируемую функцию, которая удовлетворяет задаче Коши. Вместо этого сгенерируем семейство точек {{t^yk)} и используем их для при- приближения (т. е., y{tk) ~ у*)- Как следует поступить, чтобы построить "семейство точек", которые будут "приближенно удовлетворять дифференциальному уравне- уравнению"? Сначала выберем абсциссы точек. Для удобства разделим интервал [а; 6] на М одинаковых подынтервалов и выберем точки A) tk = a + kh для к = 0, 1, ..., М, где h= ——. Значение h называется длиной шага. Сейчас найдем приближенное решение за- задачи B) у = /(*,у) на [to,tM] с y(t0) = у0. Предположим, что у(?), y'(t) и y"{t) непрерывны, и используем теорему Тей- Тейлора, чтобы разложить функцию y(t) в окрестности точки t = to. Для каждого значения t существует такое с\9 которое лежит между ?о и t, что C) y(t) = y(t0) + y'(to)(t - t0) + Если у'(^о) = /(*сь y(to)) и h = t\—to подставим в уравнение C), то в результате получим выражение для y{t\): D) y(h) = y(t0) + Л/(* («)) + "Ы Если длина шага h выбрана достаточно малой, то членом второго порядка (включая h2) можно пренебречь и получить E) i/i = Уо которое и является приближением Эйлера.
470 Глава 9. Решение дифференциальных уравнений; Повторяем процесс и генерируем последовательность точек, которые прибли- приближают кривую, являющуюся решением, у = y(t). Общим шагом метода Эйлера является F) tk+x = tk + h, yk+i = yk + hf{tk, Ук) Для к = 0, 1, ..., М - 1. Пример 9.2. Используем метод Эйлера для приближенного решения задачи Коши G) yf = Ry на [0; 1] с у@) = уо и постоянной R. Длина шага должна быть уже выбрана. Затем следует выбрать вторую фор- формулу в F) для вычисления ординат. Иногда эту формулу называют разностным уравнением, и в таком случае она имеет вид (8) yk+l = yk(l + hR) для * = 0, 1, ..., Af-1. Если записать рекуррентные решения, то увидим, что 2/2 = yi(l + ЛЯ) = УоA + hRJ, (9) Ум = Ум-х{1 + hR) = уоA + hR)M. Для большинства задач не существует явной формулы для нахождения ре- решения в точках, и каждую новую точку следует вычислять последовательно за предыдущей точкой. Однако в решении задачи Коши G) нам помогла счастливая случайность; метод Эйлера имеет явное решение A0) tk = kh yk = y0{l-hR)k для * = 0, 1, ..., М. Формулу A0) можно рассматривать как формулу "сложных процентов", и при- приближение Эйлера дает значение вклада в банке в будущем. ¦ Пример 9.3. Предположим, вклад составляет $1000 и начисляется сумма, со- соответствующая 10% от вклада за год непрерывно в течение 5 лет. Какова будет сумма вклада к концу пятого года? Используем приближение Эйлера с h = 1, ^ и <щ, чтобы приблизить уE) для задачи Коши: у' = 0.1у на [0,5] с у@) = 1000. Вычисления по формуле A0) с R = 0,1 приведены в табл. 9.1. ¦
9.2. Метод Эйлера 471 Таблица 9.1. Сложные проценты для примера 9.3 Длина шага, h 1 Г2 1 360 Количество итераций, М 5 60 1800 Приближение к уE), ум 1000 fl + Ь±\ =1610,51 / \60 1000 fl + ^-J =1645,31 • \ 1800 1000 A + ^ ) = 1648,61 V збо У Подумаем о различных значениях у$, j/бо и ушо* которые использовались, что- чтобы определить сумму вклада через 5 лет. Эти значения получены при различной длине шага и отражают усилия при вычислении приближений к у E). Решением задачи Коши будет уE) = 1000е0M = 1648,72. Если не использовать замкнутую форму решения A0), то потребуется 1800 итераций метода Эйлера для получения значения yieoo и при этом будет получено только пять точных цифр в ответе! Если банкиры захотят получить приближенное решение задачи Коши G), то они смогут выбрать метод Эйлера из-за явного вида формулы A0). Более усложненные методы нахождения приближенного решения у* не имеют формул в явном виде, но они потребуют меньше вычислительных усилий. Геометрическое изображение Если начать в точке (?о;уо)> вычислять значение тангенса угла наклона то = = /(to; уо), двигаться по горизонтали на величину h и по вертикали на величину ^/(^о;уо)> а затем двигаться вдоль касательной к y(t), то можно прийти к точке (*1; У\) (рис. 9.5). Заметим, что (ti; y\) не лежит на требуемой кривой, соответству- соответствующей решению! Однако это то приближение, которое необходимо сгенерировать. Затем следует использовать (*i;j/i), как будто оно точное, продолжить вычисление тангенса угла наклона т\ = /(ii;yi) и использовать его, чтобы получить следу- следующее перемещение по вертикали hf(t\;yi) для определения положения точки (*2;У2),ит. д. Влияние длины шага на ошибку Методы, которые здесь рассматриваются для приближенного решения задачи Коши, называются разностными методами или методами дискретной пере- переменной. Решение является приближением на совокупности дискретных точек, называемых точками (или узлами) сетки. Обычный одношаговый метод имеет вид уь+i = уk + h$(tk,yk)> где Ф — некоторая функция, называемая функцией приращений.
472 Глава 9. Решение дифференциальных уравнений 0,0 0,5 1,0 1,5 2,0 2,5 3,0 Рис. 9.5. Приближение Эйлера Ук_г = ук + hf(tk,yk) Если для приближенного решения задачи Коши используется метод дискретной переменной, то существует два источника ошибки: дискретизация и округление. Определение 9.3 (ошибка дискретизации). Предположим, что {(^, Ук)}^-о ~" множество точек дискретного приближения и что у = y(t) — единственное реше- решение задачи Коши. Общая ошибка дискретизации е* определяется выражением (И) = y(tk) ~Ук Для к = 0, 1, ..., М. Она равна разности между единственным решением и решением, полученным методом дискретной переменной. Локальная ошибка дискретизации e^+i определяется выражением A2) €*+1 = y(tk+i) -ук- ЛФ(**, У*) Для к = 0, 1, ..., М - 1. Она является ошибкой, совершенной в результате одного шага от tk к Если получены формулы F) для метода Эйлера, то для каждого шага членом, которым можно пренебречь, будет y^2\ck){h2/2). Если это будет единственная ошибка на каждом шаге, то к концу интервала [а; 6] после М шагов накопленная ошибка будет составлять ) = Ошибка может быть больше, но преобладает такая оценка. Детально эта тема рассматривается в книгах повышенной сложности по численным методам для дифференциальных уравнений (например, в [75]).
9.2. Метод Эйлера 473 Теорема 9.3 (точность метода Эйлера), Предположим, что y(t) — решение задачи Коши, заданной выражением B). Если y(t) G С2[?о;Ь] и {(*A:?yfc)}jfelo ~~ последовательность приближений, сгенерированная методом Эйлера, то Ошибка в конце интервала называется окончательной общей ошибкой (О.О.О.): A4) E(y(b),h) = \y(b)-yM\ = O(h). Замечание. Окончательную общую ошибку E(y(b),h) используют для изучения поведения ошибки при различной длине шагов. Ее также можно использовать, чтобы дать представление о том, насколько много вычислений следует выполнить для получения точного приближения. В примерах 9.4 и 9.5 иллюстрируются понятия теоремы 9.3. Если приближения вычислены с шагами, равными h и /&/2, то получим A5) E(y(b)9h)**Ch для шага большей длины и A6) Е (у(Ъ), ?) « cf = \ch « \е(У(Ъ), h). Таким образом, идея теоремы 9.3 состоит в том, что если длину шага в методе Эйлера уменьшить в 2 раза, то можно ожидать, что полная окончательная общая ошибка сократится в 2 раза. Пример 9.4. Воспользуемся методом Эйлера для решения задачи Коши !/ = -^ на Сравним решения для шагов h = 1, ^, \ и ^. На рис. 9.6 показаны графики четырех решений методом Эйлера и кривая, соответствующая точному решению, y{t) = Зе~*/2 — 2 +1. В табл. 9.2 приведены значения в выбранных абсциссах для четырех решений. Для шага, равного h = = 0,25, вычисления имеют вид Уг = 1,0 + 0,25 ( ' ~ v J = 0,875, у2 = 0,875 4- 0,25 f°'25-^875\ = 0,796875, и т. д. Итерация продолжается до тех пор, пока не достигнет последнего шага: 0C) w yi2 = 1,440573 + 0,25 B??5 ~ 1>44Q573 J = 1,604252. ¦
474 Глава 9. Решение дифференциальных уравнений 1,5 1,0 0,5 = 1/4 1/2 0,0 0,5 1,0 1,5 2,0 2,5 3,0 Рис. 9.6. Сравнение решений методом Эйлера с шагами различной длины для у' = (t - у)/2 на интервале [0; 3] с начальным условием у@) = 1 Таблица 9.2. Сравнение решений методом Эйлера с шагами различной длины для у' = (*-у)/2на[0;3]су@) = 1 tk 0 0,125 0,25 0,375 0,50 0,75 1,00 1,50 2,00 2,50 3,00 /i = l 1,0 0,5 0,75 • 1,375 /i = ± 1,0 0,75 0,6875 0,765625 0,949219 1,211914 1,533936 Ук 1,0 0,875 0,796875 0,759766 0,758545 0,846386 1,030827 1,289227 1,604252 *=* 1,0 0,9375 0,886719 0,846924 0,817429 0,786802 0,790158 0,882855 1,068222 1,325176 1,637429 Точное y(tk) 1,0 0,943239 0,897491 0,862087 0,836402 0,811868 0,819592 0,917100 1,103638 1,359514 1,669390 Пример 9.5. Сравним окончательную общую ошибку при решении задачи Коши методом Эйлера 2/' = ^ на [0;3] с у@) = 1, с шагом, равным 1, j, . -., gj. В табл. 9.3 приведена окончательная общая ошибка для нескольких длин шагов и показано, что ошибка приближения к уC) уменьшается приблизительно в 2 раза, когда длина шага уменьшается в 2 раза. Легко видеть заключения теоремы 9.3 для
9.2. Метод Эйлера 475 Таблица 9.3. Соотношение между длиной шага и окончательной общей ошибкой для решения у' = (t — у)/2 на [0; 3] с 2/@) = 1 методом Эйлера Длина шага, h 1 1 2 1 4 1 8 ^f 1 32 1 64 Количество шагов, М 3 6 12 24 48 96 192 Приближение к уC), ум 1,375 1,533936 1,604252 1,637429 1,653557 1,661510 1,665459 К.О.О. ошибка при t = 3, УC) - Ум 0,294390 0,135454 0,065138 0,031961 0,015833 0,007880 0,003931 O(h) » Ch, где С = 0.256 0,256 0,128 0,064 0,032 0,016 0,008 0,004 шага наименьшей длины: ), h) = г/C) - ум = O{hl) « CTi, где С = 0,256. Программа 9.1 (метод Эйлера). Программа предназначена для решения за- задачи Коши у1 = /(?, у) с у (а) = у о на интервале [а; Ь] путем вычисления yk) для А; = 0, 1, ..., М - 1. function E=euler(f,a,b,ya,M) '/«Вход - f - функция, вводимая, как строка Jf' 7, - а и b - левая и правая крайние точки У, - у а - начальное условие у (а) У, - М - число шагов •/.Выход - Е=[Т' Y>], где Т - вектор абсцисс и У. Y - вектор ординат h=(b-a)/M; T=zeros(l,M+l); Y=zeros(l,M+l); T=a:h:b; Y(l)=ya;
476 Глава 9. Решение дифференциальных уравнений for j=l:M Y(j+l)=Y(j)+h*feval(f,T(j),Y(j)); end E=[T> Y>]; Упражнения к разделу 9.2 Решите методом Эйлера дифференциальные уравнения в упр. 1-5. (a) Пусть h = 0,2. Сделайте два шага, выполняя вычисления вручную. Пусть затем h = 0,1, и проделайте четыре шага, выполняя вычисления вручную. (b) Сравните точное решение у @,4) с двумя приближениями в п. (а). (c) Согласуется ли» поведение окончательной общей ошибки в п. (а) с ожидае- ожидаемым, когда h уменьшается в 2 раза? I.y' = t2-y при у@) = 1, y(t) = -е~г + t2-2t + 2. 2. у' = Зу + Ш при у@) = 1, y(t) = |е3* - * - ?. 3. у1 = -ty при у@) = 1, y(t) = е-*2/2. 4. у' = е< - 2у при у@) = ^, y(t) = ±е~* + te~2K 5. у' = 2*у2 при у@) = 1, y(t) = 1/A -12). 6. Логистическая кривая роста населения. Предполагается, что кривая роста населения США P(t) удовлетворяет дифференциальному уравнению для ло- логистической кривой Р1 = аР — ЪР2. Пусть t означает год после 1900 и пусть длина шага равна h = 10. Значения а = 0,02 и 6 = 0,00004 задают модель роста населения. Выполняя вычисления вручную, найдите приближения Эй- Эйлера к P(t) и внесите их в приведенную ниже таблицу. Округлите каждое значение Р* до одной десятой. Год 1900 1910 1920 1930 1940 1950 1960 1970 1980 tk 0,0 10,0 20,0 30,0 40,0 50,0 60,0 70,0 80,0 . P{tk) действительное 76,1 92,4 106,5 123,1 132,6 152,3 180,7 204,9 226,5 Pk — приближение Эйлера 76,1 89,0 138,2 202,8
9.2. Метод Эйлера 477 7, Покажите, что если задачу Коши у' = f(t) на [а; 6] с у(а) = уо = О решать методом Эйлера, то в результате можно получить 1/(Ь)« сумму Римана, которая является приближением определенного интеграла от /(?) на интервале [а; Ь]. 8. Покажите, что метода Эйлера недостаточно, чтобы получить приближенное решение y(t) = ?3/2 задачи Коши !/ = /(*, у) = 1.5у1/3 с у@) = 0. Объясните свой ответ. С какими трудностями вы столкнулись? 9. Можно ли методом Эйлера решить задачу Коши у' = 1 + у2 на [0;3] с у@) = 0? Указание. Точное решение — y(t) = tan(?). Алгоритмы и программы В задачах 1-5 решите методом Эйлера дифференциальные уравнения. (a) Пусть h = 0,1. Просчитайте 20 шагов с помощью программы 9.1. Затем пусть h = 0.05. просчитайте 40 шагов с помощью программе 9.1. (b) Сравните точное решение уB) с двумя приближениями из пункта (а). (c) Согласуется ли поведение окончательной общей ошибки в пункте (а) с ожи- ожидаемым, когда h уменьшаем в 2 раза? (d) Постройте графики двух приближений и точного решения в одной и той же системе координат. Указание. Выходная матрица Е программы 9.1 содер- содержит координаты хну приближений. Команда plot (Е(:, 1) ,Е(:, 2)) строит график, аналогичный графику на рис. 9.6. 1. у1 = t2 - у при у@) = 1, y(t) = -e~l + t2-2t + 2. 2. у1 = Зу + 3* при у@) = 1, y(t) = f е3* - t - ?. 3. у' = -ty при у@) = 1, y(t) = e"<2/2.
478 Глава 9. Решение дифференциальных уравнений 4. у' = в' - 2у при у@) = ?, y(t) = ie~2' + far* 5. у' = 2ty2 при у@) - 1, y(t) = 1/A - *2). 6. Рассмотрим задачу Коши у1 = 0,12у на [0,5] с у@) = 1000. (a) Примените формулу A0) для того, чтобы найти приближение Эйлера к уE) при длинах шага, равных h — 1, ^ и ^q. (b) Чему равен предел в п. (а), когда h стремится к нулю? 7. Экспоненциальный рост населения. Население определенной категории рао тет со скоростью, пропорциональной количеству населения, и удовлетворяет условиям задачи Коши у' = 0,02у на [0;5] с у@) = 5000. (a) Примените формулу A0), чтобы найти приближение Эйлера к уE) при длинах шага, равных h = 1, ^ и ^j. (b) Какое ограничение должно быть в п. (а), когда h стремится к нулю? 8. Парашютист прыгает с самолета, и в момент, когда раскрывается парашют, сопротивление воздуха пропорционально г>3/2 (где v — скорость). Предполо- Предположим, что промежуток времени равен [0; 6] и что дифференциальное уравне-* ние движения в вертикальном направлении имеет вид v' = 32 - 0,032v3/2 на [0; 6] с v@) = 0. Примените метод Эйлера с шагом h = 0,05 и найдите г; F). 9. Модель эпидемии. Математическая модель эпидемии описывается следую- следующим образом. Предположим, что существует группа из L членов, в которой Р инфицированных и Q не инфицированных индивидуумов. Пусть y(t) обо- обозначает количество инфицированных индивидуумов в момент t. При слабом недомогании, таком как обыкновенная простуда, все продолжают вести ак- активный образ жизни, и эпидемия распространяется от инфицированных к неинфицированным. Так как существует PQ возможностей контакта между обеими группами, то скорость изменения y(t) пропорциональна PQ. Следо- Следовательно, проблему можно сформулировать как задачу Коши у' = ky(L - у) с у@) = у0. (a) Используйте L = 25 000, к = 0,00003 и h = 0,2 с начальным условием у@) = 250 и программу 9.1, чтобы получить решение методом Эйлера на интервале [Q; 60]. (b) Постройте график приближенного решения из п. (а). (c) Найдите среднее число инфицированных с помощью определения сред- средних ординат, полученных методом Эйлера из п. (а).
9.3. Метод Гюна 479 (d) Оцените среднее число инфицированных индивидуумов, построив кри- кривую по данным из п. (а), и используйте теорему 1.10 (теорему о среднем значении для интегралов). 10. Рассмотрите интегродифференциальное уравнение первого порядка rt у' = 1,3у - 0,25у2 - 0,0001у у (г) dr. Jo (а) Воспользуйтесь методом Эйлера с шагом h = 0,2 и у@) = 250 на интер- интервале [0; 20] и формулой трапеций, чтобы найти приближенное решение уравнения. Указание. Общий шаг для метода Эйлера F) имеет вид Vk+i =Ук + АA,3у* - 0,25у? - 0,0001у* ;\tky(r)dT). Jo Если использовать формулу трапеций для приближения интеграла, то выражение примет вид УМ =Ук + ЛA,3у* - 0,25у| - 0fiOOlyhTk(h))9 где T0(h) = 0 и Tjb(/i)=Tib_i(/i) + ^(y/fc-1+yjb) для fc = 0, 1, ..., 99. (b) Повторите п. (а) с начальными значениями у@) = 200 и у@) = 300. (c) Постройте графики приближенных решений из п. (а) и (Ь) в одной и той же системе координат. 9.3. Метод Гюна Следующий подход, метод Гюна, вводит новую идею построения алгоритма для решения задачи Коши A) y'(t) = f(t,y(t)) на [а; 6] с у (to) = у0. Чтобы получить решение в точке (<i;yi), можно использовать фундаментальную теорему анализа и проинтегрировать функцию y'(t) на интервале [tfo;*i]- B) /(<,V(*))<**= у'(*)<Й = У(*1)-у(*о), h0 Jt0 где первообразная функция y'(t) является требуемой функцией у(?). Если решим уравнение B) относительно y(*i), то в результате получим C) V(*i) =!/(*>)+Г/(«, J*o
480 Глава 9. Решение дифференциальных уравнений Используем метод численного интегрирования, чтобы приближенно вычислив определенный интеграл в C). Если воспользуемся формулой трапеций с шагом длиной h = t\ — to, то получим 5 D) y(*i) «У(*о) + ?(/(*о,у(«о)) + /(*ь V(*i))). Заметим, что правая часть формулы D) требует определения значения y(t\). Чтобы продолжить, воспользуемся оценкой для y{t\). Для этого будет достаточно решения, полученного методом Эйлера. Если подставить его в D), то полученная в результате формула для нахождения (*i; j/i) будет называться методом Гюна: E) yi = у (to) + TjtfCo.yo) +/(*i,yo + Л/(«о,Уо))). Повторяем процесс и генерируем последовательность точек, которая прибли* жает кривую, соответствующую решению, у = y(t). На каждом шаге первое приближение получают методом Эйлера и затем, чтобы получить окончательное значение, корректируют его по формуле трапеций. Общий шаг метода Гюна име- имеет вид Ук F) л = У* + g (/(**> У*) Отметим роль, которую играет дифференцирование и интегрирование в методе Гюна. Проведем касательную к кривой, соответствующей решению, у = y(t) в точке (<о?Уо) и используем ее, чтобы найти точку прогноза (*i,pi). Посмотрим на график кривой z = f{t,y(t)) и рассмотрим точки (?о>/о) и (<i,/i), в которых /о = /(^о,Уо) и /i = /(*i,pi). Площадь трапеции с вершинами («о,/о) и (*i,/i) является приближением к интегралу в C), которое используется для получения окончательного значения в уравнении E). График показан на рис. 9.7. Влияние длины шага на ошибку Остаточный член в формуле трапеций, используемый для приближения инте- интеграла в уравнении C), равен G) g Если на каждом шаге единственная ошибка равна ошибке, данной в G), то после М шагов накопленная ошибка метода Гюна будет равна (8) _?B)(Jb ^ fc=i
9.3. МетодГюна 481 у = y(t) to (а) Прогноз производной: pi = yo + /i/(io,yo) = /(*•»(«)) to (b) Коррекция интеграла: Рис. 9.7. Графики у = y(t) и z = f(t,y(t)) при выводе метода Гюна Следующая теорема важна, поскольку устанавливает соотношение между окон- окончательной общей ошибкой и длиной шага. Ее используют, чтобы понять, как много усилий следует приложить при вычислениях для получения точного приближения при применении метода Гюна. Теорема 9.4 (точность метода Гюна). Предположим, что у(t) — решение задачи Коши, заданной в A). Если y(t) E Cs[to,b] и {{tk^yk)}kLo — последовательность приближений, сгенерированная методом Гюна, то - у* - (9) гдеФ^ьу*) =ук- В частности, окончательная общая ошибка в конце интервала будет такой: Иллюстрацией теоремы 9.4 служат примеры 9.6 и 9.7. Если приближения вы- вычислены с шагами, равными h и h/2, то получим (И) E(y(b),h)*Ch2 для шага большей длины и A2) Е С ? = \
482 Глава 9. Решение дифференциальных уравнений Таким образом, идея теоремы 9.4 состоит в том, что если длину шага в методе Гюна уменьшить в 2 раза, то можно ожидать, что полная окончательная обпщ ошибка сократится в 4 раза. Пример 9.6. Решим задачу Коши на [0;3] с у@) = 1 методом Гюна. Сравним решения для шагов h = 1, ^, \ и |. На рис. 9.8 показаны графики первых двух решений методом Гюна и кривая, соответствующая точному решению, y(t) = Зе~'/2 — 2 +1. В табл. 9.4 приведены значения в выбранных абсциссах для четырех решений. Для шага, равного h » = 0,25, приводим образец вычислений: ^ = -0,5 pi = 1,0 + 0,25(-0,5) = 0,875, yi = 1,0 + 0,125(-0,5 - 0,3125) = 0,8984375. Итерация продолжается до того момента, пока не достигнет последнего шага: уC) и У12 = 1,511508 + 0,125@,619246 + 0,666840) = 1,672269. 0,5 0,0 у = у(«) 0,5 1,0 1,5 2,0 Рис. 9.8. Сравнение решений методом Гюна с ша- шагами различной длины для у' — (t - y)/2 на ин- интервале [0; 2] с начальным условием у@) = 1
9.3. Метод Гюна 483 Таблица 9,4. Сравнение решений методом Гюна с шагами различной длины для у' = (*-у)/2на[0;3]су@) = 1 tk 0 0,125 0,25 0,375 0,50 0,75 1,00 1,50 2,00 2,50 3,00 Ук /1 = 1 1,0 0,875 1,171875 1,732422 1,0 0,84375 0,831055 0,930511 1,117587 1,373115 1,682121 1,0 0,898438 0,838074 0,814081 0,822196 0,920143 1,106800 1,362593 1,672269 1,0 0,943359 0,897717 0,862406 0,836801 0,812395 0,820213 0,917825 1,104392 1,360248 1,670076 Точное y(tk) 1,0 0,943239 0,897491 0,862087 0,836402 0,811868 0,819592 0,917100 1,103638 1,359514 1,669390 Таблица 9.5. Соотношение между длиной шага и окончательной общей ошибкой решения методом Гюна для у1 = (? — у)/2 на [0; 3] с у@) = 1 Длина шага, h 1 1 2 1 4 1 8 1 16 1 32 1 64 Количество шагов, М 3 6 12 24 48 96 192 Приближение к t/C), ум 1,732422 1,682121 1,672269 1,670076 1,669558 1,669432 1,669401 К.О.О. ошибка в t = 3, 2/C) - ум -0,063032 -0,012731 -0,002879 -0,000686 -0,000168 -0,000042 -0,000011 О(Л2)«СЪ2, где С = -0,0432 -0,043200 -0,010800 -0,002700 -0,000675 -0,000169 -0,000042 -0,000011 Пример 9.7, Сравним окончательную точную ошибку при решении задачи Коши методом Гюна У' = ^ на [0;3] с у@) = 1 с шагами, равными Л = 1, j,..., gjj. В табл. 9.5 приведена окончательная общая ошибка и показано, что ошибка приближения к уC) уменьшается примернно в 4 раза, когда длина шага умень-
484 Глава 9. Решение дифференциальных уравнений шается в 2 раза: JE?(yC), h) = yC) - ум = O(h2) » CTi2, где С = -0,0432. ¦ Программа 9.2 (метод Гюна). Программа предназначена для решения задачи Коши у' = /(?, у) с у (а) = уо на интервале [а; Ь] с помощью вычислений УА:+1 = Ук + ^ для fc = 0, 1, ..., М — 1. function H=heun(f,a,b,ya,M) '/Вход - f - функция, вводимая, как строка yf} 7, - а и b - левая и правая крайние точки % - уа - начальное условие у(а) °/, - М - число шагов в/,Выход - H=[TJYJ], где Т - вектор абсцисс и У, Y - вектор ординат h=(b-a)/M; T=zeros(l,M+l); Y=zeros(l,M+l); T=a:h:b; Y(l)=ya; for j=l:M kl=feval(f,T(j),Y(j)); k2=fevaKf ,T(j+l) ,Y(j)+h*kl); Y(j+l)=Y(j) + (h/2)*(kl+k2); end Упражнения к разделу 93 В упр. 1-5 решите методом Гюна следующие дифференциальные уравнения. (a) Пусть h = 0,2. Проделайте два шага, выполняя вычисления вручную. Затем пусть h = 0,1. Проделайте четыре шага, выполняя вычисления вручную. (b) Сравните точное решение у.@.4) с двумя приближениями в п. (а). (c) Согласуется ли поведение окончательной общей ошибки в п. (а) с ожидае- ожидаемым, когда h уменьшается в 2 раза? l.yf = t2-yc у{0) = 1, y(t) = -е"* + t2 - 2* + 2
9.3. Метод Гюна 485 2. у' = Зу + 3* с у@) = 1, y(t) = §е3' -1 - ± 3. у' = -ty с у@) = 1, y(t) = в"*2/2 4. у' = е~2< - 2у с у@) = ?, „(*) = ^е' + ^2f 5. у' = 2*у2 с у@) = 1, y(t) = 1/A -t2) Заметим, что по методу Гюна получаем приближение к уA) даже тогда, когда кривая, соответствующая решению, не определена в точке t = 1. 6. Покажите, что при решении задачи Коши у' = /(?) на [а; 6] с у (а) = уо = О методом Гюна в результате получается выражение h м~1 А;=0 которое является формулой трапеций, приближающей определенный инте- интеграл f(t) на интервале [а; 6]. 7. Улучшенный метод Ричардсона (см. лемму 7.1 в разделе 7.3) можно исполь- использовать вместе с методом Гюна. Если длина шага в методе Гюна равна Л, то получаем Если длина шага в методе Гюна равна 2/ь, то Член, содержащий Ch2, может быть исключен, чтобы получить уточненное приближение для у(Ь). В результате У(Ь) « Улучшенную схему можно использовать со значениями из примера 9.7, чтобы получить лучшие приближения к уC). В таблице, приведенной ниже, найдите отсутствующие значения. h 1 1/2 1/4 1/8 1/16 1/32 1/64 Vh 1,732422 1,682121 1,672269 1,670076 1,669558 1,669432 1,669401 DуЛ - t/2/О/З 1,665354 1,669385
486 Глава 9. Решение дифференциальных уравнений 8. Покажите, что метод Гюна не подходит для того, чтобы получить прибли- приближенное решение y(t) = ?3/2 задачи Коши с у@) = 0. Объясните свой ответ. С какими вы столкнулись трудностями? Алгоритмы и программы В задачах 1-5 решите дифференциальные уравнения методом Гюна. (a) Пусть Л = 0,1. Просчитайте 20 шагов с помощью программы 9.2. Затем про- просчитайте 40 шагов при шаге, равном h = 0,05, с помощью программы 9.2. (b) Сравните точное решение у B) с двумя приближениями из п. (а). i (а) Согласуется ли поведение окончательной общей ошибки в п. (а) с ожидае- ожидаемым, когда h уменьшается вдвое? (а) Постройте графики двух приближенных и точного решений в одной и той же системе координат. Указание. Выходная матрица Н в программе 9.2 со- содержит координаты х и у приближений. Команда plot(H(: ,1) ,Н(: ,2)) строит график, аналогичный графику, который представлен на рис. 9.8. 1. у1 = t2 - у при у@) = 1, y(t) = -е~* + t2 - 2t + 2. 2. у1 = Ъу + 3* при у@) = 1, y(t) = \еш -t-\. 3. у1 = -*у при у@) = 1, y(t) = е-*2/2. 4. у' = e~2t - 2у при у@) = ^, y(t) = ^е~2< + te^K 5. у' = 2*у2 при у@) = 1, y(t) = 1/A -12). 6. Рассмотрим траекторию полета снаряда. Если сопротивление воздуха про- пропорционально скорости, то задача Коши для скорости v(t) имеет вид v1 = -32 - —v с v@) = v0, где г;о — начальная скорость, М — масса и К — коэффициент сопротивления воздуха. Предположим, что vo = 160 футов/с и К/М = 0,1. Примените метод Гюна с шагом, равным h = 0,5, чтобы найти решение задачи Коши v1 = -32 - 0,lv на [0; 30] с «@) = 160. Постройте график своего решения на компьютере и точного решения v(t) = = 480е~~*/10 — 320 в одной и той же системе координат. Заметьте, что пре- предельная скорость равна —320 футов/с.
9.4. Метод рядов Тейлора 487 7. В психологии закон для возбудителя-ответа Вивера-Фишнера утверждает, что скорость изменения dR/dS реакции Д обратно пропорциональна воз- возбудителю. Пороговое значение равно самому нижнему уровню возбудителя, который может быть последовательно обнаружен. Задача Коши для этой мо- модели имеет вид # = | с ЛE0)=0. Предположим, что Sq = 0,1 и i?@,l) = 0. Используйте метод Гюна с шагом, равным h = 0,1, для решения R! = ^ на [0,1; 5,1] с Л@,1) = 0. 8. (а) Напишите программу, которая обеспечит вычисления по улучшенному методу Ричардсона, упомянутому в упр. 7. (Ь) Воспользуйтесь своей программой, чтобы найти приближение уB) для каждого из дифференциальных уравнений из задач 1-5 на интервале [0;2]. Начальную длину шага выберите равной h = 0,05. Программа должна останавливаться, когда абсолютное значение разности между двумя последовательными приближениями Ричардсона будет < 10~~6. 9А. Метод рядов Тейлора Метод рядов Тейлора можно применять в любом случае, и он является этало- эталоном, с которым сравнивают точность различных численных методов при решении задачи Коши. Он предназначен для получения приближений с любой степенью точности. Начнем с переформулировки теоремы Тейлора в биде, подходящем для решения дифференциальных уравнений. Теорема 9.5 (теорема Тейлора). Предположим, что y(t) € CN+l[to;b] и что функцию y(t) можно разложить в ряд Тейлора порядка N в окрестности фикси- фиксированной точки t = tk G [to; 6]: A) y(tk + h)= y(tk) + hTN(tk, y(tk)) + O(hN+l), где B)
488 Глава 9. Решение дифференциальных уравнений и y(*)(t) = f^~l}(t,y(t)) означает (j — 1)-ю производную по t функции /*¦ Формулу для производной можно получить с помощью рекуррентной процедуры. y'(t) = f, уC)(*) = ftt + Vtyy1 + fyy" + fyy(y'J = = ftt + 2ftyf + fyyf2 + fy(ft + fyf), W(t) = fm = (fm + 3/«у/ + Vtyyf2 + fyyyf) + fyiftt + Vtyf + fyyf2)+ + 4ft + fyf)(fty + fyyf) + f2(ft + fyf). В общем случае D) y^N4t) = p(N~l)f(t где Р — оператор дифференцирования Приближенное численное решение задачи Коши y'(t) = /(t,y) на интерва- интервале [?о;?м] получают, используя на каждом подынтервале [?fc;?fc+i] формулу A). Общий шаг для метода Тейлора порядка N имеет вид , 7 d2h2 dsh3 dNhN E) yfc+1=yfc + d1/i + -|_ + -±_ + ... + -^_j где dj = y^(tfc) для j = 1, 2, ..., N на каждом шаге к = 0, 1, ..., М — 1. Окончательная общая ошибка метода Тейлора порядка N имеет порядок O(hN+l); следовательно, N можно выбирать настолько большим, насколько это необходимо, чтобы сделать ошибку такой малой, как требуется. Если порядок N фиксирован, то теоретически возможно априори определить такую длину шага Л, что окончательная общая ошибка будет настолько малой, насколько требуется. Тем не менее обычно на практике вычисляют две совокупности приближений, используя длины шага, равные h и Л/2, и сравнивают результаты. Теорема 9.6 (точность метода Тейлора порядка JV). Предположим, что y(t) — решение задачи Коши. Если y(t) ? CN+1[to;b] и {(tk^yk)}kLo — последователь- последовательность приближений, сгенерированная методом Тейлора порядка N, то |efc| kl |(*) - У* - hTN(tk,yk)\ = O(hN).
9.4. Метод рядов Тейлора 489 В частности, окончательная общая ошибка в конце интервала будет удовлетворять равенству G) E{y(b),h) = \y{b)-yM\ = O{hN). Доказательство можно найти в [78]. В примерах 9.8 и 9.9 иллюстрируется теорема 9.6 для случая, когда N = 4. Если приближения вычислять с шагом, равным h и /г/2, то можно получить (8) для большего шага и (9) ^(уF),|)«С^ с^« Таким образом, идеей теоремы 9.6 является то, что если длину шага в методе Тейлора порядка 4 уменьшить в 2 раза, то полная окончательная общая ошибка сократится приблизительно в 16 раз. Пример 9.8. Применим метод Тейлора порядка N = 4 для решения задачи Коши у' = (? — у)/2 на интервале [0; 3] с у@) = 1. Сравним решения для шагов h = 1, 1 1 „ 1 2' 4 И 8* Сначала следует найти производные функции y{t). Напомним, что решение y(t) является функцией от t. Продифференцируем yf(t) = f(t,y(t)) no t, чтобы получить yB)(t). Затем продолжим процесс, чтобы получить производные высших порядков. v'«) - Ц*. ~ (f ~у)/2 _ l-t + У dt \ 2 ) 2 2 4 d B-t + y\ _O-l + y/^ -i + (t-y)/2 = -2 + t-y 4 4 8 -0 + 1 - y' l-(t- 8 8 16
490 Глава 9. Решение дифференциальных уравнений Чтобы найти у\, нужно вычислить приведенные выше производные в точке (*о;Уо) = @; !)• Вычисления показывают, что *. 0.Ш5. Затем производные {rfj} подставляем в E) с шагом, равным h = 0,25, и для вычисления значения у\ воспользуемся вложенными умножениями: И = 1,0 + 0,25 (-0,5 + 0,25 («? + 0,25 (=й™ + 0,25 = 0,8974915. Таким образом, найдена точка (*i,yi) = @,25; 0,8974915). Чтобы определить уг, нужно вычислить производные {dj} в точке (ti;yi) = = @,25; 0,8974915). Начнем вычисления, которые потребуют значительного ко- количества операций и утомительны при вычислении вручную. Вычисления пока- показывают, что „, = У'(О,25) = °'25-°f74915 = -0,3237458, d2 _ уB)@>25) _ 2,0-0,25 + 0,8974915 _ -2,0 + 0,25-0,8974915 _ 4, - „№@,25) = 2,0-0,25 + 0,8974915 _ 1о Затем значения производных {dj} подставляем в E) с шагом, равным h = 0,25, и используем вложенные умножения для вычисления у2 = 0,8974915 + 0,25^-0,3237458+ ,25^-0,3 + 0,25 (°g +0,25 (Z°g9364 +0,25 = 0,8364037. Получим точку (^25У2) = @,50; 0,8364037). В табл. 9.6 приведены значения выбранных абсцисс при различной длине шага. ¦
9.4. Метод рядов Тейлора 491 Таблица 9.6. Сравнение решений задачи Коши методом Тейлора порядка N = 4 для y' = (t-y)/2Ha[0;3]cy@) = l tk 0 0,125 0,25 0,375 0,50 0,75 1,00 1,50 2,00 2,50 3,00 Ук /i = l 1,0 0,8203125 1,1045125 1,6701860 1,0 0,8364258 0,8196285 0,9171423 1,1036826 1,3595575 1,6694308 1,0 0,8974915 0,8364037 0,8118696 0,8195940 0,9171021 1,1036408 1,3595168 1,6693928 1,0 0,9432392 0,8974908 0,8620874 0,8364024 0,8118679 0,8195921 0,9170998 1,1036385 1,3595145 1,6693906 Точное y{tk) 1,0 0,9432392 0,8974917 0,8620874 0,8364023 0,8118678 0,8195920 0,9170997 1,1036383 1,3595144 1,6693905 Таблица 9.7. Соотношение между длиной шага и окончательной общей ошибкой для решений задачи Коши у* = (t — у)/2 на [0; 3] методом Тейлора Длина шага, h 1 \ 1 4 \ Количество шагов, М 3 6 12 24 Приближение к уC), ум 1,6701860 1,6694308 1,6693928 1,6693906 К.О.О. ошибка в t = 3, 2/C) - ум -0,0007955 -0,0000403 -0,0000023 -0,0000001 O(h2)*Ch\ где С = -0,000614 -0,0006140 -0,0000384 -0,0000024 -0,0000001 Пример 9.9. Сравним окончательную общую ошибку решений задачи Коши у1 = = (t — у)/2 на интервале [0; 3] с у@) = 1 методом Тейлора данных в примере 9.8. В табл. 9.7 приведены значения окончательной общей ошибки для каждого из шагов и показано, что ошибка в приближении уC) уменьшилась приблизительно в 16 раз, когда длина шага уменьшилась в 2 раза: , h) = уC) - ум = O{h4) « Ch\ где С = -0,000614. ¦
492 Глава 9. Решение дифференциальных уравнений В следующей программе требуется, чтобы производные у', у", у'" и у"" были записаны в М-файл под названием df. Например, в следующий М-файл будут записаны производные из примера 9.8 в формате, требуемом для программы 9.3, function z=df(t,y) z=[(t-y)/2 B-t+y)/4 (-2+t-y)/8 ( Программа 9.3 (метод Тейлора порядка 4). Программа предназначена для нахождения приближенного решения задачи Коши у1 = f(t,y) с у (а) = уо на интервале [а; 6]. Она вычисляет производные у", у'" и у"" и использует полином Тейлора на каждом шаге. function T4=taylor(df,a,b,ya,M) •/.Вход - df=[y' у" y"J у""] вводится, как строка 'df, Уо где y'=f(t,y) % - а и b - левая и правая крайние точки % - уа - начальное условие у(а) Ув - М - число шагов •/.Выход - Т4=[Т> Y'], где Т - вектор абсцисс и У, Y - вектор ординат h=(b-a)/M; T=zeros(l,M+l); Y=zeros(l,M+l); T=a:h:b; Y(l)=ya; for j=l:M D=feval(df,T(j),Y(j)); Y(j+l)=Y(j)+h*(D(l)+h*(DB)/2+h*(DC)/6+h*DD)/24))); end T4=[T' Упражнения к разделу 9.4 В упр. 1-5 решите дифференциальные уравнения методом Тейлора порядка N = = 4. (a) Пусть h = 0,2. Вычислите вручную четыре шага. Затем для h = 0,2 вычис- вычислите вручную два шага. (b) Сравните точное решение у@,4) с двумя приближениями из п. (а). (c) Согласуется ли поведение окончательной общей ошибки в п. (а) с предпо- предполагаемым, когда h уменьшено вдвое?
9.4. Метод рядов Тейлора 493 1. у' = t2 - у при у@) = 1, y(t) = -е-' + *2 - It + 2. 2. у' = Зу + 3* при у@) = 1, у(<) = |e3t - t - i. 3. у' = -«у при у@) = 1, у(«) = е-*2/2. 4. у' = e~2t - 2у при у@) = ^, у(«) = ^е~2* + te~2t. 5. у' = 2*у2 при у@) = 1, y(t) = 1/A - i2). 6. Улучшение Ричардсона (см. лемму 7.1 в разделе 7.3) можно использовать совместно с методом Тейлора. Если метод Тейлора порядка N — 4 использу- используется с шагом длины h, то уF)« ул + ChA. Если длина шага в методе Тейлора порядка N = 4 равна 2Л, то у(Ь) и угл + 16C/i4. Члены, содержащие Ch4, можно исключить, чтобы получить улучшенное приближение для у(Ь): У(Ь) - У2/1 15 Эту улучшенную схему можно использовать со значениями из примера 9.9, чтобы получить наилучшие приближения к уC). Найдите пропущенные зна- значения в таблице, приведенной ниже. h 1,0 0,5 0,25 0,125 Vh 1,6701860 1,6694308 1,6693928 1,6693906 A6^-1/2/0/15 7. Покажите, что при использовании метода Тейлора порядка N с шагами, рав- равными h и /г/2, полная окончательная общая ошибка для меньшей длины шага умножается на 2"*"^. 8. Покажите, что метод Тейлора не подходит для нахождения приближенного решения y(t) = ?3/2 задачи Коши у' = /(?, у) = l^y1/3 с у@) = 0. Объясните свой ответ. С какими трудностями вы столкнулись? 9. (а) Убедитесь, что решение задачи Коши у' = у2, у@) = 1 на интервале [0; 1) имеет вид y(t) = 1/A - t). (b) Убедитесь, что решение задачи Коши у1 = 1 +у2, у@) = 1 на интервале [0; тг/4) равно y(t) = tan(t + тг/4). (c) Используйте результаты выполнения п. (а) и (Ь), чтобы аргументировать, что решение задачи Коши у' = t2 + у2, у@) = 1 имеет вертикальную асимптоту между 7г/4 и 1. (Она расположена вблизи точки t = 0,96981.)
494 Глава 9. Решение дифференциальных уравнений 10. Рассмотрите задачу Коши у' = 1 + у2, у@) = 1. (a) Найдите выражения для yB\t), y^(t) и y^(t). (b) Вычислите производные в точке t = 0, а затем используйте их, чтобы найти первые пять членов в разложении Маклорена для tan(t). Алгоритмы и программы В задачах 1-5 решите дифференциальные уравнения методом Тейлора порядка ЛГ = 4. (a) Пусть h = 0,1. Вычислите 20 шагов с помощью программы 9.3. Затем с шагом h = 0,05 вычислите 40 шагов с помощью программы 9.3. (b) Сравните точное решение уB) с двумя приближениями из п. (а). (c) Согласуется ли поведение окончательной общей ошибки в п. (а) с предпо- предполагаемым, когда h уменьшено вдвое? (d) Постройте графики двух приближений и точного решения в одной и той же системе координат. Указание. Выходная матрица Т4 программы 9.3 содержит координаты приближений х и у. Команда plot(T4(: ,1) ,Т4(: ,2)) строит график, аналогичный графику, представленному на рис. 9.6. 1. у1 = t2 - у при у@) = 1, y(t) = -е~1 + t2 - 2* + 2. 2. у1 = Зу + Ш при у@) = 1, y(t) = Iе3' -t-\. 3. у1 = -ty при у@) = 1, y(t) = в"*2/2. 4. у' = et - 2у при у@) = &9 y(t) = ^е' + te*. 5. у' = 2^у2 при у@) = 1, y(t) - 1/A -12). 6. (а) Напишите программу, которая обеспечит выполнение улучшения Ри- Ричардсона из упр. 6. (Ь) Используйте свою программу из п. (а), чтобы найти приближение у@,8) для задачи Коши у1 = t2 + у2, у@) = 1 на интервале [0;0,8]. Извест- Известно, что истинное решение в точке t = 0,8 равно у@,8) = 5,8486168. Начните с шага h = 0,05. Программа должна останавливаться, когда абсолютное значение разности между двумя последовательными значе- значениями Ричардсона станет < 10~6. 7. (а) Модифицируйте программу 9.3 для метода Тейлора порядка N = 3. (Ь) Используйте свою программу из п. (а), чтобы решить задачу Коши у1 = = t2+y2, у@) = 1 на интервале [0; 0,8]. Найдите приближенные решения при длинах шага h = 0,05, 0,025, 0,0125 и 0,00625. Постройте графики четырех приближений в одной и той же системе координат.
9.5. Методы Рунге-Кутта 495 9.5. Методы Рунге-Кутта В предыдущем разделе рассматривался метод Тейлора, который обладает хоро- хорошим свойством — окончательная общая ошибка имеет порядок O(hN) и можно выбрать настолько большое N, что ошибка станет малой. Однако недостатком ме- методов Тейлора является необходимость предварительного задания N и вычисле- вычисления производных высоких порядков, которое может быть очень сложным. Каждый метод Рунге-Кутта выведен из соответствующего метода Тейлора таким способом, чтобы окончательная общая ошибка имела порядок O(hN). Метод получен, чтобы на каждом шаге можно было вычислить несколько функций и исключить необ- необходимость вычислять производные высоких порядков. Методы можно построить для любого порядка N. Наиболее популярен метод Рунге-Кутта порядка N = 4. В большинстве случаев это хороший выбор, так как он вполне точен, стабилен и прост для программирования. Наиболее авторитетные специалисты утверждают, что нет необходимости переходить к методу высшего порядка, поскольку увели- увеличение точности не компенсирует дополнительную сложность вычислений. Если требуется большая точность, то можно использовать меньший шаг или модифи- модифицированный метод. Метод Рунге-Кутта четвертого порядка (РК4) по точности подобен методу ря- рядов Тейлора порядка N = 4. Метод основан на вычислении A) 2/fc+i = Ук + wi&i + w2k2 где fci, к2, &з и &4 имеют вид к\ = кг = hf{tk + a2h, yk + b2kx + b3k2), fc4 = hf(tk + а3Л, yk Коэффициенты, соответствующие этим коэффициентам метода рядов Тейлора по- порядка N = 4, такие, что локальная ошибка усечения имеет порядок 0(/i5). Рунге и Кутт смогли получить следующую систему уравнений:
496 Глава 9. Решение дифференциальных уравнений + h = 3 = C) з з з 1 + ^ + ^3 = Т -, о о —, —. Система содержит 11 уравнений с 13-ю неизвестными. Следует добавить два до- дополнительных условия, чтобы решить систему. Чаще всего используют значения D) ai = ^ и Ь2 = 0. Тогда решением для остальных переменных будет «2 = х, «з = 1, bi = 5» Ьз = ^, &4 = О, Ь5 = 0, 66 = 1, Р; 1 1 1 1 t«l = т, W2 = Г, ^3 = «, ^4 = Т. о о о о Значения D) и E) подставляем в B) и A), чтобы получить формулу для стан- стандартного метода Рунге-Кутта порядка N = 4, который определяем следующим образом. Начнем с исходной точки (<о;Уо) и сгенерируем последовательность приближений, используя Ук+l =Ук
9.5. Методы Рунге-Кутта 497 где G) Обсуждение метода Мы не приводим полного обоснования использования уравнений G) в мето- методе РК4 (его можно найти в книгах повышенной сложности), однако приведем рассуждения, способствующие пониманию вопроса. Рассмотрим график кривой, соответствующей решению, у = y(t) на первом подынтервале [*о; *i]- Значения функции в G) являются приближениями для тангенса угла наклона этой кривой. Здесь /i — тангенс угла наклона кривой слева, /2 и /з — два значения для танген- тангенса угла наклона кривой посередине и /4 — тангенс угла наклона кривой справа (рис. 9.9(а)). Следующую точку (ti, yi) получаем путем интегрирования функции, задающей тангенс угла наклона: (8) !/(*i)-v(<o)= I f{t,y(t))dt. Если применить формулу Симпсона с шагом, равным /г/2, то приближенное значение интеграла в (8) будет равно (9) J^ где ti/2 — средняя точка интервала. Необходимы три значения функции, поэтому произведем очевидный выбор /(^о, У (*о)) = /i и f(t\,y(t\)) w /4. Для значения в средней точке выберем среднее величин /2 и /з: Подставим эти значения в (9), которое затем используем в уравнении (8), чтобы получить yi: С») ш=У0+ Если упростить данную формулу, то окажется, что это уравнение F) с к = 0. График интеграла показан на рис. 9.9(Ь).
498 Глава 9. Решение дифференциальных уравнений! Шз = /4 mi =/i га4 = /4 t $0 ^1/2 ^1 (а) Прогнозируемые значения тангенса угла наклона кривой, соответствую- соответствующей решению, у = y{t). Рис. 9.9. Графики у = y(t) и z = порядка N = 4 (to; i /l) («1/25/2) (^1/25 /s) ^(*i;/4) <0 *l/2 *1 (b) Приближение интеграла y(t в обсуждении метода Рунге-Кутга Влияние длины шага на ошибку Остаточный член в формуле Симпсона с шагом h/2 равен (ii) 2880' Если на каждом шаге ошибка равна A1), то после М шагов накопленная ошибка для метода Рунге-Кутта порядка N = 4 будет равна м A2) Теорема 9.7 устанавливает соотношение между окончательной общей ошибкой (ООО) и длиной шага. Она используется, чтобы дать представление о том, как много усилий следует приложить при использовании метода Рунге-Кутта порядка Теорема 9,7 (точность метода Рунге-Кутта). Предположим, что y(t) — ре- решение задачи Коши. Если y(t) € С5[?о,Ь] и {(*ьУ*)}]ь1о "~ последовательность приближений, сгенерированная методом Рунге-Кутта порядка 4, то A3) If* — hTN(tklyk)\ = O(hb).
9.5. Методы Рунге-Кутта 499 В частности, окончательная общая ошибка в конце интервала будет равна A4) 4 Иллюстрацией теоремы 9.7 служат примеры 9.10 и 9.11. Если приближения вычислены с шагами h и /ь/2, то получаем A5) для шага большей длины и A6) Е (у{Ъ), |) « С^ = ±Ch4 » ±Е(у(Ъ), А). Таким образом, идея теоремы 9.7 состоит в том, что если длину шага в методе Рунге-Кутта порядка N = 4 уменьшить в 2 раза, то можно ожидать, что полная окончательная ошибка уменьшится в 16 раз. Пример 9.10. Используем метод Рунге-Кутта порядка N = 4 для решения задачи Коши у1 = (t — у)/2 на интервале [0; 3] с у@) = 1. Сравним решения, полученные при шагах, равных Л = 1, |, J и |. В табл. 9.8 представлены значения в выбранных абсциссах. Приведем образец вычислений для шага, равного h = 0,25 Л _ 0,125 -A+0,25@,5)(-0,5)) _ _ /, = 0.125-A + 0?25@,5)(-0,40625)) h = 0.25-A+0,2^-0,4121094)) . _0,3234863, , л ЛЛР/ -0^5 + 2(^0,40625) + 2(-0,4121094) - 0,3234863 \ ух = 1,0 + 0,25 I I = = 0,8974915. ¦ Пример 9.11. Сравним окончательную общую ошибку, полученную при реше- решении методом Рунге-Кутта порядка 4 задачи Коши у1 = (t—y)/2 на [0; 3] с у@) = 1, при шагах, равных h = 1, j, j и |. В табл. 9.9 представлены окончательные общие ошибки для различных длин шага и показано, что ошибка приближения к уC) уменьшается приблизительно в 16 раз, когда длина шага уменьшается в 2 раза. #(уC), К) = уC) -ум = O(hA) « C7i4, где С = -0,000614. ¦
500 Глава 9. Решение дифференциальных уравнений Таблица 9.8. Сравнение решений, полученных методом Рунге-Кутта порядка N = 4) с шагами различной длины для задачи Коши у' = (t — у)/2 на [0; 3] с г/@) = 1 ' tk 0 0,125 0,25 0,375 0,50 0,75 1,00 1,50 2,00 2,50 3,00 Ук /i = l 1,0 0,8203125 1,1045125 1,6701860, 1,0 0,8364258 0,8196285 0,9171423 1,1036826 1,3595575 1,6694308 1,0 0,8974915 0,8364037 0,8118696 0,8195940 0,9171021 1,1036408 1,3595168 1,6693928 1,0 0,9432392 0,8974908 0,8620874 0,8364024 0,8118679 0,8195921 0,9170998 1,1036385 1,3595145 1,6693906 Точное y(tk) 1,0 0,9432392 0,8974917 0,8620874 > 0,8364023 0,8118678 0,8195920 0,9170997 1,1036383 1,3595144 1,6693905 Таблица 9.9. Соотношение между длиной шага и окончательной общей ошибкой для решения задачи Коши yf = (t — у)/2 на [0; 3] с у@) = 1 методом Рунге-Кутта порядка 4 Длина шага, h 1 2 1 4 Количество шагов, М 3 6 12 24 Приближение к г/C), ум 1,6701860 1,6694308 1,6693928 1,6693906 О.О.О. ошибка в t = 3, 2/C) - ум -0,0007955 -0,0000403 -0,0000023 -0,0000001 O{hA)*Ch\ где С = -0,000614 -0,0006140 -0,0000384 -0,0000024 -0,0000001 Сравнение примеров 9.10 и 9.11 с примерами 9.8 и 9.9 показывает, что подразу- ;< мевается под утверждением "Метод Рунге-Кутта порядка N = 4 подобен методу рядов Тейлора порядка N = 4". К примеру, оба метода генерируют идентичное множество решений {(**,!/«)} на заданном интервале. Тем не менее очевидны преимущества метода Рунге-Кутта порядка N = 4: нет необходимости ни вычис- вычислять производные высших порядков, ни писать программы для их вычисления. Но определить точность решения, получаемого по методу Рунге-Кутта, нелегко. Можно оценить величину у^(с) и использовать формулу A2). Другой способ — повторить алгоритм с шагом меньшей длины и сравнить результаты. Третий спо-
9.5. Методы Рунге-Кутта 501 соб — использовать определение длины шага, которое дано в программе 9.5. В разделе 9.6 будет показано, как изменять длину шага для многошагового метода. Метод Рунге-Кутта порядка N = 2 Метод Рунге-Кутта второго порядка (обозначим его через РК2) по точности по- подобен методу рядов Тейлора порядка 2. Хотя он и не столь хорош в использовании, как метод Рунге-Кутта порядка N = 4, его доказательство проще для понимания и иллюстрирует основные принципы этих методов. Для начала запишем формулу разложения в ряд Тейлора для y(t + h): A7) y(t + h) = y(t) + hy'(t) + \h2y"{t) + CTh3 + • • • , где Ст — постоянная, содержащая третью производную от y(t), а другие члены ряда содержат степени Ь? для j > 3. Производные yf(t) и y"{t) в уравнении A7) нужно выразить в терминах /(?, у) и ее частных производных. Напомним, что A8) y'(t) = f(t,y). Цепное правило дифференцирования функции от двух переменных можно ис- использовать, чтобы продифференцировать A8) по t, и в результате получим Используем A8) и запишем в виде A9) !/'(*) = Л(*1 У)+ /»(*, Подставим в A7) производные A8) и A9), чтобы получить разложение Тейлора для y(t + h): y(t + h) = y(t) + hf(t, у) + \ B0) 2 + h2f( Рассмотрим метод Рунге-Кутта порядка N = 2, в котором используется линей- линейная комбинация двух значений функции для разложения y(t + h): B1) y(t + h) где G2) /о = /
502 Глава 9. Решение дифференциальных уравнений: Далее используем приближение полиномом Тейлора функции от двух незави- независимых переменных для разложения /(?, у) (см. упражнения). Это даст следующее представление для f\: B3) Л = f(t, у) + Phftit, у) + Qhfyit, у) fit, у) + CPh2 + • • • , где Ср содержит частичные производные второго порядка /(?, у). Затем B3) под- подставляем в B1), чтобы получить выражение Рунге-Кутта порядка 2 для y{t + h): B4) У(* + k) = V{t) + {A + B)kf{t'У) + BPh2ft^ y) Сравнивая подобные члены в разложениях B0) и B4), приходим к следующему заключению: hfit, у) = (А + B)hfit, у) влечет 1 = А + В, \h2ftit, у) = BPh2Mt, у) влечет i = ВР, \h2fy{t, y)f(t, у) = BQh2fy(t, у)fit, у) влечет \ = BQ. Таким образом, если потребовать, чтобы А9 В, Р и Q удовлетворяли соотно- соотношениям B5) А + В = 1, ВР=\ и?д=Л, то метод Рунге-Кутта порядка 2 в B4) будет иметь такой же порядок точности, как и метод Тейлора в B0). Поскольку существует только три уравнения с четырьмя неизвестными, система уравнений B5) не определена и допускается выбор одного из коэффициентов. В работах по РК2 существует несколько специальных выборов коэффициентов. Упомянем два из них. Случай (i). Выберем А = j. Это приведет к тому, что jB = j,P = 1hQ = 1. Если записать выражение B1) с этими параметрами, то можно получить формулу B6) y(t + h) = y{t) + ^(/(t, y) + f(t + h,y + hf{t, y))). Если эту схему использовать для генерирования {(ifc^J/fc)}? B результате можно получить метод Гюна. Случай (и). Выберем А = 0. Такой выбор приводит к J? = 1, Р = i и Q = g. Если записать с этими параметрами выражение B1), можно получить формулу B7) y(t + h)= y(t) + Л/ (< + |, у + |/(t, Когда для генерирования {(**,у*)} используется такая схема, она называется мо- модифицированным методом Эйлера-Коши.
9.5. Методы Рунге-Кутта 503 Метод Рунге-Кутта-Фехлберга Один из способов, гарантирующих точность решения задачи Коши, — дважды решить задачу с шагами, равными h и Л/2, и сравнить ответы в узловых точках, соответствующих большему шагу. Но это потребует значительного количества вычислений для шага меньшей длины и их придется повторить, если будет опре- определено, что согласие недостаточно хорошее. Метод Рунге-Кутта-Фехлберга (обозначается — РКФ45) — одна из попыток решить эту проблему. Данный метод задает процедуру, которая определяет, пра- правильная ли длина шага h используется. На каждом шаге получаем два различных приближения и сравниваем их. Если два ответа согласуются, то приближение при- принимается. Если оба ответа не согласуются с заданной точностью, то длина шага уменьшается. Если ответы согласуются с большим числом значащих цифр, чем требуется, то длина шага увеличивается. На каждом шаге требуется использовать следующие шесть значений: к2 = hf (tk + -h, yk + -кг j , B8) и ut(* -i-12», -l1932*. 7200. 7296Л h = hf [tk + -h,yk + _fcl - — k2 + —fc3J , ч( t 439. o, 3680, 845 h = hf (tk + h,yk + — h - 8k2 + fc h = hf (tk + -h,yk - -кг h 8k2 + fc3 3544, 1859 Затем приближенно решается задача Коши методом Рунге-Кутта порядка 4: 25 , 1408, 2197, 1, B9) ук+1 =ук + —кг + * + Ь к кг + где используются четыре значения функций /ь /3, /4 и /5. Заметим, что в фор- формуле B9) /2 не используется. Лучшее решение находим методом Рунге-Кутта порядка 5: 16 , 6656 , 28,561, 9 , 2 , C0) zM =ук + —к, + к + к Л* + fc к, + щ^к, + ^^кА Л* + fc6. Оптимальную длину шага sh можно определить, умножая текущую длину шага h на скалярную величину s, равную ( T°i/i ^1/4 пОлС т°1л v/4 C1) s = г} ю 0.84 г V2|^+1-yfe+i|/ \\zk+i-yk+i\J где Tol — заранее заданная допустимая ошибка.
504 Глава 9. Решение дифференциальных уравнений Таблица 9.10. Решение методом РКФ45 задачи Коши у1 = 1 + t/2, 2/@) = 0 к 0 1 2 3 4 5 6 7 8 9 10 0,0 0,2 0,4 0,6 0,8 1,0 1Д 1,2 1,3 1,35 1,4 Приближения методом РКФ45 ук 0,0000000 0,2027100 0,4227933 0,6841376 1,0296434 1,5574398 1,9648085 2,5722408 3,6023295 4,4555714 5,7985045 Истинное решение, y(tk) = tan(tfc) 0,0000000 0,2027100 0,4227931 0,6841368 1,0296386 1,5774077 1,9647597 2,5721516 3,6021024 4,4552218 5,7978837 Ошибка y(h) ~ Ук 0,0000000 0,0000000 -0,0000002 -0,0000008 -0,0000048 -0,0000321 -0,0000488 -0,0000892 -0,0002271 -0,0003496 -0,0006208 Вывод формулы C1) можно найти в книгах повышенной сложности по числен- численному анализу. Важно понять, что фиксированная длина шага не является лучшей стратегией, даже если она приведена в кажущейся изящной таблице значений. Если необходимого значения нет в таблице, то следует использовать полиноми- полиномиальную интерполяцию. Пример 9.12. Сравним решения задачи Коши, полученные методами РКФ45 и РК4 у' = 1 + у2 с у@) = 0 на [0; 1,4]. В программе метода РКФ45 для допустимой ошибки используем значение Tol = = 2 х 10~5. Автоматически меняем длину шага и получаем 10 приближенных решений, приведенных в табл. 9.10. Программа метода РК4 используется с пред- предварительно выбранным шагом h = 0,1, который необходим, чтобы компьютер получил 14 приближений в равноотстоящих точках (табл. 9.11.) Приближения в правой и левой крайних точках равны уA,4) « у10 = 5,7985045 и уA,4) « уи = 5,7919748 и ошибки для методов РКФ45 и РК4 равны соответственно Ею = -0,0006208 и Ей = 0,0059089. Метод РКФ45 дает меньшую ошибку. ¦
9.5. Методы Рунге-Кутта 505 Таблица 9.11. Решение методом РК4 задачи Коши у' = 1 4- у2,2/@) = 0 к- Л 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 к 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1,0 1,1 1,2 1,3 1,4 Приближения метода PK4yfe 0,0000000 0,1003346 0,2027099 0,3093360 0,4227930 0,5463023 0,6841368 0,8422886 1,0296391 1,2601588 1,5574064 1,9647466 2,5720718 3,6015634 5,7919748 Истинное решение, y(tk) = ta,n(tk) 0,0000000 0,1003347 0,2027100 0,3093362 0,4227932 0,5463025 0,6841368 0,8422884 1,0296386 1,2601582 1,5574077 1,9647597 2,5721516 3,6021024 5,7978837 Ошибка y(tk)-yk 0,0000000 0,0000001 0,0000001 0,0000002 0,0000002 0,0000002 0,0000000 -0,0000002 -0,0000005 -0,0000006 0,0000013 0,0000131 0,0000798 0,0005390 0,0059089 Программа 9.4 (метод Рунге-Кутта порядка 4). Программа предназначена для приближенного решения задачи Коши у1 = /(?, у) с у (а) = уо на интервале [а; 6] с применением формулы = Ук + т ( о function R=rk4(f,a,b,ya,M) УвВход - f - функция, вводимая как строка *f' У, - аиЬ - левая и правая крайние точки У, - у а - начальное условие у (а) У, - М - число шагов У.Выход - R=[T> YJ] , где Т - вектор абсцисс У. и Y - вектор ординат h=(b-a)/M; T=zeros(l,M+l); Y=zeros(l,M+l); T=a:h:b; Y(l)=ya; for j=l:M kl=h*feval(f,T(j),Y(j)); k2=h*feval(f,T(j)+h/2,Y(j)+kl/2);
506 Глава 9. Решение дифференциальных уравнений ¦ k3=h*feval(f,T(j)+h/2,Y(j)+k2/2); k4=h*feval(f,T(j)+h,Y(j)+k3); Y(j+l)=Y(j)+(kl+2*k2+2*k3+k4)/6; end R=[T' Y']; Следующая программа выполняет метод Рунге-Кутта-Фехлберга (Runge-Kutta- Fehlberg) (РКФ45), описанного формулами B8)—C1). Программа 9.5 (метод Рунге-Кутта-Фехлберга). Программа предназначена для приближенного решения задачи Коши у1 = /(?, у) с у (а) = г/о на интервале [а; Ь] методом с заданными величиной ошибки и длиной шага. function R=rkf45(f,a,b,ya,M,tol) У.Вход - f - функция, вводимая, как строка yf' У. - а и Ъ - левая и правая крайние точки 7. - уа - начальное условие у (а) У« - М - число шагов % - tol - допустимое значение •/.Выход - R=[T) Y>], где Т - вектор абсцисс У. и Y - вектор ординат '/«Ввод коэффициентов, необходимых для вычисления значений У,по формулам B8) и B9) а2=1/4;Ь2=1/4;аЗ=3/8;Ъ3=3/32;сЗ=9/32;а4=12/13; Ь4=1932/2197;с4=-7200/2197;d4=7296/2197;а5=1; Ъ5=439/216;с5=-8;d5=3680/513;е5=-845/4104;а6=1/2; Ъ6=-8/27;с6=2;d6=-3544/2565;е6=1859/4104; f6=-ll/40;rl=l/360;r3=-128/4275;r4=-2197/75240;r5=l/50; г6=2/55;п1=25/21б;пЗ=1408/2565;п4=2197/4104;п5=-1/5; big=lel5; h=(b-a)/M; hmin=h/64; hmax=64*h; maxl=200; Y(l)=ya; br=b-0.00001*abs(b); while (T(j)<b) if ((T(j)+h)>br) h=b-T(j); end
9.5. Методы Рунге-Кутта 507 '/Вычисление значений по формулам B8) и B9) kl=h*feval(f,T(j),Y(j)); y2=Y(j)+b2*kl; if big<abs(y2)break,end k2=h*feval(f,T(j)+a2*h,y2); y3=Y(j)+b3*kl+c3*k2; if big<abs(y3)break,end k3=h*feval(f,T(j)+a3*h,y3); y4=Y(j)+b4*kl+c4*k2+d4*k3; if big<abs(y4)break,end k4=h*feval(f,Y(j)+a4*h,y4); y5=Y(j)+b5*kl+c5*k2+d5*k3+e5*k4; if big<abs(y5)break,end k5=h*feval(f,T(j)+a5*h,y5); y6=Y(j)+b6*kl+c6*k2+d6*k3+e6*k4+f6*k5; if big<abs(y6)break,end k6=h*feval(f,Y(j)+a6*h,y6); err=abs(rl*kl+r3*k3+r4*k4+r5*k5+r6*k6); ynew=Y(j)+nl*kl+n3*k3+n4*k4+n5*k5; '/«Задание величины ошибки и длины шага if((errctol)I(h<2*hmin)) Y(j+l)=ynew; else end end if (err==0) s=0; else s=0.84*(tol*h/err)Л@.25); end if((s<0.75)&(h>2*hmin)) h=h/2; end if((s>1.50)&B*h<hmax)) h=2*h; end
508 Глава 9. Решение дифференциальных уравнений, if((big<abs(Y(j)))|(maxl==j)),break,end M=j; if (b>T(j)) M=j+1; else M=j; end end R=[T> Y']; Упражнения к разделу 9.5 В упр. 1-5 решите дифференциальные уравнения методом Рунге-Кутта порядка iV = 4. (a) Пусть h = 0,2. Проделайте два шага, выполняя вычисления вручную. Затем пусть h = 0,1. Проделайте четыре шага, выполняя вычисления вручную. (b) Сравните точное решение у@,4) с двумя приближенными из п. (а). (c) Соответствует ли поведение окончательной общей ошибки в п. (а) ожидае- - мому, если h уменьшено вдвое? 1. у' = *2 - у при у@) = 1, y{t) = -е"< + t2 - 2t + 2. 2. у' = Зу + 3t при у@) = 1, y(t) = §е3' - * - ?. 3. у1 = -ty при у@) = 1, y(t) = e~t2/2. 4. у' = et - 2у при у@) = i, y(«) = ^e~2t + te~2K 5. у1 = 2^у2 при у@) = 1, у(«) = 1/A -12). 6. Покажите, что если использовать метод Рунге-Кутта порядка N = 4 при ре- решении задачи Коши у1 = /(?, у) на интервале [а; Ь] с у (а) = 0, то результатом будет h м1 где h = (b—a)/M, t^ = a+/c/i и ^+1/2 = a+ (A: + ^) /i, который является при- приближением Симпсона (с шагом, равным h/2) для определенного интеграла от функции f(t) по интервалу [а; Ь]. 7. Улучшенный метод Ричардсона (см. лемму 7.1 в разделе 7.3) можно использо- использовать совместно с методом Рунге-Кутта. Если использовать метод Рунге-Кутта порядка N = 4 с шагом h, то получим
9.5. Методы Рунге-Кутта 509 Если используем метод Рунге-Кутта порядка N = 4 с шагом, равным 2h, то получаем Члены, содержащие C/i4, можно исключить, чтобы получить улучшенное приближение для у(Ь), и результатом будет У(Ь)« - У2/1 15 Эту улучшенную схему можно использовать со значениями из примера 9.11, чтобы получить лучшее приближение к уC). Найдите недостающие значения в таблице, приведенной ниже. h 1 2 I 1 8 1,6701860 1,6694308 1,6693928 1,6693906 A6уЛ - y2fc)/15 Для упр. 8 и 9 полином Тейлора степени N = 2 для функции /(?, у) от двух переменных t и у, разложенный в окрестности точки (а, Ь), имеет вид 8. (а) Найдите полином Тейлора степени N = 2 для функции /(?, у) = разложенной в окрестности точки A; 1). (Ь) Найдите Р2A505; 1,1) и сравните результат с /A,05; 1,1). 9. (а) Найдите полином Тейлора степени N = 2 для функции /(?, у) = A + +1 — уI/2, разложенный в окрестности точки @; 0). (Ь) Найдите Р2@,04; 0,08) и сравните результат с /@,04; 0,08). Алгоритмы и программы В задачах 1-5 решите дифференциальные уравнения методом Рунге-Кутта поряд- порядка N = 4. (а) Пусть h = 0,1. Выполните 20 шагов с помощью программы 9.4, а затем с шагом, равным h = 0,05, просчитайте 40 шагов с помощью программы 9.4.
510 Глава 9. Решение дифференциальных уравнений' (b) Сравните точное решение уB) с двумя приближенными из п. (а). (c) Соответствует ли поведение окончательной общей ошибки в п. (а) ожидае* мому, если h уменьшено вдвое? (d) Постройте графики двух приближенных и точного решения в одной и той же системе координат. Указание. Выходная матрица R программы 9.4 содер- содержит координаты приближений х и у. Команда plot (R(: ,1) ,R(: ,2)) строит график, аналогичный графику, который представлен на рис. 9.6. 1. у' = t2 - у при у@) = 1, y(t) = -е"< + t2 - 2* + 2. 2. у1 = Зу + 3* при у@) = 1, y(t) = |e3t - t - ±. 3. у' = -ty при у@) = 1, y{t) = e"t2/2. 4. у' = е-2* - 2у при у@) = ?, y(t) = ±e~2t + te~2t. 5. у1 = 2ty2 при у@) = 1, y(t) = 1/A - t2). В задачах 6 и 7 решите дифференциальные уравнения методом Рунге-Кутта- Фехлберга. (a) Воспользуйтесь программой 9.5 с начальной длиной шага h = 0,1 и tol = = ю-7. (b) Сравните точное решение у(Ь) с приближенным. (c) Постройте график приближенного и точного решений в одной и той же системе координат. 6. у1 = 9te3t, у@) = 0 на интервале [0; 3], y(t) = 3te3' - e3t + 1. 7- у1 = 2tan-1(?), y@) = 0 на интервале [0; 1], y(t) = 2*tan~1(«) ~ ln(l +t2). 8. В химической реакции молекула А объединяется с молекулой В, чтобы обра- образовать молекулу С. Считается, что концентрация y(t) молекул С в момент t равна решению задачи Коши у' = А;(а-у)(Ь-у) с у@) = 0, где к — положительная постоянная и а и Ь — исходная концентрация А и В со- соответственно. Предположим, что к = 0,01, a = 70 миллимоль (миллиграмм- молекул)/литр и Ь = 50 миллимоль (миллиграмм-молекул)/литр. Используем метод Рунге-Кутта порядка ЛГ = 4 с шагом Л = 0,5, чтобы найти решение на интервале [0; 20]. Примечание. Можете сравнить полученное вами на ком- компьютере решение с точным решением y(t) = 350A — е~"°'2*)/G — 5е~0>2е). Объясните, почему предельное значение равно 50 при t -> +оо. 9. Решая соответствующую задачу Коши, постройте таблицу значений функции f(t), заданной следующим интегралом: f(x) = 1 + -^= [ е~*2/2 dt для 0 < х < 3. 2 v2tt Jo
9.6. Методы прогноза-коррекции 511 Для вычислений используйте метод Рунге-Кутта порядка N = 4 с шагом Л = 0,1. Решение следует согласовать с значениями в следующей таблице. Примечание. Это хороший метод получения таблицы площадей стандартного нормального распределения. X 0.0 0.5 1.0 1.5 2.0 2.5 3.0 0,5 0,6914625 0,8413448 0,9331928 0,9772499 0,9937903 0,9986501 10. (а) Составьте программу, позволяющую производить вычисления по улуч- улучшенному методу Ричардсона из упр. 7. (Ь) Используйте свою программу из п. (а), чтобы найти приближенное ре- решение у@,8) для задачи Коши у' = t2+y2, у@) = 1 на интервале [0; 0,8]. Известно, что точное решение в точке t = 0,8 равно у@,8) = 5,8486168. Начните с шага, равного h = 0,05. Программа должна останавливаться, когда абсолютное значение разности между двумя последовательными решениями улучшения Ричардсона < 10~7. 11. Рассмотрите обычное интегродифференциальное уравнение первого порядка rt у1 = 1,3у - 0,25у2 - 0,0001у у(т) dr. Jo (a) Используйте метод Рунге-Кутта порядка 4 с шагом h = 0,2 и у@) = = 250 на интервале [0; 20] и формулу трапеций для нахождения прибли- приближенного решения уравнения (см. задачу 10 в алгоритмах и программах раздела 9.2). (b) Повторите п. (а) с начальными значениями у@) = 200 и у@) = 300. (c) Постройте графики приближенных решений из пп. (а) и (Ь) в одной и той же системе координат. 9.6. Методы прогноза-коррекции Методы Эйлера, Гюна, Тейлора и Рунге-Кутта называются одношаговыми ме- методами, потому что в них используется только информация от одной предыду- предыдущей точки, чтобы вычислить последующую, т. е. только начальная точка (*о;уо) используется для вычисления (*i;yi) и, в общем, только у* необходимо, чтобы
512 Глава 9. Решение дифференциальных уравнений вычислить yk+i- Однако после того, как найдено несколько точек, можно исполь- использовать для вычислений несколько предшествующих точек. Например, изложим четырехшаговый метод Адамса-Бешфорса, которому требуются точки у&-з> Ук-% yk~\ и уь для вычисления ук+\- Это.не автоматически запускающийся метод; че- четыре начальные точки, (?о;Уо), (*i;yi), (*2;У2) и (?з;Уз), должны быть получены заранее в данном порядке для генерирования точек {(?&; у к) : к > 4}. Хорошим свойством многошагового метода является то, что можно определить локальную ошибку усечения (ЛОУ) и включить корректирующий член, который повышает точность ответа на каждом шаге. Также можно определить, будет ли длина шага достаточно мала, чтобы получить точное значение yfc+ь и найти боль» ший шаг, который исключит ненужные вычисления. Использование комбинации прогноза и коррекции требует только два раза вычислить функцию /(?, у) за шак Метод Адамса-Бешфорса-Маултона Метод прогноза-кЬррекции Адамса-Бешфорса-Маултона (Adams-Bashforth- Moulton) — это многошаговый метод, выведенный из фундаментальной теоремы анализа: A) 1/ftfe+i) = vftb) + f(t,y{t))dt. Прогноз использует приближение полиномом Лагранжа для функции /(?, y(t))t построенный по точкам (ifc_3; Л-з), (*л-25 Л-2), (**-i; Л-i) и (tk; fk). Это функ- f ция из A), интегрируемая на интервале [tk; tk+i]. Процесс, порождающий прогноз.-. Адамса-Бешфорса, имеет вид h B) Pk+i = Ук + ^т(""9Л-з + 37Л-2 - 59Л-1 + 55Л). Корректор получается аналогично. Как только значение рк+\ вычислено, его можно использовать. Следующий полином Лагранжа для функции /(?, y(t)) стро- строится по точкам (t*-2;/*-2), (*fc-i;/*-i), (h'Jk) и новой точке (*fc+i;/ib+i) = = (^+1; f(tk+iipk+i)). Полином получен; затем путем интегрирования по интер- интервалу [tfc;tfc+i] получаем корректор Адамса-Маултона: C) Ук+i =Ук+ 24(Л-2 " 5^-i + 19fk + 9^+1)' На рис. 9.10 показаны узлы для полинома Лагранжа, которые используются при выведении формул B) и C) соответственно.
9.6. Методы прогноза-коррекции 513 tk-3 tk-2 tk-1 tk+1 (а) Четыре узла для прогноза Адамса-Бешфорса (используются при экстраполяции) tk-3 (b) Четыре узла для корректора Адамса-Маултона (используются при интерполяции) Рис. 9.10. Интегрирование на [?*; tk-i] в методе Адамса-Бешфорса Оценка ошибки и коррекция Остаточный член формулы численного интегрирования используется, чтобы получить и прогноз, и корректор порядка О (Л5). Локальная ошибка усечения для формул B) и C) имеет вид D) y(t*+i) - рл+1 = 72(j E) v(t*+i) - Ук+i = (Л.О.У. для прогноза), (Л.О.У для корректора). Предположим, что h мало и y^(t) — почти постоянная на интервале. Тогда можно исключить члены, содержащие производную пятого порядка в формулах D) и E). В результате получим -19 F) - Ук+\ « Поясним преимущества метода прогноза-коррекции. Формула F) дает прибли- приближенную оценку ошибки, которую получаем при вычислении значений рь+i и у*+ь не используя y^(t). Практические выводы Корректор C) использует приближения Д+i « /(t^+i,pjb+i) при вычислении yjb+i. Поскольку yk+i также является оценкой для y{tk+\), ее можно использовать в корректоре C) для генерирования нового приближения для Д+ь которое, в свою очередь, будет генерировать новое значение для у*+1- Кроме того, если продолжить эту итерацию в корректоре, она сойдется к фиксированной точке в C) скорее, чем дифференциальное уравнение. Если необходимо получить большую точность, то такая процедура более эффективна, чем уменьшение длины шага.
514 Глава 9. Решение дифференциальных уравнений Новые узловые точки —*• tk-z/2 *fc-i *fc-i/2 tk + + +» Ф Старые ¦. tfc-3 **-2 *fc-i h узловые точки Рис. 9.11. Уменьшение длины шага до h/2 в приведенном методе Формулу F) можно использовать для определения, когда изменять длину шага! Несмотря на то что в нашем распоряжении уже есть тщательно разработанные методы, покажем, как уменьшить длину шага до h/2 или увеличить до 2/i. Пусть RelErr = 5х 10~6 — критерий относительной ошибки, и пусть Small = 10~5. Если прогноз и коррекция значений не дают соответствия в пять значащих цифр, то формула G) уменьшает длину шага. Если же они приводят к семи ила более значащим цифрам, то по формуле (8) длина шага увеличивается. Эти па- параметры могут быть прекрасно согласованы, чтобы удовлетворять требованиям вашего индивидуального компьютера. Уменьшение длины шага потребует четырех новых начальных значений. Что- Чтобы восполнить недостающие значения, которые делят интервалы \tk-2\ **-i] я [tjb-i; tk]9 используем интерполяцию функции /(?, y(t)) полиномом четвертой сте- степени. Новые четыре узловые точки, ^-з/2> *>к-ъ tk-i/2 и *ь используются в последующих вычислениях и показаны на рис. 9.11. Интерполяционная формула, необходимая для получения новых исходных зна- значений для шага, равного h/2, имеет вид + 140Д-1 + 35Д /*-i/2 128 , _ ЗА-4 - 20Д-3 + 90Д-2 + бОД-i - 5Д Д-з/2 - Гораздо проще увеличить длину шага. Понадобятся, семь предшествующих то- точек, чтобы удвоить шаг. Четыре новые точки получаем, пропуская каждую вторую точку, как показано на рис. 9.12. Метод Милна-Симпеона Другая распространенная схема "прогноз-корректор" известна под названи- названием "метод Милна-Симпсона". Его прогноз основан на интегрировании функции
9.6. Методы прогноза-коррекции 515 tk-6 th-A tk-2 tk - Новые Ф ф . ^ . ф узловые точки fjb-6 ^fc-5 *fc~4 ^fc-з *fc-2 tk-i tk -* Старые узловые точки Рис. 9.12. Увеличение длины шага до 2Л в приведенном методе f{t,y{t)) на интервале [tfc-3!*ib+i]: (Ю) y(tfc+i) = y(ifc-3) + [ + /(*,У(*)) dt. Jtk-3 Прогноз использует приближение полиномом Лагранжа для f(t,y(t))9 постро- построением по точкам (t*_3; Д-з), (tk-2', Д-2), (t*-i; Д-i) и (**; Д). Интегрируем его по интервалу [*л-з;'л+1] и получаем прогноз Милна: Ah (И) РА;+1 = У*-з + уBД-2 - Д-1 + 2Д). Корректор получаем аналогично. Сейчас можно использовать значение Построим второй полином Лагранжа для функции /(t, y(t)) по точкам (<*-i; Д-i), (**;Д) и новой точке (tfc+1; Д+1) = (tfc+i;/(tfc+i;pfc+i)). Проинтегрируем поли- полином на отрезке [<jb-i,*ib+i] и в результате получим хорошо знакомую формулу Симпсона: A2) y*+i = у*_1 + -(Д-1 + 4Д + Д+1). Оценка ошибки и коррекция Остаточный член формулы численного интегрирования используется для по- получения как прогноза, так и корректора порядка O(hb). Окончательная общая ошибка для формул A1) и A2) равна по A3) yfo+i) - рк+1 = qqyE)(c*+i)/i5 (O.O.O. для прогноза), A4) y(th+1) - ук+1 = ^-УE)(dfc+i)*5 @.0.0. для корректора). Предположим, что шаг Л настолько мал, что y^(t) почти постоянна на интер- интервале [tfc-з; *fc+i]. Тогда из формул A3) и A4) можно исключить члены, содержащие производную пятого порядка, и в результате получить 28 A5) У(**+0 - Рк+l » 29 (УА:+1 ~ PJb+l). Формула A5) дает оценку для прогноза, которая основана на вычислении зна- значений pk+\ и Ук+i и не использует у^(*)- Ее можно использовать для улучшения
516 Глава 9. Решение дифференциальных уравнений значения прогноза. Если предположить, что разность между значениями прогноз» и коррекции на каждом шаге изменяется медленно, то можно подставить рь и до вместо pk+i и у&+1 в A5) и получить следующий управляющий параметр: A6) ^^ Его значение используется вместо рь+\ на шаге коррекции, и формула A2) при- принимает вид A7) мь+1 = ifc_i + -(/*-! +4Д + /(<*+i,m*+1)). Таким образом, улучшенный (модифицированный) метод Милна-Симпсона имеет вид 4/i pk+i = yjfc-з + уBД-2 - /jb-i + 2Д) (прогноз) mjb+i = pfc+i + 28УА: 2QPk (управляющий параметр) = yjb_i + з (Л-1 + 4Д + Д+i) (корректор). Следующий важный метод — метод Хемминга. Его вывод здесь не рассмат- рассматривается, но в конце раздела приводится программа, использующая этот метод, В качестве последнего предостережения напомним, что все методы прогноза- коррекции вызывают проблемы, связанные с их устойчивостью. Устойчивость - это раздел повышенной сложности, и серьезному читателю следовало бы изучить эту проблему. Пример 9.13. Используем методы Адамса-Бешфорса-Маултона, Милна-Сим- Милна-Симпсона и Хемминга с шагом, равным h = |, и вычислим приближенные решения задачи Коши У' = ^, У(О) = 1 на [0;3]. Воспользуемся методом Рунге-Кутта, чтобы получить начальные значения 2/1 = 0,94323919, у2 = 0,89749071, и у3 = 0,86208736. Затем реализация на компьютере программ 9.6-9.8 даст значения, которые при- приводятся в табл. 9.12. Ошибка каждого элемента таблицы дана как множитель числа 10~8. Все элементы имеют по крайней мере шесть знаков точности. В этом примере наилучший ответ получен методом Хемминга. ¦
9.6. Методы прогноза-коррекции 517 Таблица 9.12. Сравнение решения задачи Коши у1 = (t — 2/)/2, г/@) = 1 методами Адамса-Бешфорса-Маултона, Милна-Симпсона и Хемминга А; 0,0 0,5 0,625 0,75 0,875 1,0 1,5 2,0 2,5 2,625 2,75 2,875 3,0 Адамс- Бешфорс- Маултон 1,00000000 0,83640227 0,81984673 0,81186762 0,81194530 0,81959166 0,91709920 1,10363781 1,35951387 1,43243853 1,50851827 1,58756195 1,66938998 Ошибка ОЯ-8 8Я-8 16Я-8 22Я-8 28Я-8 32Я-8 46Я-8 51Я-8 52JE7 —8 52Я-8 52Я-8 51Я-8 БОЕ-8 Милн- , Симпсон 1,00000000 0,83640231 0,81984687 0,81186778 0,81194555 0,81959190 0,91709957 1,10363822 1,35951429 1,43243899 1,50851869 1,58756240 1,66939038 Ошибка ОЯ-8 4Я-8 2Е-8 6Я-8 ЗЕ-8 8JE7 —8 9Я-8 WE-8 WE-8 6Е-8 WE-8 6Е-8 WE -8 Метод Хемминга 1,00000000 0,83640234 0,81984688 0,81186783 0,81194558 0,81959198 0,91709967 1,10363834 1,35951441 1,43243907 1,50851881 1,58756248 1,66939050 Ошибка 0Я--8 1Е-8 1Е-8 1Е-8 ОЕ-8 ОЕ-8 -IE-8 -2Я-8 -2J57-8 -2Я-8 -2Е-8 -2Я-8 -2Е-8 Правильный шаг Наш выбор методов не случаен: во-первых, их вывод прост даже для перво- первокурсников, во-вторых, более сложные методы выводятся аналогично, в-третьих, наиболее сложные задачи можно решить одним из этих методов. Тем не менее, когда для решения задачи Коши у1 = /(^,у), где y(to) = уо, на очень большом интервале используется метод прогноза-коррекции, возникают некоторые трудно- трудности. Если fy(t, у) < 0 и длина шага слишком велика, метод прогноза-коррекции мо- может быть неустойчивым. Эмпирическое правило: устойчивость существует, когда малая ошибка при распространении уменьшается, и неустойчивость появляется тогда, когда малая ошибка при распространении увеличивается. Когда на большом интервале используется слишком большая длина шага, в результате появляется неустойчивость и иногда в решении явно проявляются осцилляции. Их можно ослабить, выбрав меньшую длину шага. Формулы G)-(9) подсказывают, как мож- можно модифицировать алгоритм (алгоритмы). Если включена проверка длины шага, то следует использовать приведенную ниже оценку ошибки (ошибок): A9) B0) B1) У (*fc) - Ук « 19 У (tk) ~ Ук ~ Ук « 9- Рк-Ук 270 Рк-Ук 29 Рк-Ук 121 (Адамс-Бешфорс-Маултон), (Милн-Симпсон), (Хемминг).
518 Глава 9. Решение дифференциальных уравнений Во всех методах корректор шага имеет тип итерации неподвижной точки. Мож- Можно доказать, что для этих методов длина шага h должна удовлетворять следующим условиям: О f\f\(\(\*7 B2) h <С т-р-}—ту (Адамс-Бешфорс-Молтон), 1/у(*>1/I B3) h < тт-7—гт (Милн-Симпсон) 1/(*УI B4) h «С jj——rr (Хемминг). Заметим, что <С в формулах B2)-B4) означает "намного меньше чем". В сле- следующем примере показано, что следует использовать более строгие неравенства: т4—ту (Адамс-Бешфорс-Маултон), ' (Милн-Симпсон), B5) B6) B7) h< h< h< \fy(t,y)\ 0,69 (Хемминг). \fy(t,y)\ Неравенство B7) можно найти в книгах повышенной сложности по численному анализу. Два других неравенства кажутся подходящими для следующего примера. Пример 9.14. Воспользуемся методами Адамса-Бешфорса-Маултона, Милна- Симпсона и Хемминга и найдем приближенные решения задачи Коши у' = 30 - 5у, у@) = 1 на интервале [0; 10]. Все три метода имеют порядок O(/i4). Если во всех трех методах количество шагов равно N = 120, то максимальная ошибка для каждого метода возникает в различных местах: 2/@,41666667) - у5 « -0,00277037 (Адамс-Бешфорс-Маултон), у@,33333333) - 2/4 « -0,00139255 (Милн-Симпсон), у@,33333333) - т/4 « -0,00104982 (Хемминг). Во всех крайних справа точках t = 10 ошибка равна 2/A0) - yi2o « 0,00000000 (Адамс-Бешфорс-Маултон), 2/A0) - 2/120 « 0,00001015 (Милн-Симпсон), 2/A0) - 2/120 ~ 0,00000000 (Хемминг). Оба метода (и Адамса-Бешфорса-Маултона, и Хемминга) дают э приближенных решениях восемь знаков точности в крайней справа точке. ¦
9.6. Методы прогноза-коррекции 519 /ч А V V V = 37 О 7 8 9 10 Рис. 9.13. (а) Решение Адамса-Бешфорса- Маултона задачи Коши у' = 30 — Ъу с числом шагов TV = 37 порождает колебания. Оно стабилизируется, когда N = 65, так как h = = 10/65 = 0,1538 «0,15 = 0,75/5 = 0,75/|/y(t,y)| У = 93 0 123456789 10, Рис. 9.13. (b) Решение Мшша-Симпсона задачи Коши у1 = 30 - Ъу при числе шагов N = 93 по- порождает колебания. Оно стабилизируется при ЛГ = = 110, так как Л = 10/110 = 0,0909 « 0,09 = = 0,45/5 = 0,45/1/^,2/)! Поучительно наблюдать, что если длина шага слишком велика, то вычисленное решение колеблется около истинного решения. На рис. 9.13 проиллюстрирован этот феномен. Малое число шагов экспериментально было определено таким об- образом, чтобы колебания были приблизительно одинаковой величины. Большее количество шагов, которые требуются для ослабления колебаний, было определе- определено с помощью уравнений B5)-B7). В каждой из следующих трех программ требуется, чтобы первые четыре коор- координаты Т и Y начальных значений были получены другим методом. Рассмотрим
520 Глава 9. Решение дифференциальных уравнений ^ >v A 0 123456789 10 Рис. 9.13. (с) Решение Хемминга уравнения у1 = = 30 — Ъу с N — 50 шагами приводит к коле- колебаниям. Оно стабилизируется при N = 70, так как, h = 10/70 = 0,1428 « 0,138 = 0,69/5 = пример 9.13, в котором были шаг h = \ и интервал [0; 3]. Следующие строки ко- команд из MATLAB command window создают подходящие входные векторы Т и Y. >T=zeros(l,25); >Y=zeros(l,25); >Т=0:1/8:3; >YA:4)=[1 0.94323919 0.89749071 0.86208736]; Программа 9.6 (метод Адамса-Бешфорса-Маултона). Программа предна- предназначена для приближенного решения задачи Коши у1 = /(*,у) с у(а) = уо на интервале [а; Ь] с использованием прогноза Pk+1 = Ук + 2Т1"~У/А;-3 и корректора = Ук + 24(Л-2 - 5Д-1 + 19/fc + 9/fc+i). function A=abm(f,T,Y) '/.Вход - f - функция, вводимая как строка }fJ */# - Т - вектор абсцисс % - Y - вектор ординат '/•Замечание. Первые четыре координаты векторов Т и Y должны У, иметь исходные значения, полученные методом РК4
9.6. Методы прогноза-коррекции 521 •/.Выход - А=[Т> Y>] , где Т - вектор абсцисс и У» Y - вектор ординат n=length(T); if n<5,break,end; F=zeros(l,4); F=feval(f,T(l:4),Y(l:4)); h=TB)-T(l); for k=4:n-l •/.Прогноз p=Y(k)+(h/24)*(F*[-9 37 -59 55]'); T(k+l)=T(l)+h*k; F=[FB) FC) FD) feval(f,T(k+l),p)]; '/.Корректор Y(k+l)=Y(k)+(h/24)*(F*[l -5 19 9]О; FD)*feval(f,T(k+l),Y(k+D); end A=[T> Программа 9.7 приближенного (метод Милна-Симпсона). Программа решения задачи [а; Ь] с использованием прогноза и корректора Рк+г=Ук-г- Ук+i = Ук-х Коши у1 = + уBЛ- = /(*,у) 2-Л-1 + 4Л + су(а) + 2Л) предназначена для = уо на интервале function M=milne(f,T,Y) •/¦Вход - f - функция, вводимая как строка Jf' 7. - Т - вектор абсцисс У. - Y - вектор ординат •/«Замечание. Первые четыре координаты векторов Т и Y должны '/, иметь исходные значения, полученные методом РК4 •/•Выход - М^ГР Y>], где Т - вектор абсцисс и */• Y - вектор ординат n=length(T); if n<5,break,end; F=zeros(l,4); F=feval(f,T(l:4),Y(l:4)); h=TB)-T(l);
522 Глава 9. Решение дифференциальных уравнений pold=0; yold=0; for k=4:n-l •/.Прогноз pnew=Y(k-3)+D*h/3)*(FB:4)*[2 -1 2]>); •/Управляющий параметр pmod=pnew+28*(yold-pold)/29; T(k+l)=T(l)+h*k; F=[FB) FC) FD) feval(f,T(k+l),pmod)]; •/.Корректор Y(k+l)=Y(k-l) + (h/3)*(FB:4)*[l 4 1] ') ; pold=pnew; yold=Y(k+l); FD)=f eval(f ,T(k+l) ,Y(k+D) ; end M=[T> Y>]; Программа 9.8 (метод Хемминга). Программа предназначена для прибли- приближенного решения задачи Коши у; = /(?,у) с у (а) = уо на интервале [а]Ь] с использованием прогноза 4/i , f О / f I Q/ \ О и корректора function H=hamming(f,T,Y) •/.Вход - f - функция, вводимая как строка yf} 7. - Т - вектор абсцисс 7. - Y - вектор ординат •/.Замечание. Первые четыре координаты векторов Т и Y должны 7. иметь исходные значения, полученные методом РК4 7.Выход - Н=[Т' Y'], где Т - вектор абсцисс и X Y - вектор ординат n=length(T); if n<5,break,end; F=zeros(l,4); F=feval(f,T(l:4),Y(l:4)); h=TB)-T(l);
9.6. Методы прогноза-коррекции 523 pold=0; cold=0; for k=4:n-l '/.Прогноз pnew=Y(k-3)+D*h/3)*(FB:4)*[2 -1 2]>); '/«Управляющий параметр pmod=pnew+112*(cold-pold)/121; T(k+l)=T(l)+h*k; F=[FB) FC) FD) feval(f,T(k+l),pmod)]; '/«Корректор cnew=(9*Y(k)-Y(k-2)+3*h*(FB:4)*[-l 2 l] Y(k+l)=cnew+9*(pnew-cnew)/121; pold=pnew; cold=cnew; FD)=feval(f,T(k+l),Y(k+l)); end H=[T' Y']; Упражнения к разделу 9.6 В упр. 1-3 используйте метод Адамса-Бешфорса-Маултона, три начальные зна- значения, уь 2/2 и уз, и шаг, равный h = 0,05, для вычислений вручную следующих значений задачи Коши у\ и г/5- Сравните свое решение с точным решением y(t). 1. у' = f2 - у, у@) = 1 на интервале [0; 5], y{t) = -е""* +12 - 2t + 2 2/@,05) = 0,95127058 1/@,10) = 0,90516258 2/@,15) = 0,86179202 2. у1 = у + 3* - t2, у@) = 1 на интервале [0; 5], y(t) = 2еь + t2 -t-1 у@,05) = 1,0550422 у@,10) = 1,1203418 у@,15) = 1,1961685 3. у' = -t/y, уA) = 1 на интервале [1; 1,4], y(t) = B - t2I!2 2/A,05) = 0,94736477 уA,10) = 0,88881944 2/A,15) = 0,82310388
524 Глава 9. Решение дифференциальных уравнений В упр. 4-6 используйте метод Милна-Симпсона, три начальных значения, уь уг и уз, и шаг, равный h = 0,05, для вычислений вручную следующих значений задачи Коши у4 и 2/5- Сравните свое решение с точным решением y(t). 4. у' = е~* - у, у@) = 1 на интервале [0; 5], y(t) = <е~* + е~* у@,05) = 0,99879090 у@,10) = 0,99532116 2/@,15) = 0,98981417 5. у' = 2ty2, у@) = 1 на интервале [0; 0,95], y{t) = 1/A - t2) у@,05) = 1,0025063 у@,10) = 1,0101010 у@,15) = 1,0230179 6. у' = 1 + у2, у@) = 1 на интервале [0; 0,75], y{t) = tan(* + тг/4) у @,05) = 1,1053556 у@,10) = 1,2230489 у@,15) = 1,3560879 В упр. 7-9 используйте метод Хемминга, три начальных значения, уь уг и уз, и шаг, равный h = 0,05, для вычислений вручную следующих значений задачи Коши у4 и у5. Сравните свое решение с точным решением y(t). 7. у' = 2у - у2, у@) = 1 на интервале [0; 5], y(t) = 1 + tanh(<) у@,05) = 1,0499584 у@,10) = 1,0996680 у@,15) = 1,1488850 8. у' = A - у2I/2, у@) = 0 на интервале [0; 1,55], y(t) - sin(t) у@,05) = 0,049979169 у @,10) = 0,099833417 у@,15) = 0,14943813 9. у' = у2 sin(i), у@) = 1 на интервале [0; 1,55], y(t) = sec(t) у@,05) = 1,0012513 у@,10) = 1,0050209 у@,15) = 1,0113564 Алгоритмы и программы 1. (а) Воспользуйтесь программой 9.6 для решения дифференциальных урав- уравнений в упр. 1-3. (Ь) Постройте график своего приближенного и точного решений в одной и той же системе координат.
9.7. Системы дифференциальных уравнений 525 2. (а) Воспользуйтесь программой 9.7 для решения дифференциальных урав- уравнений в упр. 4-6. (Ь) Постройте график своего приближенного и точного решений в одной и той же системе координат. 3. (а) Воспользуйтесь программой 9.8 для решения дифференциальных урав- уравнений в упр. 7-9. (Ь) Постройте график своего приближенного и точного решений в одной и той же системе координат. 4. Воспользуйтесь программой 9.6 для решения задачи Коши у' = 30-5у, у@) = 1 на[0;10] с числом шагов, равным N = 37 и N = 65. Постройте графики решений, аналогичные графику, показанному на рис. 9.13. 5. Рассмотрите задачу Коши у' = 45 — 9у, уA) = 0 на интервале [1; 20]. (a) Используйте неравенство B2), чтобы показать, какая из длин шага делает метод Адамса-Бешфорса-Маултона неустойчивым. (b) Основываясь на результатах выполнения п. (а), отметьте длины шагов hs и hU9 для которых метод Адамса-Бешфорса-Маултона может быть соответственно устойчивым и неустойчивым. По методу Рунге-Кутта получите три начальных значения уь уг и уз, для каждого шага. (c) Воспользуйтесь программой 9.6, чтобы получить два приближенных ре- решения задачи Коши для каждого шага. (d) Используйте результаты выполнения п. (с), чтобы построить график, ана- аналогичный графику, который показан рис. 9.13. Возможно, вам придется экспериментировать с некоторым множеством шагов. 9.7. Системы дифференциальных уравнений Этот раздел — введение в теорию систем дифференциальных уравнений. Чтобы дать общее представление, рассмотрим задачу Коши dx Решением системы A) является пара дифференцируемых функций, x(t) и у(?), со следующими свойствами. Если ?,x(i) и y(t) подставим в /(t,x,y) и g(t,x,y), то в результате получим производные xf(t) и y'(t) соответственно, т. е. x\t) = /(*, *(*), y(t)) Г x(t0) = яо, \у(«о)=УО.
526 Глава 9. Решение дифференциальных уравнений Для примера рассмотрим систему дифференциальных уравнений dx <з, Г « Г *(о) = б, \у@)=4. Решением задачи Коши C) буцет ^) = 4e4t + 2e"*, } у(«) = 6e4t - 2e~'. Это можно проверить, если подставить x(t) и y(t) в правую часть системы уравнений C), вычислить производные уравнений D) и затем, подставив их в левую часть C), получить 16е4' - 2е~* = De4t + 2e~*) + 2Fe4t - 2e"*), 24е4' + 2е"* = 3Dе4* + 2е"*) + 2Fe4t ~ 2е~*). Численные решения Численное решение системы A) на интервале a<t<b находим посредством рассмотрения дифференциалов E) dx = f(t,x,y)dt и dy = g(t,x,y)dt. Легко сформулировать метод Эйлера для решения системы. Подставим диффе- дифференциалы dt = ?fc+i - tk, dx = а;*+1 - х* и rfy = j/fc+i - у* в E) и получим Разделим интервал на М подынтервалов с шагом длины h = F—а)/М с узловыми точками tfc+i = tk + h. Используем это в F), чтобы получить рекуррентную формулу для метода Эйлера: G) хк+\ = хк 4- yk+i=yk + hg(tk,Xk,yk) Для fc = 0, I, ..., Af - 1. Метод более высокого порядка следует использовать для достижения приемле- приемлемой точности. Например, формула Рунге-Кутта порядка 4 имеет вид + (/ + 2/2 + 2/3 + /4), = УА: + g E1 + 2^2 + 2р3 + 54), (8) *
9.7. Системы дифференциальных уравнений 527 где f{tk), 9i = t( h h r h \ ( h ht h \ f2 = f\tk + ^,xk + -fi,yk + ^9ij , 92 = 9 \tk+ 2>Xk+ 2*иУк+ 291) ' ,( h h, h \ ( h h t h \ h = f \tk + 2>ж* + 2*ъУк + 292) ' 9з = 9 Ith + 2'Xk + 2^2'yjt + 292) ' /4 = / (** + h,xk + hf3,yk + hg3), 94 = 9 (tk + h,xk + hf3,yk + hg3). Пример 9.15. Используем заданный в (8) метод Рунге-Кутта и найдем числен- численное решение для C) на интервале [0,0; 0,2] с десятью подынтервалами и шагом, равным h = 0,02. Первой точкой выберем t\ = 0,02, и для промежуточных вычислений требуется найти х\ и ух. fx = /@,00; 6,0; 4,0) = 14,0 дг = #@,00; 6,0; 4,0) = 26,0 хо + ?/i = 6,14 уо + ^91 = 4,26 /2 = /@,01; 6,14; 4,26) = 14,66 д2 = 0@,01; 6,14; 4,26) = 26,94 хо + \h = 6,1466 уо + \92 = 4,2694 /з = /@,01; 6,1466; 4,2694) = 14,6854 Зз = /@,01; 6,1466; 4,2694) = 26,9786 xo+hf3 = 6,293708 у0 + hg3 = 4,539572 /4 =/@,02; 6,293708; 4,539572) = 15,372652 д4 =/@,02; 6,293708; 4,539572) = 27,960268 Полученные значения используем для окончательных вычислений: xi = 6 + ^A4,0 + 2A4,66) + 2A4,6854) + 15,372852) = 6,29354551, о У1 = 4 + ^B6,0 + 2B6,94) + 2B6,9786) + 27,960268) = 4,53932490. о Все вычисления сведены в табл. 9.13. ¦ Численные значения содержат определенную ошибку на каждом шаге. В приме- примере, приведенном выше, ошибка растет и в крайней справа точке t = 0,2 достигает своего максимума: ж@,2) - х10 = 10,5396252 - 10,5396230 = 0,0000022, у@,2) - ую = 11,7157841 - 11,7157807 = 0,0000034.
528 Глава 9. Решение дифференциальных уравнений Таблица 9.13. Решение методом Рунге-Кутта системы x'(t) = х + 2у9 y'(t) = Зх + 2г/ с начальными значениями х@) = 6 и t/@) = 4 к 0 1 2 3 4 5 6 7 8 9 10 tk 0,00 0,02 0,04 0,06 0,08 0,10 0,12 0,14 0,16 0,18 0,20 Хк 6,00000000 6,29354551 6,61562213 6,96852528 7,35474319 7,77697287 8,23813750 8,74140523 9,29020955 9,88827138 10,5396230 Ук 4,00000000 4,53932490 5,11948599 5,74396525 6,41653305 7,14127221 7,92260406 8,76531667 9,67459538 10,6560560 11,7157807 Дифференциальные уравнения высших порядков Дифференциальные уравнения высших порядков содержат производные x"(t), x"'(t) и т. д. Они возникают в математических моделях инженерных задач и физике. Например, уравнение mx"(t) + cx'(t) + kx(t) = g(t) представляет механическую систему, в которой пружина с постоянной упруго- упругостью к воздействует на перемещаемую массу га. Предполагается, что торможение пропорционально скорости и функция g(t) является внешней силой. Во многих случаях начальное положение ж (to) и скорость x'(to) известны в определенный момент to- Решая уравнение относительно производной второго порядка, можно записать задачу Коши второго порядка в виде (9) x"{t) = f{t,x(t),x'{t)) с яг(*о) =жои x'(t0) = Дифференциальное уравнение второго порядка можно записать как систему из двух уравнений первого порядка, если использовать подстановку A0) x'(t) = y(t). Тогда x"(t) = y'(t) и дифференциальное уравнение (9) превращается в систему. (и) dx {x(to) = Хо, у(*о) = Уо-
9.7. Системы дифференциальных уравнений 529 Такую численную процедуру, как метод Рунге-Кутта, можно использовать для решения системы A1), и она будет генерировать две последовательности: {х^} и {ук}- Первая последовательность — это численное решение задачи (9). Следую- Следующий пример можно интерпретировать, как затухающее гармоническое движение. Пример 9.16. Рассмотрим задачу Коши второго порядка x"{t) + 4x'(t) + 5x{t) = О с х@) = 3 и х'@) = -5. (a) Запишем ниже эквивалентную систему двух уравнений первого порядка. (b) Используем метод Рунге-Кутта для решения переформулированной задачи на интервале [0; 5], разделенном на М = 50 подынтервалов с шагом h = 0,1. (c) Сравним численное решение с истинным: x(t) = 3eicos(*) + e~2t sin(t). Дифференциальное уравнение имеет вид x"(t) = f(t,x(t),x'(t)) - -4z'(t) - Bx(t). Используя подстановку в A0), получим переформулированную задачу: dx Tt=y f*@) = 3, \ v@) = -5. Численные вычисления приведены в табл. 9.14. Значения {yk} — вспомогатель- вспомогательные и в таблицу не включены. Вместо этого включены для сравнения истинные значения решения {x(tk)}. ш Таблица 9.14. Решение методом Рунге-Кутта задачи x"(t) + 4z'(?) + 5x(t) = 0 с начальными условиями х@) = 3 и х'@) = —5 к 0 1 2 3 4 5 10 20 30 40 48 49 50 tk 0,0 0,1 0,2 0,3 0,4 0,5 1,0 2,0 3,0 4,0 4,8 4,9 5,0 Хк 3,00000000 2,52564583 2,10402783 1,73506269 1,41653369 1,14488509 0,33324302 -0,00620684 -0,00701079 -0,00091163 -0,00004972 -0,00002348 -0,00000493 x(tk) 3,00000000 2,52565822 2,10404686 1,73508427 1,41655509 1,14490455 0,33324661 -0,00621162 -0,00701204 -0,00091170 -0,00004969 -0,00002345 -0,00000490
530 Глава 9. Решение дифференциальных уравнений Упражнения к разделу 9.7 В упр. 1-4 используйте шаг, равный h = 0,05. (a) Найдите методом Эйлера G) вручную (#i,yi) и (#2,У2)- (b) Методом Рунге-Кутта (8) вручную найдите (zi,yi). 1. Решите систему х1 = 2х + Зу, у' = 2х + у с начальными условиями #@) = = —2,7 и у@) = 2,8 на интервале 0 < t < 1,0, используя шаг h = 0,05. Полигональная траектория, построенная по совокупности решений, дана на рис. 9.14, и ее можно сравнить с аналитическим решением: 2. Решите систему х' = Зх — у, у1 = 4аг — у с начальными условиями ж@) = 0,2 и у@) = 0,5 на интервале 0 < t < 2, используя шаг h = 0,05. Полигональная траектория, построенная по совокупности решений, дана на рис. 9.15, и ее можно сравнить с аналитическим решением: 1 , 1 V(t) = \ег - |* 3. Решите систему х' = х — 4у, у' = х + у с начальными условиями ж@) =2 и у@) = 3 на интервале 0 < t < 2, используя шаг Л = 0,05. Полигональная траектория, построенная по совокупности решений, дана на рис. 9.16, и ее можно сравнить с аналитическим решением: x(t) = -2е* + 4е* cos2(t) - 12е* cos(t) sin(t) -2 -1 Рис. 9.14. Решение системы х' = = 2х -I- Зу и у' = 2а: + у на интер- интервале [0,0; 1,0] 0,8 0,6 0,4 0,2 0,0 0,1 0,2 Рис. 9.15. Решение системы х' = = Зх — у и $/' = 4я — у на интервале [0,0; 2,0]
9.7. Системы дифференциальных уравнений 531 / ( -10 V -10 -20 *>• i 10 - 20 Рис. 9.16. Решение системы х' = = х — Ау и у1 = х + у на интервале [0,0; 2,0] 0,0 0,2 0,4 0,6 0,8 1 Рис. 9.17. Решение системы х1 = = у — Ах и у1 = х + у на интервале [0,0; 1,2] = -Зе* + бе* cos2(t) + 2е* cos(*) sin(t). 4. Решите систему х1 = ж — 4у, у1 = ж + у с начальными условиями ж(О) = 1 и у@) = 1 на интервале 0 < t < 1,2, используя шаг h = 0,05. Полигональная траектория, построенная по совокупности решений, дана на рис. 9.17, и ее можно сравнить с аналитическим решением: e-y/29t/2 + и j-v/29t/2 + eV2§t/2 2^3*72; В упр. 5-8 выполните следующее. (a) Убедитесь, что функция x(t) является решением. (b) Запишите дифференциальное уравнение второго порядка как систему из двух уравнений первого порядка. (c) Используйте шаг h = 0,1 и вручную методом Эйлера найдите х\ их2- (d) Используйте шаг h = 0,05 и методом Рунге-Кутта вручную найдите х\. 5. 2x"(t) - 5xf(t) - 3x(t) = 45e2t с х@) = 2 и а;;@) = 1 x{t) = 4е~*/2 + 7est - 9e2t 6. x"{t) + 6x'(t) + 9x{t) =0c x@) = 4 и х;@) = -4 a(i) = 4et + 8te~zt
532 Глава 9. Решение дифференциальных уравнений 7. x"(t) + x(t) = 6cos(*) с х@) = 2 и я'@) = 3 rr(?) = 2cos(t) + 3sin(?) + 3tsin(t) 8. z"(t) + 3a?'(t) = 12 с x@) = 5 и z'@) = 1 x(t) = 4 + At + e~3t Алгоритмы и программы 1. Напишите программу для решения системы уравнений методом Рунге-Кутта порядка N — А (формула (8)). В задачах 2-5 воспользуйтесь вашей программой, реализующей метод Рунге- Кутта для решения системы уравнений, чтобы решить приведенные ниже системы с шагом h = 0,05. Постройте график приближенного и аналитического решений в одной и той же системе координат. 2. х1 = 2х + Зу, у' = 2х + у с х{0) = -2,7; у@) = 2,8 на 0 < t < 1,0. *(*) = -и*"* + h^ и V(t) = ge-' + i*«. 3. a/ = Зж - у, у; = 4rc - у с х@) = 0,2; y@) = 0,5 на 0 < t < 2. «(*) = ? ~ ^tet и У(*) = 5e< - 5*e*- 4. a:# = a: - 4y, y' = я: + у с ж@) = 2, y@) = 3 на 0 < t < 2. a;(t) = -2e* + 4e* cos2(t) - 12e* cos(t) sin(t). y(t) = -3e* + 6e* cos2(t) + 2e* cos(t) sin(t). 5. ж; = у - 4a:, y; = ж + у с ж@) = 1, у@) = 1 на 0 < t < 1,2. e-V29t/2 + В задачах 6-9 выполните следующее. (a) Перепишите дифференциальное уравнение второго порядка в виде системы двух уравнений первого порядка. (b) Воспользуйтесь своей программой, реализующей метод Рунге-Кутта для решения системы уравнений, чтобы решить приведенные системы ниже на интервале [0; 2] с шагом h = 0,05. (c) Постройте график приближенного и аналитического решений в одной и той же системе координат. 6. 2x"{t) - 5x'(t) - 3x(t) = 45e2t с х@) = 2 и х'@) = 1 x(t) = 4e-'/2 + 7e3t - 9e2t
9.7. Системы дифференциальных уравнений 533 7. x"(t) + 6x'(t) + 9x(t) = 0 с х{0) = 4 и х'(О) = -4 x(t) = 4et + 8te~3t 8. ж"(*) + x(t) = 6cos(t) с ж(О) = 2 и ж'@) = 3 x(t) = 2cos(t) + 3sin(i) + 3isin(t) 9. z"(i) + 3<c'(t) = 12 с x{0) = 5 и я'(О) = 1 x(t) = 4 + 4* + e"i В задачах 10-19 воспользуйтесь своей программой, реализующей метод Рунге- Кутта порядка N = 4 для решения системы уравнений, чтобы решить данное дифференциальное уравнение или систему уравнений. Постройте график каждого приближенного решения. 10. Некоторая резонирующая упругая система, находящаяся под действием пе- периодических сил, описывается дифференциальным уравнением x"{t) + 25x(t) = 8sinEt) с х{0) = 0 и х'@) = 0. Воспользуйтесь методом Рунге-Кутта для решения дифференциального урав- уравнения на интервале [0; 2] за М = 40 шагов и h = 0,05. 11. Математическая модель некоторой RLC электрической цепи описывается уравнением Q"(t) + 20Q'(t) + 125Q(t) = 9sinEt) с Q@) = 0 и Q'@) = 0. Используйте метод Рунге-Кутта для решения диф- дифференциального уравнения на интервале [0; 2] за М = 40 шагов h/i = 0,05. Примечание. I(t) = Q'(t) — ток в момент t. 12. В момент t угол между маятником и вертикальной осью равен x(t). Предпо- Предположим, что трения не существует. Тогда уравнение движения имеет вид mlxn(t) = — mgsin(x(t)), где т — масса и I — длина струны. Используйте метод Рунге-Кутта для решения дифференциального уравнения на интервале [0; 2] за М = 40 шагов и h = 0,05, если д = 32 футов/с2 и (a) / = 3,2 футов и х@) = 0,3 и ж'@) = 0. (b) / = 0,8 футов и х{0) = 0,3 и я;@) = 0. 13. Модель "хищник — жертва". Примером системы нелинейных дифферен- дифференциальных уравнений является задача "хищник — жертва". Обозначим через x(t) и y(t) популяцию зайцев и лис соответственно на момент ?. Модель "хищник — жертва" утверждает, что x(t) и y(t) удовлетворяют системе x'(t) = Ax(t) - Bx(t)y{t), y\t) = Cx(t)y(t) - Dy(t).
534 Глава 9. Решение дифференциальных уравнений Для обычного компьютерного моделирования можно использовать коэффи- коэффициенты А = 2, В = 0,02, С = 0,0002, D = 0,8. Найдите решение системы дифференциальных уравнений на интервале [0; 5] методом Рунге-Кутта за М = 50 шагов и h = 0,2, если имеется (a) х@) = 3000 зайцев и у@) = 120 лис; (b) х@) = 5000 зайцев и у@) = 100 лис. 14. Найдите решение системы х' = х — ху, у' = — у + ху с я@) = 4 и у@) = 1 на интервале [0;8] с шагом h = 0,1. Траектории системы образуют замкнутые пути. Полигональный путь, построенный по семейству решений, — одна из кривых, которые показаны на рис. 9.18. 15. Найдите решение системы х1 = -За;-2у--2а;у2, у1 = 2#-у+2у3 с х@) = 0,8 и у@) = 0,6 на интервале [0;4] с шагом h = 0,1. Для этой системы начало координат рассматривается как фокус, который асимптотически устойчив. Полигональный путь, построенный по семейству решений, — одна из кривых, которые показаны на рис. 9.19. 16. Найдите решение системы х' = у2 - х2, у' = 2#у с х@) = 2,0 и у@) = = 0.1 на интервале [0,0; 1,5] с шагом h = 0,05. Для этой системы в начале существует неустойчивая седловая точка. Полигональный путь, построенный по семейству решений, — одна из кривых, которые показаны на рис. 9.20. 17. Найдите решение системы х1 = 1 — у, у1 = х2 — у2 с х@) = —1,2 и у@) = = 0,0 на интервале [0;5] с шагом h = 0,1. Точка A;1) является фокусом, который асимптотически устойчив, и точка (—1; 1) — неустойчивая седловая 0 12 3 4 Рис. 9.18. Решения системы х1 = = х- ху и у1 = -у + ху -0,2 0,2 0,4 0,6 0,8 Рис. 9.19. Решения системы х1 =
9Л. Системы дифференциальных уравнений 535 точка. Полигональный путь, построенный по семейству решений, — одна из кривых, которые показаны на рис. 9.21. 18, Найдите решение системы х1 = х3 — 2ху2, у' = 2х2у — у3 с х@) = 1,0 и у@) = 0,2 на интервале [0; 2] с шагом h = 0,025. Эта система имеет неустой- неустойчивую критическую точку в начале. Полигональный путь, построенный по семейству решений, — одна из кривых, которые показы на рис. 9.22. 19. Найдите решение системы х* = ж2 — у2, у' = 2ху с х@) = 2,0 и у@) = 0,6 на интервале [0,0; 1,6] с шагом h = 0,02. В начале существует неустойчивая кри- критическая точка. Полигональный путь, построенный по семейству решений, — одна из кривых, которые показаны на рис. 9.23. 0,0 0,5 1,0 1,5 2,0 Рис, 9.20. Решения системы х' = = у2 - х2 и у1 = 2ху -2 -1 Рис. 9.21. Решения системы х' = = 1 - у и у' = х2 - у2 2,0 1,5 1,0 0,5 0,0 0,5 1,0 1,5 2,0 Рис. 9.22. Решения системы х1 = = х3 - 2ху2 и у1 = 2х2у - у3 \ -3 -2 -1 0 Рис. 9.23. Решения системы ж' = = х2 - у2 и у1 = 2ху
536 Глава 9. Решение дифференциальных уравнений 9.8. Краевые задачи Еще один тип дифференциальных уравнений имеет вид A) x" = f(t,x,x') для a<t<by с граничными условиями B) х(а)=а и х(Ь) = 0. Он называется краевой задачей. Прежде чем применять любой численный метод, следует проверить условия, которые гарантируют существование решения уравнения A); в противном случае можно получить на выходе таблицу значений, не имеющих смысла. Следующая теорема дает общие условия, обеспечивающие существование решения. Теорема 9.8 (краевая задача). Предположим, что Д*, я, у) непрерывна в об- области R = {(?, ж, у) : а < t < 6, — с» < х < оо, —оо < у < оо} и что df/dx = = fx(t, я, у) и df/ду = fy(t, х, у) непрерывны на jR. Если существует постоянная М > О, для которой fx и fy удовлетворяют условиям C) fx(t,x,y)>0 для всех (t,x,y)eR и D) \fy(t,x,y)\ <M для всех (t,x,y)eR, то краевая задача E) x" = f(t,x,x') с х{а) = а и х{Ь) = /3 имеет единственное решение # = ж(?) для a<t<b. Обозначение у = #'(?) было использовано для того, чтобы выделить третью пе- переменную функции f(t,x,xf). И наконец, рассмотрим заслуживающий внимания частный случай линейных дифференциальных уравнений. Следствие 9.1 (линейная краевая задача). Предположим, что функция / в теореме 9.8 имеет вид /(t,x,y) = p{t)y + q{t)x + r(t) и что / и ее частные производные df/дх = q(t) и df/ду = p(t) непрерывны на Д. Если существует постоянная М > 0, для которой p(t) и q(t) удовлетворяют неравенствам F) q(t) > 0 для всех t 6 [а, Ь] и G) то линейная кравевая задача (8) хм = p{t)x'(t) + q (t) x(t) + r{t) с х(а) = а и ж(Ь) = имеет единственное решение я = x(t) на интервале а < t < Ь.
9.8. Краевые задачи 537 Сведение к двум задачам Коши: линейный метод пристрелки Нахождению решения линейной краевой задачи способствует линейная струк- структура уравнения и использование двух частных задач Коши. Предположим, что u(t) — единственное решение задачи Коши (9) и11 = p(t)u'(t) + q(t)u(t) + r(t) с и(а) = а и и'{а) = 0. Кроме того, предположим, что v(i) — единственное решение задачи Коши A0) v" = p(t)v'(t) + q(t)v(t) с v(a) = 0 и v'(a) = 1. Тогда линейная комбинация A1) x(t) = u(t) + Cv(t) является решением уравнения х" = p(t)xr(i) + q(t)x(t) + r(t), как видно из сле- следующих вычислений: х" = ul/ + Cv" = p(t)u'(t) + q(t)u{t) + r(t) +p(t)Cv'(t) + q(t)Cv(t) = Р(*)И*) + Cv'{t)) + q{t)(u{t) + Cv(t)) + r(t) = p(t)xf(t) + q(t)x(t) + r(t). Пусть решение x(t) уравнения A1) удовлетворяет граничным условиям х(а) = и(а) + Cv(a) = а + 0 = а, ( } х(Ь)=и{Ь) + Сь(Ь). Если предположить, что х(Ь) = /3 в A2), то С = (/3 — u(b))/v(b). Таким образом, если г>F) ^ 0, то единственным решением задачи (8) является (И) x(t) = u(t) Примечание. Если q удовлетворяет предположениям следствия 9.1, то исключа- исключается неудобное решение v(t) = 0. Поэтому A3) — это одна из форм требуемого решения. Исследование деталей читатель может найти в упражнениях. Пример 9.17. Решим краевую задачу с граничными условиями х@) = 1,25 и хD) = -0,95 на интервале [0; 4]. Функции р, q и г соответственно равны р(?) = 2t/(l +12), g(t) = —2/A + <2) и r(t) = 1. Используем метод Рунге-Кутта порядка 4 с шагом h = 0,2, чтобы
538 Глава 9. Решение дифференциальных уравнений построить численные решения {uj} и {vj} уравнений (9) и A0) соответственно. Приближенные решения {uj} для u(t) даны в первом столбце табл. 9.15. Затем вместе с A3) используем значения гхD)« г^о = —2,893535 и v(A)« V20 = 4, чтобы получить ... Ь-«D). «D) -г;, =0,485884^-. Тогда требуемое приближенное решение задается равенством {xj} = {uj + wj}. Результаты вычислений приведены в табл. 9.15 и на рис. 9.24 показаны их графи- графики. Читатель может убедиться, что v(t) = t — это аналитическое решение краевой задачи A0), т. е. с граничными условиями v@) = 0 и v'@) = 1. Сравним приближенные решения из табл. 9.16 с численными решениями, по- полученными методом линейной пристрелки с шагами h = 0,2 и h = 0,1 и анали- Таблица 9.15. Приближенные решения {xj} = {uj + Wj 2t 2 уравнения *"(*) = J^^^ ~ T+& + * tj 0,0 0,2 0,4 0,6 0,8 1,0 1,2 1,4 1,6 1,8 2,0 2,2 2,4 2,6 2,8 3,0 3,2 3,4 3,6 3,8 4,0 Uj 1,250000 1,220131 1,132073 0,990122 0,800569 0,570844 0,308850 0,022522 -0,280424 -0,592609 -0,907039 -1,217121 -1,516639 -1,799740 -2,060904 -2,294916 -2,496842 -2,662004 -2,785960 -2,864481 -2,893535 Wj 0,000000 0,097177 0,194353 0,291530 0,388707 0,485884 0,583061 0,680237 0,777413 0,874591 0,971767 1,068944 1,166121 1,263297 1,360474 1,457651 1,554828 1,652004 1,749181 1,846358 1,943535 Xj = Uj + Wj 1,250000 1,317308 1,326426 1,281652 1,189276 1,056728 0,891911 0,702759 0,496989 0,281982 0,064728 -0,148177 -0,350518 -0,536443 -0,700430 -0,837265 -0,942014 -1,010000 -1,036779 -1,018123 -0,950000
9.8. Краевые задачи у 2 1 о -1 -2 -3 539 у = «(*) У = X(t) у = u(t) Рис. 9.24. Численные приближения u(t) и w(t), кото- которые используются в решении вида x(t) = u(t) -f w(t) уравнения x"(t) = j$rx'(t) - j^x(t) + 1 тическим решением a?(«) = 1,25 + 0,4860896526* - 2,25t2 + 2*arctan(*) - J ln(l +12) + \t2 ln(l +12). Таблица 9.16. Численные приближения для x"(t) = 0,0 0,2 0,4 0,6 0,8 1,0 1,2 1,6 2,0 2,4 2,8 3,2 3,6 4,0 Xj h = 0,2 1,250000 1,317308 1,326426 1,281652 1,189276 1,056728 0,891911 0,496989 0,064728 -0,350518 -0,700430 -0,942014 -1,036779 -0,950000 X{tj) точное 1,250000 1,317350 1,326505 1,281762 1,189412 1,056886 0,892086 0,497187 0,064931 -0,350325 -0,700262 -0,941888 -1,036708 -0,950000 X{tj)-Xj ошибка 0,000000 0,000042 0,000079 0,000110 0,000136 0,000158 0,000175 0,000198 0,000203 0,000193 0,000168 0,000126 0,000071 0,000000 3 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,8 1,0 1,2 1,6 2,0 2,4 2,8 3,2 3,6 4,0 Xj /i = 0,l 1,250000 1,291116 1,317348 1,328986 1,326500 1,310508 1,281756 1,189404 1,056876 0,892076 0,497175 0,064919 -0,350337 -0,700273 -0,941895 -1,036713 -0,950000 X{tj) точное ' 1,250000 1,291117 1,317350 1,328990 1,326505 1,310514 1,281762 1,189412 1,056886 0,892086 0,497187 0,064931 -0,350325 -0,700262 -0,941888 -1,036708 -0,950000 X(tj)-Xj ошибка 0,000000 0,000001 0,000002 0,000004 0,000005 0,000006 0,000006 0,000008 0,000010 0,000010 0,000012 0,000012 0,000012 0,000011 0,000007 0,000005 0,000000
540 Глава 9. Решение дифференциальных уравнений у = x(t) у 1,0 0,5 0,0 -0,5 -1,0 Рис. 9.25, График численного приближения для Равен h = °'2) График приближенного решения, когда h = 0,2, показан на рис. 9.25. В таблицу включен столбец ошибок. Так как решения методом Рунге-Кутта имеют ошибку порядка О (Л4), ошибка решения с меньшим шагом, Л = 0,1, равна приблизитель- приблизительно ^5 ошибки решения с большим шагом, h = 0,2. ¦ Программа 9.10 вызывает программу 9.9 для решения задач Коши (9) и A0). Программа 9.9 дает приближенные решения систем дифференциальных уравне- уравнений, используя модифицированный метод Рунге-Кутта порядка N = 4. Поэтому уравнения (9) и A0) необходимо записать в форме систем уравнений (И) из раз- раздела 9.7. Для иллюстрации рассмотрим краевую задачу из примера 9.17. В следу- следующий М-файл под именем F1 будет записана задача Коши (9) в форме системы дифференциальных уравнений. function Z=Fl(t,Z) x=Z(l);y=ZB); г=[у,2П*у/A+1Г2)-2*х/A+1Г2)+1]; В подобный М-файл с именем F2 записана задача Коши A0) (только r(t) = 0 в файле F1) в соответствующей форме. График приближений, полученных с помощью программы 9.10, может быть построен с использованием команды plot (L(:,l), L (:, 2)).
9.8. Краевые задачи 541 Программа 9,9 (метод Рунге-Кутта порядка N = 4 для систем). Програм- Программа предназначена для получения приближенного решения системы дифферен- дифференциальных уравнений с xi(a) = аи • • • 5 хп(а) = ап на интервале [а; 6]. function [T,Z]=rks4(F,a,b,Za,M) '/.Вход - F - система, вводимая как строка 'F9 X - а и b - крайние точки интервала X - Za=[x(a) у(а)] - начальные условия X - М - число шагов •/.Выход - Т - вектор шагов X - Z=[xl(t)...xn(t)], где xk(t) - приближение X к k-й зависимой переменной h=(b-a)/M; T=zeros(l,M+l); Z=zeros(M+l,length(Za)); T=a:h:b; Z(l,:)=Za; for j=l:M kl=h*feval(F,T(j),Z(j,:)); k2=h*feval(F,T(j)+h/2,Z(j,:)+kl/2); k3=h*feval(F,T(j)+h/2,Z(j,:)+k2/2); k4=h*feval(F,T(j)+h,Z(j,:)+k3); Z(j+l,:)=Z(j,:)+(kl+2*k2+2*k3+k4)/6; end Программа 9Л0 (линейный метод пристрелки). Программа предназначена для решения краевой задачи х11 = p(t)x'(t) + q(t)x(t) + r(t) с х(а) = а и хF) = /3 на интервале [а; Ь] методом Рунге-Кутта порядка N = 4. function L=linsht(Fl,F2,a,b,alpha,beta,M) ХВход - F1 и F2 - системы уравнений первого порядка, X соответствующих задачам Коши (9) и A0); X вводятся как строки JF1', JF2> X - а и b крайние - точки интервала
542 Глава 9. Решение дифференциальных уравнений X - alpha = х(а) и beta - x(b); граничные условия X - М - число шагов •/.Выход - L =[Т' X], где Т> - вектор абсцисс размера (М+1)х1 % и X - вектор ординат размера (М+1)х1 •/•Решение системы F1 Za=[alpha,0] ; [T,Z]=rks4(Fl,a,b,Za,M); U=Z(:,1); •/.Решение системы F2 Za=[0,l]; [T,Z]=rks4(F2,a,b,Za,M); V=Z(:,1); •/.Вычисление решения краевой задачи X=U+(beta-U(M+l))*V/V(M+l); L=[T> X]; Упражнения к разделу 9.8 1. Убедитесь, что функция x(t) является решением краевой задачи. (a) х" = (-2/t)xf + {2/t2)x + {10cos(ln(t)))/t2 на интервале [1;3] ся?A) = 1 и хC) = -1. , ч 4,335950689 - 0,3359506908t3 - 3t2 cos(ln(*)) +t2 sin(ln(i)) X(t) = ^ • (b) x" = -2x' -2x + e~l + sinBi) на интервале [0; 4] с х@) = 0,6 и жD) = = -0,1. 11 2 x(t) = - + е"* - -е~* cos(t) - - cos2(t)+ 5 5 5 + 3,670227413е~* sm(t) - - cos(t) sin(t). 5 (c) х" = -Ax' - Ax + 5 cosDt) + sinBi) на интервале [0; 2] с ж@) = 0,75 и жB) = 0,25. x(t) = -^- + 1.025e~2t - l,915729975fe-2t + i^ f\ A ft - ~ cos4(i) - - cos(t) sin(t) + - cos3(<) sin(i). 5 5 5
9.9. Метод конечных разностей 543 (d) x" + (l/t)rf + (l-l/Dt2))x = 0 на интервале [1;6] сжA) = 1 и хF) = 0. _ 0,2913843206 cos(t) + 1,001299385 sinjt) x{t) - -^ . (e) x"-(l/t)x'+(l/t2)x = 1 наинтервале [0,5;4,5] сж@,5) = 1 ижD,5) = 2. x(t) = t2- 0,25258264Ш - 2,528442297* ln(*). 2. Удовлетворяет ли краевая задача из упр. 1(е) предположениям следствия 9.1? Объясните свой ответ. 3. Если для q выполняются предположения следствия 9.1, то покажите, что v(t) = 0 — единственное решение краевой задачи vn = p(t)v'{t) + q(t)v(t) с v(a) = 0 и v{b) = 0. Алгоритмы и программы 1. (а) Используйте программмы 9.9 и 9.10 для решения краевых задач из упр. 1. Выберите шаг, равный h = 0,05. (b) Постройте график своего и подлинного решений в одной и той же си- системе координат. 2. Напишите программу, аналогичную программе 9.9 для (a) метода Гюна, (b) метода Адамса-Бешфорса-Маултона, (c) метода Хемминга. 3. (а) Модифицируйте программу 9.10 таким образом, чтобы она обращалась к каждой из ваших программ при решении задачи 2. (b) Используйте свои программы для решения каждой из пяти краевых задач из упр. 1 при шаге, равном h = 0,05. (c) Постройте графики своего и подлинного решений в одной и той же системе координат. 9.9. Метод конечных разностей Метод, использующий приближения отношения разностей для производных, применяется для решения некоторых краевых задач второго порядка. Рассмотрим линейное уравнение A) x"=p(t)x'(t)+ q(t)x(t) +r(t)
544 Глава 9. Решение дифференциальных уравнений на интервале [а;Ь] с граничными условиями х(а) = а и х(Ь) = /3. Построим разбиение отрезка [а; Ь] с помощью точек а = to < *i < • • • < In = b, где h = = (fe — a)/N и tj = a + jh для j = 0,1,..., N. Формула центрированной разности (см. главу 6) используется для приближения производных B) И Чтобы получить соотношения D), начнем с того, что заменим каждый член x(tj) в правой части равенств B) и C) на Xj и полученные в результате уравнения подставим в A): Затем опустим в D) два члена порядка O(h2) и введем обозначения pj = p{tj), qj = gr(tj-) и rj = r(ij), в результате чего получим разностное уравнение - tXj + gj,! которое используем для получения численных приближений к дифференциаль- дифференциальному уравнению A). Это выполняем, умножая каждую часть уравнения E) на h2, собирая члены, которые содержат яу-ь Xj и Xj+ь и располагая их в системе линейных уравнений. F) (— щ - lj xj-i + B + h2qj)xj + l-pj - lj для j = 1, 2,..., iV — 1, где #o = a и ^tv = /3. Система F) имеет хорошо знакомую трехдиагональную форму, которая более наглядна, когда записана в матричном виде:
9.9. Метод конечных разностей 545 О О =?pN-2 " 1 2 + /lV-2 f РЛГ-2 " 1 XN-1 —h2ri + -h2r2 -h2rj где и = f Если вычисления производить с шагом, равным Л, то численное приближе- приближение к решению является множеством дискретных точек {(fy; #7)}. Если известно аналитическое решение x(tj), то можно сравнить Xj и х(^). Пример 9.18. Решим краевую задачу M*) с граничными условиями х@) = 1,25 и хD) = —0,95 на интервале [0;4]. Функциир, qur соответственно равныp(t) = 2t/(l + t2), q(t) = —2/A + t2) и r(t) = 1. Применим метод конечных разностей, чтобы получить численные решения {xj}, используя систему уравнений F). Совокупность значений прибли- приближений {xj^i}, {#7,2}, {^,3} и {xj^}, соответствующая шагам h\ = 0,2, /12 = 0,1, /i3 = 0,05 и /14 = 0,025, приведена в табл. 9.17. На рис. 9.26 показан график поли- полигонального пути, построенного по точкам {(tj]Xj^)} для случая, когда h\ = 0,2. В последовательности, генерируемой с шагом /&2 = 0,1, насчитывается 41 член, а последовательность {xj^} содержит только каждый второй член вычисленных; они соответствуют 21 значению {tj}, приведенному в табл. 9.17. Аналогично последовательности {^-,з} и {xj^} являются частью значений, сгенерированных соответственно с шагами /13 = 0,05 и /ц == 0,025, и отвечают 21 значению {tj} в табл. 9.17.
546 Глава 9. Решение дифференциальных уравнений Таблица 9.17. Численные приближения для x"(t) = It г*(') + 1 /. lJ 0,0 0,2 0,4 0,6 0,8 1,0 1,2 1,4 1,6 1,8 2,0 2,2 2,4 2,6 2,8 3,0 3,2 3,4 3,6 3,8 4,0 /i = 0,2 1,250000 1,314503 1,320607 1,272755 1,177399 1,042106 0,874878 0,683712 0,476372 0,260264 0,042399 -0,170616 -0,372557 -0,557565 -0,720114 -0,854988 -0,957250 -1,022221 -1,045457 -1,022727 -0,950000 /i = 0,l 1,250000 1,316646 1,325045 1,279533 1,186438 1,053226 0,887823 0,698181 0,492027 0,276749 0,059343 -0,153592 -0,355841 -0,541546 -0,705188 -0,841551 -0,945700 -1,012958 -1,038880 -1,019238 -0,950000 h = 0,05 1,250000 1,317174 1,326141 1,281206 1,188670 1,055973 0,891023 0,701758 0,495900 0,280828 0,063537 -0,149378 -0,351702 -0,537580 -0,701492 -0,838223 -0,942839 -1,010662 -1,037250 -1,018373 -0,950000 h = 0,025 1,250000 1,317306 1,326414 1,281623 1,189227 1,056658 0,891821 0,702650 0,496865 0,281846 0,064583 -0,148327 -0,350669 -0,536590 -0,700570 -0,837393 -0,942125 -1,010090 -1,036844 -1,018158 -0,950000 X(tj) точное 1,250000 1,317350 1,326505 1,281762 1,189412 1,056886 0,892086 0,702947 0,497187 0,282184 0,064931 -0,147977 -0,350325 -0,536261 -0,700262 -0,837116 -0,941888 -1,009899 -1,036709 -1,018086 -0,950000 У = u(t) 1,0 0,5 0,0 -0,5 -1,0 Рис. 9.26. График численного приближения для x(t) = u(t) + w(t) — решения уравнения x"(t) = = &x'(t) - j^x(t) + 1 (шаг равен h = 0,2)
9.9. Метод конечных разностей 547 Таблица 9.18. Ошибки численных приближений при использовании метода конечных разностей tj 0,0 0,2 0,4 0,6 0,8 1,0 1,2 1,4 1,6 1,8 2,0 2,2 2,4 2,6 2,8 3,0 3,2 3,4 3,6 3,8 4,0 In = 0,2 0,000000 0,002847 0,005898 0,009007 0,012013 0,014780 0,017208 0,019235 0,020815 0,021920 0,022533 0,022639 0,022232 0,021304 0,019852 0,017872 0,015362 0,012322 0,008749 0,004641 0,000000 i("i-e:r /l2 = 0,1 0,000000 0,000704 0,001460 0,002229 0,002974 0,003660 0,004263 0,004766 0,005160 0,005435 0,005588 0,005615 0,005516 0,005285 0,004926 0,004435 0,003812 0,003059 0,002171 0,001152 0,000000 /i3 = 0,05 0,000000 0,000176 0,000364 0,000556 0,000742 0,000913 0,001063 0,001189 0,001287 0,001356 0,001394 0,001401 0,001377 0,001319 0,001230 0,001107 0,000951 0,000763 0,000541 0,000287 0,000000 hA = 0,025 0,000000 0,000044 0,000091 0,000139 0,000185 0,000228 0,000265 0,000297 0,000322 0,000338 0,000348 0,000350 0,000344 0,000329 0,000308 0,000277 0,000237 0,000191 0,000135 0,000072 0,000000 Сравним численные решения из табл. 9.17 с аналитическим решением: x(t) ±= = 1,25 + 0,486089652* - 2,25i2 + 2t arctan(*) - ± ln(l +t2) + \t2 ln(l +12). Можно показать, что численные решения имеют ошибку порядка О (Л2). Таким образом, уменьшая шаг в 2 раза, получаем ошибку, меньшую приблизительно в 4 раза. Вни- Внимательно исследовав табл. 9.18, убеждаемся, что именно так и происходит. Для примера, в точке tj = 1,0 ошибки, полученные при шагах h\, h<i-> h$ и /ц, соответ- соответственно равны ej,i = 0,014780, ejy2 = 0,003660, eifi = 0,000913 и ejA = 0,000228. Их последовательные отношения е^г/^д = 0,003660/0,014780 = 0,2476, ej|3/ei|2 = 0,000913/0,003660 = 0,2495 и ejA/ejiS = 0,000228/0,000913 = 0,2497 приближенно равны \. Наконец, покажем как можно использовать улучшенную схему Ричардсона, что- чтобы экстраполировать, по-видимому, неточные последовательности {#j,i}, {^,2}» {xjts} и {xj^} и получить шесть знаков точности. Исключаем остаточные члены O(h2) и O((h/2J) в приближениях {xjt\} и {xjfi} генерированием экстрапо- экстраполирующей последовательности {zj^} = {DrrJ?2 — ^j,i)/3}. Подобным образом остаточные члены O((/i/2J) и О((Л/4J) для {xj^} и {xj9s} исключаем гене-
548 Глава 9. Решение дифференциальных уравнений рированием {zj$} = {D#j,3 — Sj,2)/3}. Это показывает, что улучшенная схема Ричардсона второго уровня применяется к последовательностям {zjt\} и {zjp}9 таким образом, третье улучшение равно {A6^,2 — ^j,i)/15} (см. [41]). Проиллю- Проиллюстрируем эту ситуацию. Найдем экстраполированные значения соответствующие tj = 1,0. Первое экстраполированное значение равно 4gj,2 - gj,i _ 4A,053226) - 1,042106 3 3 Второе экстраполированное значение равно 4A,055973) - 1,053226 = 1,056932 = о о И наконец, третье экстраполирование содержит члены Zj-д и Mzjl-Zj,! 16A,056889) - 1,056932 = 1,056886. Это последнее вычисление содержит шесть десятичных знаков точности. Значе- Значения в других точках приведены в табл. 9.19. ¦ Таблица 9.19. Экстраполирование численных значений полученных методом конечных разностей 0,0 0,2 0,4 0,6 0,8 1,0 1,2 1,4 1,6 1,8 2,0 2,2 2,4 2,6 2,8 3,0 3,2 3,4 3,6 3,8 4,0 3 1,250000 1,317360 1,326524 1,281792 1,189451 1,056932 0,892138 0,703003 0,497246 0,282244 0,064991 -0,147918 -0,350268 -0,536207 -0,700213 -0,837072 -0,941850 -1,009870 -1,036688 -1,018075 -0,950000 4xJ-i3~«j,2 3 = Zj,2 1,250000 1,317351 1,326506 1,281764 1,189414 1,056889 0,892090 0,702951 0,497191 0,282188 0,064935 -0,147973 -0,350322 -0,536258 -0,700259 -0,837113 -0,941885 -1,009898 -1,036707 -1,018085 -0,950000 16Zj,2-Zi,l 3 1,250000 1,317350 1,326504 1,281762 1,189412 1,056886 0,892086 0,702947 0,497187 0,282184 0,064931 -0,147977 -0,350325 -0,536261 -0,700263 -0,837116 -0,941888 -1,009899 -1,036708 -1,018086 -0,950000 X(tj) точное решение 1,250000 1,317350 1,326505 1,281762 1,189412 1,056886 0,892086 0,702948 0,497187 0,282184 0,064931 -0,147977 -0,350325 -0,536261 -0,700262 -0,837116 -0,941888 -1,009899 -1,036708 -1,018086 -0,950000
9.9. Метод конечных разностей 549 Программа 9.12 обращается к программе 9.11 для решения трехдиагональной системы F). Для программы 9.12 требуется, чтобы коэффициенты функций p(t), q(t) и r(t) (краевая задача A)) были записаны соответственно в М-файлах р.ш, q.m и г.т. Программа 9.11 (трехдиагональные системы). Программа предназначена для решения трехдиагональной системы СХ = В, где С — трехдиагональная матрица. function X=trisys(A,D,C,B) УвВход - А - поддиагональ матрицы коэффициентов У, - D - главная диагональ матрицы коэффициентов У, - С - наддиагональ матрицы коэффициентов У, - В - вектор постоянных линейной системы '/.Выход - X - вектор решений N=length(B); for k=2:N mult=A(k-l)/D(k-l); D(k)=D(k)-mult*C(k-l); B(k)=B(k)-mult*B(k-l); end X(N)=B(N)/D(N); for k= N-l:-l:l X(k)==(B(k)-C(k)*X(k+l))/D(k); end Программа 9.12 (метод конечных разностей). Программа предназначена для приближенного решения краевой задачи х" = p(t)x'{t) + q(t)x(t) + r(t) с гра- граничными условиями х(а) = а и х(Ь) = /3 на интервале [а; Ь] методом конечных разностей порядка O(h2). Замечание. Узловые точки — a = t\ < • • • < ?;\r+i = Ь и точки, соответствующие решению {(tj, Xj) }^[1. function F=findiff(p,q,r,a,b,alpha,beta,N) УоВход - p,q и г - коэффициенты функций из A) У, вводят как строки; 'p'.'q'.'r* У. - а и Ъ - левая и правая крайние точки Ув - alpha=x(a) и beta=x(b) У« - N - число шагов У,Выход - F=[T' Х}], где Т* - вектор абсцисс размера lxN У. и X* - вектор ординат размера lxN •/Инициализация векторов и шага h
550 Глава 9. Решение дифференциальных уравнений f T=zeros(l,N+l); ; X=zeros(l,N-l); Va=zeros(l,N-2); ; Vb=zeros(l,N-l); \ Vc=zeros(l,N-2); Vd=zeros(l,N-l); h=(b-a)/N; •/.Вычисление вектора постоянных В в АХ=В Vt=a+h:h:a+h*(N-l); Vb=-ir2*feval(r,Vt); Vb(l)=Vb(l)+(l+h/2*feval(p,Vt(l)))*alpha; Vb(N-l)=Vb(N-l)+(l-h/2*feval(p,Vt(N-l)))*beta; '/«Вычисление главной диагонали А в АХ=В Vd=2+ir2*feval(q,V;t); '/•Вычисление наддиагонали А в АХ=В Vta=Vt(l,2:N-l); Va=-l-h/2*feval(p,Vta); '/«вычисление поддиагонали А в АХ=В Vtc=Vt(l,l:N-2); Vc=-l+h/2*feval(p,Vtc); •/«Решение АХ=В с использованием trisys X=trisys(Va,Vd,Vc,Vb); T=[a,Vt,b]; Х=[alpha,X,beta]; F=[T> X»]; Упражнения к разделу 9.9 В упр. 1-3 используйте метод конечных разностей для приближения х(а + 0,5). (a) Пусть h\ = 0,5. Сделайте один шаг вычислений вручную и затем при h<i = = 0,25 сделайте два шага вычислений вручную. (b) Используйте экстраполяцию значений из п. (а), чтобы получить лучшее приближение (т. е. z$%\ = Dж^2 — ^j,i)/3). (c) Сравните результаты, полученные из пп. (а) и (Ь), с точным значением х(а+ + 0,5). 1. х" = 2х* - х +12 - 1 на интервале [0; 1] с х@) = 5 и х{1) = 10, x(t) = t2 + At + 5.
9.9. Метод конечных разностей 551 2. x" + (l/t)xr + A -• 1/D*2))ж = 0 на интервале [1; 6] с хA) = 1 и жF) = О, , v _ 0,2913843206 cos(t) +1,001299385 sin(t) 3. х" - A/*)ж' + {l/t2)x = 1 на интервале [0,5; 4,5] с ж@,5) = 1 и яD,5) = 2, rc(t) = t2 - 0,2525826491* - 2,528442297*ln(t). 4. Предположим, что р, q и г непрерывны на интервале [а; 6] и что q(t) > 0, a<t<b. Докажите, что если h удовлетворяет неравенству 0 < h < 2/М, где М = maxa<t<&{|p(?)|}, то матрица коэффициентов F) строго диагонально доминирующая и существует единственное решение. 5. Предположим, что p(t) = C\ > 0 и q(t) = C<i > 0. (а) Запишите трехдиаго- нальную линейную систему для этой ситуации. (Ь) Докажите, что трехдиаго- нальная система строго диагонально доминирующая и, следовательно, имеет единственное решение при условии, что С1/С2 < h. Алгоритмы и программы 1. Воспользуйтесь программами 9.11 и 9.12, чтобы решить заданную краевую задачу с шагами, равными h = 0,1 и h = 0,01. Постройте графики двух своих приближений и действительного решения в одной и той же системе координат. (a) х" = 2х; - х + t2 - 1 на интервале [0; 1] с х@) = 5 и хA) = 10, x(t) = t2 + 4t + 5. (b) x11 + (l/t)xf + A - l/D*2))z = 0 на интервале [1,6] с хA) = 1 и жF) = 0, , .v 0,2913843206 cos(t) + 1,001299385 sin(t) (с) ж" - (I/*)*' + (l/t2)x = 1 на интервале [0,5; 4,5] с я@,5) = 1 и я?D,5) = = 2, s(t) = <2 - 0,2525826491t - 2,528442297Un(t). В задачах 2-7 воспользуйтесь программами 9.11 и 9.12 для решения данной кра- краевой задачи с шагами h = 0,2, h = 0,1 и /i = 0,05. Для каждой задачи постройте графики трех решений в одной и той же системе координат. 2. х" = {-2/t)x* + {2/t2)x + A0cos(ln(t)))/t2 на интервале [1;3] с х{1) = 1 и *C) = -1. 3. х" = -5х' - 6х + te~2t + 3,9cosCt) на интервале [0;3] с х@) = 0,95 и хC) = 0,15. 4. х" = —4яг/ - 4rr + 5cosDt) + sinBt) на интервале [0;2] с х@) = 0,75 и яB) = 0,25. 5. х" = -2х; - 2ж + е"* + sinBt) на интервале [0; 4] с х@) = 0,6 и я;D) = -0,1.
552 Глава 9. Решение дифференциальных уравнений 6. х" + B/t)xf - B/t2)x = sin(t)/t2 на интервале [1; 6] с хA) = -0,02 и яF) = = 0,02. 7. я" + {l/t)xf + A - 1/D?2))ж = Vtcos(t) на интервале [1;6] с хA) = 1,0 и 8. Постройте программу, которая будет обращаться к программам 9.11 и 9.12 и выполнит процесс экстраполяции, приведенный в примере 9.18 и табл. 9.19. 9. Используйте свою программу из задачи 8 для решения заданных ниже кра- краевых задач с шагами, равными h = 0,1, h = 0,05 и h = 0,025. Постройте таблицу, аналогичную табл. 9.19. Постройте графики своего экстраполиро- экстраполированного и действительного решений в одной и той же системе координат. (a) х" = 2х' - х + t2 - 1 на интервале [0; 1] с х@) = 5 и ггA) = 10, x(t) = t2 + At + 5. (b) x" + (l/t)xf + {l-l/Dt2))x = 0 на интервале [1;6] с х{1) = 1 ихF) = О, , v __ 0,2913843206 cos(t) 4-1,001299385 sin(t) yft (c) хи - A/*)^ + (l/t2)x = 1 на интервале [0,5; 4,5] с ж@,5) = 1 и жD,5) = = 2, x(t) = t2 - 0,252582649Н - 2,528442297<ln(t).
Решение дифференциальных уравнений в частных производных Математическая модель многих задач в прикладных науках, физике и технике описывается дифференциальными уравнениями в частных производных. Диффе- Дифференциальное уравнение, включающее более чем одну независимую переменную, называется дифференциальным уравнением в частных производных (ДУЧП). Нет необходимости прослушивать специальный курс по дифференциальным урав- уравнениям в частных производных, чтобы понять основные принципы их решения на компьютере. В этой главе излагается метод конечных разностей, который основан на формулах для приближения первой и второй производных функций. Начнем с классификации трех типов уравнений, которые исследуем ниже, и знакомства с физическими задачами, которые приводят к уравнению в каждом случае. Диффе- Дифференциальное уравнение в частных производных вида A) АФХХ + ВФху + СФУУ = /(*, у, Ф, Фя, Фу), где А, В и С — постоянные, называется квазилинейным. Существует три типа квазилинейных уравнений: B) если J52 — ААС < 0, уравнение называется эллиптическим, C) если В2 — 4АС = 0, уравнение называется параболическим, D) если В2 — ААС > 0, уравнение называется гиперболическим. В качестве примера гиперболического уравнения рассмотрим одномерную мо- модель колебания струны. Перемещение и(х, t) описывается волновым уравнением E) рии{х,у) = Tuxx(x,t) для 0 <х < L и 0<?<оо, 553
554 Глава 10. Решение дифференциальных уравнений в частных производных Рис. 10.1. Волновое уравне- х ние как модель колеблющейся струны Изоляция Рис. 10.2. Уравнение теплопро- х водности как модель распреде- распределения температуры в изолиро- изолированном брусе с функциями, которые задают начальное положение и скорость и(х,0) = /(я) для t = 0 и 0<x<L, Го) щ(х, 0) = д(х) для ? = 0 и 0 < х < L, и граничными значениями и{0,<)=0 для х = 0 и 0<<<оо, it(L,t) = 0 для х = L и 0<^<оо. G) Постоянная р — это плотность массы струны и Т — натяжение струны. На рис. 10.1 изображена струна с закрепленными концами в точках @; 0) и (L; 0). В качестве примера параболического уравнения рассмотрим одномерную мо- модель распространения тепла в изолированном брусе длины L (рис. 10.2). Уравне- Уравнение теплопроводности, которое описывает температуру u(x,t) в брусе в точке х и в момент ?, имеет вид (8) K,uxx(x,t) = арщ(х,t) для 0<#<L и 0<?<оо. Начальное распределение температуры в момент t = 0 равно (9) и(х,0) =/(ж) для t = 0 и 0<a;<L, и граничные значения на концах бруса равны u@,t) = с\ для х = 0 и 0<?<оо, для x = L и 0<<<оо.
10. l. Гиперболические уравнения 555 0,2 0,4 0,6 0,8 Рис. 10.3. Кривые, соответ- х ствующие решению и(х, у) = С 1,0 уравнения Лапласа Постоянная к — это коэффициент теплопроводности, а — удельная теплоемкость и р — плотность бруса. В качестве примера эллиптического уравнения рассмотрим потенциал и(х,у), который можно рассматривать, как установившийся режим электростатического потенциала или установившийся режим распределения температуры в прямо- прямоугольной области на плоскости. Эта ситуация описывается уравнением Лапласа в прямоугольнике. (Н) +uyy(x,y) = 0 для 0<гг<1 и 0<у<1 с заданными граничными условиями: и(х,0) = f\(x) для у = 0 и 0 < # < 1 (внизу), и(х, 1) = /2(я) для у = 1 и 0<#<1 (йаверху), и@, у) = Му) Для х = 0 и 0 < у < 1 (слева), иA,у) = /4(у) для ж = 1 и 0<у<1 (справа). Набросок графика и(х, у) с граничными функциями fi{x) = 0, fo(x) = sinGr#), /3(у) = 0 и /4(у) = 0 на квадрате R = {(ж, у) : 0 < х < 1,0 < у < 1} показан на рис. 10.3. 10.1. Гиперболические уравнения Волновое уравнение В качестве примера гиперболического уравнения в частных производных рас- рассмотрим волновое уравнение A) utt{x,t) = c2uxx(x,t) для 0<ж<а и 0 <t <Ь,
556 Глава 10. Решение дифференциальных уравнений в частных производных Х\ Рис. 10.4. Решетка для реше- п шля utt{x,t) = c2uxx(x,t) на R с граничными условиями B) u@, t) = 0 и и(а, t) = 0 для 0 < t < Ь, гл(ж, 0) = f(x) для 0 < х < а, w^(x, 0) = д(х) для 0 < х < а. Волновое уравнение — это модель перемещения и колеблющейся эластичной стру- струны с закрепленными концами в точках х = 0 и х — а. Несмотря на то что анали- аналитическое решение волнового уравнения можно получить с помощью рядов Фурье, используем эту задачу как прообраз гиперболического уравнения. Вывод разностного уравнения Разобьем прямоугольник R = {(ж, t) : 0<х <а, 0<t<b} на решетку, состоящую из (п — 1) х (га — 1) прямоугольников со сторонами Ах = h и At = fc, как показано на рис. 10.4. Начнем с нижнего ряда, где t — t\ = 0 и известно, что решением будет u{xi,ti) = /(#i)- Используем метод разностных уравнений, чтобы вычислить приближения {u{j : г = 1,2,..., п} в последующих рядах для j = 2, 3, ..., m. Истинное решение в точках решетки равно u(xi, tj). Формулы центрированной разности для приближающих функций utt(x,t) и Uxxfait) имеют вид C) utt(x, t) = «(*>* + k)-M*,t)+u(xtt-k) + o(Jfc2) И D) 2
10.1. Гиперболические уравнения 557 Рис. 10.5. Схема волнового уравнения Решетка равномерно располагается в каждом ряду Xi+\ = Xi + h (и х^—i = Х{ — К) и в каждом столбце fy+i = tj + & (и fy-i = tj — к). Затем опускаем члены О(к2) и O(h2) и используем приближение w^j для w(rri, tj) в уравнениях C) и D), которые по очереди подставляем в A). Это приводит к разностному уравнению h2 которое является приближенным решением A). Для удобства подставим г = ck/h в E) и получим соотношение F) Uij+i - 2ujj + tiij-i = r2(ui+hj - 2tXij + щ-ij). Уравнение F) служит для нахождения ряда j + 1 в решетке при предположении, что приближения в рядах j и j — 1 известны: G) tiij+i = B - 2r2)ui?j + для г = 2, 3,..., n — 1. Четыре известных значения в правой части уравнения G), которые используются для получения приближения щ^+и показаны на рис. 10.5. Следует быть осторожным при использовании формулы G). Если ошибка, по- полученная на одном этапе вычислений, в конце концов уменьшается, то метод называют устойчивым. Для гарантии устойчивости формулы G) необходимо, что- чтобы выполнялось соотношение г = ck/h<l. Существует другая схема, называемая неявным методом, т. е. более сложная для выполнения, однако она не имеет ста- стабильных ограничений для г (см. [90]). Начальные значения Два начальных ряда значений, соответствующих j = 1 и j = 2, нужно подста- подставить в формулу G), чтобы вычислить третий ряд. Так как второй ряд обычно не задан, граничная функция д(х) используется, чтобы получить начальное прибли- приближение для второго ряда. Зафиксируем х = Х{ на границе и применим формулу
558 Глава 10. Решение дифференциальных уравнений в частных производных i Тейлора порядка 1 для разложения u(x,t) в окрестности точки (#г;0). Значение u{xi,k) удовлетворяет (8) и{хи к) = и(хи 0) + щ{хи 0)к + О(к2). Затем используем u(xi,0) = f(xi) = /г и щ(х^0) = д{х{) = gi в (8), чтобы получить формулу для нахождения численного приближения во втором ряду: (9) uii2 =fi + кдг для г = 2, 3, ..., п - 1. Обычно и(х{^2) ф щу2 и такие ошибки, вводимые формулой (9), распростра- распространяются по всей решетке и не уменьшаются, когда выполняются вычисления по схеме G). Поэтому необходимо предусмотрительно использовать такой очень ма- малый шаг для к, чтобы значения щ$, получаемые в (9), не содержали большой по величине ошибки усечения. Часто граничная функция f(x) имеет на интервале вторую производную /"(я). В таком случае имеем ихх(х, 0) = f"(x) и выгодно использовать формулу Тейлора порядка п = 2, чтобы построить второй ряд. Для этого вернемся к волновому уравнению и используем соотношение между частными производными второго порядка, чтобы получить A0) utt(xi, 0) = c2uxx(xi, 0) = c2f"{xi) = ( Напомним, что формула Тейлора порядка 2 имеет вид A1) и(х, к) = и(х, 0) + щ(х, 0)к + Uft(a::0)fc2 + О(к3). Применяя формулу A1) в точке х = Х{ вместе с формулами (9) и A0), получим г2 к2 A2) и(хи k)=fi + k9i + 2д5-(Д+1 - 2^ + Л-*) + °(Ь2)О(к2) + О(к*). Если использовать г = ск/h, то можно упростить формулу A2), чтобы получить разностную формулу для улучшения численных приближений во втором ряду: 2 (В) Щ,2 = A " T2)fi + k9i + r-Ui+l + fi-l) для г = 2, 3,..., n - 1.
10.1. Гиперболические уравнения 559 Решение Даламбера Французский математик Жан ле Рон Даламбер (Jean Le Rond d'Alembert A717- 1783)) открыл, что A4) и(х, t) = F(x + ct) + G(x - ct) является решением волнового уравнения A) на интервале 0 < х < а при условии, что все производные Ff, F", Gf и G" существуют, F и G имеют период 2а и удовлетворяют соотношениям F(—z) = —F(z), F(z + 2a) = F(z), G(—z) = = — G(z) и G(z + 2a) = G(z) для всех z. Можно проверить это, выполнив прямую подстановку Частные производные второго порядка решения A4) имеют вид A5) utt{x, t) = c2F"(x + ct) + c2G"(x - ct), A6) uxx{x, t) = F"(x + ct) + G"{x - ct). Подстановка этих величин в A) приводит к требуемому соотношению: utt(x, t) = c2F"(x + ct) + c2G"{x - ct) = = c2(F"(x + ct) + G"(x ~ ct)) = = c2uxx(x,t). Для частного решения, когда граничные значения и(х,0) = f(x) и щ(х,0) = 0, требуется, чтобы F(x) = G(x) = f(x)/2. Оставляем читателю убедиться в этом самостоятельно. Случай, когда заданы два ряда Точность численных приближений, которые получаются по формуле G), за- зависит от ошибок усечения в формулах, используемых при сведении дифферен- дифференциального уравнения в частных производных к разностному уравнению. Хотя маловероятно, что значения точного решения для второго ряда решетки извест- известны, если такие знания все же известны, то, используя приращение к = ch вдоль оси t, генерируем точное решение во всех других точках по всей решетке. Теорема 10.1. Предположим, что два ряда значений щ,\ = w(^,0) и щ^ = = u(xi, к)у г = 1, 2, ..., п, — это точные решения волнового уравнения A). Если шаг, равный к = h/c, выбран вдоль оси t, то г = 1 и формула G) принимает вид A7) Uij+i = tii+ij- + ti*_ij - tiij_i. Более того, решения метода конечных разностей, полученные по формуле A7) по всей решетке, являются точными значениями решения дифференциального уравнения (пренебрегаем ошибкой округления компьютера).
560 Глава 10. Решение дифференциальных уравнений в частных производных Доказательство. Используем решение Даламбера и соотношение ck = h. Вы- Вычисление Х{ — ctj = (г — l)h — c(j — l)k == (t — l)h — (j — l)/i = (i — j)h и подобного ему результата для Х{ + ctj = (г + j — 2)/i используем в выражении A4), чтобы получить следующую частную форму щ.у. A8) mj = F((t - j)A) + G((t + j - 2)Л), для г = 1, 2,..., п и j = 1, 2,..., m. Применяя эту формулу к членам ut*+ij, Ui_i и i/ij-i в правой части формулы A7), получим - 2)Л) - G{(i+j - 1 - 2)h) для t = l,2 пи; = 1,2,...,т. • Предупреждение. Теорема 10.1 не дает гарантии, что численные решения точ- точны, когда вычисления производятся по формуле (9) и A3) используется для по- получения приближений и^2 во втором ряду. На самом деле ошибка усечения будет уменьшаться, если щ# ф и(х^к) для некоторого г, где 1 < г < п. Вот почему стараются получить наилучшее возможное значение для второго ряда, используя приближение Тейлора второго порядка в формуле A3). Пример 10.1. Воспользуемся методом конечных разностей, чтобы решить вол- волновое уравнение для колеблющейся струны. A9) ии(х, t) = 4uxx(x, t) с граничными условиями u@,i)=0 и м( B0) и(х, 0) = f(x) = sinGra;) + sinB7rrz;) для 0 < х < 1, щ(х, 0) = д(х) =0 для 0 < х < 1. Для удобства выберем h = 0,1 и к = 0,05. Так как с = 2, получим г = ск/h = = 2@,05)/0,1 = 1. Так как д(х) = 0 и г = 1, формула A3) для создания второго ряда имеет вид B1) ща = fi^ +2 fi+l для i = 2, 3, ..., 9. Подстановка г = 1 в формулу G) дает упрощенное дифференциальное уравнение B2)
10.1. Гиперболические уравнения 561 Рис. 10.6. Колебание струны для уравнений A9) и B0) Применяя последовательно формулы B1) и B2) для генерирования рядов, полу- получаем приближения к и(х, t) для 0 < Х{ < 1 и 0 < tj < 0,50 (табл. 10.1). Численные значения в табл. 10.1 согласуются более чем в шести десятичных знаках точности со значениями, которые получены посредством аналитического решения и(х, t) = sin(Tnr) cosBtt?) + sinB7ra;) cosDtt?). Трехмерное изображение данных из табл. 10.1 показано на рис. 10.6. ¦ Пример 10.2. Воспользуемся методом конечных разностей для решения волно- волнового уравнения для колеблющейся струны. B3) utt(x,t) = 4uxx(x,t) для 0 < ж < 1 и 0 < * < 0.5, с граничными условиями ti(O,t) = 0 B4) «(*,<>) = /< и иA,?)=0 для 0 < t < 1, для 0 < ж < |, L,5 — l,5rr для | < д; < 1, для 0 < х < 1. Для удобства выберем h = 0,1 и к = 0,05. Так как с = 2, снова получим г = 1. Последовательное применение формул B1) и B2) для генерирования рядов дает приближения к u(x,t) для 0 < Х{ < 1 и 0 < t3} < 0,50 (табл. 10.2). Трехмерное изображение данных из табл. 10.2 приведено на рис. 10.7. ¦
Таблица ЮЛ. Решения волнового уравнения A9) с граничными условиями B0) tj 0,00 0,05 0,10 0,15 0,20 0,25 0,30 0,35 0,40 0,45 0,50 0,896802 0,769421 0,431636 0,000000 -0,380037 -0,587785 -0,571020 -0,363271 -0,068364 0,181636 0,278768 S3 1,538842 1,328438 0,769421 0,051599 -0,587785 -0,951056 -0,951056 -0,639384 -0,181636 0,210404 0,363271 ХА 1,760074 1,538842 0,948401 0,181636 -0,519421 -0,951056 -1,019421 -0,769421 -0,360616 0,000000 0,142040 Хъ 1,538842 1,380037 0,951056 0,377381 -0,181636 -0,587785 -0,769421 -0,740653 -0,587785 -0,428980 -0,363271 «в 1,000000 0,951056 0,809017 0,587785 0,309017 0,000000 -0,309017 -0,587785 -0,809017 -0,951056 -1,000000 0,363271 0,428980 0,587785 0,740653 0,769421 0,587785 " 0,181636 -0,377381 -0,951056 -1,380037 -1,538842 Х8 -0,142040 0,000000 0,360616 0,769421 1,019421 0,951056 0,519421 -0,181636 -0,948401 -1,538842 -1,760074 Хд -0,363271 -0,210404 0,181636 0,639384 0,951056 0,951056 0,587785 -0,051599 -0,769421 -1,328438 -1,538842 -0,278768 -0,181636 0,068364 0,363271 0,571020 0,587785 0,380037 0,000000 -0,431636 -0,769421 -0,896802 •"О СП m la m I Таблица 10.2. Решение волнового уравнения B3) с граничными условиями B4) 0,00 0,05 0,10 0,15 0,20 0,25 0,30 0,35 0,40 0,45 0,50 Х2 0,100 0,100 0,100 0,100 0,100 0,100 -0,025 -0,150 -0,150 -0,150 -0,150 S3 0,200 0,200 0,200 0,200 0,200 0,075 -0,050 -0,175 -0,300 -0,300 -0,300 ХА 0,300 0,300 0,300 0,300 0,175 0,050 -0,075 -0,200 -0,325 -0,450 -0,450 хъ 0,400 0,400 0,400 0,275 0,150 0,025 -0,100 -0,225 -0,350 -0,475 -0,600 хв 0,500 0,500 0,375 0,250 0,125 0,000 -0,125 -0,250 -0,375 -0,500 -0,500 Х7 0,600 0,475 0,350 0,225 0,100 -0,025 -0,150 -0,275 -0,400 -0,400 -0,400 Х8 0,450 0,450 0,325 0,200 0,075 -0,050 -0,175 -0,300 -0,300 -0,300 -0,300 Х9 0,300 0,300 0,300 0,175 0,050 -0,075 -0,200 -0,200 -0,200 -0,200 -0,200 0,150 0,150 0,150 0,150 0,025 -0,100 -0,100 -0,100 -0,100 -0,100 -0,100 > 00 СП » СО > СГ v О со СО О
10.1. Гиперболические уравнения 563 Рис, 10.7. Колебание струны для уравнений B3) и B4) Программа 10.1 получает приближенное решение волнового уравнения (A) и B)). Трехмерное представление выходной матрицы U можно получить, используя команды mesh(U) и surf (U). Кроме того, команда contour(U) строит график, аналогичный графику, показанному на рис. 10.3, тогда как команда contour3(U) строит трехмерный аналог рис. 10.3. Программа 10.1 (решение методом конечных разностей для волнового уравнения). Программа предназначена для приближенного решения уравне- уравнения utt{x,t) = c2uxx(x,t) на R = {(x,t) : 0 <х <о,0 <t <Ь) с u@,t) = 0, <*<Ьи и(х, 0) = }{х), щ{х, 0) = д(х), 0<х<а. function U = finedif(f,g,a,b,c,n,m) 7,Вход - f=u(x,0) вводится, как строка *f * X - g=ut(x,0) вводится, как строка }g} X - а и b - правые крайние точки интервалов [0,а] и [0,Ь] X - с - постоянная в волновом уравнении X -пит- число точек решеткЬ на [0,а] и [0,Ь] '/.Выход - U - матрица решения; аналог табл. 10.1 '/¦Инициализация параметров и U h=a/(n-l); k=b/(m-l); r=c*k/h; r2=r~2; r22=r~2/2; sl=l-r~2; U=zeros(n,m); •/.Вычисление первого и второго рядов
564 Глава 10. Решение дифференциальных уравнений в частных производных for i=2:n-l U(i,l)=feval(f,h*(i-l)); U(i,2)=sl*feval(f,h*(i-l))+k*feval(g,h*(i-l)) ... +r22*(feval(f,h*i)+feval(f, end •/«Вычисление остальных рядов U for j=3:m, for i=2:(n-l), U(i,j) = s2*U(i,j-l)+r2* end end U=U>; Упражнения к разделу ЮЛ 1. (а) Проверьте с помощью прямой подстановки, что u(x,t) = sin(nTnr) х х cosBn7rt) — решение волнового уравнения uu(x,t) = Auxx{x,t) для каждого положительного целого числа п = 1, 2, (Ь) Проверьте с помощью прямой подстановки, что u{x,t) = sin(nTnr) x ; х cos(cn7rt) — решение волнового уравнения uu{x,t) = c2uxx(x,t) для каждого положительного целого числа п = 1, 2, 2. Предположим, что начальное положение и скорость равны и(х,0) = f(x) и щ(х,0) =0 соответственно. Покажите, что решением Даламбера для этого случая является u(X,t) . 3. Получите упрощенную форму дифференциального уравнения G) для случая h = 2ск. В упр. 4 и 5, используя метод конечных разностей, вычислите первые три ряда приближенного решения заданных волновых уравнений. Проделайте вычисления вручную (на калькуляторе). 4. utt(x, t) = 4uxx(x, t) для 0<ж<1и0<?<0,5с граничными условиями и@,<)=0 и u(l,t)=0 и(х, 0) = f(x) = sinGra;) для 0 < х < 1, щ(х, 0) = д{х) = 0 для 0 < х < 1. Положите h = 0,2, к = 0,1 и г = 1.
10.1. Гиперболические уравнения 565 5. Щь(х, t) = 4ихх(х, t) для 0<ж<1и0<?<0,5с граничными условиями n@,i)=0 и иA,*)=0 для 0<i<0,5, х о — для 0 < х < |, 2 15 — для § для § < х < 1, wt(a:50) = з(ж) = 0 для 0 < я < 1. Положите h = 0,2, А: = 0,1 и г = 1. 6. Предположим, что начальное положение и скорость равны и(х,0) = f(x) и щ(х,0) = g(x) соответственно. Покажите, что для этого случая решение Даламбера равно , 4. f(x + ct) + f(x-ct) , 1 [x+ct z zc Jx-ct 7. Задано уравнение utt(x,t) = 9иЖх(ж^)- Какое должно быть соотношение между hnky чтобы получить разностное уравнение 8. С какими трудностями можно столкнуться при попытке использовать ме- метод конечных разностей для решения уравнения utt(x,t) = 4uxx(x,t) при выбранных к = 0,02 и h = 0,03? Алгоритмы и программы В задачах 1-8 используйте программу 10.1, чтобы решить волновое уравнение и«(ж, t) = c2uxx(x, t) для 0<x<anQ<t<bc граничными условиями гх(О, t)=0 и и{а, t) = 0 для 0 < t < 6, u(rr, 0) = f(x) для 0 < х < а, ^(ж, 0) = д(х) для 0 < х < а для заданных значений. Для построения графиков своих решений используйте команды surf и contour. 1. Пусть а = 1, Ь = 1, с = 1, /(х) = sinGra;) и д(х) = 0. Для простоты выберите h = 0,1 и к = 0,1. 2. Пусть а = 1, 6 = 1, с = 1, /(ж) = ж — ж2 и д(ж) = 0. Для простоты выберите Л = 0,1 и Л = 0,1.
566 Глава 10. Решение дифференциальных уравнений в частных производных * тт 1 L л л г/ \ BЖ ДЛЯ0<Я<± 3. Пусть а = 1, Ь = 1, с = 1, f(x) = < * ^2 — 2х для j < я: < 1. 5(х) = О, Л = 0,1 и А; = 0,1. 4. Пусть а = 1, 6 = 1, с = 2, /(ж) = sin(Trrr), д(х) = 0, /i = 0,1 и fc = 0,05. 5. Пусть а = 1, Ь = 1, с = 2, /(ж) = ж - ж2, з(ж) = 0, h = 0,1 и А; = 0,05. 6. Повторите задачу 3, но при с = 2 и к = 0,05. 7. Повторите задачу 1, но с f(x) = sinB7r#) + sinD7rrr). 8. Повторите задачу 1, но с с = 2, f(x) = sinB7nr) + sinD7ra:) и fc = 0,05. 10.2. Параболические уравнения Уравнение теплопроводности В качестве примера параболического дифференциального уравнения рассмот- рассмотрим одномерное уравнение теплопроводности A) щ(х, t) = c2uxx(x, t) для 0<х<а и 0 <t <b, с начальным условием B) и{ху0) = f(x) для t = 0 и 0<х<а и граничными условиями = с\ для х = 0 и 0<t<b, гх(а,i) = 32^) = С2 для х = а и 0<*<Ь. Уравнение теплопроводности — это модель температуры в изолированном брусе, имеющем на концах постоянную температуру с\ и С2 и начальную температуру по всему брусу, равную /(ж). Несмотря на то что аналитическое решение уравнения теплопроводности можно получить с помощью рядов Фурье, рассмотрим задачу и найдем ее численное решение как прототип параболического уравнения. Вывод разностного уравнения Предположим, что прямоугольник R = {(ж, t) : 0 < х < а, 0 < t < b} разделен на (п — 1) х (т — 1) прямоугольников со сторонами, равными Ах = h и At = к, как показано на рис. 10.8. Начнем с нижнего ряда, где t = t\ = 0, и решение равно u(xi,ti) = /(#г). Изложим метод вычисления приближений к u(x,t) в точках решетки в следующих рядах: {u{x^ tj) : t = 1,2, , n}, j = 2, 3,..., m. Формулы разности, используемые для щ(х11) и ижа;(я, ?), имеют вид D)
10.2. Параболические уравнения 567 xn-\ Рис. 10.8. Решетка для реше- хп ния ut(x,t) = <?uxx(x,t) на R и E) uxx(x,t) = Решетка равномерно расположена в каждом ряду ж^+х = д:^ + h (и rci_i = = Х{ — h) и в каждом столбце fy+i = tj + к. Далее опустим члены О (к) и O(/i2) и используем приближение щ^ для u(xi, tj) в уравнениях D) и E), которые поочередно подставляем в уравнение A), чтобы получить F) являющееся приближенным решением уравнения A). Для удобства подставим г = c2k/h2 в F) и в результате получим уравнение правой разности G) = A - i-ij + щ+ij). Уравнение G) служит для нахождения (j + 1)-го ряда в решетке при предположе- предположении, что приближения в j-м ряду известны. Заметим, что эта формула дает точное значение щ^+х в терминах Щ-\^9 Uij и щ+ij. Схема вычислений по формуле G) для данной ситуации приведена на рис. 10.9. A - 2r)uij Рис. 10.9. Схема правой раз- ности
568 Глава 10. Решение дифференциальных уравнений в частных производных Простота формулы G) делает ее привлекательной для применения. Кроме того, важно использовать устойчивую численную технику. Если любая ошибка, полу- полученная на одном этапе вычислений, в конце концов уменьшается, то метод назы- называют устойчивым. Уравнение правой разности G) устойчиво тогда и только тогда, когда г находятся на интервале 0 < г < \. Это означает, что размер шага к должен удовлетворять неравенству к < Л2/Bс2). Если это условие не выполняется, то ошибки, фиксируемые на одной линии {uij}, могут увеличиваться в последую- последующих рядах {щ#} для некоторого р> j. Следующий пример иллюстрирует такую ситуацию. Пример 10.3. Используем метод правой разности для решения уравнения теп- теплопроводности (8) щ(х, t) = uxx(x, t) для 0 < а; < 1 и 0 < К 0.20 с начальным условием (9) и(х, 0) = f(x) = 4ж - 4ж2 для t = 0 и 0 < х < 1, и граничными условиями u@,t) =gi(t)=O для ж = 0 и 0<*<0,20, w(l,«) =g2(t)=0 для x = 1 и 0<?<0,20. Сначала используем шаги Ах = h = 0,2 и At = к = 0,02 и с = 1. Таким образом, соотношение равно г = 0,5. Решетка состоит из п = 6 столбцов по ширине и т = 11 рядов по высоте. В этом случае формула G) принимает вид (П) Формула A1) устойчива для г = 0,5 и может успешно использоваться для гене- генерирования точных приближений к и(х, t). Последующие ряды решетки приведе- приведены в табл. 10.3. Трехмерное представление данных из табл. 10.3 изображено на рис. 10.10. Для следующей иллюстрации используем шаги Ах = /1 = 0,2иД? = А; = ^« « 0,033333. Тогда соотношение равно г = 0,833333. В этом случае формула G) принимает вид A2) uw+i = -0,666665uij + 0.833333(tii_i j + щ+xj). Здесь формула A2) неустойчива, так как г > ^, и ошибки, появившиеся в од- одном ряду, будут увеличиваться в последующих рядах. Численные значения, для которых исключена неточность приближения к n(ar, t) для 0 < t < 0,33333, приве- приведены в табл. 10.4. Трехмерное представление данных из табл. 10.4 изображено на рис. 10.11. ¦
10.2. Параболические уравнения 569 Таблица 10.3. Использование метода правой разности с г = 0,5 h = 0,00 t2 = 0,02 h = 0,04 га = 0,06 U = 0,08 t6 = 0,10 t7 = 0,12 *8 = 0,14 tg = 0,16 «10 = 0,18 tn = 0,20 xi = 0,00 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 x2 = 0,20 0,640000 0,480000 0,400000 0,320000 0,260000 0,210000 0,170000 0,137500 0,111250 0,090000 0,072812 хз = 0,40 0,960000 0,800000 0,640000 0,520000 0,420000 0,340000 0,275000 0,222500 0,180000 0,145625 0,117813 x4 = 0,60 0,960000 0,800000 0,640000 0,520000 0,420000 0,340000 0,275000 0,222500 0,180000 0,145625 0,117813 x5 t= 0,80 0,640000 0,480000 0,400000 0,320000 0,260000 0,210000 0,170000 0,137500 0,111250 0,090000 0,072812 xe = 1,00 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 Рис. 10.10. = 0,5 Использование метода правой разности сг = Разностное уравнение G) имеет точность порядка О (к) + O(h2). Так как член О (к) убывает линейно, когда к стремится к нулю, не удивительно, что он дол- должен стать малым, чтобы получились хорошие приближения. Кроме того, требова- требование устойчивости следует обсудить более подробно. Предположим, что решения на решетке недостаточно точные и приращения Д# = ho и At = ко следует уменьшить. Для простоты предположим, что новое х приращения равно Ах =
570 Глава 10. Решение дифференциальных уравнений в частных производных Таблица 10.4. h = 0,000000 t2 = 0,033333 *з = 0,066667 *4 = 0,100000 tb = 0,133333 te = 0,166667 t7 = 0,200000 *8 = 0,233333 *9 = 0,266667 tio = 0,300000J tn = 0,333333 Использование методе xi = 0,00 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 x2 = 0,20 0,640000 0,373333 0,328889 0,136296 0,196790 0,011399 0,152826 -0,067230 0,156725 -0,132520 0,192511 i правой разности с г = 0,833333 хг = 0,40 0,960000 0,693333 0,426667 0,345185 0,171111 0,192510 0,041584 0,134286 -0,033644 0,124997 -0,089601 ха = 0,60 0,960000 0,693333 0,426667 0,345185 0,171111 0,192510 0,041584 0,Ш286 -0,033644 0,124997 -^0,089601 хъ = 0,80 0,640000 0,373333 0,328889 0,136296 0,196790 0,011399 0,152826 -0,067230 0,156725 -0,132520 0,192511 х6 = 1,00 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 Рис. 10.11. Использование метода правой разности с г = 0,833333 = h\ = ho/2. Если использовать точно такое же соотношение г, то к\ должно удовлетворять условию ко ' 4" = г(/цJ ^ с2 4с2 Такие же результаты справедливы для удвоенного и учетверенного количества то- точек решетки соответственно вдоль осей х и L Следовательно, произойдет восьми-
10.2. Параболические уравнения 571 кратное увеличение всех вычислений, если таким же образом уменьшить размер решетки. Эти сверхусилия обычно нежелательны и требуют исследования более эффективных методов, которые не имеют стабильных ограничений. Предлагае- Предлагаемый метод скорее неявный, чем явный. Кажущееся повышение уровня сложности будет немедленно компенсироваться безусловной устойчивостью. Метод Кранка-Николсона Неявная схема, открытая Джоном Крайком (John Crank) и Филлисом Никол- соном (Phyllis Nicholson) (см. [29]), основана на численных приближениях для решений уравнения A) в точке (ж, t + к/2), которая находится между рядами решетки. Более определенно, приближение, используемое для ut(x,t + к/2), по- получено по формуле центрированной разности аз) Используемое для ихх{х, t + к/2) приближение является средним значением при- приближений ихх{х, t) и ихх(х, t + к), которое имеет точность порядка O(h2): (к\ 1 х^+* = ^ro(u(x-h,t + k) 2/ 2hz + и{х - М) - 2и(х, t) + и(х + Л, t)) + O(h2). Как и в предыдущем доказательстве, подставим A3) и A4) в уравнение A) и пренебрежем остаточными членами O(h2) и О(к2). Затем в обозначениях u^j = = u(xi, tj) получим разностное уравнение к ~~С 2h2 Используем в A5) подстановку г = c2k/h2. Но в то же время его нужно решить для трех "еще не вычисленных" значений Ut-ij+ь uij+i и «t+ij+i- Это возможно, если все значения перенести в левую часть уравнения. Затем упорядочим члены уравнения A5) и в результате получим неявную разностную формулу A6) - гщ-1 j+i + B + 2r)tiy+i - rtii+i j+i = = B - 2r)uid + r(ui-hj + щ+ij). для i = 2, 3, ..., n - 1. Члены в правой части формулы A6) известны. Таким образом, формула A6) имеет вид линейной трехдиагональной системы АХ = = В. Шесть точек, используемых в формуле Кранка-Николсона A6), вместе с промежуточной точкой решетки, на которой основаны численные приближения, показаны на рис. 10.12.
572 Глава 10. Решение дифференциальных уравнений в частных производных Рис. 10.12. Схема метода Кранка-Николсона Иногда в формуле A6) используется значение г = 1. В этом случае приращение по оси t равно At = к = h2/с2, формула A6) упрощается и принимает вид /1 *7\ I Л I для г = 2, 3, ..., п —, 1. Граничные условия используются в первом и последнем уравнениях (т. е. в u\j — u\j+\ = с\ и nn?j = wnj+i = с-i соответственно). Уравнения A7) особенно привлекательны при записи в форме трехдиагональной матрицы АХ = В. 4 -1 -14-1 -1 4 -1 О 4 -1 1 4 «3J+1 2ci + 2с2 Если метод Кранка-Николсона реализуется на компьютере, то линейную систему АХ = В можно решить либо прямым методом, либо итерационным. Пример 10.4. Используем метод Кранка-Николсона, чтобы решить уравнение A8) ut(x,t) = uxx(x,t) для 0<ж<1 и 0<*< 0,1, с начальным условием A9) и(х, 0) = f(x) = sm(irx) + sinC7rx) для t = 0 и 0 < ж < 1. и граничными условиями u@,t) = pi(*) = 0 для ж = 0 и 0 < t < 0,1, = 0 для ж = 1 и 0 < * < ОД.
10.2. Параболические уравнения 573 Таблица 10.5. Значения и(х{, ti), полученные методом Кранка-Николсона с tj = (j - 1)/100 Х2 = 0,1 хг = 0,2 х4 = 0,3 х5 = 0,4 = 0,5 Х7 = 0,6 х8 = 0,7 = 0,8 Но = 0,9 «3 1,118034 0,616905 0,394184 0,288660 0,233112 0,199450 0,175881 0,157405 0,141858 0,128262 0,116144 1,538842 0,928778 0,647957 0,506682 0,425766 0,372035 0,331490 0,298131 0,269300 0,243749 0,220827 1,118034 0,862137 0,718601 0,625285 0,556006 0,499571 0,451058 0,408178 0,369759 0,335117 0,303787 0,363271 0,617659 0,680009 0,666493 0,625082 0,575402 0,525306 0,477784 0,433821 0,393597 0,356974 0,000000 0,490465 0,648834 0,673251 0,645788 0,600242 0,550354 0,501545 0,455802 0,413709 0,375286 0,363271 0,617659 0,680009 0,666493 0,625082 0,575402 0,525306 0,477784 0,433821 0,393597 0,356974 1,118034 0,862137 0,718601 0,625285 0,556006 0,499571 0,451058 0,408178 0,369759 0,335117 0,303787 1,538842 0,928778 0,647957 0,506682 0,425766 0,372035 0,331490 0,298131 0,269300 0,243749 0,220827 1,118034 0,616905 0,394184 0,288660 0,233112 0,199450 0,175881 0,157405 0,141858 0,128262 0,116144 Для простоты возьмем шаг Ах = h = 0,1 и At = к = 0,01. Таким образом, соотношение г = 1. Пусть решетка имеет п = 11 столбцов в ширину и т = 11 рядов в высоту. Применим алгоритм, с помощью которого были сгенерированы значения для табл. 10.5, 0 < Х{ < 1 и 0 < tj < 0,1. Величины, полученные методом Кранка-Николсона, достаточно близки к ана- аналитическому решению u(x,t) = sinGrx)e~n *+sinC7nr)e~97r2i, истинные значения для последнего ряда равны 0,115285 I 0,2192041 0,301570 0,354385 0,372569 0,354385 0,301570 0,219204 0,115285 Трехмерное изображение данных из табл. 10.5 представлено на рис. 10.13. Программа 10.2 (метод прямой разности для уравнения теплопровод- теплопроводности). Программа предназначена для получения приближенного решения ut(x,t) = c2uxx{x,t) на R = {(x,t) : 0 < х < а,0 <t <b} с и(х,0) = f(x) для 0 < х < а и u@, t) = с\9 и(а, t) = С2, 0 < t < b. function U=forwdif(f,с1,c2,a,b,с,n,m) '/«Вход - f=u(x,0) вводится, как строка 'f I - cl=u@,t) и c2=u(a,t) Уо - а и b - правые точки интервалов [0,а] и [0,b] '/• - с - постоянная уравнения теплопроводности У, -пит- число точек решетки на интервалах [0,а] и [0,Ь] '/.Выход - U - матрица решений; аналог табл. 10.4 •^Инициализация параметров и матрицы U h=a/(n-l);
574 Глава 10. Решение дифференциальных уравнений в частных производных Рис. 10.13. и = u(xi, tj) для метода Кранка-Николсона г«с~2*к/1Г2; s=l-2*r; U=zeros(n,m); •/.Граничные условия U(n,l:m)=c2; •/¦Генерирование первого ряда UB:n-l,l)=feval(f,h:h:(n-2)*h)>; •/Генерирование остальных рядов U for j^im for i=2:n-l end end U=U>;
10.2. Параболические уравнения 575 Программа 10.3 (метод Кранка-Николсона для уравнения теплопровод- теплопроводности). Программа предназначена для приближенного решения уравнения ut(x,t) = c2uxx(x,t) на R = {(x,t) : 0 <х <а,0 <t <b} с и(х,0) = f(x) для 0 < х < а и n@, ?) = сь w(a, t) = С2, 0 < t < b. function U=crnich(f,cl,c2,a,b,c,n,m) У,Вход - f=u(x,0) вводится как строка 'f * У, - cl=u@,t) и c2=u(a,t) У, - а и b - правые точки интервалов [0,а] и [0,Ь] У, - с - постоянная уравнения теплопроводности У, -пит- число точек решетки на интервалах [0,а] и [0,Ь] '/.Выход - U - матрица решений; аналог табл. 10.5 •/.Инициализация параметров и U h=a/(n-l); k=b/(m-l); r=c~2*k/tT2; sl=2+2/r; s2=2/r-2; U=zeros(n,m); •/.Граничные условия U(n,l:m)=c2; •/.Генерирование первого ряда UB:n-l,l)=feval(f,h:h:(n-2)*h)'; •/.Формирование диагональных и не лежащих на диагонали •/.элементов А, вектора постоянных В ' У.и решение трехдиагональной системы АХ=В Vd(l,l:n)=sl*ones(l,n); Vd(l)=l; Vd(n)=l; Va=-ones(l,n-l); Va(n-l)=0; Vc=-ones(l,n-l); Vc(l)=O; Vb(l)=cl; Vb(n)=c2; for j=2:m for i=2:n-l end
576 Глава 10. Решение дифференциальных уравнений в частных производных X=trisys(Va,Vd,Vc,Vb); U(l:n,j)=X>; end U=U' Упражнения к разделу 10.2 1. (а) С помощью прямой подстановки проверьте, что u(x,t) = sin(nTrx) x х е~4п2?г2< —решение уравнения теплопроводности щ(х,t) = Auxx(x)t) для каждого положительного целого числа п = 1, 2, (Ь) С помощью прямой подстановки проверьте, что u(x,t) = sin(nTnr) x хе-(сптг) t —решение уравнения теплопроводности г^(#, t) = c2uxx(x,t) для каждого положительного целого числа п = 1, 2, 2. Какие могут появиться трудности, когда в формуле G) используется Д? = = к = h2/c2l В упр. 3 и 4 используйте метод правой разности для вычисления первых трех ря- рядов приближенного решения заданного уравнения теплопроводности. Выполните вычисления вручную (на калькуляторе). 3. ut(x,t) = uxx(x,t) для 0<ж<1и0<К0,1с начальным условием и(х, 0) = f(x) = sinGra;) для ? = 0и0<а;<1и граничными условиями w@, *)=ci=0 для а; = 0 и 0<К 0,1, г*A,?)=с2 = 0 для х = 1 и 0<t<0,l. Положите h = 0,2, к = 0,02 и г = 0,5. 4. щ(х,г) = гбжж(д;, t) для 0<ж<1и0<К0,1с начальным условием и(х, 0) = f(x) = 1 — \2х — 1| для ^ = 0и0<ж<1и граничными условиями u@, f)=ci=O для ж = 0 и 0<t< 0,1, u(l,t)=c2 = 0 для х = 1 и 0 < * < 0,1. 5. Предположим, что Д? = к = /г2/Bс2). (a) Используйте это в формуле A6) и упростите ее. (b) Запишите уравнение из п. (а) в матричном виде АХ = В. (c) Будет ли матрица из п. (Ь) строго диагонально доминирующей? Объяс- Объясните, почему? 6. Покажите, что u{x,t) = ]CJLiflje""^ *sin(J7T2;) — решение уравнения ut(x,t) = wxx(x, t) для 0<#<1и0<?и имеет граничные значения тх(О, <) = 0, ti(l, <) = 0 и и(яг, 0) = ??=1 aj sin(jTrx).
10.2. Параболические уравнения 577 7. Рассмотрите аналитическое решение и(ж, t) = sinGnr)e~*2t+smC7ra;)e~C7rJt из примера 10.4. (a) Зафиксируйте х и определите lim^oo и(х, t). (b) Поясните физическую суть уравнения. 8. Предположим, что нужно решить параболическое уравнение щ{х, t)— -uxx(x,t) = h(x). (a) Выведите формулу правой разности в явном виде для этой ситуации. (b) Выведите разностную формулу в явном виде для этой ситуации. 9. Предположим, что используется формула A1) и что f(x) > 0, g\{t) = 0 и (a) Покажите, что максимальное значение и(х{, fy+i) в (j+1)-m ряду меньше максимального значения u(xi,tj) в j-м ряду или равно ему. (b) Сделайте предположение относительно максимального значения и (х{, tn) в n-м ряду, когда п стремится к бесконечности. Алгоритмы и программы В задачах 1 и 2 используйте программу 10.3 для решения уравнения теплопровод- теплопроводности ut(x,t) = c2uxx(x,t) для 0<ж<1и0<?< 0,1, с начальным условием и(х: 0) = f(x) для ?=0и0<#<1и граничными условиями u@, t) = с\ = 0 для х = 0 и 0 < t < 0,1, ti(l,<)=c2 = 0 для ж = 1 и 0 < t < ОД для заданных значений. Воспользуйтесь командами surf yi contour для постро- построения графика своих приближенных решений. 1. Положите f(x) = sinGrx) + sinB7nr), h = 0,1, к = 0,01 и г = 1. 2. Положите f(x) = 3 — |3ж — 1| — \3х - 2|, h = 0,1, к = 0,01 и г = 1. 3. (а) Модифицируйте программы 10.2 и 10.3 таким образом, чтобы они вос- воспринимали граничные условия г/@, t) = g\{t) ф 0 и п(а,?) = 32(*) 7^ 0. (Ь) Используйте свою модификацию программы 10.3 для решения уравне- уравнений теплопроводности из задач 1 и 2, но при граничных условиях u@,t) =gi(t) =t2 для ж = 0 и 0<*<0,1, е* для х = 1 и 0 < t < 0,1 вместо с\ = С2 = 0. (с) Воспользуйтесь командами surf и contour для построения графиков своих приближенных решений.
578 Глава 10. Решение дифференциальных уравнений в частных производных 4. Постройте программу для реализации своих формул правой разности в явном виде и разностной формулы в неявном виде из пп. (а) и (Ь) упр. 8 соответ- соответственно. 5. Воспользуйтесь своими программами из задачи 4 для решения уравнения теплопроводности щ(х, t) — uxx(x,t) = sin(#) для 0<:г<1и0<?< 0,20 с начальным условием и(х, 0) = f(x) = sin(Trx) + sinC7ra;) и граничными условиями и@, *) = с2 = 0 для ж = 0 и 0<t< 0,20, u(l, t) = с2 = 0 для ж = 1 и 0<t< 0,20. Положите h = 0,2, к = 0,02 иг = 0,5. 10.3. Эллиптические уравнения i В качестве примера эллиптического уравнения в частных производных рас- рассмотрим уравнения Лапласа, Пуассона и Гельмгольца. Напомним, что оператор Лапласа функции и(х, у) равен A) V2u = ихх + иуу. Используя такое обозначение, можно записать уравнения Лапласа, Пуассона и Гельмгольца в следующем виде: B) V2u = 0 уравнение Лапласа, C) V2u = g(x, у) уравнение Пуассона, D) V2u + /(re, y)u = д(х, у) уравнение Гельмгольца. Часто известны граничные значения функций д и / во всех точках на сторонах прямоугольной области R на плоскости. В этом случае каждое из уравнений можно решить, используя численную технику, известную как метод конечных разностей. Оператор Лапласа разностного уравнения Оператор Лапласа можно выразить в дискретном виде, подходящем для чис- численных вычислений. Формула для приближения /"(#) получена из E) Г (х) = /(* + *) Если этот оператор применим к функции и(х,у), чтобы получить приближение ихх{х, у) и иуу(я, у), и сложить результаты, то можно получить
10.3. Эллиптические уравнения 579 F) V2u = >у) o(h2) Предположим, что прямоугольник R = {(#,y) : 0 < x < a,0 < у < 6, где Ь/a = m/n} разделен нап-lxm-l квадратов со стороной, равной h (т .е. а = и 6 = m/i), как показано на рис. 10.14. Для решения уравнения Лапласа используем приближение ц(гс + h, у) + и(х -h,y)+ u(g, у + /t) + ц(ж, у-К)- 4и{х, у) _ К') U которое имеет порядок точности O(h2) во всех внутренних точках решетки (#, у) = = (яг*, yj) для г = 2,..., п — 1 и j = 2,..., т — 1. Точки решетки расположены на одинаковом расстоянии: Жг+i = Х{ + h, Xi-\ = а^ — h, yi+i =yi + hn yi-\ = yt — h. Используя приближение щ^ для u(xi,yj), уравнение G) можно записать в виде (8) 2 V щ _ - U. Оно известно как пятиточечная разностная формула для уравнения Лапласа. Эта формула связывает значение функции щ^ с четырьмя ее смежными значения- значениями iij+ij, wj_ij, Utj+i и Uij_i (рис. 10.15). Можно исключить член /г2 в формуле (8), чтобы получить формулу вычисления оператора Лапласа (9) + Щ-\ = 0. Ут 2/j-i X2 Xi_l Xn Рис. 10Л4. Решетка, которая используется с разностным уравнением Лапласа Рис. 10.15. Схема Лапласа
580 Глава 10. Решение дифференциальных уравнений в частных производных Сборка линейной системы Предположим, что значения и(х,у) известны в следующих граничных точках решетки: u(xuyj) = uij для 2 < j < m - 1 (слева), w(xf, у\) = г/^д для 2 < г < п — 1 (внизу), и(хп, yj) = unj для 2 < j < m - 1 (справа), «(Яг, Ут) = ^г,т ДЛЯ 2 < Ъ < П - 1 (вверху). Затем, применяя формулу вычисления оператора Лапласа (9) в каждой внутренней точке области R, построим линейную систему (п — 2) уравнений с (п — 2) неиз- неизвестными, которую решим, чтобы получить приближение к и(ж, у) во внутренних точках R. Например, предположим, что область — это квадрат с п = т = 5 и что неизвестные значения u(x^yj) в девяти внутренних точках решетки обозначены через pi, р2>..., Рэ и расположены, как показано на рис. 10.16. Применим формулу вычисления оператора Лапласа (9) к каждой из внутренних точек решетки и получим в результате систему АР = В из девяти линейных уравнений. -4pi + Р2 + Р4 = -^2,1 - ul,2 Pi - 4р2 + РЗ + Р5 = -^3,1 Р2 - 4рз + Рб = -*4i - п5,2 Pi - 4р4 + Р5 + Р7 = ~UiK Р2 + Р4-4р5+ Рб + Р8 =0 РЗ + Р5 - 4рб + Р9 = ~^5,3 р4 ~ 4р7 + Р8 = -гА2,5 - Ui}4 Р5 + Р7 - 4р8 + Р9 = -^3,5 Рб + Р8 - 4р9 = -U4,5 - U5,4. Пример 10.5. Найдем приближенное решение уравнения Лапласа V2w = 0 в прямоугольнике R = {(ж,у) : 0 < ж < 4,0 < у < 4}, где и(х,у) — температура в точке (ж, у) и граничные условия таковы: и(х, 0) = 20 и и(х, 4) = 180 для 0 < х < 4, и гг(О, у) = 80 и г*D, у) = 0 для 0 < у < 4. Решетка изображена на рис. 10.17.
10.3. Эллиптические уравнения 581 «1,4 - «1,3 «1,2 «2,5 P7 P4 i • Pi «3,5 P8 P5 P2 «4,5 P9 P6 • < P3 «5,4 ' «5,3 «5,2 «2,1 «3,1 «4,1 Рис. 10.16. Решетка размера 5x5 только для граничных значений «1,4 «1,3 «1,2 «2,5 = = 80 « = 80 . = 80 15U «3,5 — 1OU P7 P4 • Pi PS Ръ P2 .... ,„» . ... «4,5 = 16U РЯ P6 P3 «5,4 = 0 «5,3 = 0 «5,2 = О 2,1 = 20 «з,1 = 20 «4,1 = 20 Рис. 10.17. Решетка 5 х 5 к примеру 10.5 Если применить в этом случае формулу (9), то линейная система АР примет следующий вид. -4pi + р2 + р\ = -100 Рг - 4р2 + Рз + Ръ = -20 Р2 - 4р3 + Рб = -20 Рх -4р4+ рь + Р7 =-80 р2 + Р4-4р5+ Рб + Р8 =0 Рз + Ръ - 4р<5 + Р9 = О Р4 -4р7+ Р8 =-260 Ръ + Р7- 4р8 + Р9 = -180 Рб + Р8 - 4рэ = -180 = в
582 Глава 10. Решение дифференциальных уравнений в частных производных Вектор решения Р можно получить методом исключения Гаусса (или приду- придумать такие более эффективные схемы, как приведение трехдиагонального алгорит- алгоритма к пятидиагональным системам). Температура во внутренних точках решетки выражена в виде вектора Р = [pi P2 Pz Ра Ръ Ре Pi Ps P9] = = [55,7143 43,2143 27,1429 79,6429 70,0000 45,3571 112,857 111,786 84,2857]'. ¦ Вывод граничных условий Граничные условия Неймана задают значение нормальной производной от и (я, у) на грани. Для иллюстрации используем условие, когда нормальная произ- производная равна нулю: (Ю) ^ В задачах о потоках тепла это означает, что края теплоизолированы и поток тепла повсюду на краях равен нулю. Предположим, что х = хп зафиксировано и что рассматривается правая грань х = а прямоугольника R = {(ж, у) : 0 < х < а, 0 < у < 6}. Нормальные граничные условия для этой грани (П) —и(хп,уэ) = ux(xn,yj) = 0. Тогда разностное уравнение Лапласа для точки (хпу yj) имеет вид A2) tin+ij + tin_ij + unJ+i + ипj-i - 4tinj = 0. Значение un+ij неизвестно, так как оно находится вне области R. Тем не менее можно использовать формулу численного дифференцирования A3) и получить приближение ип+\ j «un_i j, имеющее порядок точности O(h2). Если использовать это приближение в уравнении A2), то в результате можно получить 2un-ij + unj+i + unj-i - Aunj = 0. Эта формула выражает соотношение между значением функции unj и ее смеж- смежными значениями ип-\j9 unj+i и unj-\.
10.3. Эллиптические уравнения 583 t*t-l,l Рис. 10.18. Схемы Неймана Схемы вычислений для других граней можно вывести аналогично (рис. 10.18). Для четырех вариантов схем вычислений Неймана получаем A4) A5) A6) A7) Щ-\,т + 2un_i L =0 4t4,m = 0 J =0 = 0 (нижняя грань), (верхняя грань), (левая грань), (правая грань). Предположим, что найденное условие du(x,y)/dN = 0 используется вдоль части грани R и что известные граничные значения и(х, у) используются на дру- других частях грани. Тогда получается смешанная задача. Уравнения для нахождения приближений для u(xi,yj) в точках грани содержит соответствующие вычисли- вычислительные схемы Неймана A4)—A7), Формула вычисления оператора Лапласа (9), тем не менее, используется, чтобы найти приближения для u(xi, yj) во внутренних точках Я. Пример 10.6. Найдем приближенное решение уравнения Лапласа V2u = 0 в прямоугольнике R = {(#, у) : 0 < х < 4,0 < у < 4}, где и(х, у) — температура в точке (я, у) и граничные значения показаны на рис. 10.19:
584 Глава 10. Решение дифференциальных уравнений в частных производных «2,5 = 180 «3,5 = 180^4,5 = 180 «1,4 «1,3 «1,2 «1,1 = 80 ¦ = 80 < = 80 , -80 , > • QlO > • 97 94 • 9ii • 98 • 95 • • 912 99 • 1 96 91 9з «5,4 = 0 «5,3 = 0 «5,2 = 0 «5,1 = 0 рис# Ю.19. Решетка 5 х 5 для примера 10.6 u(x, 4) = 180 для 0 < х < 4, иу(х, 0) = 0 для 0 < х < 4, ^@) У) = 80 для 0 < у < 4, иD, у) = 0 для 0 < у < 4. Применим вычислительную формулу Неймана A4) в граничных точках q\, q<i и 9з> а вычислителную схему Лапласа (9) — в остальных точках q±y q$, ..., 912. В результате получим линейную систему AQ = -В, состоящую из 12 уравнений с 12-ю неизвестными. *9i +92 + 294 91 ~ 492 +93 + 295 92 — 49з + 296 91 - 494 +95 +97 92 + 94 — 495 + 9б +98 9з + 95 - 496 + 99 94 - 4д7 +98 + 9ю 95 + 97-4g8+ q9 + qn 96 + 98 " 97 98 99 = -80 = 0 = 0 = -80 = 0 . = 0 = -80 = 0 + 912 = 0 ~49io+ 911 =-260 + 9ю - 4911 + 912 = -180 - 4912 = -180 Befcrop решения Q можно получить методом исключения Гаусса (или приду- придумать такие более эффективные схемы, как приведение трехдиагонального алгорит-
10.3. Эллиптические уравнения 585 ма к пятидиагональным системам). Температура во внутренних точках решетки и вдоль нижней грани выражена в виде вектора Q = [яг 92 9з 94 95 96 97 98 99 Яю 9и 912] = = [71,8218 56,8543 32,2342 75,2165 61,6806 36,0412 87,3636 78,6103 50,2502 115,628 115,147 86,3492]'. ¦ Итеративные методы Предыдущий метод показал, как для решения разностного уравнения Лапласа построить определенную систему линейных уравнений и решить ее. Хранение данных — недостаток этого метода: каждая внутренняя точка решетки вводится в решаемое уравнение. Поскольку лучшее приближение требует, чтобы ячейки ре- решетки были как можно меньше, может понадобиться много уравнений. Например, для решения уравнения Лапласа с граничными условиями Дирихле требуется ре- решить систему из (п — 2)(гп — 2) уравнений. Если R разделим на умеренное число квадратов, скажем 10 х 10, то получим 91 уравнение с 91 неизвестным. Таким образом, осознаешь необходимость нахождения техники, которая уменьшит коли- количество хранящихся данных. Итеративный метод потребует хранения только 100 численных приближений {uij} по всей решетке. Начнем с разностного уравнения Лапласа A8) щ+ij + щ-ij + Uij+i + Uij-i - Ащ^ = 0 и предположим, что граничные значения и(х,у) известны в следующих точках решетки: u(xi,yj) = и\j для 2 < j < т - 1 t (слева), и{хи У\) = ЩЛ для 2 < г < п - 1 (внизу), u(xn,yj) = unj для 2<j<m-l (справа), ^(^i, Ут) = г*г,т Д^ 2 < г < п - 1 (вверху). Перепишем уравнение A8) в следующей подходящей для итерации форме: B0) t*y=t*y+rWl где B1) rij = ~— *— ^ ~ ~* для2<г<п-1и2<;<т-1. Начальные значения во всех внутренних точках решетки должны быть вы- вычислены предварительно. Для этого можно использовать постоянную К, которая равна среднему арифметическому 2п + 2т — 4 граничных значений, заданных
586 Глава 10. Решение дифференциальных уравнений в частных производных в A9). Одна итерация состоит из быстрой формулы B0) по всем внутренним точкам решетки. Итеративный оператор Лапласа B0) последовательными итера- итерациями охватывает внутреннюю область решетки до тех пор, пока остаточный член ri j в правой части уравнения B0) не "уменьшится до нуля" (т. е. неравен- неравенство \rij\ < е выполняется для каждого 2 < i < n - 1 и 2 < j < m - 1). Скорость сходимости для приведения всех остаточных членов {rij} к нулю увеличивается при использовании метода последовательной сверхрелаксации (ПСР). В методе ПСР используется итерационная формула f B2) UiJ ~Щ"+" V где параметр ш находится в области 1 < и> < 2. В методе ПСР формула B2) проносится по всей решетке до тех пор, пока не выполнится неравенство |г^| < б. Оптимальный выбор ш основан на изучении собственных чисел итерационных матриц для линейных систем и в этом случае задается формулой B3) ы = - 4 Если граничное условие Неймана задано на таких же частях граней, то следует переписать уравнения A4)—A7) в форме, которая удобна для итерации. Выпишем четыре следующих варианта и включим параметр релаксации и: B4) щ,1=Щл+"Bи" + Щ-1Л+АЩ*1Л4ЯН'1) (нижняя грань), B5) щ,т = щ,т + ш BЩ'т~1 + *-"»/ Щ+1'т ~ 4Щ'т) (верхняя грань), B6) utJ = 4+W(^+Ul'>-1+4Ul'>+l-4ui'>) (левая грань), B7) ип, = unJ + и, B^-1'j + ип*-\+ Un'j+1 ~ Ып* ) (правая грань). Пример 10.7. Используем итеративный метод для вычисления приближенного решения уравнения Лапласа V2 = 0 в R = {(х,у) : 0 < х < 4,0 < у < 4}, где граничные значения равны и(х, 0) = 20 и и{х, 4) = 180 для 0 < х < 4, и п@,у) = 80 и иD,у) = 0 дляО<у<4.
10.3. Эллиптические уравнения 587 Для иллюстрации разобьем квадрат на 64 квадрата со сторонами, равными = h = 0,5 и Ду = h = 0,5. Начальное значение во внутренних точках решетки положим равным щ^ = 70 для каждого г = 2, ..., 8 и j = 2, ..., 8. Используем метод ПСР с параметром и = 1,44646 (подставим в формулу B3) п = 9 и т = = 9). После 19 итераций остаточный член равномерно уменьшится (т. е., |гу| < < 0,000606 < 0,001). Результаты вычислений приведены в табл. 10.6. Поскольку граничная функция в углах разрывна, граничные значения щд = 50, идд = 10, щ?9 = 130 и г4д,9 = 90 включены в табл. 10.6 и рис. 10.20; они не использовались в вычислениях внутренних точек решетки. Трехмерное представление данных из табл. 10.6 изображено на рис. 10.20. ¦ Таблица 10.6. Приближенное решение уравнения Лапласа с условиями Дирихле г/9 2/8 VI У6 г/5 г/4 г/з У2 У1 130,000 80,000 80,000 80,000 80,000 80,000 80,000 80,000 50,000 х2 180,000 124,821 102,112 89,1736 80,5319 73,3023 65,0528 51,3931 20,0000 180,000 141,172 113,453 94,0499 79,6515 67,6241 55,5159 40,5195 20,0000 ха 180,000 145,414 116,479 93,9210 76,3999 62,0267 48,8671 35,1691 20,0000 хь 180,000 144,005 113,126 88,7553 70,0003 55,2159 42,7568 31,2899 20,0000 180,000 137,478 103,266 77,9737 59,6301 46,0796 35,6543 27,2335 20,0000 X-J 180,000 122,642 84,4844 60,2439 44,4667 33,8184 26,5473 21,9900 20,0000 180,000 88,6070 51,7856 34,0510 24,1744 18,1798 14,7266 14,1791 20,0000 90,0000 0,0000 0,0000 0,0000 0,0000 0,0000 0,0000 0,0000 10,0000 Рис. 10.20. и = и(х,у) с граничными значениями Ди- Дирихле
588 Глава 10. Решение дифференциальных уравнений в частных производных Пример 10.8. Используем итерационный метод для вычисления приближенного решения уравнения Лапласа V2u = 0 в области R = {(ж, у) : 0 < х < 4,0 < у < 4}, где граничные значения равны и(ж,4) = 180 иу(х,О) = 0 гх@,у) =80 uD,y) = 0 для для ДЛЯ ДЛЯ У = 4 у = 0 х = 0 х = А и и и и 0 0 0 0 <х <х <У <У < < < < 4, 4, 4, 4. Для иллюстрации разделим квадрат на 64 квадрата со сторонами Ах = h = 0,5 и Ду = /i = 0,5. Начальные значения, используемые линейной интерполяцией, взяты вдоль грани, на которой у = у\ = 0. Начальное значение во внутрен- внутренних точках решетки положим равным щ^ = 70 для каждого % = 2, ..., 8 и j = 2, , 8. Затем метод ПСР применяем с параметром и = 1,44646 (как в при- примере 10.7). После 29 итераций остаточный член равномерно уменьшился, (т. е. ktjl ^ 0,000998 < 0,001). Результаты вычислений приведены в табл. 10.7. По- Поскольку в углах граничная функция разрывна, то граничные значения щ$ = 130 и ^9,9 ^ 90 включены в табл. 10.7 и рис. 10.21; их не используют в вычислениях внутренних точек решетки. Трехмерное представление данных из таблицы 10.7 изображено на рис. 10.21. ¦ Уравнения Пуассона и Гельмгольца Рассмотрим уравнение Пуассона B8) V2u = g(x,y). Используя обозначения gij = g(xi,yj), преобразуем формулу B0) для решения уравнения B8) на решетке прямоугольника -•, ¦ Рассмотрим уравнение Гельмгольца C0) V2u + f{x,y)u = g(x,y). Если использовать обозначения /t-j = f(xi,yj), то преобразованная формула B0) для решения уравнения C0) на прямоугольной решетке будет иметь вид C1) tiij - uij + i-iJ + ЦуЯ-i + «ij-i - D ~ Более детально эти формулы исследуются в упражнениях.
10.3. Эллиптические уравнения Таблица 10.7. Приближенное решение уравнения Лапласа со смешанными граничными условиями 589 У9 2/8 У7 Уб Уь УА Уъ 2/2 У1 130,000 80,000 80,000 80,000 80,000 80,000 80,000 80,000 80,000 180,000 126,457 103,518 91,6621 84,7247 80,4424 77,8354 76,4244 75,9774 180,000 142,311 115,951 98,4053 86,7936 79,2089 74,4742 71,8842 71,0605 Х4 180,000 146,837 119,568 99,2137 84,8347 75,1245 68,9677 65,5772 64,4964 хъ 180,000 145,468 116,270 94,0461 78,2063 67,4860 60,6944 56,9600 55,7707 х6 180,000 138,762 105,999 82,4936 66,4578 55,9185 49,3635 45,7972 44,6670 х7 180,000 123,583 86,4683 63,4715 49,2124 40,3665 35,0435 32,1981 31,3032 Х8 180,000 89,1008 52,8201 35,7113 26,5538 21,2915 18,2459 16,6485 16,1500 х9 90,0000 0,0000 0,0000 0,0000 0,0000 0,0000 0,0000 0,0000 0,0000 Рис. 10.21. и = и(х, у) для смешанной задачи Улучшения Модификация уравнения (8), которую можно применять для решения уравнения Лапласа, является девятиточечной разностной формулой: *-г2 = 0. При решении уравнений Пуассона или Гельмгольца ошибка усечения для де- девятиточечной разностной формулы имеет порядок O(/i4); таким образом, она не является улучшением по сравнению с пятиточечной разностной формулой. Тем не
590 Глава 10. Решение дифференциальных уравнений в частных производных менее, если девятиточечную формулу применять при решении уравнения Лапласа V2u = 0, ошибка усечения будет иметь порядок O(h6) и выгоднее использовать девятиточечную разностную формулу. Программа 10.4 (метод Дирихле для уравнения Лапласа). Программа пред- предназначена для приближенного решения уравнения ихх(х,у) + иуу(х^у) = 0 в области R = {(я,у) : 0 <х <а,0 <у <Ь} с и(я,0) = /i(*). и\х,Ъ) = Л(я) для 0 < х < а и и@, у) = /з(у), и(а, у) = /4(у) для 0 < у < Ь. Предполагается, что Ах = Ду = h и что существуют такие целые числа пит, что а = n/i и 6 = function U=dirich(fl,f2,f3,f4,a,b,h,tol,maxl) •/.Вход - fl,f2,f3,f4 - граничные функции; вводятся как строки % - а и b - правые крайние точки интервалов [0,а] и [0,Ь] X - h - шаг 7. - tol - допустимое отклонение •/.Выход - U - матрица решения; аналог табл. 10.6 •/•Инициализация параметров и U n=fix(a/h)+l; m=fix(b/h)+l; ave=(a*(feval(fl,0)+feval(f2,0)) ... +b*(feval(f3,0)+feval(f4,0)))/B*a+2*b); U=ave*ones(n,m); '/Граничные условия U(l,l:m)=feval(f3,0:h:(m-l)*h)); U(n,l:m)=feval(f4,0:h:(m-l)*h)>; U(l:n,l)=feval(fl,O:h:(n-l)*h); U(l:n,m)=feval(f2,0:h:(n-l)*h); U(n,m)=(U(n-l,m)+U(n,m-l))/2; •/.Параметр метода последовательной свехрелаксации w=4/B+sqrtD-(cos(pi/(n-l))+cos(pi/(m-l)))^2)); •/.Улучшение приближений и оператор очистки по всей решетке егг=1; cnt=0; while ((err>tol)&(cnt<=maxl)) err=0; for j=2:m-l for i=2:n-l
10.3. Эллиптические уравнения 591 if (err<=abs(relx)) err=abs(relx); end end end cnt=cnt+l; end U=flipud(U>); Упражнения к разделу 10.3 1. (а) Запишите систему из четырех уравнений с четырьмя неизвестными, р\9 Р2> Рз и р4, Для приближенного вычисления гармонической функции и(х, у) в прямоугольнике R = {(ж, у) : 0 < х < 3,0 < у < 3} (рис. 10.22). Граничные условия заданы в виде и(х, 0) = 10 и и(х, 3) = 90 для 0 < х < 3, и{0,у) = 70 и иC,у)=0 для 0 < у < 3. (Ь) Решите уравнения из п. (а) для рь р2, рз и р\. 2. (а) Запишите систему из шести уравнений с шестью неизвестными <ji, 92, • • •, <7б Для приближенного вычисления гармонической функции и(х, у) в прямоугольнике R = {(х, у) : 0 < гг < 3,0 < у < 3} (рис. 10.23) с гра- граничными условиями и(х, 3) = 90 и иу(х,0) = 90 для 0 < х < 3, м@,у) = 70 и иC,у) = 0 для 0<у<3. (Ь) Решите уравнения из п. (а) для 4ь 92» • • •> 96- ui,3 = 70 < гц,2 = 70< ^2,4 = 90 Рз # Pi W3,4 = P4 # P2 90 = 0 144,2 = 0 W2,l = 10 U3,l = 10 Рис. 10.22. Решетка к упр. 1
592 Глава 10. Решение дифференциальных уравнений в частных производных «2,4 = 90 «3,4 = 90 «1,з = 70 = 70 = 70 Яг Я* Рис. 10.23. Решетка для упр. 2 3. (а) Покажите, что и(х, у) = а\ sin(:r) sinh(y) + Ь\ sinh(rr) sin(y) — решение уравнения Лапласа. (Ь) Покажите, что и(х,у) = ansm(nx)sinh(ny) + bn sinh(rcx) sin(ny) — решение уравнения Лапласа для каждого положительного целого п = = 1,2 4. Пустьи(х,у) = х2—у2. Определите величины u(x+h, у), u(x—h, у), и(х,у+ + h) и и(х, у — h), подставьте их в формулу G) и упростите ее. 5. (а) Предположим, что и имеет вид и(х, у) = ах2 + Ьху + су2 + dx + еу + +/. Найдите соотношение между коэффициентами, которое гарантирует равенство ихх + иуу = 0. (b) Предположим, что и задано таким же, как в п. (а). Найдите соотношение между коэффициентами, которое гарантирует равенство ихх + иуу = -1. (c) Найдите коэффициенты полинома и(х,у)9 заданного в п. (а), которые удовлетворяют дифференциальному уравнению из п. (а) и граничным условиям и(х, 0) = 0 и и(х, /3) = 0. (d) Найдите коэффициенты полинома и(х,у), заданного в п. (а), которые удовлетворяют дифференциальному уравнению в частных производных из пункта (Ь) и граничным условиям и(х, 0) = 0 и и(х, /3) = 0. 6. Решите уравнение ихх+иуу = —Аи в области R = {(х,у) : 0<ж<1,0<у<1} с граничными значениями и(х,у) = cosBa;) +sinBy). 7. Определите систему из четырех уравнений с четырьмя неизвестными, р\9 Р2> Р2 и Р4> Для девятиточечной разностной формулы Лапласа на решетке размера 4x4 (рис. 10.24).
10.3. Эллиптические уравнения 593 t*lfl ^4,4 «4,2 Рис. 10.24. Решетка для упр. 7 Алгоритмы и программы 1. (а) Воспользуйтесь программой 10.4 для приближенного вычисления гар- гармонической функции и(х,у) в прямоугольнике R = {(х,у) : 0 < х < < 1,5; 0 < у < 1,5} с шагом h = 0,5 и граничными условиями и(х, 0) = ж4 и iz(s, 1,5) = хА - 13,5я2 + 5,0625 для 0 < х < 1,5, и@, у) = у4 и 11A,5, у)=у4- 13,5у2 + 5,0625 для 0 < у < 1,5. (Ь) Для построения графика своих приближений из п. (а) используйте ко- команду surf и сравните его с точным решением и(х, у) = хА — 6х2у2+у4. 2. Модифицируйте программу 9.11 (трехдиагональные системы) для решения пятидиагональных систем. 3. (а) Используйте решетку 5x5 (такую, как в упр. 10.5) и определите си- систему из девяти уравнений с девятью неизвестными рь Р2> Рз> • • •> Рэ для приближенного вычисления гармонической функции и(х,у) в пря- прямоугольнике R = {(х, у) : 0 < х < 4,0 < у < 4} с граничными условиями и(х, 0) = 10 и и(х, 4) = 120 для 0 < х < 4, и@, у) = 90 и г/D, у) = 40 для 0 < у < 4. (b) Используйте модифицированную вами программу 9.11 для нахождения РЬР2, ...,Р9- (c) Используйте программу 10.4 для нахождения приближений. (d) Используйте решетку 9x9, подобную решетке из примера 10.7, и про- программу 10.4 для нахождения приближений. 4. (а) Используйте решетку 5x5, подобную решетке из примера 10.6, и опре- определите систему из 12 уравнений с 12 неизвестными q\, q<i> ..., дп для
594 Глава 10. Решение дифференциальных уравнений в частных производных вычисления приближений к гармонической функции и(х,у) в прямо- прямоугольнике R = {(х, у) : 0 < х < 4,0 < у < 4} с граничными условиями и(х, 4) = 120 и иу(х, у) = 0 для 0 < х < 4, и@, у) = 90 и иD, у) = 40 для 0 < у < 4. (b) Используйте мдифицированную вами программу 9.11, чтобы найти q\, 92> • • •> 912- (c) Модифицируйте программу 10.4, для вычисления приближений. (d) Используйте решетку 9x9 (подобную решетке из примера 10.8) и мо- модифицируйте программу 10.4 для нахождения приближений. 5. (а) Используя решетку 5x5, выведите 9 уравнений с 9 неизвестными рирг, Рз> • • -5 Р9 Для вычисления приближенного решения гл(х, у) уравнения Пуассона q д(х,у) = 2 в прямоугольнике R = {(а:, у) : 0 < х < 1, 0 < у < 1} и граничными условиями и(х,0)=х2 и и(х, 1) = (х - IJ для 0 < гг < 1, w@,y)=y2 и u(l,y) = (y-lJ для 0<у<1. (b) Используйте модифицированную вами программу 9.11 для решения от- относительно рь р2,..., Р9- (c) Модифицируйте программу 10.4 для нахождения приближений. (d) Используйте решетку 9 х 9 и модифицированную вами программу 10.4 для нахождения приближений. 6. (а) Используя решетку 5x5, выведите 9 уравнений с 9 неизвестными рь Р2> Рз> • • •> Р9 Для вычисления приближенного решения и(х, у) уравнения Пуассона с д(х, у) = у в прямоугольнике Д={(ж,у) :0<ж<1,0<у<1} и граничными условиями и(х, 0) = хг и и(ж, 1) = х3 для 0 < я < 1, и@,у)=0 и tz(l,y) = l для 0<у<1. (b) Используйте модифицированную вами программу 9.11 для нахождения PUP2, ..-,Р9- (c) Модифицируйте программу 10.4 для нахождения приближений. (d) Используйте решетку 9 х 9 и модифицированную вами программу 10.4 для нахождения приближений.
Собственные значения и собственные векторы Проектирование определенных инженерных систем включает теорию повре- повреждений при максимальных нагрузках. Она основана на предположении, что мак- максимальная основная нагрузка, действуя на тело, разрушает его. Математическим результатом, связанным с этой проблемой, является основная теорема о линей- линейном преобразовании Y = АХ. В двумерном случае существуют такие базисные векторы U\ и L/2, что действие такого преобразования выражается в растяже- растяжении пространства в направлениях, параллельных U\ и Е/г, на величины Ai и Аг соответственно. Рассмотрим симметричную матрицу 3,8 0,6 0,6 2,2 -3 0 3 6 9 12 -30369 12 Рис. 11.1. (а) Прообразы U\ = [3 1]' и U* = [—1 3]' для преобразования Y = АХ. (Ь) Образ векторов Vx = AUX = [12 4]' и V2 = AU2 = [-2 6]' 595
596 Глава 11. Собственные значения и собственные векторы главные направления — U\ = [3 l] и С/2 = [—1 3] с соответствующими собственными значениями Ах = 4 и А2 = 2. Образы этих векторов — V\ = AU\ = = [12 4]' = 4[3 l]' и V2 = AU2 = [-2 б]' = 2 [-1 3]'. В результате данного преобразования четверть круга растягивается в четверть эллипса, как показано на рис. 11.1. 11.1. Однородные системы: задача о собственных значениях Предпосылка Напомним некоторые понятия из линейной алгебры. Доказательства теорем оставлены читателю в качестве упражнений; их можно найти в любом стандарт ном учебнике по линейной алгебре (см. [132]). В главе 3 показано, как решить п линейных уравнений с п неизвестными. Предполагалось, что определитель матрицы не равен нулю и, следовательно, ре* шение единственное. Для случая однородных систем АХ = 0, если det(A) ^0, то единственное решение тривиально: X = 0. Если det(-A) = 0, то существуют нетривиальные решения системы АХ = 0. Предположим, что det(A) = 0, и рассмотрим решения однородной линейной системы О) Система уравнений A) всегда имеет тривиальное решение х\ = 0, х2 = 0, ..., хп = 0. Чтобы получить решение, образуя совокупность соотношений между переменными, можно использовать метод исключения Гаусса. Пример 11.1. Найдем нетривиальные решения однородной системы х\ + 2х2 — жз = 0, 2х\ + х2 + хз = 0, #з = 0. anxi a2ixi anixi + a\2x2 + • • ¦ H + ^22^2 + '"" H + «n2^2 H V CllnXn Ь а2пхп = 0 = 0 = 0 Используя метод исключения Гаусса, исключим х\ и в результате получим х\ + 2х2 - #з = 0, -Зх2 + Зхз = 0, бх3 = 0.
11.1. Однородные системы: задача о собственных значениях 597 Поскольку третье уравнение кратно второму, система приводится к двум уравне- уравнениям с тремя неизвестными: Х1 + Х2 == О —Х2 + Хз = 0. Выберем одно неизвестное и используем его как параметр. Например, положим #з = *• Тогда из второго уравнения следует, что Х2 = ?, и из первого уравнения вычисляем, что х\ = — t. Значит, решение можно выразить через совокупность соотношений: Х\ = —t Х2 = t ИЛИ X = ¦-*¦ = i '-I" 1 1 где t — любое действительное число. ¦ Определение 11.1 (линейная независимость). Говорят, что векторы U\, U2, ..., Un линейно независимы, если из уравнения B) следует, что с\ = 0, С2 = 0,..., сп = 0. Если векторы не являются линейно незави- независимыми, то говорят, что они линейна зависимы. Другими словами, векторы линей- линейно зависимы, если существует множество не равных нулю чисел {ci, С2,..., сп}, таких, что выполняется равенство B). А Два вектора в 5R2 линейно независимы тогда и только тогда, когда они не параллельны. Три вектора в 5R3 линейно независимы тогда и только тогда, когда они не лежат в одной плоскости. Теорема 11.1. Векторы С/ь С/2,.. •, Un линейно зависимы тогда и только тогда, когда по крайней мере один из них является линейной комбинацией других. Хорошим свойством векторного пространства является возможность выраже- выражения каждого вектора в виде линейной комбинации векторов, выбранных из малого подмножества векторов. Это служит поводом для следующего определения. Определение 11.2 (базис). Предположим, что S = {U\, U2, -.., Um} — мно- множество m векторов в пространстве SRn. Множество S называется базисом для Э?п, если для каждого вектора -X" в 3?п существует единственное множество скаляров {ci, C2,..., ст}, таких, что X можно выразить в виде линейной комбинации C) X = c2U2 cm[/m.
598 Глава 11. Собственные значения и собственные векторы Теорема 11.2. Любое множество из п линейно независимых векторов образую базис пространства 5Rn. Каждый вектор X в W1 может быть единственным обй разом выражен в виде линейной комбинации базисных векторов, как показано % равенстве C). Теорема 11.3. Пусть К\, К*2> • • •> Km — векторы в 5Rn. D) Если т > п, то векторы линейно зависимы. E) Если га = п, то векторы линейно зависимы тогда и только тогда, когда det(liC) = 0, где К = [Ki K*i ... Кт]. Собственные значения Иногда в математических приложениях возникают следующие вопросы. "Ка- "Каковы особенности выражения А — XI, где А — параметр?" "Каково поведение по- последовательности векторов {A^Xq}<jL0T' "Каковы геометрические свойства ли- линейного преобразования?" Решения задач для различных областей приложения математики, таких как экономика, техника и физика, могут включать понятия, имеющие отношение к этим вопросам. Теория собственных значений и собствен- собственных векторов достаточно мощна, чтобы решить эти или другие подобные задачи. Пусть А — квадратная матрица размера п х п, и пусть X — вектор размера п,. Произведение Y = АХ можно рассматривать как линейное преобразование п- мерного пространства самого в себя. Требуется найти скаляры А, для которых существует такой не равный нулю вектор X, что F) АХ = АХ; т. е. линейное преобразование Т(Х) = АХ отображает X на кратное АХ. Ко- Когда это происходит, X называют собственным вектором, который соответствует собственному значению А, а вместе они образуют собственную пару А, X для мат- матрицы А. Вообще, скаляр А и вектор X могут быть комплексными. Для простоты в большинстве примеров будут использоваться действительные числа. Тем не ме- менее техника вычислений легко переносится на случай с комплексными числами. Единичную матрицу I можно использовать, чтобы выразить уравнение F) как АХ = XIX, которое затем можно переписать в обычной форме для линейных систем, как-то G) (А - А1)Х = 0. Значение системы G) состоит в том* что произведение матрицы (А — XI) и не равного нулю вектора X — нулевой вектор! Согласно теореме 3.5 эта линейная
11.1. Однородные системы: задача о собственных значениях 599 система имеет нетривиальные решения тогда и только тогда, когда матрица А—XI вырождена, т. е. (8) det(j4-AI) = 0. Этот определитель можно записать в виде ц — А а\2 • • • а\п о>г\ а>22 - А • • • (9) = 0. О"п1 О"п2 * * " О"пп - А Когда определитель в (9) записан в виде полинома степени п, его называют ха- характеристическим полиномом p(A)=det(A-AJ) = Полином степени п имеет точно п корней (не обязательно различных). Каж- Каждый из корней А можно подставить в уравнение G), чтобы получить конкретную систему уравнений, которая имеет соответственный нетривиальный вектор реше- решения X. Если А — действительное число, то можно построить действительный собственный вектор X. Чтобы подчеркнуть это, дадим следующие определения. Определение 11.3 (собственное значение). Если А — действительная матрица размера п х п, то ее п собственных значений Аь Аг,..., Ап — это действительные и комплексные корни характеристического полинома A1) p(A) = det(A-AI). A Определение 11.4 (собственный вектор). Если А — собственное значение мат- матрицы Л и не равный нулю вектор V удовлетворяет равенству A2) AV = XV, то V называется собственным вектором матрицы А, соответствующим собствен- собственному значению А. А Характеристический полином A1) можно разложить на множители следующим образом: A3) р(А) = (-1)"(А - Ai)mi (А - А2Г2 • • • (А - А*)го\ Здесь rrtj называются кратностью собственных значений Aj. Сумма кратностей всех собственных значений равна п, т. е. П = mi + 7712 + • • • + 77lfc. Следующие три результата позволяют прояснить вопрос о существовании соб- собственных векторов.
600 Глава 11. Собственные значения и собственные векторь! Теорема 11.4. (а) Для каждого собственного значения А существует по крайней мере один собственный вектор V, соответствующий А. (Ь) Если А имеет кратность г, то существует самое большее г линейно незави* симых векторов Vi, V2, •.., Vr, которые соответствуют А. Теорема 11.5. Предположим, что А — квадратная матрица и Ль А2, ..., А* - различные собственные значения матрицы А с соответствующими собственны- собственными векторами Vi, Vi> - - •, V*. Тогда {Vi, V2» • • •> V"*} — множество линейно независимых векторов. Теорема 11.6. Если собственные значения матрицы А размера пхп различны, то существует п собственных векторов Vj, j' = 1, 2,..., п. Теорема 11.4 обычно применяется следующим образом при вычислениях вруч- вручную. Собственное значение А кратности г > 1 подставляют в уравнение A4) ' (A-\I)V = O. Затем можно применить метод исключения Гаусса, чтобы получить уменьшенную форму Гаусса, которая содержит п — к уравнений с п неизвестными, где 1 < к < г. Следовательно, существует к свободных величин, которые можно выбрать. Свог бодные переменные можно выбрать, в некотором смысле исходя из рассуждений, как получить к линейно независимых векторов Vi, V2, ..., V^, соответствую- соответствующих А. Пример 11.2. Найдем собственные пары Aj, Vj для матрицы 3-1 01 -12- 0 -1 Кроме того, покажем, что собственные векторы линейно независимы. Характеристическое уравнение det(A — AJ) = 0, которое имеет вид A5) 3-А -1 0 -1 2-А -1 0 -1 3-А = -А3 + 8А2 - 19А + 12 = 0, можно записать как —(А — 1)(А — 3)(А — 4) = 0. Таким образом, три собственные значения равны Ai = 1, Аг = 3 и Аз = 4. Случай (i). Подставим Ai = 1 в уравнение A4) и получим 2х\ — Х2 =0 -Xl +Х2- Х3 = 0 -Х2 + 2хг = 0.
11.1. Однородные системы: задача о собственных значениях 601 Так как сумма первого уравнения, удвоенного второго уравнения и третьего урав- уравнения тождественно равна нулю, систему можно свести к двум уравнениям с тремя неизвестными: 2zi - х2 =0 -х2 + 2х3 = 0. Выберем Х2 = 2а, где а — произвольная постоянная, затем используем первое и второе уравнения для вычисления х\ = а и жз = <*> соответственно. Таким образом, первая собственная пара равна Ai = 1, V\ = [а 2а а] =o[l 2 l] . Случай (И). Подставим Х2 = 3 в уравнение A4) и получим -х2 = 0 —х\ - х2 - жз = 0 -х2 = 0. Это эквивалентно системе из двух уравнений: si + ж3 = 0 х2 =0. Выберем х\ = Ь, где Ь — произвольная постоянная, и вычислим жз = —Ъ. Таким образом, вторая собственная пара равна Х2 = 3, V2 = [b 0 — b] = b[l 0 — l] . Случай (Hi). Подставим A3 = 4 в A4) и в результате получим —х\ ~~ х2 =0 —Х\ — 2#2 ~ Жз = 0 —Я?2 - #3 = 0. Это эквивалентно двум уравнениям: > хх + х2 =0 ^2 + а:з = 0. Выберем жз = с, где с — постоянная, затем используем второе уравнение для вычисления х2 = —с. Затем из первого уравнения получим х\ = с. Итак, третья собственная пара есть Аз = 4, Уз = [с -с с] = c[l —I l] . Для доказательства того, что векторы линейно независимы, достаточно при- применить теорему 11.5. Однако полезно вспомнить методы из линейной алгебры и использовать теорему 11.3. Запишем определитель а Ъ det([Vi V2 V3]) = 2а 0 -с а —Ь с = — бабе. Так как det([Vi V2 ^3]) ф 0, из теоремы 11.3 следует, что векторы V\9 V2 и Уз линейно независимы. ¦
602 Глава 11. Собственные значения и собственные векторы В примере 11.2 показано, как выполняя вычисления вручную, найти собствен» ные значения, когда размерность п мала: A) найдем коэффициенты характеристи- характеристического полинома; B) найдем его корни; C) найдем не равные нулю решения од- однородной линейной системы (А — XI) V = 0. Выберем распространенный подход изучения методов степеней, Якоби и Qii-алгоритма. Qii-алгоритм и его варианты используются во всех специализированных пакетах прикладных программ, таких как EISPACK и MATLAB [178]. Поскольку вектор У в A2) умножается справа на матрицу А, его называют правым собственным вектором, соответствующим А. Существует также левый собственный вектор Y, такой, что A6) Y'A = XY'. Вообще, левый собственный вектор Y не равен правому собственному вектору V. Однако, если матрица А — действительная и симметричная {А1 = А), то (AV)f = V'A' = V А, U ' (XV)' = XV Поэтому правый собственный вектор V равен левому собственному вектору, когда матрица А симметрична. В последних разделах книги рассматриваются только правые собственные векторы. Собственный вектор V — единственный с точностью до кратности постоянной. Предположим, что с — скаляр; тогда следующие вычисления показывают, что 6V — собственный вектор: A8) A(cV) = c(AV) = c(XV) = X(cV). Чтобы получить некоторое представление о единственности, нормируем соб- собственный вектор одним из следующих способов. Используем одну из норм вектора A9) Mo, = или B0) ||Х||2 = и потребуем, чтобы выполнялось либо равенство ЦХЦ^ = 1 либо ||Х||2 = 1.
11.1. Однородные системы: задача о собственных значениях 603 Приведение матрицы к диагональному виду Ситуация с собственным значением прояснится, если рассмотреть пример диа- диагональной матрицы D, которая имеет вид B1) = diag(Ai,A2,...,An) = Аг 0 0 А2 0 0 0" 0 V Пусть JS?j- = [0 0 — 0 10 — 0] — стандартный базисный вектор, где j-я компонента равна 1, а все остальные — равны 0. Тогда из B2) j = [0 0 О О • • • 0]' = вытекает, что собственными парами матрицы jD являются Xj, Ej, j = 1, 2,..., п. Следовательно, требуется придумать простой способ приведения матрицы А к та- такому диагональному виду, чтобы собственные значения были инвариантны слева. Это приводит к следующему определению. Определение 11.5. Говорят, что две матрицы А и В размера п х п подобны, если существует такая невырожденная матрица К, что B3) В = К~ХАК. Теорема 11.7. Предположим, что А и В — подобные матрицы и что А — соб- собственное значение матрицы А с соответствующим собственным вектором V. Тогда А — также собственное значение матрицы В. Если К~1 АК = JB, то Y = = K~lV — собственный вектор матрицы В, соответствующий собственному значению А. Матрица А размера п х п называется приводимой к диагональному виду, если она подобна диагональной матрице. Следующая теорема показывает роль собственых векторов в этом процессе. Теорема 11.8 (приведение матрицы к диагональному виду). Матрица А по- подобна диагональной матрице D тогда и только тогда, когда она имеет п линейно независимых собственных векторов. Если матрица А подобна матрице D, то B4) V2 ... Vn], где n собственных пар — Aj, Vj, j = 1, 2,..., п.
604 Глава 11. Собственные значения и собственные векторы Из теоремы 11.8 вытекает, что каждую матрицу А, имеющую п различных собственных значений, можно привести к диагональному виду. Пример 11.3. Покажем, что следующую матрицу можно привести к диагональ* ному виду: -1 О" -1 2 -1 0-13 В примере 11.2 найдены собственные значения матрица собственных векторов = 1, А2 = 3 и A3 = 4 и V = V2 V3] = Обратная матрица V имеет вид 1 з О i "з 1 1 1 2 0-1 1-1 1 1 3 0 1 3 1 6 1 2 1 3 3 0 -1 2 -1 0" -1 3 = 1 2 1 1 0 -1 Г -1 1 '1 0 0 0 3 0 0' 0 4_ Оставляем читателю проверку деталей вычисления произведения в B4): Л 6 I 2 г з Таким образом, показано, что матрицу А можно привести к диагональному виду, т. е. V~lAV = D = diag(l, 3,4). ¦ В следующей теореме приведен более общий результат, связывающий постро- построение матрицы с ее собственными значениями. Теорема 11.9 (Шур). Предположим, что А — произвольная матрица размера п х п. Существует невырожденная матрица Р, для которой выполняется Т =* = Р~гАР, где Г — верхняя треугольная матрица, диагональные элементы кото- которой состоят из собственных значений матрицы А. Для определенного типа структурного анализа в технике требуется выбирать базис в 5ftn таким, чтобы он содержал собственные векторы матрицы А. Такой вы- выбор упрощает отчетливое представление о том, каким образом трансформируется пространство при отбражении Y = Т(Х) = АХ. Напомним, что собственная пара Aj, Vj обладает таким свойством, что Г отображает вектор Vj в кратный вектор XjVj. Это свойство используется в следующей теореме.
11.1. Однородные системы: задача о собственных значениях 605 Теорема 11.10. Предположим, что А — матрица размера п х п, имеющая п линейно независимых собственных пар Aj, Vj9 j' = 1, 2, ..., п; тогда любой вектор X из пространства W1 имеет единственное представление в виде линейной комбинации собственных векторов: B5) X = dVi+caVa+ ¦•• + <* Vn. Линейное преобразование Т(Х) = АХ отображает вектор X в вектор B6) Y = Т(Х) = ciAi Vx + c2X2V2 + • • • + СпХп Vn. Пример 11.4. Предположим, что Ai = 2, А2 = — 1 и Аз = 4 — собственные значения матрицы А размера 3x3, которым соответствуют собственные векторы Vi = [1 2 -2]', V2 = [-2 1 1]' и V3 = [1 3 -4]'. Для X = [-1 2 l]' найдем образ X при отображении Т(Х) = АХ. Сначала следует выразить X как линейную комбинацию собственных векторов. Получаем ее, решая уравнения [-1 2 l]; = ci[l 2 -2]; + с2[-2 1 1]; + с3[1 3 -4]; относительно с\9 с2 и сз. Заметим, что это эквивалентно решению линейной си- системы с\—2с2+ сз =-1 2ci + с2 + Зс3 = 2 -2ci + с2 — 4сз = 1. Полученные решения равны с\ = 2, с2 = 1 и сз = — 1. Используя определение 11.4 для собственных векторов, найдем Т(Х) из вычислений = 2AVX + AV2 - AV3 = = 2BVi)-V2-4V3 = = [2 -5 7]'. ¦ Достоинства симметрии He существует простого способа для определения, насколько много линейно независимых собственных векторов имеет матрица, без того, чтобы не обратить- обратиться за помощью к более эффективным алгоритмам специализированных пакетов программ, таких как EISPACK и MATLAB. Однако известно, что действитель- действительная симметричная матрица имеет п действительных собственных векторов и что каждому собственному значению кратности щ соответствует rrij линейно незави- независимых векторов. Следовательно, каждую действительную симметричную матрицу можно привести к диагональному виду.
606 Глава 11. Собственные значения и собственные векторы Определение 11.6 (ортогональность). Говорят, что множество векторов {Vi; V2,..., Vn} ортогонально, если выполняется условие B7) VjVk = 0 всякий раз, когда j ф к. к У Определение 11.7 (ортонормированность). Предположим, что {Vi,V*2,-*ч Vn} — множество ортогональных векторов; говорят, что они ортонормировании^'. если все они имеют единичную норму, т. е. B8) VjVk = 0 всякий раз, когда j ф к. .* VjV3? = 1 для всех j = 1, 2, ..., п. 4 Теорема 11.11. Множество ортонормированных векторов линейно независимо/' Замечание. Нулевой вектор не принадлежит множеству ортонормированных век? торов. Определение 11.8 (ортогональная матрица). Говорят, что матрица А размера п х п ортогональна, если матрица Af является обратной к матрице А, т. е. B9) А1 А = J, что эквивалентно C0) А~1 = А1. Также, матрица А ортогональна тогда и только тогда, когда столбцы (строки) А образуют множество ортонормальных векторов. А Теорема 11.12. Если А — действительная симметричная матрица, то существует такая ортогональная матрица jK", что C1) К'АК = K~lAK = D, где D — диагональная матрица, состоящая из собственных значений матрицы А. Следствие 11.1. Если А — действительная симметричная матрица размера пхп, то существует п линейно независимых собственных векторов матрицы А и они образуют ортогональное множество. Следствие 11.2. Все собственные значения действительной симметричной мат- матрицы — действительные числа. Теорема 11.13. Собственные векторы, соответствующие различным собствен- собственным значениям симметричной матрицы, ортогональны. Теорема 11.14. Симметричная матрица А положительно определена тогда и только тогда, когда все собственные значения А положительны.
11.1. Однородные системы: задача о собственных значениях 607 Оценка величин собственных значений Такая оценка полезна для нахождения грани величин собственных значений матрицы А. Следующие результаты дают об этом некоторое представление. Определение 11.9 (норма матрицы). Пусть ||-Х"|| — норма вектора. Тогда есте- естественная норма матрицы задается так: Для нормы || АЦ^ имеет место следующая формула: C3) Теорема 11.15. Если А — любое собственное значение матрицы А, то C4) |А|<||А||, для любой естественной нормы матрицы ||А||. Теорема 11.16 (круговая теорема Гершгорина). Предположим, что А — мат- матрица размера п х п, и обозначим через Cj круг в комплексной плоскости с центром в точке ajj и радиусом C5) гj = ^2 \ajk\ ДЛЯ каждого j = 1, 2, ..., п; т. е. Cj содержит все такие комплексные числа z = х + iy9 что C6) Cj = {z:\z-ajj\Kri). Если 5 = UILi Си то все собственные значения матрицы А принадлежат к множе- множеству S. Кроме того, объединение любых А; из этих кругов, которые не пересекают оставшиеся п — к кругов, должны содержать точно к (считая кратные) собствен- собственных значений. Теорема 11.17 (теорема о спектральном радиусе). Пусть А — симметричная матрица. Спектральный радиус матрицы А равен ||А||2 и удовлетворяет соотно- соотношению C7)
608 Глава 1L Собственные значения и собственные вектс^ы Обзор методов Для задач, использующих умеренного размера симметричные матрицы, луч- лучше использовать метод Якоби. Для задач, включающих симметричные матрида больших размеров (для п больше нескольких сотен), лучше использовать метод. Хаусхольдера (Householder) для получения трехдиагональной матрицы, следуя Q Д-алгоритму. В отличие от действительных симметричных матриц действитель* ные несимметричные матрицы могут иметь комплексные собственные значения и векторы. Для матриц, обладающих мажорирующими собственными значениями, можно' использовать метод степеней для нахождения мажорирующих собственных векто-, ров. Технику уменьшения размера матрицы можно использовать с этого момента, чтобы найти несколько первых близких к мажорирующим собственных векторов. По отношению к действительным несимметричным матрицам метод Хаусхоль* дера используется для получения матрицы Гессенберга (Hessenberg), следуя LR- или Q Я-алгоритму.' Упражнения к разделу 11Л 1. Для каждой из следующих матриц найдите (i) характеристический полином р(\)> (ii) собственные значения и (iii) соответствующие им собственные век- векторы. Ml юл (а) А = (d) A = 1 2 0 1 -1 3 (е) А = 1 0 0 0 1—1 2 0 0 1 2 3 0 1 3 2 4 2. Определите спектральный радиус каждой матрицы из упр. 1. 3. Определите ||Л||2 и ||^4.||оо — нормы каждой матрицы из упр. 1. 4. Определите, какую матрицу, если это возможно, из упр. 1 можно приве- привести к диагональному виду. Для каждой приведенной к диагональному виду матрицы из упр. 1 найдите матрицы V и D из теоремы 11.8 и вычислите произведение матриц, как в B4). 5. (а) Для каждого фиксированного в покажите, что __ Г cos в sin #1 [-sin0 cosflj есть ортогональная матрица. Замечание. Матрица R называется матрицей вращения. ; (Ь) Определите все числа в, для которых все собственные значения матриць R действительные.
11.1. Однородные системы: задача о собственных значениях 609 6. В разделе 3.2 введены плоскости вращений Rx(ot)9 Ry(P) и Rz{l)- (a) Покажите, что для любого фиксированного а, /3 и 7> Rx(&), Ry(fi) и Rz{n) соответственно являются отртогональными матрицами. (b) Определите все значения а, /3 и 7* для которых все собственные значения матриц Rx(&), Ry{P) и ЯгG) соответственно будут действительными. 7. Пусть _ Го + 3 2] -[2 ej" (a) Покажите, что ее характеристический полином равен р(Л) = Л2 — C + + 2а)\ + а2 - За - 4. (b) Покажите, что А1 = а + 4иА2 = а — 1 — собственные значения матри- матрицы А. (c) Покажите, что собственные векторы матрицы А равны V\ = [2 l]7 и v2 = [-1 2]'. 8. Предположим, что А, V образуют собственную пару матрицы А. Докажите, что если к — положительное целое число, то \к, V — собственная пара матрицы Ак. 9. Предположим, что V — собственный вектор матрицы А> соответствующий собственному значению А = 3. Докажите, что А = 9 — собственное значение матрицы А2, соответствующее V. 10. Предположим, что V — собственный вектор матрицы А соответствующий собственному значению А = 2. Докажите, что А = ^ ~" собственное значение матрицы А", соответствующее V. 11. Предположим, что V — собственный вектор матрицы А, соответствующий собственному значению А = 5. Докажите, что А = 4 — собственное значение матрицы А — /, соответствующее V. 12. Пусть А — квадратная матрица размера пхпс заданным характеристическим полиномом р(Х) р{\) = det(A - XI) = = (-l)n(An + а Ап~г + с2\п~2 + - ¦ ¦ + Сп-гХ + en). (a) Покажите, что постоянный член полиномар(А) равен Сп = (—l)n det(A). (b) Покажите, что коэффициент при An-1 равен с\ = -(ац+а22^ Ьапп). 13. Предположим, что матрица А подобна диагональной матрице, т. е. Докажите, что если к — положительное целое число, то
610 Глава 11. Собственные значения и собственные векторы 11.2. Метод степеней Опишем метод степеней для вычисления мажорирующей собственной пары. Его обобщение на обратный метод степеней можно использовать для нахождения любого собственного значения при условии, что известно хорошее начальное при- приближение. В некоторых схемах нахождения собственных значений используются другие методы, которые сходятся быстрее, однако имеют ограниченную точность. В этом случае обращаются к обратному методу степеней, чтобы уточнить чис- численные значения и получить нужную точность. Для обсуждения этой ситуации понадобятся следующие определения. Определение 11.10. Если Ai — собственное значение матрицы А, большее по аб- абсолютной величине, чем другие собственные значения, то оно называется мажо- мажорирующим собственным значением. Собственный вектор V\, соответствующий Ль называется мажорирующим собственным вектором. А Определение 11.11. Говорят, что собственный вектор V нормализован, если ко- координата, имеющая наибольшее значение по абсолютной величине, равна единице (т. е. наибольшая координата вектора V равна 1). А Можно легко нормализовать собственный вектор [vi V2 ... vn] , образуя но- новый вектор V = A/с) [vi v2 ... vn]\ где с = Vj и \vj\ = maxi<i<n{|vj|}. Предположим, что матрица А имеет мажорирующее собственное значение Л и что существует единственный нормализованный собственный вектор V, соответ- соответствующий Л. Эту собственную пару А, V можно найти, выполнив следующую ите- итеративную процедуру, которая называется методом степеней. Начнем с вектора A) Х0=[1 1 ... 1]'. Рекуррентно генерируем последовательность {Xk}, используя соотношение Yk = AXt9 B) 1 Ck+1 где Ck+\ — наибольшая по величине координата вектора Yk (в случае совпаде- совпадения выбирают первую координату). Последовательности {Xk] и {с^} сходятся соответственно к V и А: C) lim Xk = V и lim с* = А. fc-юо fc*oo Замечание. Если Хо — собственный вектор и Xq Ф V, то следует выбрать другой начальный вектор.
11.2. Метод степеней 611 Пример 11.5. Используем метод степеней, чтобы найти мажорирующие соб- собственные значение и вектор матрицы А = О 11 -5 -2 17 -7 -4 26 -10 Начнем с Xq = [l I l]' и используем для генерирования последовательности векторов {Xk} и постоянных {с*} формулу B). После первой итерации получаем I =clXl. 0 11 -5 2 17 -7 4 26 -10 1 1 1 = 6 8 12 = 12 2 2 3 1 Вторая итерация дает 0 -2 -4 11 17 26 -5 -7 -10 " 2 2 3 1 Г71 3 10 т 16 .т. _16 о Г71 Тб 5 8 1 = ? I =с2Х2. (где Xk — нормализованный век- Г 2 2 3 1 16 ' 3 7 16 5 loo 1 9 ' 2 5 И 11 18 1 38 ' 9 31 76 23 38 1 78 ' 19 21 52 47 78 1 158 ' 39 127 316 95 158 1 Итерация генерирует последовательность тор): 12 Последовательность векторов сходится к V = [| | l] , а последовательность постоянных — к А = 4 (табл. 11.1). Можно доказать, что'скорость сходимости линейна. ¦ Теорема 11.18 (метод степеней). Предположим, что матрица А размера п х п имеет п различных собственных значений Ai, A2,..., Ап и что они расположены в порядке убывания, т. е. Если вектор Xq выбран подходящим образом, то последовательности и {ck} рекуррентно генерируются согласно формулам E) Yk = АХк и 1 F) -Yh,
612 Глава 11. Собственные значения и собственные векторы Таблица 11.1. Метод степеней, используемый в примере 11.5 для нахождения нормализованного мажорирующего собственного вектора V = [| | l] и соответствующего собственного значения А = 4 АХк = АХо AXi АХ2 АХЪ АХ6 АХ7 АХ8 АХ9 АХю [6,000000 [2,333333 [1,875000 [1,722222 [1,657895 [1,628205 [1,613924 [1,606918 [1,603448 [1,601721 [1,600860 8,000000 3,333333 2,750000 2,555556 2,473684 2,435897 2,417722 2,408805 2,404389 2,402191 2,401095 12,00000]' 5,333333]' 4,500000]' 4,222222]' 4,105263]' 4,051282]' 4,025316]' 4,012579]' 4,006270]' 4,003130]' 4,001564]' = 12,00000[0,500000 = 5,333333 = 4,500000 0,416667 = 4,222222 = 4,105263 = 4,051282 = 4,025316 = 4,006270 = 4,003130 0,437500 0,407895 0,403846 0,401899 0,400943 4,012579[0,400470 0,400235 0,400117 = 4,001564[0,400059 0,666667 0,625000 0,611111 0,605263 0,602564 0,601266 0,600629 0,600313 0,600156 0,600078 0,600039 = с2Х2 = с7Х7 где G) и = max { Ki<n соответственно будут сходиться к мажорирующему собственному вектору собственному значению Аь т. е. lira Хк - lim Ck = (8) Доказательство. Так как матрица А имеет п собственных значений, существует п соответствующих собственных векторов Vj, j = 1, 2, ..., п, которые линейно независимы, нормализованы и образуют базис n-мерного пространства. Следова- Следовательно, начальный вектор Хо можно выразить как линейную комбинацию Предположим, что вектор Хо = [xi x2 ... хп] выбран таким образом, что Ь\ ф 0. Предположим также, что координаты вектора Хо выбраны так, что maxi<j<n{|xj|} = 1. Поскольку {Vj}^=l — собственные векторы матрицы А, умножение АХо и последующая нормализация дают A0) Yo = АХо = AihVx + b2V2 + ¦ ¦ ¦ + bnVn) + b2AV2 + • • • + bnAVn = + Ь2\2 V2 + - • • + 6nAnVn =
11.2. Метод степеней 613 После к итераций приходим к соотношениям (И) AVn) = ClC2'"Ck-l \k-l — 1 V Предполагалось, что |Aj|/|Ai| < 1 для каждого j = 2, 3,..., n, поэтому имеем A2) lim bj ( -r^ ) Vj = 0 для каждого j = 2, 3, ..., n. Значит, A3) lim Xk = lim A:—>oo Аг->оо Предполагалось, что оба вектора (и Xk, и Vi) были нормализованы и их наи- наибольшая компонента равнялась 1. Поэтому предельный вектор в правой части A3) будет нормализован и его наибольшая компонента равна 1. Следовательно, предел скалярного множителя вектора V\ в правой части A3) существует и его значение должно быть равно 1, т. е. A4) lim **Л = 1. fc> СС ' • Ok
614 Глава 11. Собственные значения и собственные векторы Поэтому последовательность векторов {-X"*} сходится к мажорирующему соб- собственному вектору: A5) lim Хк = Vi. к-+оо Замена к на к — 1 в членах последовательности в формуле A4) даст и, если разделить обе части формулы A4) до и после замены одна на другую, можно получить Ck Значит, последовательность постоянных {ск} сходится к мажорирующему соб- собственному значению: A6) lim с*; = Ai. к—юо Доказательство теоремы закончено. • Скорость сходимости Из соотношения A2) видно, что коэффициент Vj в Хк стремится к нулю про- пропорционально (Aj/Ai)* и что скорость сходимости {Хк} к V\ определяется чле- членами (Аг/Ах)*. Следовательно, скорость сходимость линейная. Аналогично схо- сходимость постоянных {cic} к Х\ линейная. Метод Д2 Эйткена можно использовать для любой линейно сходящейся последовательности {рк}> чтобы сформировать новую последовательность Г- = (Pk+i-РкJ 1 \ Рк+2 -2^+1 +Рк) которая сходится быстрее. В примере 11.4 можно применить метод А2 Эйткена, чтобы ускорить сходимость последовательности постоянных {ск} так же, как схо- сходимость первых двух компонент последовательности векторов {Х^}. Полученные таким способом результаты сравниваются с исходными последовательностями в табл. 11.2.
11.2. Метод степеней 615 Таблица 11.2. Сравнение скорости сходимости метода степеней и ускорения метода степеней с использованием техники метода Д2 Эйткена скХк = 12,000000[0,5000000 0,6666667 1]'; 4,3809524@,4062500 0,6041667 1]' = с2Х2 = 5,3333333@,4375000 0,6250000 1]'; 4,0833333@,4015152 0,6010101 1]' = с2Х2 с3Хз = 4,5000000@,4166667 0,6111111 1]'; 4,0202020@,4003759 0,6002506 1]' = с3Х3 саХа = 4,2222222@,4078947 0,6052632 1]'; 4,0050125@,4000938 0,6000625 1]' = с4Х4 съХъ = 4,1052632@,4038462 0,6025641 1]'; 4,0012508@,4000234 0,6000156 1]' = съХъ с6Х6 = 4,0512821@,4018987 0,6012658 1]'; 4,0003125@,4000059 0,6000039 1]' = свХб с7Х7 = 4,0253165@,4009434 0,6006289 1]'; 4,0000781@,4000015 0,6000010 1]' = c7Xj csX8 = 4,0125786@,4004702 0,6003135 1]'; 4,0000195@,4000004 0,6000002 1]' = с8Х8 с9Х9 = 4,0062696@,4002347 0,6001565 1]'; 4,0000049@,4000001 0,6000001 1]' = с9Хд = 4,0031299@,4001173 0,6000782 1]'; 4,0000012@,4000000 0,6000000 1]' = Метод степеней с обратным сдвигом Обсудим метод степеней с обратным сдвигом. Он требует хорошего началь- начального приближения для собственного значения и затем использует итерацию для получения точного решения. Другие процедуры, такие как QM и метод Гивена, используются для получения начальных приближений. Случаи, когда собствен- собственные значения комплексные либо кратные или когда существует два собственных значения, которые имеют одинаковую величину или одинаковое по величине при- приближение, вызывают трудности при вычислениях и требуют более совершенных методов. Остановимся на иллюстрации тех случаев, когда собственные значения различны. Метод степеней с обратным сдвигом основан на следующих трех ре- результатах (доказательства оставляем читателям в качестве упражнений). Теорема 11.19 (сдвиг собственных значений). Предположим, что А, V — соб- собственная пара матрицы А. Если а — любая постоянная, то Л — а, V — собственная пара матрицы А — а/. Теорема 11.20 (обратные собственные значения). Предположим, что А, V — собственная пара матрицы А. Если А Ф 0, то 1/А, V — собственная пара матрицы Теорема 11.21. Предположим, что А, V — собственная пара матрицы Л. Если а ф А, то 1/(А — а), V — собственная пара матрицы (А — al)~l. Теорема 11.22 (метод степеней с обратным сдвигом). Предположим, что мат- матрица А размера п х п имеет различные собственные значения Ль Аг, ..., Ап и рассмотрим собственное значение Xj. Тогда можно так выбрать постоянную а, что /xi = l/(Aj — а) будет мажорирующим собственным значением матрицы
616 Глава 11. Собственные значения и собственные векторы 1 1 Н 1 Ь-* Ai Aj_i Xj а Л/+1 Ал Рис. 11.2. Определение положения а для метода степеней с обратным сдвигом (А — ai) Ч Кроме того, если соответствующим образом выбрано JCo, последо- последовательности \Jik = [х\ ' a^ ••• tf J / и \ck}> которые рекуррентно генери- генерируются согласно формулам A7) Yk = (A-aI)~lXk и П*Л 1С 1 V (lo) ' -*fc+l = ^А;, где A9) cfc+1 = xf и xf = ,™«i\*ik)\} будут сходиться к мажорирующей собственной паре /хь Vj матрицы (А — al)~l. И наконец, соответствующее собственное значение матрицы А задается следую- следующей формулой: B0) Хэ; = — + а. Замечание. Применяя на практике теорему 11.22 для вычисления У*, на каждом шаге необходимо решить линейную систему (А — aI)Yk = Доказательство. Можно предположить без потери общности, что Ai < A2 < • • • < Ап. Выберем число а (а ф Xj), которое ближе к Aj, чем любое другое собственное значение (рис. 11.2), т. е. B1) \\j-a\<\\i-a\ для каждого % = 1, 2, ..., j - 1, j + 1, ..., п. Согласно теореме 11.21 l/(Aj -а), У — собственная пара матрицы (А-а!). Из соотношения B1) вытекает, что l/|Aj — а\ < l/|Aj — а\ для каждого i ф j. Таким образом, р,\ = l/(Aj — а) — мажорирующее собственное значение матрицы (A—aI)~l. Метод степеней с обратным сдвигом использует модификацию метода степеней для определения собственной пары fix, Vj. Затем, вычисляя Aj = l//ii + + а, получаем требуемое собственное значение матрицы А. •
11.2. Метод степеней 617 Таблица 11.3. Метод степеней с обратным сдвигом для матрицы (А - 4,2/)~х из примера 11.6: сходимость к собственному вектору -23,18181818 -5,356506239 -5,030252609 -5,002733697 -5,000248382 -5,000022579 -5,000002053 -5,000000187 -5,000000017 [0,4117647059 [0,4009983361 [0,4000902120 [0,4000081966 [0,4000007451 [0,4000000677 [0,4000000062 [0,4000000006 [0,4000000001 0,6078431373 0,6006655574 0,6000601413 0,6000054644 0,6000004967 0,6000000452 0,6000000041 0,6000000004 0,6000000000 l]' 1]' 1]' 1]' 1]' 1]' 1]' 1]' 1]' ciXi с2Х2 с3Хз с5Х5 с6Хб с7Х7 с8Х8 с9Х9 Пример 11.6. Применим метод степеней с обратным сдвигом, чтобы найти собственные пары матрицы А = 0 11 -5 -2 17 -7 -4 26 -10 Воспользуемся тем фактом, что собственные значения матрицы А равны Ai = 4, А2 = 2 и Аз = 1, и выберем для каждого случая соответствующие а и начальный вектор. Случай (i). Для собственного значения Ai = 4 выберем а = 4,2и начальный вектор Xq = [l I l]'. Сначала образуем матрицу А — 4,21 и решим уравнение 4,2 2 4 И 12,8 26 -5 -7 -14,2 Уо = Xq = 1 1 1 а затем получим вектор YQ = [-9,545454545 -14,09090909 -23,18181818]'. Затем вычислим сг = -23,18181818 и Хг = [0,4117647059 0,6078431373 1];. Значения, генерируемые итерацией, приведены в табл. 11.3. Последовательность {с*;} сходится к /л\ = —5, которое является мажорирующим собственным значе- значением матрицы (А - 4,2/)~~х, и {X*} сходится к V\ = [| | 1]'. Собственное значение Ai матрицы А получаем следующим образом: Ai == l//ii +a = 1/(—5) + + 4,2 = -0,2+ 4,2 = 4.
618 Глава 11. Собственные значения и собственные векторы Таблица 11.4. Метод степеней с обратным сдвигом для матрицы (А — 2,1/) из примера 11.6: сходимость к мажорирующему собственному вектору V = [\ | 1] и /zi = —10 42,63157895 -9,350227420 -10,03657511 -9,998082009 -10,00010097 -9,999994686 -10,00000028 [0,2592592593 [0,2494788047 [0,2500273314 [0,2499985612 [0,2500000757 [0,2499999960 [0,2500000002 0,5061728395 0,4996525365 0,5000182209 0,4999990408 0,5000000505 0,4999999973 0,5000000001 l]'=CiXi 1]'=c2X2 1];=с3Хз 1]'=с4Х4 1]'=с5Х5 1]'=с7Х7 Таблица 11.5. Метод степеней с обратным сдвигом для матрицы (А — 0,875 J) из примера 11.6: сходимость к мажорирующему собственному вектору V = [| | l] и /ii = 8 (А - aI)"lXk = Cfc+iXfc+i (А - al^Xo = -30,40000000 [0,5052631579 0,4947368421 1]' =ciXi (A-aI)-lXi= 8,404210526@,5002004008 0,4997995992 1]' =c2X2 (A-aI)-~1X2= 8,015390782@,5000080006 0,4999919994 1]'=с3Хз (A - al^Xs = 8,000614449 [0,5000003200 0,4999996800 1]' =c4X4 (A - aI)-lXA = 8,000024576 [0,5000000128 0,4999999872 1]' =c5X5 (A - aI)-lXs = 8,000000983 [0,5000000005 0,4999999995 1]' =c6X6 (A~aI)-1X6= 8,000000039 [0,5000000000 0,5000000000 1]'=c7X7 Случай (ii). Для собственного значения А2 = 2 выберем а = 2,1 и начальный вектор Xq = [l I l] . Сформируем матрицу А — 2,1/, решим уравнение 2,1 2 4 11 14,9 26 -5 -7 -12,1 ¦y0 = -Xo = 1 1 1 и получим вектор Уо = [11,05263158 21,57894737 42,63157895]'. Затем сг = = 42,63157895 и вектор Хг = [0,2592592593 0,5061728395 1]'. Итерационная процедура получения значений приведена в табл. 11.4. Мажорирующее собствен- собственное значение матрицы (А - 2,1 J)"" равно /л\ = -10 и собственная пара матрицы А равна А2 = 1/(-10) + 2,1 = -0,1 + 2,1 = 2 и V2 = [\ \ 1]'. Случай (Ш). Для собственного значения Аз = 1 выберем а = 0,875 и началь- начальный вектор Xq =[01l]. Итерационная процедура получения значений приве- приведена в табл. 11.5. Мажорирующее собственное значение матрицы (А - 0,8751)"*1 равно /ii = 8 и собственная пара матрицы А равна Аз = 1/8 + 0,875 = 0,125 +
11.2. Метод степеней 619 + 0,875 = 1 и Уз = [| 5 1] • Последовательность векторов {Х^} при началь- начальном векторе [0 1 1] сходится на седьмой итерации. (Вычислительные трудности возникли, когда использовался Xq = [l I l]\ и процедура сошлась значительно позже.) ¦ Программа 11.1 (метод степеней). Программа предназначена для вычисления мажорирующего собственного значения Ai и соответствующего ему вектора V\ для матрицы А размера п х п. Предполагается, ,что п собственных значений имеют мажорирующее свойство |Ai| > |Лг| > |Лз| > • • • > |ЛП| > 0. function [lambda,V]=powerl(A,X,epsilon,maxl) У.Вход - А - матрица размера n x n '/. - X - начальный вектор размера n x 1 •/• - epsilon - допустимое значение % - maxl - максимальное число итераций '/•Выход - lambda - мажорирующее собственное значение */• - V - мажорирующий собственный вектор ¦/•Инициализация параметров lambda=0; cnt=0; err=l; state=l; while ((cnt<=maxl)&(state—1)) Y=A*X; '/•Нормализация Y [m j]=max(abs(Y)); cl=m; r dc=abs(lambda-cl); Y=(l/cl)*Y; ¦/•Обновление Х и lambda и проверка сходимости dv=norm(X-Y); err=max(dc,dv); X=Y; lambda=cl; state=0; if(err>epsilon) state=l; end cnt=cnt+l; end V=X;
620 Глава 11. Собственные значения и собственные векторы Программа 11.2 (метод степеней с обратным сдвигом). Программа предна- предназначена для вычисления мажорирующего собственного значения Xj и соответ- соответствующего ему собственного вектора Vj для матрицы А размера пхп. Предпо- Предполагается, что п собственных значений обладают свойством Ai < А2 < • • • < Ап и что а — такое действительное число, что |Aj — а\ < \Х{ — а\ для каждого г = 1, 2, ..., j - 1, j + 1,..., п. function [lambda,V]=invpow(A,X,alpha,epsilon,maxl) '/•Вход - A - матрица размера n x n */• - X - начальный вектор размера n x 1 7. - alpha - заданий сдвиг У, - epsilon - допустимое значение % - maxl - максимальное число итераций •/Выход - lambda - мажорирующее собственное значение % - V - мажорирующий собственный вектор '/¦Инициализация матрицы A-alphal и параметров [n n]=size(A); A=A-alpha*eye(n); lambda=0; cnt=0; err=l; state=l; while ((cnt<=maxl)fe(state==l)) •/Решение системы AY=X Y=A\X; '/•Нормализация Y [m j]=max(abs(Y)); cl=m; dc=abs(lambda-cl); Y=(l/cl)*Y; '/•Обновление Х и lambda и проверка сходимости dv=norm(X-Y); err=max(dc,dv); X=Y; lambda=cl; state=0; if (err>epsilon) state=l; end cnt=cnt+l; end lambda=alpha+l/cl;
11.2. Метод степеней 621 Упражнения к разделу 11.2 1. Пусть А, V — собственная пара матрицы А. Покажите, что, если а — любая постоянная, Л — а, V — собственная пара матрицы А — al. 2. Пусть А, V — собственная пара матрицы А. Покажите, что, если А ф О, 1/А, V — собственная пара матрицы А. 3. Пусть А, V — собственная пара матрицы А. Если а ф А, покажите, что 1/(А — а), V — собственная пара матрицы (А — а/)". 4. Техника сокращения. Предположим, что Аь А2, Аз, ..., Ап — собственные значения матрицы А с соответствующими собственными векторами V\9 V2, V3,..., Vn и что Ai имеет кратность 1. Если X —любой вектор, обладающий свойством X'V\ = 1, докажите, что матрица В = A-* имеет собственные значения 0, Аг, Аз, ..., Ап с соответствующими им соб- собственными векторами V\9 W2, И^з, .. •, Wn9 где Vj и Wj связаны соотно- соотношением Vj = (А - Xi)Wj + \i(X'Wj)Vi для каждого j = 2, 3, ..., п. 5. Марковский процесс и собственные значения. Марковский процесс мож- можно описать квадратной матрицей А, все элементы которой положительны и суммы столбцов все равны 1. Например, пусть в некоторой местности люди покупают товары сортов X и У соответственно. Ро = [х^ уW] — такой вектор, что х№ — отношение числа людей, покупающих товар сорта X, к общему числу жителей и у(°) = 1 — х^°\ Каждый ме'сяц они решают, какой вектор покупать: тот же или другой. Вероятность того, что покупатель то- товара сорта X станет покупать товар сорта У, равна 0,3. Вероятность того, что покупатель товара сорта У станет покупать товар сорта X, равна 0,2. Переходная матрица для этого процесса такова: Если APj = Pj для некоторого j9 то говорят, что Pj = V — стационарное распределение для марковского процесса. Таким образом, если существует стационарное распределение, то А = 1 должно быть собственным значе- значением матрицы А. Дополнительно стационарно распределенный вектор V является собственным вектором, соответствующим А = 1, (т. е. решением (А - /) V= 0). (а) Для приведенного выше примера убедитесь, что А = 1 — собственное значение переходной матрицы А.
622 Глава 11. Собственные значения и собственные векторы (b) Убедитесь, что совокупность собственных векторов, соответствующих А = 1, равно {«[3/2 1]' : t e M,t^ 0}. (c) Предположим, что население города составляет 50000. Используя ре- результаты выполнения п. (Ь), проверьте, что стационарное распределение имеет вид Алгоритмы и программы В задачах 1-4 используйте следующее. (a) Программу 11.1 для нахождения мажорирующей собственной пары задан- заданной матрицы. i (b) Программу 11.2 для нахождения остальных собственных пар. 7 -12 -6 ' 2,5 0,0 -0,5 -2,5 6 -20 -12 -2,5 5,0 -0,5 -2,5 -3 24 16. 3,0 -2,0 4,0 >,0 0,5" 2,0 2,5 3,5 2. A = A A — H« J\. — -14 24 12 " 2,5 0,5 -1,5 . 2,0 -30 49 24 -2,0 5,0 1,0 3,0 42 -66 -32 2,5 -2,5 3,5 -5,0 0,5" -0,5 -2,5 3,0 3. А = 5. Предположим, что вероятность того, что покупатель товара X будет поку- покупать товар Y или Z, соответственно равна 0,4 и 0,2. Вероятность того, что покупатель товара Y будет покупать товар X или Z, соответственно равна 0,2 и 0,2. Вероятность того, что покупатель товара Z будет покупать товар X или У, соответственно равна 0,1 и 0,1. Переходная матрица этого процесса имеет вид ,4 0,2 0,1' = АРк = 0,4 L0,2 0,6 0,2 0,1 0,8_ Jk) (a) Убедитесь, что А = 1 является собственным значением матрицы А. (b) Определите стационарное распределение для населения в 80 000. 6. Предположим, что выпускается пять марок кофе: В\9 i?2, -Вз> В± и В$. Пред- Предположим, что каждый клиент покупает трехфунтовую A фунт = 453,6 г) бан- банку кофе каждый месяц и 60 млн фунтов кофе продается каждый месяц. Вне зависимости от марки каждый фунт кофе приносит доход в один доллар. Ко- Кофейная промышленность эмпирически определила следующую переходную матрицу А для ежемесячной продажи кофе, где а^ — вероятность того, что
11.3. Метод Якоби 623 клиент будет покупать марку В\ при том, что предыдущий клиент покупал кофе марки Bj. ГОД 0,2 0,2 0,6 0,2" 0,1 0,1 0,1 0,1 0,2 А= 0,1 0,3 0,4 0,1 0,2 0,3 0,3 0,1 0,1 0,2 _0,4 0,1 0,2 0,1 0,2в Рекламное агентство производителей марки В\ гарантирует, что за $40 млн в год они могут изменить первый столбец матрицы А на [0,3 0,1 0,1 0,2 0,3]'. Стоит ли производителю марки В\ платить рекламному агентству? 7. Напишите программу, основанную на технике сокращения из упр. 4, для нахождения всех собственных значений данных матриц. Ваша программа должна обращаться к программе 11.1, как к подпрограмме для определения мажорирующего собственного значения и собственного вектора на каждой итерации. 8, Воспользуйтесь своей программой из задачи 7, чтобы найти все собственные значения следующих матриц. Г1 2 -П (а) А = 1 0 4 -4 (Ь) А = [ау], где ау = г = з гф3 и t, j = 1, 2,..., 15. 11.3. Метод Якоби Метод Якоби представляет собой простой для понимания алгоритм, который находит все собственные пары симметричной матрицы. Этот надежный метод дает одинаковую точность для всех собственных пар. Для матриц размера выше 10 алгоритм конкурирует с более сложными алгоритмами. Если скорость не является основным критерием, то он вполне допустим для матриц размера выше 20. Если использовать метод Якоби, то решение будет гарантировано для всех дей- действительных симметричных матриц. Это несущественное ограничение, так как в большинстве практических задач, которые встречаются в математике и технике, содержатся симметричные матрицы. С теоретической точки зрения метод объ- объединяет техники, присущие более сложным алгоритмам. В поучительных целях имеет смысл подробно рассмотреть метод Якоби.
624 Глава 11. Собственные значения и собственные векторы Вращение плоскости Сначала напомним некоторые факты о преобразовании координат. Пусть X — вектор в n-мерном пространстве. Рассмотрим линейное преобразование У = = RX, где R — матрица размера пхп: ту __ о О О cos ф • • • sin ф • • • О • row q t colp t col q Здесь все недиагональные элементы матрицы R равны нулю, за исключением значения ±sin<?, и все диагональные элементы равны 1, кроме cos</>. Действие преобразования Y = RX легко понять: yj = Xj когда j ф р и j ф q, Ур = Хр COS ф + Хд SU10, У я == ~~хр sin Ф + хя cos Ф* Преобразование понимается как вращение n-мерного пространства параллельно ХрЖд-плоскости на угол ф. Выбирая подходящим образом угол ф, можно достичь, чтобы либо ур = 0, либо yq = 0. Обратное преобразование X = R~~XY вращает пространство параллельно той же плоскости хрхя на угол —ф. Отметим, что R — ортогональная матрица, т. е. Я = R' или R! R = I. Подобные и ортогональные преобразования Рассмотрим задачу о собственных значениях: A) АХ = XX. Предположим, что К — невырожденная матрица и что В определяется следую- следующим образом: B) В = К~1АК.
11.3. Метод Якоби 625 Умножим обе части выражения B) справа на величину К~1Х и получим ВК~ХХ = К~1АКК-1Х = К-1 АХ = = к~гхх = Произведем замену переменных: D) Y = KlX или Если D) подставить в C), то новая задача о собственных будет значениях иметь вид E) BY = \Y. Сравнивая выражения A) и E), видим, что подобное преобразование B) сохра- сохраняет собственное значение А. Собственные векторы другие, однако связаны с прежними как следует из D). Предположим, что матрица R ортогональная (т. е. R~l = Rf) и что D опреде- определено как F) D = &AR. Умножим справа обе части выражения F) на ИХ и получим G) DR!X = RfARRfX = R!AX = R!\X = XR'X. Произведем замену переменных: (8) Y = R!X или X = RY. Подставим (8) в G) и получим новую задачу о собственных значениях (9) DY = XY. Как и раньше, собственные значения такие же, как в A), так и в (9). Тем не менее, если в выражении (9) выполнить замену переменной (8), то это упростит преобразование X в Y и У обратно в X, так как R = Rf. Кроме того, предположим, что А — симметричная матрица (т. е. А = А1). Тогда получаем A0) D' = (ШАЯУ = Я'А(Я')' = R'AR = & Следовательно, D — симметричная матрица. Приходим к заключению, что, ес- если А — симметричная матрица ий- ортогональная матрица, преобразование матрицы А в D, задаваемое выражением F), сохраняет симметрию так же, как собственные значения. Соотношения между их собственными векторами задают- задаются посредством замены переменной (8).
626 Глава 11. Собственные значения и собственные векторы Последовательность преобразований Якоби Начнем с действительной симметричной матрицы А. Затем построим последо- последовательность ортогональных матриц R\, Я2,..., (И) D° = A' Dj = RjDj-iRj для j = 1, 2, .... Покажем, как построить последовательность {Я?}, чтобы были справедливы сле- следующие соотношения: A2) lim Dj = D = diag(Ab A2,..., А„). В действительности останавливаемся, когда принадлежащие диагонали элементы близки к нулю. Тогда получаем A3) Dn*D. Легко видеть, что A4) Dn = KK-i • • • R[AR1R2 Если определить A5) R = RiR2 Rn то JR" AR = D, откуда вытекает, что A6) AR = ДГ) = Hdiag(Al5 A2,..., An). Пусть столбцы матрицы Л обозначены, как векторы Xi, X2,..., Хп. Тогда мат- матрицу R можно записать как вектор-строку вектор-столбцов: A7) Я=[Х1 Х2 ... Хп]. Столбцы произведения A6) принимают следующий вид: A8) [АХг АХ2 ... АХп) = [AxXi A2X2 ... А„ХП]. Из выражений A7) и A8) видно, что вектор Xj, который является j-м столбцом матрицы Я, — это собственный вектор, соответствующий собственному значе- значению \j.
11.3. Метод Якоби 627 Общий шаг Каждый шаг итерации Якоби буцет определяться стремлением свести два не лежащих на диагонали элемента ард и аяр к нулю. Пусть Ri — первая из исполь- используемых ортогональных матриц. Предположим, что A9) ?>i = Д'^Я! сводит элементы аря и аяр к нулю, где R\ имеет форму ... о •-. О ••• О" B0) о s ••• 0 0 ••• -5 ••• с ••• 0 rowp row q t colp t colq Здесь все не стоящие на диагонали элементы матрицы Ri равны нулю, за ис- исключением элемента s, стоящего в р-й строке и q-м столбце, и элемента —5, стоя- стоящего в q-й строке и р-м столбце. Заметим также, что все диагональные элементы равны 1, за исключением элемента с, который появляется два раза — в р-й строке, р-м столбце и в q-й строке, q-м столбце. Матрица задает вращения плоскости, если используются обозначения с = cos ф и 5 = sin ф. Следует убедиться, что преобразование A9) приведет'к замене только строк р и q и столбцов р и q. Рассмотрим результат умножения матрицы А на JRi и произведение В = AR\. B1) В = an 0>п1 *pp а ЯР -qn 1 ... 0 ••• 0 ••• 0 ••• 0 с —s 0 ... о ••• ... s ... ... c ... ... о ••• 0 0 0 1 Применим правило умножения строки на столбец и заметим, что не заменяются столбцы 1-й на (р — 1)-й, (р + 1)-й на (q — 1)-й и (q + 1)-й на п-й. Следовательно, только столбцы р и q заменяются. B2) bjp = cajp - sajq bjq = SO.jp + Cdjq когда к ф р и к ф q, для j = 1, 2,..., n, для j = 1, 2,..., п.
628 Глава 11. Собственные значения и собственные векторы Подобные рассуждения показывают, что умножение начиная слева матрицы А на матрицу R[ приведет к изменению только строк рид. Поэтому в результате преобразования B3) Dx = Д; ARi изменятся только столбцы риди строки рид матрицы А. Элементы djk матрицы D\ вычисляются по формулам djp = cajp - sajq, когда ]фр и j ф д, djq = Sdjp + CCLjq, КОГДа j ф р И j ф ?, B4) dpp = c2app + s2aqq - 2csapqy dqq = s2app + c2aqq + 2csapq, dpq = (c2 - s2)apq + cs(app - aqq). Остальные элементы матрицы D\ находятся из соображений симметрии. Обнуление dpq и dqp Назначение каждого шага итерации Якоби — приведение двух не стоящих на диагонали элементов dpq и dqp к нулю. Следует отметить, что очевидная страте- стратегия — это присвоение B5) с = cos ф и s = sin</>, где ф — угол вращения, который приводит к необходимому результату. Однако сейчас потребуются некоторые остроумные манипуляции тригонометрическими тождествами. Тождество для cot ф используется с B5) для определения 2 2 B6) 0 = cot 2<?=^Ц^-. ZCS Предположим, что apq ф 0 и необходимо получить dpq = 0. Тогда, используя последнее равенство в B4), получим B7) 0 = (с2 - s2)apq + cs(app ~ aqq). Его можно перегруппировать и получить равенство (с2 - s2)/(cs) = (aqq - - app)/apq9 которое используется в B6) для нахождения решения относительно 0: B8) 0 = Qg<7 2apq
11.3. Метод Якоби 629 Несмотря на то что для вычисления ens можно использовать B8) с формулами B5) и B6), менее всего распространится ошибка округления, если вычислять tan ф и использовать его в дальнейших вычислениях. Тогда определим s B9) t = tand> = -. с Разделим числитель и знаменатель в B6) на с2 и получим в= 2s/c 2t ' которое приводит к уравнению C0) t2 + 2*0 - 1 = 0. Так как t = tan ф, наименьший корень уравнения C0) соответствует наименьшему углу вращения при \ф\ < тг/4. Запишем частную форму квадратичной формулы для нахождения этого корня C1) t = -0±@2- где sign@) = 1, когда 0 > 0, и sign@) = —I, когда 0 < 0. Затем с и s вычислим по формулам _ 1 C2) С ~ C^ + lI/2 s = ct. Краткое описание общего шага В этом разделе предлагается схема вычислений для приведения к нулю эле- элемента dpq. Вначале отметим строку р и столбец q, для которых apq Ф 0. Затем предварительно сформируем величины 2apq C3) |0| + @2 + 1I/2' 1 с = s = ct.
630 Глава 11. Собственные значения и собственные векторы После этого для построения матрицы D = D\ используем dpq = 0; dqp = 0; dpp = <?прр + s2aqq — 2csapq; dqq = s2app + <?aqq + 2csapq; for j = 1: N C4) if (j~=p) and t?~ = g) dJP dpj djq dqj end end = ca,jp — sajq; = 4ft» = cajq + sajp; = djq; Обновление матрицы собственных векторов Отследим произведение матриц R\ R2 • • • Дп- Остановившись на n-й итерации, получим C5) уп = iti±i2-±tn, где Vn — ортогональная матрица. Необходимо следить только за текущей матри- матрицей Vj, j = 1, 2, ..., п. Начнем с инициализации матрицы V = /. Используем вектор переменных ХР и XQ соответственно для хранения столбцов р и q матрицы А. Затем на каждом шаге выполним вычисления for i = l:N XPj = t;ip; C6) end V ; for vjp end
11.3. Метод Якоби 631 Стратегия исключения аря Скорость сходимости метода Якоби можно определить, если рассмотреть сум- суммы квадратов, не стоящих на диагонали элементов матрицы: C7) Si = п C8) S2 = У] \djk\2, где Dx = &AR. Читатель может убедиться, что соотношения, заданные в C4), можно использовать для доказательства того, что C9) S2 = Sl-2\apq\2. Обозначим на каждом шаге через Sj сумму квадратов, не стоящих на диагонали элементов матрицы Dj. Тогда последовательность {Sj} монотонно уменьшается и имеет нижнюю грань, равную нулю. Первоначальный алгоритм Якоби, предло- предложенный в 1846 году, на каждом шаге обнулял элемент с наибольшим значением apq, не стоящим на диагонали, и включал вычисление значений D0) тах{А} = Такой выбор гарантировал, что последовательность {Sj} сойдется к нулю. Как следствие это доказывает, что {Dj} сходится к D и {Vj} сходится к матрице собственных векторов V (см. [68]). На выполнение этого алгоритма Якоби уходит много времени, так как тре- требуется порядка (п2 — п)/2 сравнений за цикл, что делает его непригодным для больших значений п. Лучшей стратегией является циклический метод Якоби, ко- когда он обнуляет элементы, пересекая строки в определенном порядке. Выберем допустимое значение €, затем исследуем всю матрицу и, если найденный элемент Q>Pq будет больше, чем е, то он обнулится. За один проход по матрице проверяют- проверяются элементы в строке 1, ai2, ахз, ..., а\Пу затем — в строке 2, агз, ^24» • • •> ^2п и т. д. Это доказывает, что скорость сходимости квадратична для первоначального и циклического методов Якоби. Выполнение циклического метода Якоби начнем с замечания, что сумма квадратов диагональных элементов увеличивается с каждой итерацией, т. е. если D1) То
632 Глава 11. Собственные значения и собственные векторы и то Ti =T0 + 2\apq\2. Значит, последовательность {Dj} сходится к диагональной матрице D. Заме- Заметим, что среднее значение диагональных элементов можно вычислить по формуле (То/nI/2. Величины не лежащих на диагонали элементов сравнимы с б(То/пI/2, где € — наперед заданное допустимое отклонение. Кроме того, элемент аря стано- становится равным нулю, если D2) Ы>е(Щ . \ / Другой вариант метрда, называемый пороговым методом Якоби, оставляем для исследования читателю (см. [178]). Пример 11.7. Используем итерацию Якоби для приведения следующей симмет- симметричной матрицы к диагональному виду. 8 -1 3 -1 -1 6 2 0 3 2 9 1 -1 0 1 7 Детали вычисления оставляем читателю. Первое вращение матрицы для обну- обнуления элемента aiz = 3 имеет вид 0,646375 0,000000 0,000000 0,000000 0,763020 0,000000 0,763020 0,000000 0,000000 0,000000 -0,646375 0,000000 0,000000 0,000000 0,000000 0,000000. Вычисления показывают, что матрица Аъ = R\A\R\ равна 5,458619 -2,055770 0,000000 -1,409395 -2,055770 6,000000 0,879665 0,000000 0,000000 0,879665 11,541381 0,116645 _-1,409395 0,000000 0,116645 7,000000_ Затем обнуляем элемент аи = —2,055770 и получаем 3,655795 0,000000 0,579997 -1,059649 0,000000 7,802824 0,661373 0,929268 0,579997 0,661373 11,541381 0,116645 -1,059649 0,929268 0,116645 7,000000
11.3. Метод Якоби 633 После десяти итераций получаем ,295870 0,002521 0,002521 8,405210 0,037859 -0,004957 0,000000 0,066758 0,037859 -0,004957 11,704123 -0,001430 0,000000" 0,066758 -0,001430 6,594797 Чтобы получить близкую к диагональной матрицу D = diagC,295699; 8,407662; 11,704301; 6,592338). выполняем для диагональных элементов на шесть итераций больше. Тем не менее элементы, не лежащие на диагонали, недостаточно малы и по- потребовалось еще три итерации, чтобы они получились меньше по величине, чем 10~6. Тоща собственные векторы — это столбцы матрицы V = Ri Яг • • • Ru 0,528779 -0,573042 0,582298 0,230097 0,591967 0,472301 0,175776 -0,628975 -0,536039 0,282050 0,792487 -0,071235 0,287454 0,607455 0,044680 0,739169 Программа 11.3 (итерация Якоби для собственных значений и векто- векторов). Программа предназначена для вычисления полной совокупности соб- собственных пар {Aj, Vj}^=1 действительной симметричной матрицы А размера пхп. Итерация Якоби используется для нахождения собственных пар. function [V,D]=jacobil(A,epsilon) У.Вход - А - матрица размера пхп X - epsilon - допустимое значение '/.Выход - V - матрица собственных векторов размера пхп X - D - диагональная матрица собственных значений размера пхп •/¦Инициализация V,D и параметров D=A; Cn,n]=size(A); V=eye(n); state^i; •/.Вычисление строки р и столбца q наибольшего по абсолютной •/.величине элемента матрицы А, не лежащего на диагонали [ml p]=max(abs(D-diag(diag(D)))); [m2 q]=max(ml);
634 Глава 11. Собственные значения и собственные векторы J fco I к2 —ЛЛАЛг- о ТП2 кг -ЛЛЛЛг— о о 1Г о о Рис. 11.3. Система недемп- недемпфированных масс, связанных пружинами p=p(q); while(state==l) •/.Обнуление Dpq и Dqp t=D(p,q)/(D(q,q)-D(p,p)); c=l/sqrt(tT2+l); s=c*t; R=[c s;-s c] ; D([p q],:)=R'*D([p q],:); D(:,[p q])=D(:,[p q])*R; V(:,[p q])=V(:,[p q])*R; [ml p]=max(abs(D-diag(diag(D)))); [m2 ql^maxdnl); p=p(q); if (abs(D(p,q))<epsilon*sqrt(sшtt(diag(D).~ state=0; end end D=diag(diag(D)); Упражнения к разделу 11.3 1. Системы масс, связанных пружинами. Рассмотрим недемпфированную си- систему масс, связанных пружинами, которая изображена на рис. 11.3. Матема- Математическая модель, описывающая положение статического равновесия, имеет следующий вид. + k2 —k2 -k2 k2 + к 0 -*3 0 mi 0 0 0 Vfl2 0 0" 0 m3_ \х'Щ *Z(t) — " 0 0 (а) Используйте подстановки Xj(t) = Vj sin(cx;< + в) для j = 1, 2, 3, где в — постоянная, и покажите, что решение математической модели можно
11.3. Метод Якоби 635 переписать в следующем виде: 'ki+k2 тг -*2 TTI2 n zh mx k2 + k3 ГП2 -h m3 0 -*з ?7l2 h m3 Vi V2 (Ь) Положим Л = и2. Тогда три решения из п. (а) являются собственными парами Xj9 Vj = \v[^ v^ v^\ для j = 1, 2, 3. Покажите, что для их построения используются три фундаментальные решения: Xj(t) = в) в) в) = sin(u>jt + в) где cjj = у/Х] для j = 1, 2, 3. Замечание. Эти три решения рассматриваются как три основных вида колебания. 2. Однородную линейную систему дифференциальных уравнений можно записать в матричном виде: т WW1 . Г 1 11 fiWl ='AX(t). L^WJ L~2 4J F2(*)J v y (с) (a) Проверьте, что 2, [l l] и 3, [l 2] — собственные пары матрицы А. (b) Выполнив прямую подстановку в систему, записанную в матричном ви- виде, убедитесь, что и X(t) = e2t[l l]', и X(t) = e3t[l 2]' — решения системы дифференциальных уравнений. Выполнив прямую подстановку в систему, записанную в матричном ви- виде, убедитесь, что X(t) = cie2*[l l]; + C2e3t[l 2]; является общим решением системы дифференциальных уравнений. Замечание. Если матрица А имеет п различных собственных значе- значений, то она будет иметь п линейно независимых собственных векто- векторов. В этом случае общее решение однородной системы дифференци- дифференциальных уравнений можно записать как линейную комбинацию: X(t) = A A X
636 Глава 11. Собственные значения и собственные векторы 3, Воспользуйтесь техникой (вручную), схема которой описана в упр. 2, для решения каждой из следующих задач Коши. x\ = (a) ; x2 = 2x2 Xi = 2xi — 12x2 (b) x' = XX- 5X2 xi = x2 (c) X2 = X3 -14ж2 \ = 2 f*i@)=2 \ *2@) = 2 ar2@) = 2 = 3 Алгоритмы и программы 1. Воспользуйтесь программой 11.3 для нахождения собственных пар заданной матрицы с допустимым отклонением е = 10~7. Сравните свои результаты с результатами, которые получены с помощью команды MATLAB eig при вводе [eig(A) diag(D)] в командном окне MATLAB. Г4 3 2 П (а) А = (Ь) А = 3 4 3 2,25 -0,25 -1,25 2,75' -0,25 2,25 2,75 1,25 -1,25 2,75 2,25 -0,25 2,75 1,25 -0,25 2,25, i + j i=j ij i ф j (c) A = [aij], где ац = (d) A = [a^], где Oj,- = Ht,i = l,2,...,30. cos(sin(i + j)) i = j и i,j = 1,2, ...,40. 2. Воспользуйтесь техникой, схема которой описана в упр. 1, и программой 11.3, чтобы найти собственные пары и три основных вида колебания для недем- пированной системы масс, связанных пружинами, со следующими коэффи- коэффициентами. (a) fci = 3; fc2 = 2; кз = 1;т\ = 1; m2 = 1; тз = 1. (b) ki = \; к2 = \; к3 = \\т\= 4; т2 = 4; т3 = 4. (c) fci = 0,2; к2 = 0,4; А;3 = 0,3; mi = 2,5; т2 = 2,5; тз = 2,5.
11.4. Собственные значения симметричных матриц 637 3. Воспользуйтесь техникой, схема которой описана в упр. 2, и программой 11.3, чтобы найти общее решение заданной однородной системы дифференциаль- дифференциальных уравнений, (а) *! = ¦ x'2 = : 3xi + 2ж1 + X\ + ЗЖ2 4ж2 Зж2 2X2 + 2; + 3; + 4: + 3; СЗ + Х4 СЗ Н" 2X4 СЗ + 3^4 С3 + 4^4 (Ь) х[ = 5xi + 4x2 + Зх3 + 2x4 + ^5 х'2 = 4X1 + 5X2 + 4хз + 3X4 + 2X5 #3 = 3^1 + 4X2 + 5хз + 4X4 + 3X5 х\ = 2X1 + 3X2 + 4хз + 5X4 + 4X5 Х5 = Xi + 2X2 + ЗХз + 4X4 + 5X5 4, Модифицируйте программу 11.3 таким образом, чтобы реализовать "цикли- "циклический" метод Якоби. 5. Используйте свою программу из задачи 4 для симметричных матриц из за- задачи 1. В частности, сравните число итераций, необходимых вашей цикличе- циклической программе и программе 11.3 при заданном допустимом отклонении. 11.4. Собственные значения симметричных матриц Метод Хаусхольдера Каждое преобразование метода Якоби дает два равных нулю элемента, не стоя- стоящих на диагонали, но последующие итерации могут сделать их не равными нулю. Значит, потребуется много итераций, чтобы элементы, не лежащие на диагонали, стали достаточно близки к нулю. Сейчас изложим метод, который в каждой ите- итерации дает несколько равных нулю не лежащих на диагонали элементов и они остаются нулями в последующих итерациях. Начнем изложение с важного шага процесса. Теорема 11,23 (отражение Хаусхольдера). Если X и Y — векторы с одной и той же нормой, то существует такая ортогональная симметричная матрица Р, что A) Y = РХ, где B) Р = / - 2WW1
638 Глава 11. Собственные значения и собственные векторы Рис. 11.4. Векторы W, X, Y и Z, используемые при отраже- отражении Хаусхольдера и C) w = X-Y \\X-Y\\2 Из того, что матрица Р одновременно и ортогональная, и симметричная, следует D) ' Р = Р. Доказательство. Используем соотношение C) и определим вектор W как еди- единичный вектор в направлении X — Y. Следовательно, E) и F) Y = X + cW, где с = - ||Х - У||2. Так как векторы X и Y имеют одну и ту же норму, мож- можно использовать правило паралелограмма для сложения векторов и увидеть, что вектор Z = (X + У)/2 = X + (c/2)W ортогонален к вектору W (рис. 11.4). Из этого следует, что w'(x + |wo = о. Используем E), чтобы преобразовать предыдущее уравнение и получить G) WX + ^WfW = W'X + ~ = 0. Решающим шагом является использование выражения G) и представление с в виде (8) с = -2(W'X). Тогда (8) можно подставить в F) и увидеть, что = X- 2W'XW.
11.4. Собственные значения симметричных матриц 639 Поскольку величина W'X — скаляр, последнее уравнение можно переписать в виде (9) Y = X - 2WW'X = (J - 2WW')X. Если посмотреть на уравнение (9), то можно увидеть, что Р = I — 2WW1. Матрица Р симметрична потому, что Р' = (/ - 2WW1)' = I - 2(WWrY = = / - 2WW' = Р. Следующие вычисления показывают, что матрица Р ортогональна: Р'Р = (I - 2WW")(J - 2WW') = = I - 4И^Г + AWW'WW' = = / - 4WW' + 4^W = J, и доказательство завершено. • Отметим, что следствием отображения Y = РХ является отражение вектора X относительно линии, имеющей направление Z. Отсюда и название — отра- отражение Хаусхольдера. Следствие 11.3 (fc-я матрица Хаусхольдера). Пусть А — матрица размера п х х п и X — любой вектор. Если к — целое число, 1 < к < п — 2, то можно так построить вектор Wk и матрицу Р* = / — 2WkWkf что A0) = Рк Xi Xk+2 ' xx -S 0 0 = У. Доказательство. Ключом доказательства является определение значения S та- таким образом, что ||-Х"||2 = \\Y\\2, и последующее применение теоремы 11.23. Подходящее значение для S должно удовлетворять равенству A1) S2 = *lfi+*l+2 + --- + 4, которое без труда проверяется путем вычисления норм векторов X и Y: A2) = 11*12
640 Глава 11. Собственные значения и собственные векторы Вектор W находим, используя выражение C) теоремы 11.23: W = —-(X — Y) = R A3) = -^[0 ... 0 хк+2 В наименьшей степени ошибка округления распространяется тогда, когда знак S выбираем таким же, как и знак хк+\. Следовательно, вычисляем A4) S = si Число R в A3) выбрано таким образом, что ||W\\2 = 1, и должно удовлетворять равенству R2 = (а*+1 + 5J + х\+2 + - - • + 4 = A5) = 2xk+xS + S2 + я?+1 + х|+2 + • • - + х* = =* 2xk+iS + 2S2. Поэтому матрица Рк задается формулой A6) Pk = I-2WW. На этом доказательство завершено. • Преобразование Хаусхольдера Предположим, что А — симметричная матрица размера п х п. Тогда после- последовательность п — 2 преобразований вида РАР приводит А к симметричной трехдиагональной матрице. Представим себе процесс, когда п = 5. Первое пре- преобразование определяет Р\АР\, где Pi построено согласно следствию 11.3 с вектором X, который является первым столбцом матрицы А. Общий вид матри- матрицы Pi таков: A7) где буква р установлена вместо некоторых элементов матрицы Pi. В результате преобразование Pi APi не затрагивает элемент ац матрицы А: 1 0 0 0 0 0 р р р р 0 р р р р 0 р р р р 0 р р р р. A8) щ 0 0 0 1^1 W\ W W W 0 W W W W 0 W W W W 0 W W W W = ^1.
11.4. Собственные значения симметричных матриц 641 Элемент, обозначенный через щ9 изменяется, так как выполняется умножение слева на матрицу Р\, a v\ изменяется, так как выполняется умножение справа на Pi. Следовательно, матрица А\ симметрична и имеем щ = v\. Изменение элементов, обозначенных через w, является следствием как умножения слева, так и умножения справа. Также, поскольку вектор X является первым столбцом матрицы А, из A0) следует, что щ = — S. Второе преобразование Хаусхольдера, примененное к матрице А\9 определен- определенной в A8), обозначается через Р2АР2у где матрица Р2 строится согласно след- следствию 11.3 с вектором X, который, в свою очередь, является вторым столбцом матрицы А\. Матрица Р2 имеет вид A9) 1 0,0 0 0' 0 10 0 0 0 0 р р р 0 0 р р р Р 0 р р р\ где р установлено вместо некоторых элементов в матрице Р^- Благодаря еди- единичному блоку размера 2 ж 2 в левом верхнем углу частичная трехдиагональ- ность, достигаемая на первом шаге, не будет изменяться вторым преобразованием ъ. В результате этого преобразования получим '11 ^1 0 0 0 V\ Wi u2 0 0 0 v2 w2 w w 0 0 w w w 0 0 w w w B0) Элементы и2 и v2 изменяются в результате умножения слева и умножения спра- справа на Р2* Дополнительные изменения при преобразовании относятся к другим элементам w. Третье преобразование Хаусхольдера, Р3А2Р3, применяется к матрице А2, определенной в B0), где следствие используется вектором X, который, в свою очередь, является третьим столбцом матрицы А2. Матрица Рз имеет вид B1) 0 0 0 0 0 10 0 0 0 0 10 0 0 0 0 р р Р 0 0 р рт И снова благодаря единичному блоку размера 3x3 матрица Р$А2Р$ не из- изменяет элементы матрицы А2у которые лежат в верхнем углу размера 3x3.
642 Глава 11. Собственные значения и собственные векторы Р3А2Р3 = ап щ 0 0 0 VI Wi 1*2 0 0 0 v2 102 щ 0 G 0 V3 W W 0 0 0 w W Получаем B2) Таким образом, понадобилось три преобразования, чтобы привести матрицу А к трехдиагональному виду. В действительности преобразование РАР не выполняется в матричном виде. Следующий результат показывает, что это эффективнее выполнять некоторыми искусными манипуляциями векторами. Теорема 11.24 (вычисление одного преобразования Хаусхольдера). Если Р- матрица Хаусхольдера, то преобразование РАР выполняется следующим обра- образом. Пусть B3) V = Вычислим B4) с = B5) Q = V - cW. Тогда B6) РАР = А - 2WQ' - 2QW*. Доказательство. Сначала образуем произведение АР = А{1 - 2WW) = А - 2AWW. Используя B3), запишем его в виде B7) АР = А- 2VW1. Теперь используем B7) и запишем B8) РАР = (I - 2WW')(A - 2VW). Если преобразовать эту величину, член 2BWWfVW1) можно разделить на две части и затем B8) переписать в виде B9) РАР = А- 2W(W'A) + 2W(WfVWf) - 2VWf + 2W(W'V) W'.
11.4. Собственные значения симметричных матриц 643 Если предположить, что матрица А симметрична, можно использовать тожде- тождество (WfA) = (WfAf) = V'. Частично фокус состоит в том, чтобы вспомнить, что (WfV) — скалярная величина. Следовательно, она может коммутировать с любым членом. Другое скалярное тождество W'V = (WfV)f используется для получения соотношения W'VW' = (W'V)W = W'(W'V) = W'(W'V)' = = ((WtV)W)t = (W'VWy. Эти результаты применяются в стоящих в скобках членах выражения B9) для получения C0) РАР = А - 2WV* + 2W(W'VW)' - 2VW' + 2W'VWW'. Воспользуемся в C0) законом дистрибутивности и получим C1) РАР = А - 2W(V - (WVW)') - 2(V - W'VW)W. Наконец используем в C1) определение Q, данное в B5), и в результате получим выражение B6). На этом доказательство закончено. • Приведение к трехдиагональному виду Предположим, что А — симметричная матрица размера п х п. Начнем с C2) Ао = А. Построим последовательность матриц Хаусхольдера Pi, P^ ..., Рп-\ таким образом, что C3) Ак = РкАк-гРк для к = 1, 2, ..., п - 2, где матрица А& имеет нули под диагональю, в столбцах 1, 2, ..., к. Тогда Ап-2 является симметричной трехдиагональной матрицей, подобной матрице А. Этот метод называется методом Хаусхольдера. Пример 11.8. Используем метод Хаусхольдера, чтобы привести следующую матрицу к симметричному трехдиагональному виду: '4 2 2 1" 2-311 2 13 1 111 2 Подробности оставляем читателю. Используем для построения вектора посто- постоянные S = 3 и R = 301/2 = 5,477226: W' = -^=[0 5 2 1] = [0,000000 0,912871 0,365148 0,182574]. v30
644 Глава П. Собственные значения и собственные векторы Затем используем умножение матриц V = AW, чтобы сформировать V' = -^=[0 -12 12 9] = л/301 J = [0,000000 -2,190890 2,190890 1,643168]. Находим, что постоянная с = W'V равна с = -0,9. После этого формируем вектор Q = V — cW = V + 0,9W: Q' = -^= [0,000000 -7,500000 13,800000 9,900000] = v30 = [0,000000 -1,369306 2,519524 1,807484]. Вычисляя Ai = AQ - 2WQ' - 2QW', получаем 4,0 -3,0 0,0 0,0 -3,0 2,0 -2,6 -1,8 0,0 -2,6 -0,68 -1,24 0,0 -1,8 -1,24 0,68. И на последнем шаге используем постоянные S = —3,1622777, R = 6,0368737, с = -1,2649111 и векторы W'= [0,000000 0,000000 -0,954514 -0,298168], V = [0,000000 0,000000 1,018797 0,980843], Q' = [0,000000 0,000000 -0,188578 0,603687]. Тогда трехдиагональная матрица A-i — А\ — 2WQ' — 2QW' имеет вид А2 = 4,0 -3,0 0,0 0,0' -3,0 2,0 3,162278 0,0 0,0 3,162278 -1,4 -0,2 0,0 0,0 -0,2 1,4 Программа 11.4 (приведение к трехдиагональному виду). Программа пред- предназначена для приведения симметричной матрицы А размера пхпк трехдиа- трехдиагональному виду с использованием п — 2 преобразований Хаусхольдера. function T=house (A) '/.Вход - А - симметричная матрица размера n x n '/.Выход - Т - трехдиагональная матрица
11.4. Собственные значения симметричных матриц 645 [n,n]=size(A); for k=l:n-2 5Шостроение W s=norm(A(k+l:n,k)); if (А(к+1,к)<0) s=-s; end r=sqrtB*s*(A(k+l,k)+s)); W(l:k)=zeros(l,k); W(k+l)=(A(k+l,k)+s)/r; W(k+2:n)=A(k+2:n,k)Vr; •/Построение V V(l:k)=zeros(l,k); V(k+l:n)=A(k+l:n,k+l:n)*W(k+l:n)'; •/.Построение Q c=W(k+l:n)*V(k+l:n)>; Q(l:k)=zeros(l,k); Q(k+l:n)=V(k+l:n)-c*W(k+l:n); •/•Построение Ак A(k+2:n,k)=zeros(n-k-l,l); A(k,k+2:n)=zeros(l,n-k-l); A(k+l,k)=-s; A(k,k+l)=-s; A(k+l:n,k+l:n)=A(k+l:n,k+l:n) ... -2*W(k+l:n)'*Q(k+l:n)-2*Q(k+l:n)J*W(k+l:n); end T=A; QR-метоя Предположим, что А — действительная симметричная матрица. В предыду- предыдущем разделе было показано, метод Хаусхольдера используется для построения подобной трехдиагональной матрицы. QR-метод применяется для нахождения всех собственных значений трехдиагональной матрицы. Подобное этому враще- вращение плоскости введено в методе Якоби, чтобы построить ортогональную матрицу Qx = Q и верхнюю треугольную матрицу U\ = U таким образом, чтобы Ai = A можно было разложить на множители C4) A^ Затем образуем произведение C5) А2 =
646 Глава 11. Собственные значения и собственные векторы Так как Qx — ортогональная матрица, можно использовать C4) и увидеть, что C6) Q[AX = Q'&Ux = U i. Следовательно, А2 можно вычислить по формуле C7) А2 = А поскольку Q[ = Qj, А2 подобна матрице А\ и имеет такие же собственные значения. В общем, строим ортогональную матрицу Qk и верхнюю треугольную матрицу Uk таким образом, что C8) Затем определим C9) Ак = QkUk. = UkQk = Q'kAkQk. И снова получаем Qfk = Qk l9 из чего следует, что матрицы Ак+\ и Ак подобны. Важным следствием является то, что матрица Ак подобна А и, значит, имеет такую же структуру. Определенно, можно заключить, что если А — трехдиаго- нальная матрица, то Ак — также трехдиагональная матрица для всех к. Теперь предположим, что матрица А записана в виде D0) n-2 dn-] dn . Можно найти вращение плоскости Рп-ъ которое сводит к нулю элемент матрицы А, занимающий место (п,п — 1), т. е. D1) dz dn-2 Чп-2 е-п-2 Рп-1 о Гп-2 Яп-1 Рп . Аналогично можно построить вращение плоскости Рп-2, которое уменьшит до нуля элемент матрицы Рп-\ А, расположенный на месте (п — 1, п — 2). После
11.4. Собственные значения симметричных матриц 647 п — 1 шага получим D2) Pi 0 0 91 P2 0 n 92 P3 Pn-2 0 0 Pn-1 0 Pn . Поскольку каждое вращение плоскости описывается ортогональной матрицей, из уравнения D2) следует, что D3) Q = Рп-хРп.2 • • • Pi- Умножив матрицу С/ на матрицу Q, получим, что все элементы, лежащие ниже второй нижней диагонали, равны нулю. Из трехдиагонального вида матрицы А<х следует, что она также имеет нули выше второй верхней диагонали. Исследования показывают, что члены т$ используются только для вычисления этих нулевых элементов. Значит, нет необходимости хранить или использовать в компьютере числа {rj}. Для каждого вращения плоскости Pj предполагается, что сохраняются коэф- коэффициенты Cj и Sj, которые его определяют. Тогда нет необходимости вычислять и хранить именно матрицу Q; можно использовать последовательности {cj} и {sj} вместе с точными формулами, чтобы получить произведение D4) А2 = UQ = UP'n^P'n^ • • • Pi •' Ускоренные сдвиги Выше приводилась схема работы QR метода, однако сходимость его медленна даже для матриц малого размера. Можно дополнить его техникой сдвига, что повысит скорость сходимости. Напомним, что если Xj — собственное значение матрицы А, то Xj — Si — собственное значение матрицы В = А — S{I. Этот метод предусматривает выполнение модификации D5) А{ — S{I = U { и формирования матрицы D6) Ai+1 = UiQi для г = 1, 2, ..., kj, где {s{} — последовательность, сумма которой равна Aj, т. е. Xj = si+S2-\—
648 Глава 11. Собственные значения и собственные векторы* На каждом этапе правильное число сдвигов находят, используя четыре эле-* мента в нижнем правом углу матрицы. Начнем с определения Ai и вычисления собственных значений матрицы размера 2x2: <47> [t; х Они равны х\ и Х2 и являются корнями квадратного уравнения /л о\ 2 / j i j \ ~. * j j ^ п Значение Si в соотношении D5) выбирается таким образом, чтобы оно было кор- корнем уравнения D8), т. е. ближайшим к dn. Затем итерация со сдвигом QR метода повторяется до тех пор, пока не будет получено en-i « 0. Это дает первое собственное значение Ai = s\ + S2 Н + + Skx. Подобный процесс повторяется с верхними п — 1 рядами, чтобы получить еп_2 « 0, и следующее собственное значение равно Аг. Последовательно итера- циии применяются к меньшим подматрицам, пока не будет получено ег « 0 и собственное значение Ап_2- Наконец, квадратичная формула используется, что- чтобы найти два последних собственных значения. Детали можно уточнить, если проанализировать программу. Пример 11.9. Найдем собственные значения матрицы 4 2 2 1 2 -3 1 1 2 1 3 1 1 1 1 2 ч = В примере 11.8 трехдиагональная матрица А\ была построена так, что она подобна матрице М. Начнем процесс приведения к диагональному виду с этих матриц: 4-3 0 0 -3 2 3,16228 0 0 3,16228 -1,4 -0,2 0 0 -0,2 1,4 Четыре элемента в нижнем правом углу равны d$ == —1,4, d\ = 1,4 и ез = -0,2, используем их для формирования квадратного уравнения х2 - (-1,4 + 1,4)х + (-1,4)A,4) - (-0,2)(-0,2) = х2 - 2 = 0. Вычисляем корни х\ = —1,41421 и Х2 = 1,41421. Корень, ближайший к сЦ, выбираем в качестве первого сдвига s\ = 1,41421, и после первого сдвига матрица
11.4. Собственные значения симметричных матриц 649 имеет вид 2,58579 —3 0 0 -3 0,58579 1,74806 0 0 1,74806 -2,81421 -1,61421 0 0 -1,61421 -0,01421 Затем вычисляем разложение на множители А\ — s\I = Q\U\: -0,65288 -0,38859 -0,55535 0,33814 0,75746 -0,33494 -0,47867 0,29145 0 0,85838 -0,43818 0,26610 О 0 0,52006 0,85413. -3,96059 2,40235 2,39531 О О 3,68400 -3,47483 -0,17168 О 0 -0,38457 0,08024 О О О -0,06550. Теперь вычисляем в обратном порядке произведение матриц и получаем А2 = 4,40547 2,79049 О О 2,79049 -4,21663 -0,33011 О О -0,33011 0,21024 -0,03406 О 0 -0,03406 -0,05595. Второй сдвиг равен s2 = —0,06024. После второго сдвига матрица имеет вид Аг - s2l = Q2U2 и = U2Q2 = ' 4,55257 -2,65725 О 'О -2,65725 -4,26047 0,01911 О О 0,01911 0,29171 0,00003 О 0 0,00003 0,00027. Третий сдвиг равен «з = 0,00027. Матрица после третьего сдвига имеет вид = Q3U3 и А4 = 4,62640 2,53033 О О" 2,53033 -4,33489 -0,00111 О О -0,00111 0,29150 О 0 0 0 0 Первое собственное значение, округленное до пяти десятичных знаков, получаем в результате вычислений: = 1,41421 - 0,06023 + 0,00027 = 1,35425.
650 Глава 11. Собственные значения и собственные векторы Следующее Ai расположено на последней позиции диагонали матрицы А4, и процесс повторяется. Однако изменения происходят только в верхнем углу разме- размера 3 х 3 матрицы '4,62640 2,53033 0 0 2,53033 -4,33489 -0,00111 0 0 -0,00111 0,29150 0 0 0 0 1,35425_ Аналогично один дополнительный сдвиг приводит элемент во второй строке и третьем столбце к нулю (определяется до десяти десятичных знаков): 54 = 0,29150, А4 - Поэтому второе собственное значение равно Л2 = Ai + 54 = 1,35425 + 0,29150 = 1,64575. Наконец А2 располагаем на диагонали матрицы А$ в третьей строке и столбце и получаем ^ 4,26081 -2,65724 0 0 -2,65724 -4,55232 0 0 0 0 1,64575 0 0 0 0 1,35425, Для завершения вычисления необходимо найти собственные значения матрицы размера 2 х 2 в верхнем левом углу матрицы А$. Характеристическое уравнение х2 - (-4,26081 + 4,55232)я + D,26081)(-4,55232) - B,65724)B,65724) = О приводим к виду х2 + 0,29151х - 26,45749 = 0. Корни его равны х\ = 5,00000 и х2 = —5,29150, и два последних собственных значения получаем в результате вычислений А3 = А2 + хг = 1,64575 + 5,0000 = 6,64575 А4 = А2 + х2 = 1,64575 - 5,29150 = -3,64575. ¦ Программу 11.5 можно использовать для получения всех приближенных соб- собственных значений симметричной трехдиагональной матрицы. Алгоритм про- программы следует из предыдущих рассуждений, но с двумя значительными исклю- исключениями. Первое: команда MATLAB eig используется для нахождения корней ха- характеристического уравнения D8) каждой подматрицы D7) размера 2x2. Второе:
11.4. Собственные значения симметричных матриц 651 фД-разложение матрицы А{ — S{I D5) выполняется с использованием команды MATLAB [Q ,R] =qr (В), которая получает такие ортогональную матрицу Q и верх- верхнюю треугольную матрицу R, что B=Q*R (читатели могут написать собственную программу фЯ-разложения). Программа 11.5 (QjR-метод со сдвигами). Программа предназначена для приближенного вычисления собственных значений симметричной трехдиаго- нальной матрицы А с использованием фЯ-метода со сдвигами. function D=qr2(A,epsilon) •/•Вход - А - симметричная трехдиагональная матрица размера n x n °/, - epsilon - допустимое отклонение '/•Выход - D - вектор собственных значений размера n x 1 •/.Инициализация параметров Cn,n]=size(A); m=n; D=zeros(n,l); В=А; while (m>l) while (abs(B(m,m-l))>=epsilon) '/•Вычисление сдвига S=eig(B(m-l:m,m-l:m)) ; [j,k]=min([abs(B(m,m)*[l 1]>-S)]); 70QR разложение В [Q,U]=qr(B-S(k)*eye(m)); ¦/•Вычисление следующего В B=U*Q+S(k)*eye(m); end '/•Расположение m-го собственного значения в матрице A(m,m) A(l:m,l:m)=B; •/•Повторение процесса на подматрице А размера m-1 xm-1 т=т-1; В=АA:т,1:т); end D=diag(A); Упражнения к разделу 11.4 1, Подробно объясните, почему в доказательстве теоремы 11.23 Z перпендику- перпендикулярно W.
652 Глава 11. Собственные значения и собственные векторы , 2. Если X — произвольный вектор, иР = 1- 2ХХ\ то покажите, что Р - симметричная матрица. 3. Пусть X — произвольный вектор и пусть Р = I — 2XX1. (a) Найдите величину Р'Р. (b) Какое дополнительное условие необходимо для того, чтобы Р была ор- ортогональной матрицей? Алгоритмы и программы В задачах 1-6 используйте следующее. (a) Программу 11.4, чтобы привести данную матрицу к трехдиагональному виду. (b) Программу 11.5, чтобы найти собственные значения данной матрицы. 1. 4. Го о О ?* 9 Ч л* О 1 2 " 3,6 4,4 0,8 -1,6 .-2,8 4 = [<ц 1" 1 О О О 4,4 2,6 1,2 -0,4 0,8 j]. гае i у 0,8 1,2 0,8 -4,0 -2,8 ч - \ 4 3 3 4 2 3 1 2 -1,6 -0,4 -4,0 1,2 2,0 2 3 4 3 1 2 3 4 -2,8" 0,8 -2,8 г г 2,0 1,8 = 3 Фз 2,75 -0,25 -0,75 1,25 -0,25 2,75 1,25 -0,75 2,...,30. -0,75 1,25 2,75 -0,25 1,25 -0,75 -0,25 2,75 М« •;='; „и = 1,2 40. 7. Напишите программу, которая реализует QR-метод для симметричной мат- матрицы. 8. Модифицируйте программу 11.5 таким образом, чтобы она обращалась к вашей программе из задачи 7, как к подпрограмме. Используйте эту модифи- модификацию программы, чтобы найти собственные значения матриц из задач 1-6.
Приложение. Введение в MATLAB Это приложение поможет читателю подготовиться к работе с пакетом при- прикладных программ MATLAB. Предполагается, что читатель знаком с языком про- программирования высокого уровня и ему хорошо известны техника записи циклов, использование логических отношений, вызов подпрограмм и редактирование. Все это находит непосредственное применение в среде типа windows пакета MATLAB. MATLAB — это математический пакет прикладных программ, основанный на использовании матриц. Пакет содержит обширную библиотеку программ по чис- численным методам, использует двух- и трехмерную графику, а также форматы язы- языков высокого уровня. Подходящий формат позволяет с помощью MATLAB быстро выполнять и модифицировать программы всем, кто изучает эту книгу и реализует приведенные в ней алгоритмы. Читателю следует полностью изучить введение в MATLAB (команды MATLAB типа typewriter). Рассмотренные ниже примеры иллюстрируют типичный ввод и вывод для MATLAB Command Window. Найти дополнительную информацию о ко- командах, опциях и примерах можно, воспользовавшись легко доступной справкой в диалоговом режиме, списком литературы и прилагаемой к пакету прикладных программ документацией. Арифметические операции + Сложение Вычитание * Умножение / Деление 653
654 Приложение. Введение в MATLAB Возведение в степень pi, e, i Постоянные Ex. >B+3*pi)/2 ans = 5.7124 Встроенные функции Ниже кратко перечислены некоторые функции, имеющиеся в MATLAB. Сле- Следующий пример иллюстрирует, как можно комбинировать функции и арифме- арифметические операции. Описание других функций можно найти, используя легко доступную справку в диалоговом режиме. abs(#) cos(#) exp(#) log(#) loglO(#) cosh(#) sin(#) tan(#) sqrt(#) floor(#) acos(#) tanh(#) Ex. >3*cos(sqrtD.7)) ans = -1.6869 По умолчанию выводится приблизительно пять десятичных значащих цифр. Ко- Команда format long позволяет вывести приблизительно 15 десятичных значащих цифр. Ex. >format long 3*cos(sqrtD.7)) ans = -1.68686892236893 Операторы присваивания Для присваивания выражениям различных имен используется знак равенства. Ex. >a=3-floor(expB.9)) а= -15 Точка с запятой, расположенная в конце выражения, предполагает вывод символа на экран компьютера (выход). Ex. >b=sin(a); Замечание, b не выведено. >2*Ъ~2 ans= 0.8457
Приложение. Введение в MATLAB 655 Определение функций В MATLAB пользователь может определить функцию, построив М-файл (в кон- конце файла ставится .т) в М-файле Editor/Debugger. Однажды определенная поль- пользователем функция вызывается таким же способом, как и встроенные функции. Ex. Определим функцию fun(a;) = 1 + х — х2/4 в М-файле fun.m. В Editor/Debugger она записывается следующим образом, function y=fun(x) у=1+х-х.~2/4; Коротко поясним использование ".~". Для обозначения переменных можно упо- употреблять различные буквы и для названия функций — различные имена, но следует использовать один и тот же формат. Функцию, однажды записанную как М-файл под именем fun.m, можно вызывать в MATLAB Command Window так же, как любую другую функцию. >cos(funC)) ans= -0.1782 Полезным и эффективным способом вычисления функций является использова- использование команды f eval. Она требует, чтобы функция вызывалась, как строка. Ex. >feval(Jfun\4) ans= 1 Матрицы Все переменные в MATLAB интерпретируются как матрицы или массивы. Мат- Матрицы можно вводить непосредственно: Ex. >A=[1 2 3;4 5 б;7 8 9] А= 12 3 4 5 6 7 8 9 Точка с запятой используется для разделения строк матрицы. Отметим, что эле- элементы матрицы следует разделять одиночным пробелом. Альтернативный способ ввода матрицы — строка за строкой. Ex. >A=[1 2 3 4 5 6 7 8 9] А = 12 3
656 Приложение. Введение в MATLAB 4 5 6 7 8 9 Матрицы можно формировать, используя встроенные функции. Ex. >Z=zerosC,5); Создание нулевой матрицы размера 3x5 >X=onesC,5); Создание матрицы размера 3x5, состоящей из единиц >Y=0:0.5:2 Вывод на экран матрицы размера 1x5 Y= О 0.5000 1.0000 1.5000 2.0000 >cos (Y) Создание матрицы размера 1x5, каждый элемент которой является cos от Y ans= 1.0000 0.8776 0.5403 0.0707 -0.4161 Элементами матрицы можно манипулировать несколькими способами. Ex. >AB,3) Выделение одного элемента матрицы А ans= 6 >А A:2,2:3) Выделение подматрицы А ans= 2 3 5 6 >А( [1 3], [1 3]) Другой способ выделения подматрицы А ans= 1 3 7 9 >АB,2)=tanG.8); Присвоение нового значения элементу матрицы А Дополнительные команды для матриц можно найти, используя справку в диало- диалоговом режиме или документацию к пакету прикладных программ. Операции с матрицами + Сложение Вычитание * Умножение Возведение в степень ' Сопряжение и транспонирование Ex. >B=[1 2;3 4]; >С=В' С равна транспонированной матрице В С=
Приложение. Введение в MATLAB 657 1 3 2 4 >3*(В*С)~3 3(ЯСK ans= 13080 29568 29568 66840 Операции с массивами Одним из наиболее полезных свойств пакета MATLAB является количество операций, которые можно выполнять над отдельными элементами матрицы. Та- Такая операция была продемонстрирована выше, когда элементы матрицы размера 1x5 записывались как cos от элементов вводимой матрицы. Операции сложения, вычитания и умножения матрицы на скаляр всегда осуществляются поэлементно, но это не относится к операциям умножения, деления и возведения матрицы в сте- степень. Данные три операции можно производить поэлементно, как и предыдущие, но с указателем операции: . *, . / и . ~. Важно понять, как и когда именно их можно использовать. Операции над массивами являются решающими для эффективного построения и выполнения пакетом MATLAB программ и графиков. Ex. >A=[1 2;3 4]; >А~2 Произведение матриц А А ans= 7 10 15 22 >А.  Квадрат каждого элемента А ans= 1 4 9 16 >cos (A. /2) Деление каждого элемента А на 2 и вычисление cos от каждого элемента ans= 0.8776 0.5403 0.0707 -0.4161 Графики Пакет MATLAB позволяет строить двух- и трехмерные графики кривых и по- поверхностей. Дополнительные возможности и описание графиков в пакете MAT- MATLAB можно найти, используя справку в диалоговом режиме или документацию к пакету прикладных программ. Команду plot используют для построения графика двухмерных функций. Сле- Следующий пример показывает, как создать программу построения графика функций у = cos(x) и у = cos2(rr) на интервале [0; тг].
658 Приложение. Введение в MATLAB/ Ex. >x=0:0.1:pi; >y=cos(x); >z=cos(x). ~2; »plot(x,y,x,z,Jo>) В первой строке программы задается область с шагом 0,1. В следующих двух строках задаются две функции. Заметим, что первые три строки закачиваются точкой с запятой. Точка с запятой необходима, чтобы запретить вывод матриц х, у и z на экран. В четвертой строке содержится команда plot, которая и строит - график. Первые параметры команды plot, x и у, строят график функции у = = cos(:r). Третий и четвертый параметры, х и z, строят график функции у -: = cos2(#). Последний параметр — 'о3; в нем содержится результат построения графика в каждой точке (#?, Zk)9 где Zf~ = cos2(xic). В третьей строке необходимо использовать оператор ". ~", так как сначала вы- \ числяется значение cos каждого элемента матрицы х. Затем каждый элемент4 матрицы cos (х) с помощью команды . ~ возводится в квадрат. Команда построения графика f plot — это полезная альтернатива команде plot. Форма ее записи — f plot ('name>, [а,b] , n). Она строит график функции name .m по множеству п точек на интервале [а; 6]. По умолчанию число п равно 25. Ex. >f plot Danh>, [-2,2]) График у = tanh(rc) на [-2; 2] Команды plot и plot3 соответственно используются для построения параметри- параметрических кривых в двух- и трехмерном пространстве. Они особенно полезны для создания зрительных образов решений дифференциальных уравнений в двух и трех измерениях. Ех. Построим эллипс c(t) = B cos(t), 3 sin(t)), где 0 < t < 2тг, используя следу- следующие команды. >t=0:0.2:2*pi; >plotB*cos(t),3*sin(t)) Ex. График кривой c(t) = Bcos(?), t2,1/t), 0.1 < t < 4тг, получаем с помощью следующих команд. >t=0.1:0.1:4*pi; >plot3B*cos(t),t.~2,l./t) Графики трехмерных поверхностей получаем, задав подмножество прямоуголь- прямоугольной области определения функции с помощью команды meshgrid, и затем ис- используем команду mesh или surf для построения графика. Эти графики полезны для создания зрительных образов решений дифференциальных уравнений в част- частных производных. Ex. >x=-pi:0.1:pi; >у=х; >[x,y]=meshgrid(x,y);
Приложение. Введение в MATLAB 659 >z=sin(cos(x+y)); >mesh(z) Циклы и условные операторы Операторы отношений == Равно ~= Не равно < Меньше > Больше <= Меньше или равно >= Больше или равно Логические операторы Not (дополнение) & And (справедливо, если справедливы оба операнда) I Or (справеливо, если один из двух или оба операнда справедливы) Булевы величины 1 True О False Операторы for, if и while установлены в MATLAB аналогично их прототипам в других языках программирования. Они имеют следующую основную форму. for (переменная цикла = выражение цикла) Выполняемый оператор end ' if (логическое выражение) Выполняемые операторы else (логическое выражение) Выполняемые операторы end while (выражение условия) выполняемые операторы end В следующем примере показано, как использовать вложенные циклы для по- построения матрицы. Запишем файл как М-файл под именем nest .m. Введя nest в MATLAB Command Window, можно создать матрицу А. Заметим, что если смот- смотреть из верхнего левого угла, то элементы матрицы А — это элементы треугольной матрицы Паскаля.
660 Приложение. Введение в MATLAB Ex. for i=l:5 end for i=2:5 for j=2:5 end end A Команда break используется для выхода из цикла. Ex. for k=l:100 x=sqrt(k); if ((k>10)&(x-floor(x)==0)) break end end k Команду disp можно использовать для вывода на дисплей текста или матрицы. Ex. n=10; к=0; while k<=n х=к/3; disp([x x~2 х~3]) к=к+1; end Программы Эффективным способом создания программ является использование опреде- определенных программистом функций. Их записывают в виде М-файлов. Эти про- программы разрешают пользователю задавать ввод и вывод параметров. Они легко вызываются, как подпрограммы в других программах. Приведенный ниже пример позволяет увидеть результат построения треугольника Паскаля по первому чис- числу. Введем следующую функцию в MATLAB Editor/Debugger и запишем ее как М-файл под именем pas с. т. Ex. function P=pasc(n,m) УоВход - n -- количество строк У, - m -- первое число '/Выход - Р — треугольник Паскаля
Приложение. Введение в MATLAB 661 for j=l:n end for k=2:n for j=2:n P(k,j)=rem(P(k,j-1),m)+rem(P(k-l,j),m); end end Теперь в MATLAB Command Window введем P=pascE,3), чтобы увидеть пер- первые пять строк треугольника Паскаля по модулю 3, или попытаемся построить P=pasc( 175,3); (обратите внимание на точку с запятой). Введем spy(P) (стро- (строится разреженная матрица для больших значений п). Заключение С нашей точки зрения, читатель сумеет создать и модифицировать программы, основанные на приведенных в этой книге алгоритмах. Дополнительную инфор- информацию о командах и применении MATLAB для индивидуальной работы можно найти, используя справку в диалоговом режиме или документацию к пакету при- прикладных программ.
Ссылки на рекомендуемую литературу <ЭД-алгоритм [3, 9, 10, 19, 29, 40, 41, 74, 85, 92, 97, 104, 128, 152, 153, 169, 175, 192, 203] Алгоритм отношения приращений [3, 29, 62, 78, 79, 86, 112, 152, 200] Алгоритм Ремеза [9, 19, 56, 88, 128, 149, 152, 153] Арифметика с плавающей точкой [8, 9, 35, 40, 41, 51, 57, 62, 90, 101, 103, 128, 129, 142, 153, 181, 184, 208] Быстрое преобразование Фурье [25, 29, 33, 40, 51, 62, 79, 96, 98, 112, 136, 141, 145, 149, 150, 152, 153, 155, 169, 210] Вычисление и компьютеры [13, 18, 36, 55, ПО, 111, 120, 122, 134, 162, 176, 179] Динамические системы [2, 17, 48, 164] Дифференциальные уравнения [7, 31, 33, 39, 42, 99, 104, 136, 138, 152, 171, 173] Жесткие дифференциальные уравнения [9, 29, 40, 57, 60, 98, 117, 152, 153, 160, 173] Интерполяция Эрмита [9, 29, 40, 41, 79, 81, 90, 92, 128, 153, 191, 193, 208] Кратные интегралы [29, 62, 67, 85, 96, 112, 117, 152, 153] Линейное программирование (симплекс-метод) [19, 27, 35, 37, 41, 44, 50, 53, 79, 83, 94, 104, 115, 135, 152-154, 165, 169] Линейные системы [61, 66, 74, 82, 152, 159] Математическое моделирование [15, 17, 22, 23, 32, 39, 42, 64, 72, 83, 95, 98, 102, 104, 107, 113, 115, 116, 131, 135, 136, 190] 662
ССЫЛКИ НА РЕКОМЕНДУЕМУЮ ЛИТЕРАТУРУ 663 Матрицы [9, 19, 29, 40, 41, 57, 62, 74, 94, 96, 98, 101, 117, 128, 145, 152, 153, 160, 192] Метод Гаусса-Жордана [29, 44, 51, 62, 79, 85, 90, 117, 152] Метод Монте-Карло [35, 41, 57, 76, 83, 87, 98, 112, 115, 135, 152, 154] Метод наименьших квадратов [39, 92, 109, 112, 152] Метод последовательной сверхрелаксации [10, 29, 40, 41, 49, 137, 139, 152, 160, 175, 199, 207] Методы релаксации [19, 29, 40, 41, 62, 90, 139, 152, 199, 207] Метод секущих (сходимость) [9, 35, 40, 41, 153, 160] Модификации метода Ньютона [29, 96, 97, 139, 152, 153] Научно-технические расчеты [5, 71, 98, 103, 150-152, 158-160] Нормы векторов и матриц [9, 19, 29, 40, 49, 62, 90, 94, 96, 101, 117, 128, 145, 153, 192] Обратное интерполирование [9, 19, 29, 35, 41, 62, 81, 128, 153, 166, 181, 191] Округление ошибок [4, 9, 29, 35, 41, 51, 76, 79, 81, 90, 94, 101, 117, 128, 146, 153, 160, 181, 184, 186, 204] Ортогональные полиномы [9, 19, 29, 34, 40, 41, 44, 76, 81, 90, 96, 126, 128, 143, 145, 149, 152, 153, 169] Плохо обусловленные матрицы [9, 19, 29, 40, 41, 47, 49, 62, 94, 101, 128, 145, 153, 192, 197] Полиномы Лежандра [9, 29, 40, 41, 75, 152, 153] Последовательное интерполирование [29, 78, 81, 90, 126, 128, 129, 181, 184, 208] Последовательное улучшение (коррекция ошибок) [8, 9, 19, 29, 40, 41, 49, 51, 58, 72, 90, 94, 96, 97, 117, 137, 152, 153, 160] Потеря значимости (точности) [3, 8, 35, 40, 79, 142] Приближение функций [34, 44, 114, 149, 157, 161, 182] Применение численных методов в технике [6, 17, 20, 31, 33, 39, 54, 59, 71, 88, 93, 104, 131, 136, 141, 163, 174, 183, 190, 195] Проверка длины шага для дифференциальных уравнений [29, 40, 60, 75, 101, 117, 160] Программирование [12, 103, 119, 150-152] Программное обеспечение для численного анализа [32, 52, 82, 84, 95, 97, 98, 124, 125, 150-152, 158-160, 178] Разложение Холецкого [9, 29, 40, 41, 51, 90, 97, 152, 153, 160] Распространение ошибки [4, 9, 40, 41, 49, 51, 78, 79, 81, 133, 142, 145, 153, 204]
664 ССЫЛКИ НА РЕКОМЕНДУЕМУЮ ЛИТЕРАТУРУ Системы уравнений [29,35,41,128,160,192] Сплайны [35, 96, 101, 149, 160] Степенные ряды [3, 9, 29, 41, 51, 62, 76, 85, 88, 117, 153, 184] Стратегия выбора главных элементов [9, 29, 35, 40, 41, 58, 79, 96, 101, 117, 128, 145, 146, 152, 153, 160] Устойчивость дифференциальных уравнений [3, 8, 9,29,40, 60, 76, 78, 79, 96,101, 128, 146, 152, 153, 160] Формула Ньютона-Котса [9, 29, 62, 76, 78, 81, 90, 94, 97, 105, 117, 126, 128, 152-154, 160, 175, 193, 208] Формулы правой разности [9, 29, 40, 41, 51, 76, 78, 81, 85, 90, 94, 105, 117, 128, 143, 145, 153, 181, 184] Числа в шестнадцатеричной системе счисления [8, 35, 51, 101, 142] Экстраполяция [19, 29, 35, 40, 41, 78, 117, 153]
Список литературы 1. Aberth, Oliver A988). Precise Numerical Analysis, Wm. C. Brown, Dubuque, la. 2. Aburdene, Maurice F. A988). Computer Simulation of Dynamic Systems, Wm. C. Brown, Dubuque, la. 3. Acton, Forman S. A970). Numerical Methods That Work, Harper & Row, New York. 4. Adby, P. R., and M. A. H. Dempster A974). Introduction to Optimization Methods, Halsted Press, New York. 5. Aho, Alfred V., John E. Hopcroft, and Jeffrey D. Ullman A974). The Design and Analysis of Computer Algorithms, Addison-Wesley, Reading, Mass. 6. Al-Khafaji, Amir Wadi, and John R. Tooley A986). Numerical Methods in Engineering Practice, Holt, Rinehart and Winston, New York. 7. Ascher, Uri M., Robert M. M. Mattheij, and Robert D. Russell A988). Numer- Numerical Solution of Boundary Value Problems for Ordinary Differential Equations, Prentice Hall, Englewood Cliffs, N.J. 8. Atkinson, Kendall E. A985). Elementary Numerical Analysis, John Wiley, New York. 9. Atkinson, Kendall E. A988). An Introduction to Numerical Analysis, 2nd ed., John Wiley, New York. 10. Atkinson, Laurence V., and P. J. Harley A983). An Introduction to Numerical Methods with Pascal, Addison-Wesley, Reading, Mass. 665
666 СПИСОК ЛИТЕРАТУРУ 11. Bailey, Paul В., Lawrence F. Shampine, and Paul E. Waltman A968). Nonlinear Two Point Boundary Value Problems, Academic Press, New York. 12. Barnard, David Т., and Robert G. Crawford A982). Pascal Programming Prob- Problems and Applications, Reston, Reston, Va. 13. Beckman, Charlene E., and Ted Sundstrom A990). Graphing Calculator Labo- Laboratory Manual for Calculus, Addison-Wesley, Reading, Mass. 14. Bender, Carl M., and Steven A. Orszag A978). Advanced Mathematical Methods for Scientists and Engineers, McGraw-Hill, New York. 15. Bender, Edward A. A978). An Introduction to Mathematical Modeling, John Wiley, New York. 16. Bennett, William Ralph A976). Introduction to Computer Applications for Nonscience Students, Prentice Hall, Englewood Cliffs, N.J. 17. Bennett, William Rajph A976). Scientific and Engineering Problem-Solving with the Computer, Prentice Hall, Englewood Cliffs, N.J. 18. Bitter, Gary G. A983). Microcomputer Applications for Calculus, Prindle, Weber & Schmidt, Boston. 19. Blum, E. K. A972). Numerical Analysis and Computation: Theory and Practice, Addison-Wesley, Reading, Mass. 20. Borse, G. J. A985). FORTRAN 77 and Numerical Methods for Engineers, Prindle, Weber & Schmidt, Boston. 21. Brainerd, Walter S., and Lawrence H. Landweber A974). Theory of Computation, John Wiley, New York. 22. Brams, Steven J., William F. Lucas, and Philip D. Straffin, eds. A983). Political and Related Models, Springer-Verlag, New York. 23. Braun, Martin, Courtney S. Coleman, and Donald A. Drew, eds. A983). Differ- Differential Equation Models, Springer-Verlag, New York. 24. Brent, Richard P. A973). Algorithms for Minimization without Derivatives, Prentice Hall, Englewood Cliffs, N.J. 25. Brigham, E. Oran A988). The Fast Fourier Transform and Its Applications, Prentice Hall, Englewood Cliffs, N.J. 26. Buck, R. Creighton A978). Advanced Calculus, 3rd ed., McGraw-Hill, New York. 27. Bunday, Brian D. A984). Basic Linear Programming, Edward Arnold, Baltimore Md. 28. Bunday, Brian D. A984). Basic Optimisation Methods, Edward Arnold, Balti- Baltimore, Md. 29. Burden, Richard L., and J. Douglas Faires A985). Numerical Analysis, 3rd ed., Prindle, Weber & Schmidt, Boston.
СПИСОК ЛИТЕРАТУРЫ 667 30. Burnett, David S. A987). Finite Element Analysis: From Concepts to Applica- Applications, Addison-Wesley, Reading, Mass. 31. Carnahan, Brice, H. A. Luther, and James O. Wilkes A969). Applied Numerical Methods, John Wiley, New York. 32. Carroll, John M. A987). Simulation Using Personal Computers, Prentice Hall, Englewood Cliffs, N.J. 33. Chapra, Steven C. A985). Numerical Methods for Engineers: With Personal Computer Applications, McGraw-Hill, New York. 34. Cheney, Ward A966). Introduction to Approximation Theory, McGraw-Hill, New York. 35. Cheney, Ward, and David Kincaid A985). Numerical Mathematics and Comput- Computing, 2nd ed. Brooks/Cole, Monterey, Calif. 36. Christensen, Mark J. A981). Computing for Calculus, Academic Press, New York. 37. Chvatal, Vasek A980). Linear Programming, W. H. Freeman, New York. 38. Coddington, Earl A., and Norman Levinson A955). Theory of Ordinary Diffe- Differential Equations, McGraw-Hill, New York. 39. Constantinides, Alkis A987). Applied Numerical Methods with Personal Compu- Computers, McGraw-Hill, New York. 40. Conte, S. D., and Carl de Boor A980). Elementary Numerical Analysis: An Algorithmic Approach, McGraw-Hill, New York. 41. Dahlquist, Germund, and Ake Bjorck A974). Numerical Methods, Prentice Hall, Englewood Cliffs, N.J. 42. Danby, J. M. A. A985). Computing Applications to'Differential Equations: Modelling in the Physical and Social Sciences, Reston, Reston, Va. 43. Daniels, Richard W. A978). An Introduction to Numerical Methods and Optimi- Optimization Techniques, North-Holland, New York. 44. Davis, Philip J. A963). Interpolation and Approximation, Blaisdell, New York. 45. Davis, Philip J., and Philip Rabinowitz A984). Methods of Numerical Integra- Integration, 2nd ed., Academic Press, New York. 46. deBoor, Carl A978). A Practical Guide to Splines, Springer-Verlag, New York. 47. Deif, Assem S. A986). Sensitivity Analysis in Linear Systems, Springer-Verlag, New York. 48. Devaney, Robert L. A990). Chaos, Fractals, and Dynamics: Computer Experi- Experiments in Mathematics, Addison-Wesley, Reading, Mass. 49. Dew, P. M., and K. R. James A983). Introduction to Numerical Computation in Pascal, Springer-Verlag, New York.
668 СПИСОК ЛИТЕРАТУР^ 50. Dixon, L. С. W. A972). Nonlinear Optimisation, Crane, Russak & Co., New York. 51. Dodes, Irving Allen A978). Numerical Analysis for Computer Science, North- Holland, New York. 52. Dongarra, J. J. A979). UNPACK: Users' Guide, SIAM, Philadelphia. 53. Dorn, William S., and Daniel D. McCracken A976). Introductory Finite Mathe- Mathematics with Computing, John Wiley, New York. 54. Dorn, William S., and Daniel D. McCracken A972). Numerical Methods with Fortran IV Case Studies, John Wiley, New York. 55. Edwards, С. Н. A986). Calculus and the Personal Computer, Prentice Hall, Englewood Cliffs, N.J. 56. Fike, С. Т. A968). Computer Evaluation of Mathematical Functions, Prentice Hall, Englewood Cliffs, N.J. 57. Forsythe, George E., Michael A. Malcolm, and Cleve B. Moler A977). Com- Computer Methods for Mathematical Computations, Prentice Hall, Englewood Cliffs, N.J. (Форсайт Дж)Машинные методы математических вычислений. — М: Мир, 1980. 58. Forsythe, George E., and Cleve В. Moler A967). Computer Solution of Linear Algebraic Systems, Prentice Hall, Englewood Cliffs, N.J. 59. Fox, L., and D. F. Mayers A968). Computing Methods for Scientists and Engineers, Oxford University Press, New York. 60. Gear, C. William A971). Numerical Initial Value Problems in Ordinary Differen- Differential Equations, Prentice Hall, Englewood Cliffs, N.J. 61. George, Alan, and Joseph W. H. Liu A981). Computer Solution of Large Sparse Positive Definite Systems, Prentice Hall, Englewood Cliffs, N.J. (Джордж А., Лю Дж. Численное решение больших разреженных систем уравнений. — М.: Мир, 1984.) 62. Gerald, Curtis F., and Patrick О. Wheatley A984). Applied Numerical Analysis, 3rd ed., Addison-Wesley, Reading, Mass. 63. Gill, Philip E., Walter Murray, and Margaret H. Wright A981). Practical Optimization, Academic Press, New York. 64. Giordano, Frank R., and Maurice D. Weir A985). A First Course in Mathematical Modeling, Brooks/Cole, Monterey, Calif. 65. Goldstine, Herman H. A977). A History of Numerical Analysis from the 16th through the 19th Century, Springer-Verlag, New York. 66. Golub, Gene H., and Charles F. VanLoan A989). Matrix Computations, The John Hopkins University Press, Baltimore, Md.
СПИСОК ЛИТЕРАТУРЫ 669 67. Gordon, Sheldon Р. A986). Simpson's Rule for Double Integrals, UMAPJournal, Vol. 7, No. 4, pp. 319-328. 68. Gourlay, A. R., and G. A. Watson A973). Computational Methods for Matrix Eigenproblems, John Wiley, New York. 69. Greenspan, Donald, and Vincenzo Casulli A988). Numerical Analysis for Ap- Applied Mathematics, Science and Engineering, Addison-Wesley, Reading, Mass. 70. Grove, Wendell E. A966). Brief Numerical Methods, Prentice Hall, Englewood Cliffs, N.J. 71. Guggenheimer, H. A987). BASIC Mathematical Programs for Engineers and Scientists, Petrocelli Books, West Hempstead, N.Y. 72. Haberman, Richard A977). Mathematical Models: Mechanical Vibrations, Pop- Population Dynamics, and Traffic Flow, Prentice Hall, Englewood Cliffs, N.J. 73. Hageman, Louis A., and David M. Young A981). Applied Iterative Methods, Academic Press, New York. 74. Hager, William W. A988). Applied Numerical Linear Algebra, Prentice Hall, Englewood Cliffs, N.J. 75. Hamming, Richard W. A971). Introduction to Applied Numerical Analysis, McGraw-Hill, New York. 76. Hamming, Richard W. A973). Numerical Methods for Scientists and Engineers, 2nd ed., McGraw-Hill, New York. 77. Henrici, Peter A974). Applied and Computational Complex Analysis, Vol. 1, John Wiley, New York. 78. Henrici, Peter A964). Elements ofNumerical Analysis/John Wiley, New York. 79. Henrici, Peter A982). Essentials of Numerical Analysis with Pocket Calculator Demonstrations, John Wiley, New York. 80. Hildebrand, Francis B. A976). Advanced Calculus for Applications, 2nd ed., Prentice Hall, Englewood Cliffs, N.J. 81. Hildebrand, Francis B. A974). Introduction to Numerical Analysis, 2nd ed., McGraw-Hill, New York. 82. Hill, David R., and Cleve B. Moler A989). Experiments in Computational Matrix Algebra, Random House, New York. 83. Hillier, Frederick S., and Gerald Lieberman A974). Operations Research, 2nd ed., Holden-Day, San Francisco. 84. Hopkins, Tim, and Chris Philips A988). Numerical Methods in Practice Using the NAG Library, Addison-Wesley, Reading, Mass. 85. Hornbeck, Robert W. A975). Numerical Methods, Quantum, New York.
670 СПИСОК ЛИТЕРАТУРЫ 86. Householder, Alston S. A970). The Numerical Treatment of a Single Nonlinear Equation, McGraw-Hill, New York. 87. Householder, Alston S. A953). Principles of Numerical Analysis, McGraw-Hill, New York. 88. Hultquist, Paul F. A988). Numerical Methods for Engineers and Computer Scientists, Benjamin/Cummings, Menlo Park, Calif. 89. Hundhausen, Joan R., and Robert A. Walsh A985). Unconstrained Optimization, UMAP Journal, Vol. 6, No. 4, pp. 57-90. 90. Isaacson, Eugene, and Herbert Bishop Keller A966). Analysis of Numerical Methods, John Wiley, New York. 91. Jacobs, D., ed. A977). The State of the Art in Numerical Analysis, Academic Press, New York. 92. Jacques, Ian, and Colin Judd A987). Numerical Analysis, Chapman and Hall, New York. 93. James, M. L., G. M. Smith, and J. C. Wolford A985). Applied Numerical Methods for Digital Computation, 3rd ed., Harper & Row, New York. 94. Jensen, Jens A., and John H. Rowland A975). Methods of Computation: The Linear Space Approach to Numerical Analysis, Scott, Foresman, Glenview, 111. 95. Jepsen, Charles H., and Eugene Herman A988). The Matrix Algebra Calculator: Linear Algebra Problems for Computer Solution, Brooks/Cole, Pacific Grove, Calif. 96. Johnson, Lee W., and R. Dean Riess A982). Numerical Analysis, 2nd ed., Addison-Wesley, Reading, Mass. 97. Johnston, R. L. A982). Numerical Methods: A Software Approach, John Wiley, New York. 98. Kahaner, David, Cleve Moler, and Stephen Nash A989). Numerical Methods and Software, Prentice Hall, Englewood Cliffs, N. J. 99. Keller, Herbert Bishop A976). Numerical Solution of Two Point Boundary Value Problems, SIAM, Philadelphia. 100. Kincaid, David, and Ward Cheney A991). Numerical Analysis Mathematics of Scientific Computing, Brooks/Cole, Pacific Grove, Calif. 101. King, J. Thomas A984). Introduction to Numerical Computation, McGraw-Hill, New York. 102. Klamkin, Murray S. A987). Mathematical Modeling: Classroom Notes in Ap- Applied Mathematics, SIAM, Philadelphia. 103. Knuth, Donald E. A981). The Art of Computer Programming, Vol. 2, Seminu- merical Algorithms, 2nd ed., Addison-Wesley, Reading, Mass.
СПИСОК ЛИТЕРАТУРЫ 671 104. Kreyszig, Erwin A983). Advanced Engineering Mathematics, 5 th ed., John Wiley, New York. 105. Kunz, Kaiser S. A957). Numerical Analysis, McGraw-Hill, New York. 106. Lambert, J. D. A973). Computational Methods in Ordinary Differential Equa- Equations, John Wiley, New York. 107. Lancaster, Peter A976). Mathematics: Models of the Real World, Prentice Hall, Englewood Cliffs, NJ. 108. Lapidus, L., and J. H. Seinfeld A971). Numerical Solution of Ordinary Differ- Differential Equations, Academic Press, New York. 109. Lawson, C. L., and R. J. Hanson A974). Solving Least-Squares Problems, Prentice Hall, Englewood Cliffs, N.J. (Лоусон Ч., Хенсон Р. Численное решение задач метода наименьших квадратов. — М.: Наука, 1986.) 110. Lax, Peter, Samuel Burstein, and Anneli Lax A976). Calculus with Applications and Computing, Springer-Verlag, New York. 111. Leinbach, L. Carl A991). Calculus Laboratories Using DERIVE, Wadsworth, Belmont, Calif. 112. Lindfield, G. R., and J. E. T. Penny A989). Microcomputers in Numerical Analysis, Halsted Press, New York. 113. Lucas, William R, Fred S. Roberts, and Robert M. Thrall, eds. A983). Discrete and System Models, Springer-Verlag, New York. 114. Luke, Yudell L. A975). Mathematical Functions and Their Applications, Aca- Academic Press, New York. 115. Maki, Daniel P., and Maynard Thompson A973). Mdthematical Models and Applications, Prentice Hall, Englewood Cliffs, N.J. 116. Marcus-Roberts, Helen, and Maynard Thompson, eds. A983). Life Science Models, Springer-Verlag, New York. 117. Maron, Melvin J., and Robert J. Lopez A991). Numerical Analysis: A Practical Approach, 3rd ed., Wadsworth, Belmont, Calif. 118. Mathews, John H. A988). Complex Variables for Mathematics and Engineering, Wm. C. Brown, Dubuque, la. 119. McCalla, Thomas Richard A967). Introduction to Numerical Methods and FORTRAN Programming, John Wiley, New York. 120. McCarty, George A975). Calculator Calculus, Page-Ficklin Publications, Palo Alto, Calif. 121. McCormick, John M., and Mario G. Salvadori A964). Numerical Methods in FORTRAN, Prentice Hall, Englewood Cliffs, N.J.
i 672 СПИСОК ЛИТЕРАТУРА 122. McNeary, Samuel S. A973). Introduction to Computational Methods for Students of Calculus, Prentice Hall, Englewood Cliffs, N.J. 123. Miel, George J. A981). Calculator Demonstrations of Numerical. Stability, UMAP Journal, Vol. 2, No. 2, pp. 3-7. 124. Miller, Webb A984). The Engineering of Numerical Software, Prentice Hall, Englewood Cliffs, N.J. 125. Miller, Webb A987). A Software Tools Sampler, Prentice Hall, Englewood Cliffs, N.J. 126. Milne, William Edmund A949). Numerical Calculus, Princeton University Press, Princeton, N.J. 127. Moore, Ramon E. A966). Interval Analysis, Prentice Hall, Englewood Cliffs, N.J. 128. Morris, John L. A983). Computational Methods in Elementary Numerical Anal- Analysis, John Wiley, New York. 129. Moursund, David G., and Charles S. Duris A967). Elementary Theory and Application of Numerical Analysis, McGraw-Hill, New York. 130. Murphy, J., D. Ridout, and Brigid McShane A988). Numerical Analysis, Algo- Algorithms and Computation, Halsted Press, New York. 131. Noble, Ben A967). Applications of Undergraduate Mathematics in Engineering, Macmillan, New York. 132. Noble, Ben, and James W. Daniel A977). Applied Linear Algebra, 2nd ed, Prentice Hall, Englewood Cliffs, N.J. 133. Nonweiler, T. R. F. A984). Computational Mathematics: An Introduction to Numerical Approximation, Halsted Press, New York. 134. Oldknow, Adrian, and Derek Smith A983). Learning Mathematics with Micros, Halsted Press, New York. 135. Olinick, Michael A978). An Introduction to Mathematical Models in the Social and Life Sciences, Addison-Wesley, Reading, Mass. 136. O'Neil, Peter V. A991). Advanced Engineering Mathematics, 3rd ed., Wads- worth, Belmont, Calif. 137. Ortega, James M. A972). Numerical Analysis, Academic Press, New York. 138. Ortega, James M., and William G. Poole A981). An Introduction to Numerical Methods for Differential Equations, Pitman, Marshfield, Mass. 139. Ortega, James M., and W. C. Rheinboldt A970). Iterative Solution of Nonlinear Equations in Several Variables, Academic Press, New York. 140. Parlett, Beresford N. A980). The Symmetric Eigenvalue Problem, Prentice Hall, Englewood Cliffs, N.J. (Партлетт Б. Симметричная проблема собственных значений. — М.: Мир, 1983.)
СПИСОК ЛИТЕРАТУРЫ 673 141. Pearson, Carl E. A986). Numerical Methods in Engineering and Science, Van Nostrand Reinhold, New York. 142. Pennington, Ralph H. A970). Introductory Computer Methods and Numerical Analysis, 2nd ed., Macmillan, New York. 143. Pettofrezzo, Anthony J. A984). Introductory Numerical Analysis, Orange Pub- Publishers, Winter Park, Fla. 144. Phillips, G. ML, and P. J. Taylor A974). Theory and Applications of Numerical Analysis, Academic Press, New York. 145. Pizer, Stephen M. A975). Numerical Computing and Mathematical Analysis, Science Research Associates, Chicago. 146. Pizer, Stephen M., with Victor L. Wallace A983). To Compute Numerically: Concepts and Strategies, Little, Brown, Boston. 147. Pokorny, Cornel K., and Curtis F. Gerald A989). Computer Graphics: The Principles behind the Art and Science, Franklin, Beedle & Associates, Irvine, Calif. 148. Potts, J. Frank, and J. Walter Oler A989). Finite Element Applications with Microcomputers, Prentice Hall, Englewood Cliffs, N.J. 149. Powell, Michael James David A981). Approximation Theory and Methods, Cambridge University Press, New York. 150. Press, William H., Brian P. Flannery, Saul A. Teukolsky, and William T. Vetterling A988). Numerical Recipes in C: The Art of Scientific Computing, Cambridge University Press, New York. 151. Press, William H., Brian P. Flannery, Saul A. Teukolsky, and William T. Vet- Vetterling A989). Numerical Recipes in Pascal: The Art of Scientific Computing, Cambridge University Press, New York. 152. Press, William H., Brian P. Flannery, Saul A. Teukolsky, and William T. Vet- Vetterling A986). Numerical Recipes: The Art of Scientific Computing, Cambridge University Press, New York. 153. Ralston, Anthony, and Philip Rabinowitz A978). A First Course in Numerical Analysis, 2nd ed., McGraw-Hill, New York. 154. Ralston, Anthony, and Herbert S. Wilf A960). Mathematical Methods for Digital Computers, John Wiley, New York. 155. Ramirez, Robert W. A985). The FFT, Fundamentals and Concepts, Prentice Hall, Englewood Cliffs, N.J. 156. Rheinboldt, Werner С A981). Algorithms for Finding Zeros of Functions, The UMAP Journal, Vol. 2, No. 1, pp. 43-72. 157. Rice, John R. A969). The Approximation of Functions, Addison- Wesley, Read- Reading, Mass.
674 СПИСОК ЛИТЕРАТУРЫ 158. Rice, John R. A980). Mathematical Aspects of Scientific Software, Springer- Verlag, New York. 159. Rice, John R. A981). Matrix Computations and Mathematical Software, McGraw-Hill, New York. 160. Rice, John Rischard A983). Numerical Methods, Software and Analysis: IMSL Reference Edition, McGraw-Hill, New York. 161. Rivlin, Theodore J. A969). An Introduction to the Approximation of Functions, Blaisdell, Waltham, Mass. 162. Rosser, J. Barkley, and Carl de Boor A979). Pocket Calculator Supplement for Calculus, Addison-Wesley, Reading, Mass. 163. Salvadori, Mario G., and Melvin L. Baron A961). Numerical Methods in Engineering, 2nd ed., Prentice Hall, Englewood Cliffs, N.J. 164. Sandeflir, James Т.* A990). Discrete Dynamical Systems: Theory and Applica- Applications, Oxford University Press, New York. 165. Scalzo, Frank, and Rowland Hughes A977). A Computer Approach to Introduc- Introductory College Mathematics, Mason/Charter, New York. 166. Scarborough, James B. A966). Numerical Mathematical Analysis, The Johns Hopkins University Press, Baltimore, Md. 167. Scheid, Francis A968). Theory and Problems of Numerical Analysis, McGraw- Hill, New York. 168. Schultz, M. H. A966). Spline Analysis, Prentice Hall, Englewood Cliffs, N.J. 169. Schwarz, Hans Rudolf, and J. Waldvogel A989). Numerical Analysis: A Com- prehensive Introduction, John Wiley, New York. 170. Sctaton, R. E. A984). Basic Numerical Methods: An Introduction to Numerical Mathematics on a Microcomputer, Edward Arnold, Baltimore, Md. 171. Sewell,, Granville A988). The Numerical Solution to Ordinary and Partial Differential Equations, Harcourt Brace Jovanovich, New York. 172. Shampine, Lawrence F., and Richard C. Allen A973). Numerical Computing: An Introduction^ Saunders, Philadelphia. 173. Shampine, Lawrence R, and M. K. Gordon A975). Computer Solution of Ordinary Differential Equations: The Initial Value Problem, W. H. Freeman, San Francisco. 174. Shoup, Terry E. A979). A Practical Guide to Computer Methods for Engineers, Prentice Hall, Englewood Cliffs, N.J. 175. Shoup, Terry E. A983). Numerical Methods for the Personal Computer, Prentice Hall, Englewood Cliffs, N.J.
СПИСОК ЛИТЕРАТУРЫ 675 176. Sicks, Jon L. A985). Investigating Secondary Mathematics with Computers, Prentice Hall, Englewood Cliffs, N.J. 177. Simmons, George F. A972). Differential Equations: With Applications and Historical Notes, McGraw-Hill, New York. 178. Smith, В. Т., J. M. Boyle, J. Dongarra, B. Garbow, Y. Ikebe, V. C. Klema, and С. В. Moler A976). Matrix Eigensystem Routines: EISPACK Guide, 2nd ed., Vol. 6 of Lecture Notes in Computer Science, Springer-Verlag, New York. 179. Smith, David A. A976). INTERFACE: Calculus and the Computer, Houghton Mifflin, Boston. 180. Smith, G. D. A978). The Numerical Solution of Partial Differential Equations, 2nd ed., Oxford University Press, New York. 181. Smith, W. Allen A986). Elementary Numerical Analysis, Prentice Hall, Engle- Englewood Cliffs, N.J. 182. Snyder, Martin Avery A966). Chebyshev Methods in Numerical Approximation, Prentice Hall, Englewood Cliffs, N.J. 183. Stanton, Ralph G. A961). Numerical Methods for Science and Engineering, Prentice Hall, Englewood Cliffs, N.J. 184. Stark, Peter A. A970). Introduction to Numerical Methods, Macmillan, Toronto, Ontario. 185. Strang, G., and G. Fix A973). An Analysis of the Finite Element Method, Prentice Hall, Englewood Cliffs, N.J. (Стренг Г., Фикс Дж. Теория методов конечных элементов. — М.: Мир, 1977.) 186. Strecker, George E. A982). Round Numbers: An Introduction to Numerical Expression, UMAP Journal, Vol. 3, No. 4, pp. 425-454,, 187. Stroud, A. H. A971). Approximate Calculation of Multiple Integrals, Prentice Hall, Englewood Cliffs, N.J. 188. Stroud, A. H., and Don Secrest A966). Gaussian Quadrature Formulas, Prentice Hall, Englewood Cliffs, N.J. 189. Szidarovszky, Ferenec, and Sidney Yakowitz A978). Principles and Procedures of Numerical Analysis, Plenum Press, New York. 190. Thompson, William J. A984). Computing in Applied Science, John Wiley, New York. 191. Todd, John A979). Basic Numerical Mathematics, Vol. 1: Numerical Analysis, Academic Press, New York. 192. Todd, John A977). Basic Numerical Mathematics, Vol. 2: Numerical Algebra. Academic Press, New York. 193. Tompkins, Charles В., and Walter L. Wilson A969). Elementary Numerical Analysis, Prentice Hall, Englewood Cliffs, N.J.
676 СПИСОК ЛИТЕРАТУРЫ 194. Traub, J. F. A964). Iterative Methods for the Solution of Equations, Prentice Hall, Englewood Cliffs, N J. 195. Tuma, Jan J. A989). Handbook of Numerical Calculations in Engineering, McGraw-Hill, New York. 196. Turner, Peter R. A989). Guide to Numerical Analysis, CRC Press, Boca Raton, Fla. 197. Vandergraft, James S. A983). Introduction to Numerical Computations, Aca- Academic Press, New York. 198. Vanlwaarden, John L. A985). Ordinary Differential Equations with Numerical Techniques, Harcourt Brace Jovanovich, New York. 199. Varga, Richard S. A962). Matrix Iterative Analysis, Prentice Hall, Englewood Cliffs, NJ. 200. Wachspress, Eugene L. A966). Iterative Solution of Elliptic Systems, Prentice Hall, Englewood Cliffs, NJ. 201. Wendroff, Burton A966). Theoretical Numerical Analysis, Academic Press, New York. 202. Wilkes, Maurice Vincent A966). A Short Introduction to Numerical Analysis, Cambridge University Press, New York. 203. Wilkinson, J. H. A965). The Algebraic Eigenvalue Problem, Oxford University Press, New York. 204. Wilkinson, J. H. A963). Rounding Errors in Algebraic Processes, Prentice Hall, Englewood Cliffs, N J. 205. Wilkinson, J. H., and С Reinsch A971). Handbook for Automatic Computation, Vols. 1 and 2, Springer-Verlag, New York. 206. Yakowitz, Sidney, and Ferenec Szidarovszky A989). An Introduction to Numer- Numerical Computations, 2nd ed., Macmillan, New York. 207. Young, David M. A971). Iterative Solution of Large Linear Systems, Academic Press, New York. 208. Young, David M., and Robert Todd Gregory A972). A Survey of Numerical Mathematics, Vols. 1 and 2, Addison-Wesley, Reading, Mass. 209. Zienkiewicz, O. C, and R. L. Taylor A989). The Finite Element Method, 4th ed., McGraw-Hill, New York. 210. Zohar, Shalhav A979). Faster Fourier Transformation: The Algorithm of S. Winograd, Jet Propulsion Laboratory, Pasadena, Calif.
СПИСОК ЛИТЕРАТУРЫ 677 Литература, добавленная переводчиком 211. Бахвалов Н. С. Численные методы, — М.: Наука, 1975. 212. Бахвалов Н. С, Жидков Н. П., Кобельков Г. М. Численные методы. — М.: Наука, 1987. 213. Бейкер Дж., Грейвс-Моррис П. Апроксимация Паде. — М.: Мир, 1986. 214. Березин И. С, Жидков Н. П. Методы вычислений, т. 1. — М.: Наука, 1966. 215. Березин И. С, Жидков Н. П. Методы вычислений, т. 2. — М.: Физматгиз, 1966. 216. Васильев Ф. П. Методы решения экстремальных задач. — М.: Наука, 1981. 217. Воеводин В. В., Кузнецов Ю. А. Матрицы и вычисления. — М: Наука, 1984. 218. Волков Е. А. Численные методы. — М.: Наука, 1982. 219. Дробышевич В. И., Дымников В. П., Ривин Г. С. Задачи по вычислительной математике. — М.: Наука, 1980. 220. Завьялов Ю. С, Квасов Б. И., Мирошниченко В. Л. Методы сплайн-функций. -М.: Наука, 1980. 221. Икрамов X. Д. Численное решение матричных уравнений. — М.: Наука, 1984. 222. Карманов В. Г. Математическое программирование. — М.: Наука, 1986. 223. Крылов В. И., Бобков В. В., Монастырский П. И. Начала теории вычис- вычислительных методов. Дифференциальные уравнения. — Минск: Наука и техника, 1982. 224. Крылов В. И., Бобков В. В., Монастырский П. И. Начала теории вычис- вычислительных методов. Линейная алгебра и нелинейные уравнения. — Минск: Наука и техника, 1982. 225. Крылов В. И., Бобков В. В., Монастырский П. И/ Начала теории вычис- вычислительных методов. Интегральные уравнения, некорректные задачи и улучшение сходимости. — Минск: Наука и техника, 1984. 226. Крылов В. И., Бобков В. В., Монастырский П. И. Начала теории вычисли- вычислительных методов. Интерполирование и интегрирование. — Минск: Наука и техника, 1983. 227. Крылов В. И., Бобков В. В., Монастырский П. И. Вычислительные мето- методы. -М.: Наука, 1976. 228. Крылов В. И., Бобков В. В., Монастырский П. И. Вычислительные мето- методы. - М.: Наука, 1977. 229. Марчук Г. И. Методы вычислительной математики. — М.: Наука, 1980. 230. Никольский С. М. Квадратурные формулы. — М.: Наука, 1979. 231. Стечкин С. Б., Субботин Ю. Н. Сплайны в вычислительной математике. — М.: Наука, 1976.
Ответы к упражнениям Раздел 1.1. Некоторые сведения из математического анализа 1. (a) L = 2, {бп} = {з^т}' limn~>ooen = О 3. (а) с = 1 - у/2 4. (a) Mi = -5/4, М2 = 5 5. (а) с = О 6. (а) с = 1 7. с = 4/3 9. (a) #2cos(:e) 10. (а) с = ±уГз/3 11. (а) 2 (Ь) 1 15. 13тг/3. Примените теорему о среднем значении для интегралов 16, Пусть п корней Р(х) — хо, х\, ..., #n-i- Убедитесь, что выполняются пред- предположения обобщенной теоремы Ролля. Следовательно, существует такое () Раздел 1.2. Двоичные числа 1. (а) Ответ компьютера: не 0, потому что 0,1 не является точной двоичной дробью. (Ь) 0 (точно) 678
Ответы к избранным упражнениям 679 2. (а) 21 (с) 254 3. (а) 0,84375 (с) 0,6640625 4. (а) 1,4140625 5. (а) уД - 1,4140625 = 0,000151062... 6. (а) 101 Ида (с) ЮШЮЮда 7. (а) 0,0Шдва (с) 0,10111дВа 8. (a) 0,00011 дВа (с) 0,001два 9. (а) 0,006250000... 11. При с=|иг=^ получаем S = -r^V = ?• 13. (a) i » 0,1011дю х 2- = ОДОПдва х 2  5-01101 :: 2-2 - °'01101^ x 2~* ?-0,1101^x2 - одоООИдва х 2-о ^ И 0Д001два X 2~° = 0Д001два X 2° X а х 2 0Д01Шдва х 2 14. (а) 10 = 101^ (с) 421 = 120121^ 15. (а) \ = 0Дтри (Ь) \ = 0,Ттри 16. (а) 10 = 20ПЯть (с) 721 = 10341пять 17. (Ь) \ = 0,2пять Раздел 1.3. Анализ ошибок 1. (а) х = 2,71828182, х = 2,7182, (х-х) = 0,00008182, (х -х)/х = 0,00003010, 4 значащие цифры. 2+ + + р - р = 0,0000000178, (р -р)/р = 0,0000000699 3. (а) Р1 +р2 = 1,414 + 0,09125 = 1,505, рхр2 = A,414)@,09125) = 0,1290 _ _ 4. Ошибка включает потерю точности. 0,70711385222-0,70710678119 _ 0,00000707103 (а) оЩог " 0,000001 5. (а) 1п((яг + 2)/х) или 1пA + 1/х) (с) cosBa:)
680 Ответы к избранным упражнениям 6. (а) РB,72) = B,72K - 3B,72J + 3B,72) - 1 = 20,12 - 22,19 + 8,16 - 1 = = -2,07 + 8,16 - 1 = 6,09 - 1 = 5,09 QB,72) = (B,72 - 3J,72 + 3J,72 - 1 = ((-0,28J,72 + 3J,72 - 1 = = (-0,7616 + 3J,72 - 1 = B,238J,72 - 1 = 6,087 - 1 = = 5,087 ДB,72) = B,72 - IK = A,72K = 5,088 7. (а) 0,498 (Ь) 0,499 9. (а) —Ц- + соз(Л) = 2 + h + ^ 1 — /i I O{h4) + Раздел 2.1. Использование итерации для решения уравнения х = д(х) 1. (а) д е С[0; 1], д отображает [0; 1] в [3/4; 1] С [0; 1] и \д'(х)\ = | - х/2\ = — х/2 <1/2 < 1 на [0;1]. Следовательно, выполняются предположения из теоремы 2.2 и д имеет единственную неподвижную точку на [0; 1]. 2. (а) рB) = - (Ь) ро = 1,9 Pl = 1,795 Р2 = 1,5689875 рз = 1,04508911 8-2 = д{4) = -4 + 16 - 8 = 4 Ео = 0,1 До = 0,05 Ei = 0,205 Rx = 0,1025 Е2 = 0,4310125 R2 = 0,21550625 Е3 = 0,95491089 Л3 = 0,477455444 (е) Последовательность в п. (Ь) не сходится к Р — 2. Последовательность в п. (с) сходится к Р = 4. 4. Р = 2, д'B) = 5, итерация не будет сходиться к Р = 2. 5. Р = 2птг, где п — произвольное целое число, д'{Р) = 1. В теореме 2.3 не содержится информация относительно сходимости. 9. (а) дC) = 0,5C) + 1,5 = 3 (с) Доказываем методом математической индукции. Если п = 1, то |Р—pi| = = |Р — Pol/21 согласно п. (Ь). Предположения индукции: предполагаем, что \Р—Рк\ = 1-Р— Po|/2fc. Покажем, что утверждение справедливо для п = к+1: Ю. (а) \P-Pk+1\ = \p-p *|/2 = (\P-Po\/2k)/2 = |P-po|/2fc+1. Imi-wl Pk Y~ pi 2 (согласно п. (b)) (предположения индукции)
Ответы к избранным упражнениям 681 Раздел 2.2. Методы интервалов локализации корня 1. /о = @,11 + 0,12)/2 = 0,115 -4@,115) = 254403 д = @,11 + 0,115)/2 = 0,1125 Л@,1125) = 246072 12 = @,1125 + 0,115)/2 = 0,11375 Л@,11375) = 250198 3. Существует много вариантов выбора интервалов [а; 6], на которых f(a) и f(b) имеют противоположные знаки. Следующий ответ основан на одном из таких выборов. (а) /A) < 0 и /B) > 0, тогда существует корень на интервале [1;2], также /(-1) < 0 и /(—2) > 0, тогда существует корень на интервале [—2; —1]. (с) /C) < 0 и /D) > 0, корень существует на интервале [3; 4]. 4. со = -1,8300782, сг = -1,8409252, с2 = -1,8413854, с3 = -1,8414048 6. с0 = 3,6979549, а = 3,6935108, с2 = 3,6934424, с3 = 3,6934414 11. Найдите такое N, чтобы N+1 < 5 х 10~9. 14. Метод деления отрезка пополам никогда не будет сходиться (предполагаем, что сп ф 2) к х = 2. Раздел 2.3. Начальное приближение и критерий сходимости 1. Корень находится около х — —0,7. Следует использовать интервал [—1;0]. 3. Корень находится около х = 1. Следует использовать интервал [—2; 2]. 5. Один корень находится около х = 1,4. Следует использовать интервал [1;2]. Второй корень находится около х = 3. Следует использовать интервал [2; 4]. Раздел 2.4. Метод Ньютона-Рафсона и метод секущих (Ь) ро = -1,5, рг = 0,125, р2 = 2,6458, pz = 1,1651 3. (а) рк = д{рк-\) = \рк-\ + 5 (Ь) ро = 2,1, pi = 2,075, Р2 = 2,0561, р3 = 2,0421, р4 = 2,0316 5. (а) рк = д{Рк-\) = Р*-1 + cos(pfc^!) 7. (а) д(рк-1) =Pfc_i/(P*-i - !) (b) ро = 0,20 (с) ро = 20,0 Р1 = -0,05 Pl = 21,05263158 р2 = -0,002380953 р2 = 22,10250034 рз = -0,000005655 рз = 23,14988809 р4 = -0,000000000 р4 = 24,19503505 lim pk = 0,0 lim pk = oo П—>OO П-400
682 Ответы к избранным упражнениям 8. р0 = 2,6, р! = 2,5, р2 = 2,41935484, р3 = 2,41436464 14. Нет, так как f'{x) имеет разрыв в корне р = 0. Можете также попытаться вычислить член с д(рь~\) = — 2рк-и и увидите, что последовательность расходится. 22.(aM(*)=s-^fl-(*2-aJ ж(ж2 + За) -1 _ 15s + x3 [X)~ 5 + 3z2 pi = 2,2352941176, p2 = 2,2360679775, p3 = 2,2360679775 2 + Ax + 2x2 + x3 pi = -2,0130081301,р2 = -2,0000007211,рз = -2,0000000000 Раздел 2.5. Процесс Эйткена и методы Стеффенсена и Мюллера 2. (а) А2рп = Д(Дрп) = Д(Рп+1 - Рп) = (Рп+2 - Pn+i) - (Pn+i - Pn) = = pn+2 - 2pn+1 + р„ = 2(n + 2J + 1 - 2B(n + IJ + 1)+ + 2n2 + 1 = 4 n 0 1 2 3 4 5 Pn 0,5 0,23529412 0,06225681 0,01562119 0,00390619 0,00097656 qn Эйткена -0,26437542 -0,00158492 -0,00002390 -0,00000037 7. п 0 1 2 3 4 5 Pn 2,5 2,91547595 2,98587943 2,99764565 2,99960758 2,99993460 qn Эйткена 3,00024351 3,00000667 3,00000018 3,00000001
Ответы к избранным упражнениям 9. Решение уравнения cos (я;) — 1 = 0. 683 п 0 1 2 3 4 5 6 рп Стеффенсена 0,5 0,24465808 0,12171517 0,00755300 0,00377648 0,00188824 0,00000003 11. Сумма бесконечного ряда равна S = 99. п 1 2 3 4 5 6 Sn 0,99 1,9701 2,940399 3,90099501 4,85198506 5,79346521 Тп 98,9999988 99,0000017 98,9999988 98,9999992 13. Сумма бесконечного ряда равна S = 4. 15. Метод Мюллера для f(x) = я3 — х — 2. 71 0 1 2 3 4 5 Рп 1,0 1,2 1,4 1,52495614 1,52135609 1,52137971 Яр») -2,0 -1,472 -0,656 0,02131598 -0,00014040 -0,00000001 Раздел 3.1. Введение в теорию векторов и матриц l.(i) (a) A;4) (b) E;-12) (с) (9;-12) (d) 5 (е) (-26; 72) (f) -38 (g) 2л/1465 2.0 = arccos(-16/21) « 2.437045 радиан 3. (а) Предположим, что X,Y ф 0. X - Y = 0 тогда и только тогда, когда cos@) = 0, тогда и только тогда, когда 0 = Bп + 1)|, тогда и только тогда, когда X и Y ортогональны.
684 Ответы к избранным упражнениям 6. (С) dji = \Зг [j-ji + i 3 =» i-ij+j 1. АВ = 3. (а) (АВ)С = А(ВС) = Раздел 3.2. Свойства векторов и матриц 41 21 ВА-\~1Ъ 101 13 -24J' [-12 -20J ' Г 2 -51 [-88 -56J 5. (а) 33 (с) Определитель не существует, так как матрица не квадратная. 8. {АВ){В-1А~1) = А{ВВ~1)А-1 = {А1)А~1 = АА~1 = I. Аналогично {В'1 A~l){AB) = I. Поэтому (АВ)~1 = В~1А~1. 10. (a) MN (b) M(N - 1) 1 -1 21 14. XX' = [6], X'X = -1 1 -2 2-2 4 Раздел З.З. Верхняя треугольная система линейных уравнений 1. xi = 2, х2 = -2, х3 = 1, ж4 = 3 и det A = 120 5. х\ = 3, xi = 2, xz = 1, х\ = — 1 и det A = —24 Раздел 3.4. Метод исключения Гаусса и выбор главного элемента 1. xi = —3, Х2 = 2, хз = 1 5. у = 5 - Зж + 2ж2 10. a?i = 1, Ж2 = 3, Жз = 2, Ж4 = —2 15. (а) Решение для матрицы Гильберта А xi = 25, х2 = -300, ж3 = 1050, ж4 = -1400, х5 = 630 (Ь) Решение для других матриц А xi = 28,02304, х2 = -348,5887, ж3 = 1239,781 х4 = -1666,785, хъ = 753,5564 Раздел 3.5. Разложение на треугольные матрицы 1. (a) Y' = [-4 12 3], X' = [-3 2 l] (b) У = [20 39 9], X' = [5 7 3] 3. (а) -5 1 3 2 0 1 -1" 3 6 1 -0.2 -0.6 5 0 1 .5 0 0 1_ -5 2 -1 0 0.4 2.8 0 0 -10
Ответы к избранным упражнениям 685 1 2 5 3 0 1 1 -1 -1 0 0 1 ,75 0 0 0 1 1 0 0 0 1 -3 0 0 0 5 -4 0 4 -8 -10 -7,5 5. (a) Y' = [8 -6 12 2], X' = [3 -1 1 2] (b) Y' = [28 6 12 1], X' = [3 1 2 1] 6. Треугольное преобразование матрицы А = LU имеет следующий вид. LU = Раздел 3.6. Итеративные методы для линейных систем 1. (а) Итерация Якоби Рг = C,75; 1,8) Р2 = D,2; 1,05) Р3 = D,0125; 0,96) Итерация сходится к D; 1). 3. (а) Итерация Якоби (Ь) Итерация Гаусса-Зейделя Pi = C,75; 1,05) Р2 = D,0125; 0,9975) Р3 = C,999375; 1,000125) Итерация сходится к D; 1). (Ь) Итерация Гаусса-Зейделя Р2 = Ра = (-13;-40) Р3 = (-121; Итерация расходится, удаляясь от решения Р = @,5; 0,5). Итерация расходится, удаляясь от решения Р = @,5; 0,5). 5. (а) Итерация Якоби Pi = B; 1,375; 0,75) Р2 = B,125; 0,96875; 0,90625) Р3 = B,0125; 0,95703125; 1,0390625) Итерация сходится к Р = B; 1; 1). (Ь) Итерация Гаусса-Зейделя Рх = B; 0,875; 1,03125) Р2 = A,96875; 1,01171875; 0,989257813) Р3 = B,00449219; 0,99753418; 1,0017395) Итерация сходится к точке Р = B; 1; 1). 9. A5): \\Х\\г = ]CfcLi \xk\ = 0 тогда и только тогда, когда 1, ..., N тогда и только тогда, когда X = 0. A6): НсХН! = ELi \схк\ = ZLi \Фк\ = \с\ Eti 1**1 = И H*Hi = 0 для к = 0,
686 Ответы к избранным упражнениям Раздел 3.7. Итерация для нелинейных систем 1. (а) х = 0, у = 0 (с) х = 0, у = 2птг 2. (а) а; = 4, у = -2 (с) х = 0, у = Bп + 1)тг/2 .7A,1,2,0) = -0,1 0,5 -0,05 0,0 к 0 1 2 00 Итерация неподвижной точки Рк 1,1 1,12 1,1165508 1,1165151 2,0 1,9975 1,9963984 1,9966032 Итерация Зейделя Рк 1,1 1,12 1,1160016 1,1165151 Як 2,0 1,9964 1,9966327 1,9966032 7. О = ж2 - у - 0,2, 0 = у2 - х - 0,3 Рк [1,192437] [1,2218491 Решение линейной системы: J(Pk) dP = —F(Pk) [ 2,4 -1,0] [-0,0075630] [ 0,04] [-1,0 2,4J [ 0,0218487J " [-0,06] [2,384874 -1,0] [-0,0001278] [0,0000572] [ -1,0 2,443697J [-0,0002476] ~ [0,0004774J Pk+dP [1,192437] [l,221849j [1,192309] [l,22160lJ (а) Следовательно, (pi;qi) = A,192437; 1,221849) и (Р25«г) = AД92309; 1,221601). Рк f-0,21 [-0,2904762] [-0,1238095] Решение линейной системы: J(Pk) dP = —F(Pk) [-0,4 -1,0] [-0,0904762] [ 0,04] [-1,0 -0,4j [ 0,0761905J [-0,06j [-0,5809524 -1,0] [0,0044128] [0,0081859] [ -1,0 -0,2476190J [o,OO56223j ~~ [o,OO58O5OJ Pk+dP [-0,2904762] [-0,1238095] [-0,2860634] [-0,1181872] (b) Следовательно, (pi;gi) = (-0,2904762;-0,1238095) и (p2;q2) = (-0,2860634;-0,1181872). 8. (b) Значение Якобиана в точках, соответствующих решению, равно |JA;1)| = 0 и |J(—1;—1)| = 0. Метод Ньютона зависит от умения ре- решать линейную систему, когда матрица имеет вид J(pn;qn) и {pn;qn) близ- близко к решению. В этом примере система уравнений плохо обусловлена, что создает трудности для нахождения точного решения. На самом деле для некоторых значений, близких к решению, имеем J(^o;yo) = 0, например J(l,0001; 1,0001) =0.
Ответы к избранным упражнениям 687 12. (а) Указание: как и для обычных производных, получаем тг-(с/(х,у)) = = с—/(я, у). F(X) определено как F(X) = [fi(xu...,xn)---fm(xu...,xn)]'. Тогда, умножая на скаляр, получаем cF(X) = [cfi(xu ... ,жп)' • • cfm(xu ...,я„)]'. J(cF(X)) = [jik]mxn, ГДе jifc = Q^(cfi(xi, ¦ ¦ .,Хп)) = Cj?j-fi{xu • • -,Хп). Поэтому, согласно определению умножения на скаляр, получаем J(cF(X)) — = cJ(F(X)). Раздел 4.1. Ряды Тейлора и вычисление функций 1. (а) Ръ{х) =х- х3/3\ + х5/5\ Р7(х) = х- ж3/3! + хь/5\ - хт/7\ Р9(х) =х- ж3/3! + хь/Ы - х7/7\ + х9/9\ (b) \Е9{х)\ = |sin(c)a;10/10!| < A)AI0/Ю! = 0,0000002755 (c) Ръ{х) = 2-х/2A + (х- тг/4) -(х- тг/4J/2 -(х- тг/4K/6+ + (х - тг/4L/24 + {х- тг/4M/120) 3. В точке хо = 0 производные от функции f(x) не определены. Однако произ- производные определены в точке жо = 1. 5. Р3{х) = 1 + Ох - х2/2 + Ох3 = 1 - х2/2 8. (а) /B) = 2, /'B) = }, /"B) = -&, /C)B) = ^ Р3(х) = 2 + (ж - 2)/4 - (ж - 2J/64 + (ж - 2K/512 (b) Р3A) = 1,732421875. Сравните с З1/2 = 1,732050808. (c) /D>(ж) = -15B + ж)-?/2/16, минимум |/^>(а?)| на интервале 1 < ж < 'Л находится в точке х = 1 и \f^\x)\ < |/D)A)| < 3-7/2A5/16) « 0,020040. Следовательно, \Ег{х)\ < @'°2°^6)AL = 0,00083529 13. (d) P3@,5) = 0,41666667 14. (d) P2@,5) = 1,21875000 Рб@,5) = 0,40468750 Pl@,5) = 1,22607422 Р9@,5) = 0,40553230 Рб@,5) = 1,22660828 1пA,5) = 0,40546511 (l^I/2 = 1,22474487
688 Ответы к избранным упражнениям Раздел 4.2. Введение в интерполяцию 1. (а) Используем х = 4 и получим Ьз = —0,02, &2 = 0,02, Ъ\ = —0,12, Ьо = = 1,18. Отсюда РD) = 1,18. (b) Используем х = 4 и получим cfe :=: —0,06, d\ = —0,04, do = -0,36. Отсюда Р'D) = -0,36. (c) Используем ж = 4 и получим ч = —0,005, гз = 0,01333333, %2 = = -0,04666667, п = 1,47333333, г0 = 5,89333333. Отсюда/D) = 5,89333333. Аналогично используем х = 1 и получим /A) = 1,58833333. Jj P(x) dx = /D) - /A) = 5,89333333 - 1,58833333 = 4,305 (d) Используем х = 5,5 и получим &з = -0,02, Ь2 = -0,01, 6i = -0,255, 60 = 0,2575. Отсюда РE,5) = 0,2575. Раздел 4.3. Приближение Лагранжа 1. (a) = -О.Цх)(х - 1) + 0.5(ж)(ж + 1) = Ож2 + х + 0 = х Лх)(х-1)(х-2) (х + 1)(х)(х-2) (Ж + 1)(х)(х -1) (d) Pi(x) = 1(я - 2)/A - 2) + 8(ж - 1)/B - 1) = 7ж - 6 5. (с) /D)(с) = 120(с - 1) для всех с, поэтому Е3(ж) = 5{х + 1){х)(х - 3) х х (ж-4)(с-1) 10. |/<2Чс)| < | - sin(l)| = 0,84147098 = М2 (a) h?M2/8 = /i2@,84147098)/8 < 5 х 10 12. (a) z = 3 - 2х + 4у Раздел 4.4. Полиномы Ньютона Р2(х) = 4 - (ж - 1) + 0,4(х - 1)(ж - 3) = Р2{х) + 0,01(я? - 1)(х - 3)(ж - 4) (а:) = Рг{х) - 0,002(ж - 1)(ж - 3)(ж - 4)(ж - 4,5) Pi B,5) = 2,5;Р2B,5) = 2,2;Р3B,5) = 2,21125; Р4 B,2) = 2,21575
Ответы к избранным упражнениям 689 5. /(я) = 3B)* Р4(ж) = 1,5 + 1,5(з + 1) + 0,75(ж + 1)(х) + 0,25(ж + 1)(х){х - 1)+ + 0,0625(а; + 1)(яг)(аг - 1)(з - 2) Pi A,5) = 5,25;Р2A,5) = 8,0625; Р3 A,5) = 8,53125; Р4 A,5) = 8,47265625 7. /(ж) = 3,6/ж Р4(х) = 3,6 - 1,8(а: - 1) + 0,6(а; - 1)(з - 2) - 0,15(з - 1)(з - 2)(з - 3)+ + 0,03(ж - 1)(з - 2){х - 3)(з - 4) Pi B,5) = 0,9;Р2B,5) = 1,35;Р3B,5) = 1,40625; Р4 B,5) = 1,423125 Раздел 4.5. Полиномы Чебышева (произвольные) 9. (а) 1п(з + 2) « 0,69549038 + 0,49905042а; - 0,14334605а;2 + 0,04909073а;3 (Ь) |/D)(а;)|/B3D!)) < | - 6|/B3D!)) = 0,03125000 11. (a) cos(z) « 1 - 0,46952087ж2 (b) |/C)(x)|/B2C!)) < |sin(l)|/B2C!)) = 0,03506129 13, Грань ошибки для полинома Тейлора равна = 0,0„„02087. 8! 8! Грань ошибки для минимаксного приближения равна Раздел 4.6. Приближение Паде 1. 1 = ро, 1 + qi = рь 2 + 91 = °' 91 = ~2'Р1== 2 ) 1 2 2 1 3. 1 = Ро, з + 2<И11Ъ = Рь уд + 9i/3 = 0, gi = --, рх = - — 5. 1 = ро, 1 + 91 = Ри g + ^?1 + 92 = Р2- Сначала решим систему 1 1 TV Тоща 91 = --, д2 = 12' ^1 = 2'Р2 = 12
690 1 7. (a) l=Po,- 2 l=zpl, — I 315 ^ 15 ^ 3 Сначала решим систему < ] 62 17ц 2g2 12835 315 15 Тогда qi = -i, q2 = 1, Pl = --, p2 = gL. Ответы к избранным упражнениям 92 = Р2- Раздел 5.1. Линия, построенная методом наименьших квадратов 1. (а) ЮА + 0В= 7 0А + ЪВ = 13 у = 0,70ж + 2,60, E2{f) и 0,2449 2. (а) 40Л + 0В = 58 0Л + ЪВ = 31,2 у = 1,45ж + 6,24, E2(f) « 0,8958 5 5 3. (с) Y1 хкУк/Y,xl = 86'9/55 = Х>58 fc=l A:=l у = 1,58а:, ЕЬ(/) «0,1720 11. (а) у = 1,6866ж2;.Е2(/) и 1,3 у = 0,5902ж3; Е2 (/) « 0,29. Это лучшая подгонка. Раздел 5.2. Построение кривой по точкам 1. (а) 164Л + 20С = 186 20В = -34 20Л + 4С= 26 у = 0,875z2 - 1,70а; + 2,125 = 7/8ж2 - 17/10яг + 17/8 3. (а) \ЪА + ЪВ = -0,8647 ЪА + ЪВ = 4,2196 у = 3,8665e-°-5084x;?i(/) «0,10 6. (а) (Ь) Использование линеаризации 1000 1 + 4,3018е-1»0802* 5000 1 + 8,9991e-°'8U38t Минимизация МНК 1000 Ц-^Ше-1'0456' 5000 1 + 8,9987е-°'81157<
Ответы к избранным упражнениям 691 18. (a) UA + 15В + 8С = 82 15А + 195 + 9G = 93 8А+ 9? + 5С = 49 А = 2,4; В = 1,2; С = 3,8. Получаем z = 2,4ж + 1,2у + 3,8. Раздел 5.3. Интерполирование сплайнами 4. Ло = 1 с?о = -2 /г! = 3 di = 1 «1 = 18 h2 = 3 d2 = -2/3 гг2 = -10 Г Щ-mi + m2 = 21 314 234 Решив систему < 21 , получаем mi = ^~ и Ш2 = "Ш- & + *2"т2 = —15 Тогда то = — f§f и тз = §§§• Кубический сплайн имеет следующий вид. ( + 3)! 77Q 117 79 5. h0 = 1 d0 = -2 /гх = 3 di = 1 tii = 18 h2 = 3 d2 = ~2/3 u2 = -10 _ 18mi + 3m2 = 18 o9 Решив систему < , получаем mi = M и m2 = — 7 \3 + 12 10 * 29 Пусть то = 0 = тз. Кубический сплайн имеет следующий вид. + Z)+2 _3<a;<-2 5. Ло ==: 1 do == "~ 2 /ц = 3 di = 1 tii = 18 Л2 = 3 d2 = -2/3 и2 = -10 Г Ц™>\ + |т2 = 18 263 5 Решив систему < * 6 , получаем mi = тШ и т2 = -§. 4 0m + 18m2 = 10 126 9
692 Ответы к избранным упражнениям Тогда гао = W и газ = — Ш. Кубический сплайн имеет следующий вид. Раздел 5.4. Ряды Фурье и тригонометрические полиномы 1. /(х) = 1 (sin(x) + 5i?M + Ё2& 3. /(*) = f + TSLi (Ц^) (i) E=i ( 5. /(x) = J (sin(x) - ^ + ^ - *Sfp. + • • •) i2./(.) = 6 + fEr=i(b^i)C0S(ii Раздел 6.1. Приближение производной 1. f(x) = sin(a;) h од 0,01 0,001 Приближение f'(x), формула (З) 0,695546112 0,696695100 0,696706600 Ошибка приближения 0,001160597 0,000011609 0,000000109 Грань ошибки усечения 0,001274737 0,000012747 0,000000127 3. f(x) = sin(:r) од 0,01 Приближение /'(х), формула A0) 0,696704390 0,696706710 Ошибка приближения 0,000002320 -0,000000001 Грань ошибки усечения 0,000002322 0,000000000 5. f(x) = х3 (а) /'B) » 12,0025000 (Ь) /'B) и 12,0000000 (с) Для п. (a): O(h2) = -@,05J/C)(с)/6 = -0,0025000. Для п. (b): O(hA) = -@,05L/C)(с)/30 = -0,0000000 7- f(x; у) =ху/(х + у) (a) fx(x;y) = (у/(х + у)J, /хB;3) = 0,36 h 0,1 0,01 0,001 Приближение к /*B;3) 0,360144060 0,360001400 0,360000000 Ошибка приближения -0,000144060 -0,000001400 0,000000000
Ответы к избранным упражнениям 693 h од 0,01 0,001 Приближение к ЛB;3) 0,160064030 0,160000600 0,160000000 Ошибка приближения -0,000064030 -0,000000600 0,000000000 10. (а) Формула C) дает значения /'A,2) « -13,5840 и ?7A,2) « 11,3024. Фор- Формула A0) дает значения /'A,2) « -13,6824 и # A,2) « 11,2975. (Ь) Используя для вычислений правила дифференцирования, получим /'A,2) и -13,6793 и ?A,2) и 11,2976. 12. h од 0,01 0,001 Приближение формула A7) -0,93050 -0,93200 -0,93000 Ошибка приближения -0,00154 -0,00004 -0,00204 Формула A9), грань общей ошибки |ошибка округления| 4- |ошибка усечения| 0,00005 + 0,00161 = 0,00166 0,00050 + 0,00002 = 0,00052 0,00500 + 0,00000 = 0,00500 15. f(x) = cos(rr:), f^(x) = — sin(a:) Используем грань \f^(x)\ < sin(l,4) «0,98545. h 0,1 0,01 0,001 Приближение формула B2) -0,93206 -0,93208 -0,92917 Ошибка приближения 0,00002 0,00004 -0,00287 Формула B4), грань общей ошибки | ошибка округления | -Ь |ошибка усечения| 0,00008 + 0,00000 = 0,00008 0,00075 + 0,00000 = 0,00075 0,00750 + 0,00000 = 0,00750 Раздел 6.2. Формулы численного дифференцирования 1. /(*) = Ы(х) (а) /"E) и -0,040001600 (Ь) /"E) » -0,040007900 (с) /"E) и -0,039999833 (d) /"E) = -0,04000000 = Более точный ответ — в п. (Ь). 3. f(x) = 1п(аг) (а) /"E) » 0,0000 (Ь) /"E) » -0,0400 (с) /"E) » 0,0133 (d) /"E) = -0,0400 = -1/52 Более точный ответ — в п. (Ь). -1/52
694 Ответы к избранным упражнениям 5. (a) f(x)=x2;f"'A)» 2,0000 (b) f(x) = a;4;/"(l)« 12,0002 9. (a) X 0,0 ОД 0,2 0,3 0,141345 0,041515 -0,058275 -0,158025 Раздел 7.1. Введение в квадратуру 1. (a) f(x) = sinGnr) (с) f(x) = 2. (a) f(x) = sinGr#) (b) f(x) = Формула трапеций 0,0 Формула Симпсона 0,666667 Формула Симпсона | 0,649519 Формула Буля 0,636165 Формула трапеций 0,420735 Формула Симпсона 0,573336 Формула Симпсона | 0,583143 Формула Буля 0,593376 Составная формула трапеций 0,603553 Составная формула Симпсона 0,638071 Формула Буля 0,636165 Составная формула трапеций 0,577889 Составная формула Симпсона 0,592124 Формула Буля 0,593376 Раздел 7.2. Составная формула трапеций и Симпсона 1. (a) F(x) = arctan(x); F(l) - F(-l) = тг/2 « 1,57079632679 (i): M = 10; h = 0,2; Т(/;Л) = 1,56746305691; Er(f;h) = 0,00333326989 (ii): M = 5; h = 0,2; S(f; h) = 1,57079538809; Es(f] h) = 0,00000093870 (c) F(x) = 2yft;FD)-F(±) = 3 (i): M = 10; Л = 0,375; Т(/;Л) = 3,04191993765; Er(f\h) = -0,04191993765 (ii): M = 5; h = 0,375; 5(/; Л) = 3,00762208163; E5(/; Л) = -0,00762208163 2. (a) Jj ч/l + 9x4 drr = 1,54786565469019 (i): M = 10, T(/; 1/10) = 1,55260945 (ii): M == 5, 5(/; 1/10) = 1,54786419
Ответы к избранным упражнениям 695 3. (а) 2тг Jj sVl + 9z4 dx = 3,5631218520124 (i): M = 10, Г(/; 1/10) = 3,64244664 (ii): M = 5, 5(/; 1/10) = 3,56372816 8. (а) Используем грань \f^(x)\ = | — cos(#)| < | cos@)| = 1 и получим ((тг/3 — 0)h2)/12 < 5 х 10""9. Затем подставляем h = тг/(ЗМ) и получаем тг3/162 х 108 <М2. После решения получим 4374,89 <М, поэтому М должно быть целым числом М = 4375 и h = 0,000239359. 9. (а) Используем грань |/D)(а;)| = |cos(a;)| < |cos@)| = 1 и получим ((тг/3 — 0)Л4)/180 < 5 х 10~9. Затем подставим h = тг/FМ) и получим тг5/34992 х 107 <М4, поэтому М должно быть целым числом, М = 18, и h = 0,029088821. 10. м 1 2 4 8 16 h 0,2 од 0,05 0,025 0,0125 Г(/,Л) 0,1990008 0,1995004 0,1996252 0,1996564 0,1996642 ET{f,h) = O{h2) 0,0006660 0,0001664 0,0000416 0,0000104 0,0000026 Раздел 7.3. Рекуррентные формулы и интегрирование по Ромбергу 1. (а) (с) J 0 1 2 fl(J,0) -0,00171772 0,02377300 0,60402717 дои) 0,03226990 0,79744521 ДО/, 2) 0,84845691 J 0 1 2 ДG,0) 2,88 2,10564024 1,78167637 дои) 1,84752031 1,67368841 ДО/, 2) 1,66209962 10. (ii) Для Jq y/xdx интегрирование по Ромбергу сходится медленно, потому что производные высокого порядка подынтегральной функции f(x) = у/х не ограничены в окрестности точки х = 0. Раздел 7.5. Интегрирование по Гауссу-Лежандру (произвольный выбор) 1. Jo 6*5 dt = 64 (b) G(f] 2) = 58,6666667 3. Jj sin(t)/t dt w 0,9460831 (b) G(/; 2) = 0,9460411
696 Ответы к избранным упражнениям 6. (a) N = 4 (b) JV = 6 8. Если четвертая производная не слишком быстро изменяется, то /D)Ы 135 90 Ошибка усечения для формулы Гаусса-Лежандра меньше, чем ошибка усе- усечения для формулы Симпсона. Раздел 8.1. Минимизация функции 3. (a) f{x) = Ах3 - 8х2 - Их + 5; f'(x) = 12ж2 - 16ж - 11; локальный минимум — в точке х = Ц-. (d) f(x) = ех /х2\ fix) = ех(х — 2)/хг; локальный минимум — в точке х = 2. 7. (а) /(ж;у) = ж3+у3-Зх-Зу + 5 fx(x] у) = Зх2 ~ 3, fy(x] у) = Зу2 - 3 Критические точки: A; 1), A; —1), (—1; 1), (—1; —1). Локальный минимум — в точке A; 1). (с) /(ж, у) = я2у + яу2 - Зху fx(x, у) = 2ху + у2 - Зу, fy(x, у) = х2 + 2ху - Зх Критические точки: @; 0), @; 3), C; 0), A; 1). Локальный минимум — в точке A; 1). 11. "Отразив" треугольник относительно стороны BG, получим, что все крайние точки векторов W, М и R лежат на одном и том же отрезке прямой. Поэтому, согласно определению скалярного умножения и сложения векторов, получаем R - W = 2(М - W) или R = 2М - W. Раздел 9.1. Введение в теорию дифференциальных уравнений 1. (b) L = 1 3. (b) L = 3 5. (b) L = 60 10. (с) Нет, так как fy(t\ у) = \у~2^ разрывна, когда t = 0 и limy->ofy(t;y) = оо. 13. y(t) = ?3 - cos(t) + 3 15. y(t)=fQe-*2/2ds 17. (b) y(t) = y0e-0'000120968i (с) 2808 лет (d) 6,9237 с
Ответы к избранным упражнениям Раздел 9.2. Метод Эйлера 1. (а) 697 tk 0,0 од 0,2 0,3 0,4 Ук (Л = 0,1) 1 0,90000 0,81100 0,73390 0,66951 Ук (h = 0,2) 1 0,80000 0,64800 3. (а) tk 0,0 0,1 0,2 0,3 0,4 Ук (h = 0,1) 1 1,00000 0,99000 0,97020 0,94109 Ук (h = 0,2) 1 1,00000 0,96000 6. Рк+1 =Рк + @,02Рк - 0,00004Pfc2I0 для к = 1, 2,..., 8 T-l Год 1900 1910 1920 1930 1940 1950 1960 1970 1980 tk 0,0 10,0 20,0 30,0 40,0 50,0 60,0 70,0 80,0 Реальная популяция Btk,P(tk) 76,1 92,4 106,5 123,1 132,6 152,3 180,7 204,9 226,5 Рк Приближение Эйлера с округлением на каждом шаге 76,1 89,0 103,6 120,0 138,2 158,2 179,8 202,8 226,9 Приближение Эйлера с большим количеством цифр 76,1 89,0035 103,6356 120,0666 138,3135 158,3239 179,9621 203,0000 227,1164 9. Нет. Для любого М методом Эйлера получаем 0 < yi < У2 < Математическим решением будет y(t) = tan(?) и уC) < 0. < Ум- Раздел 9.3. Метод Гюна 1. (а) tk 0 0,1 0,2 0,3 0,4 Ук (h = 0,1) 1 0,90550 0,82193 0,75014 0,69093 Ук (h = 0,2) 1 0,82400 0,69488
698 Ответы к избранным упражнениям 3. (а) tk 0 од 0,2 0,3 0,4 Ук (h = 0,1) 1 0,99500 0,98107 0,95596 0,92308 Ук (h = 0,2) 1 0,98000 0,92277 7. Улучшение Ричардсона для решения yf = (t — у)/2 на интервале [0;3] с уF) = 1. Элементы таблицы — это приближения к уC). к 1 1/2 1/4 1/8 1/16 1/32 1/64 Ук 1,732422 1,682121 1,672269 1,670076 1,669558 1,669432 1,669401 Dу* - 2/2fc)/3 1,665354 1,668985 1,669345 1,669385 1,669390 1,669391 8. у1 = f(t;y) = 1,5у1/3, fy^t) = 0,5у~2/3. Д@;0) не существует. Задача Коши некорректно поставлена на любом прямоугольнике, содержащем точку @;0). Раздел 9.4. Метод рядов Тейлора 1. (а) tk 0 0,1 0,2 0,3 0,4 Ук (h = 0,1) 1 0,90516 0,82127 0,74918 0,68968 Ук (h = 0,2) 1 0,82127 0,68968 3. (а) tk 0 од 0,2 0,3 0,4 Ук (h = 0,1) 1 0,99501 0,98020 0,96000 0,92312 Ук (h = 0,2) 1 0,98020 0,92313
Ответы к избранным упражнениям 699 6. Улучшение Ричардсона для решения Тейлора у1 = (t — у) 12 на интервале [0; 3] с у@) = 1. Элементы таблицы — это приближения к уC). 1 1/2 1/4 1/8 Ук 1,6701860 1,6694308 1,6693928 1,6693906 1,6693805 1,6693903 1,6693905 Раздел 9.5. Методы Рунге-Кутта 1. (а) 3. (а) tk О 0,1 0,2 0,3 0,4 1 0,90516 0,82127 0,74918 0,68968 = (h = 0,2) 1 0,82127 0,68969 tk 0 од 0,2 0,3 0,4 у*(Л = 0,1) 1 0,99501 0,98020 0,95600 0,92312 Ук = (h = 0,2) 1 0,98020 0,92312 Раздел 9.6. Методы прогноза-коррекции 1. у4 = 0,82126825; уъ = 0,78369923 3. у4 = 0,74832050; у5 = 0,66139979 4. у4 = 0,98247692; у5 = 0,97350099 7. г/4 = 1,1542232; у5 = 1,2225213 Раздел 9.7. Системы дифференциальных уравнений 1. (a) (xv,yi) = (-2,5500000;2,6700000) (ж2;У2) = (-2,4040735; 2,5485015) (b) (zi;yi) = (-2,5521092; 2,6742492)
700 Ответы к избранным упражнениям 5. (Ь) х' = у у' = 1,5s + 2,5у + 22,5e2t (c) Ж1 = 2,05; х2 = 2,17 (d) Ж1 = 2,0875384 Раздел 9.8. Краевые задачи 2. Нет, g(t) = -1/t2 < 0 для всех t e [0,5; 4,5]. Раздел 9.9. Метод конечных разностей 1. (a) hi = 0,5; хх = 7,2857149 h2 = 0,25; хг = 6,0771913; х2 = 7,2827443 2. (a) hi = 0,5; хх = 0,85414295 /i2 = 0,25; xi = 0,93524622; х2 = 0,83762911 Раздел 10.1. Гиперболические уравнения tj 0,0 0,1 0,2 0,587785 0,475528 0,181636 хз 0,951057 0,769421 0,293893 хА 0,951057 0,769421 0,293893 Хъ 0,587785 0,475528 0,181636 5. tj 0,0 0,1 0,2 Х2 0,500 0,500 0,500 хз 1,000 1,000 0,375 ХА 1,500 0,875 0,300 Хъ 0,750 0,800 0,125 Раздел 10.2. Параболические уравнения xi = 0,0 0,0 0,0 0,0 X2 = 0,2 0,587785 0,475528 0,384710 хз = 0,4 0,951057 0,769421 0,622475 ХА = 0,6 0,951057 0,769421 0,622475 хъ = 0,8 0,587785 0,475528 0,384710 хб = 1,0 0,0 0,0 0,0 Раздел 10.3. Эллиптические уравнения 1. (а) - 4pi + р2 + Рг = -80 Pi -4р2 + Ра = -10 Pi -4рз + Р4 = -160 Р2 + Рз - 4р4 = -90 (b) pi = 41,25; р2 = 23,75; р3 = 61,25; р4 = 43,75
Ответы к избранным упражнениям 701 5. (а) ихх + иуу = 2а + 2с = 0, если а = —с. 6. Покажите, что и {х\ у) = cosBa;)+sinBy) — решение, так как оно определено и внутри области R, т. е. ихх + иуу = —4cosBx) — 4sinBy) = —4(cosBx) + = -4u. Раздел 11.1. Однородные системы: задача о собственных значениях 1. (а) Из равенства \А — Л/| = Л2 — ЗЛ — 4 = 0 вытекает, что Ai = — 1 и А2 = 4. Подставим каждое собственное значение в | А — А/| = 0 и получим решения V\ = [—1 l] и V2 — [2/3 l] соответственно. 10. Если А = 2 — собственное значение матрицы Ау соответствующее собствен- собственному вектору V, то AV = 2V. Умножим обе части слева на Л": A~lAV = = A'1BV) или V = 2A~X V. Тогда A^V = V2V. Раздел 11.2. Метод степеней 1. {А - aI)V = AV - alV = AV - aV = XV - aV = (\-а) V. Таким образом, (А — а), V — собственная пара матрицы А — ai. 5. (а) \А - 11\ - -0,2 0,3 = 0 0,2 -0,3 Г-о 0 0 0 /кч Г—0,2 0,3 0] Г—0,2 0,3 01 по , (Ь) 02 _03 эквивалентна матрице | п п п|, тогда -0,2ж + + 0,Зу= 0. Пусть у = t, тогда х = 3/2. Таким образом, собственные векторы, соответ- соответствующие А = 1, равны {*[3/2 1]' : t в SR,* ф 0}. (с) Определенный в п. (Ь) собственный вектор показывает, что со временем 50 000 человек разделятся в соотношении 3 к 2 в привязанности к сортам X и У соответственно, т. е. [| |] . Раздел 11.3. Метод Якоби 3. (а) Собственными парами матрицы А = L будут 5, [2 l] и —2, [—1/3 l]. Таким образом, общее решение равно X(t) = c\e5t[2 l] + +C2e~2t [—1/3 l] . Положим t = 0, чтобы найти решение для с\ и С2, т. е. [1 2]' = ci[2 1]' + с2[-1/3 I}1. Отсюда сг =0,7143 и с2 = 1,2857.
702 Ответы к избранным упражнениям Раздел 11.4. Собственные значения симметричных матриц 1. Из C) получаем W = [ГуГуц и из Рис- ^-^ слеДует, что Z — \{Х + У). Возьмем скалярное произведение X-Y I, . (X-Y)-(X + Y) = \\Х-У\\2'2{Л^Х > 2||А--У||а _X-X + X-Y-Y-X-Y-Y \\X\\2 - ||У||2 2||Х-У||а ~ 2||Х-У||2 -U' так как X и У имеют одну и ту же норму. 2. Р' = (J - 2ХХ')' = I' - 2(ХХ'У = 1- 2(Х')'Х' = 1- 2ХХ' = Р
Предметный указатель Symbols фЯ-алгоритм, 608 QД-метод, 651 LU-разложение, 162; 165; 172 О(/гп), 42; 45; 240; 364; 406; 410; 473; 481; 488; 498; 513; 515; 544; 556;566; 578 А Адаптивная квадратура, 417; 422 Алгоритм для нахождения корня кубического уравнения, 103 (№11) Алгоритм квадратного корня, 88 Б Базис, 597 Базисный вектор, 595 Биномиальный ряд, 222 (№14) Буль формула, 376 В Векторы норма Евклида, 121; 185; 186 скалярное произведение, 121 Верхняя треугольная матрица построение, 157 Вес для формулы интегрирования, 376; 428 Вложенные умножения, 248 Волновое уравнение, 553; 555; 558 Вращение, 134; 624 плоскости, 134; 624 Вторая фундаментальная теорема, 18 Выбор главного элемента стратегия, 153 стратегия выбора, 152 Выравнивание методом наименьших квадратов тригонометрическим полиномом, 327 Высшего порядка производная, 359 Геометрический ряд, 28; 67 Гиперболическое уравнение, 553; 555 Главная строка, 147 Главный элемент, 147 Градиент, 447; 455 Градиентный метод, 447 Примечание: Числа в круглых скобках ссылаются на номера заданий в упражнениях. 703
704 ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ Граничные условия Неймана, 582; 586 Грань ошибки, 362 Графический анализ итерации неподвижной точки, 62; 63 метода Ньютона, 86; 95-97 метода секущих, 97 д Движение снаряда, траектория, 89 Двоичные числа, 25; 26; 29; 31 Двойная точность, 35 Двойной корень, 91; 93; 104 (№21) Деление искусственное, 225 на нуль, 91; 94 * Десятичные числа, 26; 32; 35 Дифференциальное уравнение, 462 в частных производных, 180; 553; 555;566; 578 параболическое уравнение, 566 высшего порядка, 528 задача Коши, 463; 465; 525; 537 краевая задача, 536; 541; 543; 549 метод Адамса-Бешфорса- Маултона, 512; 520 метод Гюна, 479; 481; 484; 502 метод Дирихле для уравнения Лапласа, 590 метод Кранка-Николсона, 571; 575 метод конечных разностей, 543; 549;553; 556; 566; 579 метод Милна-Симпсона, 514; 521 метод правой разности, 567 метод пристрелки, 537; 541 метод прямой разности, 573 метод Рунге-Кутта, 495; 498; 503; 505; 527; 541 метод Рунге-Кутта-Фехлберга, 503; 506 метод Тейлора, 487; 488; 492 метод Хемминга, 522 метод Эйлера, 468; 472; 475 модифицированный метод Эйлера-Коши, 502 прогноз, 512; 514 существование, единственность решения, 465 устойчивость решения, 516; 519 Длина вектора, 121; 185; 186 Длина кривой, 397 (№2) Длина шага дифференциальное уравнение, 514; 517 дифференцирования, 346; 349 интегрирования, 390; 417 интерполирования, 239 решение дифференциального уравнения, 503 Дробь, двоичная, 29 Единичная матрица, 164 Естественный кубический сплайн, 313; 315 Задача Коши, 463; 465; 525; 537 Закон Гука, 289 (№1) Значащая цифра, 38; 315 Значение экстраполяции, 225 И Интегрирование адаптивная квадратура, 417; 422 по Гауссу-Лежандру, 424; 426; 428; 429 по Ромбергу, 406; 408; 410; 412; 415 (№11) составная формула, 381; 387; 390; 395; 396 формула Буля, 376; 406; 409; 414 (№3, 4); 424 (№3) формула Ньютона-Котса, 376 формула Симпсона, 376; 386 (№9); 387; 392; 396; 404; 414 (№6); 421; 422 формула средней точки, 399 (№12); 415 (№11) формула трапеций, 376; 387; 390; 395; 402; 411 Интегрирование по Гауссу-Лежандру, 424; 426; 428; 429
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ 705 Интегрирование по Ромбергу, 406; 408; 410; 412; 415 (№11) Интерполирование, 294 интегрированием, 326 (№12); 376 кубическим сплайном, 310; 314-316; 322; 326 (№12) кусочно-линейное, 309 линейное, 233; 245 (№12); 282; 306 (№17); 309 методом наименьших квадратов, 282;299 ошибка интерполирования, полиномом, 44; 213; 237; 239; 264 полиномиальное раскачивание, 301 полиномом Лагранжа, 233; 237; 239; 243; 264 полиномом Ньютона, 247; 251; 254 полиномом Тейлора, 39; 44; 213; 343;360 полиномом Чебышева, 257; 259; 264;267 приближение Паде, 270; 273 рациональной функции, 270 тригонометрическим полиномом, 327; 333; 336 феномен Рунге, 263 Интерполяция экстраполяция, 225 Искусственное деление, 225 Использование итерации неподвижная точка, 64 Итеративный метод неподвижной точки,585 Итерационный метод regula falsi, 75 Гаусса-Зейделя, 181; 184; 187 делением пополам, 68; 70; 75 дифференциальное уравнение в частных производных, 588 ложного положения, 71 Мюллера, 109; 114 Ньютона, 86; 99; 100; 105 (№23); 200; 203 неподвижной точки, 53; 196 Стеффенссна, 109; 113 секущих, 97; 101; 104 (№20) Якоби, 179; 184; 186 Итерация Гаусса-Зейделя, 181; 184; 187 Зейделя, 198; 202; 205 использование, 55 неподвижной точки, 53; 57; 64; 196 Якоби для систем линейных уравнений, 179; 184: 186 К Квадратичная сходимость, 92; 94; 99; 104 (№21, 23) Квадратичная формула, 52 (№12) Квадратура адаптивная, 417; 422 кубический сплайн, 326 (№12) по Гауссу-Лежандру, 424; 426; 428; 429 по Ромбергу, 406; 408; 410; 412; 415 (№11) составная формула, 381; 387; 390; 395;396 формула Буля, 376; 406; 409; 414 (№3, 4); 424 (№3) формула Ньютона-Котса, 376 формула Симпсона, 376; 386 (№9); 387; 392; 396; 404; 414 (№6); 421;'422 формула средней точки, 399 (№12); 415 (№11) формула трапеций, 3~6; 387;390; 395;402; 411 Квазилинейное уравнение, 553 Корень кратный, 91; 99; 104 (№21, 23) метод искусственного деления, 225 нахождение места расположения. 84 простой, 91; 94; 105 (№22) уравнения, 68; 91 Коэффициенты ряда Фурье, 334 тригонометрического полинома, 334 Краевая задача, 462; 536; 541; 543; 549
706 ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ Кратный корень, 91; 99; 104 (№21, 23) Критерий окончания метод regula falsi, 74; 75 метод деления пополам, 74 Критерий останова, 74; 78 (№13) интегрирование по Ромбергу, 412 метод Ньютона, 100 метод Рунге-Кутта, 506 метод секущих, 101 Круговая теорема Гершгорина, 607 Кубический сплайн естественный, 313; 315 смыкающий, 313; 314; 322 Кусочная непрерывность, 328 Кусочно-кубический полином, 311 Кусочно-кубическое интерйолирование, 310 Кусочно-линейное интерполирование, 309 Л Лагранжа полином, 237; 239; 263 Левая разность, 364 Линейная комбинация, 121; 537 независимость, 597 подгонка методом наименьших квадратов, 286 (№17); 288 (№17); 306 (№17) система, 149; 165; 174; 178; 186 система, теория образование матрицы, 162 формирование матрицы, 147 сходимость, 92; 94; 107 Линейное приближение, 245 (№12); 280; 282; 286; 306 (№17); 309 Линейный метод наименьших квадратов, 297 Линия полученная методом НК, 292 построенная по точкам методом НК, 282 линейное построение, 282 построенная поданным методом НК нелинейная подгонка, 284 Логистическое правило роста населения, 305 (№6, 7) М Маклорена ряд, 270 Мантисса, 32; 34 Марковский процесс, 621 (№5) Матрица LU-разложение, 162; 165; 172 вырожденная, сингулярная, 131 вычисление определителя, 173 Гильберта, 160 (№15) единичная, 131 невырожденная, 131 нижняя треугольная, 140; 145 (№2); 165 норма, 607 обращение матриц, 131; 133 определитель матрицы, 132; 133; 143 ортогональная, 606; 637 перестановок, 170; 172 плохо обусловленная, 154; 160 (№15) приведение к диагональному виду, 603 расширенная, 147; 149 симметричная, 127 (№6); 606; 623; 633; 637 сложение матриц, 126 собственное значение, 599 собственный вектор, 599 строго диагонально доминирующая, 183; 184; 186 тождественность матриц, 125 транспонированная, 122; 127 (№5); 298 треугольная, 140; 145 (№2) трехдиагональная, 161 (№1); 189 (№3); 313; 544; 643 умножение матриц, 129; 131; 165; 172 Якоби, 193; 199 Машинные числа, 32 Метод А2 Эйткена, 614
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ 707 regulafalsi, 71; 75 Адамса-Бешфорса-Маултона, 512; 520 Больцано, 68 бисекции, 68 Гаусса исключения неизвестных обратная подстановка, 143 Горнера, 21; 225 Гюна, 479; 481; 484; 502 Дирихле для уравнения Лапласа, 590 деления пополам, 68; 70; 75 интервалов, 66 интервалов локализации корня, 68 исключения Гаусса, 145; 148; 164; 165; 172 LU-разложение, 162; 165; 172 выбор главных элементов, 152 вычислительные трудности, 168 главный элемент, 147 множители, 147; 150 обратная подстановка, 140 трехдиагональная система, 161 (№1); 189 (№3); 313; 544; 643 Кранка-Николсона, 571; 575 касательных, 86; 97; 100 конечных разностей, 543; 549; 553; 556; 566; 579 коррекции прогноза, 374 ложного положения, 71; 75 Милна-Симпсона, 514; 521 Мюллера, 109; 114 Нелдера-Мида, 440; 450 Ньютона кратные корни, 91; 104 (№21, 23) нахождения кратных корней, 99 порядок сходимости, 94 наискорейшего спуска, 447; 455 последовательной сверхрелаксации, 586 правой разности, 566-568 пристрелки, 537; 541 прогноза-коррекции, 511 прямой разности, 573 Рунге-Кутга, 495; 498; 503; 505; 527;541 метод Фехлберга, 503; 506 решения систем, 527 экстраполирование Ричардсона, 508 (№7) Стеффенсена, 109; 113 секущих, 97; 101; 104 (№20) степеней, 608; 610; 611; 615; 619 Тейлора, 487; 488; 492 Хаусхольдера, 608; 637 Хейли, 105 (№22) Хемминга, 516; 522 Эйлера, 468; 472; 475 общая ошибка, 473 решения системы, 526 Эйлера-Коши модифицированный, 502 Якоби, 608 Якоби для собственных значений, 623; 633 Минимаксное приближение Чебышева, 259; 264 Минимум градиентный метод, 447; 455 метод золотого сечения, 448 метод Нелдера-Мида, 440; 450 поиск методом золотого сечения, 436 Многошаговый метод, 501 Адамса-Бешфорса-Маултона, 512; 520 Милна-Симпсона, 514; 521 Хемминга, 522 Множество Сп[а;Ь], 14 Модель "хищник — жертва", 533 (№13) Модель эпидемии, 478 (№9) Модифицированный метод Эйлера-Коши, 502 Н Научное обозначение, 32 Нахождение корня делением пополам, 68; 70; 75 квадратичная формула, 52 (№12) кратные корни, 91; 99; 104 (№21, 23) метод regula falsi, 71; 75
708 ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ метод Мюллера, 109; 114 метод Ньютона, 99; 100; 105 (№23); 200; 203 метод Стеффенсена, 109; 113 метод секущих, 97; 101; 104 (№20) Нахождение места расположения корней, 84 Неподвижная точка, 56 Непрерывная функция, 14 Неустойчивый алгоритм, 46 Нечетная функция, 330 Нижний треугольный определитель, 143 Норма Евклида, 121; 185; 186 матрицы, 607 Нормализованная десятичная форма, 40 Нормальное уравнение, 282 Нули нахождение корня, 66; 86; 107; 191; 198 полинома Чебышева, 258 функции, 68; 91 Ньютон полином, 247; 250; 254 Ньютон-Коте формула, 376 О О большое, O(hn), 343; 344; 359; 364 Обобщенная теорема Ролля, 17; 223 (№20) Обратная подстановка, 140; 143; 157; 165 Обратный метод степеней, 610 Обычная точность, 35 Ограничение в крайних точках, 314 Ограничения в крайних точках для сплайнов, 313 Однородная линейная система, 596 Одношаговый метод, 511 Окончательная общая ошибка, 473; 481; 489; 499 Округление ошибки дифференцирования, 347 Определение масштаба частного выбора главного элемента, 154 Определитель, 132; 143; 173 матрицы, 133 Оптимальная длина шага, 362 дифференциальное уравнение, 514; 517 дифференцирования, 346; 348 интегрирования, 390; 417 интерполирования, 239 решение дифференциального уравнения, 503 Оптимальная ширина шага интерполирования, 260 Оптимизация градиентный метод, 447; 455 метод золотого сечения, 448 метод Нелдера-Мида, 440; 450 поиск методом золотого сечения, 436 Ортогональные полиномы Чебышева, 265 Остаток, 280 Относительная ошибка, 83 Ошибка абсолютная, 37 вычислений на компьютере, 33; 40 грань ошибки, 213; 218; 239 данных, 49; 228; 346 дифференциального уравнения, 473; 481; 489; 499; 513; 515; 558 дифференцирования, 343; 344; 347; 348 интегрирования, 376; 390; 392; 410 интерполирования полиномом, 213; 239 интерполирующего полинома, 264 компьютера, 33; 156 округления, 39 относительная, 37; 83 потеря значащих цифр, 40 потеря из-за вычитания, 40 распространение, 46 среднеквадратическая, 280 усечения, 38; 343; 344 Ошибка округления, 39 дифференцирования, 343; 344; 348
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ 709 числа с плавающей точкой, 33 П Паде приближение, 270 Параболическое уравнение, 554; 566 Первая фундаментальная теорема, 18 Периодическая функция, 328 Плохая обусловленность выравнивание данных методом наименьших квадратов, 155 матрицы, 154; 160 (№15) Площадь поверхности, 397 (№3) Погрешность вычислений на компьютере, 34 Подгонка нелинейным МНК, 294 Подобное преобразование, 624; 625 Поиск методом золотого сечения, 436; 448 Показатель степени, 32 Поле тангенсов угла наклона, 464 Полином, 280 вычисление, 229 интерполирование полиномом, 233; 235; 237; 250 интерполирующий, 254; 264 интерполяционный, 243 Лагранжа, 233; 237; 239; 263; 309 Лежандра, 376 Ньютона, 247; 250; 254; 367 полиномиальное раскачивание, 301 производная, 229; 364; 367 Тейлора, 39; 44; 213; 215; 269; 343; 360 тригонометрический, 327; 333; 336 характеристический, 599 Чебышева, 211; 257; 259; 264; 267 интерполирование, 264 интерполирующий, 257; 259; 267 минимизирующий, 259 узлы полинома, 260 Полиномиальная интерполяция, 229 Порядок приближения, 42; 43; 45; 240; 343; 359; 364; 406; 410 сходимости, 45; 92 Порядок приближения O(hn), 42 Последовательное интегрирование формула Буля, 406; 409 формула Симпсона, 404; 409 формула трапеций, 403; 409; 411 Последовательность, 51 геометрическая, 28; 67 ошибок, 14 Построение кривой методом наименьших квадратов среднеквадратическая ошибка, 280 Построение кривой по точкам методом наименьших квадратов линейная подгонка, 306 (№17) плоской кривой, 306 (№17, 18) Построение линии по точкам методом НК линеаризированные данные, 295 линейная подгонка, 286; 288 (№7) нелинейная подгонка, 294; 299 полиномиальная подгонка, 299 тригонометрическим полиномом, 333;336 Построение методом наименьших квадратов по точкам подгонка полиномом, 303 Потеря значащих цифр, 40 Почти минимаксное приближение, 257; 259; 264 Правая разность, 364; 372 (№13) Предел последовательности, 14 Предел функции, 13 Представление числа округлением с плавающей точкой, 40 Представление числа усечением с плавающей точкой, 40 Преобразование элементарное, 145 Приближение данных кривые, построенные методом НК, 284 линия, построенная' методом наименьших квадратов, 282 метод наименьших квадратов для кривой, 237
710 ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ полином, построенный методом наименьших квадратов, 299; 303 построение линии методом НК, 286 Приближение значащих цифр, 38 Приближение Паде, 273 Приближение с d значащими цифрами, 38 Приближение функции линия, построенная методом наименьших квадратов, 282 методом НК, 284 методом наименьших квадратов, 299 полиномом Лагранжа, 233; 237; 239; 243; 264 полиномом Ньютона, 247; 250; 254 полиномом Тейлора, 39; 44; 213 полиномом Чебышева, 257; 259; 264; 267 приближение Паде, 270; 273 рациональной, 270 сплайнами, 309; 310; 314; 322 Приведение матрицы к верхней треугольной, 172 Производная высшего порядка, 359; 364; 544 определение, 15; 341 полинома, 229; 364; 367 формула, 229; 343; 352; 360; 364; 544;556; 566; 578 частная, 356 (№7); 556; 566; 578 Простой корень, 91; 94; 105 (№22) Процесс Эйткена, 107; 117 (№10-14) Прямая подстановка, 145 (№2); 165 Радиоактивный распад, 468 (№17) Разложение на треугольные матрицы, 162; 164; 171 Разностное уравнение, 544; 556; 566; 571; 579 Разностные отношения, 250 Ньютона, 250 таблица, 250 Разность, 190 (№5) левая, 364 метод конечных разностей, 543; 549; 553; 556; 566; 579 правая, 364; 372 (№13) центральная, 343; 344 центрированная, 359; 372 (№7, №8) Раскачивание, 301 Распространение ошибки, 46 Расстояние между точками, 122; 185 Расширенная матрица, 147; 149; 165 Рациональная функция, 270 Решение Даламбера, 559 Ричардсон дифференциальное уравнение, 485 (№7); 493 (№6); 508 (№7) численное дифференцирование, 350;352 численное интегрирование, 408 Ряд биномиальный, 220 (№10) геометрический, 28; 67 Маклорена, 270 операций, 147 сходимость, 117 (№10-14); 213; 219 Тейлора, 20; 38; 39; 44; 213; 269; 343; 360 Фурье, 328 дискретный, 334 элементарных операций, 146 С Симпсон формула, 376 формула |, 376 Система дифференциальных уравнений, 525 линейная, 149; 157; 165; 172; 178; 186 линейных уравнений, 133; 140; 141; 143; 298 LU-разложение, 162; 165; 172 метод исключения Гаусса, 145; 148; 165; 172 обратная подстановка, 140; 143; 157 прямая подстановка, 145 (№2)
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ 711 теория, невырожденная матрица, 133 теория, образование матриц, 130; 133 теория, формирование матрицы, 147 трехдиагональная система, 161 (№1); 189 (№3); 313; 544; 643 Ньютона, 200; 203 нелинейная, 190; 198 Система уравнений линейная, 140 Скалярное произведение, 121 Собственное значение <2Д-метод, 645; 651 мажорирующее, 610 метод степеней, 610; 611; 615; 619 метод Хаусхольдера, 637 метод Якоби, 623 обратный метод степеней, 615; 617; 618 определение, 599 характеристический полином, 599 Собственный вектор, 598 мажорирующий, 610 определение, 599 Сокращение собственных значений, 621 Составная формула Симпсона, 381; 387; 392; 396 Составная формула трапеций, 381; 387; 390; 395 Сплайн естественный, 313; 315 интегрируемый, 326 (№12) линейный, 309 ограничения в крайних точках, 313 смыкающий, 313; 314; 322 Среднее значение по данным, 287 (№4, 5,6) Среднее значение производной, 15 Среднеквадратическая ошибка, 280; 281 Степень точности, 383 Сходимость глобальная (локальная), 79 квадратическая, 92; 94; 99; 104 (№21,23) критерий, 78; 82 линейная, 92; 94; 107 метод Ньютона-Рафсона, 94; 99; 104 (№21, 23) порядок сходимости, 45; 92 рядов, 117 (№10-14) скорость сходимости, 92 ускоренная, 99; 104 (№21-23); 107; 109; ИЗ Сходящаяся последовательность, 14 Сходящийся ряд, 19 Т Тейлор ряд, 20; 39; 44; 213; 269; 343; 360 Теорема о наибольшем (наименьшем) значении непрерывной функции, 15 о промежуточном значении, 14 о спектральном радиусе, 607 о среднем значении, 16; 465 взвешенного интеграла, 19 для интегралов, 18 Ролля, 16; 223 (№20); 238; 246 (№13) Тейлора, 20; 469 Точность вычислений на компьютере, 34 числа с плавающей точкой, 34 Траектория движения, 478 (№8); 486 (№6) Трехдиагональная матрица, 643 Тригонометрический полином, 327; 333; 336 Узел, 228; 233; 237; 239; 260; 376; 424 Чебышева, 258; 260 Улучшенная схема Ричардсона, 547 Унимодальная функция, 437 Уравнение в частных производных, 555; 578 гиперболическое уравнение, 555 эллиптическое уравнение, 578 Гельмгольца, 578; 588 Лапласа, 555; 578; 589
712 ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ Пуассона, 578; 588 теплопроводности, 554 Усечения ошибка, 343; 344 Усеченное число, 40 Ускоренная сходимость метод Ньютона-Рафсона, 87; 99; 105 (№23); 200 метод Стеффенсена, 107; 113 процесс Эйткена, 107; 117 (№10-14) Условие Липшица, 465 Устойчивость дифференциального уравнения, 516;519 Устойчивый алгоритм, 46 Ф Феномен Рунге, 263 Формула Буля, 376; 406; 409; 414 (№3, 4); 424 (№3) корректора, 512; 515 Ньютона-Рафсона, 99; 100; 105 (№23); 200; 203 Симпсона, 376; 386 (№9); 387; 392; 396; 404; 414 (№6); 421; 422 |, 386 (№9) средней точки, 399 (№12); 415 (№11) трапеций, 376; 387; 390; 395; 403; 411 численного дифференцирования, 343 Фундаментальная теорема анализа, 479 Характеристический полином, 599 Ц Центральная разность, 343; 344 Центрированная разность, 359; 372 (№7, №8) Частная производная, 193; 556; 566; 578 Частный выбор главного элемента, 153 Чебышев минимаксное приближение, 257 Четная функция, 330 Числа двоичные, 26; 29; 31 десятичные, 26; 32; 35 с плавающей точкой, 34 точность, 34 Численное дифференцирование, 343; 344; 350; 359; 364 правая разность, 372 (№13) производные высшего порядка, 359; 364 слева, 364 справа, 364 формула ошибки, 344; 347; 348 центральная разность, 343; 344 центрированная разность, 359; 372 (№7, №8) экстраполирование Ричардсона, 350 Численное интегрирование, 414 (№3, 4) адаптивная квадратура, 417; 422 кубический сплайн, 326 (№12) по Гауссу-Лежандру, 424; 426; 428; 429 по Ромбергу, 406; 408; 410; 412; 415 (№11) составная формула, 381; 387; 390; 395;396 формула Буля, 376; 406; 409; 424 (№3) формула Ньютона-Котса, 376 формула Симпсона, 376; 386 (№9); 387; 392; 396; 404; 414 (№6); 421; 422 формула средней точки, 399 (№12); 415 (№11) формула трапеций, 376; 387; 390; 395; 402; 411 Ш Ширина шага интерполирования, 260 Шур, 604 Эйлера формула, 329
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ 713 Эквивалентность линейных систем, 145 Экстремум, 435; 439 Экспоненциальная подгонка, 291 Элементарное преобразование, 145 Экстраполяция, 294 Эллиптическое уравнение, 555; 578
Научно-популярное издание i Джон Г. Мэтьюз, Куртис Д. Финк Численные методы. Использование MATLAB 3-е издание Литературный редактор Л. Н. Красножон Верстка А. Н. Полинчик Художественный редактор В. П Павлютин Корректоры Л. А. Гордиенко, О. В. Мишутина, Л. В. Чернокозинская Издательский дом "Вильяме". 101509, Москва, ул. Лесная, д. 43, стр. 1. Изд. лиц. ЛР № 090230 от 23.06.99 Госкомитета РФ по печати. Подписано в печать 16.07.2001. Формат 70x100/16. Гарнитура Times. Печать офсетная. Усл. печ. л. 58,05. Уч.-изд. л. 52,4. Тираж 5000 экз. Заказ № 1195. Отпечатано с диапозитивов в ФГУП "Печатный двор" Министерства РФ по делам печати, телерадиовещания и средств массовых коммуникаций. 197110, Санкт-Петербург, Чкаловский пр., 15.
Издательский дом "ВИЛЬЯМС PRENTICE HALL www.williamspublishing.com www.prenhall.com ISBN 5-8459^0162-6 О 1032 9 785845 901620