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,5190441