Текст
                    Г. Г. БАРАНОВСКАЯ
И.Н.ЛЮБЧЕНКО
МИКРО
КАЛЬКУЛЯТОРЫ
В КУРСЕ ВЫСШЕЙ
МАТЕМАТИКИ
ПРАКТИКУМ

•	Программируемые
электронные микро-
калькуляторы
•	Элементы теории
погрешностей
•	Математические
методы обработки
данных


Г. Г. БАРАНОВСКАЯ И.Н.ЛЮБЧЕНКО МИКРО- КАЛЬКУЛЯТОРЫ В КУРСЕ ВЫСШЕЙ МАТЕМАТИКИ ПРАКТИКУМ Допущено Министерством высшего и среднего специального образования УССР в качестве учебного пособия для студентов высших технических учебных заведений Киев Головное издательство издательского объединения «Вища школа* 1987
22.19я73 Б24 УДК 621.38:51(076.5) Микрокалькуляторы в курсе высшей математики: Прак- тикум / Г. Г. Барановская, И. Н. Любченко.— К. : Вища шк. Головное изд-во, 1987,— 288 с. Описаны основные численные методы, предусмот- ренные программой курса: численные методы решения систем линейных и нелинейных уравнений, интерполя- ции и аппроксимации’ функций, статистической обра- ботки экспериментальных данных, численного инте- грирования, минимизации функций, решения диффе- ренциальных уравнений. Для каждого метода составлены программы в ко- дах микрокалькулятора «Электроника БЗ-34», даны образцы решения контрольных примеров, задания для выполнения лабораторных работ и ответы к ним. Для студентов высших технических учебных заве- дений. Табл. И. Ил. 32. Библиогр.: 37 назв. Рецензенты: доктор физико-математических наук, профессор С. М. Белоносов (кафедра высшей математики Киевского инженерно-строительного ин- ститута), кандидат физико-математических наук, до- цент С. Д. Балашова (кафедра вычислительной мате- матики Днепропетровского государственного универ- ситета). Редакция литературы по информатике и автоматике Зав. редакцией Г. Ф. Трофимчук 2405000000-045 Б~ М21Ц04)—87 187-87 ©Издательское объединение «Вища школа», 1987
ПРЕДИСЛОВИЕ Меры по ускорению научно-технического прогресса преду- сматривают разработку новых поколений высокоэффективной техники, в частности электронно-вычислительных машин всех классов. Поэтому актуальным вопросом в процессе обучения стоит массовое овладение средствами вычислительной техники, программирования, широкая компьютеризация вузовского и школьного образования. Математическая подготовка студентов предполагает разви- тие у них логического и алгоритмического мышления, в част- ности глубокое изучение основных численных методов и уме- ние реализовать их на ЭВМ. Программа курса высшей мате- матики предусматривает непрерывное использование вычис- лительной техники в учебном процессе: при решении задач по отдельным темам, при выполнении типовых расчетов, кур- совых работ, а также при проведении математического лабо- раторного практикума. В процессе выполнения лабораторных работ у студентов вырабатывается умение выбирать опти- мальный для данной задачи численный метод, получать реше- ние с требуемой или возможной точностью, пользоваться вычислительными средствами, развиваются навыки правиль- ной организации вычислений. При этом широкое применение в качестве вычислительного средства индивидуального пользования получили малогаба- ритные микро-ЭВМ, называемые микрокалькуляторами. К ос- новным достоинствам микро-ЭВМ следует отнести малую потребляемую мощность, портативность, простоту и безопас- ность в обращении, возможность активного диалога в про- цессе составления, редактирования, отладки программы и работы с ней. Программируемые микрокалькуляторы, обладающие чис- ловой и программной памятью, оказались достаточно эффек- тивным вычислительным средством для проведения лабора- торного практикума в курсе высшей математики. Выполнение сравнительно небольших расчетов, постоянно встречающихся в инженерной практике (решение уравнений и систем, интер- 1* 3
полиция и аппроксимация функций, вычисление интегралов и численное дифференцирование, задачи оптимизации, реше- ние дифференциальных уравнений, обработка эксперимен- тальных данных и другие), можно успешно проводить на про- граммируемых микрокалькуляторах. Проведение лабораторного практикума по высшей мате- матике на микро-ЭВМ способствует хорошему усвоению сту- дентами алгоритмов численных методов, возможность актив- ного диалога с машиной в процессе вычислений позволяет использовать ее в различных сферах деятельности. Квалифи- цированная работа с микрокалькулятором вырабатывает у пользователей определенную математическую культуру и алгоритмическую грамотность, что является предпосылкой для успешного овладения алгоритмическими языками, выпол- нения сложных расчетов на больших ЭВМ с использованием стандартных программ. Настоящая книга является методическим пособием по лабораторному практикуму курса высшей математики на оте- чественных программируемых микрокалькуляторах. Пособие составлено в соответствии с программой курса высшей мате- матики для вузов. При его написании использован опыт про- ведения лабораторных занятий кафедрами высшей матема- тики Киевского политехнического института. Создание данного пособия обусловлено тем, что многие вузы страны в настоящее время проводят математический практикум на программируемых микрокалькуляторах. В предлагаемой книге по каждой лабораторной работе приводятся: краткие теоретические сведения по основным чис- ленным методам, оценка их погрешности, программы для мик- рокалькуляторов и инструкции по работе с ними, примеры решения контрольных примеров, варианты заданий для само- стоятельных упражнений и ответы к ним. Книга состоит из десяти глав. В гл. 1 приведена краткая история развития вычислительных средств, изложены основ- ные сведения об отечественных программируемых МК «Элект- роника БЗ-21», «Электроника МК-46», «Электроника БЗ-34», «Электроника МК-54», «Электроника МК-56», «Электроника МК-61» и «Электроника МК-52», методика составления и запи- си программ для них, конкретные примеры составления программ. В гл. 2 изложены элементы теории погрешностей. Осталь- ные восемь касаются только лабораторных работ. При подготовке к лабораторной работе студенты должны изучить соответствующий численный метод, ознакомиться с приведенной в пособии программой либо составить ее само- 4
стоятельио. На занятии каждый студент решает контрольный пример и выполняет вариант индивидуального задания, за- полняет соответствующие таблицы результатов и проводит их анализ. Методическое пособие написано для студентов и препода- вателей высших технических учебных заведений. Оно может быть рекомендовано также учителям и учащимся средних специальных учебных заведений, инженерным и научным ра- ботникам, использующим программируемые микрокалькуля- торы.
Глава 1. ПРОГРАММИРУЕМЫЕ ЭЛЕКТРОННЫЕ МИКРОКАЛЬКУЛЯТОРЫ 1.1. Краткая история развития вычислительных средств Различные вспомогательные средства вычислений исполь- зовались с давних времен. К древнейшим счетным устрой- ствам относятся китайские счеты суан-пан, счетная доска абак различных конструкций, применяемая древними гре- ками, римлянами и в странах Древнего Востока, а также более поздняя разновидность абака'— русские счеты, появив- шиеся около XVI века. Средства вычислений получили даль- нейшее развитие в XVI веке, чему способствовали накоплен- ные знания в области астрономии, открытие логарифмов. В 1614 г. шотландский математик Дж. Непер опубликовал таблицы логарифмов. Созданный им специальный прибор, известный под названием палочек Непера, предназначался для умножения многозначных чисел на однозначные. Этот прибор стал прообразом логарифмической линейки, изобре- тенной английским математиком У. Отредом в 20-е годы XVII века. Многократное усовершенствование логарифмиче- ской линейки позволило проводить на ней самые разнообраз- ные вычисления: умножение, деление, возведение в степень, извлечение корня, вычисление логарифмов, значений тригоно- метрических функций. Она прослужила человечеству в каче- стве вычислительного средства индивидуального пользования более 350 лет. Механические приборы для арифметических вычислений начали появляться в XVII веке. Первая модель вычислитель- ной машины была разработана немецким ученым В. Шиккар- дом. Она предназначалась для автоматического выполнения четырех арифметических операций. В 1642 г. выдающийся французский ученый Б. Паскаль построил счетную машину для сложения и вычитания многозначных чисел. В 1694 г. известный немецкий математик и философ Г. В. Лейбниц сконструировал вычислительную машину для выполнения четырех арифметических действий — арифмометр. Из-за кон- структивных недостатков и низкого уровня развития промыш- ленности эти машины не получили широкого распростране- ния. И только в 1874 г. петербургский инженер В. Т. Однер 6
разработал арифмометр, получивший всемирное признание. Арифмометры В. Т. Однера начали серийно выпускать в Пе- тербурге в 1891 г. Они получили широкое распространение в разных странах, став основным средством механизации вычислительных работ в первой четверти XX века. Из дру- гих счетных устройств, предназначенных для выполнения основных арифметических действий, следует отметить арифмо- метр с непрерывной передачей десятков в единицу старшего разряда, изобретенный в 1878 г. знаменитым русским матема- тиком П. Л. Чебышевым. Принцип, положенный в основу построения машины, был широко использован в разных стра- нах при создании настольных механических клавишных вы- числительных машин. Значительный вклад в разработку теории математических машин внес выдающийся русский ученый А. Н. Крылов. В 1904 г. им создана первая в мире машина специального назначения для интегрирования обыкновенных дифферен- циальных уравнений. Идея создания вычислительной машины с программным управлением принадлежит английскому ученому Ч. Бэббид- жу. В 1833 г. он разработал проект машины, названной им аналитической, которая могла автоматически выполнять до- статочно сложные вычисления по заранее составленной про- грамме. Программа должна была задаваться с помощью отвер- стий, пробитых специальным образом в картонных картах (перфокартах). Первую в мире программу для вычисления чисел Бернулли на такой машине написала в 1843 г. леди Августа Ада Лавлейс, дочь известного английского поэта Дж. Г. Байрона. Проект Бэббиджа предусматривал наличие в аналитической машине внутренней механической памяти, устройств для выполнения арифметических действий, управ- ления операциями, ручного набора исходных данных и вы- дачи окончательных результатов. Несмотря на то что этот проект, опередивший свое время, не был реализован, Ч. Бэб- биджу принадлежит приоритет многих идей, положенных в основу первых электронных вычислительных машин (3BiM), созданных только в 40-х годах нашего века. Первая действующая электромеханическая машина «Ц-3» с программным управлением была построена в 1941 г. немец- ким инженером К. Цузе. Более совершенная вычислительная машина на механических и релейно-контактных элементах «Марк-1» создана в 1944 г. под руководством американского физика Г. Эйкена. Идея создания электронных (ламповых) вычислительных машин, приведшая к революционной перестройке всей вычис- 7
лительной техники, была высказана в 1937 г. американским физиком (болгарин по происхождению) Д. В. Атанасовым. Им в 1942 г. был практически построен электронный ком- пьютер «АВС», однако ввести его в эксплуатацию помешала вторая мировая война. В 1946 г. американские физики Д. Мок- ли и Д. Эккерт создали первую действующую электронную машину «ЭНИАК». В нашей стране первая ЭВМ МЭСМ была разработана в 1948--1951 гг. под руководством академика С. А. Лебедева в Институте электротехники АН УССР. Под его же руковод- ством в 1952 г. была создана одна из первых быстродей- ствующих вычислительных машин — БЭСМ. За короткое время было создано несколько поколений ЭВМ. В машинах первого поколения (конец 40-х — средина 50-х годов) использовались электронно-вакуумные лампы, второго поколения (конец 50-х — начало 60-х годов) — полу- проводниковые элементы, третьего поколения (средина 60-х годов) — интегральные схемы (ИС). На смену машинам тре- тьего поколения приходят машины четвертого поколения, грань между которыми не очень четкая. В качестве элемент- ной базы в них используются большие интегральные схемы (БИС). К ним относятся многомашинные, мультипроцес- сорные системы параллельной обработки, построенные на функционально модульной основе, а также современные персональные компьютеры. Наряду с универсальными ЭВМ в начале 60-х годов полу- чили широкое распространение «малые» вычислительные ма- шины: микрокалькуляторы, микропроцессоры, микро- и мини- ЭВМ, персональные ЭВМ и ЭВМ специального назначения. Их появление неразрывно связано с новейшими достижениями микроэлектроники. Первая в мире настольная электронная клавишная вычис- лительная машина (ЭКВМ) «Анита МК-8» была продемонстри- рована на выставке в Лондоне в 1961 г. Серийный выпуск настольных ЭКВМ начался с 1964 г. («Вега » в нашей стране). К концу 60-х годов появились переносные ЭКВМ на инте- гральных схемах. В нашей стране с 1971 г. начат серийный выпуск «Искры». Габаритные размеры и масса различных моделей ЭКВМ постепенно уменьшаются и в начале 70-х годов появились «карманные» электронные микрокалькуляторы (МК), а за- тем — инженерные МК с дополнительными регистрами памя- ти и подпрограммами для автоматического вычисления значе- ний элементарных функций, а также сверхмалогабаритные программируемые МК. На них можно выполнять вычисления 8
по составленным пользователем программам в 60—100 шагов. Такие портативные цифровые устройства с автономным источ- ником питания, предназначенные для выполнения инженер- ных и научных расчетов, пришли в наше время на смену лога- рифмической линейке. В некоторых типах МК имеются устройства для хранения и ввода программы и данных (перфокарты, перфоленты, маг- нитные мини-карты, библиотечные сменные кассеты), мини- атюрные встроенные знакопечатающие устройства. Однако все эти модификации ограничивают автономность, портатив- ность и небольшую стоимость МК «карманного» типа. В на- стоящее время в нашей стране выпускаются разнообразные модели МК. Повышается качество их работы, надежность, уменьшаются габаритные размеры, масса, стоимость. Микропроцессоры являются элементной базой для кон- струирования ЭВМ различного назначения. Они представ- ляют собой стандартные логические блоки, выполняющие разнообразные функции под управлением хранимой в их памяти программы. Микро-ЭВМ выполняют чаще всего функции программного управления автоматическими производственными линиями. Их встраивают в измерительную аппаратуру, станки, робото- технические устройства. Мини-ЭВМ используются как вычислительные машины, на их основе создаются автоматизированные рабочие места для проведения инженерных и научных расчетов, автомати- зации обработки экспериментальных данных, проектирова- ния, конструирования и т. д. 1.2. Общие сведения о программируемых микрокалькуляторах По функциональному назначению МК разделяются на про- стейшие, инженерные, программируемые и специализирован- ные. Простейшие МК предназначаются для выполнения ариф- метических операций, более совершенные их модели имеют дополнительные регистры памяти для запоминания промежу- точных результатов, а также позволяют, например, автомати- чески вычислять 1/х, х, %. На инженерных МК проводятся сложные расчеты инженерной и научной практики. Они имеют специальные встроенные микропрограммы для авто- матического вычисления значений многих элементарных функ- ций: прямых и обратных тригонометрических, десятичных и натуральных логарифмов, показательной и степенной. На 9
них можно осуществлять перевод градусов в радианы и на- оборот, а также вычислять значения функций, микропро- граммы которых отсутствуют. На программируемых ЛАК вычисления проводятся нажатием вручную на пульте соответствующих клавиш или по состав- ленной пользователем и введенной в МК программе. Наличие в программируемых МК логических операторов условного и безусловного переходов, команд организации циклов и обра- щения к подпрограммам, косвенной адресации, программной памяти емкостью в несколько десятков шагов позволяет авто- матизировать многие научные и инженерно-технические расчеты. Специализированные МК предназначены для выполнения расчетов из некоторой узкой отрасли, например статистиче- ских, кассовых, и содержат соответствующие операторы вы- числения специальных функций. Более подробно рассмотрим основные типы отечественных программируемых ЛАК, которые в последние годы находят широкое применение в учебном процессе, в частности, при проведении лабораторного практикума по численным мето- дам курса высшей математики. В нашей стране первая модель программируемого МК «Электроника БЗ-21» была создана в 1977 году. МК имеет программную память емкостью 60 шагов и 14 регистров па- мяти. На его базе был разработан специализированный на- стольный программируемый МК «Электроника МК-46» (1980 г.), предназначенный для автоматического контроля различных производственных процессов. В нем предусмотрен ввод данных с внешних устройств. Более совершенным но сравнению с ними является МК «Электроника БЗ-.34», выпускаемый с 1980 года. Он имеет программную память в 98 шагов, более гибкую оперативную память, состоящую из четырех стековых регистров и допол- ненную регистром предыдущего результата, 14 адресуемых регистров памяти с произвольным доступом, переключатель для представления углов в градусах и радианах, большее число встроенных микропрограмм вычисления значений эле- ментарных функций, а также, кроме прямой адресации, коман- ды косвенных переходов и обращений, автоматической орга- низации циклов. На базе этой модели созданы аналогичные по функцио- нальным возможностям и программно совместимые с ней настольный ЛАК «Электроника МК-56», переносные «Электро- ника ЛАК-54» (1982 г.), «Электроника ЛАК-61» (1985 г.) и «Элект- роника МК-52» (1985 г.). ю
Для работы с МК необходимо предварительно ознако- миться с инструкцией по его эксплуатации. В настоящее время пока не созданы библиотеки типовых программ (прила- гаемые к инструкции), что вынуждает пользователя програм- мировать свою задачу самостоятельно. Несмотря на различие в размерах и внешнем виде, все ЭВМ имеют общую структуру и принципы работы. Програм- мируемые МК содержат: устройство ввода информации в па- мять машины — клавиатуру; устройство вывода информа- ции — индикатор; запоминающее устройство (ЗУ), состоя- щее из оперативной памяти для хранения исходных данных, промежуточных и окончательных результатов вычислений, запоминающего устройства для хранения программы вычис- лителя и постоянного запоминающего устройства для хране- ния встроенных (резидентных) программ автоматического вычисления значений элементарных функций; устройство управления переработкой информации совместно с арифмети- ческим устройством (микропроцессор). 1.3. Ввод чисел Микрокалькуляторы оперируют восьмиразрядными деся- тичными числами. Форма представления чисел может быть естественной с фиксированной запятой и экспоненциальной с плавающей десятичной запятой. Ввод чисел осуществляется с помощью цифровых клавиш: 0, 1,2, 3, 4, 5, б, 7, 8, 9; кла- виши десятичного разделительного знака (запятой «,» или точки «.»), клавиши ввода порядка ВП и клавиши смены знака /—/. Числа с клавиатуры вводятся в операционный регистр X. Визуальный контроль вводимых с клавиатуры чисел, а также выводимых результатов вычислений осуществ- ляется с помощью связанного с регистром X 12-разрядного индикатора: восемь разрядов мантиссы, два разряда порядка, два разряда знаков мантиссы и порядка. Диапазон пред- ставления чисел с фиксированной запятой от ± 10-7 до ± 99999999; с плавакщей запятой от ± 10’7 • 10"99 до ± 99999999 • 10". Индикатор высвечивает содержимое регистра X. Числа с фиксированной запятой вводятся, как при чте- нии, слева направо нажатием соответствующих цифровых клавиш, включая 0 для целой части дробного числа, запятой, если нужно; знак отрицательного числа /—/ набирается В конце. В МК «Электроника 63-21» запятая занимает один разряд, поэтому дробные числа могут иметь семь значащих 11
цифр. В МК «Электроника БЗ-34» запятая мантиссы отдель- ного разряда не занимает. Для чисел с плавающей запятой сначала вводится мантисса, если число отрицательное, то после ввода мантиссы нажимается клавиша /—/, затем нажи- мается клавиша порядка ВП, вводятся цифры порядка и его знак /—/, если он отрицательный. При стандартной форме записи чисел запятая в мантиссе расположена после первой значащей цифры. Если числа вида ± т 10±п при т > 0 и числа а при | а I < 1 пересылать из регистра X в регистр У (нажатием клавиши f или В f ) или в адресуемый регистр, то они автоматически переводятся в стандартную форму с плавающей запятой. Результаты вы- числений высвечиваются на индикаторе в стандартной форме. Приведем примеры ввода чисел нажатием соответствующих клавиш: Число 2 5867 -( 25,6489 - 0,0036 2,56 1074 -5,432-Ю14 Клавиши [USS ш ш иинишш и □□□□ишши ГЛ 1~П Л ГЛ ГЛ I вп~| ГП ГЯ Вводить в МК числа можно в промежуточной форме, напри- мер, для ввода числа 125,146 • 10"3 нажимаем клавиши 1 2 5,146 ВП 3 /—/. Если при вводе числа допущена ошибка, то нажимаем клавишу Сх очистки регистра X и на- бираем число сначала. Если допущена ошибка при наборе числа порядка, то повторяем ввод порядка и его знака. В МК предусмотрена блокировка ввода: если уже введено восемь цифр мантиссы, то нажатие цифровых клавиш не вызы- вает изменений на индикаторе. Если в результате вычислений происходит переполнение разрядной сетки регистра X или выполняется некорректная операция, на индикаторе МК «Электроника БЗ-21» высвечи- вается 0 в первом разряде (вместо знака числа), а в МК «Электроника БЗ-34» и построенных на ёго базе моделях вы- свечивается сигнал ЕГГОГ (от англ, error — ошибка). 12
1.4. Микрокалькуляторы «Электроника БЗ-21» и «Электроника МК-46» Внешний вид МК «Электроника БЗ-21» представлен на рис. 1. В верхней части передней панели находится световой индикатор. Слева под ним расположен включатель. МК может работать либо от расположенных внутри него аккумуляторов, либо от блока питания, включаемого в сеть 220 В. В первом случае необходимо повернуть включатель вправо, во втором включение производится в такой последовательности: под- ключить к МК блок питания, включить блок в сеть, а затем повернуть включатель. Выключение осуществляется в обрат- ной последовательности. Следует запомнить, что повторное включение МК допускается не раньше, чем через 10 с после его выключения. Оперативная память МК «Электроника БЗ-21» состоит из двух операционных регистров X и У с адресами соответ- ственно 0 и 1, семи адресуемых регистров с адресами 2, ..., 8 и шести стековых регистров. Обозначим их соответ- ственно РХ, РУ, Р2, ..., Р8, С1, .... С6. Числа вводятся с пульта в регистр X. Клавиша f пред- назначена для передачи содержимого регистра X в регистр У. При этом содержимое РХ сохраняется. Если содержимое РХ является результатом выполнения некоторой операции (не вводилось с пульта), то при вводе нового числа содер- жимое РХ автоматически заносится в РУ. При нажатии кла- виши X «=г У (в дальнейшем будем писать ХУ) происходит обмен содержимым в регистрах X и У. Вызов числа из адресуемого регистра с адресом N (N = 2, ..., 8) в РХ осуществляется нажатием клавиш FN. Для записи содержимого РХ в регистр с адресом N нужно нажать кла- виши PN. Адрес N набирается нажатием соответствующей цифровой клавиши. В микрокалькуляторе «Электроника БЗ-21» шесть стеко- вых регистров С1, ..., С6 и регистр X образуют замкнутое кольцо, называемое кольцевым стеком. Схема кольцевого стека представлена на рис. 2. Запись чисел в стековые регистры и их вызов осуществ- ляется только через регистр X поворотом стека в двух направ- лениях — по часовой стрелке (нажатием клавиш Р О) или против часовой стрелки (нажатием клавиш Р О). При нажа- тии клавиш РО содержимое регистра X запишется в ре- гистр С1, числа в остальных регистрах стека передвигаются по часовой стрелке в соседний регистр стековой памяти, а со- держимое регистра С6 запишется в регистр X. При нажатии 13
Рис. I
клавиш Рф передвижение содер- ____ _____ жимого регистров стека осуществля- 0[О1/’—* и1М ется аналогично, но уже против ча- су совой стрелки.' Вызов чисел из сте- / \ ковой памяти можно проводить в том csL 1с2 порядке, в котором они заносились в \ j стек, или в противоположном по- / рядке. * х 3 тг р О Пример. Вычислить значение много- члена: Р (х) = ах? + Ьх1 + сх3 + dx2 + ex + / при х = х0. Вычисление проведем по схеме Горнера: Р W = ((((ах + Ь) х + с) х + d) х + е) х + f. Запишем коэффициенты многочлена в стековую память по часовой стрелке: (a) PO(i>) РО(с) PO(d) РО(е) РО(/) Ро Число х0 занесем в Р2: (х0) Р2. Здесь и далее запись (а) означает набор на цифровой кла- виатуре числа а. Тогда вычисление значения многочлена по схеме Горнера реализуется программой: РО f F2 Xf РО+ С/П БП Р2 Для пятикратного повторения группы команд следует нажать клавиши В/О С/П и после ОСТАНОВов четыре раза — клавишу С/П. Значение Р (х0) высвечивается на индикаторе. Клавиатура МК «Электроника БЗ-21» содержит 29 клави- шей. Некоторые из них имеют двойную или даже тройную символику — на клавише, выше и ниже ее. Операторы, обо- значаемые верхними или нижними символами, вводятся в па- мять после нажатия одной из префиксных клавиш Р или F соответствующего цвета. Кроме рассмотренных выше клавиш ввода чисел и клавиш перемещения информации в регистрах памяти, на пульте имеются операционные клавиши (+, —, X, -?); клавиши для вычисления значений элементарных функций (Ху, In, eix, л, sin, ех, cos, 1/X, X2, ]/'); клавиши, используемые при про- граммировании (безусловного — БП и условных — X » О, X ?= О, X = О, X <0 переходов, ПП — перехода к подпро- грамме, В/О — возврата из подпрограммы в основную про- 15
грамму или перехода на нулевой адрес программы, ШГ, ШГ — сдвига счетчика адресов на шаг вперед или назад, НОП — стирание команды); клавиши С/П для пуска и ОСТАНОВа вычислений. С помощью МК можно вычислять значения экспоненциаль- ной функции мнимого аргумента е/х = cos к + i sin х. При этом на индикаторе высвечивается значение действительной части cos х, а в регистре У хранится мнимая часть sin х. По- этому, если после выполнения оператора е/х нажать клавишу деления 4-, то на индикаторе получим значение tg х. Для вычисления значения ctg х можно нажать клавиши: е'х ХУ 4-. Программная память состоит из счетчика адресов и мас- сива из 60 регистров, образующих стек «карусельного» типа. Число регистров программной памяти определяет максималь- ное число команд (шагов) программы пользователя, одна команда занимает один регистр. Программную память МК можно образно представить в виде книги [301, которая имеет десять страниц с номерами 0, ..., 9. На каждой странице размещается шесть строк с но- мерами 0, ..., 5. Каждая команда занимает одну строку (ячей- ку программной памяти). Ее положение определяется дву- значным десятично-шестеричным числом — адресом команды. Первая цифра адреса указывает номер страницы, а вторая — номер строки. В программе адреса команд записываются подряд: 00, 01, 02, 03, 04, 05, 10, 11, ..., 95. Программа вво- дится в программную память МК с клавишного пульта управ- ления. При вводе программы каждый оператор автоматиче- ски преобразуется в двузначный код. В режиме программи- рования при нажатии соответствующих клавиш код оператора заносится в очередной регистр памяти, а содержимое счет- чика адресов после записи очередного шага программы авто- матически увеличивается на единицу. При этом на индика- торе справа в 11-м и 12-м разрядах высвечивается адрес сле- дующей команды, а слева — коды трех последних команд, что можно использовать при проверке и отладке программы. Каждой команде программы, кроме ее адреса, отвечает адрес перехода. Адрес перехода представляет собой символ оператора, код которого на единицу больше адреса команды, на которую требуется перейти. В табл. 1.1 приведены коды команд и символов МК «Электроника БЗ-21». Табл. 1.1 можно использовать для определения кодов команд при записи про- грамм и для нахождения адреса перехода. Например, для перехода на команду с адресом 34 находим по таблице код 16
Таблица 1.1 Вторая цифра кода Первая цифра кода 0 - 2 3 4 1 5 I 6 1 7 1 8 9 1 Р 0 Р 1 Р 2 Р 3 Р 4 Р 5 Р 6 Р 7 Р 8 Р 9/ 2 F 0 F 1 F 2 F 3 F 4 F 5 F 6 F 7 F ,8 ' F 9 3 Р f Р ХУ Р X Р -ь Р , Р /-/ Р ВП Р сх Р — Р + 4 0 1 2 3 4 5 6 7 8 9 5 F f F ХУ F х F ~ F . F /-/ F ВП F Сх F — ’ F + 6 t ХУ X • /-/ ВП Сх — _1_ 7 F Ху F В/О F БП F ПП F С/П 8 Ху В/О БП ПП С/П 9 Р Ху Р В/О Р БП Р ПП Р С/П
команды 35 = 34 -Ь 1, стоящий на пересечении 3-го столбца и 5-й строки. Символ F -4- будет адресом перехода. Счетчик адресов используется для управления последова- тельностью выполнения команд программы. В МК «Электро- ника БЗ-21» команды выполняются по порядку, начиная с адреса 00 до адреса 95. Сброс на нуль счетчика адресов осуществляется нажатием в автоматическом режиме клавиши В/О (возврат-обнуление). Изменение последовательности вы- полнения команд программы обеспечивают операторы услов- ных и безусловных переходов. Для ввода программы нужно перейти в режим программи- рования, нажав клавиши В/О Р РП (режим программиро- вания). В двух последних разрядах индикатора появятся нули 00 — адрес первой команды. Для перехода в режим автоматических вычислений нажи- маем клавиши Р РР (режим работы). Признаком готовности МК к выполнению работы является высвечивание нуля и за- пятой на индикаторе. При включении микрокалькулятора устанавливается режим автоматических вычислений. Оперативная и программная память микрокалькулятора построены по «магнитофонному» принципу, т. е. засылка нового числа или команды в регистр автоматически стирает прежнюю информацию, а вызов информации из памяти не из- меняет содержимого регистра. При выключении микрокалькулятора содержимое всех регистров программной памяти автоматически стирается, а содержимое операционных, адресуемых и стековых регист- ров обнуляется. Программируемый настольный микрокалькулятор «Элект- роника МК-46» по своим функциональным возможностям почти не отличается от базовой модели МК «Электроника БЗ-21». Он предназначен для выполнения специализированных расчетов, а также для автоматического контроля производ- ственных процессов (в частности, для контроля качества сва- рочных процессов). К. микрокалькулятору могут подклю- чаться внешние устройства. Он может принимать и обрабаты- вать информацию, поступающую от объекта эксперимента, производить сравнение входных данных с допусковыми зна- чениями, выдавать сигнал отклонения контролируемых пара- метров от заданных значений, а также выдавать управляю- щие сигналы на внешние устройства. Результаты обработки информации можно выводить на цифропечатающее устрой- ство. Указанный микрокалькулятор имеет программную память емкостью 66 шагов. Программирование производим идентично 18
МК «Электроника БЗ-21», имеется отличие только в симво- лах нескольких операторов: ЁЗ-21 Р РР . Р РП М^46 Р АВТ Р Г1РГ 1.5. Микрокалькуляторы «Электроника БЗ-34», «Электроника МК-54», «Электроника МК-56», «Электроника МК-61» и «Электроника МК-52» Передняя панель МК «Электроника БЗ-34» представлена на рис. 3. Под световым индикатором расположены: слева включатель, справа переключатель Р—Г. Порядок включе- ния МК такой же, как и «БЗ-21». С помощью переключателя Р—Г можно проводить вычисления с градусной или радиан- ной мерой углов. Оперативное запоминающее устройство МК «Электроника БЗ-34» состоит из четырех регистров стека X, У, Z, Т, реги- стра XI восстановления предыдущего результата и четыр- надцати адресуемых регистров: 0, 1, 2, ..., 9, А, В, С, Д. Для краткости будем их обозначать соответственно РХ, РУ, ..., РО, Р1... РА.... РД. Числа с клавиатуры вводятся в РХ. Результаты всех вычислений тоже получаем в РХ. Содержимое РХ высвечи- вается на индикаторе. Для записи числа из РХ в какой-либо адресуемый регистр N (N = 0, 1...9, А, В, С, Д) необходимо нажать клавишу П (память) и соответствующую цифровую или буквенную клавишу N При этом содержимое PN автоматически сти- рается, число, записываемое в PN, сохраняется в РХ. Вызов числа из адресуемого регистра N в РХ производится нажатием клавиши ИП (из памяти) и клавиши N. Адресуемые регистры предназначены для хранения исходных данных, промежуточ- ных и окончательных результатов. Стековые регистры служат для кратковременного хране- ния и автоматического перемещения информации. Их работа организована по принципу магазинной памяти: последова- тельно записанная информация считывается в обратном по- рядке, т. е. последнее записанное число считывается первым. Стек одновходной, числа вводятся или выводятся через ре- гистр X. Перемещение информации в стековых регистрах X, У, Z, Т и в РХ 1 осуществляется автоматически с помощью опе- раторов: f , ХУ (обозначим ХУ), F О (обозначим F ,), 19
Таблица 1.2. Регистры Перемещение информации при Выполнение команд f Ввод числа о< Ввод числа ai после оператора^ сх F€> XY Одномест- ная операция Двухместна> операция ТХУ FBX 1 2 3 4 S 6 7 8 9 ю 11 Т Z г X XI Теряется @ © © © @ © @ ® Теряется & © © © ® © ® Л1 @—*© ©—*© ©-KD (р Теряется ©—©) ©—X© ©М© Теряется © © \7/ © © © © @ (р © Теряется (£.'©£) (© @ W © © © Теряется ©-<?) ©—»© ©-XD ©^© Теряется © © Л @ © © @ Теряется ©XD ©-© © © (р © Теряется Теряется $ © / © р (^ © / Хр (^®
arccos ПРГ Рис. 3 21
F BX, а также при вводе чисел с клавиатуры, вызове их из адресуемых регистров и при выполнении одноместных и дву- местных операций. Схема перемещений показана в табл. 1.2. При нажатии клавиши f происходит передача содержи- мого РХ в РУ, числа в стеке перемещаются на один регистр «выше» (столбец 2 табл. 1.2). При этом содержимое РХ сохра- няется, а РТ — теряется. В стек можно занести четыре числа а, Ь, с, d соответственно в регистры Т, Z, У, X, нажимая клавиши: (а) | (&) f (с) f (d). При вводе числа а с клавиатуры в РХ после выполнения какой-либо операции или вызове в РХ из адресуемого реги- стра такое же перемещение информации в стековых регистрах производится автоматически без нажатия клавиши | (стол- бец 3 табл. 1.2). Если в РХ вводится число а после оператора | или про- изводится очистка РХ оператором Сх, то содержимое реги- стров У, Z, Т не изменяется, а в РХ заносится соответственно а или 0 (столбцы 4, 5 табл. 1.2). Оператор F О осуществляет кольцевое передвижение информации в стеке (столбец 6 табл. 1.2), содержимое РХ заносится в РТ и РХ1, содержимое РХ1 теряется, во всех остальных регистрах числа сдвигаются «вниз». Оператор ХУ производит обмен содержимым между РХ и РУ, содер- жимое РХ заносится также в РХ1, содержимое PZ и РТ не изменяется (столбец 7 табл. 1.2). Регистр восстановления предыдущего результата XI сохраняет число, которое нахо- дилось в РХ до выполнения операции. Для его восстановле- ния следует нажать клавиши F ВХ. Перемещение информа- ции в стеке, вызываемое этим оператором, показано в столб- це 11 табл. 1.2. Во всех рассматриваемых отечественных микрокалькуля- торах используется так называемая обратная (инверсная) польская запись математических выражений, предложенная в 1923 году польским математиком Яном Лукасевичем. При такой записи знак операции ставится после набора операн- дов (чисел) и относится к последнему или двум последним операндам соответственно в одно- и двуместной операции. При выполнении одноместной операции аргумент а засы- лается из РХ в регистр восстановления предыдущего резуль- тата XI, в РХ запишется результат^операции, содержимое остальных регистров сохраняется (столбец 8 табл. 1.2). При выполнении двуместной операции МК оперирует числами, находящимися в РХ и РУ, результат операции заносится в РХ, предыдущее содержимое которого засылается в РХ1, 22
содержимое РУ теряется, а в остальных регистрах стека числа перемещаются «вниз» (столбец 9 табл. 1.2). Отметим некоторую особенность выполнения двуместной операции возведения в степень №. Показатель степени у находится в РУ, основание х— в РХ. После выполнения команды FXy результат заносится в РХ, содержимое осталь- ных стековых регистров не изменяется (столбец 10 табл. 1.2). Очистка регистров X, У, Z, Т осуществляется нажатием клавиш Сх , f , } , f . Для очистки РХ1 нажимаем клавишу Сх и любую операционную клавишу, например, +, — и т. д. Описанный принцип работы стековой памяти позволяет выполнять операции над операндами, хранящимися в четы- рех стековых регистрах, без дополнительного использования иных регистров памяти, по формулам, включающим три дву- местных и достаточное количество одноместных операций, а также выполнять цепочечные вычисления без записи про- межуточных результатов. Рассмотрим примеры. Пример 1. Вычислить х = ( 4- 4- b с \ а / Вычисления вручную: (с) f (Ь) f (a) f (d) 4- 4- X Пусть числа a, b, с, d хранятся соответственно в регист- рах 1, 2, 3, 4. Вычисления по программе: ИПЗ ИП2 ИП1 ИП4 4- X С/П. Результат получим в регистре X. п „ г, sin (а — Ьс) Пример 2. Вычислить х =----—-------- Вычисления вручную: (d) | (a) t (Ь) f (с) х F/ — F sin ХУ FX2 4- Вычисления по программе: ИП4 ИП1 ИП2 ИПЗ X F/ - F sin ХУ FX2 4- С/П Пример 3. Вычислить х = A cos со/ + В sin at. Вычисления вручную: (Л) f (В) f («) f (/) X П5 F sin х ХУ ИП5 Feos X + Пусть числа А, В, «, t хранятся соответственно в регистрах 1, 2, 3, 4. Вычисления по программе: ИП2 ИПЗ ИП4 X П5 F sin X ИП1 ИП5 Feos X 4- С/П 23
Пример 4. Вычислить определитель 3-го порядка, раскрыв его по элементам первого столбца: а11 Я12 а13 Д — <721 а22 °23 — аII (а22а33 а23°зг) + а31 а32 °33 4~ а21 (а32а13 °12°эз) 4" °Э1 (°12°23 а22а1з)‘ Вычисления вручную: (Я2г) f (й3з) X (й32) f (й23) X (Яц) X (аз2) t (а1з) X (я12) f (азз) X — (a2i) X 4* (fli2) t (а2з) X (я22) t (aw) X — (й31) х + Разместив элементы определителя в регистры памяти: (ап) Pl, (й12) Р2, (а13) РЗ, (а21) Р4, (я2„) Р5, (й23) Р6, (Ц31) Р7, (й3’2) Р8, (й‘33) Р9, вычислим по программе ИП5 ИП9 х ИП8 ИП6 х - ИП1 х ЙП8 ИПЗ х ИП2 ИП9 х — ИП4 X + ИП2 ИП6 X ИП5 ИПЗ X - ИП7 х + С/П На панели МК «Электроника БЗ-34» имеется 30 клавиш. При нажатии префиксной клавиши F и любой другой клавиши будет выполнен оператор, символ которого указан над кла- вишей. Сброс действия клавиши F осуществляется с помощью оператора CF. Префиксная клавиша К используется при про- граммировании в косвенной адресации. Кроме описанных выше клавиш ввода чисел и их перемещения в регистрах памяти, на панели имеются: операционные клавиши (-|-, —, X, 4-); символы элементарных функций (sin, cos, tg, X2, вызов л, arc sin, arc cos, arc tg, 1/X, jC, ex> lg, In, Xy, 10х); клавиши режима работы МК (F АВТ — режим автоматиче- ской работы, F ПРГ — режим программирования) и кла- виши, используемые при программировании (БП — безуслов- ный переход, ПП — переход к подпрограмме или гютактовое прохождение программы в режиме автоматической работы; FX <0, FX = 0, FX >0, FX 0 — операторы условных переходов; FLO, FL1, FL2, FL3 — операторы автоматической организации циклов; КНОП — стирание команды при редак- тировании; В/О — клавиша установления счетчика адресов на нулевой адрес или возврата из подпрограммы в основную программу; ШГ и ШГ — клавиши смещения счетчика адре- 24
сов на шаг вперед или назад, С/П — клавиша пуска или ОСТАНОВа вычислений). Переход в режим автоматических вычислении осуществ- ляется нажатием клавиш F АВТ, если микрокалькулятор до этого находился в режиме программирования, или же этот режим устанавливается автоматически после включения МК. В автоматическом режиме осуществляются ввод исходных данных, вычисления по введенной программе, безусловные переходы па любой адрес программы, индикация результата промежуточных и окончательных вычислений, а также про- водятся все вычисления с клавиатуры, как на обычном инже- нерном микрокалькуляторе. Для перехода в режим программирования следует нажать клавиши F ПРГ. В этом режиме производится ввод про- граммы в память, контроль правильности ввода программы по индикатору и ее редактирование. Программная память МК состоит из 98 регистров с адре- сами от 00 до 97 и счетчика адресов. При вводе программы в память каждый оператор автоматически преобразуется в двузначный код, который заносится в очередной регистр памяти, а содержимое счетчика адресов увеличивается на единицу. При этом на индикаторе высвечивается адрес сле- дующей команды и коды трех последних команд. Например, показания индикатора МК «Электроника БЗ-34»: I 3 I [ 6 3 0 9 означают, что адрес очередной команды равен 09, а 13, 1 [2, 63 — коды трех последовательных команд с адресами 08, 07, 06 соответственно. Каждому шагу программы, кроме его адреса, отвечает адрес перехода. В МК «Электроника БЗ-34» адрес перехода совпадает с адресом команды, на которую требуется перейти. Коды операций и команд МК «Электроника БЗ-34» приве- дены в табл. 1.3, в которой символ строки равен первому знаку кода, а символ столбца — второму. Их удобно исполь- зовать для контроля правильности ввода программы и ее редактирования. Переносной МК «Электроника МК-54» (рис. 4) и настоль- ный МК «Электроника МК-56» (рис. 5) построены на элемент- ной базе модели МК «Электроника БЗ-34» и обладают анало- гичными с ней функциональными возможностями и входным языком. В этих МК предусмотрена возможность представле- ния углов не только в радианах и градусах, но и в градах 25
Таблица 1.3 0 1 2 3 4 5 6 0 0 1 2 3 4 5 6 1 + — X 4- ХУ F10x Fex 2 Fn FF FX2 F1/X FXy F, к+ 3 КЗ К4 К5 Кб К7 К8 К9 4 ПО Ш П2 ПЗ П4 П5 П6 5 С/П БП В/0 ПП кноп К1 К2 6 НПО ИП1 ИП2 ипз ИП4 ИП5 ИП6 7 кх #оо КХ ф 01 КХ #02 КХ #03 КХ =#04 КХ # 05 КХ#06 8 КБПО КБП1 КБП2 КБПЗ КБП4 КБП5 КБП6 9 КХ >00 кх >01 КХ >02 КХ >03 КХ > 04 КХ > 05 КХ>06 — кппо КПП1 КПП2 кппз КПП4 КПП5, КПП6 L КПО КП1 КП2 КПЗ КП4 КП5 КП6 С КХ <00 КХ <01 КХ < 02 кх < 03 КХ < 04 КХ <05 КХ<06 Г кипо КИП1 КИП2 кипз КИП4 КИП5 КИП6 Е кх = оо КХ =01 КХ = 02 КХ = 03 КХ = 04 КХ =05 КХ=06 (1 град равен 1/100 части прямого угла). В модели «Электро- ника МК-54» уменьшены габаритные размеры и масса. В новых моделях МК «Электроника МК-61» (рис. 6) и «Электроника МК-52» за основу взята система команд МК «Электроника БЗ-34», но возможности программирования здесь расширены: добавлен один адресуемый регистр е, число регистров программной памяти равно 105 с адресами от 00 до 104. Для прямых и косвенных команд адреса пере- ходов с 00 по 99 записываются нажатием соответствующих цифровых клавиш. Адреса переходов с 100 по 104 исполь- зуются только для прямых команд и записываются нажатием клавиши О (она соответствует цифре 10) и одной из клавиш 26
7 8 9 — L с г Е 7 8 9 /-/ вп Сх t FBX Fig Fin F arcs in F arccos F arctg F sin F cos F tg К- КХ К 4- КХУ к, к/-/ квп КСХ К| П7 П8 П9 ПА пв ПС пд П| FX^O FL2 FX>0 FL3 FL1 FX<0 FLO FX=0 ИП7 ИП8 ИП9 ИПА ИПВ ипс ипд ИП| КХ#=07 KX=tO8 кх^оэ КХ^ОА кх^ов кх=^ос КХ=£0Д KX^Of КБП7 КБП8 КБП9 КБПА КБПВ КБПС КБПД KBnf КХ>07 КХ>08 КХ>09 КХ>0А КХ>0В кх>ос КХ>0Д KX>Ot КПП7 КПП8 КПП9 КППА кппв кппс кппд КПП) КП7 КП8 КП9 КПА кпв кпс кпд КП I КХ<07 КХ<08 КХ<09 КХ<0А кх<ов кх<ос кх<од KX<Ot КИП7 КИП8 КИП9 КИПА кип в кипе кипд КИП| КХ=07 КХ=08 КХ=09 КХ=0А кх=ов кх=ос кх=од KX=Of 0—4. Многие клавиши этих МК имеют двойную и тройную символику. Цвет символов соответствует цвету префиксных клавиш F и К. Для ввода оператора, символ которого изобра- жен над клавишей, сначала нужно нажать клавишу F или К, а затем клавишу, сверху которой указан этот символ. В этих моделях добавлены операторы: К [X]—выделения целой части числа ([х] равно наибольшему целому числу, не превышающему х); К (X) — выделения дробной части числа; К | X | —определения модуля числа; КЗН — опреде- ления знака числа; К шах — выделения из двух чисел, содер- жащихся в РХ и РУ максимального; КСЧ — генерации слу- чайных чисел в диапазоне от 0 до 1; К О’” — перевода вре- 27
Рис. 4

ож. г Рис. 6
менных величин, выраженных в часах, минутах, секундах и долях секунды, в значения часов и долей часа; К О’” — перевода временных величин, выраженных в часах и деся- тичных долях часа, в значения часов, минут, секунд и долей секунды; К О' — перевода угловых величин, выраженных в градусах и минутах, в значения градусов и долей градуса; КО' — перевода угловых величин, выраженных в градусах и долях градуса, в значения градусов, минут и долей минуты; КД, KV. К ф, КИЕВ — выполнения соответственно логических операций умножения, сложения, сложения по модулю 2, инверсии над числами, находящимися в РХ и РУ. В отличие от всех предыдущих моделей МК «Электроника МК-52» имеет встроенное полупостоянное запоминающее устройство (ППЗУ), в которое можно записывать программы объемом до 512 шагов, начиная с произвольного адреса. Запи- санные в ППЗУ программы хранятся в течение длительного времени (до 5000 ч) и не стираются при отключении питания. Их можно считывать в оперативное запоминающее устрой- ство (ОЗУ) МК по мере надобности и проводить вычисления. В этой модели предусмотрено также подключение модулей (постоянных запоминающих устройств (ПЗУ)) большой емко- сти с определенным набором программ, записанных заводом- изготовителем. Следует отметить, что программы, составленные для моде- ли МК «Электроника БЗ-34», могут быть реализованы на перечисленных выше моделях микрокалькуляторов. Разли- чия в обозначениях символов некоторых операторов в этих моделях приведены в табл. 1.4. Таблица 1.4 БЗ-34 ИП П ХУ А, В, С, Д arcsin arccos arctg МК-52, МК-54, МК-56, МК-61 П->Х Х^П а, Ь, с, d, е sin-1 cos-1 tg-1 Следует также отметить, что в моделях «Электроника МК-52» и «Электроника МК-61» адресуемому регистру е соот- ветствует клавиша В f . Дальше будет установлено суще- ственное различие между командами косвенной адресации с регистром е вида КХ ->• Пе, КП -> Хе и соответствующими им командами КП | и КИП | в модели «Электроника БЗ-34». 31
1.6. Работа микрокалькулятора в автоматическом режиме Микрокалькулятор работает в автоматическом режиме и в режиме программирования. Режим автоматической работы устанавливается после включения микрокалькулятора, либо после нажатия клавиш Р РР («Электроника БЗ-21») и F АВТ («Электроника БЗ-34»), на индикаторе высвечивается нудь и запятая. В автоматическом режиме МК работает как обыч- ный инженерный калькулятор (выполняется ввод чисел, про- водятся вычисления по командам, подаваемым оператором с клавиатуры) либо вычисления проводятся по программе, заранее введенной в программную память. Вычисления по любой формуле сводятся к последователь- ному выполнению одноместных и двуместных операций. В одноместной операции вычисляется значение определенной элементарной функции одного операнда — заданного значе- ния аргумента. В двуместной операции (+; —; X; 4-; Ху) предусматривается действие над двумя числами — операн- дами. Для выполнения одноместной операции необходимо: 1) ввести в РХ значение аргумента; 2) нажать клавиши, соответствующие оператору вычисле- ния нужной элементарной функции. Результат заносится в РХ, а аргумент — в РХ1. При вычислении тригонометрических и обратных тригоно- метрических функций в МК «Электроника БЗ-34» устанавли- ваем переключатель Р—Г в положение радианы или градусы соответственно аргументу. В МК «Электроника БЗ-21» аргу- мент тригонометрических функций должен быть задан в ра- дианах. Переход от градусной меры углов в радианную осу- ществляется по программе: (ос) f Fn х 1 8 0 -т- Выполнение двуместной операции осуществляется по схеме: 1) вводим первый операнд а\ 2) пересылаем его в регистр У, нажав клавишу f ; 3) вводим второй операнд Ь\ 4) нажимаем клавишу соответствующей операции. Результат вычислений заносится в РХ, а операнд b в РХ1. При вычислении Ху первым операндом является показа- тель степени у. В некоммутативных операциях а — b и а : b операнд а должен находиться в РУ, а операнд b — в РХ. 32
При вычислении значений элементарных функций необхо- димо учитывать ограничения, накладываемые на их аргу- менты областью определения. 1.7. Работа микрокалькулятора в программируемом режиме В режиме программирования осуществляется ввод про- граммы в память, проверка правильности ввода по индика- тору, редактирование и отладка программы. Ввод программы в память. Если программу необходимо ввести с нулевого адреса, то нажимаем в автоматическом режиме клавишу очистки счетчика адресов В/О, а затем кла- виши перехода в режим программирования: Р РП в МК «Электроника БЗ-21» и F ПРГ в МК «Электроника БЗ-34». На индикаторе справа появится нулевой адрес счетчика 00. Для занесения программы с произвольного адреса а в автоматическом режиме нажимаем клавишу безусловного перехода БП и клавиши адреса перехода. После перехода в режим программирования на счетчике адресов установится адрес а. Затем последовательно вводим программу, нажимая соответствующие клавиши команд. Визуальный контроль правильности ввода программы осуществляем по индикатору, сверяя коды вводимых команд. Редактирование программы. Если при вводе программы допущена ошибка, то для ее исправления можно воспользо- ваться клавишами ШГ (шаг вперед) и ШГ (шаг назад) для перемещения счетчика на нужный адрес программы и повто- рить ввод команды. Парные команды переходов исправляются совместно перемещением на два шага. При большой разнице адресов ошибочной и текущей команд следует перейти в авто- матический режим, нажать клавишу БП и нужный адрес перехода. После перехода в режим программирования на индикаторе появится адрес ошибочной команды, после чего вносится исправление. Для исключения какой-либо команды из программы переходим на ее адрес и вводим оператор КНОП (нет операции), не изменяя дальнейшую программу. Если при вводе программы некоторая команда пропущена, то пере- ходим на ее адрес, вводим нужную команду и все последую- щие команды. Отметим, что в режиме программирования операции йе выполняются и содержимое регистров оперативной памяти не изменяется. Отладка программы производится в автоматическом режи- ме по просчитанному вручную контрольному цри^еру.] Ее ’ 2 • 6-407 .. 33
проводят для устранения ошибок, допущенных при состав- лении программы. Набираем на клавиатуре исходные данные для контрольного примера и заносим их в регистры памяти. Нажимаем клавишу В/О, если программа начинается с адре- са 00, или БП, а затем клавиши требуемого адреса, если про- грамма начинается с произвольного адреса. Последовательно нажимаем клавишу ПП, при этом происходит пошаговое, выполнение программы. Проверяем работу каждого шага программы, сверяя показания индикатора с теми значениями, которые должны получиться. При пошаговом просмотре программы следует учитывать, что выполнение команды пере- хода и установка адреса перехода осуществляются за один шаг программы. В настоящей книге по каждой лабораторной работе при- ведены отлаженные программы. Поэтому следует проверить безошибочность ввода программы, посчитав контрольный при- мер и сверив ответ с приведенным в книге. Если ответ не совпадает, то повторить ввод программы, если совпадет, то можно выполнять свой вариант задания. 1.8. Составление программы Решение различных задач на ЭВМ любого типа, в том числе и на программируемых микрокалькуляторах, включает в себя следующие этапы: 1) постановка задачи и ее математическое описание; . 2) выбор численного метода решения задачи; 3) составление алгоритма вычислений (или его блок- схемы); 4) составление программы, ее редактирование и отладка; 5) вычисления по программе; 6) анализ полученных результатов. Понятие алгоритма является основным понятием матема- тики. Алгоритм — точно определенное правило действий (программа), для которого задано указание, как и в какой последовательности это правило применять к исходным дан- ным задачи, чтобы получить ее решение. Алгоритмы могут представляться в виде формульно-словесного описания или блок-схемы. Блок-схема алгоритма графически изображает вычисли- тельный процесс, который должен быть реализован соответ- ствующей программой на ЭВМ. При этом отдельные опера- торы или группы операторов называют блоками. Различают такие блоки: арифметические, логические, ввода и вывода 34
данных, блоки начала и конца алгоритма. Арифметические блоки содержат арифметические операторы и изображаются в виде прямоугольников, внутри которых записывается фор- мула вычислений. Логические блоки предусматривают про- верку некоторых условий. Их изображают ромбами, внутри которых записывают проверяемое условие. Блоки ввода и вывода изображаются параллелограммами. Блоки начала и конца алгоритма изображаются овалами. Блоки соединяют между собой в определенном порядке стрелками, которые указывают последовательность вычислений. Из каждого ариф- метического блока выходит одна стрелка. Из логического блока выходят две стрелки. Одна стрелка со словом «Да» указывает па блок, который будет продолжать вычислитель- ный процесс в случае выполнения проверяемого условия. Другая стрелка со словом «Нет» указывает на блок, по кото- рому будут проводиться вычисления, если проверяемое усло- вие не выполняется. Алгоритм и блок-схема делают более понятной и нагляд- ной схему вычислительного процесса данного метода. Для того чтобы метод был «понятен» машине, нужно составить его программу на соответствующем машинном языке. Программа является описанием алгоритма решения задачи, заданным на языке вычислительной машины. Описание про- граммы в программируемых микрокалькуляторах символьно- кодовое, т. е. каждой операции соответствует определенный символ, который машина автоматически преобразует в код. Символы операторов в основном совпадают с обозначениями клавиш, которые необходимо нажимать при вводе программы. Их назначение указывается в инструкции к микрокалькуля- тору. Код каждого оператора приводится в таблице кодов, с помощью которой удобно сверять правильность ввода про- граммы и проводить ее отладку. Символы операторов (команд) в программе соединены в последовательность по определенным синтаксическим правилам. Каждая команда в программе занимает строго определенное место, называемое ее адре- сом. Составленную и введенную в память микрокалькулятора программу можно использовать многократно, изменяя только исходные данные. Числовые данные можно записывать в про- граммную память, но в случае многозначных чисел это делать неэкономно, так как каждая цифра числа, десятичная запя- тая, знак числа, знак порядка занимает по одной ячейке про- граммной памяти. Исходные данные предварительно заносят в регистры памяти, предусматривая в программе команды вызова их содержимого в процессе вычислений. 2* 35
Для прекращения вычислений и индикации результатов в программе обязательно записываем команду автоматиче- ского ОСТАНОВа С/П. Самыми простыми являются линейные программы, в кото- рых команды выполняются последовательно одна за другой в том порядке, в каком они записаны, без повторений. В та- ких программах весь ход вычислений предопределяется зара-' нее однозначно. Если алгоритм метода предусматривает разделение вычис- лительного процесса на несколько ветвей в зависимости от конкретных значений результатов выполнения предыдущих команд, то такие алгоритмы и их программы называют разветв- ляющимися. Они позволяют описывать достаточно сложные вычислительные процессы с помощью логических операторов условных и безусловных переходов. Операторы безусловного и условного переходов изменяют последовательный порядок выполнения программы и обеспе- чивают переход на любой ее адрес. Оператор безусловного перехода обозначается символом БП, за ним указывается адрес перехода. Команды условных переходов предусматри- вают проверку содержимого регистра X на одно из следую- щих условий: X <0, X =0, X >0, X =А- 0. Если условие не выполняется, то следующей по программе будет выпол- няться команда перехода по указанному адресу. Если усло- вие выполняется, то следующей будет исполнена команда, записанная в программе после адреса перехода, при этом адрес перехода не воспринимается. В некоторых задачах приходится повторять одни и те же вычисления в нескольких местах программы. Тогда удобнее эти вычисления выделить в виде подпрограммы и обращаться к ней в любой части основной программы по мере надобно- сти. Подпрограммы записывают, как правило, в конце основ- ной программы. Таких подпрограмм может быть несколько. В частности, подпрограмма может содержать обращение к другой подпрограмме, при этом глубина обращений не должна превышать пяти. Обращение к подпрограмме в микрокалькуляторах производится с помощью команды ПП — перехода к подпрограмме. После этой команды указы- вается адрес перехода. Последним оператором каждой под- программы является команда В/О — возврата в основную программу, по которой возобновляются вычисления по основ- ной программе, начиная с номера команды, следующей после адреса перехода к подпрограмме. Если в программе некоторая группа операций повторяется несколько раз, пока не будет выполняться определенное усло- 36
вне, то такие программы называют циклическими. Группу повторяющихся команд называют циклом. Количество повто- рений цикла контролирует логический оператор, который осу- ществляет передачу управления при выходе из цикла. Цик- лы, в которых количество повторений задается наперед, назы- вают арифметическими. Примером таких циклических про- грамм может служить программа табулирования функции f (к) на отрезке [а; Ы с шагом 1г. При этом вычисление зна- чений функции повторяется п + 1 раз, где п = (Ь — я) /Л, каждый раз при новом значении аргумента х, = а Н- Иг (i = 0, 1, .... п). Число, равное количеству повторений цикла, засылается предварительно в один из адресуемых регистров, называемый счетчиком цикла. При численном решении задач итерационными методами используются итерационные циклы. Число повторений в таких циклах заранее неизвестно, а вы- ход из цикла осуществляется при достижении наперед задан- ной точности. В МК «Электроника БЗ-34» и построенных на его основе микрокалькуляторах имеются специальные операторы авто- матической организации циклов: FLO, FL1, FL2 и FL3. При нажатии клавиши FLN (N = 0, 1, 2, 3) происходит обраще- ние к регистру N, из его содержимого вычитается единица и производится проверка результата по условию X = 0. Если получившаяся разность не равна нулю, то она зано- сятся в PN, а управление передается по адресу, записанному в программе после оператора никла; если разность равна нулю, то выполняется команда, записанная после адреса перехода, а нуль в PN уже не записывается. Прямая и косвенная адресация. Если при программиро- вании адрес регистра памяти или адрес перехода указывается непосредственно в программе, то такую адресацию называют прямой. Она характерна для МК «Электроника БЗ-21». В МК «Электроника БЗ-34», кроме прямой, предусмотрена также косвенная адресация. Суть ее состоит в том, что вместо ука- зания адреса перехода или регистра памяти в команде указы- вается место в памяти (регистр адресации), где расположен нужный адрес. Оператор косвенной адресации занимает один шаг про- граммы и обозначается с помощью клавиши К, клавиши опе- ратора перехода или клавиши оператора обращения к реги- стру памяти N. Например, команды косвенного обращения к подпрограмме, косвенного безусловного и условных пере- ходов по модифицированному адресу, указанному в регистре адресации N, реализуются клавишами: КПП N, КБП N, КХ <0N, КХ = ON, КХ > ON, КХ 0N. При каждом 37‘
выполнении такой команды производится модификация адре- са, хранящегося в регистре адресации N, и осуществляется переход к выполнению команды, записанной по новому (моди- фицированному) адресу. Если логическое условие в условных переходах выполняется, то модификация адреса не происхо- дит, и вычисления, как обычно, проводятся по команде, сле- дующей за оператором перехода. Команды косвенной записи и косвенного вызова реали- зуются клавишами КП N, КИП N. При этом производится модификация содержимого регистра адресации N и запись информации в регистр (или вызов из регистра) с модифици- рованным номером. Регистрам А, В, С, Д соответствуют но- мера 10, 11, 12, 13. Модификация, адреса в зависимости от номера N регистра адресации осуществляется следующим образом: если N = 0, 1, 2, 3, то из содержимого регистра вычитается единица, если N = 4, 5, 6, то к его содержимому прибавляется единица, для всех остальных номеров содержимое регистра не изме- няется. Отметим некоторую особенность двух команд косвенной адресации КП f и КИП f . Команда КП f , как и команда КПО, засылает содержимое РХ в адресуемый регистр, номер которого хранится в Р0. Но в отличие от команды КПО содер- жимое Р0 не уменьшается на единицу, т. е. не модифици- руется. Аналогично команда КИП f производит вызов содер- жимого из адресуемого регистра, номер которого хранится в Р0, без модификации адреса в отличие от команды КИПО. 1.9. Ввод исходных данных и пуск программы Исходные данные, необходимые для решения задачи по введенной в память МК программе, вводятся в автоматиче- ском режиме. Каждое вводимое число набирается на клавиа- туре, затем нажимаются клавиши П и N — номер нужного адресуемого регистра. Если количество вводимых чисел сравнительно велико, то такой порядок ввода требует опреде- ленного напряжения от оператора. Значительно проще преду- смотреть ввод чисел в нужные регистры в самой программе, если это позволяет программная память. Оператору тогда нужно набирать на клавиатуре числа и нажимать после каждого клавишу С/П. Например,'ввод чисел a, b, с, d соот- ветственно в регистры А, В, С, Д можно осуществить сле- дующими командами программы: ПА С/П ПВ С/П ПС С/П ПД ... . 38
Ввод чисел можно осуществлять с помощью клавиши ПП, не предусматривая ОСТАНОВЫ в программе. Программа предыдущего примера содержит команды ПА ПВ ПС ПД, а оператор нажимает клавиши (а) ПП (Ь) ПП (с) ПП (d) ПП. Команда ПП обеспечивает выполнение только одной команды программы. Для ввода массива чисел в идущие подряд адресуемые регистры можно использовать команды косвенной засылки КПК'. Выбор регистра адресации N обеспечивает запись чисел в регистры с возрастающими или убывающими номерами. Например, если выбрать Р4 в качестве регистра адресации, а РО в качестве счетчика цикла, то ввод девяти чисел х1( х2, ..., л-9 соответственно в регистры 5, 6, ...,9, А, В, С, Д можно осуществить с помощью такого фрагмента программы: 4 П4 9 ПО С/П КП4 FLO 04 ... Оператор последовательно нажимает клавиши В/О, С/П, (%]), С/П, (х2), С/П, ..., (х9), С/П. По команде КП4 содержи- мое Р4 (равное вначале 4) модифицируется, т. е. увеличи- вается на единицу, и х, заносится в Р5. По команде FLO из содержимого РО (равного вначале 9) вычитается единица, полученная разность сравнивается с нулем и посылается в РО, а управление передается на команду с адресом 04, т. е. происходит ОСТАНОВ. Следующее число х., заносится в Р6, а содержимое РО становится равным 7. После ввода послед- него числа осуществляется выход из цикла ввода на выпол- нение основной программы. Если выбрать РО в качестве регистра адресации и счет- чика циклов, то ввод /г чисел в регистры 1, 2, 3, ..., п (п с < 13) в последовательности убывания их номеров удобно производить с помощью такого цикла ввода П/г (п - 1) ПО С/П КП f FLO После FLO ставим адрес перехода на команду С/П. В этом случае ввод чисел х2, х2, хп соответственно в регистры п, п— 1, ..., 2, 1 осуществляется последовательным нажатием клавиш (%i) В/О С/П (х.,) С/П ... (хп) С/П. После ввода исходных данных осуществляем вычисления по программе в автоматическом режиме. Нажимаем клавишу В/О, если выполнение программы начинается с нулевого адреса, или клавишу БП и клавиши адреса перехода на а. если программа начинается с адреса а. Затем нажимаем кла- вишу пуска программы С/П. Слабое мелькание на индика- торе свидетельствует об автоматическом вычислении по про- грамме. В некоторых случаях в программе могут быть преду- 33
смотрены ОСТАНОВЫ в процессе вычислений по программе для индикации промежуточных результатов или же ввода данных. Для дальнейшего прохождения программы нажи- маем только клавишу пуска С/П. Если в программе есть ошибки, то возможны зацикливания. В таких случаях сле- дует нажать клавишу останова С/П и исправить ошибку. Для проведения многократных вычислений по отлаженной программе заносим в регистры памяти новые исходные дан- ные, восстанавливаем счетчики циклов, осуществляем очист- ку требуемых регистров памяти, если это не предусмотрено в самой программе, и повторяем пуск программы. 1.10. Запись программы Программа численного метода записывается в виде таб- лицы, в которой указаны: адрес команды, символ оператора, код операции и комментарий по содержанию операций. Такая запись позволяет контролировать правильность ввода программы в память МК по кодам операций, а также делает более наглядным алгоритм вычислений. Применяется также более компактная запись программы в строку с фиксированным числом операторов. При такой записи адреса команд и коды операторов не записываются. Программа на входном языке МК «Электроника БЗ-21» содер- жит 12, а на входном языке МК «Электроника БЗ-34» — 10 операторов в строке. В зависимости от числа команд в про- грамме последняя строка может быть неполной. Такая запись позволяет легко определить адрес любой команды, а также адрес перехода. В инструкции по работе с программой указывается, как перейти к решению нового варианта задания. Если для реше- ния задачи требуется подпрограмма вычисления значений конкретной функции, то опа составляется и записывается в основную программу. В качестве примера приведем описание алгоритма, блок- схемы и программы для приближенного вычисления квадрат- ного корня из положительного числа а с помощью рекуррент- ной формулы: хп+, = п = 0, 1, 2........ (1.1) z \ Хи’ Формула эта была известна еще древнегреческому математику Терону Александрийскому (1 век до н. э.). При любом началь- ном приближении х0 > 0 итерационный процесс (1.1) схо- дится, при этом хп > |/ а (п = 1,2, 3, ...). Вычисления можно 40
прекратить, если для любой заданной точности е > 0 выпол- няется неравенство ^2__а хп — Уа<е, или хп — У а = <%„ — £<е. (1.2) Хп -Г V а хп Словесное описание алгорнт- . ма. . 1. Ввести а, х0, е: (а) П1, (+.) П2, (е) ПЗ. 2. Положить х л'о. 3. Вычислить и — — . J х 4. Вычислить г = ! х — у'. 5. Если z — е < 0, то пере- йти к п. 7, иначе к п. 6. 6. Вычислить: х = j (х + у) и перейти к п. 3. 7. Положить У а -- х. Ко- нец. Блок-схема алгоритма представлена на рис. 7. Запишем программу ал- горитма на языке МК «Элек- троника БЗ-34»: Рис. 7 ИП1 ИП2 4- ПО ИП2 — FX<0 09 / —/ НПЗ — FX<0 15 ИП2 С П ИП2 НПО +2 4- П2 БП 00 Инструкция. В режиме программирования (нажав кла- виши F ПРГ) ввести программу. В режиме автоматической работы (нажав клавиши F АВТ) ввести исходные данные (см. и. 1). Осуществить пуск программы, нажав клавиши В/О, С/П. После ОСТАНОВа на индикаторе высвечивается приближенное значение У а. Методика составления программ и вычислений па микро- калькуляторах содержится в литературе [3, 16, 17, 29—31, 36, 37]. 41
Глава 2. ЭЛЕМЕНТЫ ТЕОРИИ ПОГРЕШНОСТЕЙ 2.1. Классификация погрешностей При решении инженерных задач на любых вычислитель- ных устройствах расчеты, как правило, производятся над приближенными исходными данными. В таких случаях необ- ходимо уметь грамотно организовать вычисления, знать, какие бывают ошибки, правильно записывать приближенные исход- ные данные, оценивать ошибку результата по известным ошиб- кам компонент, определять оптимальное количество знаков в исходных данных, чтобы результат вычислений имел наперед заданную точность, выбирать наиболее рациональный поря- док вычислений, а также алгоритм вычислений, устойчивый к ошибкам округлений. Не имея достаточных навыков практических вычислений, можно при решении задачи получить результат, не имею- щий ничего общего с действительным решением задачи. Ознакомимся с основными понятиями теории погрешностей. Основные источники погрешности приближенного решения прикладных задач следующие. Погрешность математической модели. Она связана с физи- ческими допущениями, не контролируется в процессе числен- ного решения задачи и может уменьшиться только за счет более точного описания физической задачи. Погрешность исходных данных. Значения параметров, вхо- дящих в математическое описание задачи, измеряются экспе- риментально с некоторой погрешностью. Погрешность математической модели и исходных данных называют неустранимой. Ее необходимо учитывать при вы- боре метода решения задачи. Погрешность приближенного метода. При численном реше- нии задачи точный оператор, в котором количество чисел или операций превышает допустимые границы, заменяется при- ближенным, требующим конечного количества операций. Например, заменяют интеграл суммой, функцию—много- членом или строят бесконечный итерационный процесс и обрывают его после конечного числа итераций. Эту погреш- ность будем исследовать при рассмотрении конкретных чис- ленных методов. Вычислительная погрешность, возникающая в результате вынужденного округления чисел, например, конечного числа разрядов ЭВМ. Если решение некоторой задачи непрерывно зависит от входных данных, т. е. малому изменению входных данных 42
соответствует малое изменение решения, то задача назы- вается устойчивой по входным данным. В устойчивом вычис- лительном алгоритме ошибки округления не накапливаются. Рассмотрим общие правила действий над приближенными числами и оценки получающихся при этом погрешностей. 2.2. Абсолютная и относительная погрешности Точность приближенного числа характеризуется поня- тиями абсолютной и относительной погрешности. Абсолютной погрешностью приближенного числа а назы- вается величина А = ’ А — а\, где А — точное значение некоторой величины, а — одно из его приближенных значений. Абсолютная погрешность А представляет только теоретический интерес, поскольку точ- ное значение А не известно. Поэтому на практике чаще поль- зуются предельной абсолютной погрешностью Аа приближен- ного числа а, равной по возможности наименьшему числу, для которого выполняется неравенство А = । А — а\ Да. Значения а и Аа позволяют указать интервал, содержа- щий точное значение А: а — Ай < А < а + Да. Чаще используется более компактная запись А - а Аа. Основной характеристикой точности приближенного числа является его относительная погрешность Поскольку число А неизвестно, то, как правило, полагают Аналогично из неравенства 6 с 6а определяют предель- ную относительную погрешность числа а, полагая Величина 6 характеризует качество приближения. Это без- размерная величина1, обычно ее выражают в процентах. 43
2.3. Запись приближенных чисел. Правила округления Записывать приближенное число в виде а ± неудобно. Поэтому в вычислительной практике часто прибегают к раз- личным приемам, позволяющим только по записи самого приближенного числа а судить о его погрешности. Пусть приближенное число а представлено в виде конеч- ной десятичной дроби: а = ат • 10"! -f- a,n_i • 10т 1 • • • + X X 10т~',+1 (а,„ Ф 0), где а,- — цифры числа a (а,- =0, ..., 9). Значащими цифрами числа называют все цифры в записи числа, начиная с первой ненулевой слева. Например, у чисел а = 0,0503, b = 0,00630500 значащими цифрами являются подчеркнутые цифры. Значащую цифру называют верной, если абсолютная по- грешность числа не превосходит единицы разряда, соответ- ствующего этой цифре. В противном случае цифра считается сомнительной. Например, в записи а = 0,0503, Да = 0,00002; b = = 0,00630500, Д6 = 0,000008 подчеркнутые цифры будут верными. Если исходное число имеет несколько сомнительных цифр, его следует предварительно округлить. Приходится также округлять точные числа, содержащие слишком много или бесконечное количество цифр. Чтобы округлить число до п значащих цифр, отбрасывают все цифры его, стоящие справа от n-й значащей цифры, или,' если это необходимо для сохранения разрядов, заменяют их нулями. При этом руководствуются следующим правилом: последняя сохраняемая цифра не изменяется, если первая отбрасываемая или заменяемая цифра меньше 5, и последняя сохраняемая цифра увеличивается на единицу, если первая отбрасываемая или заменяемая цифра больше или равна 5. При отбрасывании или замене только одной цифры 5 послед- няя сохраняемая цифра не изменяется, если она четная, и уве- личивается на единицу, если она нечетная. Если приближенные числа не носят окончательного харак- тера и с ними предполагается производить еще вычисления, то следует сохранять одну или две сомнительные цифры. По правилу, предложенному акад. А. Н. Крыловым, при- ближенное число надо писать так, чтобы в нем все значащие 44
цифры, кроме последней, были верными и лишь последим;! цифра была бы сомнительной, притом величина абсолютной погрешности не должна превышать половины единицы послед- него оставленного разряда. Величина относительной погрешности приближенного чис- ла связана с количеством п верных знаков этого числа и его первой значащей цифрой соотношением: ба 2а,„ 10п-1 • Эта формула позволяет грубо оценить количество п вер- ных знаков приближенного числа, если известны его относи- тельная погрешность 6а и ат. 2.4. Погрешности функций Пусть задана некоторая функция у ~ / (х„ х2, ..., х„) от п аргументов хр хг, ..., хп, причем значения каждого из ее аргументов х,- определены с некоторыми абсолютными погрешностями Ax,-, i -- 1, 2, ..., п. Требуется найти погреш- ность данной функции. Предположим, что функция непре- рывно дифференцируема в области D. Обозначим величину абсолютной погрешности функции через Ду, т. е. Ду = | / (АТ + Д-*1, x, + ^xi, , хп + Дх„) — —/(хи Х2, . . . , Х„)| Предполагая, что величины Ах, достаточно малы, абсо- лютную погрешность функции будем считать приближенно равной ее дифференциалу п п Ay«idf(x1,x2, ... ,х;|)’ = < У 11£-| Ах,. (2.1) !*=1 Из полученного неравенства определим верхнюю границу для Ду: ’I =S|^.| •<2-2) где через АД(. (i = 1, 2, . . . , п) обозначены предельные абсо- лютные погрешности аргументов х, и через Ду—предельная абсолютная погрешность функции. Оценка для относительной погрешности функции получа- ется путем деления обеих частей неравенства (2.1) на .у,: 45.
6<SiTil^.|Ax‘=Sl^lnH-AX(' 1 = 1 ‘=1 Поэтому предельную относительную погрешность функции у можно принять равной п б»=Е|я-Н4'<- (2,3) 1=1 1 Применим общие формулы (2.2) и (2.3) к некоторым част- ным случаям. 1. Погрешность алгебраической суммы. Пусть у = Xj + х2 + • • 4- хп. По формулам (2.2) и (2.3) имеем: At/ = Л*, + &х2 + • • + (2-4) б^ < max (бх>, 6Ж,.бх„). (2.5) Для разности у = хг— х2 получим аналогично Д,= ДХ1 + ДХ2. (2.6) При этом заметим, что если числа хх и х3 мало отличаются друг от друга, то предельная относительная погрешность разности может стать достаточно большой, хотя относитель- ные погрешности 6X1 и 6Х, малы. Здесь происходит потеря точности. Поэтому при практических вычислениях формулы, в которые входит разность близких чисел, следует преобра- зовать так, чтобы это затруднение было устранено. 2. Погрешность произведения и частного. Пусть у = хгх2... х„, причем числа Xi(i=\, 2, . , п) п положительны. Отсюда In у = У, In xt-. Согласно формуле (2.3) 6// — 6Л1 + 6Х2 + • • • + 6Х;1. (2.7) Если «/ = *-*-, то аналогично 6, = 6,. + 6л2. (2.8) 3. Погрешности степени и корня. Пусть у = хп. Тогда In у = п In х, 6У = ибж. (2.9) Если у — у? х, то In у = In х, 6,= ^6.г (2.10) 46
На основании полученных формул (2.4)—(2.10) погреш- ность результатов действий над приближенными числами выражается через погрешности компонент по следующим правилам: 1. Предельная абсолютная погрешность алгебраической суммы равна сумме' предельных абсолютных погрешностей слагаемых. 2. Предельная относительная погрешность суммы не пре- вышает наибольшей из предельных относительных погрешно- стей слагаемых. 3. Предельная относительная погрешность произведения и частного равна сумме предельных относительных погрешно- стей компонент. 4. Предельная относительная погрешность n-й степени приближенного числа в п раз больше предельной относитель- ной погрешности данного числа (п может быть как целое, так и дробное). В практических расчетах с большим числом операций по- грешность каждой операции обычно не определяется. Вместо этого на практике используют простые правила округления результатов действий над приближенными числами в зависи- мости от числа верных значащих цифр или десятичных знаков в исходных данных. Отметим, что десятичными знаками числа называются все его верные цифры, стоящие справа после запя- той. Сформулируем эти правила. 1. При сложении и вычитании приближенных чисел в ре- зультате сохраняем столько десятичных знаков, сколько их в приближенном данном с наименьшим числом десятичных знаков. 2. При умножении и делении в результате сохраняем столько значащих цифр, сколько их имеет приближенное дан- ное с наименьшим числом значащих цифр. 3. При возведении в квадрат или куб и при извлечении квадратного или кубического корня в результате оставляем столько значащих цифр, сколько их имеет данное число. 4. Во всех промежуточных результатах необходимо брать на одну цифру больше, чем рекомендуется в предыдущих пра- вилах. В окончательном результате эта запасная цифра отбра- сывается. 5. Если некоторые данные имеют больше десятичных зна- ков (в правиле 1) или больше значащих цифр (в правилах 2 и 3), чем другие, то их предварительно следует округлить, сохранив лишь одну лишнюю цифру. 6. Если исходные данные можно брать с произвольной точ- ностью, то для получения результата с k верными цифрами 47
исходные данные берем с таким числом верных цифр, которое лает согласно правилам 1-3 k + 1 цифру в результате. При соблюдении перечисленных правил окончательный результат почти всегда будет иметь все верные цифры. Рассмотрим задачу: определить допустимую погрешность аргументов по заданной предельной погрешности функции. Эта задача решается однозначно только для функции одной, переменной у = f (х). Если f (х) — дифференцируема и г и-) = ~ ~ Если f (х) — дифференцируема =/= 0, то из (2.2) при п = 1 получим л 1 л А, = А„. х !/'(*)! у случае функции нескольких переменных следует вво- некоторые дополнительные ограничения. Можно приме- (2.Н) В дить нить, например, принцип равных влияний, т. е. считать, что в формуле (2.2) все слагаемые равны. Тогда предельные абсо- лютные погрешности дующим образом: Ах.. = аргументов могут быть вычислены сле- I# П । дХ; , i=l,2, . .. , п. (2-12) >хп ’ Если предположить, что предельные абсолютные погреш- ности всех аргументов равны, т. е. ДХ1 = ДХг = • • • = Ах„, то д_______ Лх1 - п (2.13) 2.5. Погрешности вычислений на микрокалькуляторах Одной из основных особенностей вычислений на микро- калькуляторах является конечное число разрядов индика- тора. Поэтому, если число разрядов в исходных данных или промежуточных результатах превышает разрядность индика- тора, то последние разряды такого числа отбрасываются. Если количество вычислений велико, то будет накапливаться погрешность округлений и значительно понижаться точность полученного результата. Потеря точности может происходить при сложении, вычи- тании, умножении чисел разных порядков, например 285340 ф- 4 0,0095 — 285340,01, при делении чисел, если порядок делимого значительно меньше порядка делителя, и вычисле- ния проводятся в режиме с фиксированной запятой. В некото- 48
рых случаях результаты промежуточных вычислений могут попадать в область машинного пуля — на индикаторе не появляется ни одной значащей цифры, или в область беско- нечности — происходит переполнение разрядной сетки. Этого частично можно избежать, если представлять числа в стан- дартной форме с плавающей запятой, что осуществляется автоматически во всех программируемых микрокалькулято- рах. Кроме того, удобно применять нормировку исходных данных и коэффициентов вычислительных формул, умножив их на постоянный множитель, уравнивающий порядки. Значения элементарных функций вычисляются по встроен- ным микропрограммам тоже с некоторой погрешностью. Ее обычно указывают в инструкции. В микрокалькуляторах ис- пользуются разложения функций в бесконечные степенные ряды, представления бесконечными цепными дробями или итерационные процессы, которые приходится обрывать На некотором конечном шаге, что также оказывает влияние на окончательный результат. При вычислениях над приближенными числами погреш- ность результата зависит от порядка выполнения вычис- лений. Пример. Вычислим выражение (1 X 6) : 6 с точностью до двух знаков после запятой: 1,00 X 6,00 = 6,00; 6,00 : 6,00 = 1,00. Поскольку (IX 6) : 6 = (1 : 6) X 6, то 1,00 : 6,00 = 0,17; 0,17 X 6,00 = 1,02. Вычислим, например, сумму 100 -у 0,1 +0,1 + . . . + 0,1, 2000 раз округляя результаты до трех значащих цифр: 100 + 0,1 = 100,1 ~ 100 и т. д. Окончательный результат будет 100. Если вычисления вести в обратном порядке, получим сумму: 0,1 +0,1 = 0,2; 0,2 + + 0,1 =0,3; ...; 99,9 + 0,1= 100; 100 + 0,1 = 100; ...; 100 + + 100 = 200 — окончательный результат. При сложении группами: сложим 1000 раз слагаемые 0,1, затем еще 1000 раз слагаемые 0,1, затем прибавим 100, получим правильный результат — 300. В некоторых задачах алгоритм вычислений может ока- заться неустойчивым к погрешностям округлений. Например, если в системе I 10,1х + 9,9г/ = 20,0, I 9,9х+ 10,1 у = 20,0, имеющей решение (1; 1), изменить на 0,5 % правые части 10,1 .г + 9,9г/= 20,1, 9,9х + 10,1г/ = 19,9,
то решение (1,5; 0,5) отличается от первоначального на 50 %. Чтобы избежать накопления ошибок, необходимо приме- нять следующие рекомендации по выбору наилучшей после- довательности вычислений [291: 1. При сложении большого числа слагаемых на микрокаль- куляторе следует разбить их на группы чисел, близких по порядку, просуммировать слагаемые каждой группы, а затем складывать полученные суммы последовательно от наимень- шей к наибольшей. 2. При умножении нескольких чисел рекомендуется умно- жать самый большой множитель на самый малый (учитывая результат предыдущего умножения). Это предотвращает попа- дание в процессе вычислений в область машинного нуля или бесконечности. 3. Избегать вычитания и деления на разность близких по порядку чисел, преобразуя формулу вычислений. Например, проводить преобразования такого рода: если а^> Ь. 4. Выбирать лучше тот алгоритм, который требует мень- шего количества вычислений. 5. Выбирать по возможности численный метод, устойчи- вый к погрешностям округлений. Глава 3. МЕТОДЫ РЕШЕНИЯ СИСТЕМ ЛИНЕЙНЫХ АЛГЕБРАИЧЕСКИХ УРАВНЕНИЙ 3.1. Решение системы линейных алгебраических уравнений методом Гаусса Многие задачи инженерной практики и вычислительной математики сводятся к решению систем линейных уравнений. Это задачи из области электротехники, радиоэлектроники, механики, статистики, экономики, а также разностной аппро- ксимации дифференциальных и интегральных уравнений, локальной линеаризации систем нелинейных алгебраических уравнений и др. Рассмотрим методы решения системы линейных алгебраи- ческих уравнений: Ах = Ь, (3.1)) 60
где д [aj7] — квадратная матрица порядка п, (<Т|, „4-1 \ / \ . . . J, х = I . . . I — векторы-столбцы. fyl, л + 1 / \ / Если матрица А системы не вырождена, т. е. det А #= 0, то такая система имеет единственное решение, которое может быть вычислено по формулам Крамера. Однако применение формул Крамера для решения системы (3.1) в случае больших п (п >4) нецелесообразно, поскольку это связано с выполнением слишком большого количества операций и значительным накоплением ошибок округления Наиболее известным из точных методов решения системы (3.1) является метод Гаусса. Идея метода Гаусса состоит в. том, что рассматриваемая система приводится к эквивалент- ной ей системе с верхней треугольной матрицей (прямой ход). Из преобразованной таким образом системы неизвестные нахо- дятся последовательными подстановками, начиная с послед- него уравнения преобразованной системы (обратный ход). Алгоритм Гаусса состоит из выполнения однотипных опера- ций, которые легко программируются на современных счет- ных машинах. Однако точность результата и затрачиваемое на его получение время во многом зависят от организации вычислений. Существует много реализаций схемы Гаусса, дающих те или иные преимущества, в частности, есть схемы с заранее предписанным порядком исключения неизвестных, например, схема единственного деления, или же порядок исключения выбирают по ходу процесса (схема с выбором главного элемента). Описание таких вычислительных схем имеется в литературе [2, 4, 9—11, 14, 19, 27, 32]. Схема единственного деления. Считая ап ¥= 0 (ап — веду- щий элемент), делим первое уравнение системы (3.1) на ап %! + «('г *2 Н----Ь = а<уп+1, где а['> = — , 1 = 2, 3, .... п + 1. 4 а11 Затем исключаем х, из остальных уравнений системы, вы- читая из i-ro уравнения первое, умноженное на соответствую- щий коэффициент о(1. Приводим преобразованные таким образом уравнения g а<'>х,= t = 2, 3, ... , п, (3.2) где = а^. — аца^, j = 2, 3, .. . , п -|- 1. 51
Неизвестнее оказалось исключенным из всех уравнений, кроме первого. Далее, предположив, что а& #= 0, делим вто- рое уравнение на и исключаем неизвестное х., из всех уравнений, начиная с третьего, и т. д. до тех пор, пока не переберем все уравнения системы. После таких преобразова- ний получим систему с верхней треугольной матрицей: г Л-» + о(!^2 + + • • • -Г а^хп = а<'Л+1- + а$х3 +-------1- 4- а(£>хп= а(2-\+1, ’.............................’•.................• (3.3) ( Х'1 ~ ап"п+Г Описанный прямой ход метода Гаусса реализуем в том случае, если ведущие элементы 4*-1) (£ = 1, 2, .... п) отличны от нуля. Это условие будет выполнено, если отличны от нуля главные миноры матрицы А. Обратный ход метода Гаусса заключается в нахождении неизвестных из преобразованной системы (3.3). Значение хп определяется из последнего урав- нения, х„_1 из п— 1-го уравнения и т. д.: xk = alk\l+i — S ai,jxj (k = n — 1, n — 2.......1). (3:4) Количество операций умножения и деления вычисляется по формуле: д. _ 2п3 + 9/;2 + п При больших п в процессе решения системы желательно про- изводить контроль вычислений. Для этого используются конт- рольные суммы Z1+! aif„-Н2 = Е °о(1’ = 1, 2, . .. , п), /=1 которые равны суммам элементов строк матрицы, включая и свободные члены. Если над контрольными суммами в каж- дой строке проводить те же преобразования, что и над осталь- ными элементами этой строки, то при отсутствии ошибок: в вычислениях контрольные суммы должны быть равны сум- мам элементов соо1ветствующих преобразованных строк рас- ширенной матрицы. Схема Холецкого. Решение системы линейных уравнений на микрокалькуляторах можно выполнять в автоматическом режиме только в случае небольшого числа уравнений, так
как в памяти хранится п2+ п элементов расширенной матри- цы системы. При больших п метод Гаусса реализуется в полуавтомати- ческом режиме, т. е. строки преобразуются последовательно, а промежуточные результаты нужно записывать в таблицу. В таких случаях удобно проводить гауссовы исключения по схеме Холецкого [14], позволяющей компактно записывать преобразованные элементы исходной матрицы и упростить программирование процесса вычислений. В схеме Холецкого матрица системы А представляется в виде произведения двух треугольных матриц — нижней L и верхней U: Такой алгоритм называют /.(/-разложением (27]. Элементы lij, и вектор-столбец у вычисляются ио фор- мулам: /fl — atl (i — 1, 2, ... > n), (3.5) а.; ич = --(} = 2, 3> •••.«)> У1 “и . , _ “l, п-1-l “11 ’ (3.6) / — 1 /*/ = @4 — likUki G / - /г=1 >1). (3.7) Uij = z- Ian — hkUitj'j (1« li *=i < i < i), (3.8) l—l yi = (@t, П-H likyi^) (1 < I;’ ' /г=1 i < H). (3.9) Преобразованная расширенная матрица системы имеет ^ii W12 «13 • • Win У1 ^21 ^22! «23 • . . U2„ Уг ^31 ^32 i33 l- • • ИЗп Уз ^n\ 4,2 • • • Inn вид: (З.Ю) S-5
Порядок заполнения матрицы (3.10) следующий: выписываем элементы 1ц 1-го столбца (3.5); вычисляем элементы и1;. и 1-й строки (формулы (3.6)); вычисляем элементы /,з 2-го столбца (формулы (3.7)); вычисляем элементы и2. и у2 2-й строки (формулы (3.8) и (3.9)) и т. д. Заполняем всю матрицу в последовательности столбец-строка. /.[/-разложение позволяет представить систему (3.1) в виде LUx = b, а вектор х определить из последовательного ре- шения систем: Ly = b, Ux = у. Прямой ход заключается в решении системы Ly = b, т. е. в заполнении матрицы (3.10) и получении элементов матрицы U и вектора у. При обратном ходе вектор х определяем из системы: %1 -{- U12x2 + Ui3X3 UinXn = ylt + «23*3 + ’ • • + Ы2/Л1 = i/г» ........................................ (3.11) хп ~ Уп- Значения х, находятся по формулам: Хп Ут Xi = Уi— л UikXk (t < л). (3.12) Л=»Ч-1 Вычисления по формулам (3.6) — (3.9) и (3.12) легко реали- зуются на микрокалькуляторах. Схема с выбором главного элемента. Если среди ведущих элементов а/Д-|) окажется нулевой элемент, то перестановкой строк можно переместить ненулевой элемент в А-м столбце на главную диагональ и продолжить вычисления. Если эле- мент близок к нулю, то деление на него уравнения при- водит к большим по модулю преобразованным коэффициен- там. В обратном ходе метода Гаусса на эти коэффициенты будут умножаться неточные значения неизвестных, что может привести к росту погрешности и потере точности. Чтобы избежать существенного влияния вычислительной погрешности, применяют метод Гаусса с частичным выбором главного элемента. В данном методе"в качестве ведущего эле- мента на k-м шаге выбирают наибольший по модулю элемент в k-м столбце и перестановкой строк переводят его на глав- ную диагональ. 54
В схеме Гаусса с выбором главного элемента ведущий (максимальный по модулю) элемент находят среди всех эле- ментов матрицы, и соответствующее ему значение Xk исклю- чают из всех уравнений, среди коэффициентов которых еще не выбирались главные элементы. Метод Гаусса с выбором главного элемента прост и чис- ленно устойчив для хорошо обусловленных линейных систем (см. п. 3.3). Схема Гаусса—Жордана, или метод полного исключения [34], заключается в одновременном исключении какого-либо переменного из всех уравнений системы, кроме одного. Его удобно реализовать на микрокалькуляторах, учитывая огра- ниченность их памяти, так как такая схема вычислений не требует выполнения обратного хода. На первом шаге этого метода выберем ведущий элемент an =£ 0 (перестановкой уравнений системы можно добиться того, что ап будет наибольшим по модулю коэффициентом при Xi). Разделим первое уравнение системы на ап, во всех остальных уравнениях исключим xlt т. е. сведем расширен- ную матрицу системы к виду: где а'1/ = а,./ап, = а,7 — а<'> • а,,, / = 2, 3, ... , «4-1; i = 2, 3, .... п. На втором шаге выберем ведущий элемент (можно сде- лать перестановку строк 2, . .. , п таким образом, чтобы он был наибольшим ио модулю). Разделим второе уравнение на а^>, исключим х2 из всех уравнений, кроме второго: О 0 а(2) пЗ где а® = ai’.’/a*'*, а(4> = ц<‘> — а,(2) • а('>, t = 1, 3, • • •> а; / — 2>f If If If £f = 3, ... , n 4- 1. 55
После п шагов получим матрицу 1 0 0 ... О О 1 о ... о О 0 О " * 1 и численные значения неизвестных х, = i = 1, 2, ... , п. Контроль вычислений можно осуществлять так же, как и в схеме единственного деления, используя контрольные суммы. 3.2. Вычисление определителя и обратной матрицы методом Гаусса В прямом ходе метода Гаусса над элементами матрицы А производятся элементарные преобразования, которые не из- меняют определитель матрицы, кроме операции деления на ведущий элемент. Матрица преобразуется к треугольному виду с единичными диагональными элементами, ее определи- тель равен единице. Если в прямом ходе строки матрицы не переставляются, то знак определителя не изменяется. Та- ким образом, определитель невырожденной матрицы системы равен произведению ведущих элементов в прямом ходе исклю- чения Гаусса Д==йеЫ = япа<>) ...а!;;-’). (3.13) Для его вычисления осуществляем прямой ход метода Гаусса, как и при решении системы, только без преобразований век- тора Ь. При решении линейной системы определитель можно вычислить попутно. Если применяется метод исключения с выбором главного элемента, то в (3.13) необходимо добавить множитель (—1)Л, где k — количество перестановок строк и столбцов. Все вычислительные схемы метода Гаусса позволяют осу- ществлять одновременное решение систем линейных уравне- ний с различными правыми частями: Ах = &<*>, k = 1, 2, ..., т. При этом количество вычислений увеличивается только на преобразование новых столбцов правых частей, что дает значительную экономию времени счета. В частности, если вместо столбцов b(k} выбирать столбцы единичной матрицы порядка п: = (0, 0, ..., 1, ..., 0) (еди- ница на Л-м месте, остальные элементы — нули), k ==1, 2, .6
п, то решение х(/г> системы Ах = будет k-u столбцом обратной матрицы Л-1. Таким образом, для вычисления обратной матрицы тре- буется решить одновременно п систем уравнений с п неиз- вестными. Проводим последовательные исключения неизвес'/ ных в расширенной матрице f Ян й12 °21 ° 22 а,1] а, 12 (после п шагов) (после п шагов) X™' 4П) Справа получим элементы обратной матрицы 3.3. Погрешность решения системы линейных уравнений Введем понятия нормы вектора и матрицы, а также поня- тие обусловленности матрицы, с которыми связаны вопросы оценки погрешности решения системы линейных уравнений 110, 20, 21]. Рассмотрим линейное пространство Rn л-мерных векто- ров X (xlt X.,, .... х„). Нормой вектора х называют вещественное число :|лН;, удовлетворяющее условиям: 1) >0, причем рх|| = 0 тогда и только тогда, если х — 0; 2) сх;! — ! с: • х, где с — число; 3) -\х + j х '-НУ;!- В частности, функция при любом р > 1 -удовлетворяет аксиомам нормы. Норма 57
такого типа называется нормой Гёльдера с показателем р. Среди гёльдеровых норм наиболее распространенными явля- ются следующие: 11x1!! = £ KI, i|x||2 = (S Ы2К А=1 А=1 II-v JL = max |хй|. (3.14) Норма ||х||2 называется также евклидовой и обозначается II х||Е. Все нормы векторов равноценны в том смысле, что если последовательность векторов {xk — (х'[, .....х*)} сходится по некоторой норме к вектору х° = (xj, х°, , х°), т. е. lim |i xk — х° |! = О, то она сходится к вектору х° и по любой другой норме.. В конечномерном нормированном пространстве из сходимости по норме вытекает покоординатная сходимость и наоборот. При этом предполагается, что последовательность векторов сходится покоординатно к вектору х°, если для всех *=1,2.........п выполнены соотношения lim xk = х?. . 4 I Множество матриц одинаковой размерности является ли- нейным пространством. Введем в этом пространстве норму матрицы таким образом, чтобы ее можно было рассматривать и как норму оператора. Нормой матрицы А называется вещественное число |: Л , удовлетворяющее следующим аксиомам: 1. А р > О, р А = 0 тогда и только тогда, если А = 9 (0 — нулевая матрица); 2) аА = | a | • || А |!, где а — число; 3) рa + Bji<IIлр + Норма матрицы НЛ|| называется согласованной с нормой вектора р х р, если для любых Анх ||Лх||< ||Л|| • ||х||. Отметим, что с одной и той же нормой вектора могут быть согласованы различные нормы матриц. Пусть || А I] — норма матрицы, согласованная с заданной нормой вектора || х ||. Норма ||Л|1 называется подчиненной
норме вектора || х||, если найдется такой вектор л =£ 0, что ||/М = 1М1МИ|. т. е. ;|Л||= sup |1Лж||. (3.15) 1И1=1 Таким образом, среди всех норм, согласованных с задан- ной векторной нормой, подчиненная норма является мини- мальной. Отметим, что для любой нормы вектора имеется хотя бы одна подчиненная норма матрицы. Любая норма матрицы удовлетворяет неравенствам: ||£!|> 1, где Е — единичная матрица; || А !| • || Л-11| > 1, Л — невырожденная матрица. Для подчиненной нормы выполняются соотношения ||£1| = 1; Ц(Л±Л)-1||<Т—|| АВ ||< || Л || • || ВЦ. (3.16) При этом предполагается, что соответствующие операции имеют смысл. Наиболее употребительны следующие нормы матриц: М ill = max S \аи\- (3.i7) 1</<т ( = 1 Эта норма матрицы А (п х т) подчинена норме вектора ЦлЦр Спектральная норма квадратной матрицы || А ||2 = max о,, (3.18) I где о, = Hi — сингулярные числа матрицы Л, а ц,- — соб- ственные числа матрицы А1 А (Лт — транспонированная мат- рица). Если матрица А — симметрическая, т. е. ЛТ = Л, то Н Л li2 = max! X;', где Х(- — собственные числа матрицы А. Спектральная норма матрицы подчинена евклидовой норме вектора ||x||2. Норма m || Л||„=шах S |а17| (3.19) 1<1<М /=1 подчинена норме вектора Евклидова норма матрицы п Г?1 1 M|IE = (S S К IT (3.20) i=i /=i согласована с нормой вектора || х II2- В общем случае евклидова норма матрицы не является подчиненной. 59
Известно [21], что для симметрической матрицы А среди в ех возможных норм И Л I', согласованных с некоторой нор- мой вектора, спектральная норма || Л||2 будет минимальной. Пусть ненулевой вектор х является собственным вектором матрицы А, которому соответствует собственное число X, т. е. Ах = Хх. Тогда для любой согласованной нормы 1| А ’| получим |Х| • || х || = || Хх || = || Ах 1| <1| А || |; х ||, 'ot- ic уда XI < || А (3.21) Таким образом, модули собственных чисел матрицы А не пре- восходят любой ее согласованной нормы. В практических задачах элементы матрицы А и вектора b в системе (3.1) суть приближенные числа. При решении систе- мы произвольным точным методом неизбежно появляются сшибки округления. Установим зависимость между погреш- ностью решения и свойствами матрицы А. Будем интерпретировать погрешности вычислений как погрешности, вызванные возмущением правой части. Пусть л = х + Ах — решение возмущенной системы А (х + Ах).= = b + А&, где А& — возмущение вектора Ь, Ах — соответ- ствующая погрешность точного решения х. Тогда Ах 4- А Ах = b + AZ>; ААх = А&; Ах = Л-1А&, || Ах || < || Л-11] || А&||. Учитывая, что b = Ах и |&|| < || А || • || х ||, можно записать |, Ах |i • || &|| < || А || • || Л-11 • ljx|| • || А&||. Отсюда следует Таким образом, относительная погрешность решения 6Г — = -—[А оценивается через относительную погрешность пра- t !! ДО I; вой части Оь = -ц посредством неравенства б, <|| Л || • I] Л’11| • бй. (3.22) Величина cond (Л) = || Л I] • || Л-11| (3.23) называется мерой или числом обусловленности матрицы А. Она является максимально возможным- коэффициентом усиле- ния (cond (Л) > 1) относительной погрешности решения при возмущении правой части. Аналогичные результаты имеют место при изменении коэффициентов матрицы. 60
В частности, если матрица А — симметрическая и выбрана спектральная норма матрицы i[ A j|2, то IIЛII, = max IЧ (Л) I, || 4-Ц •= max л)|. i и число обусловленности равно max | i Л) | cond (Л) — \ . (3.24) х ' min 1 (Л) ] ' 7 i Как следует из неравенства (3.22), погрешность решения системы (3.1) может оказаться значительной, если матрица системы характеризуется большим разбросом собственных чисел. Матрицу называют плохо обусловленной, если соответствую- щая ей обратная матрица будет неустойчивой, т. е. малым из- менениям в элементах матрицы соответствуют значительные изменения в элементах обратной матрицы [32]. Иногда в качестве меры отклонения точного решения х от вычисленного х - х + Дх принимают невязку: г = b — Ах. Однако в общем случае из малости невязки не следует ма- лость ошибки i\x 133]. Но если система хорошо обусловлена, то малая невязка свидетельствует об удовлетворительной точ- ности решения. Погрешность решения будет незначительной для систем, у которых диагональные элементы матрицы преобладают над остальными. Решение системы линейных уравнений методом Гаусса с выбором главного элемента обеспечивает малые невязки и в случае хорошей обусловленности системы метод будет устойчивым. В настоящее время для больших ЭВМ составлены про- граммы решения систем линейных уравнений, в которых учи- тывается оценка числа обусловленности матрицы [33]. 3.4. Лабораторная работа 1. Решение системы линейных алгебраических уравнений методом Гаусса—Жордана Программа 1 решения системы трех линейных алгебраи- ческих уравнений по схеме Гаусса—Жордана в автоматиче- ском режиме вычислений: 61
Адрес Команда Код Содержание операций 00 игп 61 01 ИП2 62 02 ПП 53 03 04 15 П8 15 48 Первый шаг метода 05 ИПЗ 63 06 П9 49 07 ПП 53 08 31 31 ) 09 ПП 53 Второй шаг 10 15 15 11 ПП 53 Третий шаг 12 23 23 13 П2 42 Засылка х2 в регистр 2 14 С/П 50 Останов; индикация х2 15 ПП 53 16 23 23 Преобразование правой части 17 ПВ 4L (на I, II, III шагах) 18 ИПЗ 63 19 ПС 4 С 20 ПП 53 1 Преобразование третьего столбца и 21 31 31 | второго столбца на первом шаге 22 В/О 52 23 П2 42 24 F, 25 Засылка элементов столбца с ведущим 25 П1 41 элементом в регистры 1, 2, Д 26 ИПЗ 63 27 пд 4, 28 1 01 (Номера регистров 4 — С хранятся в 29 3 03 | регистре 0 30 по 40 31 К И по ГО 32 кипо г° 33 кипо г° 34 ИП1 61 35 13 36 пз 43 37 ИП2 62 Преобразование элементов одного 38 X 12 39 И ' столбца 40 КП| le 41 ХУ 14 42 ИПЗ 63 43 ипд 6П 44 X 12 45 11 46 В/О 52 62
Инструкция. Элементы расширенной матрицы системы засылаем в регистры по схеме: 1 4 7 А\ 2 5 8 В. 3 6 9 С/ После вычислений (В/О С/П) значения xt, хг, х3 хранятся соответственно в регистрах: А и Y, 2 и X, 3. Время счета — 45 с. Контрольный пример. Решить систему ' lOxj — 3,99х, + 7,99х3 = 15.40, 2.50%!—10х2 — 2,50хэ ———II, 7,99xj -f- 3,99х2 -р 10х3 = 24,17 методом Жордана—Гаусса. В режиме программирования (F ПРГ) вводим программу. В ре- жиме автоматической работы (F АВТ) вводим элементы расширенной матрицы системы: 10 П1 П9 1—1 П5 2,5 П2 /-/ П8 7,99 ПЗ П7 3,99 П6 /-/ П4 15,4 ПА 11 /—/ ПВ 24,17 ПС Нажимаем клавиши В/О, С/П. После останова записываем результат: хг = 1,2333263, (НПА) хг = 1,3664304, (НПЗ) л3 = 0,83312482. Вычис- лим невязки = r3 = 10-6, г2 = —10~6. Округлив результаты до двух десятичных знаков, запишем ответ: хг = 1,37; х2 = 1,23; х3 = 0,83. Программа 2 одного шага метода Гаусса—Жордана с выбо- ром главного элемента для решения системы п уравнений (п < 9) в полуавтоматическом режиме: ПВ ПО С/П ПЭ С/П КП| FL0 04 С/П НПО ж ПС ИПВ ПО С/П КИП| ИПС х — FL0 14 БП 08 Распределение регистров памяти: Номер регистра 0 1 ... А В с Д Переменная счетчик ци кла ai. Л-Н аП п a.kla;k aik Инструкция. 1. В режиме программирования (F ПРГ) ввести про- грамму. 63
2. В автоматическом режиме (F АВТ) ввести исходные данные: п, элементы ведущей (/-й) строки и ведущий (k-ii) элемент по схеме: (п) В/ОС/П (ajk) С/П (ар) С/П... (a/r ft_() С/П С/П ... (<2;, Л-1-1) С/П, т. е. ведущий элемент ввести первым. 3. Ввести /г-й элемент ведомой строки: С/П. 4. Вводить остальные элементы ведомой строки: (a(i) С/П ... (щ-_ *_]) С/П (at-, j+i) С/П ... (а,, „+,) С/П. После каждого из ОСТАНОВов записать с индикатора значе- ние преобразованного элемента. Для преобразования следующей ведомой строки перейти к п. 3. Контрольный пример. Решить методом Гаусса—Жордана с выбором главного элемента систему ' 3,1X1 + 2,7хг — 3,3х3 + 0,6^4 = 3,2, 1,2x1 + 3,8х2 + 4,2х3 + 2,4х4 = 14,7, 2,3xj + 1,1х2 + З,7х3+1,1х4 = 10,2, • 0,4xj Ж 2,5х2 — 2,0х3 + 3,4х4 = 5,6. Вводим программу, нажав клавиши F ПРГ и клавиши программы. I шаг. Ведущим (наибольшим по абсолютной величине) является элемент а2я = 4,2. Выполняем п. 2 инструкции по работе с програм- мой: F АВТ 4 В/О С/П 4,2 С/П 1,2 С/П 3,8 С/П 2,4 С/П 14,7 С/П. Для преобразования первой строки вводим значение (п13 = —3,3) С/П и осуществляем вычисления по схеме: 3,1 С/П (списываем а,||/ = 4,0429), 2,7 С/П (списываем а\У = = 5,6857), 0,6 С/П (списываем а}4’ = 2,4857), 3,2 С/П (списываем = 14,7500). Аналогично преобразуем третью и четвертые строки. Результаты удобно заносить в табл. 3.1. II шаг. Ведущим элементом является = 5,6857. Отметим, чго коэффициенты при х3 преобразовываться не будут. Введем п = 3, ведущий элемент aty и остальные элементы первой строки: 5,6857 С/П 4,0429 С/П 2,4857 С/П 14,7500 С/П. Преобразуем элементы второй строки: 3,8 С/П 1,2 С/П (списываем atf = —1,5020) 2,4 С/П (списы- ваем = 0,7387) 14,7 С/П (списываем = 4,8419). Аналогично преобразуем третью и четвертую строки. Результаты заносим в табл. 3.1. III шаг. Ведущим элементом является </32/ = 2,8411. IV шаг. Ведущий элемент — - = 2,6355. .64
Таблица 3,1 Номер шага 9 и Я -л l2 “ 14 а15 0 3,1 1,2 2,3 0,4 2,7 3,8 1,1 2,5 -3,3 4,2 3,7 -2,0 о,6 2,4 1,1 3,4 3,2 14,7 10,2 5,6 1 4,0429 1,2 1,2429 0,9714 5,6857 3,8 —2,2476 4,3095 0 4,2 0 0 2,4857 2,4 — 1,0143 4,5429 14,7500 14,7 —2,7500 12,6000 II 4,0429 —1,5020 2,8411 —2,0930 5,6857 0 0 0 0 4,2 0 0 2,4857 0,7387 —0,0317 2,6589 14,7500 4,8419 3,0808 1,4202 III 0 0 2,8411 0 5,6857 0 0 0 0 4,2 0 0 2,5308 0,7219 -0,0317 2,6355 10,3660 6,4706 3,0808 3,6898 IV 0 0 2,8411 0 5,6857 0 0 0 0 4,2 0 0 0 0 0 2,6355 6,8228' 5,4599 3,1252 3,6898 1 1 1 1 х2 = 1,2000 х3 = 1,3000 х4 = 1,1000 х4 = 1,4000 Искомые решения х; можно определить на IV шаге в процессе вычисления коэффициентов разделив их на соответствующие ведущие элементы. Промежуточные данные округляем до четвертого знака после запятой, результат — до первого знака. Ответ-, х4 = 1,1; х2 = 1,2; х3 = 1,3; х4 = 1,4. Время счета и ввода 2 мни. Отметим, что по результатам выполнения IV шага легко вычислить определитель исходной матрицы. Если осуще- ствить две перестановки (первого и второго столбцов, второй и третьей строк), то преобразованная матрица будет диаго- нальной, поэтому det А = (—1)- • 5,6857 • 4,2 • 2,8411 х X 2,6355 ж 178,8. 3 и-467 65
Задания к лабораторной работе 1. Решить приведенные ниже системы методом Гаусса—Жордана: 1) 5,7хх + 3,3х24- 1,Зх3 = 2,1, 3,5xj -f- 4,7jt2 4- 2,1 х3 = 1,7, 4,1.1-j 5,8х2 — 11,7х3 = 0,8; 2) 4,7х, 2,8х, + 1,9х3 = 0,7, 2,1*1 + 3,4х2+ 1,8л-э =1,1, 4,2xj — 1,7л-2 + 9,Зх3 = 2,8; 3) 3,1х1 + 2,8л-2+ 1,9х3=0,2, 1,9x4 + 3,1х2 + 2,1л-э = 2,1, 7,5x4 + 3,8х'2 -и 9,8х3 = 5,6; 4) 9,1 х2 4- 5,6х2 4- 7,8х3 = 9,8, 3,8x4 4- 5,1 л-2 4- 2,8х3 = 6,7, 4,1X1 4- 5,7х2 4- 7,2х3 = 5,8; 5) 3,3xj 4- 2,1х2 4- 2,8х2 = 0,8, 4,1 Xj 4- 8,7х2 4* 4,8х3 = 5,7, 2,7xj 4- 1,8х2 4- 7,1х3 = 3,2; 6) 7,6xj 4- 5,8х2 4- 4,7х3 = 10,1, З,8х14-4,1х24-2,7х3 = 9,7, 2,9xj 4- 2,1х2 4~ З,8х3 = 7,8; 7) 3,8x4 — 2,5х2 4- З,7х3 = 6,5, 0,5xj 4- 0,84х2 4- 1,7х3 = 0, l,6xj 4- 2,Зх2 — 4,5х3 = 4,3; 8) 5,4xi — 2,Зх2 + З,4х3 = —3,5, 4,2X1 + 7-7-4 — 2<3хз = 2,7, 3,4хх 4- 2,4х2 4- 7,8х3 = 1,9; 9) 8,6x14- 1,8х2 — 4,7х3 = 3,8, 2,7хх — 3,6х-2 4- 1,9х3 = 0,4, l.Sxj -J- 4,5х2 4- 9,Зх3 = —1,6; 10) 5,6X1 4-2,7х2—1,7х3 = 1,9, 3,4xi — 9,6х2 — 6,7х3 = —2,4, 0,8хх 4- 1,3х2 4- З,7х3 = 1,2; 11) 2,7xi + 0,9х2 — 1,5х3 = 3,5, 4,5xi — 8,8х2 4- 6,7х3 = 2,6, 5,1X1 + 3,7х2 — 7,4х3 = —0,14; 12) 9,5X1 — 3,5х2 + 7,4х3 = 2,5, 3,1 xt — 8,6х2 — 2,Зх3 = —1,5, 0,8X1 4-7,4х2 — 9,5х3 = 6,4; 13) 8,8X1 4- 6,7х2 — 1,2х3 = 5,2, 6,4xi4- 11,3х2 —2,7х3 = 3,8, 2,4X1 — 4,5х2 4- 8,5х3 = —0,6; 14) 9,4X1 — 6,2х2 — 0,5х3 = 0,52, 3,4X1 + 8,Зх2 4- 0,8х3 = —0,8, 2,4x±— 1,1х24- 3,8х3= 1,8; 15) 7,8х! -|- 5,Зх2 4- 4,8х3 — 1,8, 3,3хх 4- 7,1х2 4- 1,8х3 = 2,3, 4,5xj 4- 3,3х2 4- 2,8х3 = 3,4; 16) 3,8xi 4- 4,1х, — 2,Зх3 = 4,8, ’ —2,1Х! 4- 3,9х2 — 5,8х3 = 3,3, l.Sxj -|- 1, 1х2 — 2,1х3 = 5,8; 17) 1,7X1 — 2,2х2 4- 3,0х3 = 1,8, 2,1X1 4- 1,9х2 —2,Зх3= 2,8, 4,2x1 + 3,9х2 — 3,1 х3 = 5,1; 18) 5,8xj -)- 3,3х2 — З,2х3 = 4,5, 2,5xj — 7,8х2 4- 3,3х3 =7,1, 6,5xi — 7,1х2 4- 9,8х3 =6,1; 19) 7,lxi4-6,8x,4-6,lx3 = 7,0, 5,0x1 + 9,8х2 -J- 5,Зх3 = 6,1, 8,2X1 + 7,8х2 4- 8,1х3 = 5,8; 20) 5,0xi + 3,1х2 4- 4,0х3 = 5,0; 4,0xi 4- 4,5х2 — 4,0х3 = 4,9,_ —2,0xi — 3,7х2 6.0х3 = 2,7; 21) 9,0X1 + 5,2х2 - 5,0х3 = 7,0, 3,8xi — 6,0х, 4- 4,0х3 = 5,0, 7,8xj “Г 5,0х2 — 9,0х3 = 5,0; 22) 8,7X1 — 2,0х2 -|- 4,5х3 = 2,0, 2,0xj -J- 4,0х2 — 1,8х3 = 3,0, l,6xi 5,0х2 4- 6,Зх3 = —2,0; 23) 6,3xi “г 5,0х2 — 0,6х3 = 1,0, 3,4X1 — 7,0х2 З,4х3 = 2,0, 0,8X1 4" 1 >0х2 -}- З,5х3 = —2,0; 24) 4,5xi -{- 2,0х2 — З,7х3 =4,0, 2,lxi 4- 8,0х2 4- 5,8х3 = —3,0, Xj 4- 1,1 х2 — 2,5х3 = 5,0; 25) 1,2X1 + 0,Зх2 — 0,5х3 = 1,7, l,3xj + 5,7х2 — 1,2х3 = 7,8, 0,8xi 4- 4,1 х2 4- 9,1х3 = 5,4, 26) 6,2X1 + 1 >3х2 — 0,7х3 = 2,3, 0,4хх + 5,7х2 4- 1 ,Зх3 = 1,9, 2,lxi 4- 0,7х24- З,4х3 = 1,0; 27) 5,3X1 — 0,7х2 -}- 1,1 х3 = 5,0, 1,2X1 4~ 6,1 х2 — 1 >Зх3 = 6,0, 2,1X1— 1,4х24-9,7х3= 10,0; 28) 4,8х! — 1,2х2 4- 2,4х3 = 5,1, 2,7xj 4-9,8х2 4- З,1х3 =10,2, 0,8X1 — 0,Зх2 -|- З,7х3 = 4,7; 66
29) 6,7*t + 1,3х2 — 2,7*з= 8,1, 30) 5.8*! 0,9*.2 + 1,1*3 = 6,4, l,3*i -|- 5,7*2 + 1,3*з = 5,1. 3,1*1 + 2,3*2 — 5,4*з = 6,3; 0,2*! -|- 6,4*2 — 0,5*з = 3,1, 0,8*! — 0,4*., J-2,7*з — 3,2. 3.5. Метод прогонки Большинство технических задач сводится к решению сис- тем линейных алгебраических уравнений, в которых матрицы содержат много нулевых элементов, а ненулевые элементы расположены по специальной структуре, например, ленточ- ные, квазитреугольные матрицы. Задачи построения интерполяционных сплайнов, разност- ные методы решения краевых задач для дифференциальных уравнений сводятся к решению системы алгебраических урав- нений с трехдиагональной матрицей А. В матрице А все эле- менты, не лежащие на главной диагонали и двух соседних параллельных диагоналях, равны нулю. Такие системы можно записать o(x.-i + biX; + C(X1+1 = di, 1 < i < n; tZj = 0; cn = 0. (3.25) Выбор наибольшего элемента при исключении неизвестных методом Гаусса в таких системах делать нельзя, поскольку перестановка строк разрушает структуру матрицы. Наиболее часто к решению систем с трехдиагональной матрицей приме- няют метод прогонки, который является частным случаем метода Гаусса. Прямой ход метода прогонки заключается в исключении элементов а, в системе (3.25). Так как aL = 0, то первое урав- нение системы примет вид + CjX2 = dv с d' Выразим xt через x2:xi =—-1-x2 + тд и подставим во &1 bi второе уравнение системы. Получим уравнение, связывающее х2 и х3, и т. д. Пусть уже получено соотношение Xi = kiXi+x + cpt- (i = 1, 2, .... n). (3,26) Понизим в (3.26) индекс на единицу и подставим значе- ние х(_1 в i-e уравнение системы (3.25): afii^Xi + а(ф(_1 + biXi 4- c,x(+i = d(- Отсюда -с(. + dj Xi bi +a.*._/‘+l + 3* 67
Срагнивая это выражение с (3.26), получим рекуррентные формулы для вычисления ki и <р£ в прямом ходе: k = ~с‘ • = + Лг_1 ’ -F (3.27) Учитывая, что сц = сп = 0, полагаем k0 — <р0 = х,!+1 = 0. Обратный ход осуществляется по (3.26). Почти во всех задачах, приводящих к решению системы (3.25) с трехдиагональной матрицей, обеспечивается условие преобладания диагональных элементов । i > i а,1 4- i Ci!. Это обеспечивает существование единственного решения и достаточно хорошую устойчивость метода прогонки относи- тельно ошибок округления. Программа 3 решения системы п линейных уравнений с трехдиагональной симметрической матрицей методом про- гонки (п с 5) в автоматическом режиме: t 3 X 2 — ПО 0 П6 БП 16 кпо XY С/П X кпо вх F, X С/П — /-/ 1/х С/П F, F, X — X FL0 10 31 С/П КИП6 X КИП6 — /-/ КИП6 F, БП Распределение регистров памяти: Номер регистра 0,6 1, 4, 7, А 2, 5, 8, В Переменная счетчики циклов Vi, • • • . Фп-1. • • • . <Р1 Инструкция. После ввода программы в режиме программирования пере- ходим в режим автоматической работы и осуществляем ввод коэффициентов и вычисления: (П) В/О С/П (Zy) С/П (dj С/П (а,) С/П (&2) С/П (щ)С П ... (а„)С/П(У(Ж)С/П (списываем значение хп) С/П (списываем значение хп_ г) ... С И (списываем значение лу). 68
Контрольный пример. Решить методом прогонки систему = 5,6, Л'] -р Н“ x;i ~ 7.2, *2 + 4хз + xi — 7.8, х3 + 4xt + x-t = 8,4, х4 + 4х.- = 7,4. После ввода программы нажимаем клавиши F АВТ 5 В/О С/П 4 С/П 5, 6 С/П 1 С/П 4 С/П 7,2 С/П 1 С/П 4 С/П 7,8 С/П 1 С/П 4 С/П 8, 4 С/П 1 С/П 4 С/П 7.4 С/П (списываем х5 = 1.4999999) С/П (списываем х4 = 1.4000001) С/П (спи- сызаем х, = 1.3) С/П (списываем х„ = 1.1999999) С/П (списываем х, — =1.1). Время ввода коэффициентов и счета ~ 3 мин. Ответ: Xj = 1,1; хг = 1,2; х3 = 1,3; х4 = 1,4; = 1,5. Программа 4 решения системы линейных уравнений про- извольного порядка п с трехдиагональной матрицей методом прогонки в полуавтоматическом режиме: сх ПА С/П ИПА И ПС X — пв С/П ИПВ ПС С/П ПП 27 БП 01 ПП 27 ХУ ипд X — пд С/П БП 19 ИПД ИПА X — ипв Ч- пд С/П В/О Распределение регистров памяти: Номер 1111 регистра | А | В | С | D Переменная | а(. | b. | с(. | Инструкция. 1. В режиме программирования (F ПРГ) ввести про- грамму. 2. В автоматическом режиме (F АВТ) нажать клавиши В/О С/П и вводить коэффициенты системы построчно, нажимая после каждого ввода клавишу С/П. После ввода коэффициен- тов Ci и di записать их преобразованные значения с/ и di. Коэффициенты заносятся в такой последовательности: В/О С/П (&j) С/П (cj С/П (записать cj) (dj С/П (записать d/) (<т2) С/П (Ь2) С/П (с2) С/П (записать с2) (d2) С/П (записать d2) ... (а„) С/П (Ь„) С/П (dn) БП 17 С/П. 69
3. После ОСТАНОВа выполнить обратный ход: записать х„, ввести (c,t_j) | (d,i—i) С/П, записать х:1__\, ввести (с„_2) t (^-2) С/П, записать х.2, ввести (с)) j1 (d)) С/П, записать хР 3.6. Итерационные методы решения линейных систем Итерационные методы решения системы (3.1) основаны на выборе некоторого начального приближения х<°> с последую- щим его уточнением по рекуррентным формулам до получе- ния приближения х(к) с заданной точностью. Процесс итера- ций легко реализуется на ЭВМ. Он самоисправляемый, т. е. отдельные ошибки в вычислениях некоторого приближения не отражаются на окончательном результате решения. Сходимость итерационного процесса можно доказать, ис- ходя из общего принципа сжатых отображений [20, 21]. Принцип сжатых отображений. Множество X называется метрическим пространством, если каждой паре элементов х, у £ X поставлено в соответствие неотрицательное веще- ственное число р (х, у) (расстояние), удовлетворяющее сле- дующим аксиомам: 1) Р (-V, у) > 0, р (х, у) =0 тогда и только тогда, если X = у, 2) р (л:, у) = р (у, х) (аксиома симметрии); 3) р (х, у) « р (х, г) Н-р (г, у) для любых элементов х, у, ZQX (неравенство треугольника). Элементы метрического пространства называются точ- ками. Элемент х(0) метрического пространства X называется пределом последовательности (х(А)) точек х(,), х(2),... , х(/г|, ... .. . , принадлежащих X, если последовательность расстояний р(х(0), х(/г)) сходится к нулю при k-^-oo, т. е. lim р(х<0), x(ft)) = 0. k -* 00 Последовательность {x(/t)} на множестве X может быть сходящейся или расходящейся в зависимости от выбора мет- рики р (х, у). Последовательность {х^} называется фунда- ментальной, если для любого числа е > 0 найдется такой номер М (е), что р (хт, х(т)) < е при k, т> N (е). Если в мет- рическом пространстве X каждая фундаментальная последо- вательность сходится к некоторому пределу, являющемуся 70
элементом этого же пространства, то пространство X назы- вается полным. Пусть X и У — два произвольных множества. Если каж- дому элементу х Q X поставлен в соответствие один и только один элемент у £ У, то говорят, что на X задано отображе- ние (оператор) А множества X в У и записывают у -- = Ах. Отображение А метрическою пространства X в себя назы- вается сжимающим, или сжатием, если существует такое число 0 <а <1, что для любых двух точек х, у £ X выпол- няется неравенство р (Ах, Ау) <ар(х, у). (3.28) Точка х называется неподвижной точкой отображения А, если Ах = х. Для уравнений вида Ах = х имеет место теорема о неподвижной точке (или принцип сжатых отобра- жении), сформулированная польским математиком С. Ба- нахом. Теорема. Всякое сжимающее отображение, определенное в полном метрическом пространстве X, имеет одну и только одну неподвижную точку х*. Последовательность {х(к)}, определяемая равенством х<"+‘> = Ах(">, k = 0, 1, 2, ... , (3.29) сходится к точке х* при любом выборе начального прибли- жения х(0) С X. Имеет место оценка р(х*, х?'Д < р (х(0), х(’>)- (3.30) Доказательство. Пусть х((1) — любая точка в X. Поскольку А есть отображение пространства X в себя, то все последовательные приближения х(к)£Х (k = 0, 1, 2, .. .). Из условия сжатия отображения следует: р(х(2), x(i)) = p(Ax!i), Ах(С)) < ар(х(1), х(0)), р(х(3), х(2)) = р(Лх(?), Ах(|)) <ар(х!'2), х(1)) <а2р(х(|), х(0)), р(х(/г+’), х(/;)) < Др(х(,), х(0)). Покажем, что последовательность (х(/Д— фундаменталь- ная. Пусть mp>k. Из неравенства треугольника вытекает: р (х(/,,), Х(к)) < Р (Xlfc+l), Х(/г)) + р (х(/г+2), x(/'+l)) + • • • • • •. -|- р (х(т>, х("!--‘)) < (а* + а/;-I-1 + • • + ат-') р (х(|>, х(0,) = = —*(0))- (3.31) 71
Так как 0<а<1, то для любого е >0 существует номер N (е) такой, что при /?> N (е) и т > Л? (е) будет выполняться неравенство р (х{"’}, х{к}) С е, т. е. последовательность фундаментальна. Из полноты пространства X следует существование предела х* = lim х!к}, fa-f ОС причем х*^Х. Докажем, что х*—неподвижная точка отображения А. Из неравенства р(/)хи), Лл*) < ар (хм, л*)<е следует непрерывность сжимающего отображения. Поэтому Ах* = Л lim Xм = lim Ах{к) — lim = х*. k-> «О k -» « k -» то Далее докажем единственность неподвижной точки. Пред- положим, что существует две неподвижные точки х* и Х\ Тогда Ах* = х*, Ау* = у* и р(л:*, у*) = р(Лл:*, Лу*)< <ар(х*, у*). Так как 0<а<1, то р(л:*, у*) = 0, т. е. X* = у*. Если в неравенстве (3.31) перейти к пределу при /п->оо, то получим оценку (3.30). Теорема доказана. Запишем неравенство (3.31): р(л(т), л(А)) <р(л(А+1), х(А)) + р(х'к^2}, л(,г+|)) + ••• • • • + р (л(т), х("'~:)) < ар (х(/?), х(к~})) + а2р (Xм, Л(А-Д+ • • • • • • + а';,-*р(Xм, х!ММ) = (а + а2 + • • • + ат~к) х X р (хм, лг,А-|>) = а^1~^са 1р(х(А), х(А-1)). При т-^оо получим р(х*, х'"’)< (3.32) Метод простой итерации (метод Якоби). Преобразуем ис- ходную систему алгебраических уравнений Ах=Ь к виду х = Вх + С. (3.33) Предположим, что выбрано начальное приближение х’^' = (лг|0), л*^!, ... , х;-;) к точному решению х. Обычно по- 72
лагают х,0) = С. Вычислим последовательные приближения в методе простой итерации х® = Вх,/г-'> + С, k = 1, 2........... (3.34) Итерационный процесс (3.34) называется сходящимся к ре- шению х системы (3.33), если при любом выборе начального приближения х(о) выполнено условие lim i, х^-х'-\ = 0. it -* Как было отмечено выше, из сходимости по норме следует также и покоординатная сходимость последовательных при- ближений. Выясним условия сходимости метода простой итерации. Вычитая (3.33) из (3.34), получим х^ — х = В(х(к~^ — х). (3.35) Из этой рекуррентной формулы следует х^ — х = В (х(к~'> — х) = В2 (х^ -х)=-- • • • =Bk (х(0> — х). Таким образом, вектор У'-' -+ х при k ->оо тогда и только тогда, если степень матрицы Вк стремится к нулевой матрице 0 при k -> со . Известно [21], что для любой квадратной матрицы В мат- рица В’1 0 при k -> оо тогда и только тогда, когда все ее собственные числа по модулю меньше единицы. Из этого утверждения следует необходимое и достаточное условие схо- димости метода простой итерации. Теорема. Пуст система (3.33) имеет решение. Метод прос- той итерации (3.34) сходится при любом начальном приближе- нии л(0) к решению х тогда и только тогда, если все собствен- ные числа матрицы В по модулю меньше единицы. На практике таким критерием трудно воспользоваться, так как задача определения собственных чисел более слож- ная, чем решение линейной системы. Удобнее в качестве кри- терия сходимости использовать норму матрицы. Учитывая, что собственные числа матрицы В и ее норма связаны нера- венством (3.21) сформулируем достаточные условия сходимости: метод прос- той итерации (3.34) сходится к решению системы (3.33), если любая согласованная норма матрицы В меньше единицы, || В || <1. (3.36) 73
Если выбрать в пространстве R" норму вектора || лг |1 и вве- сти метрику р (х, у) = || х — у || , то отображение (3.33) будет сжатием, если любая согласованная норма матрицы В меньше единицы, т. е. условие (3.36) следует из принципа сжатых отображений. Учитывая выражения (3.17)—(3.20) для матричных норм, достаточные условия сходимости метода простой итерации (3.34) можно представить так: 1!£ д = max 5 I Ы < h I </<п f=l рВ|>„ = гпах £|^|<1, (3.37) 1<1<Л /=1 п п |£=( V 2)1.’2<1. 1=1 /=1 Если исходную систему алгебраических уравнений Ах = b свести к виду (3.33): = — S х< + ^7 • а" * °- Z = 1 - 2- то при наличии в матрице А диагонального преобладания S |о., 1=1,2, . . . , п, (3.38) /=1 /*< выполняется условие сходимости метода простой итерации, так как |1 <1. Для погрешности метода простой итерации согласно (3.32) получим оценку i| X - Х^ I! < , д J! Х^ — *<*-'>!!. (3.39) Метод сходится со скоростью геометрической прогрессии, знаменатель которой равен || В || . Для достижения заданной точности е, т. е. выполнения неравенств |Х,-— Х<*>|<Е, 1= 1, 2......п, итерации обычно продолжают до тех пор, пока не выпол- нятся условия » = 1, 2, (3.40) 74
Для характеристики скорости сходимости итерационных методов вводится понятие порядка метода [2]. Считают, что метод имеет р-й порядок, если существуют Сг > 0 и С2 < 00 такие, что р(х'*+1), х) < С2 (р (х(*>, х))р при условии р(лс(Л), х) < Ср При малых значениях Q ите- рационный процесс сходится тем быстрее, чем больше р. В частности, метод простой итерации имеет первый порядок, а рассматриваемый ниже метод Ньютона — второй порядок. Метод Зсйделя. В итерационном методе Зейделя последо- вательно уточняются компоненты решения системы (3.33) следующим образом: при вычислении (k + 1)-го приближен- ного значения х,- при г > 1 используются уже вычисленные ранее (£ + 1)-е приближения неизвестных xlt х2 ... , х^ и (Ере приближения неизвестных х,, xt+l, . . . , х„: Г^+,) = q + Ь11х\к> + t12x‘*> + • • • + хЦ-+1) — с. ^(:х{Л+1) + • • • 4- I-|Х'^+‘> + + М*’ + + М?’> (3-41) X(*+D = с„ + + • • + Ь,,.Х<*+') +••• •••+&„, n-lXj'iV + b'>'iXn}’ k = °> !> 2.................... Систему (3.33) запишем в матричной форме: = С + Вр¥'« и: + В2Х<’!\ k = 0, 1, 2, . . . , (3.42) где ° О I Ь21 О = I Ь31 Ь32 'Ьп1 ЬП2 ... О о . ,Ьп Ь12 ... Ь1,^ ... О О \ 0 Ьгг ... Ьщ ' ... о 0 , В2 = 0 0... Ьзп Ьп,п-\ о 7 4 о о ... ь,ш вг + в2 = в. Метод Зейделя (3.42) эквивалентен методу простой итерации для системы х = Cj + В3Х, где В3 = (Д-Д])-1В2, C^iE-B^C. Поэтому условия сходимости процесса итерации легко пере- формулировать для данного случая: метод Зейделя сходится, 75
если любая норма матрицы В3 меньше единицы. Области схо- димости методов простой итерации и Зейделя не совпадают» но пересекаются. В частности, при выполнении условия (3.38) метод Зейделя сходится. Обычно метод Зейделя дает более быструю сходимость, чем метод простой итерации, хотя это бывает не всегда. В практических вычислениях итерационный процесс пре- кращают, если два последовательных приближения отли- чаются меньше наперед заданного е в смысле выбранной нормы, || ж(*) — х^-'Чсе. (3.43) Решение системы алгебраических уравнений (3.33) итера- ционным методом Зейделя реализуется программой 5 (при п <9). Последовательные приближения выписываются на каждом шаге и сравниваются с предыдущими. Программа 5 решения системы п (п. <9) линейных алгеб- раических уравнений итерационным методом Зейделя по фор- мулам (3.41). Адрес Команда Код Адрес Команда Код Адрес Команда Код 00 01 02 03 04 05 06 07 08 09 ипд П1 F, С/П ипд П2 3 + ПО ХУ бг 41 25 50 6Г 42 03 10 40 14 10 11 12 13 14 15 16 17 18 19 кипо С/П X + ИП2 ИП1 FX = 0 22 F, ГО 50 12 10 62 61 11 5Е 22 25 20 21 22 23 24 25 26 27 28 29 ипо ПС F, FL2 10 кпс FL1 03 БП 00 60 4С 25 58 10 LC 5L 03 51 00 Распределен: Номер регистра е регистров пам 0, С яти: 1, 2 3 В д Переменная Адрес xi Счетчики цик- лов .... п Инструкция. 1. В режиме программирования (F ПР Г) ввести программу. 2. В режиме автоматической работы (F АВТ) ввести на- чальное приближение решения и количество уравнений: (4°’). ПЗ (.^ч) П4 ... (хЛ П(пф 2) (ц) ПД 76
3. Нажать клавший В/О С/П. Приступить к вводу коэф- фициентов и вычислениям по схеме: (с1)С/П (Ьп) С/П ... (Ь1п) С/П (прочесть Xi”) (+) С/П (Ь21) С/П ... (&2л) С/П (прочесть х^) ... (с„) С/П (/>,„) СП ... (Ьпп) С'П (прочесть х<"). Для нахождения .каждого следующего приближения по- вторяем вычисления по той же схеме. Контрольный пример. Решить систему: Г л1= 1,99 + 0 • Л1 — 0,243х? — 0,168хэ, х2 = 2,94 — 0,304л-1 -г 0 • х2 — 0,212хэ, I х3 — 2,53 + 0,126хх + 0,1 72х2 + 0 • х3 методом Зейделя с начальным приближением х^ = х,0' = х^ = 2. Итерации продолжать до совпадения трех десятичных знаков. Результаты вычислений заносим в таблицу (k — номер итера- ции). k х!*> х«) М *3 1 1,168 2,161 3,049 2 0,953 2,004 2,995 3 1,000 2,001 3,000 4 1,000 2,000 3,000 Ответ: хт = 1,000; х2 = 2,000; х3 = 3,000. Глава 4. ЧИСЛЕННЫЕ МЕТОДЫ РЕШЕНИЯ НЕЛИНЕЙНЫХ УРАВНЕНИЙ И СИСТЕМ 4.1. Численные методы решения нелинейного уравнения с одним неизвестным Пусть дано уравнение /М=0, (4.1) где / (х) — алгебраическая или трансцендентная функция 77
с одним неизвестным. Если f (х*) = 0, то х* называется кор- нем уравнения (4.1) или нулем функции f (х). Будем предпола- гать, что уравнение (4.1) имеет лишь изолированные корни, т. е. для каждого корня существует окрестность, не содержа- щая других корней этого уравнения. Приближенное вычисление изолированных действитель- ных корней уравнения (4.1) состоит из двух этапов: 1) отделения корней — выделения отрезка, принадлежа- щего области существования функции f (х), на котором рас- положен один и только один корень; 2) уточнения приближенных корней, т. е. вычисления их с требуемой точностью. Процесс отделения корней уравнения (4.1) основан на теореме Больцано—Коши: если непрерывная функция f (х) принимает на копнах отрезка [а; &] значения разных знаков, т. е. f (а) f (b) < 0, то внутри этого отрезка содержится по крайней мере один корень. Этот корень будет единственным, если производная f (х) существует и сохраняет постоянный знак внутри интервала [а; (?]. Замечание. Отделение корней уравнения (4.1) можно вы- полнить графически, если удается построить график функции и найти приближенно точки его пересечения с осью абсцисс. Иногда проще заменить уравнение (4.1) эквивалентным ему уравнением ср (х) = g (х), а затем найти приближенно абс- циссы точек пересечения графиков функций у — (р (х) и у = = g W- Рассмотрим методы уточнения приближенных корней. Метод половинного деления, или метод бисекции, яв- ляется самым простым и надежным алгоритмом нахождения корней уравнения (4.1). Пусть функция f (х) непрерывна на отрезке кг; /г], на концах его принимает значения разных зна- ков, т. е. f (а) f (t?) < 0, и производная /' (х) сохраняет на этом отрезке знак. Требуется найти приближенное значение корня уравнения (4.1), принадлежащего отрезку [tz; Ь], с точностью е. В методе половинного деления отрезок [а; &] делим пополам. Если f= 0, то полагаем х* = В противном случае обозначим через kf, bj ту часть отрезка, на концах которой функция принимает значения разных зна- ков. Процесс последовательного деления продолжаем до тех пор, пока не будет выполняться одно из условий: 1) / тогда х* = -п-2 - ; 2) при некотором п длина отрезка, содержащего корень, 78
станет меньше заданного 2е, т. е. \Ьп — а„!<2е, тогда 11 п “F Ь/1 X 2 Количество итераций, необходимое для достижения точ- ности е, можно оценить заранее: Ь — а . о < 2е, отсюда п > In Ь — а\ ~2ё~/ In 2 Метод устойчив к ошибкам округления. Но сходится он медленно. При увеличении точности значительно возрастает объем вычислительной работы. На практике метод часто ис- пользуют для грубого определения начального приближения к корню, а затем применяют быстрее сходящийся итерацион- ный метод. Описание алгоритма. 1. Ввести исходные данные а, Ь, е. 2. Вычислить f (а). 3. Вычислить х — f (х). 4. Если f (х) =#0, то перейти к п. 5, иначе к п. 7. 5. Если х — а > е, перейти к п. 6, иначе к п. 7. 6. Если f (п) • f (х) > 0, положить а = х, f (а) = f (х), иначе положить b — х. Перейти к п. 3. 7. Вывести значения хи/ (х). Конец. Программа 6 вычисления корня уравнения /(х) == 0 на отрезке [а; Ь], где / (о) / (Ь) < 0, методом половинного деления с точностью е в автоматическом режиме вычислений. Адрес Команда Код Адрес Команда Код Адрес Команда Код 00 ИПА 6- 14 П2 42 28 04 04 01 ПП 53 15 FX 0 57 29 ИПВ 6L 02 39 39 16 35 35 30 ПА 4— 03 П1 41 17 ИПВ 6i 31 ИП2 62 04 ИПВ 6|_ 18 ИПА 6- 32 П1 41 05 ПС 4С 19 ИП0 60 33 БП 51 06 ИПА 6— 20 + 10 34 06 06 07 ИПС 6С 21 11 35 ИПВ 6L 08 + 10 22 FX >0 59 36 С/П 50 09 2 02 23 35 35 37 ИП2 62 10 -— 13 24 ИП1 61 38 С/П 50 11 пв 4L 25 ИП2 62 39 • • • 1 . . « 12 ПП 53 26 X 12 •• • /W 13 39 39 27 FX> 0 59 B/oJ 52 79
Распределение регистров памяти: Номер регистра 0 А в с 1 2 3, ... , 9 Переменная е а ь Ь, х НФ НФ свободны Инструкция. 1. Составить подпрограмму вычисления значений функции f (х). Значение аргумента содержится в РХ. 2. В режиме программирования (F ПРГ) ввести про- грамму и подпрограмму. 3. В автоматическом режиме (F АВТ) ввести исходные данные: (е) ПО (а) ПА (Ь) ПВ. 4. Нажать клавиши В/О С/П. После ОСТАНОВа за- писать с индикатора приближенное значение корня к*. На- жать клавиши ИП2 и записать значение f (х*). 5. Для нового счета составить подпрограмму вычисления значений новой функции, ввести ее с адреса 39 и перейти к п. 3. Контрольный пример. Найти корень уравнения х5 — 2х — 5 = 0. на отрезке [2; 3] с точностью е = 10-3. Подпрограмма вычисления значений функции f (х): f FX2 2 — X 5 — В/О. В результате вычислений получим х* = 2,0947265, где три цифры после запятой точные. Ответ: f (х*) = —0,0019536, х* = 2,095. Время вычислений 1 мин 20 с. Метод простой итерации, или метод последовательных при- ближений, является одним из самых общих методов решения уравнения (4.1). Заменим уравнение f (х) = 0 эквивалент- ным ему уравнением х = ф (х). (4.2) Это можно сделать многими способами, положив, например, Ф (х) = х + g (х) • f (х), где g (х) — произвольная непрерыв- ная знакопостоянная функция. Выберем некоторое нулевое приближение х0 £ [а; Ы корня уравнения (4.2) и подставим его в правую часть. Получим xL = ф (х0). Дальнейшие при- ближения вычислим по формулам х„+1 = ф(х„) (п=1, 2, ...). (4.3) Если последовательность {х„) сходится, т. е. существует предел limX,; ••= х*, то переходя к пределу в (4.3), получим для непрерывной функции lim Х.,_;_; = Ф (lim х,;), или х* = ф (х*). 80
Таким образом, предел х* является корнем уравнения (4.2). Решение х* уравнения (4.2) является неподвижной точ- кой отображения ср (.г). Условия сходимости итерационного процесса (4.3) получим из принципа сжатых отображений (см. п. 3.6). Пусть функция ср (х) дифференцируема на [а; Ы, причем все ее значения принадлежат отрезку [а; р]. Если ввести расстояние р (х, у) = х — у’, то множество точек отрезка [о; Ь] будет полным метрическим пространством. Используя формулу Лагранжа, получим: Р (ф (х), ф (у)) = i ф (х) — ср ((/) I - 1 ф' (с)\\х — у ; < q • р (х, у), где точка с лежит между точками х и у, х и у £ \а; &]. Таким образом, если выполнено условие ;ф'(х);<д<1 для всех х^[а; &], (4.4) то отображение будет сжимающим и процесс итерации (4.3) сходится к единственному корню уравнения (4.2) на отрезке [а; (?] независимо от выбора начального приближения х0 £ Е [а; Ь]. Очевидно, что чем меньше q, тем быстрей сходимость. На основании (3.32) получим оценку погрешности метода простой итерации (4.3): . х*| х„ — х;1_11 (4.5) (/! = 1, 2, 3, .. .). При 0 <ф' (х) < q < 1 процесс итерации можно прекра- тить, если для двух последовательных приближений обеспе- чено выполнение неравенства 1 х; — х,.;_1 ’ < е> (4.6) где е — заданная точность. В частности, при 0<Сф'(х)^4 и при —1 < ф'(х) < 0 х,, будет приближенным значением корня х* с точностью е, т. е. • х* — х:, '<.е, если ] x, t— — х„_11<е. При ^<ф'(х)<1 выполнение условия ]х;|— — x„_i|<e может оказаться недостаточным для получения приближения с точностью 8. В этом случае итерации прекра- щают, если для трех последовательных приближений выпол- няется неравенство [19]: ал Если j ф' (х) j трудно оценить, то для оценки погрешности удобно использовать неравенство (4.7). щ
Геометрическая интерпретация метода итераций для слу- чаев 0 < гр' (х) < 1, —1 < ср' (х) < 0, ср' (х) > 1 и ср' (х) <— 1 представлена на рис. 8,а—г. Замечание. В уравнении (4.2) функцию ср(х) нужно вы- брать так, чтобы выполнялось условие (4.4). Например, если для решения уравнения х2 = а выбрать итерационный про- цесс хп_|_1 = — , то он будет расходящимся, в то время как хп „ 1 I । а \ последовательные приолижения x,1+i = х„ Ч—(сходятся очень быстро при любом х0>0. Для уравнения х = 4 —2х процесс итераций (4.3) на отрезке [1; 2] расходится, но если уравнение преобразовать к виду x=log2(4—х), то процесс сходится. На практике итерирующую функцию часто выбирают в виде ср (х) = х — а/(х). При этом выполнение условия (4.4) сходимости итерационного процесса обеспечивается выбором постоянного числа а, удовлетворяющего условию: | ср' (х) | = | 1 — а/' (х) | < 1, или 0 < а/' (х) < 2, 2 откуда а/' (х) > 0 и | а j — , где | /' (х) j > т. 62
Программа 7 решения уравнения х = <р (х) методом про- стой итерации по формулам Х;,+1 = ср (х„) (п = 0, 1, 2, .. .) в полуавтоматическом режиме: ПО......................С/П БП 00 Программа вычисления <р (х) При написании программы вычисления <р (х) следует учесть, что значение х хранится в РХ и РО. После ввода программы вводим начальное приближение х0 и осуществ- ляем пуск: (х0) В/О С/П. После ОСТАНОВа спишем зна- чение хР Для вычислений последующих приближений х„ достаточно нажимать клавишу С/П. Контрольный пример. Найти приближенное решение уравнения х + 1п х = 5 на отрезке [3; 4] с погрешностью, не превышающей е = 10-1. Запишем уравнение в виде х = 5 — In х, тогда ср (х) = 5 — In х, ф' (х) = —у, причем —1 < —i < 0, если х Е [3; 4], т. е. выполня- ется условие сходимости иптерацпоиного процесса. В результате вы- числений получим последовательные приближения корня Х0 А1 х2 х3 х4 4 3,6137056 3,7152661 3,6875498 3,6950378 х5 Хе х7 х3 3,6930092 3,6935585 3,6934098 3,6934499 В последующих итерациях четыре цифры после запятой совпа- дают. Ответ: х = 3,6934. Метод Ньютона—Рафсона, или метод касательных, яв- ляется наиболее часто употребляемым методом уточнения корней, пригодным для решения алгебраических и трансцен- дентных уравнений. Пусть в уравнении f (х) = 0 функция f (х) дважды непре- рывно дифференцируема на отрезке [а; Ы, содержащем иско- мый отделенный корень х*, причем производные отличны от нуля, знакопостоянны и начальное приближение корня х0 принадлежит отрезку 1а; Ь]. Геометрически это означает, что график функции у = / (х) в любой точке отрезка [а; Ь] имеет 83
касательную и не имеет на отрезке экстремумов и точек пере- гиба. Выберем на кривой произвольную точку Л40 (х0, / (*о))> хп £ [а; Ь] и проведем касательную к кривой в этой точке. Уравнение касательной: У — f (*о) = f (*e) (* — *o)- Найдем точку xt пересечения касательной с осью абсцисс. Учитывая, что //, = О, получим —/ (х0) = f (х0) (х1— х„), отсюда получаем первое приближение корня: Через точку /И] (xlt f (х,)) снова проведем касательную к кривой, точка пересечения которой с осью Ох даст нам вто- рое приближение корня, и т. д. Продолжив описанный процесс построения касательных и вычисления точек их пересечения с осью Ох, получим фор- мулу итерационного метода Ньютона—Рафсона: г - г f "+‘ - х„ {, (Хп} (4.8) (п = 0, 1, 2, . . .). Геометрически метод Ньютона—Рафсона означает замену дуги кривой па каждой итерации касательной к ней в точке х,г (рис. 9). Метод можно рассматри- вать как частный случай ме- тода простых итераций (4.3) для функции ср (х) = х — — / (xj / f'(x), тогда ср' (х) = = f (v) f" (х) / (/' (х))2. По- скольку ф' (х*) = 0, то вви- ду непрерывности ф' (х) вбли- зи корня х* выполняется ус- ловие сходимости итерационного процесса (4.4). Таким образом, если нулевое приближение выбрано доста- точно близко к корню, то метод Ньютона всегда сходится. При произвольном нулевом приближении метод (4.8) сходится, если для всех х g [а; Ь] выполнено условие । / (х) • /" (х)! . (/' (х))3 (4-9) Отметим одно важное достаточное условие сходимости метода Ньютона—Рафсона. Пусть f (а) f (£>) < 0, a f (х) и /" (х) отличны от нуля и сохраняют определенные знаки па 84
отрезке [а; b}. Тогда для любого х0 £ [о; 6], удовлетворяющего условию f (х0) • Г (х0) > О, (4.10) метод сходится [14]. При выполнении условия (4.10) прибли- жение х,1+1 будет лежать между х„ и х*, т. е. ближе к корню, поэтому при возрастании п приближения хп монотонно стре! мятся к точному решению. Неудачный выбор начального приближения (х0 = а на рис. 9) может привести к тому, чю последующие приближения выйдут за пределы отрезка 1а; И. Близкое к корню начальное приближение метода Нью- тона—Рафсона можно получить с помощью другого метода, например метода половинного деления. Оценим скорость сходимости метода вблизи простого корня. Воспользуемся формулой Тейлора 0 = f (х*) = f (х„) + Г (х„) (х* - х„) + j Г (с) (х* - х„)\ где с лежит между х,г и х*. Отсюда I \лп) 4 I \лп) Но на основании (4.8) „ I (Хп) _ „ поэтому х*-х„+, = -| Д^(х*-х..,)2. (4.12) Обозначим через М наибольшее значение | f (х)|, а через т — наименьшее значение j f (х)' на отрезке [а; 6]. Тогда абсолютные погрешности двух последовательных приближе- ний хп и связаны неравенством I х* — х,,.^ '• < ^\(х* — х„)2. (4.13) Оценка (4.13) показывает, что погрешность каждого нового приближения уменьшается пропорционально квадрату по- грешности предыдущего. Поэтому, если начальное приближе- ние х0 выбрать так, чтобы ^!х*-х0.<1, то каждое новое приближение удваивает число верных деся- тичных знаков, т. е. сходимость будет квадратичной [14]. Метод Ньютона—Рафсона обеспечивает быструю сходи- мость, если известно хорошее начальное приближение корня. Если два последовательные приближения х,[+1 и хп, полу- 85
ченные по методу Ньютона—Рафсона, совпадают с точностью t. то это еще не гарантирует совпадения с топ же точностью приближения х„+1 с точным решением х*. Для оценки погреш- ности можно воспользоваться следующим неравенством: |х* —х„+1 | < I x,1+i — х„-2. (4.14) Таким образом, для определения корня уравнения (4.1) по методу Ньютона—Рафсона с точностью е итерационный процесс продолжаем до тех пор, пока не получим > х„+1 — х,,; с ]/г2те/ЛТ (4.15) Если х* — кратный корень уравнения (4.1), так что /' (х*) = 0, то метод Ньютона—Рафсона имеет линейную схо- димость, т. е. сходится со скоростью геометрической прогрес- сии [19]. Кратные корни можно находить так же, как корни урав- нения Г to = о, или /(«) (х) = О, п = 1, 2, ... , k — 1, где k — кратность корня. Замечание. Если производная [' (х) мало изменяется на [й; Ь] и ее вычисление громоздко, то итерации можно прово- дить по формуле: х,1+1 = х„-^ (н = 0, 1, 2, . ..). (4.16) Итерационную схему (4.16) называют модифицированным мето- дом Ньютона. Метод секущих. Если вычисление производной f (х) за- труднительно по каким-либо причинам, то более удобно при- менение метода секущих. Здесь производная /' (х„) заменяется первой разделенной разностью, найденной по двум послед- ним итерациям: Г (xn) = ,{x';}~fx(Xn-'}. ХП -хп-1 Подставив выражение f' (х„) в (4.8), получим итерацион- ный процесс метода секущих: ^+1 = (/г=1> 2- <4-17) Для начала процесса нужно задать х0 и хг. На каждом шаге метода секущих участок кривой заменяется секущей, проходящей через точки с абсциссами хп и хп_г (рис. 16). 86
то метод секущих yi. а х, х, b х Рис. 10 Установлено, что если х* — корень уравнения f (х) --- О, а f' (х*) ¥=0, f" (х*) у=0 и Г (х) — непрерывная функция, то существует такая окрестность точки х*, что если х0 и хх — различные точки этой окрестности, сходится к х*. При этом [19] у i х,1+1 — У' < С х,: — х* \р, где С Ф 0 — const, р ж 1,6. Таким образом, метод секу- щих сходится медленнее ме- тода Ньютона, однако на каж- дой итерации требует вычисле- о ния только функции. Следует иметь в виду, что вблизи корня х*, особенно если он кратный, значения f (х„) и f (x„_t) малы и близки, при делении на их разность в методе возникает потеря значащих цифр. Поэтому итерации в методе секущих проводят до тех пор, пока разности —х„ [ практически перестанут убывать. 4. 2. Лабораторная работа 2. Приближенное решение нелинейного уравнения методом Ньютона—Рафсона Изложенный выше метод Ньютона—Рафсона реализуется на микрокалькуляторе в виде программы 8. Программа 8 приближенного решения уравнения f (х) = 0 методом Ньютона—Рафсона по формулам (4.8): Адрес Команда Код Содержание операции 00 01 02 03 04 05 06 07 08 09 10 11 12 13 а' ПП (а) П2 ПП 13 П1 ИП2 НПО ХУ' ПО С/П В/О В/О 53 а 42 53 13 41 62 13 60 14 11 40 50 52 52 | Вызов подпрограммы вычисления /' (х„) Занесение /' (х„) в Р2 | Вызов подпрограммы вычисления / (х„) Занесение / (хп) в Р1 f (% ) Вычисление хп+< = х„ — -г, . “. f (*п) Индикация значения x,!+j 1 Подпрограмма вычисления / (хп) Подпрограмма вычисления /' (х„) 87
Распределение регистров памяти: Номер регистра 0 1 2 Переменная хп / (хп) /' (ХП) Инструкция. 1. Составить подпрограммы вычисления функ- ции / (х) и ее производной f' (х). Значение аргумента содер- жится в РО. 2. В режиме программирования (F ПРГ) ввести про- грамму и подпрограммы. Адрес а отвечает адресу начала под- программы вычисления производной )' (х). 3. В автоматическом режиме (F АВТ) занести начальное приближение х0: (х0) ПО. 4. Вычислить последующие приближения корня, нажимая клавиши В/О С/П. После ОСТАНОВов списать с индикатора значения хХ) х2 и т. д. При необходимости значение функции ./ (хп) можно вызвать из Р1. 5. Вычисления продолжать до совпадения п знаков после запятой в двух последовательных приближениях. Для оценки погрешности можно воспользоваться формулой (4.14). Если погрешность е задана наперед, то можно воспользо- ваться неравенством (4.15). Контрольный пример. Найти корень уравнения х3 — х2 + 1 = = 0 на отрезке [—1; —0,5]. Итерации проводить до совпадения четы- рех знаков после запятой. Оценить погрешность. Имеем: f (х) = х3 — х2 -I- 1, /'(х) = Зх2—2х, /" (х) = 6х— 2, т = — min ] Зх2— 2х! > 1, М — max j 6х— 2 | = 8. [—I; —0,5] [-1; -0,5] Если | х,1+х — х„ | С 10-4, то ! хп+1 — х* | • Ю~8 < Ю-7. По- скольку /(—1) f (—1)> 0, то полагаем х0 = —1. Составляем подпро- граммы вычисления / (х) и }' (х), начиная с 13-го адреса: ИПО | FX2 х ВХ - 1 + В/О ИПО 3 X 2 - ИПО X В/О Значение а соответствует адресу 22. Последовательные прибли- жения удобно заносить в таблицу: п 0 1 2 3 4 хп —1 -0,8 —0,75681818 —0,75488146 —0,75487767 После четырех итераций вычисления прекращаем. Ответ', х = = —0,7548777 ± 0,0000001, f (х) = 0. Задания к ла^оратэрн-.й рлбзтг ?. Найти корень уравнения на отрезке [а; й] методом Ньютона—Рафсона. Вычисления проводить до 88
совпадения четырех зпаксв после запятой. Оцепить погрешность. Переключатель Р—Г на панели поставить в положение Р. ]) ех -р х = 0, [—1; 0]; 2) е~х — 1пх = 0, [1; 2]; 3) sin х —1 = 0, [1; 1,5]; 4) cos х---!—т- = 0, [—1; 0]; х + 2 5) cos х + х 2 = 0, [1; 2]; 6) х3-|-х —3 = О, [1; 2]; 7) х3 + х2 —3 = 0, [1; 2]; 8) е~ж - х = 0, [0; 1]; 9) c°sx + —L-g- =0, [0; 1]; 10) cosх------Цг = 0, [—2;—!]; х—2 11) х3 —х24-3 = 0, [—2; -1]; 12) 1пх + х = 0, [0,4; 1]; 13) х3 4-х 4-3 = 0, [—2; —1]; 14) Igx + х = 0, [0,2; 1J; 15) х2 — cosx = 0, [—0,8;—0,7]; 1G) х3 4-Зх2 — з = о, [—3, —2,2]; 17) х2 — cos х = 0, [0,7; 0,8]; 18) х3 —Зх—1 = 0, [—2;—!]; 19) cos(x—1,1)—Зх4-2=0, [0,9; 1,1); 20) x2-[-sin 2х—2=0, [—1,5; —1,4]; 21) х36х2 4-9х 4- 1 =0, [—1; 0|; 22) 4х2 — cosx — 4 = 0, [I; 1,2); 23) 2х3 4- 2х — 1 = 0, [0; 11] 24) х3 — Зх2 4- 1 = 0, [-1; 0]; 25) х3 4- х2 + 3 = 0, 1-2; -11; 26) ех 4- 2 sin х = 0, [-1; 0]; х х24- 1 °’ [0; И; 28) *4-х2+1 -°- [-1; 0]; 29) х3 4- х2 4- 2 = 0, (—2; —Г 30) х3 — х2 — 2 = 0, [1; 2]. 4.3. Численные методы решения системы нелинейных уравнений Рассмотрим систему п нелинейных уравнений с п неизвест- ными А (хп х2, х„) = 0 (I = 1, 2... п), (4.18) где fi — некоторые алгебраические или трансцендентные функции. Обозначивх = (xlt х2, ..., х„) и f = (flt f2, систему (4.18) запишем в векторной форме Дх)=0. (4.19) Решение системы (4.19) является значительно более слож- ной задачей, чем решение одного уравнения. Такие системы решают практически только итерационными методами. Обоб- щим для случая системы (4.19) метод последовательных при- ближений и метод Ньютона—Рафсона. Метод простой итерации. Заменим нелинейную систему (4.19) эквивалентной системой специального вида х — ф (х), (4 ТО) Т VI !• 'I 2> >
Предположим, что система (4.20) имеет в ограниченной выпуклой замкнутой области D «-мерного пространства X единственное решение х* = (х*, х*..... х*), а компоненты X/ вектора х° = (х?, х®, х") суть числа, соответственно близкие к х* (f = 1, 2... /г). Будем находить последующие приближения к точному решению с помощью метода простой итерации (последователь- ных приближений) по формулам: л'-ч'= ф^) (4.21) или в координатной форме х;+' = ср( (хк, х*..х'р (i = 1, 2, . . . , n), (k = 0, 1, 2, ...). Пусть р^1, х2) = |! х1 — х2 ;| — расстояние между элемен- тами х1 и х2 в пространстве X, где в качестве нормы век- тора можно выбрать любую каноническую норму (см. п. 3.3). По принципу сжатых отображений (см. п. 3.6) система уравнений (4.20) имеет единственное решение D, которое может быть найдено методом итераций (4.21) при любом вы- боре начального приближения х° С D, если все последователь- ные приближения хЧ D (1г = 1, 2, ...) и отображение <р (л) является сжимающим в D. Укажем достаточные признаки сходимости метода итера- ций, удобные в практических вычислениях. Предположим, что в некоторой выпуклой замкнутой обла- сти D функции ср(- (л:) имеют непрерывные частные производ- ные^-1 и в области D система (4.20) имеет единственное реше- ние х*. Пусть для любого начального приближения х° £ D все последующие приближения хк £ D. В окрестности решения х* по обобщенной формуле Лаг- ранжа п xt+i—х*=(^/г)—<р< (•**) = 2 —о /=1 (i = 1, 2, ... , п). (4.22) Поэтому р (Х,г+!, х*) = Р (ф (хк), ф (х*)) = I! ф (Хк) — ф (х*) 1| = = |1 J (Рк) • (хк - х*) !|< h / (Р,!) Н • Р (лк, л*), (4.23) где J(x) — матрица Якоби системы (4.20) 90
J (x) = dq>i (*) д<Гг (x) dx„ d^i'n (x) dx,t (4.24) Согласно принципу сжатых отображений (см. п. 3.6) метод последовательных приближений (4.21) сходится к решению х* системы (4.20), если любая согласованная норма матрицы Якоби J (7А) будет меньше единицы. На практике удобнее рассматривать матрицу М с элемен- тами Мг/ ЗсГ1. dxj норма которой мажорирует норму || J (х) []. Запишем неравенство (4.23) в виде р (ф (хк), ф (л:*)) < ;i J (Р”) || • р (xk, X*) < || М Н • р(х'!, X*). (4.25) Отображение (4.20) будет сжимающим в D, если для лю- бой согласованной нормы матрицы М выполняется условие: М,<1. (4.26) Близость вектора x!t к решению х* будем характеризо- вать ОДНОЙ ИЗ норм JIaC,'! ИЛИ || X ||2. Учитывая (4.26) и (3.37), для сходимости метода итера- ций (4.21) достаточно выполнения одного из условий: т max £М;/ = <7(<1; /=1 max У] Мр- = <7;- < I; (4.27) 1=1 ( s м?/Г = 9<1. i, i=\ Если |! М || < у, то для определения решения системы (4.20) с точностью е итерационный процесс (4.21) продолжаем до выполнения условия II xR — хк~1 1| < е.
Если 1, то решение будет вычислено с точ- ностью в, если для каждой координаты будут выполнены неравенства (4.7). 4.4. Лабораторная работа 3. Приближенное решение системы двух нелинейных уравнений методом простой итерации Пусть для системы двух уравнений Fi (х, у) = О, Т (х, у) = 0 (4.28) требуется найти действительные решения с заданной точно- стью е. Если на плоскости нетрудно построить графики функций /•\ (х, у) = 0 и F2 (х, у) -- б, то можно оценить число корней системы (4.28) и их приближенные значения как координаты точек пересечения графиков. Преобразуем систему (4.28) к виду, удобному для приме- нения метода простой итерации: [x=cpiJx’ у) и/ = Ф2(*. У>- В методе простой итерации воспользуемся модификацией Зейделя, т. е. построим итерационный процесс по формулам: ( х"+1 = Ф1 (*"> Ук}’ (4,зо) I Ук+Х = <Р2 (х*+1» У11) (^ = 0, 1, . . .). Пусть в области D = {(х; у) а с х < &; с < у < d} со- держится единственное решение х = х*, у = у* системы (4.29). Тогда достаточные условия сходимости метода простой итерации (4.27) для такого частного случая переформули- руются следующим образом. Если: 1) функции q1! (х, у} и ср2 (х, у) определены и непрерывно дифференцируемы в D; 2) начальное приближение (х°; у°) и все последующие приближения (х/г; ук) (k=l, 2, . ..) принадлежат £); 3) в D выполнены неравенства dcPi I , р<Р2 1 *Pd - 1^ <0^-1 (4.31) Ту m 5? 92
или d<Pi । И<Р1 I , дх ‘'Г' | dy 1 ^i< 11 +|^|<(?2<1> (4.32) . дх | dy | ' "»2 ’ ИЛИ то итерационный процесс (4.30) сходится к решению (х*; у*) системы. Погрешность k-ro приближения Р(х’, х*)<г^р(х''’ <4-34) где а = max (<7i, q2} в (4.31), (4.32) или a = q в (4.33). Если в качестве расстояния выбрать евклидову норму, то оценку (4.34) можно записать в виде 1/(х»-х*)'2 + (ук-у*)г К (xk - х*-1)'2 + (^ -//"-’)< (4.35) Замечание. Выбор итерирующих функций <pt (х, </) и (|-2 (х, у) в системе (4.29), обеспечивающий выполнение доста- точных условий сходимости итерационного процесса (4.31)— (4.33), является трудоемким процессом. Этот выбор можно осуществить с помощью приема, предложенного в [22]. Пола- гаем : Ф1 (х, у) = х + а/7! (х, у) + рК2 (х, </); Ф2 (х- У) = У + (х- У) + б/?2 (.х, у), аб Ф ру. Коэффициенты а, Р, у и б определяем как приближеннее решение системы уравнений: ^1^. ох „ OFi У°) , < “ ду ’ ' JfiU0, у°) , • дх 1 1 , (Л т 1 ду р dF2 (х% </<) = 1 1 дх ’ , df.jU0, <у°) _ ду 5 dF2 U°, уа) 0. дх ’ б щрл = 0. ду 93
Если частные производные функций Fr (х, у) и F2 (х, у) не сильно изменяются в окрестности точки (х°; у°), то при таком выборе итерирующих функций условия (4.31)— (4.33) выполняются. Программа 9 решения системы (4.29) двух уравнений мето- дом простой итерации с модификацией Зейделя по формулам (4.30): Адрес Коман- да Код 00 ПП 53 01 17 17 02 ИП1 01 03 ИПА 6- 04 П1 41 05 — 11 06 FX2 22 07 ИП2 62 08 ИПВ 6L 09 П2 42 10 — 11 11 FX2 22 12 + 10 13 F К 21 14 С/П 50 15 БП 51 16 00 00 17 В/0 52 J Содержание операции Вызов подпрограммы для вычисления Ф1(Л У*) и <р2(х*+‘, /) Вычисление погрешности двух приближений ^“‘)2+ (</*-// Индикация значения р. Возврат к началу программы. Подпрограмма для вычисления Vi (xk, yk), <p2(/’+1, Распределение регистров памяти: Номер регистра I 1 Переменная Инструкция. 1. Составить подпрограмму для вычисления Ф1 U, У) и <р2 (х, у). При этом аргументы х и у функции 94
cpj (x, у} вызываются из Pl и Р2, значение функции засылается в РА. Аргументы х и у функции <р2 (х, у) вызываются из РА и Р2, значение функции засылается в РВ. 2. В режиме программирования (F ПРГ) ввести про- грамму и подпрограмму. 3. В автоматическом режиме (F АВТ) ввести начальное приближение: (х") П1 (у0) П2. 4. Нажать клавиши В/О С/П. После останова на инди- каторе высвечивается значение р для первого шага. Нажатие клавиши С/П приведет к выполнению следующего шага итера- ционного процесса. Продолжаем вычисления до совпадения двух последова- тельных приближений с заданной точностью е. 5. Значения х4'+’ и у'-*1 вызывае.м из РА и РВ соответ- ственно. Контрольный пример. Решить систему * = у In (х2 4-у2) + 2,1, у = arct« -- 4-0,1, I ’ х выбрав в качестве начального приближения точку Л'1О (3; 0). Вычис- ления проводить до совпадения двух последовательных приближений с точностью е = 10-4. Подпрограмма вычисления значений функций: ИП1 FX2 ИП2 FX2 4- Fin 2 -±- 2 F, 1 4- ПЛ ИП2 ИПА Farctg О F, 1 4- ПВ В/О Вводим исходные данные 3 П1 0 П2 и осуществляем пуск про- граммы: В/О С/П. Результаты выполнения каждой итерации удобно записывать в таблицу: Номер шага 0 1 2 3 4 5 6 7 РЛ — 0,22237 0,07149 0,02226 0,00686 0,00210 0,00064 0,00020 X* 3 3,19861 3,26320 3,28351 3,28898 3,29177 3,29237 3,29256 yk 0 0,1000 0,13063 0,13976 0,14246 0,14325 0,14348 0,14355 На 8-м шаге получим: р8 = 0,00006, х8 = 3,29261, уе = 0,14357. В промежуточных результатах сохраняем одну запасную цифру. Окончательный ответ округляем до 4-х знаков после запятой. Ответ: х = 3,2926, у = 0,1436. Время вычислений на одном шаге около 15 с. 95
Задания к лабораторной работе 3. Методом простой итерации с модификацией Зейделя (4.30) решить системы, выбрав в качестве начального приближения точку Мо. Итерации проводить до совпаде- ния двух последовательных приближений с точностью е = 10-1. 1) 2) 3) 4) 5) 6) 7) 8) 9) ( х = ех cos у — 1, , у=ех sin р+1, Л10(—0,9; 1,4); X = (х2 Z/2)2, о У=ху (х2—р2)+0,5, Л/о(1; 1); Ь—^+М.АЦ!;!); | х= х2 + 0,8р2+0,1, I У = 2хр + 0,1, Л40 (0; 0); 1 х = х2 — у2 + 0,1, |р = 2хр + 0,1, Л40 (0; 0); |х = х2 — у2 — 0,1, I у = 2ху + 0,1, Л40(0;0); [ х = х2 + у2 + 0,1, \, у — 2ху — 0,1, 7И0 (0; 0); ( х = 1 — е~х cos у, I у = е~х sin у + 1, ЛЦ0.9; 1,4); (х = х2-\- у2 — 0,1, \у = 2ху — 0,1, Л10(0; 0); |Х=-Х2-р2-0,1 ’\у = — 2ху~ 0,1, Л4#(0;0); ( х = 0,1 — х2 — у2 17) { ; 1 У = — 2ху — 0,1, Л4; (0; 0); 18) 19) 20) 21) — 0,4, * X3 + у2 \—у У х2 + у2 х = ех cos у — 1, у = e*sin р — 1,' Л40 (-0,9; —1,4;) (х2 — у2)2 9 2 _1 О Ч х = -1---------Х2У2 + 0,5, У = ху (х2 — у2) — 0,5, Мо (0,5; —0,5;) ’ *=7а4т2 + 0.*, Ю) П) 12) X = ^—2 + 0,4, х2 + у2 У=^^+\, Л'о(1; 1); х = х2у2 - (%г ~ у2)а - 0,5, О 4 У = ху (у2 — х2) + 0,5, Л40 (-0,5; 0,5); 23) У = --^—г -1,4. х2 + у2 Мо(1;-1;) (х= х2 + 0,8р2 + 0,1, 1р = 2хр-0,1, Л10(0; 0;) | х = х2 — у2 + 0,1, {у=2ху — 0,1, Л4о(0;0); ( х = х2 — у2 — 0,1, I у = 2ху — 0,1, ЛТ0 (0; 0); х = — х2 — 0,8р2 — 0,1, р = 0,1 — 2ху, Л10(0;0); х = у2 - л-2 - 0,1, р = 0,1—2x1/, Л10(0;0); х = 0,1 — х2 + у2, . р = 0,1-2хр, Л10(0;0); у = 2л-(/ + 0,1, Л/о(0;0); х = х2 + у2 — 0,1, р = 2хр + 0,1, М0(0;0); х = , * 2 + 0,4, х2 + р2 27) 1, У X2 + у2 Л10(1; -1); X = cos ху, У = х2 — 1, Мо (1; 1); 96
29) *= у ln (*2+ +2>Ь [ x — уг — x2 — 0,1, 30) I y = -2xy-0,l, Mo(0; 0). y=^-0,\, Mo(3;O); 4.5. Решение систем нелинейных уравнений методом Ньютона Если в системе нелинейных уравнений f(x)=0 суще- ствуют частные производные функций /, но переменным х,, то для ее решения применим метод Ньютона. Через J (х) — Г^1 дх j (i, j = 1, 2, . . . , п) обозначим матрицу Якоби системы (4.19). Выберем нулевое приближение х° в достаточно близкой окрестности корня х*. Линеаризуем вектор-функцию f (х), разлагая ее в ряд Тейлора и ограничиваясь лишь членами нулевой и первой степени. Тогда на fe-м шаге (/г + 1)-е приближение будет решением уравнения f(xk) + J(xk)(xk+l — хк) = 0 (fc = 0, 1, 2, ...). (4.36) В частности, если существует матрица J~l (хк), обратная матрице Якоби, то итерационный процесс Ньютона (4.36) 'можно записать в виде: xk+l = xk — J-l(xk)f(xk) (6 = 0, 1, 2, ...). (4.37) Формула (4.37) обобщает формулу Ньютона (4.8) для од- ного уравнения. Если вторые частные производные функции f (х) непре- рывны вблизи х*, det J (х) #=0 в окрестности корня, а на- чальное приближение Xй близко к решению, то метод Ньютона сходится, причем сходимость будет квадратичной [19] (более подробно о выборе начального приближения и об условиях сходимости метода Ньютона [14]). Ввиду трудоемкости вычисления и обращения матрицы Якоби на каждом шаге можно вычислить на первом шаге J~k (х°) и использовать модифицированный метод Ньютона: дЛ+1 = xk_ J-i(x°)f(xk) (6 = 0, 1, 2, ...). (4.38) Сходимость такого процесса будет уже линейной [19]. Замечание. При решении систем нелинейных уравнений иногда строят функционал, минимум которого достигается на решении системы. Например, нулевой минимум функции 4 6-167 97
п F (л) ;; У, ' ft (r)l2> гда x = (*i> x2> является реше- i= 1 пнем системы f (л) = 0. Минимум функционала приближенно определяют каким-либо из методов спуска (см. гл. 6), кото- рые обычно имеют более широкую область сходимости. Полу- ченное приближение уточняют затем методом Ньютона. 4.6. Лабораторная работа 4. Приближенное решений системы двух нелинейных уравнений методом Ньютона Рассмотрим систему двух уравнений f и (х, у) = 0, (о(х, у) = О, (4.39) где функции и (.г, (/) и t>(,r, у) — непрерывно дифференци- руемы в области D, содержащей единственное решение х — х*, у --- у*. Выберем в области D начальное приближение (х°; у0) и будем вычислять последовательные приближения согласно методу Ньютона (4.37): д* хя-1 = хь _ * Д* д* у^=уь У (£ = 0, 1, 2, ...), (4.40) где А* = det J (хк, ук) = и’х(хк, ук) Uy(xk, ук) vx(xk, ук) vy(xk, ук) Ал «(**. Уь) и'у(хк, ук) к= и'х(хк, ук) и(хк, ук) и'у(хк, ук) ’ у vx(xk, ук) — якобиан, «(**, ук) v(xk, ук) В качестве критерия окончания итерационного процесса (4.40) выберем условие P. = ^l/(A!i)2 + (A^<e, (4.41) где — евклидово расстояние между двумя последователь- ными приближениями. Программа 10 решения системы (4.39) двух нелинейных уравнений методом Ньютона по формулам (4.40): 98
Адрес Команда Кпд Содержание операции 00 01 02 03 04 05 06 07 08 09 10 II 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ПП 41 ПП2 КП7 X ИПЗ ИП6 X П4 8 ПО КИПО ИП8 кипо ИП9 ИП4 КПО FLO 12 ИПА ИП5 ПЛ ИПВ ИП1 пв 53 I 41 62 67 12 63 66 12 11 44 08 40 ГО 68 12 ГО 69 12 11 64 13 1.0 5Г 12 6- 65 11 4- 61. 61 10 4L j Вызов подпрограммы вычисления функций > и (,с, v (х, у) и элементов матрицы i Якоби 1 > Вычисление ДЛ | Организация цикла 1 Л* Д* > Вычисление — и — —8, Д/< Д« ) | Проверка окончания цикла Вычисление Вычисление y!lV1 4* 99
Продолжение Адрес Команда Ход Содержание операции 32 ИП5 65 1 33 FX2 22 34 ИП1 61 Вычисление рь 35 FX2 22 36 + 10 37 F/ 21 ) 38 С/П 50 Индикация pk 39 БП 51 40 00 00 j Возврат к началу программы 41 Подпрограмма для вычисления U, У, Ид, u'y, VXt Vy В/О 52 Свободны PC и РД. Инструкция. 1. Составить подпрограмму вычисления функций и, v, и'х, иу, vx, vy, значения х и у вызываются из РА и РВ соответственно, результаты вычислений засы- лаются соответственно в регистры Р8, Р9, Р2, Р6, РЗ, Р7. 2. В режиме программирования (F ПРГ) ввести про- грамму и подпрограмму. 3. В автоматическом режиме (F АВТ) ввести начальное приближение (х°) ПА (у0) ПВ. 4. Перейти к вычислениям, нажав клавиши В/О С/П. После ОСТАНОВа на индикаторе высвечивается значение р0. Нажатие клавиши С/П обеспечивает выполнение следую- щего шага метода Ньютона. Вычисления продолжаем до совпа- дения двух последовательных приближений с точностью е, т. е. р* с е. 5. Значения х и у вызываем из РА и РВ соответственно, значения функций и (х, у) и v (х, у) вызываем из Р8 и Р9. 100
Контрольный пример. Методом Ньютона решить систему ( ех — г» + 1 = О, |ху — 1 =0, выбрав в качестве начального приближения Мо (2; 2). Итерации про- должать до совпадения двух последовательных приближений с точ- ностью е = 10-i. Составим подпрограмму для вычисления значений функций и (х, у) — ех — eS'-j-l, v(x, у) = ху—1 и их частных производных и'х = ех, и'у = — еУ> vx = У, - Х-. ИПА П7 Fex П2 ИПВ ПЗ Fex /—/ П6 + 1 + П8 ИПА ИПВ х 1 — Р9 В/О Вводим исходные данные 2 ПА ПВ и осуществляем пуск про- граммы В'О С:П. Результаты выполнения каждого шага метода Нью- тона запишем в таблицу: Номер iiura, k 0 1 2 3 4 5 Рк X* Ук 2 2 1,06497 1,18233 1,31267 0,33398 0,37393 1,18949 0,03829 0,83614 1,19569 0,00043 0,83604 1,19611 2,48 • 10"’ 0,83604 1,19611 На последнем шаге итерации вызываем из Р8 и Р9 значения функ- ций: « (**, У*) = —1 • 10-’, v (xk, yk) = 0. Ответ: х = 0,8360; у = 1,1961. Время вычислений на одном шаге около 23 с. Задания к лабораторной работе 4. Решить системы уравнений методом Ньютона, выбрав в качестве начального приближения точку Л10 (х°; у0). Итерации продолжать до совпадения двух последователь- ных приближений с точностью е = 10"4. | е^ — ех + 1 = 0, Мху—1 = 0, Л40(2;2); | ех—у2+ 1 = 0, ' I ху — 1 = 0, Мо(2;2); ( ех — у2+ 1 = 0, 3)h+tgx = 0, М„ (0; 1); [ Ху2_ 1 = о, 4)'|у-ех = 0, Мо (0,5; 1,5); [ех — еУ + 1 =0, 5) I х= + у2 - 1 =0, Мо (0,5; 1); ।ех — еу + 1 = 0, 6) U3+</3 + 1 =0, Л10 (-1; 1); / ех + е-« —1=0, 7) 1 х' — у:’ 1 = 0, | м0(-1;-0,5); j sin х + sin у — 1 =0, 8) 1.x2 — У2 — 1 =0, Мо(1; 0); । е* - е» + 1 = 0, 9)1ху— 1=0, /Ио (2; 2); j е!' — х2 + 1 = 0, 10) 1ху-1=0, Л10 (2; 2); < &у — х2 -j- 1 =- 0, 10 lx-г tgi/ = 0, ,Ир(1; 0): 101
| x‘y — 1 = 0, л с</= 0, A70 (1,5; 0,5); [ cx _ eu _ 1 = o, 13) U^ + i/3- 1 =0, Mo (1; 0,5); । e* — e‘J — I = 0, lx3 + у» + 1= 0, M„ (1; -1); | ex + — 1=0, 15) x3 — y3- 1 =0, l .+„(-0,5; -1); I sin x + sin у — 1 = 0, 16) (x2-</2+z/ = 0, AJo(0; 1); j ey _ e-x i = o, l7)(x«/+l=0, Af0 (—2; 2); ( e"* — y2 + 1 = 0, ‘8) I xy + 1 = 0, Mo (-2; 2); I e~x — y2 + 1 = 0, l9)U-tgx = 0, Mo(O; 1); 20){^+,=°’ ’ ( у — e-* = 0, Mo (—0,5; 1,5); I e~* — + 1 = 0, 21) I x3 — z/3+l = 0, Ma (-0,5; 1); I e-* — еУ + 1 = 0, 22) (x3 — у3 — 1 =0, AJO(1; 1); j е-' + еУ— 1 = 0, 23) t x3 + y3 — 1 = 0, Mo( 1; -0,5); I sin x — sin у + 1 = 0, 24) I x2 - y2 — 1 = 0, Af0 (—1; 0); ( e-У — e* + 1 = 0, 25)W+l=0, Af0(2;— 2); j xy2 —1 = 0, 26)U + e» = 0, Af0 (0,5; —1,5). Глава 5. ПРИБЛИЖЕНИЕ ФУНКЦИЙ 5.1. Постановка задачи приближения функций Задача приближения (аппроксимации) заключается в , за- мене функциональной зависимости, заданной на множестве X s R в виде таблицы, графика, формулы или в неявном виде, более простой приближающей функцией. Если X состоит из дискретного множества точек х0, хь .... хт, то приближение называется точечным, а если это отре- зок [а; 6], то приближение называется интегральным. Пусть функция f (х) аппроксимируется на множестве X функцией <р (х), более удобной для вычислений и близкой в некотором смысле к f (х). Качество аппроксимации, т. е. близость двух функций, можно оценивать по-разному в зави- симости от физического содержания решаемой задачи. В соот- ветствии с этим в теории приближений рассматриваются раз- личные функциональные пространства с введенной в них мет- рикой, позволяющей оценить расстояние между функциями Р (А ф)- Пространство L называется нормированным, если каж- дому элементу f Q L поставлено в соответствие действительное число ! f называемое нормой, удовлетворяющее следующим аксиомам: 1) li /II > 0, || /|| =0 тогда и только тогда, если / = 0; 102
2) || a • /|| = | a ; |if |j, где a £ R; 3) II f + ф || < II f || + |i <p ||. Полное линейное нормированное пространство называется банаховым, или В-пространством. Нормированное пространство становится метрическим, если положить р (/, ср) — / — ср |j. Вещественное линейное пространство L называется евкли- довым, если каждой паре его элементов f и ср поставлено в со- ответствие вещественное число (/, ср), называемое скалярным произведением, удовлетворяющее следующим аксиомам: 1) (/> /) > 0, (/, /) = 0 тогда и только тогда, если / —- 0; 2) (/, ф) = (ф, /); 3) (а/, ср) == а (/, ср), а е R; 4) (/ Н- ф, g) = (/, g) + (Ф, g). Полное линейное евклидово пространство L называется гильбертовым. Гильбертово пространство является банахо- вым. Норму функции f (х) £ L можно определить через ска- лярное произведение 11/11 = /(/, /)• Конечная система элементов ф0, ср,, ..., ср/г пространства L называется линейно независимой, если их линейная комби- нация является нулевым элементом пространства L, т. е. выполняется равенство соФо + С1Ф1 + ... + ад>л = о лишь при условии са --- с, = ... = сп = 0. В противном слу- чае эта система называется линейно зависимой. Бесконечная система элементов ср0, срх, ср2, ... называется линейно независимой, если любая ее подсистема, состоящая из конечного числа элементов, линейно независима. Необходимым и достаточным условием линейной независи- мости конечной системы элементов <р0, ср,, ..., ф„ является отличие от нуля определителя Грама, т. е. (Фо. Фо) (фо, Ф1) • • • (Фо, Ф„) (ф]. Фо) (Ф1, Ф1) ••• (Ф1- Фл) Д 0. (Фп. Фо) (Фп, Ф1) • • • (фп, Фн) Если в пространстве L существует система и линейно независимых элементов, а любые п + 1 элементов этого про- странства линейно зависимы, то число п называют размерно- стью пространства L и обозначают и dim L. Если в L существует счетное или несчетное бесконечное число линейно ЮЗ
независимых элементов, то L называют бесконечномерным и полагают dim L = оо. Система линейно независимых элементов фп ф2, .... фп п-мерного пространства L называется базисом этого простран- ства, если для каждого элемента f пространства L найдутся вещественные числа clt с2, ..., сп такие, что справедливо ра- венство п f= Sep,- i=i Последовательность [ср,, (х)} функций бесконечномерного банахова пространства L называется базисом в L, если каж- дая функция f(x)£L раскладывается в ряд / (X) = S (х), 1=0 сходящийся по норме пространства L [20]. В гильбертовом пространстве L вводится понятие ортого- нальности двух функций. Функции cpt и ф2 называются орто- гональными, если их скалярное произведение равно нулю, т. е. (фр ф2) = 0. Если || ср || = 1, то функцию <р (х) называют нормирован- ной. Конечная или бесконечная система функций ф0, фь ... называется ортонормированной, если ее элементы попарно ортогональны и нормированы, т. е. [ 0, I #= k, (ф„<р.)=|ь i=k Ортонормированная система функций в гильбертовом про- странстве L называется полной, если ее нельзя дополнить эле- ментами из L так, чтобы новая система была ортонормирован- ной, т. е. в L не существует ненулевого элемента, ортогональ- ного ко всем элементам данной системы. Полная ортонорми- рованная система функций образует базис в пространстве L. Если рассматривать линейное пространство вещественных функций, заданных на множестве X, то система его линейно независимых элементов называется системой линейно незави- симых на X функций. Пусть / (х) является элементом линейного нормирован- ного пространства L. Выберем в L систему п + 1 линейно независимых функций ф0 (х), фц (х)... фл (х) и образуем линейную комбинацию ф(х)= £с,Ф((х) 1=0 J04
с постоянными коэффициентами с(- (t = 0, 1, Функция <р (х) называется обобщенным многочленом порядка п. В част- ности, если ср(- (х) = х‘ (t = 0, 1, п), то Ф (х) = с0 + CjX + ... + спхп является алгебраическим многочленом степени п. Если выбрать <р0 (х) = 1, <рх (х) = cos х, <р2 (х) = sin х, ..., ф2п-1 W = COS пх’ Ф2П W = s'n пх> Т0 функция ср (х) = = у + cos х 4- sin х 4- ... 4- ап cos пх + bn sin пх на- зывается тригонометрическим многочленом порядка п. Будем аппроксимировать функцию / (х) обобщенным много- членом /i-го порядка ф (х). Параметры a (i =0, 1.... п) обобщенного аппроксимирующего многочлена <р(х)= У с/р, (х) <=0 определяются из условия минимума расстояния р (/, ср) = — |j f — (р|| в метрике пространства L. Рассмотрим некоторые функциональные пространства и со- ответствующие им задачи теории приближений. 1. Пусть функция f (х) принадлежит пространству С [а; Ь] вещественных функций, непрерывных на отрезке [а; &], в кото- ром равномерная (чебышевская) норма вводится следующим образом: 'I f'k [0; 6] = таХ /(Л‘) i- *<[о; Я В соответствии с этой метрикой за меру близости функций f (х) и (р (х) принимают их максимальное отклонение во всех отдельно взятых точках отрезка 1а; Ь], т. е. Р (Л ф) = 5 / — Ф Ис1о; о] = тах I / W — Ф (*) I- (5- О />] Функция (р (х), обеспечивающая минимум расстояния р, называется наилучшим равномерным приближением функции f (х) на отрезке [а; &]. Пространство С [а: Ь] является полным нормированным, т. е. банаховым пространством. 2. Рассмотрим гильбертово пространство Ц [а; Ь] веще- ственных функций, интегрируемых с квадратом с весом р (х) на отрезке [а; Ь], т. е. для f (х) £ Ц [а; Ь] конечен интеграл в смысле Лебега ь JpW Р Wdx. а 105
Предполагается, что па отрезке [а; й] весовая функция ь р (%) > О и \р <х) dx > 0. Ее целесообразно вводить в тех а случаях, когда функция [ (х) аппроксимируется с разной сте- пенью точности в различных точках отрезка [а; Ь]. В частно- сти, если р (х) --= 1 для всех х £ [а; Ь], то используют обозна- чение L2 [а; Ь]. Скалярное произведение функций в пространстве Ц? [а; Н и средняя квадратическая норма вводятся следующим образом: ь • (f, ф) = 5 /З(х) /(Л')ф(х)бх, а & fiv‘ = (J/>WI!Wdx)''S. L-л I U. v I ' v ' 1 a Расстояние между функциями ь Р(/.ф) = Ilf—TliLP[a;6]= (S PWlf W —Ф WI2dx)1/2 (5.2) называется взвешенным средним квадратическим отклонением или погрешностью приближения в пространстве Ц 1а; &]. Сходимость функциональной последовательности в смысле метрики пространства 14 1а; Ь] называется сходимостью в среднем. 3. Пространство функций, заданных своими значениями на дискретном множестве X точек х0, хх....хт, принадлежащих отрезку [а; й], будет гильбертовым размерности п + 1, если в пем определено скалярное произведение следующим обра- зом: т (фА, Ф,) = S (-0 • Ф/ (х,) (Pi > °)- В этом пространстве вводится норма т / ЛМ1>/2М1/2 1--С и взвешенное среднее квадратическое отклонение tn Р (Л ф) = 17 — Ф !ix = ( S Pi [f (хд — ср (X/)]2)1/2. (5.3) ( = 0 С помощью положительных весов pt можно учитывать неодинаковую точность измерения значений функции, 106
п Функция <р (%) = 2-iCi.^t (х), обеспечивающая минимум ,-=о квадрата расстояния (5.2) пли (5.3), называется соответственно наилучшим интегральным или точечным взвешенным средним квадратическим приближением функции / (х). В интегральном приближении базисные функции (р,- (х) (1 = 0, 1, ..., п) предполагаются линейно независимыми на [я; &], а в точечном — на множестве точек {х'До1, при этом п < т. 4. Если значения функции f (х) заданы в п ф- 1 точках х0) хр ..., хп отрезка [а; Ь] и достаточно простая для вычис- лений приближающая ее функция ср (х) совпадает с / (х) в этих точках, а в остальных точках отрезка [я; Ь] прибли- женно представляет f (х), то такое приближение называется интерполяцией. Ниже изложены методы интерполяции алгебраическими многочленами и сплайнами, а также точечная и интегральная средняя квадратическая аппроксимация функции алгебраи- ческими, ортогональными, в том числе тригонометрическими многочленами по методу наименьших квадратов. Соответ- ствующие вычисления реализуются на микрокалькуляторах. 5.2. Полиномиальная интерполяция Пусть на отрезке [х0; x,J заданы точки х0, xt, ..., х„ (узлы интерполяции) и известны значения функции у = f (х) в этих точках: у0 = f (xu), yY = f (xj, ..., yn = f (x„). Требуется построить функцию ф (х), совпадающую в узлах интерполя- ции со значениями функции f (х). Таблица значений функции / (х) может быть интерполиро- вана бесконечным множеством различных функций, поэтому нужно иметь некоторый критерий выбора. Многие интерполи- рующие функции строятся как линейные комбинации элемен- тарных функций. Линейные комбинации одночленов (х*]о приводят к алгебраическим полиномам, линейные комбина- ции тригонометрических функций (cos kx, sin /?х)'0‘ приводят к тригонометрическим полиномам. Рассмотрим интерполяцию алгебраическими полиномами. В многочисленных приложениях аппарата интерполяции в ос- новном приходится решать две задачи: 1) найти аналитическое выражение для функции, задан- ной таблицей, графиком или в виде сложной для приложений формулы; 107
2) вычислить значение функции f (х) в точках, не совпа- дающих с узлами интерполяции, с помощью сравнительно несложного алгоритма. Интерполяционные полиномы находят также широкое применение в численном дифференцировании и интегрирова- нии, при решении дифференциальных уравнений. Интерполяционный полином Лагранжа. Выберем в каче- стве приближающей функции ср (х) полином Рп (х) степени п, значения которого совпа- дают со значениями функ- ции f (х) в узлах интер- поляции, т. е. Рп (ХО) = Уц, Рп (АГ1) = о Хо Х| 1 1 Х„., Х„' X = У у •••> (А«) “ !/«• Рис. 11 Геометрически это зада- ча о построении параболы n-го порядка у = Рп (х), пересе- кающейся с графиком функции /./ —- f (х) в (п + 1)-й наперед заданной точке (рис. 11). Покажем, что такая задача имеет единственное решение. Пусть Рп (х) = а0 + арс + а2х2+ ... + а„хп. Коэффициенты (1 = 0, 1, 2.......п) можно определить из системы уравнений ' + «гхо + • ‘ + а*х” = Уо, а0 fljXj + a2*i + • • + орх)1 = ylt (5.5) а0 + аре,, + а2х* + • • • + а ,х^ = уп. Определитель этой системы 1 у 1 Ло Ло . . . Ао 1 Xj x’l . . . Xj i хп х* ... х;; П (Х1 — х} называется определителем Вандермонда. Если узлы интер- поляции различны, то Д Ф 0, т. е. система (5.5) имеет един- ственное решение. При определении полинома Рп(х) используем базис так 108
называемых лагранжевых коэффициентов L, (х) (1 = 0, 1, ... ... , п) степени п таких, что ... fl, если i = /, L,(x,) = л (5.6) . 1 (0, если i #= ]. ' ’ Определим Ц(х} как многочлен степени л, обращающийся в нуль в точках х0, Xj......xt_lt xi+1.....х„ и равный единице в точке х„ полагая Li (х) = А (х — х0) (х — хЕ) .. . (х — х^) (х — х(+1) ... (х — х„). При х = Xi 1 = Л (х,- — хо) (Х{ — Xj) ... (Xi — Xi_i) (Xi — X,+1) . . . (Xi — x„). Определив значение А, получим окончательно _ (x — X<|) (x — xt) ... (x — Xj_{) (x — xf+1) , (x — xn) 1 — (xz — xo) (Х[ —Xi) ... {Xi — x(_!) (Xi — xt-+1) . . . (Xi — xn) • (5.7) Полином y^i (x) принимает значение yt в точке x(- и равен нулю во всех точках х- (/ ф I). Обозначим со,, (х) = (х — х0) (х — xj ... (х—х„). Легко убедиться в том, что (xt) = (Xi — х0) (Xi — х^ ... (Xi — x(._i) (xt — xM) . . . .. • (Xt — x„). Поэтому выражение (5.7) можно записать в виде Т.(х) — Шп М______ “ (x-xJ^W Лангражевы коэффициенты £, (х) называют еще множите- лями влияния соответствующих узлов интерполирования. Интерполяционный полином Лагранжа степени п выра- жается формулой п п Р. « = £ 91£,« = у в, . CS.8) 1=9 i=0 Число арифметических операций для его вычисления про- порционально л2. Вычисление значений полинома Лагранжа для числа узлов л + 1 <9 осуществляется с помощью про- граммы 11. 109
Отметим, что интерполяционный полином Лагранжа удобно применять в тех случаях, когда ведется многократное интер- полирование по одним и тем же узлам (пусть даже для раз- личных функций). Для этих узлов можно заранее составить коэффициенты Лагранжа L. (д), поскольку они не зависят от функции f (х). Однако, если для улучшения приближения потребуется повысить па единицу число узлов прибавлением нового узла, то полипом Лагранжа придется перевычислить заново. В этом отношении удобней пользоваться интерполяционным полино- мом Ньютона (см. ниже). Вели не требуется находить общее выражение для поли- нома Лагранжа, а нужно только вычислять его значения для конкретных х, то удобно пользоваться интерполяционной схе- мой Эйткена [4]. Согласно этой схеме вычислим выражение I У о *0 - * I Т сн — 1^1 *1 — Х1 Ь01 \Х) - .. _ у > Л1 которое является линейным интерполяционным" полиномом для узлов х0 и хР Для другой пары соседних узлов xL и х2 вычислим аналогично У1 Xi — х у., х2 — х и т. д. Выражение 1-01 W *0 — X L1, (х) А-, — X представляет собой квадратичный многочлен, интерполирую- щий значения у0, уи у.г соответственно в узлах х0, xlt х.2. Подключая последовательно новые узлы интерполяции, в об- щем случае получим выражение Loi23...п (х) =• Ц12.—1) W Хо X хп-х Хп - ха которое будет интерполяционным многочленом Лагранжа, принимающим в точках х0, xlt .... хп соответственно значения Уо- //и у„. Вычисление значения этого полинома в точке х по схеме Эйткена удобно проводить, записывая промежуточ- ные результаты в табл. 5.1 (для п = 4). НО
Таблица 5.1 *i У1 0-1, , 0-2, 1-1, i О-3, 1—2, 1-1, 1 0-4, (-3'1^2, (-1, i *0 Х1 *2 *4 Уо У1 Уг Уз У1 1-01 L12 1-23 1-34 1-012 1-123 1-234 1-0123 1-1234 1-01234 Описанный рекуррентный процесс интерполяции не тре- бует априорного задания степени интерполяционного поли- нома. Новые узлы интерполяции подключаются в процессе вычислений, которые обычно проводятся до тех пор, пока последовательные значения L0i23 ... п (х) и LOi2... п.п-н W не сов' падут в пределах заданной точности. Вычисления элементов табл. 5.1 по схеме Эйткена реализуются на микрокалькуля- торе с помощью программы 12. Если узлы интерполяции равноудалены друг от друга, т. е. х,-+1 — Xi = h - const (i = 0, 1, 2, .... n — 1), то, введя переменную t = (х — xu) /h, лагранжевы коэффициенты можно записать в виде LAt) = (—• (5-9) т. е. получить следующее выражение для интерполяцион- ного полинома Лагранжа с равноотстоящими узлами Рп (t) = V y.L. (/) = £ (_ J )n_i 1=0 1=0 (5.10) где коэффициенты L, (/) не зависят от выбора шага h и ог функции f (х). Для них составлены специальные таблицы, упрощающие вычисление полинома Лагранжа. Приведем оценку погрешности интерполяционного поли- нома Лагранжа [14]. Пусть функция [ (х) имеет п -f- 1 непре- рывную производную для всех х С [х0; х„]. Остаточный член интерполяционного полинома Лагранжа £ ( И -|- 1 ) / ?- \ где Е — внутренняя точка минимального отрезка, содержа- щего узлы интерполяции х0, хх, ..., х„ и точку х. 111
Погрешность зависит от выбора’узлов х„ точки х и свойств функции f (х). Известно [14], что величина sup ' (х) : будет наименьшей, если в качестве узлов интерполяции х£ [о; М выбрать корни полиномов Чебышева Т„+1 (х) = cos \(п + + 1) arc cos х] для ; х <1, определяемые по формулам х,= cos " „ л (1 = 0, 1, ... , п— 1). ‘ 2/г -j- 2 х ' Но такой выбор узлов редко применяется в практических задачах, поскольку при этом значительно усложняется интер- поляция, а выигрыш в точности невелик. На значение интерполяционного многочлена в точке х наибольшее влияние оказывают ближайшие к точке х узлы интерполяции. Такие узлы обозначим через х0 и хР Затем постепенно добавляем соседние узлы справа и слева, чтобы они симметрично располагались относительно точки х. Погрешность интерполяции будет меньшей, если точка х расположена ближе к середине отрезка [х0; хп] [19] и может оказаться значительной, если проводить экстраполяцию, т. е. выбирать значения х вне отрезка [х0; х„]. Интерполяционный полином Ньютона. Укажем форму записи интерполяционного полинома Рп (х), которая допус- кает уточнение результатов интерполяции последовательным прибавлением новых узлов. При этом будем использовать разделенные и конечные разности функции, являющиеся удоб- ным аппаратом при работе с таблично заданными функциями. Пусть для функции f (х) заданы не обязательно равноот- стоящие узлы интерполяции х0, xlt .... х„, х, =#= X/ при i =# /; Уй ~ f (л'о), (Ji = f (xj.Уп = f (x,i) — соответствующие зна- чения функции. Разделенными разностями первого порядка называются величины, имеющие смысл средних скоростей изменения функции и вычисляемые но формулам: х.)^^.................../(х,,_,;х„) *1 — х0 хп - х,г-1 Аналогично определяются разделенные разности второго порядка /(х,; х,; х2) = , /И.; . ЛЭ *1 и т. д.
В общем случае разделенные разности й-го порядка опре- деляются через разделенные разности (/г — 1)-го порядка по рекуррентной формуле f(xi+l’ (-У1Ч7;)-/(х-; х.+ ,; x(-+t,) xi+k~xi f (х,; х2; ... ; хп) — f (х0\xf, ... ; х„,) х„ — хо пенных разностей удобно проводить / (х,-; Xi +1; ... ; xl+,t) - например, Ж: xf, ... ; х„) = Вычисления разде. в табл. 5.2 (п =- 4). Таблица 5.2 xi 1 Разделе ины с разнос г i1 1-го порядка 2-го порядка 3-го порядка I то порядка Х:, / W Х1 /W *1) Х2 Их.) / (Хр х2) f (х0; Х3 f (*з) / х3) /Сч: х.2; Л'з) f(x0; х}-. х2. х3} х4 / (Х«) f (<11 х4) / (х2-. х3; а4) ! (Ч; х2. х,; х,) /(х„; Xj; х2; х3. х^ Отметим следующие основные свойства разделенных раз- ностей [24]. 1. Если функция f (х) п раз непрерывно дифференцируема, то выполняется соотношение /(х0; х,- ... ; х„) = гДе х0<1<хп. 2. Разделенные разности k-vo порядка являются симмет- ричными функциями своих аргументов и выражаются через узловые значения, функции 113
3. Разделенные разности п-го порядка от алгебраиче- ского многочлена л-й степени постоянны, а разности более высоких порядков равны нулю. Последнее свойство позволяет выбирать степень интерпо- ляционного полинома такой, чтобы она совпадала с порядком практически постоянных разделенных разностей. Интерполяционный полином может быть записан через разделенные разности в виде Рп (х) = f (х0) + '(х — хо) f (хо- *i) + (х — х0) (х — *1) f (хо’> х/, Х2) н-----+ (х — х0) (х — xj. . . (х — х„_,) f (х0; Xf, • • • ; х„). (5.12) Степень этого полинома не выше п. Кроме того, легко убедиться, что для такого полинома выполняются условия интерполяции (5.4). Полином, записанный в виде (5.12), назы- вается интерполяционным полиномом Ньютона для неравно- отстоящих узлов. Полиномы n-й степени, определяемые фор- мулами (5.8) и (5.12), тождественно равны,-так как принимают равные значения в п + 1-й точке и представляют собой раз- личные формы записи одного и того же интерполяционного полинома. Форма записи (5.12) удобна тем, что при добавлении к узлам х0, Xj, ..., xzl нового узла х„+1 все вычисленные ранее члены остаются без изменения, а в (5.12) добавляется только одно слагаемое. Отметим, что в (5.12) для вычисления полинома Ньютона используются разделенные разности, расположенные по верх- ней диагонали (в табл. 5.2 подчеркнуты). Если функция / (х) достаточно гладкая, а узлы интерполяции и точка х принад- лежат малому отрезку, то слагаемые в (5.12) убывают. По- этому на практике вычисления продолжают до тех пор, пока слагаемые остаются больше допустимой погрешности. Если число узлов задано наперед, то значения полинома Ньютона удобнее вычислять по схеме Горнера, представив его в виде Рп (х) = / (х0) + (х — х0) (/ (х0; xj + (х — xj (/ (х0; xf х2) + •.. + (х — х„_2) (/ (х0; Хр ... ; х„_,) + + (х—х„_1)/(х0; xf, ... ; х„))...). (5.13) Вычисления по этой формуле на микрокалькуляторе при «4-1=4 реализуются программой 15, а вычисление значе- ний интерполяционного полинома Ньютона по формуле (5.12) для произвольного числа узлов по составленной таблице раз- 114
деленных разностей реализуется на микрокалькуляторе с по- мощью программы 16. Если в (5.12) положить п -- 1, то получим часто исполь- зуемую формулу линейной интерполяции = + (5.14) Л1 х0 Вычисления по этой формуле реализуются программой 13. Запишем выражение для интерполяционного многочлена Ньютона в случае равноотстоящих узлов, если х,-+1 — х(- = = h = const (t = 0, 1, ..., п — 1). При этом будем исполь- зовать конечные разности для табличных значений функции yi == f U) (i = 0, 1, ..., л). Конечные разности определяются рекуррентными форму- лами: А«/; = yi+l — yit Кгу< = Д (Дг/,) = Д//,+| — Ьу( = = yt — 2yi+i + yi+2, , Кпу,- = Д (Д”-’г/,) = = Д'’-'г/i+i — Д'’-'t/,, При вычислениях их удобно записывать в виде табл. 5.3 (п = 4). Таблица 5.3 Vi Ь.у кгу Д4^ х0 Хз Xi Х3 Xi Уз Уз Уг Уз Уз &Уо &Уз &Уг &Уз ^Уз &2Уз &Уз Л3Уо Л3</1 Ь3Уа При Xi = ,r0 -J- th (i = 0, 1, .... п) выполняется соотно- шение между конечными и разделенными разностями 124] /(.r0; V, ... ; х,,)--^. Для интерполяции функции в точке х, близкой к х0, введем новую переменную t = х ~ Л°. Тогда узлам интер- поляции соответствуют значения t0 = 0; = 1; . .. ; = п. Множители в (5.12) преобразуются следующим образом: = = ....^^ = /-Щ-1. 115
На основании (5.12) получим формулу интерполяционного полинома Ньютона для интерполяции вперед-. Рп (О = У а + р ^Уп Н ~2! ' &2Уо + ’ ' ' + + дЧ. (5 15) Здесь используются конечные разности, расположенные на верхней диагонали в табл. 5.3. Для интерполяции функции в точке х, близкой к узлу х„. удобнее ввести переменную t = х~ *' . В этом случае получим формулу интерполяционного полинома Ньютона для интерполяции назад: Рп (0 — Уп + f[ &Уп-1 + -^2Уп~2 + • • + + 7(Н-1)-.(/ + п-1) (516) В ней используются конечные разности, расположенные на нижней диагонали в табл. 5.3. Вычисление значений поли- нома Ньютона для равноотстоящих узлов по формулам (5.15) и (5.16) (число узлов п Н- 1 < 5) реализуется в автоматиче- ском режиме программой 14. Интерполяционный многочлен Эрмита. Рассмотрим теперь более общую задачу интерполирования, когда требуется, чтобы в узлах интерполяции совпадали не только значения искомой функции f (х) и интерполяционной функции Р (х), но и значения их производных вплоть до некоторого порядка. Если Р (х) — алгебраический многочлен n-й степени, то его называют интерполяционным многочленом Эрмита и обозна- чают Нп (х). Многочлен Нп (х) определяется из условий Нп (х0) = / (х0), Н'п (х0) = f (х0), . .. , (х0) = /<“«-» (х0); (/,) = f (Д), Н'п (xj = /' (xj, .... (х.) = (хх); Нп (xs) = f (xs), H’n (xs) = f (xs), .... H(*s ° (xs) = = (5.17) Если в узле X/, (k = 0, 1.....s) полином и функция совпа- дают по производной порядка ак — 1, то число ак называется кратностью узла хк. При этом cq 4- а2 +as = n-|- 1, где п — степень полинома. 116
Интерполяционная формула Ньютона (5.12) для неравных промежутков обобщается па случай кратных'узлов 141: Нп (х) = f (х0) + (х - х0) f (х0; х0) + (х — х0)’- f (х0; х0; х0) + 4-----1- (х—(ха; ... ; х0) + (х — х0)“» /(х0; ... ; х„; xj + а(1 раз а;} раз + (х — х0)ге" (х — хх) f (хс; ... ; х0; х1;х1)4---- + + (х — х0)“«(х — Xj)rA ... (х — х,)^“7(х0;... ;х0; ... ; раз (5.18) Разделенные разности в случае кратных узлов вычис- ляются по формулам: Щ —I) (у ) = (/г — 1)!° ’ • • • ’ k раз /(х0; . . . ; х0; xt; . . . ; х/, ... ; xs; .. . ; xs) = a0 раз a, раз as раз ai(—1 раз a, раз as раз —/(x0; . . . ; x0; x,; . . . ; x(; . . . ; Xs; . .. ; xs)). (5.19) a0 раз at раз as- —1 раз Выпишем общее выражение интерполяционного полинома Эрмита [4] п at i i HnW = ES S ,t(x-xz)^X (=0 /=0 h=0 X П - x^'n | Tpr FLZ ~ x'^r |x=J- (5-2°) ni=^i r^i Формулы (5.18) и (5.20) в общем случае достаточно гро- моздки. Чем более высокие кратности узлов у полинома Эрми- та заданной степени, тем меньше требуется брать узлов, что уменьшает вычислительную погрешность. На практике обычно выбирают немного узлов с небольшой кратностью. При этом легко составить таблицу разделенных разностей с кратными узлами. В первый столбец выписываются узлы интериоля- 117
цин, причем каждый узел повторяется столько раз, какова его кратность. Во второй столбец выписываются соответ- ствующие узлам значения функции. В третий столбец поме- щают разделенные разности 1-го порядка, если соответствую- щие аргументы не совпадают, или первые производные, если аргументы совпадают. В четвертый столбец помещают разде- ленные разности 2-го порядка, если они вычисляются так же, как обычные разделенные разности, пли же производные второго порядка, деленные на 2!, если аргументы, па раз- ность которых нужно делить, совпадают, и т. д. В частности, для двух узлов х0 п Xj кратности с<0 = 2 и =---• 2 получим табл. 5.4. Таблица 5.4 xi Vi Разделенные разности с кратными узлами I-го порядка 2-го порядка 3-го порядка *0 Уо *0 Уо Уо *1 У1 У1 Уо %1 — х0 У; — Уо Уо (Xj — х0)2 хх — х0 *1 fi У1 у! У1 — Уо Х1 — х0 (Xt — X,,)2 У1' +Уо 2 (У 1~ У о) (xt —х0)2 (Xt—х0)3 Разности, стоящие по диагонали табл. 5.4, являются коэф- фициентами многочлена Нп (х). Для указанного частного случая выпишем интерполяционный многочлен Эрмита (X) = у0 + (X — х0) у0 + (х — х0)2 ( У1 \ ] + \V*1 — Л0/ *1 — Ло/ + (X — х0)2 (х - xj Р1 -+ \ — 2.(У1 ~ ). (5.21) О/ \ 1/ \ (Х1 _ Хо)2 (ДЦ —Х0)3 ] V > Для интерполяционного многочлена Эрмита оценка по- грешности [4] | / (х) - Нп (х)! = ! (х - хо)а» (X - Xj“. . .. . ..(х — XS)“'|, (5.22) 118
где £ — внутренняя точка минимального отрезка, содержащего узлы интерполяции х0, xL, .... xs и точку х. Отметим, что на одной и той же сетке узлов численная величина погрешности полинома Ньютона будет больше, чем у полинома Эрмита. 5.3. Лабораторная работа 5. Полиномиальная интерполяция Программа 11 вычисления интерполяционного полинома Лагранжа по формуле (5.8) для числа узлов п + 1 < 9 в авто- матическом режиме: Адрес Команда Код Адрес Команда Код Адрес Команда Код 00 пд 4Г 15 F, 25 30 11 01 по 40 16 С/П 50 31 X 12 02 ПС 4( 17 БП 51 32 FL0 5Г 03 С/П 50 18 22 22 33 22 22 04 ПА 4— 19 НПО 60 34 + 10 05 С/П 50 20 ПС 4[ 35 БП 51 06 КП| LE 21 F, 25 36 10 10 07 FL0 5Г 22 КИП| ГЕ 37 F, 25 08 05 05 23 ИПВ 6L 38 FLO 5Г 09 0 00 24 — 11 39 19 19 ГО ипд 6Г 25 FX#=0 57 40 + 10 11 ПО 40 26 37 37 41 БП 51 12 F, 25 27 — 13 42 10 10 13 кипе Г[ 28 КИП} ГЕ 14 ПВ 4L 29 ИПА 6- Распределение регистров памяти: Номер регистра 0 ' 9 д в с д Переменная счетчик цикла > -L) X Xk k л+ 1 Инструкция. 1. В режиме программирования (F ПРГ) ввести программу. 2. В режиме автоматической работы (F АВТ) вводить исходные данные и осуществлять вычисления по схеме: (п + 1) В/О С/П (х) С/П (х0) С/П (х,) С/П ... (хл) С/П (у0) С/П (yj С/П ... (у„) С/П (каждое очередное число вводить после ОСТА НО В а). После послед- него ОСТАНОВа списываем с индикатора значение Рп (х). 119
Контрольный пример. Вычислить значение интерполяционного полинома Лагранжа в точке х = 0,17 для функции, заданной в пяти узлах таблицей: ° 0.2 0,3 0,4 У1 1,00 1,11 1.22 1,35 1,49 1. Нажмем клавиши F ПРГ и клавиши программы. 2. Нажмем клавиши F АВТ и приступим к вводу данных и вы- числениям: 5 В/О С/П 0.17 С/П 0 С/П 0.1 С/П 0.2 С/П 0.3 С/П 0.4 С/П 1 С/П 1.11 С/П 1.22 С/П 1.35 С/П 1.49 С/П После ОСТАНОВа прочтем на индикаторе 1.1852299. Ответ: Р4 (0,17) = 1,19. Время ввода данных и счета около 2 мин, Программа 12 выполнения одного шага интерполяционной схемы Эйткена для вычисления значений полинома Лагранжа. Используется для вычисления элементов столбцов табл. 5.1 по формуле Lt-—k, (_| (х) Xi-k — X . Xi — X При этом Lois... п (х) = Новые узлы интерполяции можно подключать в процессе счета. Адрес Команда Код Адрес Команда Код Адрес Команда Код 00 G 06 05 11 10 ИП4 64 01 ПО 40 06 V 12 11 ИП1 61 02 КИПО ГО 07 FLO 5Г 12 — 11 03 КИПО го 08 02 02 13 -— 13 04 ИП6 66 09 — 11 14 С/П 50 Распределение регистров памяти: Номер регистра 1 2 4 5 6 Переменная xi-k ^1 — Л-]-1 Xi Ч-£,..,, <-1 X Инструкция. 1. В режиме программирования (F ПРГ) ввести программу. 120
2. В автоматическом режиме (F АВТ) , ввести исходные данные: (х) П6 (х(_А) П1 (х,) П4 ...П5 ................. П2. 3. Осуществить пуск программы: В/О С/П. После ОСТАНОВа списать с индикатора значение Ь,_А>..., (х) и заполнить таблицу. На диагонали получим значения поли- нома Лагранжа соответствующей степени (равной номеру узла) в точке х. Контрольный пример. Применяя схему Эйткена, вычис- лить значения интерполяционного полинома Лагранжа сте- пени п = 1, 2, 3 в точке х = 1 для функции, заданной таб- лицей: Х1 'Ji 4-1. । l-i-2, ( — 1.1 Ц-З. i—2,4—1, i 0 1,5 2 3 1,0 4.5 7,4 20,1 3,33333 1.6 -5,3 2,46667 3,9 2,94444 После ввода программы в автоматическом режиме вводим исход- ные данные: 1 П6 О П1 1,5 П4 1 П5 4,5 П2 В/О С/П. После останова запишем в таблицу 3,33333 и занесем это значение в РА, нажав клавиши ПА: 1,5 П1 2 П4 4,5 П5 7,4 П2 В/О С/П Значение 1,6 запишем в таблицу и зашлем в РВ: ПВ. 2 П1 3 П4 7,4 П5 20,1 П2 В/О С/П Значение — 5,3 запишем в таблицу и зашлем в PC: ПС. 0 П1 2 П4 ИПА П5 ИПВ П2 В/О С/П Значение 2,46667 запишем в таблицу и зашлем в РА: ПА. 1,5 П1 3 П4 ИПВ П5 ИПС П2 В/О С/П Значение 3,9 запишем в таблицу и зашлем в Р2: П2. 0 П1 3 П4 ИПА П5 В/О С/П Значение 2,94444 запишем в таблицу. Ответ: Рг (1) = 3,33333, Рг (1) = 2,46667, Р3 (1) = 2,94444. Время вычислений одного элемента таблицы — 5 с. 12.1
Программа 13 вычисления в автоматическом режиме зна- чений функции, заданной в двух точках, по формуле линей- ной интерполяции (5.14). Адрес Команда Код Адрес Команда Код 00 II1 41 10 С/П 50 01 С/П 50 11 ИП1 61 02 — 11 12 — 11 03 С/П 50 13 ипз 63 04 П2 42 14 X 12 05 С/П 50 15 ИП2 62 06 — 11 16 + 10 07 ХУ 14 17 БП 51 08 —L- 13 18 10 10 09 пз 43 Распределение регистров памяти: Номер регистра 1 2 3 Переменная *0 Уо ЬУо Инструкция. 1. В режиме программирования (F ПРГ) ввести программу. 2. В режиме автоматической работы (F АВТ) вводить исходные данные и осуществлять вычисления по схеме: (х0) В/О С/П (xj) С/П (у0) С/П (уг) С/П (х) С/П, прочесть на индикаторе значение Р± (х). 3. Для вычисления значений этой же функции в другой точке х достаточно нажать клавиши (х) С/П. Контрольный пример. По таблице значений функции Xi I 1,517 | 2,314 Ui 7,211 3,151 вычислить значение Рг (%) при х = 1,943. Вводим исходные данные: 1,517 В/О С/П 2,314 С/П 7,211 С/П 3,151 С/П 1,943 С/П. Ответ'. Р, (1,943) — 5,041. Время вычислений — 3 с. Программа 14 вычисления в автоматическом режиме зна- чений интерполяционного полинома Ньютона для равноот- стоящих узлов по формулам (5.15) и (5.16) при п + 1 <5: 122
Адрес Команда Код Адрес Команда Код Адрес Команда Код 00 ИПА 6- 12 гп 41 24 ИП6 66 01 — 11 13 ипд 6Г 25 ИПО 60 02 ипс 6[ 14 -1- 10 26 —- 11 03 ч- 10 15 пд 4Г 27 — И 04 ипс 6[ 16 ИП6 66 28 вх 0 05 — 13 17 по 40 29 — 13 06 пв 4 1_ 18 ипд 6Г 30 х 12 07 1 01 19 С/П 50 31 КП* 1 Е 08 П6 46 20 КП6 L6 32 FLO 5Г 09 0 00 21 КИП) ГЕ 33 21 21 10 пд 4Г 22 —. 11 34 БП 51 11 С/П 50 23 ИПВ 6L 35 13 13 Распределение регистров памяти: Номер регистра 0 1, .. • , 5 6 Л В с Д Переменная счетчик цикла Уо, • • . У 4 регистр косвен, адресации Л'о X — Х{ h h Рп (х) Инструкция. 1. В режиме программирования (F ПРГ) ввести программу. 2. В автоматическом режиме (F АВТ) ввести данные и приступить к вычислениям по схеме: (х0) ПА (А) ПС (х) В/О С/П. 3. После каждого ОСТАНОВа вводим последовательно значения функции (у0) С/П (t/J С/П .... При этом на индикаторе высвечивается значение полинома Pt (х), вычис- ленное по введенным значениям функции. Исчерпав все точки (или достигнув заданной точности), запишем окончательное значение Рп (х). Для интерполяции назад (формула (5.16)) можно занести в регистр С значение (—А), при этом, естественно, вместо х0 заносим последний узел и ввод у* начинаем с уп. Контрольный пример. По таблице значений f (х) 0 °'25 0,50 0,75 1 У( 1 1,31 1,75 2,31 3,00 вычислить значение Р4 (х) при х = 0,2. Ответ: Р4 (0,2) = ) ,24. Время ввода и счета равно 1,5 мин. 123
Программа 15 вычисления в автоматическом режиме зна- чений интерполяционного полинома Ньютона для неравно- отстоящих узлов (п + 1 = 4) по формуле (5.13): Адрес Команда Код Адрес Команда Код Адрес Команда Код 00 ИП2 62 17 КИП] Г4 34 по 40 01 ПЗ 43 18 КИП 4 Г4 35 6 06 02 1 01 19 ХУ 14 36 П4 44 03 . 0 00 20 вх 0 37 1 01 04 ПО 40 21 — И 38 4 04 05 6 06 22 кипо ГО 39 П1 41 06 ИПЗ 63 23 КИП1 Г1 40 КИП1 Г1 07 -1-- 10 24 — и 41 ИП5 65 08 П1 41 25 — 13 42 КИП4 Г4 09 1 01 26 КП5 L5 43 — И 10 2 02 27 ХУ 14 44 X 12 11 ИПЗ 63 28 FL3 5- 45 КИП1 П 12 — 11 29 18 18 46 4“ 10 13 П4 44 30 FL2 58 47 FLO 5Г 14 1 01 31 00 00 48 41 41 15 4- 10 32 С/П 50 49 С/П 50 16 П5 45 33 3 03 Распределение регистров памяти: Номер регистра 0 4 5 6 7 8 9 А В с Д Переменная счетчики циклов X *3 *2 И *0 Уо Уз У‘2 Уз Инструкция. 1. В режиме программирования (F ПРГ) ввести программу. 2. В автоматическом режиме (F АВТ) ввести исходные данные: узлы интерполяции х0, х}, хг, хя соответственно в регистры 9, 8, 7 и 6, значения функции у0, ylt у.>, у3 соответ- ственно в регистры А, В, С и Д, 3 в Р2. 3. Нажать клавиши В/О С/П. 4. После ОСТАНОВа (через 55 с) ввести значение х в Р5. Нажать клавишу С/П. После следующего ОСТАНОВа (через 15 с) прочесть на индикаторе Р3 (х). 5. Если но тем же узлам интерполяции требуется вычис- лить значение полинома Ньютона в другой точке х, то вво- дим: (х) П5 БП 33 С/П. 124
Контрольный пример. Для таблицы значений функции ° 2 3 У1 . 0 0,5 0,866 1,0 найти значение интерполяционного полинома Ньютона третьей сте- пени при х = 0,7. После ввода программы вводим исходные данные: 0 П9 1 П8 2 П7 3 П6 0 ПА 0,5 ПВ 0,866 ПС 1 ПД 3 П2 Нажимаем клавиши В/О, С/П, после ОСТАНОВа вводим значение аргумента х = 0,7 в Р5, С/П. После ОСТАНОВа получим на индика- торе Р3 (0,7) = 0,3596. Программа 16 вычисления значений в полуавтоматическом режиме интерполяционного полинома Ньютона по формуле (5.12) для таблицы разделенных разностей функции с любым числом узлов: Адрес Команда Код Адрес Команда Код Адрес Команда Код 00 . ИП1 61 08 ИП1 61 16 X 12 01 ИПА 6- 09 ХУ 14 17 ипд 6Г 02 — и 10 — 11 18 + 10 03 ПС 4[ 11 ипс 61 19 ПД 4Г 04 С/П 50 12 X 12 20 БП 51 05 ПД 4Г 13 ПС 4[ 21 06 06 06 С/П 50 14 ВХ 0 07 ПВ 4|_ 15 С/П 50 Распределение регистров памяти: Номер регистра 1 А В С Д Переменная X *0 [ ] (х — хк) ft=0 Pi w Инструкция. 1. В режиме программирования (F ПРГ) ввести программу. 2. В автоматическом режиме (F АВТ) ввести исходные данные: (х) П1 (х0) ПА и нажать клавиши В/О С/П. При первом ОСТАНОВе набрать на клавиатуре значение у0 и на- жать клавишу С/П. 125
3. При последующих ОСТАНОВах вводить последова- тельно значения узлов (х,) С/П, значения конечных разностей ([ (л0; лу; л;)) (стоящих на верхней диагонали табл. 5.2) С/П, после ОСТАНОВа на индикаторе прочесть значение полинома Pi (.г). 4. Повторить п. 3 для каждого узла интерполяции, записы- вая, если нужно, значения полиномов Ньютона соответствую- щей степени в точке х. Для повой таблицы значений функции повторить п. 2—4. Предполагается, что для значений функции составлена таб- лица разделенных разностей (см. табл. 5.2). Кснтро.;ьный пример. Для функции, заданной таблицей, вычис- лить значение полинома Ньютона при х = 0,6: У1 Разделенные разности 0 0,2 0,5 0,7 1,0 1,0 1,2 1,6 2,0 2,7 1,00 1,33 2,00 2,33 0,66 1,34 0,66 0,97 —0,85 — 1,82 После ввода программы заносим "исходные данные: 0,6 П1 0 ПЛ В/О С/П; после ОСТАНОВа 1 С/П; после ОСТАНОВа 0,2 С/П, 1 С/П, прочтем на индикаторе значение /Д (0,6) = 1,60; 0,5 С/П 0,66 С/П, прочтем значение Р2 (0,6) = 1,76; 0,7 С/П 0,97 С/П, прочтем значение Р3 (0,6) = 1,78; 1 С/П 1,82 /—/ С/П, прочтем значение Р4 (0,6) = 1,79 и т. д., при необходимости в про- цессе вычислений можно добавлять новые узлы интерполяции. Задания к лабораторной работе 5. Для функции, заданной таб- лицей «, 0 1,25 0,50 075 1,00 У1 1,00 1,28 1,65 2,12 2,72 вычислить значение полинома Лагранжа в точке х — 1 — 0,033л и полинома Ньютона в точке х = 0,033/г (п = 1, ..., 30 — номер варианта). Для вариантов 1 —15 использовать формулу Ньютона интерполяции вперед (5.15), для вариантов 16—30 — формулу интер- поляции назад (5.16). 126
5. 4. Аппроксимация функции методом наименьших квадратов Рассмотренные методы интерполяции обеспечиваю! анали- тическое представление (или вычисление) таблично заданной функции f (х) лишь на небольшом интервале с несколькими узлами интерполяции. Если требуется получить аппроксими- рующую функцию <р (х) при значительном числе наблюдений f (х,), то повышение степени интерполяционного полинома усложняет вычисления и увеличивает погрешность. Кроме того, процесс вычисления разностей, используемый в интерполяции, является неустойчивым, т. е. даже незначи- тельные ошибки в значениях функции приводят к тому, что разности высоких порядков практически носят случайный характер. Поэтому, если значения функции f (х) измерены в резуль- тате эксперимента со случайными погрешностями, называе- мыми в технике шумами, то проводить интерполяцию нецеле- сообразно. В таких случаях разумнее применять средние квадратические приближения, так как они сглаживают от- дельные локальные ошибки наблюдений и лучше представ- ляют .реальную функциональную зависимость. Построение такого приближения называют сглаживанием эксперимен- тальных данных. Наиболее эффективным методом построения наилучшего среднего квадратического приближения является метод наи- меньших квадратов. Пусть функция f (х) задана значениями, которые могут содержать случайные ошибки, на дискретном или непрерыв- ном множестве X s [о; /?]. Выберем систему линейно незави- симых на X функций ф0 (х), фх (х), ..., ф„ (х) и рассмотрим п нх всевозможные линейные комбинации ф (х) — Ус;ф/ (х). 1 = 0 Множество обобщенных полиномов ф (х) образует (п + 1)- мерное линейное подпространство Нп±\. Будем аппрок- симировать функцию f (х) ^Нп-\л обобщенным полиномом Ф (х). По принципу наименьших квадратов параметры с0, cit ..., сп аппроксимирующего обобщенного полинома ф (х) -- п — ф, (х) определяются из условия, чтобы квадрат взве- 1 = 0 щепного среднего квадратического отклонения функций / (х) и ф (х) на множестве X; 127
Р2 (Л ф) Ф(с0, Ср , С„) = ||/ — ф||2 = (/ — Ф, / — ф) = V J) — 2 S Ct (ф,-, /) + S S W (фг, Ф/) (5.24) 1=0 1 = 0 /=0 был наименьшим. Многочлен ф (х), минимизирующий р2 (/, ф), называется многочленом наилучшего среднего квадратического приближении функции f (х), а метод его отыскания — мето- дом наименьших квадратов. Для определения минимума функции Ф (с0 сх, .... с;!) приравниваем к нулю ее частные производные по неизвест- ным параметрам п (Ф*, Ф,) - (Л ФА) = 0 (5.25) i=0 (k = 0, 1, 2, ... , п). Получим систему линейных алгебраических уравнений в развернутом виде с0 (Фо- Фо) + ст (Ф1. Фо) + • • • + сп (ф,„ ф0) = (Л ф0); с0 (Фо- Ф1) + Ci (Фр Ф1) + • • • + сп (ф,„ ф0 = (/, фх); (5.26) с0(ф0, ф„) + сДф,, ф„) +••’•+ с,г(ф„ф„) = (/, ф„). Систему (5.26) называют нормальной системой метода наи- меньших квадратов. Определитель системы есть определитель Грама и в случае линейно независимых функций ф, (х) (t = = 0, 1, ..., п) отличен от нуля, т. е. коэффициенты с, опреде- ляются однозначно. Отметим, что функция Ф (с0, с}, .... сп) в (5.24) есть квад- ратичная форма относительно аргументов, поэтому она имеет единственную стационарную точку, определяемую необходи- мыми условиями (5.25). Ввиду положительности квадратичной формы решение системы (5.26) определяет минимум этой функции. Для решения нормальной системы уравнений (5.26) можно применять известные методы (см. гл. 3), например метод Гаусса—Жордана. Однако, если размерность системы велика, то ее матрица плохо обусловлена и параметры аппроксимации определяются с большими погрешностями. Поэтому изложен- ную выше методику обычно применяют в тех случаях, когда число параметров невелико. Во всех остальных случаях лучше использовать приближение ортогональными функциями. Параметры аппроксимации с, (i = 0, 1....... п) наиболее просто определяются в том частном случае, когда базисные 128
функции ф; (х) (с = О, 1, ...> п) ортогональны на множе- стве X, т. е. (фе, cpj = О (t #= k). (5.27) При таком выборе базисных функций матрица системы уравнений (5.26) становится диагональной, а параметры c = IL^(i = o, 1........п) (5.28) ' (Ф,. Ф? ’ ’ k ’ называются обобщенными коэффициентами Фурье функции f (х) относительно системы ортогональных функций {<р, (x)}q . Выбор ортогонального базиса удобен тем, что при увели- чении порядка обобщенного полинома значения всех преды- дущих коэффициентов с0, сх, .... сп не изменяются, в то время как в любой неортогональной системе функций все вычисле- ния метода наименьших квадратов нужно проводить заново. В случае ортогонального базиса выражение (5.24) для квадрата отклонения функции ср (х) от f (х) имеет достаточно простой вид: п б2 = Ц/-<р||2 = (Л /)- S ^(Фо Ф.) = 1=0 НШ—lbhcpJi2. (5.29) 1=0 Поскольку 62 > 0, то из (5.29) следует неравенство: п (5.зо) 1=0 Если функции {ф/(х)}„ ортонормированы, то для коэф- фициентов Фурье выполняется неравенство Бесселя; S с2<Ш2- (5.31) 1=0 При увеличении порядка /г обобщенного полинома ср (х) — п = 5, с;ср,.(х) погрешность среднего квадратического прибли- 1=0 жения д* в силу равенства (5.29) убывает. Если lim |i/—£ р = 0, (5.32) 1=0 ь21<1. <) то говорят, что последовательность обобщенных полиномов по ортогональной системе сходится в среднем к функции 5 6-467 129
f (x). Сходимость в среднем связана с понятием полноты сис- темы базисных функций (см. и. 5.1). Если система функций <р0 (х), <рг (х), <р2(х), ... является полной в линейном нормированном пространстве L, то для любой функции f(x)QL и любого е>0 существует обобщен- п иый полипом п-го порядка <р(х) = У^гр/х) £ И.,+) с L такой, (=0 что о / — <р" <е. В этом случае ряд V с/р, (х) сходится к г> функции f (х) в метрике L, т. е. для м-й частичной суммы S„(x) = (p(x) выполняется соотношение lim i| f- Sn\\ = 0. (5.33) В частности, обобщенный ряд Фурье У} фср, (х) для про- 1=0 извольной функции [ (х) g Lp2 [а; 6] по полной ортонормиро- ванной системе функций <р0(х), ср1(х), tp2(x), ... сходится в среднем к f(x). Условие полноты ортонормированной системы функций эквивалентно тому, что для любой функ- ции / (х) g Ц [а; Ь] выполняется равенство Парсеваля 00 = (5-34) =о получаемое из неравенства Бесселя (5.31) при п->оо, где d — коэффициенты Фурье функции / (х) по данной системе функций. Равенство (5.34) называют еще уравнением замкну- тости. В пространстве L? [а; Ы понятия замкнутости и пол- ноты эквиваленты. Если X — дискретное множество точек х0, хп .... хт, то любая система (т + 1)-й функций, линейно независимых на множестве точек X, будет полной на этом множестве. Рассмотрим алгоритмы аппроксимации функции f (х), заданной на дискретном или непрерывном множестве X = [о; Ь], методом наименьших квадратов при различном вы- боре базисных функций <р, (х) (i = О, 1.п). 5. 5. Точечная аппроксимация функции методом наименьших квадратов Пусть в результате наблюдений на дискретном множестве точек х0, xlt ..., х,п получена таблица значений функции f (х); Уо — f (xq), Ух = f (xj, ..., ущ = f (X/ii). 130
Обычно предполагается, что значения аргумента опреде- лены значительно точнее, чем значения функции. Построим на указанном дискретном множестве точек среднее квадрати- ческое приближение в виде обобщенного полинома п ф(х) = Е с;<р, (х). 1=0 По принципу наименьших квадратов требуется, чтобы взвешенная сумма квадратов- отклонений значений полинома ср (х) от заданных значений функции f (х) во всех узлах х, (г = 0, 1, ..., т) была минимальной. Параметры аппроксимирующего полинома <р (х), с учетом обозначений (5.3) и (5.24), определяются из условия минимума функции т Ф(с0. .......сп)= S P, (4>(Xi) — f(x,))2 1=0 и являются решением системы линейных алгебраических уравнений т Е Pi [СоФо (х<) + С1Ф1 (х() +-Ь с„ф„ (xz)] Ф* (х,) = 1^0 т = Е Pif (х() Ф* (х,) (fe = 0, 1, 2, ...,п). (5.35) 1=0 Замечание. Если в методе наименьших квадратов п = т, то точечная средняя квадратическая аппроксимация алгеб- раическим многочленом совпадает с лагранжевой интерполя- цией. На практике обычно число искомых параметров выби- рают значительно меньшим числа наблюдений: п << т. Тогда случайные ошибки отдельных измерений погашают друг друга и решение становится более достоверным. Выбор базисных функций ср(- (х) (г = 0, 1, .... /г) обычно диктуется физическим смыслом задачи, при анализе которой получены экспериментальные данные. Иногда одни и те же исходные данные почти с одинаковой точностью удается сгла- дить кривыми, совершенно различными по функциональной природе. Рассмотрим простейший случай точечной аппроксимации таблично заданной функции методом наименьших квадратов с помощью обобщенного полинома Ф (х) = софо (х) + с,Ф1 (х), (5.36) зависящего от двух параметров и ср, <р0 (х) и (х) — лю- бые функции, линейно независимые на множестве точек a-0, 5* 131
%i, xm. Пусть веса pi = 1 (i = О, 1, .... m). Неизвестные параметры с0 и cL, согласно (5.35), определяются из системы . т tn т £ <Ро W + Cl S Фо (*<) Ф1 (х<) = S / (*<) Фо (*.); 1=0 <=0 1=0 (5.37) т т гп ' ' с01! Фо (*.) Ф1 + ci S ф! = S / (*<) Фх (•*<)• 1=0 1=0 1=0 Решение этой системы по формулам Крамера _ £ / (*() Фо <xi) £ ф, w — £ f w £ ф° От) с° £ Фо^-) £ Ф1(\) — (£ Фо (xi) Ф1 (*i))2 £ Фо w £ / w Ф1 к-> - £ f w Фо к> £ Фо (*,) Ф1 (*р _ __ Ci = £ <?; (хр £ ф^ up - (£ т„ (х(.) Ф1W)2 ’ где суммирование проводится по i = 0, 1, . . . , т. Вычисления по формулам (5.38) реализуются на микро- калькуляторе программой 17. Программа 17 вычисления параметров аппроксимирующей функции <р (х) = с0ф0 (х) + с1Ф1 (х) методом наименьших квад- ратов: 6 по П4 П6 С/П ПП 47 ИП1 кипо X вх ИПЗ X КИП4 + КП6 ХУ КИП4 + КП6 FLO 07 FL2 00 ИП7 ИП8 ПП 41 ИП9 ИПА ПП 41 t ИП8 ИПС — ХУ ПП 41 С/П ИПВ X ИПС ч- — В/О ... (Подпрограмма вычисления <р0(х) и Ф1(х)) В/О. Распреде Номер регистра ление регистров памяти: Д 5 1 3 с А, В Переменная Номер регистра Xi yt Фо(х/) Ф1 (х.) £ф§ (х/) 0,2 £фо (х() Ф1(ха 4,6 9 7 Переменная £ Ф2 (х;) £шФ1 (х;) Счетчики циклов Регистры косвен- ной адресации Инструкция. 1. Составить подпрограмму вычисления зна- чений функций Фо (х) и (х). При этом значение х .хранится 132
в РД, а значения функций заносятся соответственно в PI И РЗ. 2. В режиме программирования (F ПРГ) ввести про- грамму и подпрограмму. 3. В автоматическом режиме (F АВТ) занести число узлов в Р2 и очистить Р7—PC: (m + 1) П2 О П7 П8 П9 ПА ПВ ПС 4. Нажать клавиши В/О С/П. После ОСТАНОВа ввести xt и уг но схеме: (xj ПД П5 С/П. После каждого следующего останова вводить данные для остальных узлов: (х() ПД (у,) П5 С/П. Перебрав все узлы, на индикаторе получим значение с0. Нажав клавишу ХУ, получим значение сг. Контрольный пример. Для функции / (х) xt I О I 0,25 I 0,5 I 0,75 I 1 У1 = / (Xi) 0,5 0,9 0,8 0,3 —0,5 определить параметры с0 и с, аппроксимирующей функции вида (р (х) = с0 cos лх + ct sin лх. Составим подпрограмму вычисления зна- чений функций ф0 (х) = cos лх и ф, (х) = sin лх, начиная с адреса 47: ИПД л X cos П1 ВХ sin ПЗ В/О После ввода программы в автоматическом режиме вводим в ре- гистр 2 число узлов 5 П2 и очищаем регистры 7, 8, .... С: 0 П7 П8 П9 ПА ПВ ПС. Осуществляем вычисления: В/О С/П 0 ПД 0.5 П5 С/П 0.25 ПД О.9 П5 С/П 0,5 ПД 0.8 П5 С/П 0.75 ПД 0.3 П5 С/П I ПД 0.5 /-/ П5 С/П Запишем с индикатора значение с0 = 0,47475465. Нажимаем кла- вишу XY, запишем с, = 0,82426405. Ответ: ф (х) = 0,47 cos лх + 0,82 sin лх. Время счета с вводом исходных данных — около 3 мин. 5. 6. Точечная аппроксимация функций алгебраическими многочленами В приложениях метода наименьших квадратов наиболее часто полагают гр,- (х) = х' (< =0, 1, .... п), т. е. в качестве приближающей функции берется многочлен ф W = G) -г + • • • + спхп. 133
Как отмечалось, степень многочлена обычно выбирается значительно меньшей числа наблюдений: п т. Для указанного частного случая полиномиальной аппро- ксимации коэффициенты и правые части нормальной системы (5.26) определяются по формулам: т /п (‘Pi, ф;) = S (/> <Р/)= S ytx'i(k, / = 0, 1,... , П), (5.39) 1=0 i—0 где т + 1 — число узлов аппроксимации. Рис. 12 Если опытные данные при их изображении на графике выстраиваются почти по пря- мой (рис. 12), то сглажива- ние удобно проводить пря- мой, называемой линией ре- грессии (га = 1): ср (х) = с0 4- схх. Параметры ее определяются из системы c0(."i+ 1) + Н = S у,-, ni '=° ,=0 (5.40) с0 S х^ "Ь Ci Xi ~ Xi х^у^ 1=0 1=0 1=о При п = 2 параметры квадратичной аппроксимирующей функции ср (х) = с0 + cix + W2 определяются из системы ' т т т Со (.т + 1) + q S Xi + с2 S х2 = И г/,; /=0 1=0 1=0 т т т т < Со S *1 + С1 S X? + с2 £ х- = S х,г/,; (5-41) i=0 1 = о 1=0 1=0 т т т т Со S xi + Cl и х- + с2 и х- = и х-г/р I 1=0 1 = 0 i=0 1=0 Полученные системы линейных алгебраических уравне- ний можно решить, например, методом Гаусса—Жордана. На практике применяют полиномы сравнительно невысокой степени (« < 5), так как при более высоких степенях система нормальных уравнений может оказаться плохо обусловлен- ной. Погрешность аппроксимации линейным и квадратичным 134
многочленом согласно (5.24) определяется соответственно выражениями: гп 6i = (И (60 + cixi —У,)2)42, 1=0 т б2 = (со + СЛ,+ с2-^ — У,)2)1/2- 1 = 0 (5.42) (5.43) 5. 7. Лабораторная работа 6. Точечная аппроксимация функции алгебраическими многочленами методом наименьших квадратов Для функции f (х), заданной значениями у0, у1у .... ут на дискретном множестве точек х0, хь хт, вычисляются параметры линейной и квадратичной аппроксимирующих функций методом наименьших квадратов. Программа 18 вычисления параметров линейной регрес- сии ф (х) = с0 + С;Х методом наименьших квадратов из систе- мы (5.40) Адрес Команда Код Адрес Команда Код Адрес Команда Код 00 П2 42 16 + 10 32 X 12 01 X 12 17 П7 47 33 ИП1 61 02 ИП8 68 18 С/П 50 34 — 11 03 -1- 10 19 ИП6 66 35 ИП2 62 04 П8 48 20 ИП4 64 36 — 13 05 ИП1 61 21 X 12 37 П2 42 06 ИП5 65 22 ИП5 65 38 ИП4 64 07 + 10 23 FX2 22 39 X 12 08 П5 45 24 — 11 40 /-/ 01. 09 ИП1 61 25 П2 42 41 ИП7 67 10 FX2 22 26 ИП5 65 42 + 10 11 ИП6 66 27 ИП8 68 43 ИП5 65 12 4- 10 28 X 12 44 —— 13 13 П6 46 29 П1 41 45 пз 43 14 ИП2 62 30 ИП6 66 46 С/П 50 15 ИП7 67 31 ИП7 67 Распределение регистров памяти: Номер peiистра 1 2 3 4 5 6 7 8 Перемен- ная У1, С1 т 4- 1 т i=0 т у; х} 1=о т £ 4 = 0 т xi'Jl ( = 0 135
Инструкция. 1. В режиме программирования (F ПРГ) ввести программу. 2. В автоматическом режиме (F АВТ) занести в память число узлов аппроксимации и очистить регистры 5—8: (т + 1) П4 О П5 П6 П7 П8 3. Ввести данные для очередного узла аппроксимации по схеме (х0) П1 (у0) В/О С/П 4. Повторить а. 3 для всех узлов (т + 1) раз. 5. После последнего ОСТАНОВа нажать клавишу С/П и после ОСТАНОВа записать с индикатора значение а из Р2 значение с0: ИП2 (с0). Контрольный пример. Пусть функция f (х) Требуется найти аппроксимирующую функцию <р (х) = с0 + qx методом наименьших квадратов. Число узлов т + 1 = 6. После выполнения п. I, 2 вводим данные для узлов: о,1 П1 3.7 В/О С/П, после ОСТАНОВа: 0,2 П1 4.1 В/О С/П, после ОСТАНОВа: 0,3 П1 4.4 В/О С/П, после ОСТАНОВа: 0,4 П1 4.8 В/О С/П, после ОСТАНОВа: 0,5 П1 5.3 В/О с/п, после ОСТАНОВа: 0,6 П1 5.7 В/О С/П, после ОСТАНОВа: С/П. Прочесть на индикаторе значение сг =, 4. Нажав клавиши ИП2, прочесть на индикаторе значение с0 = = 3,267. Ответ: <р (х) = 3,267 + 4х. Время счета с вводом исходных данных — около 1,5 мин. Программа 19 вычисления коэффициентов квадратичного аппроксимирующего многочлена Ф (х) = с0 4- сгх + с2х2 методом наименьших квадратов в автоматическом режиме. В предложенной программе вначале., вычисляются коэффи- циенты расширенной матрицы системы (5.41) (команды 00—19), а затем система алгебраических уравнений решается методом Гаусса—Жордана. 136
Адрес Коман- да Код Адрес Коман- да Код Адрес Команд- Да Код 00 С/П 50 31 48 48 62 ХУ 14 01 ПА 4— • 32 ИП6 66 63 ПС 4С 02 1 01 33 ИП7 67 64 ипд 6Г 03 пв 4| 34 ИП8 68 65 П7 47 04 9 09 35 ПП 53 66 В/О 52 05 П1 41 36 59 59 67 ипс 6Г 06 П2 42 37 ПП 53 68 —* . 13 07 ПП 53 38 48 48 69 ПД 48 08 79 79 39 ИП5 65 70 ИП8 6г 09 ПП 53 40 ИПА 6— 71 X 12 10 79 79 41 ИПВ 6|_ 72 11 11 С/П 50 42 ПП 53 73 ХУ 14 12 ПВ 4| 43 59 59 74 ипд 6Г 13 ИП9 69 44 ПП 53 75 ИП7 67 14 + 10 45 48 48 76 X 12 15 П9 49 46 ИП9 69 77 — 11 16 ПП 53 47 С/П 50 78 В/О 52 17 79 79 48 ИПЗ 63 79 ПП 53 18 FLO 5L 49 ИП4 64 80 84 84 19 00 00 50 ИП9 69 81 ПП 53 20 ИП5 65 51 ПП 53 82 84 84 21 ИП6 66 52 67 67 83 В/О 52 22 ИП7 67 53 П4 44 84 ИПА 6— 23 ПП 53 54 ХУ 14 85 ИПВ ' 61 24 67 67 55 П9 49 86 X 12 25 ПА 4— 56 ипд 6Г 87 пв 4L 26 ХУ 14 57 ПЗ 43 88 КИП1 Г1 27 ПВ 41 58 В/О 52 89 “F 10 28 ИПД 6Г 59' ПП 53 90 КП2 12 29 П5 45 60 67 67 91 В/0 52 30 ПП 53 61 П8 48 Распределение регистров памяти: Номер регистра 3 4 9 5 6 7 8 Перемен- ная 1 = 0 S о 1=0 m Л Уй Го 1=0 tn 1=0 т i=0 т 1=0 tn i=0 Инструкция. 1. В режиме программирования (F ПРГ) ввести программу. 2. В автоматическом режиме (F АВТ) очистить регистры памяти О ПЗ П4 П5 П6 П7 П8 П9 и ввести число узлов аппроксимации (т + 1) ПС ПО 137
3. Нажать клавиши В/О С/П. При каждом ССТАНОВе ввести последовательно данные для узлов аппроксимации: (х0) С/П (t/0) С/П ... (х,п) С/П (ут) С/П 4. После последнего ОСТАНОВа прочесть на индикаторе или в PS значение с0, нажав клавиши ИП4 — значение сь клавиши ИПЗ — значение с2. Ответ: ср (х) = с0 + CjX + с2х~. Контрольный пример. Пусть функция / (х) т + 1 = 5 — число узлов. I. Нажимаем клавиши F ПРГ, вводим программу. 2. Нажимаем клавиши F АВТ и клавиши О ПЗ П4 П5 П6 П7 П8 П9 5 ПС ПО 3. Нажимаем клавиши В/О С/П После ОСТАНОВа последовательно вводим данные для узлов: 2 1—1 С/П 4 С/П 1 /—/ С/П 2 С/П О С/П 3 С/П 1 С/П 6 С/П 2 С/П 8 С/П 4. Запишем с индикатора с0 = 3,1714286, ИП4 — запишем = 1,2; ИПЗ — запишем с2 = 0,7142857, Ответ: <р (х) = 3,171 + 1,200х + 0,714х2. Время вычислений с вводом исходных данных — около 2 мин. Задания к лабораторной работе 6. Методом наименьших квадра- тов найти: а) коэффициенты линейной регрессии <р (х) = с0 + схх для функции Xi 0 0,1 0,2 0,3 У1 0,01+0,1 (k — 1) 0,4 0,50+0,1 (k— 1) 0,19+0,1 (k — 1) * 0,31+0,1 (It — 1) 0,42+0,1 (k- 1) где k = 1, 2, 3, ..., 30 — номер варианта; б) коэффициенты квадратичного аппроксимирующего многочлена <р (х) = Су 4- CjX 4- с2хг 138
для функции 1,56 -|- k 1,56-|-0,П —0,34 -|- 0,2г —0,24 -I- k —0,24 -|-0,1/ —2,14 4- 0,2г 1,04 /г 1,04 + 0,1/ —0,86 + 0,2г х; 10 12 14 У1 2,0 -|- k 2,0+ 0,1/ 0,10 + 0,2/- 2,36 + к 2,36 + 0,1/ 0,46 0,2/ 2,64 -1- k 2,64 + 0,1/ 0,74 -|- 0,2г где k = 1, 2, 3. 10; I = 11, 12, 19; т = 20, 21, ..., 30 — номера вариантов. 5.8. Точечная аппроксимация функций ортогональными полиномами Пусть функция / (х) задана своими значениями на множе- стве X точек х0, хь ..., х,п. Будем искать аппроксимирую- щую функцию <р (х) в виде обобщенного полинома ср (х) — гп — Sci(Pi W, а базисные функции {<р( (х))о выберем на мно- 1=о жестве X так, чтобы при увеличении порядка полинома все предыдущие коэффициенты с,- не изменялись. Этого можно добиться, если выбрать функции <pt- (х) ортогональными на X. В частности, в качестве базиса можно выбрать систему полиномов Чебышева последовательно возрастающих степе- ней, ортогональных с весом на множестве точек X, т. е. поло- жить <Р(- (х) = Pim (х), где индекс i = 0, 1, .... п определяет степень многочлена, m — число узлов, уменьшенное на единицу. Условия ортого- нальности системы полиномов на множестве точек X имеют вид m S PkPhn UJ pim (л'а) = 0 (i ф j; i, j = 0, 1, .. . , и), (5.44) t=o где — весовые коэффициенты. При m множество таких полиномов с ненулевыми нормами m S рЛМ>0 (i = 0, 1,...,П) i=0 образует базис в пространстве [15]. 139
Ап п роксим и ру юща я функци я Ф (X) = с0Р0т (Л-) + CjPlm (X) + ... -L спРпт (х) (5.45) будет многочленом степени п. Определим параметры с,- (I = 0, 1, п) методом наи- меньших квадратов из условия минимума среднего квадрати- ческого отклонения. Тогда, согласно (5.28) получим Е РаТ (*/,.) Ъ --------------------- (4 = 0,1......п). (5.46) Е Ркр]т t=0 Коэффициенты ch определяемые по последним формулам, будут обобщенными коэффициентами Фурье функции f (х) относительно системы ортогональных полиномов {Р,т (х)}"=г). В данном случае легко подсчитать, учитывая (5.29), сред- нее квадратическое отклонение функций f (х) и ф(х) на множестве X: 6„ = lif-<p|| = (ilfil2-E (5.47) 1=0 tn т где н/н2= Е л-/2(^); !1Л,л2 = Ер^,Ж)- /<=0 /.'=0 Отсюда следует, что с увеличением п погрешность аппро- ксимации уменьшается. Поэтому, если при выбранном п точ- ность неудовлетворительна, повышают степень полинома Ф (х). Учитывая свойство минимальности коэффициентов Фурье, отметим, что обобщенный полином (5.45) порядка п с коэффи- циентами Фурье функции / (х), определяемыми по формулам (5.46), имеет наименьшее среднее квадратическое отклонение от / (х) по сравнению с любыми другими полиномами того же порядка п 124]. Ортогональные полиномы Чебышева Pim (х) (г =0, 1, ..., /г), зависящие от выбора узлов х*. и весов рк (/г = 0, 1, ..., т), определяются с точностью до постоянного множителя. Если, например, потребовать, чтобы коэффициент при наи- высшей степени х равнялся единице, 'то они определяются однозначно. Такие полиномы при любом расположении узлов можно построить из последовательности 1, х, №, ... с помо- щью ортогонализации Шмидта [20]. 140
Если веса pk = 1 (/? = О, 1, .... tn), а точки х0, хп .... хт — равноотстоящие с шагом h, то для полиномов Чебышева и их значений составлены таблицы [12]. С помощью подста- новки / = , х = хй +th точки х = х0, , хт переводятся в точки t = 0, 1, 2, .. . .. . , т. На множестве таких целочисленных узлов полиномы Чебышева и их нормы вычисляются по таким формулам [8, 15]: I = (5.48) fr=0 т ил. w ip - w -<5-49» i = 0, 1, 2,... , п, где используются сокращенные обозначения для факториаль- ных полиномов /[А] = t(t— 1) .. . (t — k+ 1), CkQ — число комбинаций из q по k. По формулам (5.48) выпишем первые пять полиномов Чебышева: POm(O=l; = 1 - 2 ; Р2т (0 = 1 - 6 *- + т (т — 1) ’ р /А __ 1 1 О I QA 0 90 t У I) V 2) РАт (/) = 1 — 20 - + 90 7~ п — 140 ' '/ ~ 'iw ~ + т т(т— 1) т(т— \)(т — 2) 1 , /(/- l)(Z-2)(/-3) ‘ т (т — 1) (т — 2) (т — 3)' В окончательном результате возвращаемся к переменной х по формуле ^X—XQ h 141
С помощью подстановки t = х + 2 получим целочисленные узлы I — 0, 1,2, 3, 4. Выберем п = 2, т. е. используем первые три поли- t 3 нома Чебышева Р04 (/) = 1; Р14 (/) = 1 — —; Р24 (/) = 1 — у/+ Вычисления будем проводить на микрокалькуляторе в непро- граммируемом режиме. Учитывая (5.49), вычислим квадраты норм полиномов HPo4li2 = 5; || Р14 И2 = = 2,5; || Р24 [|* = -^—4 4 = 3’5’ Параметры аппроксимации определяем по (5.46) (р^=1, k = = 0, 1....т\. с0= 4 (4 + 2 + 3 + 64-8) = 4,6; □ С1= 4(4- 1 + 2- 0,5+ 3-0+ 6. (-0,5)+ 8(-1)) = -2,4; /,0 с2 = 4 (4 • 1 + 2 (-0,5) + 3 (-1) + 6 (-0,5) + 8.1)= 1,4286. Аппроксимирующий полином <р (0 = 4,6 - 2,4 (1 - 4) + 1,4286 (1 - 11 + 11 (t - l)j . Положив t = x-y2, выразим его через х: <р (л) = 3,171 + 1,200* + 0,714*2. Аналогичный результат был получен при решении нормальной системы уравнений. Учитывая (5.47), вычислим квадрат отклонений полинома <р (*) от табличных данных: 62 = (16 + 4 + 9 + 36 + 64) — (4,62 . 5 + 2,4а . 2,5 + + 1.42862 • 3,5) = 129— 127,343= 1,657. Поскольку отклонения ф (*) от табличных данных довольно зна- чительны, повысим степень полинома ф (*) на единицу. Добавим полином 5 5 Р34 (0 = 1 - 3t + t Ц - 1) - -g t(t - 1) (< - 2). 142
Вычислим квадрат его нормы 8 • 7 • 6 • 5 7 • 4 • 3 • 2 Р il2 _ ' *34 il — = 10. При этом требуется вычислить всего один коэффициент = -’6 (4-1+2 (-2) + 3 • 0 + 6 2 + 8 (-1)) = 0,4. Таким образом, аппроксимирующий кубический полином <Р (/) = 4,6-2,4 (1 -1/j + 1,4286 (1 + (t- 1)) + + 0,4 ^1 — 3/+ ^-/ (/— ])-|/(/-l) (/-2)) или через переменную х дЭД = 3,171 + 2,333х + 0,714х2 — О.ЗЗЗх3. Квадрат отклонений кубического полинома от табличных данных 6g = 0,057. Замечание. Погрешность аппроксимации для случая диск- ретного множества точек х0, xlf хт состоит из погрешно- сти метода и погрешности результатов наблюдений. Погреш- ность метода наименьших квадратов вызвана тем, что функ- ция f (х) 3 Нп+1 заменяется обобщенным полиномом гр (х) £ Q Нп+1. Точность аппроксимации зависит от самой функции f (х) и от выбора базиса (<рг (х)]о- Как было показано выше для системы ортогональных поли- номов, квадрат отклонения функций ср (х) и f (х) умень- шается с увеличением порядка полинома п. Погрешность результатов наблюдений вызвана случай- ными ошибками в измеренных значениях функции / (х,). Она также зависит от выбора числа узлов аппроксимации, их рас- положения и от выбора весовых коэффициентов. Если увели- чивать порядок полинома п, то при п — т будет интерполи- роваться функция / (х), при этом не сглаживается шум экс- перимента, т. е. случайные ошибки в исходных данных будут сильно искажать интерполяционный полином. Если же вы- брать порядок полинома низким, то получим грубое описание экспериментальных зависимостей. Дисперсия случайной ошиб- ки растет [8] с увеличением порядка полинома и убывает с увеличением числа узлов, поэтому желательно выбирать п <£. т. В математической статистике разработаны специальные критерии для проверки гипотезы о наличии параболической регрессии n-го порядка. >43
В практических вычислениях порядок полинома можно выбрать равным порядку практически постоянных разностей табличных значений функции. Кроме того, можно последова- тельно повышать порядок полинома, сравнивая квадраты отклонений 6Л с погрешностью результатов эксперимента е. При > е увеличиваем п пока не достигнем 6,; ш е. Если ври этом окажется, что п т, то аппроксимация проведена удачно. Если п почти совпадает с числом узлов, то следует выбрать другие базисные функции. 5.9, Точечная аппроксимация функции тригонометрическими полиномами Во многих технических задачах требуется аппроксимиро- вать периодическую функцию / (х) периода Т = 2/. В таких случаях приближение целесообразно находить в виде тригоно- метрического полинома порядка п по системе ортогональных на отрезке [0, 21] функций , пх . пх 2лх . 2лх илх . плх 1, COS-,-, Sin-,-, COS —т—, Sin —г..........COS—7-, sin — , ... I I I I I I ’ (5.51) При некоторых ограничениях на функцию f (х) ее можно представить в виде суммы тригонометрического ряда Фурье f W = Ц + cos -f- bk sin . /?=! (5.52) Коэффициенты этого ряда вычисляются по формулам Эйле- ра—Фурье: 71 = Т J / W dx> О 21 ак = 1 J f(x)cos^dx, k = 1, 2, ... ; (5.53) О 21 bk = y J [ (x) sin Ц-* dx, k == 1, 2, .... I о Сформулируем достаточные условия сходимости ряда Фурье (5.52) к функции / (х). 144
Теорема Дирихле. Если функция f (х) периодична с перио- дом 21 и па интервале [0, 2/1 кусочно-монотонна и кусочно- непрерывна, то ряд Фурье этой функции сходится на всей числовой оси, и его сумма равна: f (х) во всех точках непрерывности функции; полусумме односторонних пределов функции [/ (х — 0) -|- + / (х + 0)] во всех точках разрыва. Если кусочно-монотонная функция f (х) периода 2/ всюду непрерывна, то ряд Фурье сходится абсолютно и равно- мерно. Коэффициенты (5.53) сходящегося ряда Фурье убывают по модулю при увеличении /г, причем скорость убывания зави- сит от степени гладкости функции f (х). Так, если f (г) имеет разрывы первого рода, то (щ) и (ф.) убывают со скоростью l/k. Если f (х) непрерывна, но ее производная f (х) имеет разрывы первого рода, то скорость убывания модулей коэффи- циентов равна 1/7г2. Разложение функции f (х) в ряд Фурье позволяет предста- вить ее в виде суммы бесконечного числа гармоник 1<ЛХ , , . /глх . . //глх , \ ,, , п . ак cos — -|- Ькsin — = Д/. sin I —|- ф/;) (k — 1, 2, ...). Их амплитуды Ак и начальные фазы ф* выражаются через коэффициенты ряда: Д/. = У al -1- bl, tg ф/, = £ . Первая гармоника (/г — 1) — основная, в частности, в аку- стике ее называют основным тоном. Остальные гармоники определяют обертоны, с увеличением Ь их влияние умень- шается (они создают тембр звука). Представление функции [ (х) рядом Фурье называется гармоническим анализом. В практических вычислениях бес- конечный ряд Фурье (5.52) заменяют приближенно его /г-й частичной суммой, т. е. функцию f (х) аппроксимируют триго- нометрическим полиномом /i-го порядка ф (х) = S„ (х) = -I- У cos + bk sin . (5.54) /=1 Вычисление коэффициентов Эйлера — Фурье (5.53) воз- можно в принципе для аналитически заданной функции, однако выполнить интегрирование в конечном виде удается редко. Практически в гармоническом анализе их вычисляют 145
приближенно по какой-либо формуле численного интегриро- вания (см. гл. 6). В большинстве инженерных задач функция / (х) задается, как правило, на промежутке длины периода [0; 2/] в виде таблицы или графика. Пусть f (х) задана своими значениями f (Х() — iji (i = 0, 1, 2, .... т) на множестве X равноотстоя- щих точек отрезка 10; 2/]: zx 2/ tn • 2Z , х0 = 0, х, = ——, . . . , х,п = —— . (5.55) 0 1 т +1 ’ ’ tn +1 ' ' Рассмотрим задачу среднего квадратического приближе- ния функции тригонометрическим полиномом (5.54) порядка п по методу наименьших квадратов. Полагаем количество неизвестных параметров полинома ср (х), равное 2n + 1, не превышающим числа узлов т + 1, т. е. 2п < т. Как было указано выше, вычисление коэффициентов полинома ср (х) (5.54) существенно упрощается, если система базисных функ- ций ортогональна на заданном множестве точек. Если выбрать веса pt = 1 (i — 0, 1, .... т) и узлы равно- отстоящими, то при 2п < т система базисных функций (5.51) будет ортогональной на дискретном множестве точек (5.55) при любом т [4]. Действительно, воспользуемся формулой Эйлера cos ср+ + i sin <р = е‘ф и вытекающим отсюда тождеством е2Ал‘ = 1. Покажем, что (1, cos^) = 0 и ^1, sin^p^ = 0. По опреде- лению скалярного произведения функций на дискретном мно- жестве точек имеем: m т , V . 2klljl + I 7 Sin п-------7-7- Xj ‘(m + 1) /=о т /=0 2knjl I ('п + 1) 2frn(m+1) _ e* ’ m+l 2£л 1 _ e‘ ’ "+1 i—'- !—V--o. 2km 1 -e™+' Следовательно, действительная и мнимая части в стоящем слева выражении равны нулю. Докажем ортогональность функций cos —у- и cos^ при k=£r, k, r= 1, 2.........n: knx cos — , cos m глх\ V —) = LC0S /=0 2k til i I ('ll + I) • cos 2rnlj I (m + 1) 146
т m = 1 £ cos (k + r) + 1 £ COS (k - Г) = /=(! /=0 1 Л „ (/< + г) лх\ , 1 (1 „(k— г) зм\ n L , = у 1, cos i: I 4- (1, cos-----------------j---I = 0 при k Ф r. Аналогично доказываются равенства l /слх . глх\ п ( . клх . глх\ п (cos — , sin — I = 0, I sin — , sin — I = 0 при k ф r (k, r = 1, 2, . . . , n). Вычислим квадраты норм базисных функций т т I] 1 : |2 = V 1 = т 4- 1 • I cos 12 = v cos2 /,п/' ' 21 = h 1 И * m-t-i, |соь ; । [(т+1) i=o т = tS(I+-^={42(‘='.2................") /=0 аналогично || sin || = ^—1 (6=1,2.........м); 2п < т. Учитывая формулы (5.28) для вычисления обобщенных коэффициентов Фурье по ортогональной системе функций, определяем параметры тригонометрического полинома <р (х): ( "< а° = m+~l f 1 = 0 a« = ^TiS^x-')cos»T?i’fe=1- 2......п’ <5-56) 1=0 т Ьк = —V f (х() sin 24^г; , k = 1, 2.п. т -г \ m + 1 1 = 0 Равенства (5.56) называют формулами Бесселя. Они могут быть получены из (5.53) для коэффициентов ряда Фурье функции / (х) периода 2/, если к вычислениям интегралов применить формулу трапеций (см. п. 6.3) с узлами х, = = t (; = 0, 1, . .. , т) и считать f (0) = f (21). Если число узлов аппроксимации равно числу неизвест- ных параметров тригонометрического полинома <р (х), т. е. т 4- 1 = 2м 4- 1, то <р (х) будет интерполяционным тригоно- метрическим полиномом порядка м для функции f (х). Такой 147
полином однозначно определяется значениями функции в узлах х, (i = 0, 1, т) промежутка [0; 2/1. Как и в случае квад- ратичной полиномиальной аппроксимации, для сглаживания экспериментальных данных f (х.) (/ = 0, 1, т), вычислен- ных со случайными ошибками, целесообразно выбирать поря- док п полинома значительно меньшим числа узлов, т. е. 2п т. Тригонометрический полином ср (х), коэффициенты кото- рого вычислены по формулам Бесселя (5.56), будет наилуч- шим средним квадратическим приближением функции f (х) среди всех тригонометрических полиномов n-го порядка, т. е. он обеспечивает минимум суммы квадратов отклонений т [<p(Xi)-/(X,)]2. i=0 При увеличении порядка п полинома ср (х) убывает, но следует учитывать то, что при этом возрастает погреш- ность за счет влияния случайных ошибок в измеренных зна- чениях функции, а также вычислительная погрешность. Поэтому для выбора оптимального порядка п тригонометриче- ского аппроксимирующего полинома можно воспользоваться следующим приемом 18]. Если в формуле (5.54) последова- тельно прибавлять k-e гармоники и вычислять соответствую- щие им амплитуды Лд, то до некоторого значения k ампли- туды резко убывают, а затем остаются почти неизменными. Таким значением k ограничиваем порядок полинома <р (х). Для функции / (х) периода Т — 2л можно выбрать число узлов кратным четырем. Тогда вычисление коэффициентов аппроксимации можно упростить, так как значения sin kxi и cos kxi будут повторяться. Если функция f (х) не является периодической, а задана на некотором конечном интервале, то с помощью параллель- ного переноса его можно перевести в отрезок [0; /1. Считая этот отрезок полупериодом функции, доопределим ее на отрезке 1—/; 0] четным способом, полагая f (—х) = f (х), а затем периодически продолжим с периодом Т = 2/ на всю числовую ось. К такой функции можно применять изложен- ную выше методику аппроксимации тригонометрическим поли- номом по известным ее значениям на множестве равноотстоя- щих точек отрезка [0; /]. Реализация вычислений коэффициентов аппроксимирую- щего тригонометрического полинома по формулам Бесселя (5.66) осуществляется программами 20 и 21, а приближенное вычисление значений аппроксимирующего тригонометриче- ского полинома ф (х) в любой точке х £ [0; Т] программой 22. 148
5. 10. Лабораторная работа 7. Аппроксимация функции тригонометрическими полиномами ио методу наименьших квадратов Программа 20 вычисления коэффициентов аппроксимирую- щего тригонометрического полинома по формулам (5.56) для периодической функции /(х), с периодом Т. Рассматривается tn + 1 точка интервала 10; Т]. Адрес Команда Кот Адрес Команда Кол Адрес Команда Кол 00 ипв f'L 22 ПП 53 44 -1- 10 01 ИП7 67 23 29 29 45 ПА 4— 02 — 13 24 БП 51 46 И ПС 6- 03 пв 4: 25 14 11 47 ИПВ GL 04 Гл 20 26 Гл 20 48 ~г 10 05 2 02 27 2 02 49 ПС 4Г 06 X 12 28 —— 13 50 ИП8 68 07 ИП7 67 29 П6 46 51 ИП9 69 08 13 30 0 00 52 -Г 10 09 пд 4Г 31 П8 48 53 П8 48 10 0 00 32 ПС 4 Г 54 FLO 5:' 11 П9 49 33 ПА 4- 55 36 36 12 ПП 53 31 ИП7 67 56 ИПА 6- 13 26 26 35 ПО 40 57 2 02 14 ИП9 69 36 ПП 53 58 у 12 15 ИПД 6 Г 37 63 63 59 ИГ17 67 16 -1- 10 38 ИП8 68 60 -С— 13 17 П9 49 39 1176 66 61 С/П 50 18 0 ()0 40 -1- 10 62 В/О 52 19 ПП 53 41 Г sin 1- 63 Х.р(х) ' 20 26 26 42 х 12 21 0 60 43 ИПА 6- В/О Распределение регистров памяти: Момер ре; и:тра А В с [) с.| 8 7 1-5 Переменная т -j- 1 X 2л т -р 1 2 л L т + 1 2 л/л' in + 1 т 4- 1 свободны Инструкция. 1. Переключатель Р—Г поставить в поло- жение Р. 2. Написать подпрограмму вычисления значений f (х). Значение х хранится в PC. 3. В режиме программирования (F ПРГ) ввести про- грамму и подпротрамму. 4. В автоматическом режиме (F АВТ) ввести данные: (7’) ПВ (т + 1) П7
5. Приступить к вычислениям: нажать клавиши В/О С/П, после останова списать а0‘, нажать клавишу С/П, после останова списать а/, нажимая клавишу С/П, после каждого останова списать поочередно blt а2, Ь.г, а3 и т. д. Контрольный пример. Вычислить коэффициенты аппроксимирую- щего тригонометрического полинома третьего порядка для функции у = ecos-v. рассмотреть m-p 1 = 8 точек. Отметим, что данная функ- ция периодична с периодом 2л. Составим подпрограмму вычисления значений функции: ИПС Feos Fe' В/О После ввода программы вводим данные: F л 2 X ПВ 8 П7 и приступаем к вычислениям: В/О С/П, после останова списываем а0 = 2,5321322, далее С/П а, = 1.1303216, С/П = —2.5 • IO’8, С/П а2 = 2.7154005 • 10’1, С/П Ь.2 = —7.5 IO’8, С/П аэ = 4.488005 10 2, С/П Ь3 = —6.25 • I0-’ Время вычислений — около 9 мин. По программе 20 значения / (х() (i = 0, 1, ..., tri) вычис- ляются заново для каждого из коэффициентов ak, Ьк. Если число узлов выбрать таким, что т + 1 с 10, то можно про- водить вычисления коэффициентов полинома порядка п (где 2п + 1 < т + 1 < 10) по более экономной программе 21. Программа 21 вычисления коэффициентов аппроксими- рующего тригонометрического полинома порядка п по фор- мулам Бесселя (5.56) для периодической функции с периодом 2л, если число узлов т + 1 < 10 и 2п + 1 <т + 1. Заданы значения функции в узлах. ипд ПО кипо ИПА КИП| + FLO 04 ПП 50 С/П Ел ПС ипд по кипоо ИПА ИП0 ИПС X ПП 50 ПВ F cos кип t X + ХУ ИПВ Fsin кип f X + ХУ FL0 18 ПП 50 С/П ХУ 2 ПП X 50 ипд С/П ИПС В/О Ел + ПС БП 13 Распределение регистров памяти: Номер регистра D 0 С В А 1 т Переменная т + 1 k ш 2л|7г т + 1 '/о У1 Ут 150
Инструкция. 1. Переключатель Р—Г поставить в поло- жение Р. 2. В режиме программирования (F ПРГ) ввести про- грамму. 3. В автоматическом режиме (F АВТ) ввести данные: (т + 1) ПД (у0) ПА (У1) П1 ... ((/„,) П« 4. Приступить к вычислениям: нажать клавиши В/О С/П, после останова списать а0; нажать клавишу С/П, после останова списать ар, нажимая клавишу С/П, после каждого останова списать поочередно blt а2, Ь2, ..., а„, Ьп. Контрольный пример и результаты вычислений такие же, как и в программе 20. Время вычислений — около 3 мин. Программа 22 вычисления значения аппроксимирующего тригонометрического полинома ср (х) третьего порядка по фор- муле (5.54) для функции / (х) периода Т, заданной таблично в восьми равноотстоящих точках интервала [0; Т]: Адрес Команда Код Адрес Команда Код Адрес Команда Код 00 Fn 20 17 11 34 1 01 01 4 04 18 Fn 20 35 + 10 02 _L_ 13 19 х 12 36 8 08 03 пв 4L 20 ПА 4— 37 13 04 8 08 21 F cos 1Г 38 КИП) ГЕ 05 ПО 40 22 ИПА 6— 39 X 12 06 0 00 13 t ОЕ 40 ипс 6С 07 ПС 4С 24 10 41 + 10 08 ИПА 6— 25 F cos 1Г 42 ПС 4С 09 2 02 26 ВХ 0 43 ИПА 6- 10 V 12 27 ИПА 6— 44 ИПВ 6L 11 ИП9 69 28 + 10 45 Ч- 10 12 13 29 F cos 1Г 46 ПА 4— 13 1 01 30 + 10 47 FLO 5Г 14 0- 31 + 10 48 21 21 15 7 07 32 t 0Е 49 ИПС 6С 16 5 05 33 + 10 50 С/П 50 Распределение регистров памяти: Номер регистра 0 с в А 9 1...8 Переменная ЦИКЛ ПО 4 л/4 i л х' 4 Т Уй ••• У1 151
Инструкция. 1. Переключатель Р—Г поставить в поло- жение Р. 2. Ввести программу в режиме программирования (F ПРГ). 3. В автоматическом режиме (F АВТ) ввести данные: (z/o) П1 (У1) П2 ... (у7) П8 (Т) П9 (х) ПА. 4. Нажать клавиши В/О С/П. После останова ср (х) про- честь на индикаторе. Контрольный пример. Периодическая функция у = / (х) задана на отрезке [0; 4] таблицей: 3 У1 0,5 2,7 1 1,5 2 2,5 2 1,6 1,3 1 3,5 1,4 х. 0 Найти значение аппроксимирующего тригонометрического поли- нома третьего порядка в точке х = 1,2. После ввода программы вводим данные: 2 Ш ПЗ 2.7 П2 1.6 П4 1.3 П5 1 П6 1.2 П7 ПА 1.4 П8 4 П9 После нажатия клавиш В/О С/П примерно через 1,5 мин. про- чтем на индикаторе 1,747731. Ответ', ф (1,2) = 1,75. Задания к лабораторной работе 7. 1. Вычислить коэффициенты а0, а^, (k = 1, 2, 3) аппроксими- рующего полинома з Фз W = -у + У (a* cos kx + bk sin kx) для функции f (x) = e^COSfx+Xo), . 29 + n n n , < о где A = —, x0 = , n — номер варианта. Рассмотреть m+l=r8 Ом О точек. Вычисление коэффициентов по формулам Бесселя (5.56) для ана- литически заданной функции реализуется программой 20. 2. Функция у = / (х) задана таблично на отрезке [0; 2л]: Xi 0 л/4 л/2 Зл/4 Л 5л/4 Зл/2 7л/4 У1 0,4 0,6 0,8 0,9 1,0 1,0 0,9 0,2 Найти значение аппроксимирующего тригонометрического поли- п нома третьего порядка в точке х = -^, где п — номер варианта. 152
5.11. Интегральная аппроксимация функции методом наименьших квадратов Пусть функция /(х) £ 1Л [а; Ы задана аналитическим вы- ражением на отрезке [а; М. Требуется аппроксимировать ее обобщенным полиномом ф (х) = с0<р0 (х) + (?!<₽! (х) + . . . + С„ф„ (х) по некоторой системе базисных функций (ф4- (х)]о С Lf [а; Ь]- Необходимость решения такой задачи возникает, напри- мер, в тех случаях, когда функция f (х) имеет сложный анали- тический вид, неудобный для дальнейших приложений. Тогда можно применить интегральную аппроксимацию методом наименьших квадратов. В соответствии с этим методом коэффициенты с, (i = О, 1, ..., п) аппроксимирующего полинома ср (х) определяются из условия минимума среднего квадратического отклонения Ь п Ф (с0, Ср .. . , сп) = 5 р(х) [/ (х) — £ Ci<Pi (х)]2 dx. (5.57) a i=0 Коэффициенты с, (t = 0, 1, ..., п) определяются из системы линейных уравнений (5.26). Следует учесть, что в случае интегральной аппроксимации ь (фъ ф/) = J р (х) ф* (х) ф, (х) dx, Ь (5.58) (/, Ф*) = j Р W / (х) фА (х) dx. а Определитель этой системы есть определитель Грама. Если система функций ф, (х) (z —- 0, 1, ..., п) линейно независима на [а; Ь], то составленный для нее определитель Грама отли- чен от нуля и система имеет единственное решение. Интегральные приближения алгебраическими многочле- нами имеют наиболее простой вид. Однако определенные труд- ности могут возникнуть при вычислении интегралов вида ь (х'г, f) = [р w х7 (х) dx, стоящих в правой части системы (5.26). “ Как было отмечено выше, матрица системы (5.26) стано^- вится диагональной, если в качестве базисных функции (ф, (х))о в подпространстве //„tl cz L? 1а; Ь] выбрать систему 153
попарно ортогональных на [а; Ь] функций, удовлетворяю- щих условиям ь Р (*) ф/< (*) Ф/ (х) = 0, k ф ]. а Тогда параметры аппроксимирующей функции ср (х) будут обобщенными коэффициентами Фурье функции / (х) по дан- ной ортогональной системе: ь j Р W т, (х) f (х) dx Ci=—b----------------• (5.59) j Р (*) ф? W dx а В качестве такого ортогонального базиса можно выбрать систему алгебраических полиномов, ортогональных с весом на 1л; Ь]. Выбор веса р (х) и отрезка [л; 6] позволяет получить различные системы ортогональных полиномов. Классическими примерами таких ортогональных систем являются полиномы Якоби, Чебышева, Лежандра, Лагерра, Эрмита [4]. Приведем их краткую характеристику. 1. Полиномы Якоби P,(,“’w(x) ортогональны на отрезке [— 1; 1] с весом р(х) = (1 — х)“(1 4- х)р(а, Р > — 1). Их можно вычислять по формуле Родрига Р^'₽) W = <1 - х^~а + х^£> И1 - (1 + *)р+"1 (5.60) или по рекуррентной формуле 2 (л + 1) (п + а + р + 1) (2п + а + ₽) (х) = = (2 л 4~ а 4~ Р 4~ 1) 1(2л + а 4- Р) (2л 4* а 4“ Р 4~ 2) х 4~ + а2 - р2] Р'“’ р) (х) -2(л + а)(п4-Р)(2л4-а4-Р + 4-2)Р'%р,(х), л= I, 2.............. (5.61) 2. Полиномы Лежандра Рп (х) (частный случай полиномов Якоби при а = р = 0) ортогональны на отрезке [—1; 1] с весом р (х) = 1. Формула Родрига = (5-62) 154
и рекуррентная формула (п + 1) Р„+1 (х) = (2/г + 1) хР„ (х) — пР„_1 (х), п=1, 2, ...; Р0(х) = 1, Р1(х) = х. (5.63) Квадраты их норм известны [4]: ijP,IH2= J^(x)dx = ^-j. (5.64) Выпишем несколько первых полиномов Лежандра Ро (*) = 1: РЛ*) = (35- ЗОх2 + 3); Рг (х) = х; Р5 (х) = | (63х5 — 70х3 + 15х); (5.65) Р2(х) = |(3х2 — 1); Ря(х) = ^(231х6 —315х4 + 105х2 —5); Р3(х) = 1 (5х3 —Зх); Р.(х) = ^(429х7-693х5+315х3—35х). 3. Полиномы Чебышева первого рода 7\(х) (частный случай полиномов Якоби при а = р = — ортогональны на отрезке [—1; 1] с весом p(x) = -7=J= . У 1 — л2 Их явное выражение Тп (х) = cos (narccosx), n=Q, 1, 2, ... (5.66) и рекуррентная формула Т,1+1(х) = 2хТп(х) — Tfl-i(x), п=1, 2, ... . (5.67) Квадраты их норм г т- ы (я> п = °; ||Г'1||2= (5,68) —1 1 Полином Тп (х) имеет п действительных различных кор- ней Xi = cos 2*2га 1 л (i = 1, 2, .... п), (5.69) расположенных на интервале [—1; 1]. Приведем выражения полиномов Тп(х) до 7-й степени! То (х) = 1; Ti (х) = 8х4 — 8х2 + 1; 7\ (х) = х; Т5 (х) = 16х5— 20х3 + 5х; 155
Т2 (х) == 2.x- — 1; тл (х) = 32х° — 48х4 + 18х2 - 1; (5.70) Т3 (х) = 4х3 — Зх; Т7 (х) = 64х7 — 112х5 -|- 56х3 — 7х. 4. Полиномы Чебышева второго рода Un (х) (частный слу- чай полиномов Якоби при а = р = ортогональны на отрезке [— I; 1] с весом /Дх) = |/1 —х2. Их явное выражение (Х) = .singn + i^rccosx) (я = 0, 1, 2, ...) (5.71) У 1 — х2 и рекуррентная формула (как и (5.67)) U,,+\ (х) = 2xU„ (х) — (7„_i (х) (п. = 1, 2, ...). (5.72) Квадраты норм । ||(/, |2= f Д; (х)= П2 (п = 0, 1, 2, ...). (5.73) -1 Выпишем их явные выражения до 5-й степени: Ua (х) = 1; U} (х) — 2х; U2 (х) = 4х2 — 1; С/3(х) = 8х3 — 4х; U, (х) = 16х* — 12х2 + 1; (5.74) Ub (х) = 32х5 — 32х3 + 6х. 5. Полиномы Лагерра Д;,х) (х) ортогональны на полуоси [0; + оо) с весом /Дх) -- хае~\ где а> — 1. Формула Родрига (х) = (— 1)1 (ха+"е-х) (5.75) и рекуррентная формула Z/,+1 (х) = (х — а — 2п — 1) Л!,“’ (х) — п (а + п) (х), Ло= 1, Л, - х—1 (n= 1, 2, ...). (5.76) Квадраты их норм равны Н2 = J х“е-* [/,!?’ (х)]2 dx = и! Г (a + п + 1), (5.77) о в частности, при а = 0 р(л') = е ~х и = (5.78) 156
Выпишем явные выражения нескольких полиномов Лагерра при а = 0: L<00>(x) = 1; L\0)(x) = х— 1; 4°(х) = х2- 4х + 2; (5.79) if = х3— 9х2+ 18х — 6; У0) (х) = х4— 16х3+ 72х2— 96х + 24. 6. Полиномы Эрмита УСп (х) ортогональны на всей числовой оси (—оо; + оо) с весом р(х) = е~л2. Формула Родрига ^(х) = (-1)"е-2^[е-2] (5.80) и рекуррентная формула Жп+1 (х) = 2х^„ (х) + 2пХп^ (х), ^0 = 1; #1 = 2х (п = 1, 2, ...). Квадраты норм полиномов Эрмита 4- 00 J е--*2^,2, (х) dx = 2n/i! У п Выпишем полиномы Эрмита до 5-й степени 7f0 (х) = 1; (х) = 2х; (х) = 4х2 — 2; (х) = 8х3 — 12х; 1У(х) = 16х4 — 48ха 4- 12; ^5(х) = 32х3— 160х3+ 120х. (5.83) Известно [4], что все перечисленные выше системы орто- гональных полиномов являются полными в пространстве Ц [а; ft] при соответствующих весовых функциях р (х). Таким образом, для любой функции / (х) С 1Л [a; ft] последователь- п ность частичных сумм ф (х) = SCTP, (х) обобщенного ряда 1=0 Фурье по системе классических ортогональных полиномов сходится в среднем к функции / (х). Выберем в методе наименьших квадратов в качестве базис- ных функций (х) (i = 0, 1,2, .... п) соответствующую си- стему ортогональных полиномов в зависимости от интервала приближения [д; ft] и веса р (х). Коэффициенты аппроксими- п рующего полинома ф (х) = £с,<р. (х), выражаемые через ип- i=U тегралы по формуле (5.59), вычисляются приближенно по какой-либо квадратурной формуле (см. гл. 6), например по формуле Симпсона. При этом используются явные аналити- ческие выражения для ортогональных полиномов и значения их норм. 157
Кроме классических ортогональных полиномов в некото- рых прикладных задачах (например, в теории кодирования) используется представление функции f (х) в виде суммы сту- пенчатых функций. При этом в качестве базиса выбирается система функций Хаара, которые определяются следующим образом: функция нулевого порядка Х01 (х) = 1; функции первого порядка | 1, х С -Ли Хи(а) — । L х С •/jo, » 0, х ё Jjj [J >/j2> функции k-ro порядка 7-ь, 2/i—I (x) = 2 2 1, X^Jk, 2ft— — 1 . X £ J k, 2*> О, X (J Jk, 1k~l (J Jk, 2k', (5.84) где Ju = (i = 1, .... 2/'; k = 1, 2, .. .). Система функций Хаара ортонормирована с весом р(х) = 1 в пространстве Ь2 [0; 1], т. е. 1 (Хн, Х/z) = § Х/i,- (х) Хп- (х) dx = 0 при k ф I или i Ф /; о 1 1|Хи'|2= J 7jd (x)dx = 1. о Эта система является полной в L2 [0; 1] [20]. Поэтому для любой функции /(х) £L2 [0; 1] ряд “ 2';;' S S c/;,xw(x), (5.85) (;=0 /=J где i сл/ = (/. Х/;/) = р (х)Хй/ (х) dx, (5,86) о 158
сходится в метрике L2 [0; 1] к f(x), т. е. среднее квадрати- ческое отклонение I п 2/г~1 6,1 = (j [/(х) —У V CkiXnj(х)р dx]''2 о ' /(=0 /=1 стремится к нулю при л->оо. Кроме того, если функция f (х) непрерывна на отрезке [0; 1], то ряд (5.85) сходится к [ (х) равномерно, г. е. п 2^—* I f (х) — у У Cki^ki (х) | -> 0 при п-> ОС. /г=0 (=1 Приближением (5.85) функции / (х) обобщенным полиномом n-го порядка по системе функций Хаара является ступенча- тая функция xi gn (х) = у / (х) dx = const при х С [х(-_]; х,], (5.87) *i-i где х,-=1, /i = l, t= 1, .... 2". В качестве примера рассмотрим две задачи. 1. Найги коэффициенты Хаара функции /(х): Cki = j f (х) ХА/ (х) dx = = 2 2 о [ J f(x)dx— J /(x)dx]. Jk, 2/—1 Jk, 2i (5.88) Численная реализация этой задачи на микрокалькуляторе осуществляется с помощью программы 24; вычисление опреде- ленных интегралов в выражении (5.88) проводится по фор- муле Симпсона. 2. Найти приближение непрерывной на отрезке [0; 11 функции / (х) функциями Хаара до н-го порядка по формулам (5.87). Вычисления реализуются программой 25. 5.12. Лабораторная работа 8. Интегральная аппроксимация функции методом наименьших квадратов ортогональными полиномами Программа 23 аппроксимации функции / (х) на отрезке [—1; 1] ортогональными полиномами Лежандра до второго порядка. Интегралы вычисляются по составной формуле Симп- сона с шагом h = 0,5: 159
Адрес Команда Код Адрес Команда Код Адрес Команда Код 00 2 02 25 2 02 50 X 12 01 F1/X 23 26 13 51 ИП6 66 02 ПД 4Г 27 П5 45 52 + 10 03 0 00 28 С/П 50 53 П6 46 04 П5 45 29 ПП 53 54 ИП1 61 05 116; 46 30 72 72 55 FX2 22 06 П7 47 31 ПП 53 56 3 03 07 1 01 32 44 44 57 X 12 08 /-/ 0L 33 ПП 53 58 1 01 09 П1 41 34 68 68 59 11 10 ПП 53 35 ПП 53 60 2 02 11 29 29 36 42 42 61 13 12 ПП 53 37 ПП 53 62 ЙП9 69 13 29 29 38 68 68 63 X 12 14 2 02 39 ПП 53 64 ИП7 67 15 0- 40 44 44 65 + 10 16 4 04 41 В/О 52 66 П7 47 17 — 13 42 4 04 67 В/О 52 18 П7 47 43 X 12 68 ИП1 61 19 ИП6 66 44 П9 49 69 ИПД 6Г 20 4 04 45 ИП5 65 70 + 10 21 — 13 46 + 10 71 П1 41 22 П6 46 47 П5 45 72 . . . 23 ИП5 65 48 ИП9 69 . • • • • • (X) 24 1 01 49 ИП1 61 • .. b/oJ 52 Распределение регистров памяти: Номер регистра 1 5 6 7 Д 9 Переменная X Со С1 Cl 0,5 /to Инструкция. 1. Написать подпрограмму вычисления зна- чений функции f (х); значение х хранится в Р1. 2, В режиме программирования (F ПРГ) ввести про- грамму и подпрограмму. 3. В автоматическом режиме (F АВТ) нажать клавиши В/О С/П. После останова прочесть па индикаторе значение с0, для прочтения с2 и с2 нажать клавиши ИП6 и ИП7 соответ- ственно. Контрольный пример. Функцию у = arctg е* аппроксимировать на отрезке [—1; 1] полиномом второго порядка, выбрав в качестве базиса многочлены Лежандра. Поставим переключатель Р—Г в положение Р. Составим под- программу вычисления значений функции: ИП1 FeX F arctg В/О 160
После ввода программы в автоматическом режиме нажимаем клавиши В/О С/П. Через 1 мин индуцируется с0 = 0,78; нажав клавиши ИП6, прочтем Cj = 0,46, ИП7 — прочтем с2 = 0. Ответ-, arctg е* as 0,78 + 0,46х + 0 • -1 (Зх3 — 1). Программа 24 вычисления коэффициентов Хаара до тре- тьего порядка по формулам (5.88): Адрес Команда Код Адрес Команда Код Адрес Команда Код 00 8 08 29 _!_ 10 58 пд 4 Г 01 ПО 40 30 ПС 4С 59 ипс 6- 02 F1/X 23 31 FL0 5 Г 60 2 02 03 2 02 32 12 12 61 X 12 04 — 13 33 С/П 50 62 ПС 4G 05 пд 4 Г 34 4 04 63 БП 51 06 1 01 35 пд 4Г 64 38 38 07 1 01 36 1 01 65 ипд 6Г 08 П2 42 37 ПС 4С 66 по 40 09 0 00 38 ИПС 6 - 67 ХУ 14 10 ПС 4С 39 П1 41 68 КИП2 Г2 И ПВ 4| 40 1 01 69 11 12 0 09 41 1 01 70 FL0 5 г 13 П1 41 42 П2 42 71 68 68 14 ПП 53 43 0 00 72 В/0 59 15 80 80 44 ПП 53 73 ИП1 61 16 ПП 53 45 65 65 74 + 10 17 73 73 46 /-/ 0L 75 П1 41 18 4 04 47 ПП 53 76 ИПВ 61 19 X 12 48 65 65 77 ипд А Г 20 ПП 53 49 ИПС 6С 78 + 10 21 73 73 50 F/ 21 79 пв 22 игп 61 51 X 12 80 23 + 10 52 С/П 50 • • • Ь (х) 24 4 04 53 FL1 5L . . • в/of 52 25 8 08 54 43 43 26 — 13 55 ИПД 6Г 27 КП2 L2 56 2 02 28 ипс 6П 57 — 13 Распределение регистров памяти: Номер регистров А, 9, . • , з в д с 0, 1, 2 Переменная У / W dx, .. Л , (х) dx X = Тб Соо. счетчики циклов {k = 1, 2, 3 — порядок функции Хаара, 23~*. 2 — количе- ство точек при вычислении интеграла по формуле Симпсона). 6 6-167 161
Инструкция. 1. Составить подпрограмму вычисления функции f (х), аргумент х хранится в регистре В. 2. В режиме программирования (F ПРГ) ввести про грамму и подпрограмму. 3. В автоматическом режиме (F АВТ) осуществить пуск программы, нажав клавиши В/О С/П. 4. После каждого из ОСТАНОВОВ списать с индикатора значение c^j (cpp Hi* ^21» ^22» £31» £32» ^зз> С34) и нажать кла- вишу С/П. Контрольный пример. Вычислить коэффициенты Хаара до тре- тьего порядка для функции [ (х) = ехр (—18х2 + 18х — 4,5). Подпрограмма: ИПВ 6X3 — FX2 2 4- /—/ Fex В/О. В результате вычислений получим: = 4,1663632 • 10-1; сп = —4,8 • К)-» с21 = —2,1728739 • 10"1; с22 = 2.172 8 7 39 • 10’1 с31 = —3,648545 • 10“2; = —9,497388 • 16~2 с33 = 9,4 9 7 3 88 • 10'2; с34 = 3,64 8 5 47 • КГ2. Время вычислений с01 — около 4 мин, остальных ксг<|фицнеп- тов — 15—20 с. После вычисления коэффициентов можно получить при- ближение функции f (х) отрезком ряда Хаара g3 (х) по фор- мулам (5.87). Для этого следует умножить значения интегра- лов, хранящиеся в регистрах А, 9, ..., 3, на 8. Например, вычислим значение gs (х) на отрезке [0; 0,1251: ИПА 8 X. Прочтем на индикаторе g3 (х) =- 3,6374614 - IO’2. Программа 25. Аппроксимация непрерывной функции f (х) на отрезке [0; 1] функциями Хаара п-го порядка по фор- мулам (5.87): Адрес Команда Код Адрес Команда Код Адрес Команда Код 00 и по 60 12 25 25 24 07 07 01 F1/X 23 13 4 04 25 ИПС 6С 02 2 02 14 X 12 26 + 10 03 — 13 15 ПП 53 27 ПС 4С 04 ПД 4 Г 16 25 25 28 ИПА 6— 05 0 00 17 ИПС 6С 29 ИПД 6 Г 06 ПА 4— 18 + 10 30 + 10 07 0 00 19 ПС 4С 31 ПА 4— 08 ПС 4г 20 6 06 32 09 ПП 53 31 -2— 13' ••• ! /(х) .. • 10 32 32 22 С/П 50 В/О) 52 11 ПП 53 23 FL0 5Г 162
Распределение регистров памяти: Номер регистра 0 А с д Переменная 2« X h/2 Инструкция. 1. Составить подпрограмму вычисления f (х), значение аргумента х хранится в РА. 2. Ввести программу и подпрограмму в режиме програм- мирования (F ПРГ). 3. В автоматическом режиме (F АВТ) ввести значение 2п в РО, нажать клавиши В/О С/П. После первого останова записать с индикатора значе- ние первой константы (5.87) на отрезке [х0; xj; нажать клавишу С/П, после останова записать значение второй константы на отрезке [х^ х2] и т. д., повторить вычисления 2" раз. Контрольный пример тот же, что и в программе 24. После ввода программы в ав- томатическом режиме нажима- ем клавиши 8 ПО В/О С/П на индикаторе значение нажимаем клавишу чим: Рис. 13 Примерно через 20 с получим 10-2, Хс [0; 1); полу- g3 (х) = 3,6374615 • С/П, после очередного ОСТАНОВа g3(x) = 1,8231641 • IO’1, х<= 4); g3w = 5,3397933.10-1, *g[-8-; I); g3 (х) = 9,1387491 • 10"\ хС[|; j) 1 5J . 8/ ’ g3(x) = 9,1387491 • 10-1, XQ £ 8 g3(x) = 5,3397933 • 10-1, x£ _ " g3(x) = 1,8231641 • Ю-i, xe[|; { g3(x) = 3,63374615 • IO-2, хб[|; 1]. График полученной аппроксимирующей ступенчатой функ- ции представлен на рис. 13. 6* 163
Задания к лабораторной ра'оте. А. Функцию у = f (х) аппроксн. мировать на отрезке [—1; 1] полиномом второго порядка, выбрав в качестве базиса многочлены Лежандра. Переключатель Р—Г поста- вить в положение Р; 1) У = 1 2) In (2 cos х); 3) 1 COS X ’ У — In (x 4- 3) ’ 4) У = COS X 5) sin х 6) COS X ха + 1 ’ У — х2+ 1 y 2 4- x ’ 7) У = X 8) 1 — X 9) „ In (2 4-х) COS X * У — COS X * s 24-x > 10) У = 1 И) 1 12) у = In (1 4- cos x); 1 + sin х ’ У — 1 4- cos х * 13) У = 1 14) cos X 15) sin x In (3 — x) ’ У — x2 4-2 • У X2 4- 2 ’ 16) У = COS X x 4~ 3 * 17) У = 2-f-x _ COS X ’ 18) 1 4- x У : cos X ’ 19) У = Txa+ 1; 20) У = 21) y = V x44-1 V X 4- 2 ' 22) У = 1 V X 4- I У 1 -X i + кгп ’ zo) У — 24) V = —7 ! /x-f-2 Гх4- 2 25) У = У l - X 26) У = V X + 1 27) 1 V 2 - x ’ У 2 — x ' У Гх24-1 ’ 28) У = 29) л • У 3 4- 2x ; 30) xa+ 1 • У у у 3 4- 2х 1—I JX—— ) Б. Дана функция f (х) = е 0 , х £ [0; 1], п Е [1; 30], п —но- мер варианта: а) найти ее коэффициенты Хаара до третьего порядка (програм- ма 24); б) найти ее приближение отрезком ряда Хаара до третьего по- рядка (программа 25), построить график найденного приближения. 5.13. Аппроксимация сплайнами Если функция f (х) задана своими значениями в (п + 1)-й точке, то ее можно аппроксимировать интерполяционным полиномом Лагранжа. Но при больших п возникает осцилля- ция многочлена Рп (х) между узлами, поскольку он имеет точки максимума и минимума в вещественных нулях произ- водной. Устранить это можно уменьшением степени поли- нома, интерполируя только часть точек. Тогда для всего мно- жества точек получается составная кривая, которая непре- рывна на всем интервале, но в узлах «склейки» отдельных кривых ее производные будут разрывны. Погрешность такого 164
приближения может оказаться значительной. Кроме того, оно неприемлемо в тех практически важных задачах, когда гладкость аппроксимирующей функции играет существенную роль. Установлено, что .интерполяционный многочлен может не стремиться к f (х) при п °° даже для дифференцируемой произвольное число раз функций [33], например, функции / (х) = (1 н-25л--)-1 на отрезке [—1; 1], для которой lim max ' / (х) — Р„ (х) । = оо. Построение полинома невысокой степени для большого числа точек методом наименьших квадратов часто не обеспе- чивает удовлетворительного соответствия кривой заданным точкам, а повышение степени полинома приводит к суще- ственному усложнению вычислений. В последнее время в теории аппроксимации широкое при- менение получили сплайны, позволяющие в некоторой сте- пени устранить недостатки классических методов прибли- жений. В общем случае сплайн представляет собой функцию, «склеенную» из обобщенных полиномов таким образом, что в точках «склейки» их значения и значения производных до некоторого порядка совпадают. Наиболее простыми являются кусочно-полиномиальные сплайны, для которых в качестве базисных функций берутся алгебраические полиномы. Гладкость и гибкость сплайнов обусловливает их разно- образное применение в автоматизации проектирования на ЭВМ, в конструировании кривых и поверхностей, в обработке и представлении геометрической информации, а также в самой математике — в теории аппроксимации, при численном инте- грировании и дифференцировании, численном решении диф- ференциальных и интегральных уравнений. Аппарат сплай- нов обладает рядом исключительных преимуществ, прежде всего простой реализацией на ЭВМ. При вычислении парамет- ров интерполяционного сплайна, в отличие от интерполяцион- ных полиномов, требуется решение системы алгебраических уравнений с трехдиагональной матрицей. Сплайны обеспечи- вают высокую точность аппроксимации одновременно и функ- ции, и ее производных. В ряде важных случаев они позволяют получить приближение с минимально возможной погрешно- стью на данном классе функций по сравнению с другими методами. Следует отметить также устойчивость относительно локальных возмущений сплайна, представленного в виде линейной комбинации базисных В-сплайнов: незначительное изменение значений функции в одном или нескольких узлах 165
интерполяции мало сказывается на его значениях на некото- ром удалении от этих точек. Сплайны можно применять для приближения таких функций, степень гладкости которых неодинакова на разных участках аппроксимирующего от- резка. И, наконец, к достоинствам сплайнов следует отнести их простое обобщение на многомерный случай. 5.14. Определение и способы аналитического представления сплайнов Пусть на отрезке [а; 61 задана сетка узлов Д: а = х0 <х1 <х2 <... <х^ = b. (5.89) Обозначим через СА |а; 6] множество функций, непрерыв- ных на [а; Ь] и имеющих непрерывные производные до /г-го порядка, а через Рп — множество многочленов степени не выше п. Определение 1. Функция Sn (х) называется поли- номиальным сплайном степени п дефекта k (1 < k с п) с уз- лами на сетке Д, если 1) S* (х) Vx£ [хд х,+1] (i = 0, 1....N — 1); 2) S*(x)GC"-'' [a; b\. Дефект k определяет степень гладкости сплайна в узлах и означает, что функция (х) и ее производные до (п — £)-го порядка непрерывны на 1а; 61, а производная порядка (п — k + 1) может быть разрывна в точках х, (i = 1, 2, ..., N-— 1). Если Z; = 1, то для сплайнов дефекта 1 обычно упо- требляют обозначение (х). Будем рассматривать сплайны как аппарат приближения функции f (х), заданной своими значениями на дискретном множестве точек. Для сплайнов нечетной степени узлы интер- поляции выбирают, как правило, в узлах сплайна. Пусть на отрезке 1а; Ь] в узлах сетки Д заданы значения функции f (х,) = yi (t = 0, 1, ... Л). Определение 2. Сплайн 5о„+1 (х) называется интер- поляционным, если он удовлетворяет условиям интерполя- ции: sUi(O = /(-0 (t-0, 1, 2........N). (5.90) Для однозначного определения параметров сплайна кроме условий интерполяции (5.90) обычно налагаются дополнитель- ные краевые условия. Их будем рассматривать более подробно для случая кубических сплайнов. 166
Для сплайнов четной степени узлы интерполяции выби- рают отличными от узлов сплайна, так как иначе может ока- заться, что при некоторых условиях сплайн не существует или же процесс вычисления параметров сплайна будет не- устойчивым 128]. Рассмотрим различные способы аналитического представ- ления сплайнов в зависимости от выбора базисных функций. 1. Кусочно-полиномиальное представление. Сплайн на каж- дом отрезке [хг; х(-+1| (i = 0, 1, ..., N— 1) можно предста- вить в виде п Sn (х) = S йц (х — Xi)', х £ [х,-; х(-_ i], (5.91) /=о или п Skn(x) = Vl butx-x^y, xQ[xp xi+i). (5.92) i=o 2. Представление сплайна через усеченную степенную функ- цию. Для переменного х и п g N введем так называемую усе- ченную степенную функцию п _ | х'1 при х> О, = ( о при х < 0. (5.93) Она является сплайном степени п дефекта 1 с узлом в точ- ке х = 0. Рассмотрим усеченную степенную функцию (х — __(рис. 14), связанную с узлами сетки Д. Такая функция непрерывна в точке х = х^ вместе со своими про изводными до порядка п — 1, т. е. она является сплайном степени п дефекта 1 с един- ственным узлом Xi. Функции х' при / = 0, 1, 2,..., п и (х — X,)'" при т = = п — 1г -|- 1, .... п, I = 1, 2, на отрезке [щ Ь] [18]. Поэтому их можно принять в качестве базиса. Получим представление сплайна на отрезке [«; Ы в виде усеченных степенных функций 5 (х) = Sk (х) = с,- (х — х0)г 4- /-0 4- У £ а, (х -X:) , (5.94) 1=1 — fc-H х £ [а; &|, ..., Л' — 1 линейно независимы 167
c(r) (xn) где cr = —— > an = [S(/) (*; + 0) — S(/) (x(- — 0)]//! — величи- ны скачков разрывных в узлах производных; г = 0, 1,2..........п; 1=1, 2, ... , N — 1; / = п — k 4- 1.......п. Такое представление сплайна будет единственным. Из фор- мулы (5.94) и определения усеченной функции (5.93) следует: п S (х) = У сг (х — х0)г при х С [х0; xj, г=0 п п S (х) = У_! сг (х — х0)г ф- ап (х — xJ+при xG [х0; х2]. r=0 i=n—*4-1 Здесь во втором слагаемом (5.94) i = 1. При добавлении одного узла сетки Л количество слагаемых по индексу i в фор- муле (5.94) увеличивается на единицу. 3. Представление через В-сплайны. Дополним сетку Л узлами х_.„ <х_„+1 < . . . <х_1 <с? и й <xw+i <хЛ,+2< <.. • -<xN+n. Часто полагают х,+1— xt- = Xj — х0 для i = = — 2,... , — лиХ;+1 — х, = xiV — Хд,_] для / = N, N + 1,..., ... , W + п—1. На такой расширенной сетке определим си- стему п + М функций <р,п-(х), называемых базисными, или В-сплайнами, полагая их равными разделенным разностям (п + 1)-го порядка от функции ср„(х, t) = (— l)fl+1 (n + 1) X X (х — /)Х по значения.м аргумента t в узлах t — xt, x;+i,..., ... , x^„+I[18|. Получим для В-сплайнов такое выражение: 14-/.I-H Фпг = (п+1) У i = -«........2V—1, (5.95) где ®n+i,/(х) = П (х—хг). r—i Эти функции являются сплайнами степени п дефекта I относительно сетки узлов xit x^i, ... , Х;+п+ь Приведем следующие свойства В-сплайнов: 1) фл(- (х) = 0 при х 3 (X,-; Xi + n + 1); 2) <рЛ1- W >0 при х G (х,-; х(- + n + 1); 3) f ф,ц (х) dx = \ ф,п- (х) dx = 1. а Функции фп(- (х) (1 = —п, —n + 1........... N — 1) линейно независимы и образуют базис в пространстве сплайнов сте- 168
пени п дефекта 1, размерность которого п + >V [18]. Отрезок [хд х(+п+1], на котором сплайн срП1- (х) отличен от нуля, назы- вается конечным носителем сплайна. Поскольку не суще- ствует сплайна степени п дефекта 1 не равного тождественно нулю на интервале, содержащем меньше п 1 частичных отрезков, то [х,-; х,+„+1] называют конечным носителем сплай- на минимальной длины. Из третьего свойства следует, что если узлы х, и х(-+„+1 близки, то сплайны срп, (х) принимают значения порядка О ((х.'+п,! — Х;)-1). При их вычислении происходит потеря значащих цифр и сильно увеличивается вычислительная по- грешность. Поэтому чаще используют нормализованные В-сплайны = (5.96) Вычисление нормализованных В-сплайнов можно прово- дить по рекуррентной формуле [18] Bni W В,,-,, i (х) + /г+л+1 (+i (х). (5.97) л1+п Ai *i+n + l *i + l Для равноотстоящих узлов графики В-сплайнов нулевой, первой, второй и третьей степеней приведены на рис. 15, а—г соответственно. Функции Bni (х) (t = — п, —п + 1....... N — 1) линейно независимы и образуют базис в пространстве сплайнов сте- пени «дефекта 1. Поэтому любой сплайн Sn (х) на сетке Д 169
можно единственным образом представить в виде линейной комбинации и + N нормализованных В-сплайнов W-1 S„(x) = S с<ВМ, х£\а,Ь], (5.98) t=— п где Ci — некоторые постоянные коэффициенты; каждый из сплайнов Вт (х) отличен от нуля на (п + 1)-м последователь- ном отрезке. 4. Представление через фундаментальные сплайны. В тео- рии сплайнов разработаны такие представления интерполя- ционных сплайнов через линейные комбинации базисных функций, в которых коэффициенты разложения равны значе- ниям интерполируемой функции в узлах или интерполяцион- ным краевым условиям. Пусть заданы значения функции f (х) в узлах х(- сетки A f (х() = у,, i — 0, 1, ..., N, а также определенные краевые условия в граничных точках а и Ь. В общем случае узлы интерполяции могут не совпадать с узла- ми сплайна. Поэтому кроме сетки узлов Д рассмотрим другую сетку б: —оо < gj <... < Н, <... < tyv_.., < Н-оо, узлы которой удовлетворяют условиям Х/-1 <&< Xi+N, i = ', 2, .... N — n. Рассмотрим систему сплайнов F,.; (х) (/ = О, 1, ..., N) степени п дефекта 1, определенных на сетке б. Каждому узлу х, сетки Д поставим в соответствие сплайн Fni (х), удовле- творяющий в узлах интерполяции х, условиям: il/i <5 99> где x,Ql\ (I, / = О, 1, 2, ... , N). Кроме того, каждому интерполяционному краевому усло- вию сопоставляется сплайн, интерполирующий в этом усло- вии единицу, а во всех остальных — нуль. Сплайны (х) называются фундаментальными. При указанном выше выборе узлов сетки б сплайны Fni (х) существуют и линейно незави- симы [23]. Любой сплайн степени п дефекта 1, определенный на сетке б и интерполирующий функцию f (х) в узлах сетки Д, можно представить в виде Л' (х) = £ yiFni(x), xQ[a-,b], (5.100) i=0 При наличии в задаче интерполяции краевых условий в формуле (5.100) нужно добавить интерполирующие их фун- 170
даментальные сплайны. Например, если сплайн S,, (х) удов- летворяет краевым условиям S,', (х0) = у0 и S,', (хд,) = у'^, то определяем фундаментальные сплайны Fnt(x), удовлетворяю- щие условиям: Fni (Xj) = 6,7 (6,7 — символ Кронекера), Fni (х0) = 0, F’ni (xw) = О, дополнительные сплайны F„a(x) и Fnb(x), удовлетворяющие условиям: Fna (х,) =- 0, F,'ta (х„) = 1, F,'w (х J = 0, F,lb (xz) = О, Fnb (xN) = 1, F,lb (х0) = 0 (z, j = 0, 1, .... JV). Тогда сплайн S„(x) можно записать в виде N S.,, (х) = S tjiF.u (х) + y'aF,ia (X) + у' F,ib (х). 1 = и Формулу (5.100) называют интерполяционной формулой Лагранжа для сплайнов. Если выбрать степень сплайна п = N (k — 0), то функции Fni (х) (1 = 0, 1,2,..., N) будут фунда- ментальными коэффициентами Лагранжа, a S,, (х) — интер- поляционным полиномом Лагранжа. При п = 1 и х,- = t,, (i = = 1,2, . . . , N — 1) получим кусочно-линейную интерполя- цию, а сплайн Fu (х) совпада- ет с В-сплайном первого по- рядка В\, i_.i (х) (см. рис. 15,6). При и > 2 фундамен- тальные сплайны F,u (х) имеют более сложный вид (рис. 16). В практических вычислени- ях наиболее широкое примене- ние получили кусочно-полиномиальные представления сплай- на (5.91) и (5.92) для каждого частичного отрезка |х ; х,+ 1 (1=0, 1, ..., .V — 1), а также аппарат Л-сплайиов (5.95)— (5.98). Формула (5.9-1) используется в основном для представ- ления сплайна на отрезке [я; Ь] в теоретических исследова- ниях. Для вычислений опа неудобна тем, что при определе- нии параметров сг и ац сплайна в задаче интерполяции мат- рица получаемой при этом системы линейных уравнений мо- жет оказаться плохо обусловленной. Кроме того, усеченные степенные функции (х— х,)" при х > х, быстро возрастают при удалении х от х., что приводит к накоплению вычисли- тельной погрешности. В представлении сплайна через фунда- 171
ментальные сплайны (5.100) предельно просто вычисляются параметры сплайна, но сама процедура вычисления фунда- ментальных сплайнов Fnl (х) является достаточно громозд- кой [23]. 5.15. Интерполяция кубическими сплайнами В инженерной практике наиболее широкое применение получили интерполяционные кубические сплайны. Это обус- ловлено тем, что полином третьей степени является простей- шей кривой, имеющей точку перегиба, что обеспечивает его хорошие интерполяционные возможности. Кубические сплай- ны имеют на всем отрезке аппроксимации непрерывные про- изводные до второго порядка. Такая гладкость обычно ока- зывается достаточной для большинства задач. Невысокая сте- пень полинома упрощает вычисления и уменьшает вычисли- тельную погрешность. Пусть функция f (х) задана на отрезке [а; &] в узлах сетки Д: а = х0 < Ху < х.2 < ... < xn = b значениями f (xj = у{ (i = 0, 1, ..., Л’). Будем рассматривать сплайны третьей сте- пени дефекта 1. Определение. Функция З3 (х) называется кубиче- ским сплайном, интерполирующим функцию f (х) в узлах сетки Д, если: 1) на каждом из отрезков [хг; х,+1] (I = 0, 1, ..., N — 1) она является многочленом не выше третьей степени, т. е. 53 (х) £ Р 3; 2) S3 (х) непрерывна на [а; &] вместе со своими производ- ными до второго порядка включительно, т. е. S3 (х) £ С2 [а; Я; 3) в узлах сетки функция З3(х) удовлетворяет условиям интерполяции 53(x,) = f(x,) (i = 0, 1, ... , X). (5.101) Воспользуемся кусочно-полиномиальным представлением (5.91) кубического сплайна на отрезке (х,-; xt-+i]: S3 (х) = ai } + ал (х — xz) + ai2 (x — x()2 + an (x — x,)3, xQ [xz; x(-+i]. На каждом частичном отрезке [xz; x,+1] кубический сплайн определяется четырьмя параметрами, а на всем отрезке [а; Д число параметров равно 4/V. Для их определения нужно вос- пользоваться (N + 1)-м условием инте'рполяции (5.101), а так- же условиями непрерывности сплайна и его первой и второй производных во внутренних узлах xlt х2, ..., Хдк-i сетки, число которых равно 3(N — 1). Получим 4N — 2 условия для опре- 172
деления 4W неизвестных параметров. Недостающие для одно- значного определения сплайна два условия задаются допол- нительно в виде ограничений на значения сплайна или его производных на концах отрезка [а; Ь] в зависимости от физи- ческих условий каждой конкретной задачи. Наиболее часто применяют следующие краевые условия: 1) S3 (а) = Г (a), S3(b) = f'(b); 2) $;» = /», s;(6) = /"(&); 3) S3r- (a) = S3r> (b), r = 1, 2 — условие периодичности; 4) S./ (Xi — 0) = S:) (x, + 0), i = 1, N— 1 — дополнительные условия непрерывности, где S3'(х; + 0) и 53(х/ —0)— со- ответственно правая и левая односторонние производные третьего порядка в точке х<. Краевые условия 3 применяют для интерполяции периоди- ческих функций периода Т = b — а. Кубический сплайн, удо- влетворяющий краевым условиям 2, где /" (а) = 0 и /" (Ь) —• 0 (нулевая кривизна), называется естественным. Рассмотрим алгоритмы вычисления параметров кубиче- ского сплайна (5.102) при краевых условиях 1—4. Введем обозначения: h} = xl+i — х,- (i = 0, 1, ... , /V — 1), Mt = S'' (хе), пи = S'3(xt) (i = 0, 1, ... , N). Величины Mt и m( называют моментами и наклонами сплайна в узле х,- соответственно. Так как S3 (х) — кубическая функция, то S3 (х) будет линейной относительно х функцией на каждом частичном от- резке. Поэтому при х £ [х,-; х/+1] по формуле линейной интер- поляции (5.14) запишем выражение для второй производной сплайна в виде s;(х) = s; (х,) + (*- м), или через моменты s; (X) = Mi + Mi"~ (X - Xi). (5.103) fli Проинтегрируем дважды это равенство: S3 (х) = S3 (х.) + Mi (х — х^ -Г 'U,< '2~ (х — х,)2; (5.104) 5з W = Ус + S3 (х^ (х — Xi) + (х — х,)2 + ' "'bh. 'Ч (х — хс)э. (5.105) 173
Полагаем в последнем равенстве х = Xz+i! yl+i = У1 + s; м ы + h3it откуда S; (Xi) = ^=^-1 - % (2М,- + M(+1). ill о Подставим значение 5Дх-) в формулы (5.104) и (5.105); S3 (х) = yt + (2M< + Mi+,)] (x - x<) + + у (x — X;)2 + —(X — Xt)3, X G [X;-, Xz+ll (i = 0,1, ... , (V—1); (5.106) s:; (x) = 4 (2M.- + M,+1) + М,- (X - xz) 4- + Л\^(х-х,)2. xG[x(;x(+1] (1 = 0,1,...Л-1). (5.107) Формулы (5.106) и (5.107) выражают интерполяционный кубический сплайн и его производную на отрезке [х(; х,+1] через значения функции f (х) в узлах и моменты Mit Mi+1. Учитывая равенства (5.102) и (5.106), запишем выражения для параметров сплайна в кусочно-полиномиальном представ- лении Ф. = У., ап = - % (2М{ + Mz+l), .....<5-'»8) Для определения моментов Mf+i воспользуемся свой ством непрерывности первой производной S3 (х) в узлах сплай- на. Заменим в (5.107) индекс i на I—1, получим выраже- ние S'.. (х) на отрезке [x,_i; х.|: s; (х) = -^=1 - (2М;_, + м<) + + ЛФ-! (X- Xz-,) + (X- Xz-03. (5.109) Из равенств Si. (хг — 0) = S.'. (х, + 0) следует: ftz-!Mz_! + 2 (ht + /l(._!) + /lM-i-1 = ^±1^1 - 6^-^\ rii fii—i i=l, 2, .... N — 1. Последнее выражение представим в виде + 2/И; -j- (3/Vfz+i = di, (5.110) гИ
где п .___ fy-i о ___________ hi 1 * ht + Л/_х ’ ₽*' “ hi + - 1 — “ь =»7т»п hr - ~6' « *+> <5-11 •> (i = 1,2..tf-1). Для определения моментов Л1,: во всех узлах х£ (i = О, 1, ..., /V) прибавим к (5.110) еще два уравнения, вытекающие из соответствующих краевых условий: 1) 2/И0+ /И! = d0, где ° ' \ (5.П2) Л4/У-1 + 2Мл/ = d где dN = (f (b) — Zv - Zv~'); "JV-1 \ "Д'-l / 2) Мо = Г(а), Л4л.=7"(6); (5.113) 3) 2М, + PiMj + = dt, +ал-'^л’-1 + 2/Ww = dA„ М0 = ЛЬ; (5.114) 4) (1 + Р0 М, + (₽!- а,) /И2 = р1й1, («Л,_1 - ₽Л’-1) Mn-2 4- (! + “v -1) /ИД-1 = « (5.115) Л40 = Pi 1 (Alj — cc1M2), MN -- a.v-j (/W.v-i — P.v-i/W.v-2), в (5.110) полагаем i = 2, 3, , N — 2. В случае краевых условий 3 и 4 преобразованы первое и последнее уравнения системы и из них исключены Л40 и MN. В результате получены системы линейных алгебраических уравнений, у каждой из которых матрица имеет доминирую- щую главную диагональ. Такая матрица будет невырожден- ной [19], поэтому система (5.110), дополненная соответственно уравнениями (5.112)—(5.115), имеет единственное решение. Это условие свидетельствует также о существовании и един- ственности интерполяционного сплайна. Таким образом, задача построения интерполяционного кубического сплайна сводится к решению системы алгебраи- ческих уравнений с трехдиагональной матрицей, что можно эффективно осуществить методом прогонки. Для матрицы с диагональным преобладайием метод прогонки устойчив относительно ошибок округления. Если моменты /И, (t = 0, 1, ..., W) во всех узлах вычис- лены, то кубический сплайн на каждом частичном отрезке к; х1+1] (t = 0, 1, ..., N — 1) представляем в виде (5.106) 175
или (5.102). Выражение (5.106) для сплайна можно преобра- зовать к более симметричному виду Л? 5(0 = (1-0^ + Ш1-^ ^(1-0[(2-0Я+ (5.П6) + (1 + 0 Я-+1], x№xgi]U = 0,1,...>2V-1). При кусочно-многочленном представлении сплайна требует- ся запоминать узлы сетки xt, значения функции yt и момен- ты Mi (i = 0, 1......77). Для вычисления значения кубического сплайна в точке х С [а; Ь\ можно воспользоваться формулой (5.102) и схемой Горнера S3 (х) = ((а,-з (х — х,) + ai2) (х — х,) + а,,) (х — х() + а,-0. (5.117) Коэффициенты ац (j = 0, 1, 2, 3) согласно (5.108) удобно вычислять по схеме /И, Mi+1 — аю = УI, СЦ2 = -й-, аа =--. 2 (5.118) «л = У1+\. yi — Ы(ai2 + ai3hi). Предварительно следует определить интервал [xf, Xi+i], ко- торому принадлежит указанное значение аргумента. В некоторых задачах более удобно представление кубиче- ского сплайна через наклоны nii = S3 (х,), i = 0, 1, 2, ..., N. Воспользуемся формулой (5.21) для интерполяционного многочлена Эрмита с двумя узлами х, и х,+1 кратности 2, выражающей интерполяционный кубический многочлен на отрезке [х,; х,-+1] через значения функции yt и ее производ- ных mt в граничных точках отрезка. Получим выражение кубического сплайна на каждом частичном отрезке через наклоны S3 (х) = У1 + (х — X,) т, + (* ~ yi — — - (хж - X) (т.+1 + пу - 2 ; (5.119) х£[х;; х,+1] (£=--0, 1, ..., W—1). Сгруппируем коэффициенты при неизвестных значениях наклонов. Получим представление сплайна в другой форме S3 (х) = (хм-х)Чх-л7) т. _ т.+1 + (5.120) й(- hi (Xi^-x)^2(x-xi)+hi) „ , [х-х^(2(х1+1-х) +hi) t 1 щ----------yi H----------Ti----------yi+i • hi h( 176
Из формулы (5.119) найдем выражение для второй про- изводной кубического сплайна Ui+i — .'/» _ m. j _ (2 (x<+i — x) hi / \ /i- >4 J ' . .6-12/ = (Ун-1—1А)— tnt + m(_i — 2 = ,,„.(-4 + 6/) (-2 + 6/) +m‘ —hi— + m'+‘ —hi (5.121) где t = , х Е И,-; л-(+11 (' = 0,1,2......N - 1). Полагая в (5.121) х = лу, вычислим правую односторон- нюю производную второго порядка в узле Xii S‘;(Xi -I- 0) = Заменим в (5.121) индекс i на i—1 и вычислим левую одностороннюю производную второго порядка в узле х,: S" (х, - 0) = — 6 . 3 v hi-1 ht-1 По условию непрерывности второй производной кубического сплайна в узлах хг полагаем S‘‘ (xi - 0) = S; (xi + 0) (i = 1, 2.N- 1), что эквивалентно системе линейных алгебраических уравне- ний относительно наклонов + 2/щ + a(ml+i = Ct (i = 1,2...N — 1), (5.122) где = snrfa = szrfc; Ci = 3(t,'’-++‘ + К уравнениям (5.122) добавим недостающие два уравне- ния в соответствии с заданными краевыми условиями типа: 1) /т?о = /'(«), = /'(&); (5.123) 2) 2то + т1 = 3^=-^-^Г(а), + 2mN = 3 ~ Г ФУ, (5.124) 3) 2/7?! + агт2 + Pj/7/д, = Ср I + = Сд,, (5. ] 25) 177
где по условию периодичности y0 = yN, yi = yN+v m0 — mN, тх-=пгч+ХУ hN = h(i, в системе уравнений (5.122) полагаем i = 2, 3.......W—1; ^N — 1 । /| . ^jV-'Л 1 . т---- tllN-1 + I 1 + т--- i //Z.v—1 = -Т Cn-1 + В системе уравнений (5.122) полагаем i = 2, 3, ..., /V — 2. Для краевых условий всех типов система алгебраических уравнений (5.122), дополненная соответственно уравнениями (5.123)—(5.126), имеет матрицу с доминирующей диагональю, поэтому существует единственное решение, которое может быть получено методом прогонки. Для вычисления значений сплайна S3 (х) в точке х £ С io; Ь] при известных значениях наклонов m, (i = 0, 1, ..., Д’) можно воспользоваться формулой (5.119), преобразован- ной к виду, удобному для вычислений на микрокалькуляторе: Зз (0 = Di + (* — Xi) {mt + t (В + tA)), (5.127) где A =_2 yi+i~ Ус + m.+] + m,. B = -A + y-^p-mi; t = X-^. Как уже отмечалось, сплайны обладают хорошими аппро- ксимативными свойствами. Интерполяционные сплайны в ряде задач обеспечивают минимально возможную погрешность приближения на данном классе функций средн всех много- членов фиксированной степени. Так, установлено 11], что среди всех функций, интерполирующих / (х) в заданных точках и имеющих интегрируемую с квадратом вторую производную па [а; Ь], кубический сплайн является единственной функцией, обладающей свойством минимальной кривизны, т. е. обеспе- h чивающей минимум интеграла ) \f" (х)]2 dx. В этом смысле кубический сплайн есть самая гладкая из функций, интер- полирующих / (х). В настоящее время получены многочисленные результаты по точным или асимптотически точным оценкам погрешности 178
сплайн-интерполяции на классах функций [18, 23, 28], Огра- ничимся здесь только порядковыми оценками погрешности интерполяции кубическими сплайнами. Если интерполируе- мая функция f (х) принадлежит классу С* [а; Ы функций, непрерывных на [а; Ь] и имеющих непрерывные производные до k-ro порядка (k = 0, 1,2, 3, 4), то для погрешности интер- поляции кубическим сплайном Х3 (х) функции и ее производ- ных действительны оценки. max /(Р> (х) — S'f' (х); < ch к~р, k > р, (5.128) а-<х<Ь где с — неотрицательная константа, не зависящая от сетки А; h — max I x,-..-i — X/1. Для функции f (х) £ С4 [а; Ь] порядок приближения f (х) сплайном Х3 (х) равен О (/г4), а порядок приближения произ- водных /' (х) и f" (х) функциями Хз (х) и Х3 (х) равен соот- ветственно О (/г3) и 0 (/г2), т. е. одновременно получаются хоро- шие приближения и для производных. Точность приближения интерполяционными сплайнами зависит, кроме гладкости функции, от выбора сетки А, вида краевых условий, а также степени сплайна. В связи с этим целесообразно точки разрыва производных интерполируе- мой функции включать в число узлов сплайна. Степень сплай- на должна быть согласована с гладкостью интерполируемой функции f (х), так как при повышении степени сплайна по- грешность приближения может ухудшаться. Обычно требуется некоторая априорная информация о дифференцируемости приближаемой функции / (х), ее поведении на концах отрезка [а; Ь]. Если, например, заданы только значения функции в узлах сетки А и ничего не известно о выборе краевых усло- вий, то часто функцию приближают естественным кубическим сплайном, положив /" (о) = {Ь) = 0. При этом точность приближения в точках, близких к концам отрезка [а; /Я, снижается и становится почти равной точности приближения сплайном первой степени. Такую потерю точности иногда можно ослабить, применив разностную аппроксимацию про- изводных функции / (х) в граничных точках. Чаще всею выбирают краевые условия типа 4. Отметим также, что кубические сплайны обладают в опре- деленной мере свойством локальности, заключающемся в сле- дующем: изменение значения функции в узле х. мало влияет на значения сплайна и его производных в точках, достаточно удаленных от узла х‘ [18]. 179
При определении параметров кубического сплайна на мик- рокалькуляторе будем выбирать равномерную сетку с шагом , Ь—а , h=-ir = const. Пусть интерполяционный кубический сплайн удовлетво- ряет на концах отрезка [а; Ь] краевым условия.м типа I. Если сплайн выразить через моменты /И,- = S" (xi) (i = 0, 1, ..., N) по формуле (5.106) или (5.116), то для определения пара- метров М;, учитывая (5.110)—(5.112), нужно решить систему уравнений 11 1 2 0 0 .. • 0 0 0 1 \М0 \d° \ / 1 2 2 2 0 .. 0 0 0 1 м. 0 ф 2 2 1 2 . 0 0 0 м2 1 ° 0 0 0 1 2 Mjv-i dv-i Р 0 0 о .. • 0 41 (Мд, / 1 dN j Здесь di = ~ (yi—\ — 2yt + yi+]) (i = 0, 1, ... N); У-i = У о ~ hf (а). Уп+\ = Ух + л/' (0- Вычисление значений dit стоящих в правой части, а также решение системы методом прогонки в случае, если число узлов интерполяции не превышает 9, реализуется программой 26. Программа 26 вычисления моментов М,- (г = 0, 1..N) кубического сплайна, интерполирующего таблицу значений с постоянным шагом h и удовлетворяющего краевым условиям типа 1, 0 < N <8; ИПД 4 + no кипо ПВ КИПО ПА КИПО ИПВ ИПА ПВ 2 X КИП| ПА — — ипс FX2 — 3 X КП f FLO 09 ипд ПО 1 ПС ПА 2 ПВ КИПС ИПА ИПВ — х ипс 1 4- ПС F, кипе XY — кпе ПП 82 FLO 33 ИПД 1 + ПО ИПВ ИПА nBXY ПА ИПВ — 2 — 1 — кип t XY 4- КП1 С/П кипо t + XY — ПП 82 х ИПА БП 68 ИПА ИПВ ПА 4 X XY — ПВ B/O 180
Распределение регистров памяти: Номер регистра 0 1, 2, ... , В с Д Переменная индекс цикла У-it Уи* ••• > P/V-H л/0, Лх, ... , h /V Инструкция. 1. Вычислить у_х ~ уа — hf (а) и у.м+1 — — У и + hf' (/;)• 2. В режиме программирования (F ПРГ) ввести про- грамму. 3. В режиме автоматической работы (F АВТ) ввести ис- ходные данные: (У-i) П1 (у0) П2 ... (yN+1) П (Я + 3) (Л) ПС (/V) ПД 4. Приступить к вычислениям, нажав клавиши В/О С/П. После первого ОСТАНОВа прочесть на индикаторе MiV. На- жать клавишу С/П и после каждого очередного ОСТАНОВа прочесть на индикаторе М; (i = N — 1, ..., 1, 0). По сле окончания вычислений значения /И (i = 0, 1, ..., N) хранятся в регистрах 1,2..... N + 1 соответственно. Контрольный пример. Найти параметры М, кубического сплайна S3 (х), интерполирующего функцию / (х) = е* на отрезке [0; 0,5], шаг h = 0,1 N = 5. Исходные данные: 1 0 1 2 3 4 5 Xi 0 0,1 0,2 0,3 0,4 0,5 Vi 1 1,10517 1,22140 1,34986 1,49182 1,64872 Mi 0,99902 1,10395 1,22117 1,34938 1,48132 1,68934 Зададим краевые условия: /' (0) = 1; /' (0,5) = 1,65. Вычисляем у_г = 1 — 0,1 • 1 = 0,9; i/„ = 1,64872 + 0,1 • 1,65 = 1,81372. После ввода программы, нажав клавиши F АВТ, вводим исходные данные: 0,9 П1 1 П2 1,10517 ПЗ 1,22140 П4 1,34986 П5 1,49182 П6 1,64872 П7 1,81372 П8 0,1 ПС 5 ПД Осуществляем пуск программы, нажав клавиши В/О С/П. После ОСТАНОВа (примерно через 1,5 мин) читаем на индикаторе Л15 = = 1,68934. Нажимая клавишу С/П, после каждого ОСТАНОВа запи- сываем в таблицу справа налево значения Л14- (< = 4, 3, 2, 1, 0). 181
Для вычисления значения кубического сплайна в произвольной точке л£[Л(; %г+1] по найденным значениям наклонов М, (i = О, 1, .. . , А) определяем коэффициенты сплайна ац (j = 0, 1, 2, 3): Mi Miti — Mi yi+i—yi , .. ato = yi, a a = ~2 , al3 =----, ац = ------------&-------h (а1г + ai3h). Затем по схеме Горнера вычисляем S3 (x) = ((ai3 (x — л-(-) + ai2) (x — Xi) + a(1) (x — xt) + alo. Вычисление сплайна в произвольной точке х£ [я; Ь] реа- лизуется программой 27, которую можно вводить в память микрокалькулятора с адреса 00 после выполнения програм- мы 26, не изменяя содержимого его регистров. Программа 27 вычисления по формулам (5.118), (5.117) значения интерполяционного кубического сплайна в точке х Q [х;; х1+1] по известным значениям наклонов М/ (i = 0, 1, .... /V) и табличным значениям интерполируемой функции yi с постоянным шагом h, 0 с N <8: КИП| t КИПО — 6 4- ИПС 4- ИПД X КИП| 2 4-4- ипд х XY КИП | f 4- 4- 6 4- ИПС х — ИПВ ИПА — ИПС 4- 4- ИПД х ИПА 4- С/П Распределеиие регистров памяти: Номер регистра 0 1, 2, ... , 9 А В с Д Переменная £ + 2 Мо, ЛД, .. .,Л1е У1 //1+1 h Axf = х — xi Инструкция. 1. Если проводились вычисления по про- грамме 26, то не отключать микрокалькулятор. Значения моментов Л'Е (i = 0, 1, ..., N) хранятся в регистрах 1, 2, ..., N + 1. 2. В режиме программирования (F ПРГ) ввести про- грамму с адреса 00. 3. В режиме автоматической работы (F АВТ) ввести ис- ходные данные: (i + 2) ПО (щ) ПА (у,+1) ПВ (Л) ПС (х) f (х,) — ПД; и, если не выполнено условие и. 1, (Л!,) П (t -t- 1) (Л'Е+1) П (i + 2). 4. Нажать клавиши В/О С/П. После ОСТАНОВа про- честь на индикаторе ответ. По результатам предыдущего контрольного примера вычис- лим значение кубического сплайна, интерполирующего функ- цию f (х) = ег на отрезке |0; 0,51 в точке х = 0,25. Здесь i = 2; х,- = 0,2; у, = 1,22140, у1+1 = 1,34986. После выиол- 182
нения указаний инструкции получим S3 (0,25) = 1,2840234. Точное значение функции / (0,25) '= е°-25 = 1,2840254, т. е. в данном примере пять знаков после запятой в аппроксими- рующем сплайне — верные цифры. Время вычислений зна- чения сплайна в одной точке — примерно 12 с. 5.16. Кубические В-сплайны Рассмотрим задачу сплайн-интерполяции функции f (х), заданной своими значениями у, = f (лц) в узлах сетки А а = х0 <х3 <... < Xn — Ь. Для представления сплайна <S3 (х) на отрезке [а; Ь] в качестве базисных функций выберем кубические В-сплайпы. Дополним сетку А на каждом конце тремя узлами х._3 <х_2 <х_х <а; b <xN+1 <х^+2 < х^+я- Для периодического сплайна полагаем /z,v+- = hi, i = 0, 1, 2 (/i. = x(+1 — x,); в общем случае можно положить h_2 — h_x = hn и /i,v+1 -= /z.v = Обозначим через <p; (x) кубический В-сплайн, определен- ный на интервале [х,_2; х,+2] с центром в точке х(-. Индекс кубического сплайна выберем по среднему узлу интервала- носителя. Функция (р, (х) является кубическим многочленом дефекта 1 по переменной х па сетке узлов х(-_2, Xi_lt xit xl+1, х1+2. Такой сплайн можно определить через разделенную раз- ность 4-го порядка для функции <р (х, у) -- 4 (у — х)3+ по переменной у: k=i—2 где Л-2 W, (х) = П (я —*/<) /е=<-2 При х > х,-+9 (рi (х) ~ 0 по определению усеченной степен- ной функции. При х < х;'_.2 функция (р (х, у) будет обычным кубическим полиномом по переменной г/^(х(_2; x,_l2), а ее разделенная разность 4-го порядка равна нулю. Таким обра- зом, кубический В-сплайн является финитной функцией, т. е. он тождественно равен нулю на всей числовой оси, креме точек интервала-носителя: <р( (х) = 0 при х (х,-_2; хц ?). (5.130) 183
Отметим также, что для В-сплайна выполняются условия [18]: <р, (х) > 0 при xg(xt_2; х/+2); (5.131) ь ^+2 j Ф, (x) dx = j ф, (x) dx = 1. (5.132) a xi—2 Нормализованные кубические В-сплайны определяются по формуле Bt(x) = ^2~Xt-2(p((x). (5.133) На расширенной сетке построим систему кубических сплай- нов В[(х), i = —1, 0, 1, .... У, У + 1. Условие нормировки (5.132) для нормализованных сплайнов будет иметь вид W4-1 J]Bl(x)=l. (5.134) Значение сплайна BL (х) (i = —1, 0, 1, .... N, N 4- 1) в любой точке х£ 1х,_2; х1+.2] можно вычислить, используя формулы (5.133) и (5.129). Для равномерной сетки Л с постоянным шагом h, учиты- вая (5.133) и (5.129), получим следующее выражение для нор- мализованного кубического В-сплайна [28]. 4 Bi W (*- *‘+2-*)3+, (5.135) /?=о где С'1—число комбинаций из 4 по k, i=—1, 0, ... , N, N + 1. По формуле (5.135) можно вычислять значения сплайна Bi (х) в любой точке интервала [х,-_2; х, + 2] (i = —1, 0, 1, ..., N, N-\- 1). В табл. 5.5 приведены значения нормализованного Таблица 5.5 X Bi (x) 5/ (x) B"(x) xi-2 xi-\ Xi xiYL xi+2 0 1/6 2/3 1/6 0 0 l/2/i 0 — l/2h 0 0 1//12 —2/h2 l//i2 0 184
кубического В-сплайна и его первой и второй производных в узлах интервала-носителя для равномерной сетки А с ша- гом h [18]. Для неравномерной сетки соответствующие значения сплайна Д (.г) и его производных приведены в [18, с. 140]. Там же изложены алгоритмы для вычисления сплайна по ре- куррентной формуле (5.97). Функции Bj (х) (! = —1, 0, 1, ..., W, N + 1) линейно независимы на расширенной сетке, их можно выбрать в каче- стве базиса в пространстве кубических сплайнов дефекта 1. Тогда любой кубический сплайн S3 (х) на отрезке [с; Ь] можно представить в виде линейной комби- нации В-сплайнов W + 1 S3(x) = S CiBi(x), i=-i xg [a; b], с, = const. (5.136) Выбор В-сплайнов в качестве базисных функций позволяет вычислять значения сплайна .S3 (х) и его производных до третьего порядка в любой точке xQ [«; М. При этом, если х = Xi, то в формуле (5.136) требуется вычислить значения только трех, а при х #= х,- — значения четырех базисных сплайнов В, (х), носитель которых содержит точку х. Напри- мер, в узле X, ненулевыми будут сплайны В^ (х), В, (х), Bt_|_i (х), а в точке х£(хг, x1+i) — сплайны В(-_| (х), В( (х), В<+;(х), В[+2(х) (рис. 17). Поэтому формулу (5.136) можно представить в виде 1+2 S3(x)~ ckBk(x), хс(х;; х1+1). (5.137) Коэффициенты Ci(i = — 1, 0, 1, ... , У, W + 1) в пред- ставлении (5.136) сплайна S3(x) определяются из условий интерполяции S3(x() = t/;(t = 0, 1....(V) и краевых условий типа (5.123) — (5.126). Каждому узлу Xi(i = 0, 1....... N) соответствует уравнение только с тремя неизвестными Ci-iBi-i (х,) + CiBi(Xi) + Ci+iBz+i (xi) = yit (5.138) i = 0, 1.................N. В случае равномерной сетки А с шагом h и краевых условий (5.123) для определения коэффициентов а получим 183
систему уравнений I 1 1 г / v 2/i6-' 2ЛС‘~ . | с.--! + | fl-+ 1 Cl41 = yt, i = О, 1....N-, (5.139) ~kCN-' + = f Из первого и последнего уравнений исключим соответственно С-1 И Сю-:}- c-i = ci + 2Л/ (о), Сдг+1 = Cy_i + 2hf (b). Коэффициенты Ct(i = 0, 1........М) определяем из системы уравнений f 2 ,1 1 . 3 со + -j ci — Уо — -3«/ (п); •l-Ci-i + 4с‘ + 1 с‘+1 = У1> I = 1> 2, ... , N — 1; (5.140) и О О 1 2 1 у Cn-i + g-Cw = (/y — -3 hf (b). Матрица системы (5.140) имеет доминирующую главную диагональ. Поэтому существует единственное решение систе- мы, которое может быть найдено методом прогонки. Для крае- вых условий (5.124) система уравнений для определения коэф- фициентов с, имеет вид ( 1 2 .1 . ^2 С-1 /j2 С0 + /;2 С1 / (Я)’ - d-t + + j- ci+l = tji, i = 0, 1, ... , М; (5.141) О О О C/V-! — ;f2 Cn + A c,v + 1 = f (b). Аналогичные системы уравнений получим для периоди- ческого сплайна ’ С_, = Со + Сю-} — Сю" ' | с,+ ic,.+, -=!/<. (-1, 2............ (5.142) ' <тлг-[-1 — с, — с0 4- Сю- Для краевых условий (5.126) = 4бд Всj 4г2 с$. i Ci-, + 1- а+ ^7,., = ^ i = 1, 2, ... , М-1; (5.143) СлЧ-l = 4сдг — бСд'—i 4c,V-2 — Сю—3. 186
В случае неравномерной сетки Л матрицы систем (5.140)— (5.143) в общем случае могут не иметь доминирующей главной диагонали. Во избежание плохой обусловленности матрицы рекомен- дуется [18] выбирать сетку А таким образом, чтобы выполня- лось условие max <р<(3 4-Кб)/2. (5.144) ‘<•-/1=1 ni Изложим алгоритм вычисления значений интерполяцион- ного кубического сплайна S3 (х) в любой точке х £ [«; Ь] с ис- пользованием аппарата В-сплайнов в случае равномерной сетки. 1. Для указанного х вычисляем значение i = [(х— я) //;] ([х] — целая часть числа, т. е. наибольшее целое число, не превышающее х) такое, что х£ [хг; xt-_^il. 2. В зависимости от заданных краевых условий, состав- ляем систему алгебраических уравнений (5.140)—(5.143) и вы- числяем коэффициенты с, (i = —1, 0, .... N— 1) методом прогонки. 3. Вычисляем значения сплайнов B£._i (х), В, (х), Bi+i (х) и В,_1_2 (х) в заданной точке х по формуле (5.135). 4. Вычисляем значение сплайна S3 (х) в точке х С 1х£; Xf+il по формуле (5.137). Использование аппарата В-сплайнов требует запоминания в процессе счета значений узлов х(- (i = —3, —2, ..., N + 3) и коэффициентов с£ (t = —1, 0, 1, ..., N + 1), т. е. 2 (М + 5) чисел. По сравнению с кусочно-многочленным представле- нием здесь достигается экономия памяти машины. Но количе- ство вычислений при этом увеличивается. В практических вычислениях целесообразно избегать реше- ния системы уравнений для вычисления коэффициентов с, (i = —1, 0, 1, ..., М, М + 1). Можно воспользоваться при- ближенными выражениями этих коэффициентов через значе- ния функции f (х) в узлах интерполяции. Например, на равно- мерной сетке с шагом h можно положить [13] Ci = у:, 1 = 0, 1, ... , М (5.145) с точностью O(h2). Если же выбрать Ct = — 4- yt-\ + 4 — Т '/<'+ь i = °> !-••• . N’ (5146) и о и то порядок погрешности будет О (/i4) [181. Сплайн S3 (х) уже не интерполирует функцию f (х) в узлах сетки А, но точность аппроксимации почти не изменяется. 187
Продифференцировав выражение (5.136), получим W+1 5з’ (х) = S с№(х), г=1, 2, 3, (5.147) 1=—1 т. е. производные кубического сплайна, выраженные через производные В-сплайнов. Свойство локальности В-сплайнов обеспечивает хорошую гибкость аппарата приближения на их основе. Если сплайн S3 (х) выражен через линейную комбинацию В-сплайнов, то изменение значения функции f (х) в одном из узлов влечет за собой изменение только трех базисных функций, не нарушая непрерывности кривой и ее поведения на некотором удале- нии от узла. Это позволяет проводить локальную коррекцию формы кривой, например в задачах проектирования, без пол- ного ее пересчета. В-сплайны также мало чувствительны к погрешностям в исходных данных, алгоритмы их вычисле- ния устойчивы относительно погрешностей округления. Применение явных методов аппроксимации функции f (х) В-сплайнами с использованием формул (5.145), (5.146), не тре- бующих решения систем линейных алгебраических уравне- ний, существенно уменьшает объем вычислений. Так, при аппроксимации коэффициентов су (t = —1, 0, 1, ..., N + 1) по формулам (5.145) в описанном выше алгоритме вычисле- ния сплайна в точке х £ [х(-; х1+1] не требуется выполнять п. 2, а в п. 4 вычисляется М-2 S3 (х) — £ УьВк(х), xQ(xi', xi+i). (5.148) k=i—l Рассмотрим реализацию на микрокалькуляторе алгоритма вычисления значений В сплайна и интерполяционного сплайна в точке х, принадлежащей внутреннему частичному отрезку [х(; х/+1] интервала [а ; &]. Для сетки А с постоянным шагом h выпишем выражения для сплайнов Вк (х) (6 = i—1, i, i 4- 1, i + 2) (5.135): B(_: (x) = 1—4 (x — xt)3 + 6 (x — Xi_i)3 — 4 (x — x(_2)3 + + (x — x(_3)3]; B, (x) = [6 (x — x^3 — 4 (x — хг-1)3 + (x — x; )3]; Bi+1 (X) = [ — 4 (X — X;)3 + (x — x,--!)3]; ^+2(-r) = 6^^-^)3- 188
Интервалы-носители каждого из этих В-сплайнов содержат точку х. Более устойчивый алгоритм вычисления значений нормали- зованных В-сплайнов в точке х£ lx,-; х,+1 ] можно получить, применяя рекуррентную формулу (5.97), которая пригодна и для неравномерной сетки. Здесь последовательно строятся сплайны нулевой, первой, второй и третьей степеней В„. д- (х) для интервалов-носителей [%,; Xi + п +i] (п — 0, .... 3). Пола- гаем в0, w = {J; хЕ(х,-; x;+i), X $ (х,-; х,+1). Затем по (5.97) формируем таблицу: В0,,(х) Bi,i(x) В2Л(х) Взл(х) Bi.f-i (х) B3.(_i (х) Взл_1 (х) В2|;_2(Х) Вз,;_2(х) В3,-з (х) Согласно (5.97): В‘2Лх) = -^-В1Л(ху, *1+2— Х1 B2,-i (X) = В,,-, (X) + ^4. Ви (X); Л1+1— Л1-1 *1+2 *1 В2Л_2(х)= х^~х B2,t_:(x); •4+1 xi-l Вз,(х) = -р^-В2Л(х)-, B3j-i (х) = х~хс-' В2Л^ (х) + ^4.В2Л(х); Л1+2 — *1-1 *1+3 *i ВзЛ-2 (х) = 44^ В2>[_2 (X) -ь 4^4 B2J_, (х); •Ч+1—Л1+2 Aj-l B3,t-_3(x) = 4'4-В2.,_2(х). All]— Л1-2 Построенные таким образом сплайны третьей степени В3,(-_з(х), Взд_2(х), Вз,д_1(х), В3,,(х) в случае равномерной сетки совпадают соответственно со сплайнами B;_i (х), Вд(х), В,+1(х), В(+2(х). 189
Значение интерполяционного кубического сплайна S3(x) в точке х£[х<; xz+t] вычисляется по (5.137) так; Н-2 S3(x) = S скВк(х). k=i—1 Коэффициенты ск определяются в зависимости от краевых условий по (5.139) — (5.142). Здесь использована локальная аппроксимация при ск = ук (k = Q, 1..N). Программа 28 вычисления значения сплайн-функции S3(x) в точке х(Дх(-; x,+i] (t — 1, 2, ... , У— 2), выраженной по формуле (5.148) через кубические 5-сплайны. СХ П9 ИПА ИПВ — ПА 8 ПО О ПД ИПО П1 ИПА ПВ | FX2 х КИШ х ИПД + ПД ИПВ ИПС + FL1 13 КИП| ИПД х ИП9 + П9 FLO 35 FLO 08 6 4- ИПС Инструкция. 1. Ввести программу в режиме программи- рования (F ПРГ). 2. В режиме автоматической работы (F АВТ) ввести исходные’; данные: (х) ПА (х-) ПВ (/;) ПС (-4) ПЗ П7 (6) П5 (С(_.1) П8 (cj П6 (сч.|) П4 (ci+2) П2 3. Нажать клавиши В/О С/П. После ОСТАНОВа про- честь на индикаторе значение S3 (х). Контрольный пример. Рассмотрим аппроксимацию с помощью кубических В-сплайпов функции / (х) = е*, заданной на отрезке 10; 0,5] таблицей значений в узлах с шагом h = 0,1. Вычислим значе- ние S3 (0,25), используя локальную аппроксимацию, т. е. полагая с» = Ун 190
После ввода программы в автоматическом режиме (F АВТ) введем исходные данные: 0,25 ПА 0,2 ПВ 0,1 ПС (—4) ПЗ П7 6 П5 1.10517 П8 1.22140 П6 1.34986 П4 1.49182 П2. Осуществляем пуск программы: В/О С/П. Примерно через 70 с по- лучим результат S3 (0,25) = 1.286166. С точным значением функции е0,28 = 1,2840254... совпадают 2 знака после запятой. Порядок погреш- ности О (10~2) вызван локальной аппроксимацией коэффициентов су и округлениями табличных значений функции. По сравнению с аппро- ксимацией кусочно-полиномиальными сплайнами по программам 26 и 27 погрешность в данном случае больше, по зато здесь не нужно решать систему алгебраических уравнений для определения парамет- ров сплайна. Глава 6. ЧИСЛЕННОЕ ДИФФЕРЕНЦИРОВАНИЕ И ИНТЕГРИРОВАНИЕ ФУНКЦИИ ОДНОЙ ПЕРЕМЕННОЙ 6.1. Численное дифференцирование функций с помощью интерполяционных полиномов Численное дифференцирование применяется при решении задач, в которых нужно найти производную некоторого по- рядка функции, заданной таблично пли в виде сложного ана- литического выражения. Пусть функция / (х) задана значе- ниями tji = f (х<) в (n 4- 1)-й точке Xt (i = 0, 1,2,..., n) отрезка [«; Ь]. Общий метод получения формул численного дифференцирования состоит в аппроксимации табличных зна- чений функции каким-либо интерполяционным многочленом Рч (х). Искомые значения производных функции в любой точке отрезка [я; приближенно выражаются через соответ- ствующие значения производных этого многочлена: (х) лз Р„’ (х), 0 < k < п, х£[а; 6]. (6.1) Если известна погрешность интерполяционной формулы I R,t (х) i = I f (x) - Pn (x)!, то погрешности производных (x) | = ; /(*> (x) - P,1,"’ (x) i, 0 < k < n. (6.2) Рассмотрим частные случаи формул численного дифферен- цирования, в которых функция f (х) приближается интерполя ционными полиномами Ньютона, Лагранжа или сплайнами. 1. Применениеинтерполяционных формул Ньютона. Пусть функция f (х), заданная на отрезке [о; Ь\ таблицей значений в равноотстоящих точках х, (t = 0, 1, 2, .... п) с шагом 191
h = xi+i—Xt, аппроксимируется интерполяционным полино- мом Ньютона для интерполяции вперед (5.15): f (х) « у0 + /А у0 4- ^уо + ^-.1)^~2) дз^о + + H^-W-З)Муо + . . . + Z(Z-.).^(/ra+1) д^ (6.3) Последовательно дифференцируя многочлен (6.3) по пере- менной х и учитывая, что df (х) _ df (у) Л _ df(x) dx dl dx dt h’ получим формулы для приближенного вычисления производ- ных функции /(х): . 1 . , it — 1 ., . З/2 — 6/ + 2 / (х) ~ "д &Уо Н---2— “I-----------------3!------ + 4^3 _ 18/2 + 221? — 6 5/1 — 40/3 + 105/2-ЮО/+ 24 . = 1 +-------4Г-------Д Уо+--------5!--------— А У«+ ’ с„, . 1 , ,, .. ., , 12/2 _ 36/ 4- 22 .. / W ~ /;2 [Д2Уо + — 1) ДЗУо Н-----------4!-----Д4Уо + , 20/2 — 120/2 + 210/- 100 д5 , +-----------гг—---------д Уо + •1 • ; Г (X) « 1 А3//0 + ^_Z±6 дч + 60/^-240/ + 210 + . . .' ,IV , . 1 , 120/ —240 .. /Iv W ~ Jfi [Л4.Уо Н----------5!------ Д5УО + • и т. д. (6.4) Формулы (6.4) удобно применять, если значение х располо- жено ближе к левому концу отрезка [а; Ь]. Для вычисления значения производной в точке, лежащей ближе к правому концу отрезка [«; /?] , можно воспользоваться интерполяцион- ным полиномом Ньютона для интерполяции назад (5.16): / (X) « уп 4- 4- + <(M~3,(t + 2)' ^3Уо-3 + + U/ + .H£±2Ht + 3) д^_4 + ... + /(/ + 1).'..(; + п^)д„уо1 (6.5) где t = . 192
Дифференцируя (6.5), получим формулы для приближен- ного вычисления производных функции: с ~ 1 I Л , 21 + 1 .2 . З/2 + 6/ -1- 2 .» , f W ~ ДУ/1-1 Ч---21— Д Уп—2 Ч-----------Д3Уп-3 + , 4/3 + 18/2 + 22/4-6 .. 1 Ч-----------4у------ Д4£М—4 Ч--] И Т. д. (6.6) Если требуется вычислить производные в узлах интерпо- ляции (i = 0, 1....п), то формулы (6.4) и (6.6) упрощаются. Поскольку любую точку можно принять за начальную, то, положив в (6.4) х = х0 (t = 0), получим формулы для вычис- ления значений производных: Г (-го) ~ | АУо — | д2Уо + АЧ — j АЧ + | д5УоЧ--------------]; Г (х0)« 1 [ ДЧ - Д’Уо + ’1 Д 4у0 - | Д5у0 +•••]; (6.7) /"'(x0)w^ Д3у0 —| д4(/о +-^ Д5//о—... ; Г' (*0) ~ & ДЧ — 2АЧ Ч------------------- и т. д. Аналогично, положив в формуле (6.6) х = х„(/ = 0), по- лучим f (x'i) = | ^Уп-\ + у Д2У«—з Ч* у дзУ'г—з + 4- Д’уп—4 + • • • и т. д. (6.8) Если в интерполяционном полиноме Ньютона (6.3) огра- ничиться разностями до k-vo порядка, то его остаточный член (х) = Л>+!)= = h’,+' (6-9) где — некоторое число, лежащее между узлами интерполя- ции хо, Xj, ..., х.;. И X. Продифференцировав (6.9) по х и положив х = х0, т. е. t = 0, получим погрешность для первой производной функции 1^(х0)| = |(-1Г(-^^+')(^)|. (6.10) На практике оценка (6.10) мало пригодна, так как обычно не известна производная (х). Поэтому при небольших k 7 t,-467 193
можно приближенно заменить производную ее выражением через конечные разности и представить погрешность в виде Rl: (*о)! |(-1)*ДИ+/()1 I h 4 + 1 I (6.Н) Аналогично получаются оценки погрешности для произ- водных высших порядков. Следует учесть, что минимальное число узлов, необходи- мое для вычисления /г-й производной, равно k + 1. При ис- пользовании большего числа узлов получаются формулы более высокого порядка точности. Пример. Пусть функция / (х) = е-*2 задана таблицей значений с шагом h = 0,1: xi ° 0,1 0,2 0,3 0,4 0,5 yt 1 0,9900 0,9608 0,9139 0,8524 0,7788 Вычислим приближенно значения производных f (0) и /" (0). Составим таблицу конечных разностей: X У Ду Д2у Д3у Д«у Д’// 0 0,1 1 0,9900 —0,0100 —0,0292 -0,0192 0,0025 0,2 0,9608 -0,0167 —0,0004 —0,0469 0,0021 0,0008 0,3 0,9139 —0,0615 —0,0146 0,0025 0,0004 0,4 0,8524 —0,0121 -0,0736 0,5 0,7788 1 Воспользуемся формулой (6.7), полагая х0 = 0 и ограничиваясь разностями четвертого порядка, f (0) — (д</о — J ДЧ + у Д’^о — 4 Д4уо) = = 0,0100+ • 0,0192 + 1 -0,0025 + 4 ’ °’0004) = °’0083> /" (0) ~ ± (д2(/0 - Дэ//0 + U Д4у0) = = _L ^—0,0192 — 0,0025 — 0,0004 -2,2067. 194
Точные значения производных равны соответственно /' (0) = -2ле—х2|х=0 = 0; /" (0) = (4x2 _ 2) е-х2| = _2. Выразим погрешность через конечные разности пятого порядка по (6.7): | Rj (0) | « 11 Д5</0 ! = • 0,0008 = 0,0016, К 1 К 1 (0) 1 I -F1ДЧ1 = "6 -W ' °’0008 = °'0667, Следует отметить, что с увеличением порядка производной точность формул численного дифференцирования резко на- дает. На практике их применяют для вычисления производ- ных не выше второго порядка. 2. Применение интерполяционного полинома Лагранжа. Функцию f (х), заданную на отрезке [«; 6] значениями у, = — f (xz) в равноотстоящих точках xt (i = 0, 1, .... п; h= = (x,4i —xi)> заменим приближенно интерполяционным по- линомом Лагранжа (см. (5.10)): V (-l)”-' /(/- 1) (<-")„ —()! t — i i=0 , x — xn где / = —. Продифференцируем (6.12) по х: f ~ 1 V (-1)""1' Vi d (t~ n) ' h — ()! dt [ l-i i=Q (6.12) (6.13) Учитывая выражение для погрешности интерполяционной формулы Лагранжа Л,(Х);=|-^^МХ)|. (6.14) после дифференцирования получим оценку погрешности для производной функции в узлах интерполяции I Rn (Х1) ; = | (-1 h" G) |, (6.15) где £ £ [о; Ь), В формуле (6.13) производная функции выражается не через конечные разности, а через ее значения в узлах интер- поляции. Выпишем некоторые ее частные случаи, позволяю- щие вычислять производные функции и их погрешности в узлах при фиксированном п. 7* 195
а. При n = 2 (заданы значения функции в трех точках) получим значения первых производных: Г W = 2\ (-Зу0 + 4У1 ~ УЛ + 7 Г Ф, Г(х^ = ^(у2-Уо)-^Г(1), (6.16) Г (х2) = 2А (Уо - 4У1 + 3f/2) + ? Г (У, и вторых производных: ГМ = ^(.Уо-2(/,+^)-/гГ©( Г (х,) = (у0 - 2yt + у2) - f'v (g), (6.17) Г(х2) = ^(//0-2^+//2) + ЛГ®. б. При п = 3 (четыре узла интерполяции) получим выра- жения для первых производных: f W = 6А (-11Уо + 18^) - 9у2 + 2уэ) -13 /’V ф, Г М = (~2уо - 3У1 + 6у2 - уэ) + £ pv (Ю( (6.18) Г М = (Уо - 6У1 + 3y2’+ 2«/э) - рv (Ю> Г W = (-2у0 + 9У1 - 18(/2 + Hf/э) + 7 Г Й). и вторых производных: Г (Хо) = (2Уо - + 4^2 - у3) + 12 Л8/1 V (Е), /" (Xi) = (Уо ~ ?У1 + У2) - Г2 fn (^ - (6- ’ 9) f"W = ^(^-2y2 + t/8)-^,v(e). Г ад = (-Уо + *У1 - 5Уг + 2у3) + Г2 A7,v (I). На практике наиболее применимы следующие формулы численного дифференцирования для любого внутреннего узла х(> (6.20) (6.21) 196
f" (Xi) = У1'~1 ~ 2r/,f + f/‘41 (6.22) которые могут быть получены из (6.14), (6.16), (6.17) и (6.19). Отметим, что с уменьшением шага h для достаточно глад- кой функции величина остаточного члена в формулах диффе- ренцирования, т. е. погрешность метода, уменьшается. При этом значения производных более точны в узлах, расположен- ных посредине равномерной сетки. Вычислительная погреш- ность, вызванная неточным заданием значений функции у., а также ошибками, возникающими при вычислении конечных разностей, увеличивается при уменьшении h и росте порядка производной. Как видно из (6.20)—(6.22), при малых h зна- чения функции в соседних узлах почти равны, поэтому при вычислении их разности теряются значащие цифры. Деление на hk, если h мало, может привести к большой абсолютной погрешности в значениях k-u производной. Таким образом, задача аппроксимации производных является по своей природе неустойчивой. Если функция задана в узлах с абсолютной погрешностью е, то для конкретной формулы численного дифференцирова- ния можно примерно указать оптимальный шаг. Например, определим ошибку метода для (6.21) h2 i R' (х3' = -R- мз- гДе Мз = m£|x I/'"(*)' о Х(_1 ^Х^Х{+1 2е и ошибку, вызванную погрешностью исходных данных — h ’ Суммарная погрешность (без учета ошибок округления) уМз + { (6.23) принимает минимальное значение при h = у . Проведя аналогичные рассуждения для (6.22), получим сле- дующее выражение для оптимального шага: ft = 2TX (6.24) где М4 = max >/IV(x)l. xi-l <x<xi+i Формулы (6.23) и (6.24) можно применять в том случае, если известны оценки соответствующих производных. 197-
Опенку погрешности формулы численного дифференциро- вания можно проводить по правилу Рунге, если остаточный член формулы имеет структуру = /('о (х) — (х, 6) = Ф (х) hp + О (hp+1), 6=1,2, ... (6.25) Вычислим производную по указанной формуле на равно- мерной сетке узлов сначала с шагом h, а затем с шагом r/i. Учитывая, что /(Л) (х) — Р{ц} (х, rh) = ip (х) (r/i)p + О ((лй)р+1), O(/ip+1) » 0 ((r/i)p+1), получим следующую оценку погрешности Р'Д (х, К) - Р(„к) (х, rh) Як> (х) « <р (х) hp = —-р—-2L2----------- + О (hp+v). (6.26) Тогда исходную формулу численного дифференцирования р-го порядка можно уточнить, полагая .... Р^} (х, h) — (X, rh) (х) « />!,*’ (х, h) + ЭД---------n ,6=1,2.................(6.27) rp — 1 6.2. Численное дифференцирование функций с помощью сплайнов Как уже отмечалось, интерполяционные сплайны обеспе- чивают хорошее приближение не только функции / (х), задан- ной па сетке Д. но и ее производных. Для вычисления произ- водных достаточно продифференцировать интерполяционный сплайн соответствующее число раз. Для интерполяционных кубических сплайнов формулы численного дифференцирования, выраженные через наклоны nij = S' (х,) и моменты /Vfx = S" (х,), имеют вид: S3 (х) = 6/ (1 — t) У‘+\ + (1 — 4/ + З/2) — — (2/ —З/2) mz+I; (6.28) с"/ > /с 4 — Gt 2—Gt /с оп. S3 (х) = (6 — 12/) —-------ш,-------— 1; (6.29) ЭД = S(m<+i +»h-2y,+;-y‘V (6.30) \ 1 / 198
s:; (X) = —- g (2At + ,w,;;) + (x- Xi) + Л1,., — M, + - 2h. (* —*»)2; (6.31) Л-1, и - S3 (x) = M, A- ---------!(x —x(); (6.32) M, . , - /VI,. Sw(x) = -^---------(6.33) где хек X/'+il, hi = Xi4.। — хл (( = 0,1............N — 1), t = x — xt- Если /(x)gC4[a; b], то порядок приближения производных f (x), f" (x) и I'" (x) сплайнами S'(x),S"(x), S'" (x) равен со- ответственно 0(/i3), O(h2), 0(h). Если в качестве базиса взяты кубические В-сплайны, то производные аппроксимирующей функции выражаются через производные В-сплайнов! Л'+1 S(;)(x)= £ с(В£л) (х), г = 1, 2, 3. (6.34) (=—I Алгоритмы вычисления /п,-, М, и с,- изложены в гл. 5. Если воспользоваться локальной аппроксимацией функции и поло- жить с; = yi (( = 0, 1, ... , N), то производные сплайна .v+l S(3r)(x) = S ytBir)(x), r= 1, 2, 3. (6.35) (=—। Значения производных функции f (х) в узлах интерполя- ции х,. (г =0, 1, ..., А) приближенно приравниваем к значе- ниям соответствующих производных кубического сплайна. Получим следующие формулы численного дифференцирования в узлах: S) (х^ =/л,-, ( = 0,1, ... , /V; (6.36) e (ZMi + M^), ( = 0, 1, ... Л-1; (6 37) $; (/£) = (М£_, + 2/И;), 1 = 1,2............N-, (6.38) S’’(х^ = Mi, i = 0, 1............(V; (6.39) s; (M) = 6 y‘+'T lJi - ;2 (2/n(- + mi+l), i = 0,l, ... , N - 1; (6.40) 199
S3 (x,) = (irh-i + 2m,) - 6 V<~', i = 1,2. ... , AT; «:-! «,-1 (6.41) S3" (x.) = (tni+i + m,- - 2 y‘+'~ , < = 0,1,... , N - 1; (6.42) Sjx,) = , < = 0, 1, ... , Z/ — 1; (6.43) S3r>(x,) = с,ВГ (xz), r = 1, 2, 3; I = 0, 1...........N. (6.44) k=i—i Если выбрать сетку Д равномерной с шагом h, а число узлов интерполяции достаточно большим, то внутри проме- жутка [о; Ь] точность аппроксимации производных функции повышается. Для равномерной сетки значения производ- ных нормализованных кубических 5-сплайнов приведены в табл. 5.5. Учитывая (6.44), получим S3 (х;)=с,_1В/_|(х,) + CiB'i (х,) + с(+|В;+1 (х,) = 1+12Л <~1, (6.45) i = 0, 1...........................N. S'sixi) - Ci-}B'L\ (х,) 4- с,Д,"(х,) + ct+\B't+\ (xz) = С/ I - 2с/ + С: , = ДД—-LZ ‘+1, i = 0, 1, ...N. Л2 ’ ’ ’ ’ (6.46) Комбинируя сплайновую и разностную аппроксимации, можно получить формулы численного дифференцирования более высокого порядка точности [18]: Г (х.) = 1 (м, + У‘-' ~ 2у‘+ У<+1) + О(V); (6.47) /" (xz) = ± (Mz_i + ЮМ, + М1+1) + О (Л4); (6.48) f" (х<) = j (у-'~2^+у‘+' + 6 + О (ft4); (6.49) М,- ,, - м. . Г (X.) = 1+12/1 + о (Л2); (6.50) . - 2Mi 4- м,.., Дv(Xi) = 1+1 + О(h*y, i= 1, 2..N- 1. (6.51) Если значения функции f (х) заданы в узлах с абсолютной погрешностью е на густой сетке, то для численного дифферен- цирования строится интерполяционный сплайн на более ред- кой сетке узлов. Оптимальный по порядку шаг сетки выби- 200
рается /г = О(е4), что согласуется с формулой (6.24) для полиномиальной интерполяции [28]. Вычисление второй производной функции / (х) можно осу- ществить дифференцированием сплайна от сплайна [I]. При этом вначале вычисляются наклоны = S' (х,) по заданным значениям функции, а затем строится сплайн, интерполирую- щий в узлах значения пц. Производная построенного сплайна приближает вторую производную функции. 6.3. Численное интегрирование функций одной переменной При решении многих инженерных задач приходится вы- числять определенные интегралы от функций. Из курса мате- матического анализа известно, что для всякой непрерывной на отрезке [а; Ь] функции / (х) существует первообразная F (х), и определенный интеграл от этой функции можно вы- числить по формуле Ньютона—Лейбница ь f(x)dx=F (b) — F(p). а Однако первообразная F (х) не всегда является .элемен- тарной функцией. В приложениях приходится также вычис- лять определенные интегралы, если подынтегральная функ- ция f (х) не является элементарной, либо задается таблично или графически. Тогда формула Ньютона—Лейбница непри- менима. Кроме того, выражение для F (х) может оказаться достаточно сложным, требующим громоздких вычислений. В таких случаях применяют формулы приближенного инте- грирования, называемые квадратурными. Идея численных методов интегрирования заключается в замене подынтегральной функции f (х) некоторой аппрокси- мирующей функцией <р (х), интеграл от которой вычисляется легко. В частности, если заменить функцию f (х) на отрезке 1а; Ь] интерполяционным многочленом Рь (х) с узлами интер- поляции х( £ [а; Ь], то квадратурная формула примет вид: ь k $ f(x)dx « £ Aif (х,). (6.52) а i=0 Числа Л,- называют весами, а х,- — узлами квадратурной формулы. Веса Л(- не зависят от функции f (х), а зависят только от выбора узлов. Если узлы равноотстоящие с шагом 201
h = —y—> т0 квадратурные формулы (6.52) называют форму- лами Ньютона—Котеса при разных /г. Для повышения точности квадратурной формулы отрезок интегрирования разбивают на ряд частичных интервалов, на каждом из которых подынтегральную функцию заменяют интерполяционным многочленом. Такую квадратурную фор- мулу называют составной. Если концы отрезка [а; Ь] и частичных интервалов инте- грирования выбираются в качестве узлов интерполяции, то формулу называют квадратурной формулой замкнутого типа, и противном случае—открытого типа. Квадратурная формула называется точной для многочле- нов степени /г, если при замене функции f (х) произвольным многочленом Рк (х) степени k приближенное равенство (6.52) становится точным. Рассмотрим наиболее часто применяемые квадратурные формулы, являющиеся частными случаями формул Ньютона— Котеса при /? = 0, 1,2. Формула прямоугольников. Выберем произвольно отре- зок [х,; x,..J с: |а; b] длины h = х,+1 — х, и обозначим сре- дину этого отрезка х( 4- h/2 через х । . В формуле прямо- 1+ j- угольников определенный интеграл от функции f (х) на от- резке [х,; х1+1] приближенно выражается через значение функции в средней точке х. 2 отрезка ‘+ 2 интегрирования и его длину h: xt+i $ f(x)dxwf(x,)h. Xi ‘2 (6.53) 202
В данном случае / (х) аппроксимируется многочленом нуле- вой степени (k = 0). Вели / (х) >0 при х £ [х,; х,+1], то фор- мула (6.53) приближенно выражает площадь криволинейной трапеции, ограниченной графиком функции f (х) на отрезке 1х,; х,+1], через площадь прямоугольника, заштрихованного на рис. 18,а. Оценим погрешность формулы прямоугольников (6.53). Предположим, что функция / (х) имеет на отрезке [а; Ь] непре- рывную вторую производную. Запишем для нее формулу Тей- лора в окрестности точки х i с остаточным членом в форме Лагранжа, ограничиваясь тремя слагаемыми: где G [х,-; х£Ч)]. Тогда Учитывая (6.55) и (6.53), получим выражение для оста- точного члена формулы прямоугольников *(+1 f(x)dx-f (x i \h = ^f" &), [х.-; х,-+1]. (6.56) Таким образом, формула (6.53) будет тем точнее, чем меньше h. ь Для вычисления интеграла j/(x)dx разобьем отрезок а [а; Ь] на п равных частей точками х0 = а < xt < • • • х„ = b Г Г 203
с шагом h = (b — а)!п. Применяя свойство аддитивности опре- деленного интеграла относительно промежутка интегрирования ь п—I xi'4-i j f (х) dx = у J f (x) dx a i=0X( и формулу прямоугольников (6.53) для каждого частичного отрезка, получим составную формулу прямоугольников (или формулу средних): ь J /(*) dx = h ( / ---+ f (\_I+j))• (6>57> Остаточный член составной формулы прямоугольников (6.57) n-i R = S Ri = Я V" &>) + f" +•••+/" ^-01 = 1=0 п — 1 (b a)3 f (£г) __ i^b а ,с.. = =h ~24~ f <6-58> 1=0 где £ С [а; &] Была использована формула (6.56) и формула усреднения для непрерывной функции /"(х). На рис. 18,6 дана геометрическая интерпретация составной формулы прямоугольников: площадь криволинейной трапе- ции, ограниченной графиком функции f (х) на отрезке [а; Ь], приближенно заменяется суммой площадей заштрихованных прямоугольников. Формула прямоугольников (6.57) является квадратурной формулой открытого типа. Она точна для многочленов первой степени (их вторая производная равна нулю на |«; 61). Погреш- ность для дважды дифференцируемой на [«; Ь] функции f (х) равна О (/i2). Формула трапеций. Аппроксимируем функцию f (х) на отрезке [х/; х,+1] длины Л = х,+) —х, многочленом первой степени (/г = 1). Получим формулу трапеций «<+1 Г П , /(Xi)+/(xz+|) f(x)dx^h----------. (6.о9) Геометрическая интерпретация формулы (6.59) при f (х) > > 0 для х£ [х,; х,+1] дана на рис. 19,а: криволинейная тра- пеция приближенно заменяется прямолинейной трапецией. 204
Найдем выражение для остаточного члена формулы трапе- ций (6.59), предполагая непрерывность /" (х) на отрезке [о; bl. Подынтегральная функция f (х) на каждом отрезке [х,; х,+1] заменяется интерполяционным полиномом первой сте- пени Рг (х). Остаточный член интерполяционной формулы Ньютона (5.15) Л-го порядка имеет вид (6.9). Полагая в (6.9) k — 1, вычислим остаточный член формулы трапеций (6.59) на отрезке [х,; х,+11: *i+i 1 Ri = f R. (х) dx = Й2 f f" &) hdt = - ^ f" &), Xi 0 [xf; x1+i], i = 0, 1.......n — 1. Окончательное выражение для остаточного члена формулы трапеций Ri = J f (х) dx - h ^‘)+2Z(x»+i) = _ r £iE[Xi; x(+i], t = 0, 1, ..., n— 1. (6.60) Просуммировав значения (6.59) по всем частичным отрез- кам, получим составную формулу трапеций для интеграла от функции f (х) на отрезке [a; b] = |J kr; ’G'+i], где х, = <=о = а + ih {1 = 0, 1, ..., п — 1): ь j / (X) dx « h + f {Xl) + f (x2)+. . . +/ (x;1_,)) . (6.61) a 205
Найдем выражение для остаточного члена составной фор- мулы трапеций (6.61): 1=U =0 1=0 = (6.62) где еС[а; 6]. Формула трапеций (6.61) является квадратурной формулой замкнутого типа, она точна для многочленов первой сте- пени. Погрешность для дважды дифференцируемой на [а; 6] Функции / (х) равна О (h.2). Геометрическая интерпретация составной формулы трапеций приведена на рис. 19,6. Формула Симпсона. Разобьем интервал интегрирования [а; й] на четное число равных частей с шагом h = (Ь — а) /2п. На каждом отрезке [х(; х(-+2] длины 21г заменим функцию / (х) функцией квадратной параболы ср (х) = Ах2 + Вх + + С (k — 2), интерполирующей / (х) в узлах х,, x,+n х(-+2. Вычислим вначале площадь, ограниченную снизу отрез- ком [—/г; h] оси Ох, прямыми х = —й, х — h и параболой I) = Ах2 + Вх + С, учитывая, что f (х0) = Ah2 — Bh + С, ) (лд) = С, f (х2) = Ah2 + Bh + С. Получим j (Ах2 -|- Вх + С) dx = (/1 + В + Сх) + 2С/г = = | (2 Ah2 + 6С) = | (/ (х„) + 4/ (хг) + / (х2)). (6.63) Квадратурная формула Симпсона для отрезка [х(; х1+2] имеет вид: *<+? А7+'2 j f(x)dx^ j (Лх2 4- Вх + C)dx = XL Xf = |(/(x!) + 4/(x,:+1)+ /(x,+2)). (6.64) Геометрическая инерпретания формулы (6.64) дана на рис. 20,а. Найдем выражение для остаточного члена формулы Симп- сона. Предположим, что функция f (х) имеет на отрезке [х,; Л/+21 непрерывные производные до четвертого порядка. Формула Симпсона точна для всякого многочлена третьей степени. Поэтому полагаем в остаточном члене интерполя- 206
нионной формулы Ньютона (6.9) k = 3 и проинтегрируем его на отрезке [х,; xi+2] длины 2/г: *i-f-2 о /?< = J R3 (х) dx = Jz(<~ l)(<~2) (/~3- /IV&)hdt = -4 0 hb = -90/'V(^ Тогда разность X|+2 Ri = j f (*) dx— (Xi) + 4/ (x14_, + f (x,-+2)) = xi = - f1 v О Ъ G [x,-; xi+2], i = 0, 2..........2n — 2 (6.65) будет остаточным членом квадратурной формулы Симпсона (6.64) на отрезке [х,; х/+2]. Просуммировав значения (6.64) для интегралов по всем частичным отрезкам (/ -- 0, 2, .... 2п — 2), получим состав- ную квадратурную формулу Симпсона (или формулу пара- бол): ь J f (х) dx к 1/ (а) + 4/ (xj + 2/ (х2) + 4/ (х3) + °+ 2/ (х4) + .. . + 2/ (х2„_2) + 4/ (Х2,,-.) + / (Ь)]. (6.66) Геометрическая иллюстрация формулы (6.66) дана на рис. 20, б. Остаточный член составной квадратурной формулы Симпсона (6.66) на отрезке [a; ft] с учетом (6.65) i=0 i=0 1=0 = <6-67) 207
Формула Симпсона (6.66) является квадратурной формулой замкнутого типа, она точна для многочленов третьей степени (их четвертая производная равна нулю на [а; &]), погрешность для функции f (х), имеющей на [о; b] непрерывную производ- ную /iv(x), равна О (1т'). Сходимость квадратурных формул. Оценка погрешности по правилу Рунге. Формула прямоугольников (6.57) прибли- женно выражает определенный интеграл через интегральную сумму при равномерном разбиении отрезка [а; Ь] на части с шагом 1г. Формула трапеций (6.61) тоже является интеграль- ной суммой для функции f (х), если отрезок [а; Ь] разбить на части: Формула Симпсона (6.66) является линейной комбинацией формул прямоугольников и трапеций: 'з — з 'IT j <2> где /2 и /3 — приближенные значения интеграла ь J f (х) dx, полученные соответственно по формулам прямо- а угольников, трапеций и Симпсона. Следовательно, для любой непрерывной на [о; 6] функции f (х) приближенные значения интеграла, полученные по всем этим формулам, стремятся к точному значению при 1г -+ 0. Оценки погрешностей указанных квадратурных формул позволяют сделать вывод: для достаточно гладкой функции f (х) более точной является квадратурная формула Симпсона. Для недостаточно гладкой функции целесообразнее приме- нять самую простую квадратурную формулу, например прямо- угольников, требующую минимального объема вычислений. Оценка погрешности по (6.58), (6.62), (6.67) остаточных членов квадратурных формул часто оказывается малоэффек- тивной из-за трудностей, связанных с оценкой производных подынтегральной функции f (х). Поэтому на практике часто пользуются при оценке погрешности приемом, предложенным 1> Рунге. Обозначим через / точное значение интеграла f f(x)dx, а через Л, — его приближенное значение, вычисленное по од- ной из квадратурных формул с шагом h, через [щъ — при- 208
ближенное значение интеграла, вычисленное по той же фор- муле с шагом /г/2. Остаточный член каждой квадратурной формулы с шагом h и /г/2 на основании (6.58), (6.62) и (6.67) можно записать соответственно в виде I h\k Rh = h'<M, Rhri = ^) М, где k—порядок точности формулы; М—произведение посто- янной на производную /,(/;)(^). Вычислим приближенное значение интеграла по одной и той же квадратурной формуле сначала с шагом h, а затем с шагом /г/2. Получим Вычтем эти равенства: I h\k (2*— 1). Получим оценку погрешности по методу Рунге i^/2i = i^i(4y=!/ftgZift! • (6-68) Пользуясь формулой (6.68), можно уточнить приближен- ное значение интеграла, полагая 7 =-- Л/2 4- Rw = 7А/2 + . (6.69) Формулу (6.69) называют формулой экстраполяции по Ри- чардсону. Учитывая порядок точности квадратурных формул, выпи- шем приближенную оценку погрешности по методу Рунге для формул прямоугольников и трапеций (/г = 2): d —7 Л/1/2 ~----о--- и по формуле Симпсона (k = 4): D ~ 7,1/2 ~ Rhfi^ )5 (6.70) (6.71) Прием многократного уменьшения шага и оценки погреш- ности (6.68) можно запрограммировать и получить алгоритм автоматического выбора шага /г для приближенного вычисле- ния интеграла с заданной точностью. 209
Квадратурная формула Гаусса. Рассмотрим задачу об оптимальном выборе узлов х( и коэффициентов А; в квадра- турной формуле h § f (х) dx^y, A if (х,), П 1=1 чтобы она была точной для всякого многочлена наивысшей возможной степени 2ц — 1. Отрезок интегрирования [о; 6] линейным преобразованием приведем к [—1; 1]. Формула (6.52) содержит 2ц неизвестных А, и х(- (i = 1, 2, .... п). По узлам xt построим многочлен Р„ (х) = (х —X]) (х — х2)... ... (х— х„). Чтобы формула । п j) f(x)dx=yAif(Xi) (6.72) -1 i=i имела степень точности 2ц — 1, необходимо и достаточно, чтобы она удовлетворяла условиям интерполяции в узлах х; и многочлен Рп (х) был ортогональным на [—1; 1] с постоян- ным весом ко всякому многочлену степени, меньшей п [24]. Указанным условиям удовлетворяют полиномы Лежандра (5.62) W = ~2^Г fail (%2 — О'1- Узлы Xi квадратурной формулы (6.72) являются нулями полинома Лежандра Рп (х), т. е. определяются из условий Рп (х;) = 0 (i = 1, 2, ... , ц). (6.73) Коэффициенты А, вычисляются по формулам [2] 1 § (х — х,). .. (х — х(._!) (х — xi+1)... (х — х„) dx Я - = ^J_____________________________________ ‘ (*/ —Х1)...(Х, —Xj-JfXj—х1+1)...(х( —х„) ’ или 9 = (I -х()2[Р; (Х<)]2 (1 = 2’ ••,«) (6.74) Квадратурная формула (6.72), узлы которой х, являются нулями полинома Лежандра, а коэффициенты Л,- вычисляются по формулам (6.74), называется квадратурной формулой Гаусса, имеющей высокую точность при сравнительно малом числе узлов. 210
Формула Гаусса для отрезка интегрирования [а; &] может быть получена из (6.72) подстановкой ti = h_^. + Xi (j = 1, 2............п), (6.75) тогда Ь п (б-76) а !— 1 Эту формулу целесообразно применять только в случае хорошей гладкости функции f (х) па отрезке [а; Ь]. Неудоб- ства ее применения состоят в том, что нули х, и коэффициенты А,, вообще говоря,— иррациональные числа. Составная квад- ратурная формула Гаусса в практических вычислениях ис- пользуется крайне редко. Квадратурная формула Гаусса является формулой откры- того типа. Формула прямоугольников является частным слу- чаем формулы Гаусса при п = 1. Остаточный член квадратурной формулы Гаусса (6.76) си узлами [4] Z? — ~ а)2"+1 6 г \а- ш (6 77) <п I (2/1 !)]3 (2.-1+ 1) ’ (О.//) Для частных случаев п = 2, 3, 4 получим: В табл, 6.1 помещены значения узлов х, и весов А, фор- мул Гаусса для п с 8. Значения узлов ti для любого отрезка la; М определяются по формуле (6.75), а затем вычисляются значения подынтегральной функции f (tj для квадратурной формулы (6.76). Численное интегрирование с помощью сплайнов. Рассмот- рим квадратурную формулу, использующую кубическую сплайн-интерполяцию подынтегральной функции f (х) на от- резке [х,; х,+1]. Выберем кусочно-полиномиальное представ- ление сплайна (5.102) S3 (х) = а,-0 4- а,, (х — х,) + п,? (х — х,)2 + ап (х — х,)3, гд? х£|х,; x,4-i], интерполирующего функцию/(х) в узлах х- (( = 0, 1, 2, ...» N). 211
Т а б л и ц а 6.1 п xi Л1 1 х4 = 0 Л1 = 2 2 _.V1 = х2 = 0,57735027 Л1 = Л2 = 1 3 -х4 = х3 = 0,77459667 х2 = 0 А, = А3 = 0,55555556 = 13 9 А2 = 0,88888889 = 4 _%1 = х4 = 0,86113631 —х2 = х3 = 0,33998104 Л4 = Л4 = 0,34785484 Л2 = Л3 = 0,65214516 5 —Xi = х5 = 0,90617985 —х2 = х4 = 0,53846931 х3 = 0 А3 = Л5= 0,23692688 А2 = А4 = 0,47862868 А3 = 0,56888889 6 —xt = х3 = 0,93246951 -х2 = х6 = 0,66120939 -х3 = х4 = 0,23861919 Л1 = Лв= 0,17132450 Л2 = Л6 = 0,36076158 ЛЭ = Л4 = 0,46791394 7 -Xj = х,= 0,94910791 -х2 = хй =0,74153119 —хэ = х6 = 0,40584515 х4 = 0 ,44 = А, = 0,12948496 Л2 = Ив = 0,27970540 Л3 = Л6 = 0,38183006 Л4 = 0,41795918 8 —xt = х8 = 0,96028986 —х2 = х, = 0,79666648 —х3 = хв = 0,52553242 -х4 = х5 = 0,18343464 Л4 = Аа = 0,10122854 Л2 = Л7 = 0,22238104 Л3 = Ав =0,31370664 Л4 = Л5 = 0,36268378 212
Запишем приближенную формулу *1+1 *+1 ^4-1 j f (x)dx Й j S3 (x) dx = j (cz10 + an (x — x,) + + ai2 (x — X,)2 + an. (x — x,)3) dx = aiOht + Л? ft? h*, + й.ц -j- + Я/2 у + an . (6.78) Учитывая выражение (5.108) для коэффициентов сплайна ,, . I (V+i) - I (*<) hi ,о, .. . Я/о = f (xi), an =--------(2Mi + Мж), Mi 4+i - Mt ai2 - -2-, an - , формулу (6.78) после приведения подобных преобразуем к виду *1+! 3 (* . . . , , f (Xi) + f (*t’+1) . . . . . . . ,c -7Q4 J f(x)dxmhi------2—1 24 (Mi + Mf+1), (6.79) Xi где hi = x;+i — xi, Mi = S" (x^. Просуммируем интегралы (6.79) по всем частичным отрез- кам, полагая i == 0, 1, ..., N — 1, а = х0, Ь — х^. Получим сплайн-квадратуру b N—1 N—I ,1 f^dx-2^S а (=0 1=0 (6.80) Здесь первое слагаемое в случае постоянного шага есть состав- ная формула трапеций (6.61), второе слагаемое определяет поправку к ней. Если производная /" (х) непрерывна на [о; &], то для поправочного члена справедливо соотношение где [х,; х(-+1]. Таким образом, поправочный член сплайн-квадратуры (6.80) аппроксимирует ошибку (6.60) формулы трапеций. Здесь моменты М, вычисляются с помощью алгоритмов, опи- санных в гл. 5. Если для сплайна S3 (х) воспользоваться его представле- нием (5.120) через наклоны mt - S- (х,) {1=0, 1, AQ, 213
то аналогично получаем сплайн-квадратуру в виде h N-l W-l j f (x) dx « у V (f (x,) + f (xI + l)) + У Л? (rm — m,+I) a i = 0 (— J (6.81) Если сетка равномерна, то эта формула упрощается к виду b N—i J / (х) dx « (/ (а) + / (Ь)) + hYf (*.) + ~ (т0 - mN). (6.82) а (=1 Если сплайн S3 (х) удовлетворяет на отрезке [а; Ь] крае- вому условию Его типа, то та = f (а) и т,у = [' (Ь); при этом не нужно определять параметры сплайна. При краевых условиях других типов та и mN можно заменить конечными разностями. Если / (х) имеет на отрезке [а; /?] непрерывную производ- ную /IV (х), тосплайн-квадратуры (6.80) и (6.82) обеспечивают па равномерной сетке точность порядка О (/i4). 6. 4. Лабораторная работа 9. Численное интегрирование функции одной переменной Изложим реализацию вычисления определенных интегра- лов по описанным в настоящей главе квадратурным формулам на программируемых микрокалькуляторах. Программа 29 вычисления определенного интеграла по составной квадратурной формуле прямоугольников (6.57) (формуле средних): Сх ПД ИПВ ИПА — ИПО ч- ПС 2 4- ИПА + ПА ПП 23 ИПД + ПД ИПС FLO 10 X С/П В/О Подпрограмма вычисления Распределение регистров памяти: Номер регистра 0 л В С д Переменная п, счетчик цикла , h а, - b , b — а п — п 214
Инструкция. 1. Составить подпрограмму вычисления зна- чений f (х). Значение х хранится в РХ п РА, свободны реги- стры 1—9. 2. В режиме программирования (F ПРГ) ввести про- грамму. 3. В режиме автоматической работы (F АВТ) ввести ис- ходные данные: (п) ПО (а) ПА (Ь) ПВ 4. Нажать клавиши В/О С/П, после останова прочесть приближенное значение интеграла. Контрольный пример. Вычислить значение определенного интеграла 1 J У1 + х4 dx по квадратурной формуле прямоугольников (6.57)°, пола- С гая п = 6. Подпрограмма вычисления / (х): FX2 FA2 1 + FK В/О. Нажмем клавиши F ПРГ и клавиши программы. Далее введем исходные данные: F АВТ О ПА 1 ПВ 6 ПО. Нажав кла- виши В/О С/П, через 35 с прочтем ответ: 1 j У1 + х4 dx « 1,0877925. о Для иллюстрации точности вычислений по квадратурной формуле прямоугольников (6.57) вычислим значение интеграла; т^- = In 2 = 0,69314717. J 1 +х Вычисления по программе 29 дают результат f dx ,) 1 + х « 0,6922843, т. е. два десятичных знака совпадают с точным значением. Программа .30 вычисления определенного интеграла ь /(х) dx по составной квадратурной формуле трапеций а ИПВ ИПА - ИПС 4 ПЗ ПП 27 0 4- П2 ИПА ИПЗ + ПА ПП 27 f ИП2 + FLO 09 ИПЗ х 2 4- С/П ... . В/О Подпрограмма [ (х) 215
Распределение регистров памяти: Номер регистра 0 2 3 А в с Переменная счетчик цикла v А ,7 (Xi) , b — а h = п а, х ь п Инструкция. 1. Составить подпрограмму вычисления зна- чения / (х). Значение х хранится в РА. 2. В режиме программирования (F ПРГ) ввести про- грамму и подпрограмму. 3. В режиме автоматической работы (F АВТ) ввести ис- ходные данные: (а) ПА (Ь) ПВ (м) ПС ПО. 4. Нажать клавиши В/О С/П. По окончании вычислений прочесть на индикаторе приближенное значение интеграла. г Контрольный пример. Вычислить j У1 + х4 dx по квадратурной фор- 0 муле трапеций (6.61), полагая п = 6. Оценить погрешность по правилу Рунге двойным пересчетом, положив п= 12. Подпрограмма вычисления / (х): ИПА FX2 FX2 1 + F/ В/О. После ввода программы введем исходные данные: F АВТ О ПА 1 ПВ 6 ПС ПО Нажав клавиши В/О С/П, через 40 с прочтем ответ: 1 /Т+Т4 dx« 1,0927029. о Повторим вычисления при п = 12: 0 ПА 1 ПВ 12 ПС ПО, В/О С/П После вычислений (примерно 75 с) прочтем результат: 1 j /1 + X4 dx « 1,0902478. о По формуле (6.70) определим приближенную оценку погрешно- сти по Рунге: = —8,1836666 • 10-4. Экстраполяцией по Ри- чардсону уточним значение интеграла J 1,0894294 1,089. Резуль- тат округлили до трех десятичных знаков. Вычисляя значение интеграла J 1 * по- программе 30 при п=6, о получим результат / ~ 0,6948773 (совпадает с точным значением два десятичных знака). 216
Сравнение аналогичного результата для формулы прямоугольни- ков свидетельствует о двустороннем приближении интеграла с помо- щью квадратурных формул прямоугольников и трапеций. Программа 31 вычисления определенного интеграла по составной квадратурной формуле Симпсона (6.66): Адрес Команда Код Адрес Команда Код Адрес Команда Код 00 ИПВ 6L 12 12 24 * - 13 01 ИПА 6— 13 ИП2 62 25 С/П 50 02 — 11 14 ПП 53 26 10 03 ипс 6С 15 26 26 27 П2 42 04 —— 13 16 Ф 0Е 28 ИПА 6- 05 пз 43 17 ИП2 62 29 ИПЗ 63 06 ПП 53 18 + 10 30 + 10 07 32 32 19 FLO 5Г 31 ПА 4— 08 0 00 20 09 09 32 09 ПП 53 21 ИПЗ 63 . . • ••• |/« « . 10 26 26 22 X 12 . . . 11 4 04 23 3 03 В/О 52 Распределение регистров памяти: Номер регистра 0 2 3 А в с Переменная nt счетчик цикла ЦЛНх.) h = b-^ п at х ь 2л Инструкция. 1. Составить подпрограмму вычисления зна- чений / (х). Значение х хранится в РА. 2. В режиме программирования (F ПРГ). ввести про- грамму и подпрограмму. 3. В режиме автоматической работы (F АВТ) ввести ис- ходные данные: (о) ПА (Ь) ПВ (2л) ПС (л) ПО 4. Нажать клавиши В/О С/П. После ОСТАНОВа про- честь на индикаторе ответ. । Контрольный пример. Вычислить + х4 dx по составной ква- о дратурной формуле Симпсона (6.66) при п = 6 и п = 12. Оценить по- грешность по правилу Рунге. 217
Подпрограмма вычисления / (х): ИПА Fx2 Fx2 1 + FK В/О. После ввода программы введем „сходные данные: F АВТ О ПА 1 ПВ 6 ПС 3 ПО В/О С/П. Через 40 с получим резуль- ) тат: J/1 + х4 dx « 1,0894286. о Повторим вычисления при п = 12. После вычислений (примерно 1 через 70 с) получим: f'Kl-j-x4 dx « 1,0894293. 'о Приближенная оценка погрешности (6.71) по методу Рунге Rh/2 « 4,6666666 • IO-8. Экстраполяцией по Ричардсону уточним значение интеграла 1 га 1,089429. Результат округлен до шести десятичных знаков. 1 Вычисления по программе 31 С dx интеграла jy— о 1 T при п = 6 дает результат: I ~ 0,69316973 (с точным значением совпадают 4 деся тпчных знака). Программа 32 вычисления определенного интеграла по квадратурной формуле Гаусса (6.76) для числа узлов п < 8: Адрес Команда Код Адрес Команда Код Адрес Команда Код 00 сх 0 ; 13 ИП6 66 26 ИП9 69 01 ПД 4Г 14 12 27 + 10 02 ИП6 66 15 + 10 28 КИПО ГО 03 ИПЗ 63 16 ПП 53 29 X 12 04 — 11 17 38 38 30 ипд ог 05 2 02 18 П9 49- 31 + 10 06 13 19 ИПЗ 63 32 ПД 4Г 07 П6 46 20 КИП| ГЕ 33 FLO 5 Г 08 ИПЗ 63 21 ИП6 66 34 11 11 09 + 10 22 X 12 35 ИП6 66 10 ПЗ 43 23 — 11 36 X 12 11 ИПЗ 63 24 ПП 53 37 С/П 50 12 кипо ГО 25 38 38 38 :::)/« В/О 52 Распределение регистров памяти: Номер регистра 0 1,2; 4,5; 7,8 А, В 3 6 Д Переменная счетчик цикла —xi, At Ь + а а’ 2 , b — а Ь' 2 S Aif(xi) 218
Инструкция. 1. Составить подпрограмму вычисления зна- чений f (х). Значение аргумента хранится в регистре X, сво- боден регистр С. 2. В режиме программирования (F ПРГ) ввести про- грамму и подпрограмму. 3. В режиме автоматической работы (F АВТ) ввести исходные данные: (3/г) ПО (п) ПЗ (Ь) П6 (At) П1 (—*1) П2 (А2) П4 (—х2) П5 (А3) П7 (—х3) П8. Здесь k = если п четно, либо k — если п нечетно. При вводе А , —х, регистры с номерами, кратными трем, пропускаются. Последней вводится пара Al;, лд, при этом, если k нечетно, то вместо Ak следует вводить А/,/2. 4. Осуществить пуск программы В/О С/П. После окончания вычислений прочесть на индикаторе результат. 1 Контрольный пример. Вычислить J 1 _|_ х4 dx по квадратурной о формуле Гаусса (6.76), полагая п = 3, 5, 8. _ Программа вычисления / (х): FX2 FX2 1 + F|X В/О- После ввода программы при п = 3 введем исходные данные: F АВТ 6 ПО О ПЗ 1 П6 0,5555555 П1 0,7745967 П2 0,4444444 П4 0 П5. Нажав клавиши В/О С/П, через 25 с прочтем ответ 1 [ /1 + х4 dx ~ 1,0894588. V 0 При п = 5 ввод исходных данных 9 ПО 0 ПЗ 1 П6 0.2369269 П1 0.9061798 П2 0.47»6287 П4 0.5384693 П5 0.2844444 П7 0 П8 В/О С/П Через 35 с прочтем ответ: 1 [ }A\~+Udx ~ 1,0894299. о При п = 8 ввод исходных данных 12 ПО 0 ПЗ 1 П6 0.1012285 П1 0.9602899 П2 0.2223810 П4 0.7966665 П5 219
0.3137066 П7 0.5255324 П8 0.3626838 ПА 0.1834346 ПВ В/О С/П Через 50 с получим результат 1 J VT+^dx « 1,0894293. о По квадратурной формуле Гаусса получим при а = 6 значение 1 С dx определенного интеграла J —, - ~ 0,69314715, т. е. семь десятичных знаков совпадают с точным значением интеграла. Анализ полученных результатов свидетельствует о том, что для функции / (х), имеющей производные высоких порядков, формула Гаусса дает результаты намного точнее, чем остальные квадратурные формулы. Для менее гладких функций целесообразнее использовать квадратурные формулы прямоугольников или трапеций. Выбор шага интегрирования для достижения заданной точности вычислений можно проводить для каждой квадратурной формулы по оценке ее остаточного члена. В рассмотренном выше примере /(,) = /!+«.; ГМ-—, к1 1 Л ) Максимальное значение второй производной на отрезке (0; 1) равно 2, т. е. /" (х) < 2 при х g [0; 1]. Для квадратурной формулы прямо- угольников получим оценку остаточного члена I RI = (6~24a) h21 Г (5) I < < 0,08/12. При числе узлов п = 6 имеем h 0,17, поэтому | R ] < 0,0023 < <0,01, т. е. два десятичных знака будут точными. Для достижения точности, например, е = 10’4, учитывая погрешность округлений, выберем величину шага из условия | R | < 0,5 10~4, отсюда 0,08/i2 < < 0,5 10~4. Таким образом, для достижения указанной точности нужно вы- брать шаг h < 0,025, т. е. п = = 40, вычисления проводить с пятью знаками после запятой. Аналогично оценивается погрешность и осуществляется выбор шага для квадратурных формул трапеций и Симпсона. Задания к лабораторной работе 9. Поставить переключатель Р—Г в положение Р. Вычислить приближенно определенные интегралы: а) по формуле Симпсона, полагая 2п = 6; б) по формуле Симпсона, полагая 2л = 12, оцепить погрешность по правилу Рунге, уточнить результат; в) по формуле прямоугольников или трапеций с точностью = 10"2, определяя величину шага Л по оценке остаточного члена; г) по квадратурной формуле Гаусса, полагая п = 3; 220
д) сравнить результаты, полученные по ным формулам, и время вычислений: различным квадратур- х3 dx; 2 .. f sin х , 4) | -----dx; J х 1 1 7) J У 1 4- sin2 x dx; о з 2) J У1 -f- x3 dx; i 2 f cos x , 5)J—dx' 1 3 8) J У1 4- x4 dx; i 10) j cos л2 dx; о л T 13) j У2 4- sin x dx; о 2 16) у УI 4- in x dx; 1 л 2 19) j eC0SXdx; о 1 22) J Ух cos x dx; о i 25) j УТ+^dx; о i 11) J e~~xZ dx; о i 14) cos ex dx; о 17) J У1 4- In x dx; i 2 20) J У In x dx; 1 i 23) J Ух sin x dx; о 1 26) J УТ+^dx; о 3) ( dx; J x C) Г dx 1 J Inx ’ 1 9) j sinx2dx; (J 12) f У 2 4- cos x dx; vo 1 15) J sin e* dx; о л ~2 18) J e5inxrfx; о i 21) j yic&dx; о 24) 28) dx; 27) j tx2dx; 0 qr - 30) e ' dx. 1 Глава 7. ЧИСЛЕННЫЕ МЕТОДЫ МИНИМИЗАЦИИ ФУНКЦИИ 7.1. Постановка задачи Многие инженерные и математические задачи сводятся к нахождению минимума функции нескольких переменных. Основной целью решения задач управления некоторыми отрас- 221
лями промышленности, сельского хозяйства, транспорта обычно является достижение некоторого оптимального режима работы. В этих случаях задачи минимизации обычно назы- вают задачами оптимизации, а минимизируемую функцию — целевой функцией. Пусть функция / (х) = f (xJ( х2, ..., хп) п переменных опре- делена п непрерывна в области D cz R”. Точка х* = (х*, х*, ..., х*) £ D называется точкой локального минимума (мак- симума) функции / (х), если существует некоторая е. — окре- стность точки х*, такая, что для всех х = (хь х2, ..., х„) из этой окрестности выполняются неравенства f(x)>f(x*) (/(X) < / (X*)), Л) I Xt — x'i i < е, i = 1, 2, ..., п. Необходимые условия экстремума дифференцируемой функ- ции / (х), как известно, можно представить в виде системы п нелинейных уравнений Щ, ’ дх, Ь...................дхп ~ U (7.2) Точки, определяющие'решение системы (7.2), называются стационарными. Если в окрестности р (х°) стационарной точки х° = (х1?, ..., х,)) функция f (х) является выпуклой, т. е. для любого О < а с 1 / (ах1 4- (1 — а) х2) < а/(хх) (1 — а) / (х2), х1, х2 Ср (х°), (7.3) то стационарная точка х° является точкой минимума. В част- ности, если в окрестности р (х°) стационарной точки х° функ- ция / (х) дважды непрерывно дифференцируема и ее матрица Г ессе положительно определена в х°, то функция f (х) будет выпук- лой, а х° — точкой минимума. Чтобы симметрическая матрица А = [щ-J (ап = а/() была положительно определенной, необходимо и достаточно, чтобы каждый из ее главных миноров аи, Я11 0,2 , ..., det А 1Я21 агг| был положителен (критерий Сильвестра). 222
Решение системы нелинейных уравнений (7.2) и проверка положительной определенности матрицы (7.4) требуют боль- шого объема вычислений. При этом часто встречаются недиф- ференцируемые функции, либо функции, производные кото- рых записываются громоздкими аналитическими выраже- ниями. Поэтому боЛее эффективными являются численные методы решения задачи, не требующие проверки условий (7.3), (7.4). Численное решение задач минимизации сводится к по- строению итераций х’1+1 = х'1 — d'1 таких, что последовательность (л1, ..., х", ...} является минимизирующей, г. е. lim х'г = х*, min f (х) = f (х*). П-оо x£D В зависимости от характера построения dn численные методы разделяются на прямые (без использования производ- ных), методы спуска (с использованием первых производных) и методы с использованием вторых производных. Методы минимизации изложены в литературе [35, 6]. 7.2. Одномерная минимизация функции Рассмотрим численные методы нахождения минимума функ- ции f (х) одной действительной переменной. Предположим, что на отрезке [а; функция / (х) унимодальна, т. е. существует единственная точка х* Q [а; Ь], в которой функция принимает минимальное значение, и f (х) строго убывает для х <х* и строго возрастает для х > х*. Унимодальная функция f (х) может быть недифференцируемой на [я; Ь]. Важно, чтобы она была только определена в каждой точке отрезка. Страте- гия поиска минимума заключается в выборе такой последова- тельности точек хр х2, ..., хп, что при некотором i точка мини- мума х* принадлежит отрезку [х,_р х1+1]. Интервал [х(_р х,+11 называют интервалом неопределенности. Поиск продол- жается до тех пор, пока длина интервала неопределенности не станет меньше заданного числа е. Для вычисления минимума функции f (х) на микрокальку- ляторе целесообразно использовать методы, не требующие вычисления производных, в частности, методы деления от- резка пополам и золотого сечения. Они сходятся медленно, но просты в реализации. 223
Метод деления отрезка пополам. Пусть f (х) унимодальна на [а; Ь\ и x*Q(a\ b) — точка минимума / (х). Выберем доста- точно малое положительное число 6, 0<6<Ь — а и опре- делим точки *1 = -4-------- > Х2 = --------2---- (7.5) Вычислим значения /(%]), f (х2) и сравним их между собой. Если f (xjO (х2), то полагаем а{ =а, bt = х2, иначе пола- гаем Oj = X], b' = Ь. Из определения унимодальной функции следует, что х*С|а,; Заменим в формулах (7.5) а и b на о, и Ьх соответственно, вычислим новые точки х3, х4 и новый отрезок [а2; Ь2] такой, что х* £ [о2; Ь2]. После повторения таких вычислений п раз найдем отрезок [ап; Ьп\ длины Ьц С1ц (1 2п) б, содержащий точку минимума х*. Если в качестве точки минимума принять середину этого отрезка, т. е. положить то абсолютная погрешность значения х* У* *1 ап Ь —а , г. I X — х,;| < —2— < -^2] + б. (7.7) Для получения значения делений отрезка при любом х* с точностью е количество п 0<6<е выбираем из условия (7.8) Метод деления отрезка пополам всегда приводит к опреде- лению точки локального минимума с заданной точностью, но он требует большого числа вычислений функции f (х). Метод золотого сечения. Метод применим к унимодальным на отрезке [а; функциям. Золотым сечением отрезка [а; Ь} называется деление его точкой с на две неравные части так, чтобы отношение всего отрезка к большей части равнялось отношению большей части к меньшей, т. е. (Ь — а) : (Ь — с) — = (Ь — с) : (с — а). Число = 1,6180... называется зо- лотым отношением. 224
Определим две точки с и d: с = а + (Ь — а)ж 0,618а + 0,382ft, d - а + ft — с = а + f—’ — а) ~ 0,332а + 0,618ft, с< d. Они реализуют золотое сечение отрезка [a; ft], поскольку Ь — а b — с b — а d — а b — с с — a d — а b — d 1,6180339... . Кроме того, точка с осуществляет золотое сечение отрезка [a; d], а точка d — золотое сечение отрезка [с; ft]. Если / (с) > /(d), то полагаем а, = с, =b, Ci = d, d, = а, 4- ft, — d = 0,382a! 4- 0,618ft,. Если /(c)</(d), то полагаем a, = a, bi = d, di — c, c1 = al+bl — c = 0,618a, 4- 0,382ft,, Точка минимума x* £ [a,; ft,]. Точки с, и d, определяют золотое сечение отрезка [a,, ft,]. Сравнивая значения функции в точках с, и d,, определяем отрезок [а2; ft2] такой, что х*С(а2; ft2] и т. д. При этом ft, —а,= —g—(ft —о)........ bn — an=\J——) (Ь — а). Процесс продолжаем до тех пор, пока не получим интервал неопределенности заданной длины 2е. На каждом шаге метода золотого сечения требуется вычислить значение функции только в одной точке, что обеспечивает его преимущество по сравнению с методом деления отрезка пополам. 7.3. Лабораторгтая работа 10. Одномерная минимизация функции Приведем описание алгоритма и программу поиска мини- мума функции / (х) методом золотого сечения. Пусть е — тре- буемая полуширина интервала неопределенности. 1 п 1 К 5—I , h—а а 4-1> 1. Вычислить: л = —;; h = —; z = —5— . 4 4 “ 2. Если h < е, перейти к п. 6. 5 6-467 225
Если h > е, вычислить: g = ЛХ3, и = / (z — g), v = = f(z + g). 3. Вычислить о = и — v. 4. Если 6 = 0, положить h = g; перейти к п. 2; если 6 0, положить h — h\. 5. Если h с е, перейти к п. 6. Если h > е, то: вычислить g =/г??; если 6 <0, положить v = и, вычислить ы = = f (z — g); если 6 > 0, положить и = V, вычислить v = = f (z + g); перейти к п. 3. 6. Положить х* = г. Распределение регистров памяти: Номер регистра 7 8 9 Л В с д 0-6 Переменная (2е)2 А, = &п — Cltl ап Ьп f ы Ж) свободны Инструкция. Аргумент х для вычисления значения f (х) хра- нится в регистре X. (а) ПА (6) ПВ (2е) В/О С/П. Программа 33 поиска минимума функции методом золотого сечения. Fx2 П7 5 F / 1 — 2 ИПА — П9 ПП 42 ПП 60 / —/ П9 ИПС ИПД — FX#=0 09 ИП9 /—/ ПП 44 БП 17 ПП БП 19 ИПА ИП9 ИП9 FX2 ИП7 F, 2 4- + С/П ИП9 ИП8 ИПА ИП9 + ПА ПП 76 ПС одной переменной -т- П8 ИПВ ПП 68 ИП9 FX<0 36 ИПВ 42 ПП 60 — Fx<0 55 X П9 В/О В/О ИПВ ИП9 — НО 1111 /0 Контрольный пример. НД Найти Подпрограмма f(x) минимум функции f (х) = 1 X2 г — — sin х па промежутке [0,5; 1] с точностью е = 10 2. Подпрограмма вычисления f (х): F sin FBX FX2 2 ч- - /-/ В/О После ввода программы и подпрограммы перейдем в режим авто- матической работы, введем исходные данные и приступим к вычисле- ниям: 0,5 ПА 1 ПВ 0.02 В/О С/П. Через 2 мин поочтем результат: х* = 0,738 ~ 0,74. 226
Для вычисления значения [ (х*) нажмем клавиши Ы1 76 ПП ... ПП и прочтем; / (х*) = —0,4005. 7 раз /min = Ж?4) = -0.4005. Отметим, что при необходимости программу можно сократить, ]/ j отбросив команды 02—08. При этом значение X =---------— следует вычислить и занести в Р5 в автоматическом режиме, все адреса под- программ, условных и безусловных Задания к лабораторной работе на промежутке [а; 6] с точностью е 1) = + [-1; 0]; 2) fW = e* + l, [0,5; lj; 3) f (к) = ex — Inx, [0,3; 1]; 4) f (x) = e* + -J-: ,[-0,5; 0,5]; X “I- 1 5) H*) = tgx + 7. [0.5; 1J; 6) f (x) = igx 4-e-x + x, [—1; 0]; 7) f (x) = x2 4- sin x, [—1; 0[; 8) f (x) = ex — sin x, [0; 1]; 9) I (x) = x4 -4 2x2 4- 4x, [—1; 0]; 10) f(x) = xex4-x2, [—1; 0]; H) / (x) =— x, [—!; -0.5]; 12) Нх) = х4-Г^. [1,5; 2,5]; 13) /(x) =x4- ln2x, [0,3; 1]; 14) f(x) = x—Inlnx, [1,3; 2,3]; “•'w-'+sar-I0A '•* 16) f (x) = e-x 4- x2, [0; 1]; 17) / (x)=e-x-l, [-1; -0,5]; переходов уменьшатся па 7. 10. Найти минимум функции f (х) = 10~2. 1 18) f (x) = e* 4-lnx, [1; 3J; 19) / (х) = е~х 4-j—J— ,[-0.5; 0,5]; 20) /(x) = -tgx--L х £ [—1; —0,5]; 21) / (х) = ех — tgx — х, [0; 1]; 22) /(х) = х2 —sinx, [0; 1]; 23) / (х) = е-х 4- sin х, [—1; 0]; 24) / (х) = х44-2х2 —4х, [0; 1]; 25) [ (х) = х2 — хе-х, [0; 1]; 26) /(х) = х4-^-, [0,5; 1]; 27) f (х) = 1 - -Д- , [0,3; 0,7]; 28) /(х) = у4-1п2х, [1; 3]; 1 29) /(х) =е х + Inx, [I; 3J; 30) /(х) = ех-1 4- 1 , [0,5; 1,5]. 7.4. Метод покоординатного спуска Наиболее простым из прямых методов поиска минимума функции нескольких переменных является метод покоорди- натного спуска. Изложим вначале идею .метода для случая функции двух переменных f (х, у). Выберем начальное приближение Мо (х°, у0). Зафиксируем у° и найдем минимум функции одной переменной f (х, у°). 8* 227
Пусть он достигается при х = х1. Вдоль прямой, параллель- ной оси ОХ, осуществляем спуск б точку Мх (х1, у0). Фикси- руем х1 и находим минимум функции одной переменной f (х1, у). Пусть это будет у1. Из точки (х1, у0) движемся вдоль прямой, параллельной осп OY, к точке /И2 (х1, у1). Затем опять осуществляем спуск из точки /И2 вдоль прямей параллельной оси ОХ и т. д, (рис. 21). Рис. 21 линией уровня, проходящей полняются условия [19]: Известно [19], что если функция / (х, у) имеет непре- рывные вторые производные в окрестности минимума, то при соответствующем выборе начального приближения (х°, у0) спуск по координатам сходится к минимуму. В част- ности, метод сходится, если в области D, ограниченной через точку Мо (х°, у0), вы- ТОО) Частные производные функции стремятся к нулю: 1 /х W i < Ф 'fx W G4,)I < qk\ fy (Мй) | -> ->0 при k -> oo, (7.11) где Q<.q= <1, т. e. метод сходится co скоростью гео- метрической прогрессии. Известны некоторые модификации метода покоординатного спуска, в частности метод покоординатного спуска с постоян- ным шагом. В этом случае не требуется на каждом шаге нахо- дить минимум функции одной переменной f (х, у*-1) или / (х", у), а спуск в направлении координатных осей осуществ- ляется в сторону убывания функции с постоянным шагом /1, т. е. xH-i = xk + hi, i= 1, 2, ... , m; 1 yfr+l _ yk /гГ) r _ 1 , 2, ... p, J ' ' Количество шагов спуска tn и p по каждой координате выбирается из условия /(х* + /гт, у") </(**, У*)’, f(xk+'; у* + hp) < f(xl;+', ук). (7.13) Как только функция /(х, у) перестает убывать, спуск пре- кращают. 228
Метод покоординатного спуска легко обобщается на случай функции п переменных / (хх, х2, . . . , х„). На k-м шаге спуск по координате х, осуществляется из условия минимума функции одной переменной хд f(4 x't......xLi, xz, x-Д’.....X-’) (7.14) и найденное значение х(- обозначается х/. Заметим, что метод покоординатного спуска для минимиза- ции функции п переменных f (х) = (Ах, х) — 2 (&, х), х = = (хь х„) совпадает с итерационным методом Зейделя для системы линейных уравнений Ах — Ь, в то время как метод градиентного спуска (см. п. 7.5) эквивалентен методу простой итерации. 7.5. Метод градиентного спуска Метод определения минимума функции f (х), х = = (хр х2,..., х„), называемый методом градиентного или наи- скорейшего спуска, предложен Коши. Для минимизации по методу спуска выбирается началь- ная точка х° = (х?, х”, .... х°) (обычно в соответствии с физи- ческим смыслом задачи). Функ- ция f (х) = f (х°) определяет У в n-мерном пространстве гипер- поверхность, градиент которой указывает направление наибыст- рейшего возрастания функции. Поэтому в направлении — grad / (х°) функция быстрее всего убывает при бесконечно ма- лом движении из данной точки. Спуск по этому направлению до О Рлс. 22 минимума определяет повое при- ближение х1. В этой точке снова определяется градиент и осуществляется спуск в направлении антиградиента. Случай п = 2 представлен на рис. 22. Искомый вектор х последовательно уточняется на k-й итерации метода градиентного спуска по формуле хк+' = xk — hk grad / (хк), (£ — 0,1,2...), (7.15) где xk = (х*, х2, .... х''), / д[ (?, ... , /’) grad/(x*) = 1(1 дх п> df^*, • <4 ]' 229
ak— оптимальный шаг для /г-й итерации, определяемый из условия <р(/гА.) =- min ср (/г) = min f(xk— h grad f (л*)). (7.16) h>0 Таким образом, на каждом шаге градиентного спуска тре- буется решать еще задачу минимизации функции одной пере- менной (7.16) каким-либо численным методом. В частности, можно разложить функцию ср (Л) в ряд Тейлора, ограничив- шись членами второго порядка, и определить hk из условия = 0. Однако такой метод приводит к очень громоздким вычислениям. При этом необходимо учитывать также трудо- емкость вычисления значений функции f (х) и ее градиента в то4ках xk. Поэтому на практике часто hK выбирают эмпири- ческим путем. Осуществляется спуск при произвольном hk\ если значение функции f (л*+1) уменьшится, то переходим к следующему шагу спуска, если же f (л*41) не убывает, то уменьшаем шаг Л*. Следует учитывать, что если hk выбрать очень малым, то это приводит к существенному увеличению объема вычислений, если hk слишком большое, то это может привести к проскакиванию через минимум функции. Вычис- ления по формуле (7.15) проводим до тех пор, пока функция f (л) практически перестанет убывать, т. е. до выполнения для наперед заданного е неравенства 7(л/г+') —/(лЛ’)<е. Критерием окончания итерационного минимума можно выбрать также условие процесса поиска max di (x'j Если функция / (л) = /(.Тр х,, ... , х„) выпукла в области D, содержащей точку минимума х* и начальное приближе- ние x°QD, то метод наискорейшего спуска сходится к точке минимума линейно [6], т. е. л* —л* л1 л" , где 0<g< 1. 7.6. Метод Ньютона Описанным выше методам свойственен один общий недо- статок — медленная сходимость, если поверхности (линии)' уровня минимизируемой функции вытянуты, сильно отли- 230
чаются от сфер (окружностей). В методе Ньютона минимиза- ции функции нескольких переменных этот недостаток устра- няется учетом значений вторых производных, однако приме- ним этот метод для более узкого класса функций. Пусть в окрестности стационарной точки х* функция f (х) = f (х1; хп) дважды непрерывно дифференцируема и ее матрица Гессе 1 d2f (х) дх' д2/ (х) /7 (х) = дх, дх2 д f (х) \ дх, дх„ д2/ (х) д2/ (х) дх2 дх, г)х„ дх. d2f (х) о2/ (х) дх^ 2 дхп дхг d2f (X) дг/ (х) сх, дхп положительно определена. Тогда, применяя для решения системы д/(х) __ п. дх, ’ .......... (7.17) с*/ (х) = Q &хп метод Ньютона (4.37), либо модифицированный метод Нью- тона (4.38), получим итерационный процесс для минимизации функции х/<+! = хк — Н-1 (xk) grad f (xk), (7.18) либо x';+' = xk — H~l (x°) grad / (xk). (7.19) Положительная определенность матрицы H (х) обеспечи- вает сходимость метода Ньютона к решению системы (7.17), причем сходимость будет квадратичной, а при применении модифицированного метода Ньютона — линейной. Итерационный процесс (7.18), либо (7.19) называют мето- дом Ньютона (модифицированным методом Ньютона) миними- зации функции f (х) п переменных х = (х1( х2, ..., х„). Следует учесть, что в методе Ньютона на погрешность накладывается погрешность обращения матрицы Н (хк). В связи с этим для функции п переменных при большом п применяют модифицированный метод Ньютона (7.19). Отме- тим, что для квадратичной формы метод Ньютона дает точный результат при первой итерации. 231
Вычислительную схему минимизации методом Ньютона рассмотрим на конкретных примерах. Пример 1. Найти минимум функции f(x, у) = е* + х2 + Чху + Чу*. (7.20) В качестве начальной рассмотрим точку 0(0; 0). Вычислим grad/'(х, у) и Н (х, у): grad / (х, у) = (е-х + 2х + 2у, 2х + 4у); /7 (х, у) = (сХ + 2 2'| , Далее: 1 ( 4 —2 'l Н'1 (х, у) = 4(ея+ j) |^_2 e.v + 2) ’ /&х (х — 1k /х\ I \ -Д'1 (х, у) grad / (х, у) = ' \У1 \ ех (1 — х) I. х2 (е-х + 1)/ Формулы (7.18) примут вид: х*+1 = е** (х* - 1.) . + 1 (7.21) v*+l (Л+i = _ . . у 2 Программа 34 минимизации функции (7.20) методом Ньютона (7.18) ИП1 Fex ПЗ ИПЗ ИП1 1 — X ИПЗ 1 + _ь.П1 2 4- /—/ П2 f ИП1 + X 2 х ИП1 FX2 + ИП1 Fex ПЗ 4- С/П БП 03 После ввода в режиме программирования программы введем на- чальное значение х° (у° в формулах (7.21) не используется): F АВТ 0 П1 и приступим к вычислениям (время вычислений на каждом шаге около 10 с): Клавиша Индикация [ (х, у) В/О С/П 0.73153064 С/П 0.72796957 С/П 0.72796903 С/П 0.72796905 Вызовем из регистров 1 и 2 значения х и у. ИП1 (х = —0.56714324) ИП2 ((/= 0.28357162). Ответ-. /min = 0.727969 при х = —0.567143, у = 0.283572. 232
Пример 2. Рассмотрим функцию «овражного»/ типа [ (х, у) = 100 (х2 — у)2 + (1 — х)2 (7.22) (тестовую функцию Розенброка [35]). В качестве начальной выберем точку Мо (—1, 2; 1). Область положительной определенности матрицы Н (х, у) у < х2 + 0.0Q5. Минимум функция достигает в точке М* (1; 1). Отметим, что точка М(! не попадает в выпуклую окрестность точ- ки М*, отвечающую условиям применимости метода Ньютона, однако после двух итераций опа попадает в требуемую область. Формулы (7.18) для функции Розенброка: 200 ((.?)2 - /) + 1 + Х ; ,Л+1 = хк I ___________1 - Х'1 , ./г+1 \ 200 ((.?)2 - ук) + 1 ' Программа 35 минимизации функции (7.22) методом Ньютона (7.18): 1 ИП! — НП! FX2 ИП2 — 2 0 0 X С/П 1 + + 4- X П2 ИП! ХУ | С/П БП 00 ИП! + П1 После ввода в режиме программирования программы вводим коор- динаты начальной точки: F АВТ 1.2 /—/ П! 1 П2 и приступаем к.вычислениям (вычисление значения функции программой не предусмотрено): Клавиша Индикация xA+l Клавиша Индикация В/О С/П — 1.1752809 С/П 1.3806741 С/П 0.7631266 С/П —3.1750614 С/П 0.76344139 С/П 0.58284266 С/П 0.99999525 С/П 0.94403376 С/П 0.99995564 С/П 0.99999328 С/П 1 С/П 1 С/П 1 С/П 1 Ответ: функция достигает минимума в точке М* (1; 1); /min = ®‘ 7. 7. Лабораторная работа 11. Методы минимизации функции нескольких переменных Программа 36 вычисления минимума функции п перемен- ных (п < 9) f (Xj, ..., х„) методом покоординатного спуска с постоянным шагом h по формулам (7.12): 233
Адрес Команда Код Адрес Команда Код Адрес Команда Код 00 (п) 0п 14 ипс 6с 28 ИПА 6— 01 по 40 15 ПП 53 29 и 02 ПП 53 16 19 19 30 FX > 0 59 03 38 38 17 БП 51 31 14 14 04 ПП 53 18 08 08 32 ипд 6Г 05 19 19 19 ПА 4— 33 !—! 0L 06 ПП 53 20 КИП| ГЕ 34 пд 4Г 07 22 22 21 ПВ 4L 35 ИПВ 6L 08 ИПА 6- 22 ипд 6Г 36 Knt LE 09 С/П 50 23 -L КП| 10 37 В/О 52 10 FLO 5Г 24 LE 38 :::} их) * > . 11 04 04 25 ПП 53 12 БП 51 26 38 38 В/О 52 13 00 00 27 ПС 4С Распределение регистров памяти : Номер регистра 0 1. • •9 А В С Д Переменная счетчик цикла *1- *хп Г(х) Z(x') h Инструкция. 1. Составить подпрограмму вычисления f (х). Значения х1( х,г хранятся в регистрах 1 4- п (п <9). 2. В режиме программирования (F ПРГ) ввести про- грамму. 3. Ввести начальные данные: F АВТ (х<0)) П1 ... (х{в’) П(п) (Л) ПД. 4. Приступить к вычислениям, нажав клавиши В/О С/П. После останова индицируется минимум / по переменной хп. Для продолжения вычислений нажимаем клавишу С/П; после каждого ОСТАНОВа индицируется минимум функции f соответственно по переменным: х;1_1( х,,_2, ..., х1; х„, хп_1У ... . Если при заданном шаге А значение функции / перестает уменьшаться, то можно продолжить поиск минимума при меньшем шаге Ап нажав клавиши (At) ПД ИПА С/П. Если после останова содержимое регистра х изменялось (в резуль- тате, например, вызова из памяти значения х, либо при вводе нового значения А), то для продолжения вычислений следует нажать клавиши ИПА С/П. 234
Рис. 23 Блок-схема вычислений по программе 36 представлена на рис. 23,о, подробная блок-схема поиска минимума по пере- менной Xi — на рис. 23,6. Контрольный пример. Найти минимум функции f (х, у) = х2 + + у + е~х~У методом покоординатного спуска. В качестве начальной рассмотреть точку Мо (0; 0), начальный шаг h = 0,4. Подпрограмма вычисления / (х, у). ИП1 ИП2 + /—/ Fex ИП1 FX2 + ИП2 + В/О Нажмем клавиши F ПРГ и клавиши программы. Далее перей- дем к автоматическому режиму F АВТ и введем начальные данные: 0 П1 П2 0,4 ПД. Приступим к вычислениям: В/О С/П, через 25 с прочтем значе- ние функции /= 1. Результаты следующих вычислений приводим в таблице: 235
Минимум ло у Минимум ПО X клавиша С/П индикация 1 0.76 клавиша С/П С/П индикация 0.83032004 0.76 Так как значения функции не убывают, уменьшим шаг, положив Л = 0,2; 0,2 ПД ИПА Клавиша Индикация Клавиша Индикация С/П 0,76 С/П 0.76 Далее выбираем шаг h = 0.1: 0.1 ПД ИПА Клавиша Индикация Клавиша Индикация С/П 0.76 С/П 0.7548374 С/П 0.75 С/П 0.75 Для индикации значений х и у нажмем соответственно клавиши: ИП1 (х = 0.5) ИП2 (у = —0.5). Ответ: минимум функции 0.75 достигается в точке М (0,5; —0,5). Легко убедиться в том, что для данного примера метод покоорди- натного спуска позволил найти точное значение минимума функции. Действительно, найдем частные производные функции и определим стационарные точки из системы (7.12): ~ 2х — e~x-v = 0, -# = l-e-v = 0. дх ду Из второго уравнения e~z~v — 1. Тогда из первого уравнения сле- дует: 2х = 1 и х = 0,5. Таким образом, e~v = ег и у = —0,5. Точка М (0,5; —0,5) будет стационарной точкой функции. Определим вторые про- изводные функции и составим матрицу Гессе в точке М 1'). \ I 1/ Матрица И (М) положительно определена, так как аи = 3>0 и |[ J| = 2>0. Вывод: точка Л1 (0,5; —0,5) является точкой минимума заданной функции и /[|lin = 0,75. Программа 37 вычисления минимума функции / (х, у) методом градиентного спуска с постоянным шагом h по фор- мулам (7.15) в автоматическом режиме: 236
ЛдрСС Коман- да Код Адрес Команда Код Адрес Команда Код 00 ПП 53 11 ПП 53 22 00 00 01 23 23 12 (₽) Р 23 . . . 02 С/П 50 13 ИП7 67 • \ f (х, .'/) 03 ПП 53 14 X 12 В/О ) 52 04 (а) а 15 ИП2 62 а . . . 05 ИП7 67 16 ХУ 14 « I fx (х, у) 06 X 12 17 — 11 в/о) 52 07 ИП1 61 18 П2 42 р 08 ХУ 14 19 ИПЗ 63 • • \ ftl (х, у) 09 — 11 20 П1 41 в/о) 52 10 ПЗ 43 21 БП 51 Адрес (а) соответствует началу подпрограммы вычисления f‘x (х, у), адрес (Р) — началу подпрограммы вычисления f'y (х, у). Распределение регистров памяти: Номер регистра | 1 | 2 | 3 | 7 Переменная х у х h Инструкция. 1. Составить подпрограммы вычисления функции f (х, у) и частных производных fx (х, у} и f'y (х, у). Определить адреса (а) и (|3). 2. Перейти в режим программирования, нажав клавиши F ПРГ. Ввести программу и подпрограмму. 3. Перейти в режим автоматической работы, нажав кла- виши F АВТ. 4. Ввести начальные данные: (х0) Ш (у0) П2 (fi) П7 5. Осуществить пуск программы: В/О С/П. После каждого останова записать значение / (xk, «/*). Если нужно, записать х/г, нажав клавиши ИП1, и ук, нажав клавиши ИП2. Нажать клавишу С/П. Вычисления продолжаем до тех пор, пока последователь- ные значения f (х, у) не станут достаточно близкими. Контрольный пример. Найти минимум функции / (х, у) = еУ"х + Л'2 -}- у2 методом градиентного спуска с постоянным шагом h = 0,4, выбрав на- чальную точку Мо (1; 1). Составим подпрограммы вычисления / (х, у), fx (х, у) = —ev~x + 2х, f'y (х, у) = еУ~х + 2у. 237
Адрес 23 24 25 26 27 28 29 30 3, 32 Команда ИП2 ИП1 — Fex П5 ИП1 FX2 ИП2 FX2 + Адрес 33 34 33 36 37 33 3, 40 4, 42 Команда ИП5 + В/О ИП1 2 X ИП5 — В/О ИП2 Адрес 43 44 45 46 47 Команда 2 X ИП5 + В/О Адреса подпрограмм вычисления Д- (х, у) и /у (х, у) равны соот- ветственно а = 36, Р = 42. Нажав клавиши F ПРГ, вводим программу и подпрограмму. Нажав клавиши F АВТ, вводим исходные данные: 1 П1 П2 0,4 П7 Нажимаем клавиши В/О С/П. После останова спишем с инди- катора / (1; 1) = 3. Нажимаем С/П, запишем / (х1, у1) = 0,849 и т. д. Результаты вычислений округляем до трех десятичных знаков и зано- сим в таблицу: Номер шага k ° 2 I3 4 f(x*, ук) 3 0,849 0,733 0,728 0,728 Если результаты начинают повторяться, то счет прекращается. Запишем координаты точки минимума: ИП1 (х = 0,284); ИП2 (у = -0,284). Ответ: fnlin = 0,728; точка минимума М (0,284; —0,284). Задания к лабораторной работе 11. Найти минимум функции f [х, у): а) методом покоординатного спуска, выбрав начальную точку Ма (х°, (/°) и постоянный шаг Л, в окрестности минимума уменьшить шаг, положив Л = 0,01; б) методом градиентного спуска. Поставить переключатель Р—Г в положение Р; 1) 1(х, У) = е*’ + у + (х — у)2, Мо (0; 0), Л=0,1; 2) /(*, £/) — е*, Л70(—1; -1), Я = 0,1; 3) Дх, у) = е~х + х2 + у2, Л10 (1; 1), /1 = 0,4; 4) f (х, у) = &у + (у — х2)2, Л/о (0,5; 0,5), h =0,1; 5) ! (х, у) = е"У — cos (х2 + у), Мо (0; 0), h = 0,4; 6) / (.х, у) = ех + у2 - 2х, Л40 (0; 0), h = 0,4; / (х, у) = ха — cos (у—1), М0(0; 0), Л = 0,4; 238
8) fix, y) = y2 + ex — 3x, Л/о(0; 0), h = 0,4; °) fix, у) = ex~v 4- х2 + i/2, Af0(l, 1), ft = 0,4; 10) f (х, у) = е.хг Af0(—1; —1), ft = 0,4; И) f(x, У) = ex + ix - z/2)2, Mj. (0,5; 0,5), ft = 0,1 12) fix, У) = e* + x2 + y2, Moi— 1; О. ft = 0,4; 13) / (х, у) = е^~х + x2,’ Mo(0; 0), fi=0,4; 14) f(x, y) = £~x — cos (x2 + z/2), Mo (0; 0), h, = 0,4; 15) fix, y) = e-У + iy + x2)2, Mo (0,5; 0,5), h = 0,1 16) fix. (/) = е*+У + x2 + z/2, A40(—1; -1), ft = 0,4; 17) f ix, y) = y2 — cos(x— 1), Mo (0; 0), ft = 0,4; 18) fix. у) = x2 4- eV — 3y, Mo (0; 0), ft = 0,4; 19) fix, y) = еУ 4- x2 4- у2, Alo (1; 1), ft = 0,4; 20) / ix, y) = e-x + y2 + 2x, Af0 (0; 0), ft = 0,4; 21) fix, у) =е~У4-х24- у2, zW0 (I; —1), ft ='0,4; 22) f ix, y) = ex— cos (x — y2), Mo (0; 0), ft = 0,4; 23) fix. y) = e-x 4- (x 4- y2)2, Mo (0,5; 0,5), ft = 0,1; 24) fix. у) = еУ — cos (x2 — y), MQ (0; 0), ft = 0,4; 25) fix, y) = e-x-y -J-x2-;- y2, Af0 (1; 1), ft = 0,4; 26) fix, y) = x2 — cos (1 4- y), Mo (0; 0), ft = 0,4; 27) / (x, y) = y2 + e-x 4- 3, AJ0 (0; 0), ft = 0,4; 28) f ix. у) = еУ4-х2 — 2(/, Л4о(0; 0), ft = 0,4; 29) f ix, У) = x2-1-е-У 4-Зу, Мо (0, 0), ft = 0,4; 30) fix, у) = е-У 4- х2 4- 2у, Mai0, 0), ft = 0,4. Глава 8. ЧИСЛЕННЫЕ МЕТОДЫ РЕШЕНИЯ ЗАДАЧИ КОШИ ДЛЯ ОБЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИИ 8.1. Метод Эйлера Дифференциальные уравнения лежат в основе многих мате- матических моделей, описывающих законы природы. Среди прикладных задач важное место занимает задача Коши, за- ключающаяся в нахождении частного решения у = у (х) обыкновенного дифференциального уравнения первого по- рядка U=--f(x,y), (8.1) удовлетворяющего заданному начальному условию У (*о) = Уо, где Мо (х0, у0) С D-, (8.2) D = {(х, у)' х0 < х <х0+ I, \ у — у0\ « «} График частного решения у = у (х) есть интегральная кри- вая, проходящая через заданную в области D точку (xq, Уо)- 239
Известно, что решение задачи Коши (8.1), (8.2) на отрез- ке [х0; *0 + /И существует и единственно, если функция f (х, у) непрерывна в области D и удовлетворяет условию Липшица: i/U> y2')\<N\yi~y2\, (8.3) где N — константа Липшица, h = min р, М = — max \f (х, у) |. В частности, условие (8.3) выполняется, если D f (х, у) имеет в D ограниченную частную производную fy (х, у). Поскольку точное решение задачи Коши возможно лишь в исключительно редких случаях, то для нахождения частного решения у (х) в основном применяют численные методы. В об- ласти D на выбранной последовательности точек х0, хх, х2, ..., хп, Xi £ [х0) х0 + I] с переменной в общем случае длиной шага h- = х,+1 — Xj вычисляются приближенные значения у0, Уъ Уг< • Уп искомого решения задачи Коши. Большинство численных методов можно представить в виде зависимости tji+\ = ф (у(_г, yi-r+i> yt, yi+i, , Ут). Функция ф определяет вычислительную схему метода. Если г = 0 и О cs < 1, то численный метод называется одношаго- вым, а если г 1 или s > Г, то многошаговым. Многошаговые и одношаговые методы называются явными, если s = 0, и неявными при s = 1. При s > 1 многошаговые методы называются методами с забеганием вперед. Многие численные методы, разработанные для решения одного дифференциального уравнения, легко обобщаются на решение систем обыкновенных дифференциальных уравнений первого порядка. Задачи Коши для нормальной системы обыкновенных диф- ференциальных уравнений (8.4) состоит в нахождении частного решения уг (х), уг (х), . .. , Уч (х), удовлетворяющего начальным условиям У1 (х0) = У10, У2 (х0) = У20’ • • • > Уч (*о) = Упо- (8.5) 240
Задача Коши для обыкновенного дифференциального уравнения /i-го порядка У(,,) = / (х, у, у', .. . , у'"-1’) и начальных условий У (*о) = //о> У' W = У',....У{п~Х} W = i/о-' может быть сведена к решению задачи Коши для системы диф- ференциальных уравнений. Поэтому в дальнейшем будут излагаться численные методы решения задачи Коши для од- ного уравнения (8.1), (8.2). Метод Эйлера (или метод ломаных) является простейшим одношаговым численным методом решения задачи Коши (8.1), (8.2). В методе Эйлера приближенные значения искомого частного решения у (х() = у.- па отрезке [хл, х0 + /1 вычис- ляются последовательно по формуле Уж - у( + /1/ (х,-, у-); (i = 0, 1, 2../1—1). (8.6) Здесь шаг интегрирования h предполагается постоянным, h= - . п Геометрическая интерпретация метода Эйлера следующая (рис. 24): на каждом i-м шаге, начиная с точки М0(х(|, _//0), движение осуществляется не по интегральной кривой, а по отрезку касательной Лф-Лф-р к интегральной кривой, про- ходящей через точку Лф (х(, у,). Уравнение такой касательной у = у,• + у' (*,) (* -- у). а так как у' (х,) = / (х,., у() и xl+i = х,- + h, то У<+1 = У i"\~ Ы (xi’ У^' 241
Для оценки локальной погрешности метода на одном шаге разложим искомое решение у (х) в ряд Тейлора на ин- тервале [%,; x(+i]: У1+\ = + hy'i + | h?y" + • • • (8.7) Производные у'-'1 можно найти, дифференцируя исходные уравнения У' = fix, у\, у" = -д-х + д/у- fix, у), и т. д. Удерживая в (8.7) члены до О (/гр), получим численный метод порядка р. Метод Эйлера имеет первый порядок точности. С удалением от начальной точки (ха, у0) погрешности в значениях у, на- копляются. Метод достаточно прост и нагляден, чтобы изложить на его примере идею построения более точных методов числен- ного интегрирования дифференциальных уравнений. В практических вычислениях чаще применяются модифи- кации метода Эйлера. Так, в усовершенствованном методе Эйлера—Коши сначала на (/ + 1)-м шаге определяется при- ближение как и в обычном методе Эйлера (8.6): У*+1 =yt + hfiXi, yf), (8.8) в найденной точке вычисляется направление поля fixi+i, yf+l), а затем вычисления проводятся по формуле В вычислительной практике применяется также метод Эйлера —Коши с итерациями: по грубому первоначальному приближению У^ = yi + hfiXi, У.) (8.10) строится итерационный процесс h с. = У‘ + у yf) + Ж+1. k = 1, 2, 3,... . (8.11) Итерации продолжают до тех пор, пока два последовательных приближения не совпадут с заданной точностью е. Если после нескольких итераций совпадение не наблюдается, то нужно уменьшить шаг. 242
Указанные модификации метода Эйлера (8.8), (8.9) и (8.10), (8.11) называют еще методами прогноза и коррекции (предик- тор-корректор). Здесь на первом этапе, называемом прогно- зом, по формулам (8.8) или (8.10) находится приближение для t/!+1, а затем на втором этапе оно корректируется по фор- мулам (8.9) пли (8.11). Обе модификации являются методами второго порядка точности. Абсолютная локальная погрешность этих методов на каж- дом шаге пропорциональна А3. Метод Эйлера и его модификации обобщаются на числен- ное решение задачи Коши для систем обыкновенных диффе- ренциальных уравнений (8.4) и (8.5). Программа 38 приближенного решения задачи Коши (8.1), (8.2) для дифференциального уравнения первого порядка мето- дом Эйлера—Коши с итерациями (8.10), (8.11). Адрес Команда Код Адрес Коман- да Код Адрес Команда Код 00 ПП *53 14 4- 10 28 FX2 22 0( 38 38 15 П1 41 29 ИП4 64 02 ИПЗ 63 16 ПП 53 30 11 03 X 12 17 38 38 31 FX <0 5с 04 2 02 18 ИПЗ 63 32 16 16 05 —— 13 19 X 12 33 ИП2 62 06 А 0Е 20 2 02 34 С/П 50 07 ИП2 62 21 13 35 FL0 5Г 08 -J- 10 22 ИП5 65 36 00 00 09 П5 45 23 10 37 С/П 50 10 10 24 ИП2 62 38 11 П2 42 25 ХУ 14 . . . • • • р (X, У) .. » 12 ИП1 61 26 П2 42 13 ИПЗ 63 27 — 11 В/О 52 Распределение регистров памяти: Номер регистра 0 1 2 3 4 Переменная л, счетчик цикла А|), Xj, ‘=4 е2 Инструкция. 1. Составить подпрограмму вычисления зна- чений [ (м, у), значение х хранится в Р1, значение у — в Р2. 2. Нажать клавиши F ПРГ, ввести программу и подпро- грамму. 243
3. Нажать клавиши F АВТ. Ввести исходные данные: (п) ПО, (х0) П1, (z/0) П2, (Л) ПЗ, (<?) П4. 4. Нажать клавиши В/О С/П. После каждого ОСТАНОВа записать значение у,-+1 и нажать клавишу С/П. Контрольный пример. Методом Эйлера—Коши с итерациями найти приближенное решение уравнения у' = х — у, удовлетворяющее начальному условию у (1) = —1, па отрезке [1; 1,6]. Выбрать шаг интегрирования h = 0,2. Итерации продолжать до совпадения после- довательных приближений с точностью е = 10~а. Результаты вычислений округлены до трех десятичных знаков и выписаны в таблице. Ниже для сравнения приведено точное значе- ние решения задачи Коши (с тремя десятичными знаками), которое в данном случае равно у (,г) = — (е1х 1 — л-). Xi 1 1,2 1,4 1,6 yki -1 -0,618 —0,269 0,053 „ТОЧН Vi —1 -0,619 —0,270 0,051 8.2. Метод Рунге-Кутта Метод Рунге—Кутта позволяет строить схемы различного порядка точности и наиболее применим в практических вычис- лениях. Рассмотрим вначале метод второго порядка, который требует лишь два вычисления функции f (х, у) на каждом шаге. Одно из них равно = hj (xit у() = hif(. Затем осуществляется дробный шаг, использующий klt k2 = htf(Xi + ahit yt + Wi), где а и P— неизвестные числа. Для полного шага берется комбинация значений функции у,+1 =«/, + уЛ +у2/г2; Yj и у2 подлежат определению. Для определения неизвестных коэффициентов разложим kx и k2 в ряд Тейлора в окрестности точки (xit yt): fei = hi - fit k2 = (f{ + ahi • + • • •), „, , df; , df/ У1+1 = У( + (71 + 7г) hifi + 72₽Л, ft + y2ahi • • • • 244
Сравнив это разложение с разложением (6.7) точного реше- ния задачи Коши (8.1), (8.2) на t-м шаге, получим уравнения: Yi + = 1; Wj = i; = (а можно выбрать произвольно, положив его равным i или 1). Ни при каких а не удается исключить члены, содержащие h3, таким образом, метод имеет второй порядок точности. При а= у-получаем вычислительную схему; yi+x = yt + h:f (х, + 1/Щ tJi + 1 h(8.13) Геометрическая интерпретация формулы (8.13) следующая: вначале движемся на половинном шаге по ломаной Эйлера h. У 1 = У( + 4 ft, затем в найденной точке вычисляем наклон ‘+Т интегральной кривой уi = f (х. -f- /г<, У1+^- По этому наклону определяем приращение функции на целом шаге: У1^ ~ Vi ^-=М- При а = 1 получаем формулу Л,- r/l+i = у, + j [/ (х,, у,) + /(х,- + hlt t/,-4- М,)], (8.14) совпадающую с формулами (8.8) и (8.9) усовершенствован- ного метода Эйлера — Коши. Аналогично строятся вычислительные схемы метода Рун- ге—Кутта более высоких порядков. Наиболее употребительны схемы четвертого порядка точ- ности. В частности, в большинстве стандартных ’программ ЭВМ используется формула {Л-н = У( + 0 (^i + 4- 2/?3 + (8.15) где kt = f(x>, yt); 1г2 = /(х,- + , //, + kt), ka = / (м- + ; yt + 4 л2); ki = f 245
Методы Рунге—Кутта легко программировать, они чис- ленно устойчивы для широкого класса задач, величину шага можно изменять. Эти методы легко переносятся на решение задачи Коши для системы дифференциальных уравнений. Предельная абсолютная локальная погрешность метода Рунге—Кутта (8.15) на каждом шаге пропорциональна Л5. Точная оценка погрешности методов численного интегри- рования громоздка. Для практической оценки погрешности используют правило Рунге: чтобы приближенно оценить по- грешность метода численного интегрирования р-го порядка, необходимо провести двойной пересчет значения у (х,) с ша- гом h и с шагом А/2, а затем полагают IУ (М) - Уи/г (Х<) I ж-—р---------, (8.16) гдеу(х,), Ун(х,), ун/2(х,)—соответственно точное решение уравнения и приближенные решения, вычисленные в одной и той же точке xt(i = 1, ri) с шагом Лис шагом А/2; р — порядок метода. Для усовершенствованного метода Эйлера — Коши и этого же метода с итерациями оценка (8.16) приобретает вид У w) УЬ/2 (Х|) | 2 , (о. 17) а для метода Рунге — Кутта (8.15) четвертого порядка точ- ности имеем ' У U) - УЫ2 (М) | ~ . (8.18) Проверку точности вычислений с помощью двойного пере- счета достаточно выполнять через 4—5 шагов. Выбрав усло- вие в качестве критерия выбора шага для получения решения с заданной точностью е, можно составить программу числен- ного интегрирования по методу Рунге—Кутта (8.15) с авто- матическим выбором шага. 8.3. Метод Адамса В рассмотренных выше одношаговых методах численного интегрирования дифференциальных уравнений используют на каждом шаге вычислений информацию о значении искомого 246
решения только в предыдущей точке. Вычислительные схемы многошаговых методов строятся так, что полученная ранее информация о решении используется повторно на несколь- ких шагах. Среди многошаговых методов различных порядков наи- более употребительны методы Адамса, разработанные им в 1855 г. Идея методов состоит в следующем: пусть найдены приближенные значения у (х) в k + 1 точках xit ... x(-_ft с постоянным шагом h. Обозначим у (хг) = f (х,-, Ус) = ft. По данным узлам строим интерполяционный полином Рк (х) для функции f (х, у (х)). Считая приближенно Уш — Pk (х), проинтегрируем это равенство на интервале к; х/+1]: *<+! Ус+\ № yt + J Pk(x)dx. (8.20) xi Pk (x) можно выразить через конечные разности функции f (х, у (х)), используя формулу Ньютона для интерполирова- ния назад (5.16). Например, если ограничиться разностями третьего порядка, то получим следующую экстраполяционную формулу Адамса «Л-+1 = Ус 4- Fc + 1 ДЛ-_. + р2 А2Л-2 + 4 A3F,-_3, (8.21) где F,= hf (х,-, у(х;)). При использовании вычислительной техники (8.21) удоб- нее представить в другой записи. Выразив конечные разно- сти через значения функции ДЛ-1 = h (fc - ; ДгЛ-_2 = h (fc - 2fc-\ + /(_2); Д’Л-з = h (h - ЗЛ_, + 3/(-_2 - Л-3) и подставив их в (8.21), получим экстраполяционную фор- мулу Адамса — Башфорта yi+l = Ус + 24 (55 f с - 59.fc-i + 37 fс-2 - 9fc-3). (8.22) Здесь используются значения функции fc в точках х(, x(-_i, х,_2, Х(_з, предшествующих отрезку интегрирования. Такое приближение называется экстраполяцией. После того как вычислено значение t/1+i по (8.21), опре- деляют = /(x1+i, гл-|_|), а затем уточняют у,.^ по следу- ющей интерполяционной формуле Адамса — Мултона: Ус+\ = Ус + й (9Л+1 + 19Л - 5Л-_! + fi-2). (8.23) 247
Сна может быть получена аналогично формуле (8.21) из (8.20), если вместо Pk (х) подставить полином Ньютона для интер- полирования назад (5.16), построенный по точкам х,+1, xit Xi_lt Xi_2. Формулы (8.22) и (8.23) имеют четвертый порядок точно- сти. Для начала вычислений нужны, кроме у9, еще три значе ния искомого решения уъ у2, y;s. Обычно их определяют ка- ким-либо одношаговым методом того же порядка, например, методом Рунге—Кутта. Величину шага в методе Рунге—Кут- та выбирают меньшей, чем в последующих вычислениях, для достижения большей точности в начальных точках отрезка интегрирования. Разность между предсказанным значением и скор- ректированным полученными соответственно по форму- лам (8.22) и (8.23), можно принять приближенно в качестве оценки локальной погрешности вычислений на данном шаге. При подходящем выборе шага h ее можно сделать меньше наперед заданного е. Важное преимущество многошаговых методов — меньший объем вычислений функции f (х, у) на каждом шаге. Кроме того, они допускают экономный автоматический контроль шага по разности | —y'i+i"'. К их неудобствам следует отнести проблему построения начала таблицы. Методы Адамса можно использовать для приближенного решения задачи Коши (8.4), (8.5) для системы дифференциаль- ных уравнений. 8.4. Метод Милна Метод Милна является многошаговым методом четвертого порядка точности типа «предсказание — коррекция». Для его старта необходимо найти каким-либо одношаговым методом четыре значения искомого решения у0, ylt у2, у3. Дальнейшие вычисления проводятся по схеме: 1. По четырем предыдущим точкам предсказываем сле- дующее значение w(+i: У^= yi_z + ± h (2Д- - + 2/,_2), (8.24) где = f(xi, у,); (i - 3, 4, 5, . . .). 2. Вычисляем значения правой части уравнения Л?*Г = /(Xi+1) z/пред.). 248
3. Корректируем значение у1+\ У'Щ = | (h-i + 4Л + /^), (I - 3, 4, ...). (8.25) Предельная абсолютная погрешность значения г/, в методе Милна равна е.= <8-26) 8.5. Лабораторная работа 12. Численные методы решения задачи Коши Решение задачи Коши (8.1), (8.2) для обыкновенного диф- ференциального уравнения первого порядка методом Рунге— Кутта четвертого порядка с постоянным шагом h реализуется на микрокалькуляторе с помощью программы 39. Программа 39 решения задачи Коши (8.1), (8.2) методом Рунге—Кутта четвертого порядка по формулам (8.15) с по- стоянным шагом h в автоматическом режиме Адрес Коман- да Код Адрес Коман- да Код Адрес Коман- да Код 00 Сх ог 16 ПП 53 32 4" 10 01 П5 45 17 26 26 33 П5 45 02 ИП4 64 18 ИП5 65 34 ИП4 64 03 П2 42 19 —j— 10 35 ИП6 66 04 ПП 53 20 3 03 36 + 10 05 38 38 21 — 13 37 П2 42 06 ПП 53 22 ЙП4 64 38 ПП 53 07 26 26 23 + 10 39 44 44 08 ИП5 65 24 П4 44 40 ИПЗ 63 09 + 10 25 С/П 50 41 х 12 10 П5 45 26 ИП1 61 42 П6 46 11 ПП 53 27 ИПЗ 63 43 В/О 52 12 30 30 28 + 10 44 . . . 13 2 02 29 П1 41 • . • ••• !/(*.» 14 X 12 30 ИП6 66 . . . B/oJ 52 15 П6 46 31 ИП5 65 Распределение регистров памяти: Номер регистра 1 2 3 4 Переменная Л/, X У /1/2 ! i '249
Инструкция. 1. Составить подпрограмму вычисления зна- чения функции f (х, у). Значения х и у хранятся соответ- ственно в регистрах 1 и 2. 2. В режиме программирования (F ПРГ) ввести про- грамму и подпрограмму. 3. В автоматическом режиме (F АВТ) ввести исходные данные (х0) П1 (t/0) П4 (Л/2) ПЗ. 4. Нажать клавиши В/О С/П. После останова записать с индикатора значение уг — у (х0 + Л). i 5. Для вычисления каждого следующего значения у. = = у (х0 + ih) (t = 2, 3, ..., ri) повторить п. 4. При составлении подпрограммы вычисления f (х, у) можно использовать 54 адреса программной памяти и свободные регистры 7, 8, 9, А, В, С, D. Для контроля точности можно провести вычисления с ша- гом h/2 и воспользоваться оценкой Рунге (8.18). Для этого необходимо ввести исходные данные (х0) П1 (у0) П4 (/1/4) ПЗ и повторить вычисления. Контрольный пример. Найти приближенное решение дифферен- циального уравнения у' = у2 + х3, удовлетворяющее начальным условиям у (0) = 0, на отрезке [0; 1] с шагом h = 0,2. Подпрограмма вычисления функции f (х; у) = у2 + х3: ИП2 FX2 ИП1 f FX2 X + В/О. Вводим исходные данные: 0 П1 П4 0.1 ПЗ В/О С/П. После ОСТАНОВа (примерно через 30 с) про- чтем на индикаторе уг = у (0,2) = 0,0004000. Результаты вычислений удобно заносить в таблицу: Xi 0,2 0,4 0,6 0,8 1,0 yi, h 0 0,0004000 0,0064019 0,0324710 0,1033483 0,2572235 Vi, h/2 0 0,0004000 0,0064018 0.0324703 0,1033436 0,2572037 Для получения следующего значения t/,- нажимаем клавиши В/О С/П и заполняем таблицу. Повторим вычисления с шагом h = = 0,1. Введем исходные данные О П1 П4 0.05 ПЗ В/О. Вычис- ленные повторно с шагом h/2 значения у, в точках х = 0,2; 0,4; 0,6; 0,8; 1,0 (через одно) запишем в таблицу. Из результатов вычислений следует, что расхождение между ty, h и yh h/2 с удалением от точки х„ возрастает. Оцепим наибольшую погрешность в точке х = 1,0: б = 1 'Л' h ,,/? = 1,32 - 10-Р < ю-5. Таким образом, во всех точках xt отрезка [0; 1] значения част- ною решения задачи Коши у (х,) получены с пятью верными десятич- ными знаками. 250
Выбор шага по условию (8.19) для получения решения с задан- ной точностью е можно запрограммировать, увеличивая или умень- шая шаг, в зависимости от величины б. Такие вычисления реализуются программой 40. Программа 40 решения задачи Коши для дифференциального уравнения первого порядка (8.1), (8.2) методом Рунге—Кутта (8.15) с переменным шагом (в полуавтоматическом режиме). Блок-схема про- граммы представлена ла рис. 25. Адрес Коман- да Код Адрес Коман- да Код Адрес Команда Код 00 ИП7 67 27 БП 51 54 _*. 13 01 пз 43 28 04 04 55 ЙП4 64 02 ПП 53 29 ИПА 6— 56 1 10 03 29 29 30 П1 41 57 В/О 52 04 ПД dr 31 ИПВ 6L 58 ИП1 61 05 ИП7 67 32 П4 44 59 ИПЗ 63 06 2 02 33 0 00 60 1 10 07 — 13 34 П5 45 61 П1 41 08 пз 43 35 ИП4 64 62 ИП6 66 09 ПП 53 .36 П2 42 63 ИП5 65 10 29 29 37 ПП 53 64 -J— 10 11 П4 44 38 70 70 65 П5 45 12 ПП 53 39 ПП 53 66 ИП4 64 13 33 33 40 58 58 67 ИП6 66 14 П4 44 41 ИП5 65 68 —L- 10 15 ИПД 6Г 42 + 10 69 П2 42 16 — 11 43 П5 45 70 ПП 53 17 1 01 44 ПП 53 71 76 76 18 5 05 45 62 62 72 ИПЗ 63 19 —— 13 46 2 02 73 X 12 20 С/П 50 47 X 12 74 П6 46 21 ИП1 61 48 П6 46 75 В/О 52 22 ПЛ 4— 49 ПП 53 76 ’Z} / (*> у) . . » 23 ИП4 64 50 58 58 . . • 24 ПВ 4L 51 ИП5 65 • . . В/О 52 25 ПП 53 52 + 10 26 33 33 53 3 03 Распределение регистров памяти: Номер регистра 1 2 3,7 4 А В Переменная X У й/2 Ус, h/2 Х( Ус Инструкция. 1. Составить подпрограмму вычисления / (х, у), значения х и у хранятся соответственно в регист- рах 1 и 2. При этом можно использовать 22 адреса програм- мной памяти и свободные регистры 0, 8, С. 2. F ПРГ. Ввести программу и подпрограмму. 251
Рис. 25 3. F АВТ. Ввести исходные данные: (х0) ПА (у0) ПВ (/г/2) П7. 4. После нажатия клавиш В/О С/П производятся следую- щие вычисления. Методом Рунге—Кутта находится с шагом h и y-i.h/ч с шагом /г/2, вычисляется по формуле (8.19) приближенная погрешность 6 = (г/1Л— г/1,л/2)/15 одного шага и высвечивается на индикаторе. Значение ylt h 2 хранится в Р4. Если . 6, < е, продолжаем вычисления с тем же шагом, нажав клавишу С/П. Для продолжения вычислений с другим шагом hr (Лх = 27г или hl — /г/2) следует ввести новое значение шага в Р7 (/г1/2) П7 и нажать клавишу С/П. Для повторного вычисления с шагом /г5 следует ввести зна- чение Aj/2 в Р7 и нажать клавиши В/О С/П. Контрольный пример. Найти частное решение задачи Коши у' = хуг + j—, у (0) = 1 на отрезке [0; 0,4] методом Рунге—Кутта с переменным шагом с точностью е = IO-6. Выбрать начальный шаг h = 0,2. Составим подпрограмму вычисления / (х, у): ИП1 ИП2 FX2 X 1 ИП1 — F1/X + В/О Вводим начальные данные: 0 ПА 1 ПВ 0,1 П7 Вычисления проводились в такой последовательности: 252
Нажимаемые клавиши 1 Индикация В/О С/П И114 С/П 0.05 П7 В/О С/П ИП4 С/П 0,025 П7 В/О С/П ИП4 с/п 0,0125 П7 В/О С/П ИП4 С/П ИП4 <5 = 2. ю-e у (0,2) = 1,250000 б = 1,6 IO-1 2 6 = —3,3 • IO"8 9 10 11 12 у (0,3) = 1,428572 6 = 8,5 • 10-3 4 5 6 7 5 = 0 и (0,35) = 1,538462 6 = 4,4 • 10"3 6 = 0 у (0,375) = 1,6000000 6 = 0 у (0,4) = 1,666667 Численные значения yi округляем до шести десятичных знаков и заносим в таблицу: xt 0 0,2 ПЗ 0,35 0,375 0,4 У1 1 1,250000 1,428572 1,538462 1,600000 1,666667 Время вычислений на одном шаге составляет около 2 мин. Задания к лабораторной работе 12. 1. Найти численное решение задачи Коши для заданных диффе- ренциальных уравнений и начальных условий методом Рунге—Кутта (8.15) с постоянным шагом h = 0.02 на отрезке [0; 0.06]. 2. Повторить вычисления с шагом h = 0.01 и оценить погреш- ность по правилу Рунге (8.18). 3. Найти решение задачи Коши методом Рунге—Кутта с пере- менным шагом с точностью е = 10-в. Выбрать начальный шаг h = = 0,02. Переключатель Р—Г поставить в положение Р. 1. у' = х2 + у2, у (0) = 1; 2. у' = х + у2, у (0) = 1; 3. у' = cos х + у2, У (0) = 0; 4. у' = е* + у2, 1/(0) = 0; 5. у' = х + еУ, у (0) = 0; 6. у' — х + cos у, у (0) = 0; 7. у' = х2 + еУ, у (0) = 0; 8. у' = х + sin у, у (0)= 1; 9. у' = sin х + У2, У (0) = 1; 10. у' = sin х + еУ, у (0) = 0; 11. у' = е* + sin у, у (0) = 0; 12. у'- = х2 — 1/2, у (0) = 1; 13. у' = у2 — х2, у (0) = 0; 14. у' = х — у2, i/(0)= 1; 15. у' = cos х — у2, у (0) = 0; 16. у' = е* — у2, у (0) = 0; 17. у' = х - еУ, у (0) = 0; 18. (/' = х — cos у, у (0) — 0; 19. у' = х2 — еУ, у (0) = 0; 20. у' = х — sin у, у (0) = 1; 21. у' = sin х — у2, у (0) -- 1; 22. у' = sinx — е^, у (0) = 0; 23. у' = еЛ — sin у, у (0) = 0; 24. у' = sin (х + у), i/(0) = 1 253
25. у’ = х + In (х + у), у (0) = 3; 26. у' =х +у3, у(Р) = 1; 27. у' = х — У2, у (0) = 1; 28. у' = х-еУ, (/(())= 1; 29. у' = (/ + хеУ, у (0) = 1; 30. У' = У2+^, £(0) = 1. Глава 9. РЕШЕНИЕ КРАЕВЫХ ЗАДАЧ МАТЕМАТИЧЕСКОМ ФИЗИКИ МЕТОДОМ СЕТОК 9.1. Метод сеток Дифференциальные уравнения в частных производных моделируют разнообразные физические процессы, в которых исследуемая функция зависит от нескольких переменных. Метод сеток, или метод конечных разностей, является наи- более распространенным и эффективным методом численного решения краевых задач для уравнений математической физи- ки. Идея этого метода принадлежит Эйлеру. Сущность его состоит в следующем. Область D непрерывного изменения аргументов в исходной задаче заменяется конечным (дискрет- ным) множеством точек (узлов) G, называемых сеткой. Диф- ференциальное уравнение заменяется конечно-разностным уравнением, при этом производные искомой функции в выбранных узлах заменяются разделенными разностями. Диф- ференциальное уравнение заменяется системой алгебраиче- ских уравнений для функции дискретных аргументов (сеточ- ной функции), определенной в узлах сетки. Начальные и крае- вые условия заменяются разностными начальными и крае- выми условиями для сеточной функции. Полученную систему конечно-разностных (алгебраических) уравнений решаем ка- ким-либо методом и определяем значения искомой функции в узлах сетки, т. е. численное решение исходной задачи. Сетка может быть построена по-разному с учетом конкрет- ных условий решаемой задачи. На плоскости часто применяют квадратные, прямоугольные, треугольные, шестиугольные и другие сетки. Ограничимся рассмотрением прямоугольной сетки, образованной системой прямых, xL = х0 + ill, yit = = у0 + kl, (i, k = 0, ± 1, ± 2, ...), постоянные положитель- ные числа h и I называются шагом сетки по оси ОХ и ОУ соответственно. Точки (х(-, щ.) пересечения прямых назы- ваются узлами сетки. Два узла называются соседними, если они удалены друг от друга в направлении осей ОХ или ОУ на расстояние, равное шагу по этой оси. Узлы сетки О или принадлежат области D, или отстоят от ее границы Г на рас- стоянии, меньшем шага. Узел сетки называется внутренним, если все его четыре соседних узла принадлежат области D. 254
На рис. 26 внутренние узлы сетки обозначены кружочками, а граничные — звездочками. Аппроксимация дифференциального уравнения разност- ным. Обозначим значение искомой функции и (х, у) в узле (х,, ук) через zz,. к. В каждом внутреннем узле сетки заменим частные производные функции их конечными разностями, используя формулы численного дифференцирования: du(xityk} ^ и[+} к-а^Ц11 _ du(Xi,yh) дх ~ < 2/1 ’ ду ~ 21 -Vy-0 В граничных точках применяются менее точные разности ди yk) ~ui+\,k~ uh к . ди (Xi, yk) ~ м,- л._и - izt. к д.х ~ h ' ду I ‘ Вторые частные производные в каждом внутреннем узле за- меняются разностями д2и (х,., yk) _ ui+l tk-2ui k + u.h k . dx2 h2 ’ д2и (Xi, ylt) ~ uh /(+1 — 2«(.r k + uit k_} _ dy2 ~ I2 S2u К’ Vk) «i+i, *+l — “i-l-i, k-\ ~ “i-1, h+1 + “z-l, fe-i ,q n-. dxdy ~ 4h~l В результате такой замены в каждом внутреннем узле (х;, ук) С G получим конечно-разностное (алгебраическое) уравнение, связывающее значение функции zz,/( и значения и (х, у) в соседних узлах, т. е. получим разностную аппрокси- мацию дифференциального оператора исходного уравнения. Аппроксимация граничных условий. Граничные узлы, как правило, не будут находиться на границе Г. Поэтому необхо- 255
димо заменить граничные условия для дифференциального уравнения граничными условиями для разностного уравнения, составляемого только для внутренних узлов сетки. Такую аппроксимацию можно осуществлять простым сносом, т. е. принять значение функции ы,г к в узлах, обозначенных звез- дочками, равным значению функции / (х, у) в ближайшей точке границы Г, где и!г — f (х, у) — краевое условие задачи. Для более точной аппроксимации граничных условий можно применять линейную интерполяцию, предложенную Коллатцом. При этом для каждого узла А рассмотрим на прямой сетки ближайшую точку В, лежащую на границе Г, удаленную от А на расстояние б </i, и ближайший внутрен- ний узел С (рис. 27). Тогда для узла А полагаем Получаемая при этом погрешность будет порядка й2. В слу- чае прямоугольной области D значения функции в гранич- ных точках в точности равны значениям граничной функции. Оценка погрешности и сходимость метода сеток. Погреш- ность, получаемая в методе сеток, состоит из погрешности замены дифференциального уравнения разностным уравне- нием, погрешности аппроксимации граничных условий и по- грешности приближенного решения системы разностных урав- нений. Разностная задача должна обладать свойствами устой- чивости и сходимости. Устойчивость схемы означает, что малым изменениям начальных условий соответствуют малые изменения решения разностной задачи. Сходимость схемы означает, что если неограниченно измельчать сетку, то после- довательность решений, получаемых методом сеток, будет сходиться равномерно к точному решению краевой задачи. 9.2. Решение задачи Дирихле для уравнения Лапласа методом сеток Рассмотрим решение методом сеток задачи Дирихле для уравнения Лапласа — уравнения эллиптического типа. Пусть требуется найти непрерывную функцию и -- и (х, у), удов- летворяющую внутри некоторой конечной области D урав- нению ДН=^ + ^2 = О, (9.4) дх2 ду2 4 ' 256
а на границе'Г — условию и{х, у)!г= f(x. у). (9.5) где f (х, у) — заданная непрерывная на Г функция. Предпола- гаем, что Г — простой замкнутый кусочно-гладкий контур. Выберем квадратную сетку с шагом h. Воспользуемся фор- мулами (9.3) для составления разностного уравнения, соответ- ствующего внутреннему узлу (i, k) = (х,, у^). Множество узлов, значения сеточной функции в кото- рых входят в выражение разностного урав- нения в точке (Z, /г), называют шаблоном. В данной схеме используется шаблон, когда система узлов расположена по «кресту» (рис. 28). Для каждого внутрен- него узла (х., у/,) сетки G получим ко- нечно-разностное уравнение Рис. 28 “1-1 I. k ~ ^Ui. k + , /.• , и1, /г-1-1 — 2"1. /г + “l, /г-1 _ /I2 + Л2 Преобразуем его к виду W/, Il = ’4 (н1—1. k + wi-f-l, Il + lli, Л-+-1 + ul, fe—1). (9.6) Погрешность замены дифференциального уравнения (9.4) системой разностных уравнений (9.6) имеет порядок О (h2) и оценивается неравенством i' Rik |< 7 где Mj = max (1^ • ° D dxi ' dyi ) Описанная здесь разностная схема обладает свойствами устой- чивости и сходимости. Система алгебраических уравнений (9.6) всегда совместна и имеет единственное решение. Его можно получить методом Гаусса. Но если число узлов сетки велико, то удобнее приме- нять итерационные методы (прогонки, простой итерации, Зейделя). В качестве примера итерационного метода рассмотрим про- цесс усреднения Либмана для системы (9.6). Выбрав началь- ные приближения последовательные приближения uilk для внутренних узлов сеточной области определяем по фор- муле «а=I «хч+“а..+«ей+(9J) п= 1, 2, 3. 9 6-467 257
Итерационный процесс продолжаем до тех пор, пока не совпа- дут два последовательных приближения и)"*1’ и «И с задан- ной точностью. Известно [15], что для любого шага h процесс Либмана' сходится к точному решению независимо от выбора началь- ного приближения. Погрешность приближенного решения имеет порядок О (/г2). Следует иметь в виду, что в силу прин- ципа максимума для значений искомой функции должны быть выполнены неравенства т < uij. < М, где т = min f (х, у), М = max f (х, у). Поэтому разумно полагать т с с М, т. е. выбрать в качестве и^1 сред- нее арифметическое значений и (х, у) в четырех граничных точках, расположенных па одной горизонтали и вертикали С ТОЧКОЙ Uitk- 9.3. Решение первой краевой задачи для уравнения параболического типа методом сеток Рассмотрим численное решение методом сеток уравнения теплопроводности ди « д2и — = сг — di дх*' (9.8) Пусть искомая функция и (х, f) определяет температуру в лю- бой точке х стержня длиной I в момент времени t. В области D = {(х, t) /0 < х < /, 0 < t с Т} заданы начальные усло- вия (распределение температуры в начальный момент вре- мени) и (х, 0) — f (х), 0 <х < I (9.9) и краевые условия первого рода (тепловые режимы на концах стержня) «(0,/) = ф(0. (910) «(U) = g(0. 1 ' о < t < т. Функции f (х), ср (/) и g (I) предполагаются непрерывными. В системе координат xOt построим прямоугольную сетку с шагом h по оси х и с шагом т по оси Ot. Введем обозна- чения: х£ — ih (i = 0, 1, 2, ..., п), h — Un. т tk = kx (k = 0, 1, 2, .... Ill), X = u(xit ik) = 11,1г- 258
Заменим частные производные в уравнении (9.8) их разност- ными отношениями (9.2) и (9.3). При этом используется явная схема выбора узлов, расположенных по шаблону, представ- ленному на рис. 29,а. Уравнение (9.8) аппроксимируется конечно-разностным уравнением ui, fc+l ui, k _ 2 U^+l. ft ft + “i—I, It -- U ---------1 Л - > т h2 которое можно привести к виду Ui, A+l = f 1---Ui, ь + Й2 -^2 («1+1, ft + Hf—1, ft). (9.11) По формуле (9.11) можно вычислить зна- чение искомой функ- ции и (х, t) в узлах k -г 1-го временного .(*•/*) слоя при t = /А+1, ес- Л ли известны ее зна- чения в узлах fe-го слоя. При t = 0 зна- чения функции получаем («Ч<) (<л) (<*Гл) Рис. 29 из начальных условий (9.9): «;.о = f (х/) (i = 1, 2, ..., п — 1). г 6 В крайних левом и правом узлах каждого слоя (I = 0; i = п) значения функции определяются из граничных условий и (0, 4) = ср (4), и (/, 4) = g (4), (fe = 0, 1. m). Таким образом, вычисления по явной схеме разностной аппроксимации (9.11) осуществляются поочередно для всех временных слоев достаточно просто, но они обладают одним существенным недостатком. Для устойчивости вычислений по явной схеме (9.11) накладываются дополнительные ограниче- ния на сетку: значения шагов по независимым переменным должны выбираться из соотношения 0<т<£2. (9.12) h2 В частности, при т = формула (9.11) существенно упро- щается: Ui, ft+i = у {ul+\, ft + ui—i, ft). (9.13) Ограничение (9.12) на выбор шага по переменной t может сильно увеличить объем вычислений. 9* 259
Выберем в разностной аппроксимации дифференциального оператора другой шаблон (рис. 29,6), применив разностную аппроксимацию dt т 1 ' • ' Такая схема выбора узлов называется неявной. Уравнение (9.8) заменится системой ui, k ~ ui, k— I 2 ui + l, k ~ ^ui, к + к I “ Q Д2 ’ которую можно преобразовать к виду I . , л О2т\ . Ui+i: к — I 1 т И,—,, к = —Щ, k—\. (9.15) Из краевых условий (9.10) следуют уравнения «о, к = <₽ ((/.), и„, к = g (tk), (k = 0, 1.т). (9.16) Система разностных уравнений (9.15), (9.16) имеет трехдиа- гональную матрицу и может быть решена методом прогонки. Уравнения (9.15) определяют приближенное значение функ- ции и(х, t) на /г-м временном слое (/ = Ц) по известным ее значениям на k—1-м слое. На нулевом слое (k = 0) значения и, о определяются из начальных условий (9.9): «,.< = = f U), (i = 1, 2... п — 1). Применение неявной разностной схемы (9.15) требует решения на каждом шаге системы алгебраических уравнений, но вычисления будут устойчивыми при любом выборе шагов Лит. Порядок аппроксимации разностной схемы (9.15) равен О (т + Л2) 115]. 9.4. Решение первой краевой задачи для уравнения гиперболического типа методом сеток В качестве примера уравнения гиперболического типа рас- смотрим уравнение малых поперечных колебаний струны = 0<х</, (9.17) дх2 ' ' В случае первой краевой задачи искомое отклонение струны в любой точке х в момент времени t должно удовлетворять начальным и (х, 0) = (р (х), ‘и 0) = g (х), 0 с х < I, (9.18) 260
и краевым условиям и (0, t) = а (/), и (I, /) = ₽ (/), 0 < t < Т. (9.19) Построим, в области D — {(х, у) I 0 с х < I, 0 < t <Т\ прямоугольную сетку х( = ih (i = 0, 1, .... /г), t<, = kx (k = — 0, 1, ..., m) и заменим частные производные в уравнении (9.17) разностными соотношениями на шаблоне типа «крест» (см. рис. 28). Для каждого внутреннего узла сетки получим конечно-разностное уравнение /г+1 ~ 2ui, k + ui. /г—I _ 2 ~ 2“<. l! + “i—1. k T2 “° Д2 » которое преобразуем к виду / Т2(72\ G2!2 /+! — 2 |^1-* + дт (и<+1, k + «/-i, k) — ui, k-\- (9.20) Схема вычислений по (9.20) является явной, она позволяет вычислить приближенно значения функции в узлах (k + 1)-го слоя по известным ее значениям на двух предыдущих слоях. На первых двух слоях значения функции определяются из начальных условий (9.18). Полагаем ui, о = ф (х/), (i = 0, 1, ... , п), (9.21) а для производной по времени применяем аппроксимацию (9.2): отсюда п,-| = 4- Tg(x() (/ = 0, 1, 2, ... , п). Порядок такой разностной аппроксимации равен О (т + + /i2). Схема вычислений будет устойчивой, если выпол- няется условие Куранта х<1г. (9.23) Если х <1г, то решение разностной задачи (9.20)—(9.22) равномерно стремится к решению исходной краевой задачи при h -> 0 и т -► 0. 9.5. Лабораторная работа 13. Решение задачи Дирихле для уравнения Лапласа в прямоугольной области методогл сеток Пусть функция и(х, у) удовлетворяет внутри прямоуголь- ной области D — {(х, г/)/0<х<о, 0 < у < Ь} уравнению Лапласа (9.4) и принимает на границе Г следующие значения: 261
м (0, у) = Л («/). У G [°. bV> и (°, У) = /2 (У)> У { [°. &1; и(х, 0) = f3(x), х£ .0, а]; и(х, Ь) = /4(х), х £ [0, а]. J (Z.3) (2.3) (3.3) 3 :t-----is-----i|t------------->; fd) p,l) (id) i u (f.0) (2.0) (3,0) 4 X Pnc. 30 где /(— заданные функции, удовлетворяющие условию не- прерывности и (х, у) на границе Г, т. е. /1 (0) = /з (0), Л (Ь) = /4 (0), /2 (0) = f3 (а), /2 (Ь) = /4 (п). Программа составлена для случая квадратной сетки с ша- гом Л = 1 и числом внутренних узлов, равным 6, т. е. х, = = х0 + Hi, (I = 0, 4), а - 4, ук = у0 + kh (k = 0,3), b = 3 (рис. 30). Квадратную сетку с шагом h в области G = {(х, г/)/0 < х < с, 0< <у < d} заменой переменной £ = X ц = -f- , 1] = -£ можно превратить в квадратную сетку с шагом 1 в области D = {(£, т])/0 < £ < а, 0 < < i]< 6) (а = 6 = 4) • Инструкция. 1. В режиме про- граммирования (F ПРГ) ввести программу. 2. В автоматическом режиме (F АВТ) ввести граничные условия по схеме (см. рис. 30): («02 + «1з) ПА, («2з) П7> («33 + «42) ПВ: («30 + «41) ПС, («20) П8, (н10 + ЦО1) ПД. 3. Ввести начальные значения (м<°>) в регистры 1—6: ^«;9 = Т («02 4“ «13 4“ «42 4* «lo)j П1, («22* ~ 4 (“з2 4" «2 3 4- «42 4” «2о)^ П2, = 4~ («02 4" «33 4" «42 4" «Зв)) ПЗ, ~ ~4 («01 4“ «13 4- «41 4- «1о)) П4, (U2? = 4- («01 4“ «23 + «41 4- «20)) П5, («З? = ’4 («01 4- «33 4- «41 4- «зо)) П6. 262
4. Нажать клавиши В/О С/П. После ОСТАНОВа спи- сать значения и*1,’ в такой последовательности: Изь «2?’ «11, «32, W22, Uj2. Нажать клавишу С/П для вычисления следующего значе- ния этой последовательности. 5. Повторить п. 4 следующего шага итерации до стабили- « он зации значении Программа 41 решения задачи Дирихле для уравнения Лапласа (9.4), (9.5) в прямоугольной области методом сеток по (9.7). Адрес Команда Код Адрес Ком ан да Код Адрес Команда 1 Код 00 7 07 15 ИП1 61 30 38 38 01 ПО 40 16 ИП5 65 31 ИПА 6— 02 ИПС 6С 17 ПП 53 32 ИП2 62 03 ИПЗ 63 18 38 38 33 ИП4 64 04 ИП5 65 19 ИПВ 6L 34 ПП 53 05 ПП 53 20 ИП2 62 35 38 38 06 38 38 21 ИП6 66 36 БП 51 07 ИП8 68 22 ПП 53 37 00 00 08 ИП2. 62 23 38 38 38 + 10 09 ИП4 64 24 ИП1 61 39 + 10 10 ИП6 66 25 ИПЗ 63 40 4 04 11 + + 26 ИП5 65 41 —L- 13 12 ПП 53 27 ИП7 67 42 КПО L° 13 38 38 28 + 10 43 С/П 50 14 ИПД 6Г 29 ПП 53 44 В/О 52 Распределение регистров памяти: Номер регистра 1 2 3 4 5 6 7 8 А В С Переменная «12 «22 «32 «11 «21 «31 «23 «20 «02 + «13 и33 + «42 «30 “Ь «41 D uoi + «ю Контрольный пример. Решить задачу ласа (9.4) в области Дирихле для уравнения Лап- D = {(*,</).! 0сх<4; О < у < 3} 263
с граничными условиями «'*=о = °; “'У=о = °: I у2 I х2 и! = -тг , и] = -fc-< |Л=1 9 |лг=3 16 выбрав квадратную сетку с шагом й= 1. Вычисляем значения и (х, у) в граничных точках (см. рис. 30); UqI ~ W02 — “10 «20 = “эО ~' O’ «41 =0,1111, &42 = 0,44 44, «,, = 0,0625; «,, = 0,2500; «,, = 0,5625. J J ’ 6 J 9 9 и u 9 Выполняем п. 2. Вычисляем начальные значения и заносим их в па- мять согласно п. 3: и'°> = 0,12; «(0) = 0,18; «<0) = 0,25; «(0)=6,04; «<0) = 0,09; «(0) = 0,17. 31 Нажимаем клавиши В/О С/П, после ОСТАНОВа списываем значение «01 = 0,1128. Нажимаем клавишу С/П, после ОСТАНОВа списываем значение = 0,0832 и т. д. (см. п. 4). Результаты удобно заносить в таблицу: Номер итерации 1'1? ^21 иг) у(П) и22 „(п) и12 0 0,17 0,09 0,04 0,25 0,18 0,12 1 0,1128 0,0832 0,0508 0,3249 0,1945 0,0769 2 0,1298 0,0938 0,0427 0,3328 0,1884 0,0734 3 0,1344 0,0914 0,0412 0,3324 0,1868 0,0726 4 0,1337 0,0904 0,0408 0,3319 0,1862 0,0724 5 0,1334 0,0901 0,0406 0,3316 0,1860 0,0723 6 0,1332 0,0900 0,0406 0,3316 0,1859 0,0722 7 0,1331 0,0899 0,0405 0,3315 0,1859 0,0722 8 0,1331 0,0899 0,0405 0,3315 0,1859 0,0722 Для выполнения следующего шага итерации нажимаем клавиши В/О С/П. Вычисления прекращаем, как только в двух последователь- ных приближениях совпадут три десятичных знака. Ответ. «и = 0,040 «21 = 0,090 и31 = 0,133 «12 = 0,072 и 22 = 0,186 и32 = 0,332 Задания к лабораторной работе 13. Решуть задачу Дирихле для уравнения Лапласа (9.4) в области 0 «с х < 4, 0 < j с 3 с данными граничными условиями, рассмотрев квадратную сетку с шагом h = 1. Итерационный процесс продолжить до совпадения трех десятичных знаков. 264
Номер варианта “ 1х=0 “ 1//=0 “ 1х=4 « 1у=3 1 —у2 X2 16-8//- у2 х2 — 6х — 9 2 —у2 X2 16 + 8у — у2 х2 + 6х — 9 3 —у3 0 48у — у2 Ох2 — 27 4 0 0 4г/ Зх 5 4у- 12 Зх — 12 4г/ Зх 6 12 — 4// 12 —Зх 0 0 7 —4г/ 0 0 Зх — 12 8 —4г/ Зх 12-4// Зх — 12 9 0 X2 64— 12 и2 х3 — 27х 10 -У3 0 Юу-у3 9х2 + Зх — 27 11 У2 X2 16 + у2 — 4у х2 + 9 — Зх 12 У2 х2 — Зх 14 + у2 х2 + 9 — Зх 13 12 — 4// 12 - Зх 4г/ Зх 14 0 0 16// — 4 г/2 Зх2 — 9х 15 0 Зх 12-4// 0 16 У2 —X2 г/2 + 8г/- 16 9 + 6х — х2 17 У2 —X2 у2 — 8у— 16 9 — 6х — х2 18 У3 0 у3 — 48// 27 — 9х2 19 0 0 —4г/ —Зх 20 12 — 4// 12-Зх -4^ —Зх 21 4г/-12 Зх — 12 0 0 22 4 г/ 0 0 12-Зх 23 4г/ —Зх 4,г/— 12 12 —Зх 24 0 —X3 12г/2 — 64 27х - х3 25 У3 0 г/3 — 52// 27 — 9х2 — Зх 26 -у2 —X2 4у — 16 — у2 Зх - х2 — 9 27 -У2 Зх — х2 -14-у2 Зх - х2 - 9 28 4у — 12 Зх — 12 —4у —Зх 29 0 0 Ау2 — 16// 9х — Зх2 30 0 —Зх 4у — 12 0 Глава 10. ВЫЧИСЛЕНИЕ ЧИСЛОВЫХ ХАРАКТЕРИСТИК СЛУЧАЙНЫХ ВЕКТОРОВ 10.1. Аксиоматическое определение вероятности Пусть в результате некоторого опыта (испытания) насту- пит одно из событий (0;. Совокупность всех таких событий Q называют основным пространством (пространством элемен- тарных событий), а сами события со; — элементарными собы- тиями. Все дальнейшие построения осуществляем для случая конечного (содержащего конечное количество элементов) мно- жества й: И = {(Dj, oj2.. со,,}. Случайным событием называется подмножество А основ- ного пространства Й. Пустое множество 0 и само множество 265
Q, рассматриваемые как подмножества основного простран- ства, называются соответственно невозможным и достоверным событиями. Определим на множестве Л = {Л : А с й) событий (под- множеств основного пространства Й) функцию р (Л), удовле- творяющую аксиоматике: 1) р (Л) > О, Л е Л; 2) Р (Й) = 1; 3) если Л п В = 0 (Л, fit Л), ТО р (Л (J В) = Р (Л) + + р {В). Определенная таким образом функция р называется вероят- ностью (вероятностной мерой), а ее значение р (Л) — вероят- ностью события Л. Из аксиоматики вероятности вытекают следующие ее свой- ства: р (Л) с 1; р (0) = 0; р (Л U В) = р (Л) + В (В) - - Р И П by, т ™ если Л = J ом,,, то р (Л) = 2^р Последнее свойство i=i (=1 означает, что достаточно задать вероятность на элементарных событиях. Совокупность (й, Л, pY гДе — множество элементарных событий, Л — совокупность всех подмножеств множества Й, р = р (.Л) — вероятность, определенная на множестве Л и удовлетворяющая аксиомам 1—3, называется вероят- ностным пространством. Отметим, что для бесконечного мно- жества й определение вероятности несколько усложня- ется. Результативность применения аксиоматического определе- ния связала с тем, что для многих реальных явлений харак- терна устойчивость частот событий при повторении опытов. Конкретные значения вероятностей на элементарных собы- тиях могут вычисляться либо приближенно, как частота при достаточно большом количестве опытов (статистическая ве- роятность), либо из соображений симметрии элементарных событий (классическая вероятность), либо из иных теоретиче- ских соображений. 10.2. Случайные величины и случайные векторы Пусть (й, Л, р) — вероятностное пространство. Случайной величиной X называется функция f = f (co,), определенная на множестве й элементарных событий. Значе- 266
ния этой функции Xi = / (со,) называются значениями слу- чайной величины X. Если одно значение случайной величины Xi отвечает совокупности элементарных событий со(1.... то можно построить новое вероятностное пространство с эле- ментарными событиями k р(т,) = £ р(ю1Ч,). С'=1 При изучении свойств случайной величины можно абстра- гироваться от конкретных случайных событий и рассматривать только значения случайной величины х,- = f (кч) и отвечающие им вероятности р, = р((о,). Таким образом, достаточно задать совокупность пар чисел (х(, р,) (/=1, ... , п; р[Х = Хс} — п — р,), где р,-> О, У, pi= 1. Такая совокупность называется законом распределения случайной величины X. Совокупность I случайных величин называется /-мерным случайным вектором. Закон распределения, например, двумер- ного вектора (X, Y) задается совокупностью троек чисел (х., у,, Pij) (/ = 1, . .. , n; / = 1, . .. , т), где рц > 0; £ Ра = 1 • г. / Здесь pi, — вероятность того, что случайная величина X при- мет значение xit a Y — уПо закону распределения случай- ного вектора (X, У) можно восстановить закон распределения т (%., р,) случайной величины X: pt = У либо аналогично /=1 закон распределения случайной величины Y. 10.3. Числовые характеристики случайного двухмерного вектора Свойства случайной величины X описываются момешами /е-го порядка (Z>=1,2, . . .): /И*Х = £ p,xk, k=\,4, ... ; п '=1 ‘ (Ю.1) Л1*Х = Е Pi (Xi — /ИХ)*, k = 2, 3, ... , i=i где /ИХ —момент 1-го порядка. Момент Мк (/? = 2, 3, . . .) называется центральным мо- ментом /г-го порядка, а случайная величина X— MX центрированной случайной величиной. 2.67
Момент первого порядка MX называется математичес- ким ожиданием случайной величины X: MX = Р.У- (10.2) Центральный момент второго порядка случайной величины X называется дисперсией DX = V Pi (х, - МХУ = S ррс] - (MX)2, (10.3) а корень квадратный из дисперсии — средним квадратическим отклонением: ох = V DX. (Ю.4) Случайная величина X* = — называется нормированной. Ковариацией случайных величин X и У называется мате- матическое ожидание произведения центрированных случайных величин: К (X, У) = М [(X - MX) (У - МУ)] = £ Pi/ (Xi - MX) х X (tjt — MY) = £ pipciiji — MX MY. (10.5) Ковариация нормированных случайных величин X* и У* называется коэффициентом корреляции случайных величин X и У: (10.6) 10.4. Лабораторная работа 14. Вычисление числовых характеристик двухмерного случайного вектора Вычисление математических ожиданий MX и МУ, дис- персий DX и DY, средних квадратических отклонений ох, Оу, ковариации К (X, У) п коэффициента корреляции р (X, У) (10.2)—(10.6) осуществляется согласно программе 42. Программа 42 вычисления числовых характеристик двух- мерного случайного вектора по (10.2)—(10.6). 268
Адрес Команда Код Содержа нне операции 00 ИП1 61 01 П2 42 02 0 00 03 ПА 4— 04 ПВ 4: 05 С/П 50 ОСТАНОВ для ввода Y. 06 П8 48 07 С/П 50 ОСТАНОВ для ввода У! 08 П9 49 09 10 С/П ПД 50 4Г ОСТАНОВ для ввода р.7 11 ИПА 6— Вычисление т 12 + 10 13 ПА 4— 14 ИП9 69 15 ИПД 6Г 16 X 12 tn 17 ПД 4Г Вычисление S У,Рц /=| 18 ИПВ 6L 19 '+ 10 20 ПВ 4L 21 ИП9 69 22 ипд 6Г 23 X 12 24 ПД 4Г Вычисление А4(У2) 25 ИПЗ 63 26 + 10 27 ПЗ 43 28 FL2 58 29 07 07 цикл по индексу / 30 ИПВ 6L 31 ИП5 65 Вычисление MY 32 _1_ 10 33 П5 45 34 ИП8 68 35 ИПА 6- 36 37 X ПД 12 4Г Вычисление MX 38 ИП7 67 39 + 10 40 П7 47 41 ИП8 68 42 ИПД 6Г 43 44 X ИП6 12 66 Вычисление М(Хг) 45 + 10 46 П6 46 269
Адрес Команда Код Содержание операции 47 ИП8 68 48 ИПВ 6L 49 50 X ИП4 12 64 Вычисление М (X, К) 51 + 10 52 П4 44 53 FLO 5 Г 54 00 00 Цикл по индексу i 55 ИП7 67 56 57 ИП5 X 65 12 Вычисление К (X, У) 58 11 59 ПС 4С 60 ИПЗ 63 61 ИП5 65 62 FX2 22 Вычисление DY 63 — 11 64 ПВ 4L 65 ИП6 66 66 ИП7 67 67 FX2 22 Вычисление DX 68 — 11 69 ПА 4— 70 12 71 F/ 21 72 13 Вычисление р (X, У) 73 ПД 4Г 74 С/П 50 Инструкция. 1. Нажав клавиши F ПРГ, ввести программу. 2. В автоматическом режиме (F АВТ) очистить регистры памяти: О ПЗ П4 П5 П6 П7 и ввести значения и и т (п) ПО (т) П1 3. Нажать клавиши В/О С/П и вводить данные по схеме: (%1) С/П (У1) С/П (/9и)С/П (г/2)С/П (р12)С/П ... (t/ш) С/П (р|,„)С/П (х2) С/П (ух) С/П (р21)С/П (г/2)С/П (р22)С/П ... (t/m) С/П (р,т) С/П (х,) С/П (ух) С/П (/?,„) (С/П) (б/2)С/П (А,2)С/П .... Ы С/П (/?„,„) С/П (ввод каждого числа проводить после ОСТАНОВа). Результаты вычислений хранятся в регистрах: 270
Номер регистра 7 6 5 3 1 А в с д Перемен- ная мх М (X2) Л1 (У) М (У2) /И (X, Y) О(Х) О (У) К(Х, У) р(*. У) Контрольный' пример. Двухмерный случайный вектор (X, У) задан таблицей вероятностей р^: V,- У/ 1 1 2 — 1 0,1 0,2 0 0,2 0,2 1 0,2 0,1 Найти числовые характеристики случайного вектора. 1. Нажимаем клавиши F ПРГ и клавиши программы. 2. В автоматическом режиме (F АВТ) вводим данные и присту- паем к вычислениям: О ПЗ П4 П5 П6 П7 3 ПО 2 П1 В/О С/П 1 /—/ С/П 1 С/П 0,1 С/П 2 С/П 0,2 С/П 0 С/П 1 С/П 0,2 С/П 2 С/П 0,2 С/П 1 С/П 1 С/П 0,2 С/П 2 С/П 0,1 С/П Списываем с индикатора значение р (X, У) = —0,2582. Из соответствующих регистров вызываем значения числовых характеристик: ИП7 (.ИХ = 0) НП5 (Л4У — 1,5) НПА (DX = ==0,6) ИПВ (ОУ = 0,25) ИПС (АГ (X, У) =—0,1) Задания к лабораторной работе 14. Координаты случайного вектора (X, У) равны соответственно: х,- = = 0,in + 0,1 (i — 1), уj= 0,1/ (n — помер варианта; i = 1, ..., 4; / = 1, ...» 4), вероятное! Х^ / z X. 'и зад 1 ты та 2 блицей 3 4 1 0,00 0,00 0,05 0,04 2 0,05 . 0,06 0,06 0,07 3 0,10 0,19 0,14 0,05 4 0,05 0,05 0,05 0,04 для вариантов 1 —15 и т. 16.ТНЦС [ Х^/^ I 2 3 4 1 0,04 0,05 0,05 0,05 2 0,05 0,14 0,19 0,10 3 0,07 0,06 0,06 0,05 4 0,04 0,05 0,00 0,00 для вариантов 16—30. 271
Найти математические ожидания MX, МУ, дисперсии DX, DY, корреляционный момент К (X, V) и коэффициент корреляции р(Х, У). Ответы к заданиям по лабораторным работам Лабораторная работа I Номер вари- анта Х2 Номер вари анта Xi Хп 1 0,28 0,11 0,09 16 1,61 — 1,55 —2,20 2 —0,12 0,19 0,39 17 1,25 -0,28 —0,31 3 -1,23 0,55 1,30 18 0,98 —0,88 -0,66 4 0,86 0,88 -0,38 19 2,18 0,66 —2,13 5 —0,62 0,66 0,52 20 15,66 — 17,24 —4,96 6 -2,48 3,25 2,15 21 0,95 —0,09 0,22 7 1,93 —0,29 —0,42 22 0,59 0,18 —0,61 8 -0,51 0,71 0,26 23 0,39 —0,36 —0,56 9 0,32 0,01 —0,23 24 -0,84 0,98 —1,57 10 0,29 0,22 0,18 25 1,14 1,11 -0,01 11 1,88 2,68 2,65 26 0,31 0,30 0,04 12 0,63 0,47 —0,25 27 0,87 1,02 0,99 13 0,61 —0,08 —0,28 28 0,60 0,50 1,18 14 —0,01 —0,13 0,44 29 0,94 0,75 -0,31 15 -34,98 2,88 54,04 30 0,83 0,54 1,02 Лабораторная работа 2 Номер варианта X Номер варианта X 1 -0,567 16 —2,532 2 1,310 17 0,824 3 1,114 18 — 1,532 4 -0,696 19 0,998 5 1,259 20 — 1,478 6 1,213 21 —0,121 7 1,174 22 1,059 8 0,567 23 0,424 9 0,696 24 —0,532 10 —1,259 25 -1,864 11 — 1,174 26 —0,357 12 0,567 27 0,683 13 -1,213 28- —0,682 14 0,399 29 — 1,696 15 -0,824 30 1,695 272
Лабораторная работа 3 Номер вари- анта Решение системы Количество итераций Номер вари- анта Решение системы Количество итераций 1 —0,9284; 1,3886 8 16 —0,1381; —0,1381 и 2 0,4512; 0,4915 7 17 0,0854; —0,0854 8 3 0,9639; 0,8833 13 18 —0,8971; 1 4 4 0,1322; 0,1359 10 19 -0,9284; — 1,3886 8 5 0,0936; 0,1230 7 20 0,4512; —0,4915 7 6 —0,0975; 0,0837 6 21 0,9639; —0,8833 13 7 0,1381; —0,1381 11 22 0,1322; —0,1359 10 8 0,9284; 1,3886 8 23 0,0936- —0,1230 7 9 —0,0854; -0,0854 4 24 -0,0975 —0,0837 6 10 0,8971; 1 8 25 0,1381; 0,1381 11 И -0,4512; 0,4915 7 26 —0,0854 0,0854 8 12 -0,9639; 0,8833 13 27 0,8971; — 1 4 13 —0,1322; 0,1359 10 28 0,9994; —0.0012 3 14 —0,0936; 0,1230 7 29 3,2926 —0,1436 8 15 0,0975; 0,0837 6 30 —0,0936 —0,1230 7 Лабораторная работа 4 Номер варианта Решение системы Номер варианта Решение системы 1 1,1961; 0,8360 14 0,3106; — 1,0100 2 0,5960; 1,6778 15 —0,4427; -1,0281 3 —0,8723; 1,1908 16 0,1579; 0,9999 4 0,4263; 1,5316 17 — 1,1961; 0,8360 5 0,4800; 0,9617 18 -0,5960; 1,6778 6 — 1,0100; 0,3106 19 0,8723; 1,1908 7 — 1,0281; —0,4427 20 —0,4263; 1,5316 8 0,9999; 0,1579 21 —0,4800; 0,9617 9 0,8360; 1,1961 22 1,0100; 0,3106 10 1,6778; 0,5960 23 1,0281; —0,4427 11 1,1908; —0,8723 24 —0,9999; 0,1579 12 1,5316; 0,4263 25 1,1961; —0,8360 13 0,9617; 0,4800 26 0,4263; — 1,5316 273
Лабораторная работа 5 Номер варианта Полином Лагранжа Полином Ньютона X Р (X) X Р l.r) 1 0,967 2,6318 0,033 1,0316 2 0,934 2,5465 0,066 1,0650 3 0,901 2,4641 0,099 1,0999 4 0,868 2,3844 0,132 1,1365 5 0,835 2,3073 0,165 1,1746 6 0,802 2,2327 0,198 1,2143 7 0,769 2,1605 0,231 1,2556 8 0,736 2,0906 0,264 1,2983 9 0,703 2,0229 0,297 1,3427 10 0,670 1,9573 0,330 1,3885 11 0,637 1,8937 0,363 1,4360 12 0,604 1,8321 0,396 1,4850 13 0,571 1,7724 0,429 1,5356 14 0,538 1,7145 0,462 1,5878 15 0,505 1,6584 0,495 1,6417 16 0,472 1,6039 0,528 1,6973 17 0,439 1,5512 0,561 1,7546 18 0,406 1,5001 0,594 1,8138 19 0,373 1,4506 0,627 1,8748 20 0,340 1,4027 0,660 1,9378 21 0,307 1,3564 0,693 2,0028 22 0,274 1,3116 0,726 2,0699 23 0,241 1,2684 0,759 2,1391 24 0,208 1,2266 0,792 2,2106 25 0,175 1,1865 0,825 2,2845 26 0,142 1,1479 0,854 .2,3514 27 0,109 1,1108 0,891 2,4397 28 0,076 1,0754 0,924 2,5212 29 0,043 1,0416 0,957 2,6056 30 0,010 1,0094 0,990 2,6929 Лабораторная работа 6 1. Коэффициенты линейной регрессии ср (х) = с0 + сгх равны: Ci - 1,21 для всех вариантов, с0 = 0,04 + 0,1 (k — 1), где к = 1, 2, ..., 30 — номер варианта. 2. Коэффициенты квадратичного аппроксимирующего многочлена у — сгх? + С]Х + г0 равны: с2 = —0,01; = 0,40 для всех вариан- тов; cn = k — 1 для k = 1, 2, ..., 10; с0 = 6,1/ — 1 для I = 11, 12, .... 19; с0 = 0,2г — 2,9 для г = 20, 21. 30. 274
Лабораторная работа 7 1. Значения коэффициентов аппроксимирующего тригонометрического полинома приведены в таблице: Номер варианта Go <2j ь. Ь, ^3 1 2,5321320 1,1077879 —0,2245564 0,2500798 —0,1056834 0,0368864 —0,0245783 2 2,5705927 1,0845726 —0,4585502 0,2030523 —0,2090754 0,0175342 —0,04520395 3 2,610645 1,0116406 —0,6921065 0,1131374 —0,2911903 —0,0130757 —0,0527429 4 2,6523212 0,8882906 —0,9146170 —0,0097512 —0,3341164 —0,0446585 —0,0410484 5 2,6956552 0,7160684 — 1,1151959 —0,1484272 —0,3245472 —0,0647336 —0,0060457 6 2,7406847 0,4988690 —1,2831708 —0,2805481 —0,2569586 —0,0634128 0,031523 7 2,7874515 0,2429330 — 1,4085625 —0,3818514 —0,1356176 —0,0375550 0,0695120 8 2,835992 —0,0433052 — 1,4825621 —0,4302561 0,0251215 0,0072849 0,0871245 9 2,886343 —0,3494801 — 1,4980356 —0,4103068 0,2022685 0,0577018 0,0730156 10 2,9385522 —0,6636092 — 1,4499983 —0,3169827 0,3671075 0,0958407 0,02726805 И 2,9926705 —0,9724675 — 1,3359588 —0,1577769 0,4893310 0,1047634 —0,029166 12 3,0487362 — 1,2621118 —1,256126 —0,0367068 0,47521 0,0542206 —0,0748834 13 3,1067877 — 1,5185367 —0,91355838 0,2690952 0,5081114 0,0097195 —0,12757986 14 3,1668872 — 1.7283012 —0,6144453 0,47088145 0,3830630 —0,0718590 —0,11563254 15 3,2290987 — 1,8790437 —0,2678071 0,6156786 0,1787262 —0,1397050 —0,0593501
Продолжение табл. Номер варианта а, аг b3 16 3,29345557 — 1,9600373 0,1145857 0,6715676 —0,0785651 —0,1632319 0,0269125 17 3,3599965 — 1,962908 0,5187699 0,6187970 —0,3510671 —0,1253517 0,1168367 18 3,428808 — 1,8822876 0,9288895 0,4550976 —0,5943076 —0,0326224 0,1787209 19 4,4999707 — 1,7160915 1,3275893 0,1974256 —0,7632346 0,0846162 0,1845776 20 3,573501 — 1,4655881 1,6968021 —0,1201108 —0,8201500 0,1832803 0,1209582 21 3,6494312 — 1,135673 2,0187776 —0,4506608 —0,7432735 0,2245644 —0,0014077 22 3,7279065 —0,7352398 2,27681 —0,7401784 —0,532900 0,1886780 —0,1448152 23 3,8090082 —0,2770262 2,4556082 —0,9346656 —0,2126519 0,0814020 —0,2540406 24 . 3,892723 0,2231592 2,5419725 —0,9899808 0,1742989 —0,6796102 —0,2778970 25 3,9790875 0,7470729 2,5260352 —0,882515 0,5707181 —0,2130041 —0,1942192 26 4,068301 1,2741177 2,4021812 —0,6162724 0,9116917 —0,3055842 —0,0245402 27 4,160479 1,7816623 2,168947 —0,2229625 1,1330028 —0,2996209 0,1714987 28 4,25553 2,2464433 1,8287652 0,2435993 1,1833195 —0,1785892 0,3203779 29 4,3534985 2,6462915 1,388679 0,71450337 1,0375467 0,0334850 0,3646956 30 4,4547002 2,9607065 0.8612696 0.8612696 1,1125084 0,704778 0,26781035
2. Значения аппроксимирующего тригонометрического полинома <р3 (х) п в точке х — — равны: □ Номер варианта п Цт) Номер варианта п ф’(т) 1 0,4533297 16 0,9499335 2 0,5449081 17 0,9610482 3 0,61175846 18 0,9898851 4 0,65219073 19 1,0281999 5 0,6743552 20 1,0591598 6 0,6916536 21 1,062264 7 0,7168135 22 1,0201587 8 0,7568104 23 0,9250952 9 0,8104163 24 0,7827991 10 0,8691371 25 0,6123101 И 0,9210287 26 0,4416598 12 0,9558270 27 0,3006266 13 0,9693574 28 0,2127956 14 0,9654699 29 0,1893959 15 0,9546787 30 0,2268240 Лабораторная работа 8 1. Коэффициенты с0, ct, сг аппроксимации функции f (х) полиномами Лежандра до второго порядка приведены в таблице: Номер варианта С(> С1 Сг Номер варианта Сп с, С2 1 1,23 0,00 0,65 16 0,29 —0,08 —0,10 2 1,04 0,00 -0,12 17 2,47 1,50 1,30 3 0,96 —0,33 0.13 18 1,23 1,50 0,65 4 0,68 0,00 —0,48 19 0,95 0,42 -0,24 5 0,00 0,59 0,00 20 0,73 —0,20 0,06 6 0,46 —0,21 -0,10 21 1,09 0,00 0,33 7 0,00 1,49 0,00 22 0,55 -0,21 0,16 8 1,23 -1,50 0,65 23 2,06 2,06 0,08 9 0,30 0,14 —0,12 24 0,72 —0,63 —0,01 10 1,60 —2,06 1,90 25 0,64 —0,30 —0 24 11 0,55 0,00 0,11 26 0,72 0,63 —0,01 12 0,61 0,00 -0,19 27 0,88 0,00 -0,20 13 0,96 0,33 0,13 28 0,00 0,65 0,00 14 0,37 0,00 —0,22 29 1,70 0,60 —0,08 15 0,00 0,35 0,00 30 0.62 —0,24 о,н 277
ЬЗ 2А. Значения коэффициентов Хаара до третьего порядка для функции f (х) приведены в таблице: Номер варианта са1 ^11 С21 С2г С31 сза ^33 С34 1 8,93-10"1 8,17-10-1 5,04-10-1 4,89-10-2 1,22-10-1 1,79-10-1 4,16- IO-2 2,72-Ю-з 2 8,18-10-1 8,76-10"1 4,72-10-1 6,65- IO-2 8,08-10-2 1,94-10-1 5,47- IO-2 4,19-10-з 3 1,07 9,23-10-1 4,19-10-1 8,88-10-2 3,55- IO-2 2,05-10-1 7,01-10-2 6,33-Ю-з 4 1,15 9,55-Ю-1 3,49- 10-1 1,16- ю-i -1,19-10-2 2,09-10-' 8,79-10-2 9,35-10-з 5 1,22 9,69- 10-1 2,62-10"1 1,49-10-1 —5,86-10-2 2,05-10-1 1,08-10-1 1,36-10-2 6 1,29 9,62- 10-1 1,62-10-1 1,88-10-1 -1,02-10-1 1,92-10-1 1,28-10-1 1,92-10-2 7 1,35 9,34- IO"1 5,50-10-2 2,30-10-1 -1,40-10-1 1,70-10-1 1,50-10-1 2,66- IO"2 8 1,40 8,83-10-1 —5,50-10-2 2,76-10-1 -1,70-10-1 1,40- 10-1 1,70-10-1 3,61-10-2 9 , 1,44 8,09-10-1 -1,62-10-1 3,25-10-1 -1,92-10-1 1,02-10-1 1,87- Ю-i 4,78-10-2 10 1,48 7,13-10-1 -2,62- IO"1 3,75-10-1 -2,05-10-1 5,86- IO-2 2,00-10-1 6,21-10-2 11 1,50 5,98- 10-1 —3,49-10-1 4,21-10-1 -2,09-10-1 1,19-10-2 2,08-10-' 7,87- IO-2 12 1,53 4,65- 10-1 -4,19-10-1 4,62-10-1 -2,05-10-1 —3,55-10-2 2,08-10-' 9,75-10-2 13 1,54 3,18-10-1 -4,71-10-1 4,94-10-1 -1,94-10-1 -8,08-10-2 1,99-10-1 1,18-10-1 14 1,55 1,61- ю-1 -5,05-10-1 5,14-10-1 -1,79-10-1 -1,22- Ю-i 1,82-10-1 1,39-10-1 15 1,55 0 -5,18-10-1 5,18-10-1 — 1,60-10-1 -1,56-10-1 1,56-10-1 1,60-Ю-1
16 1,55 -1,61- 10-i -5,14-10-1 17 1,54 —3,18-10-1 -4,94- IO"1 18 1,53 —4,65-Ю-1 -4,62-10-1 19 1,50 -5,98- IO"1 —4,21-Ю”1 20 1,48 -7,13- IO"1 -3,75-10-' 21 1,44 -8,09-10"1 -3,25- IO"1 22 1,40 -8,83-10-1 -2,76- 10-1 23 1,35 -9,34-10-1 -2,30-1 О"1 24 1,29 -9,62-1 О-1 — 1,87-IG-1 25 1,22 -9,69-10-1 -1,49-ю-1 26 1,15 -9,55-10-1 —1,16-ю-1 27 1,07 -9,23-10-1 —8,88-10-2 28 9,82-10"1 -8,76-10"1 —6,65.10-2 29 8,93- IO"1 -8,17- 10-1 -4,89- IO"2 с 30 8,03-1 О"1 -7,48- IO"1 -3,52- IO-2 5,05-Ю~1 -1,39-10-! -1,82-10-! 1,22-10-! 1,79-10-1 4,72-10-1 -1,18-10-! -1,99- 10"1 8,08-10-2 1,94-10-1 4,19-10-1 -9,15- IO"2 —2,08-10-! 3,55-10-2 2,05-10-1 3,49-10"! -7,87- IO’2 -2,08- 10-1 -1,19-10-2 2,09-10-1 2,62-10”1 —6,21 - IO-2 -2,00- IO”1 -5,86-10-2 2,05-10-1 1,62-10-1 -4,78- IO-2 -1,87-10-! -1,02-10-! 1,92-10-1 5,50- IO-2 -3,61-10-2 —1,70-10-! -1,40-10-! 1,70-10-1 -5,50-10-2 -2,66- IO"2 -1,50-10-! -1,70-10-1 1,40-10-1 -1,62-10-1 -1,92- IO'2 — 1,28-Ю-1 -1,92-10-1 1,02-10-1 —2,62-10'1 -1,35- IO-2 -1,08-10-1 -2,05-10-1 5,86-10-2 -3,49-10-1 —9,35-Ю-3 -8,79-10-2 -2,08-10-1 1,19-10-2 —4,19-10-1 —6,33-10-3 —7,01 - IO"2 -2,05-10-1 —3,55-10-2 —4,72-10"1 -4,19-10-2 —5,46.10-2 -1,94-10-1 —8,08-10-2 -5,04- IO"1 -2,12-10-2 -4,16- IO’2 —1,19-10-1 -1,22-10-1 —5,18-Ю-1 -1,73-10-2 -3,10- io-2 -1,60-10-1 -1,56-10-1
2Б. Значения аппроксимирующей ступенчатой функции Хаара третьего Г i — 1 / 1 порядка g3 (х) на отрезках —1 (i = 1, 2, . . . , 8) приведены в таблице: Номер варианта ы С4 1<Х> — |<ю L > И [И 1 1 1 -х>| Л. 0=1 V* 1 1 1 О Jcc m j оо । - се| О> 1 N 1 2,667 2,180 1,354 0,639 0,229 0,062 0,013 2,03- IO"3 2 2,686 2,363 1,579 0,802 0,309 0,091 0,020 3,41-10-3 3 2,654 2,512 1,806 0,987 0,410 0,129 0,031 5,63-10-з 4 2,571 2,618 2,026 1,191 0,532 0,180 0,046 9,11-10-з 5 2,442 2,677 2,229 1,410 0,677 0,247 0,068 1,44- IO'2 6 2,275 2,683 2,404 1,636 0,846 0,332 0,099 2,25-10-2 7 2,079 2,638 2,543 1,862 1,036 0,438 0,141 3,43-10-2 8 1,862 2,543 2,638 2,077 1,244 0,566 0,196 5,14-10-2 9 1,636 2,404 2,683 2,275 1,466 0,717 0,267 7,54-10-2 10 1,410 2,229 2,677 2,442 1,693 0,892 0,357 1,08-IO"2 11 1,191 2,026 2,618 2,571 1,918 1,087 0,468 1,53-10-1 12 0,987 1,806 2,512 2,654 2,130 1,299 0,602 0,212 13 0,802 1,579 2,363 2,686 2,320 1,522 0,759 0,287 14 0,639 1,354 2,180 2,667 2,478 1,750 0,939 0,382 15 0,499 1,138 1,972 2,596 2,596 1,972 1,138 0,499 16 0,382 0,939 1,750 2,478 2,667 2,180 1,354 0,639 17 0,287 0,759 1,522 2,320 2,686 2,363 1,579 0,802 18 0,212 0,602 1,299 2,130 2,654 2,512 1,806 0,987 19 0,153 0,468 1,087 1,918 2,571 2,618 2,026 1,191 20 0,108 0,357 0,892 1,693 2,442 2,677 2,229 1,410 21 7,54-10-2 0,267 0,717 1,466 2,275 2,683 2,404 1,636 22 5,14-Ю-2 0,196 0,566 1,244 2,077 2,638 2,543 1,862 23 3,43-IO"2 0,141 0,438 1,036 1,862 2,543 2,638 2,079 24 2,25-10"2 0,099 0,332 0,846 1,636 2,404 2,683 2,275 25 1,44. IO'2 0,068 0,247 0,677 1,410 2,229 2,677 2,442 26 9,11-Ю-2 0,046 0,180 0,532 1,191 2,026 2,618 2,571 27 5,63-Ю-з 0,031 0,129 0,410 0,987 1,806 2,512 2,654 28 3,41-10-= 0,020 0,091 0,309 0,802 1,579 2,363 2,686 29 2,03- 10-з 0,013 0,062 0,229 0,639 Г,354 2,180 2,667 30 1,18-Ю-з 8,09-Ю-з 0,042 0,166 0,499 1,138 1,972 2,596 280
Лабораторная работа 9 Значения определенного интеграла, вычисленные по формуле Симпсона при 2п ~ 6. Номер варианта ь $ f W dx а Номер варианта ь § f (х) dx а 1 1,111 16 1,174 2 6,230 17 2,152 3 3,059 18 3,104 4 0,659 19 3,104 5 0,086 20 0,587 6 1,118 21 1,250 7 1,124 22 0,526 8 8,980 23 0.364 9 0,310 24 —2,150 10 0,904 25 0,787 11 0,747 26 1,075 12 2,546 27 1,463 13 2,546 28 0,747 14 —0,123 29 2,754 15 0,875 30 2,020 Лабораторная работа 10 Номер варианта *min f min Номер варианта *min f min 1 -0,35 0,827 16 0,35 0,827 2 0,70 3.442 17 -0,70 3,442 3 0,57 2,330 18 1,76 2,330 4 0,00 2,000 19 0,00 2,000 5 0,74 2,264 20 -0,74 2,264 6 —0,99 0.174 21 0,99 0 174 7 -0,45 -0,232 22 0,45 —0,232 8 0,01 1,000 23 —0,01 1,000 9 —0,38 —9,049 24 0,62 —5.508 10 —0,28 —0,133 25 0,28 —0,133 11 -0,99 2,022 26 0,99 2,022 12 2,02 3,442 27 0,50 3,442 13 0,70 0,827 28 1,42 0,827 14 1,76 2,330 29 1,76 2.330 15 0,91 2,264 30 1,00 2,000 281
Лабораторная работа II Номер вари- анта xmin Угтнп J min Номер вари- анта- xmin Ут in f min 1 —0,40 -0.90 0,523 16 —0,28 -0,28 0,728 2 0,00 0,00 2,000 17 1,00 0,00 — 1,000 3 0,35 0,00 0,827 18 0,00 1,10 —0.296 4 0,00 —0,35 0,827 19 0,00 -0,35 0,827 5 0,00 0,59 —0,277 20 -0,69 0,00 0,614 6 0,69 0,00 0,614 21 0,00 0,35 0,827 7 0,00 1,00 —1,000 22 —0,59 0,00 —0,277 8 1,10 0,00 —0,296 23 0,35 0,00 0,827 9 —0,28 0,28 0,728 24 0,00 -0,59 -0,277 10 0,00 0,00 2,000 25 0,28 0,28 0,728 11 —0,35 0,00 0,827 26 0,00 — 1,00 — 1,00 12 —0,35 0,00 0,827 27 — 1,10 0,00 —0,296 13 0,35 0,00 0,827 28 0,00 0,69 0,614 14 0,65 0,00 —0,390 29 0,00 — 1,10 —0,296 15 0,00 0,35 0,827 30 0,00 -0,69 0,614 Лабораторная работа 12 1 1омср варианта и (0) <; (0.0'2) у (0,04) У (0,06) 1 1 1.02041 1,04169 1,06390 2 1 1,02061 1,04249 1,06571 3 0 0,02000 0,04001 0,06004 4 0 0,02020 0,04083 0,06191 5 0 0,02040 0,04163 0,06371 6 0 0,02020 0,04079 0,06176 7 0 0,02020 0,04084 0,06195 8 1 1,01712 1,03482 1,05311 9 1 1,02061 1,04249 1,06571 10 0 0,02040 0,04163 0,06371 11 0 0,02040 0,04163 0,06371 12 1 0,98039 0,96156 0,94347 13 0 —2,67.10~6 —2,13.10’ —7,20-Ю-6 14 1 0,98059 0,96232 0,94513 15 0 0,02000 0,03997 0,05980 16 0 0,02020 0,04079 0,06176 17 0 —0,01960 —0,03843 —0,05650 18 0 —0,01960 —0,03919 —0,05817 19 0 —0,01980 —0,03920 —0,05820 20 1 0,98346 0.96750 0,95213 21 1 0,98059 0,96232 0,94513 22 0 —0,01960 —0,03843 —0,05650 23 0 0,02000 0,04001 0,06004 24 1 1,01702 1,03443 1,05219 25 3 3,02231 3,04530 3,06898 26 1 1,02082 1,04341 1,06793 27 1 0,98059 0,96232 0,94513 28 1 0,94726 0,89756 0,85063 29 1 1,02076 1.04308 1.06705 30 1 1,02061 1.04247 1,06563 282
Лабораторная работа 13 Номер вари- анта Номер шага „(п) “з1 „(л) “21 „(п) “и „(п) “32 w(n) 22 Дп) ^12 1 0 10 —0,75 —2,000 -1,75 — 1,000 — 1,75 —2,000 -4,25 -7,000 -5,25 —8,000 -7,000 2 0 10 12,25 14,000 8,25 7,000 5,25 2,000 12,75 17,000 8,75 8,000 5,75 1,000 3 0 10 25 26,000 13,75 11,000 7 2,000 33,5 46,000 22,25 16,000 15,5 —2,000 4 0 7 3,25 3,000 2,5 2,000 1,75 1,000 4,25 6,000 3,5 4,000 2,75 2,000 5 0 8 0,5 1,000 — 1 —2,000 -2,5 —5,000 2,5 5,000 1 2,000 -0,5 —1,000 6 0 6 2,75 2,000 3,5 4,000 4,25 6,000 1,75 1,000 2,5 2,000 3,25 3,000 7 0 10 — 1,75 — 1,000 —2,5 —2,000 —3,25 —3,000 -2,75 -2,000 —3,5 -4,000 -4.25 —6,000 8 0 10 2,5 5,000 1 ' 2,000 -0,5 -1,000 0,5 1,000 — 1 —2,000 -2,5 -5,000 9 0 10 6,25 18,000 3,5 2,000 6.75 -2,000 —2,75 -9,000 — 5,5 — 16,000 —2,25 — 11,000 10 0 12 28.25 28,828 16.25 12,900 8,75 2,961 37,25 51,410 25,25 19,814 17,75 -0,056 11 0 10 8 9,280 6,25 5.857 5,5 3,285 8,5 9,286 6,75 6.857 6 5Ж 12 0 8 6,25 7,095 5,25 3,286 5,25 1,762 7,75 10,095 6,75 6.286 6,75 4,762 13 0 8 6 5,000 6 6,000 6 7,000 6 7,000 6 6,000 6 5,000 14 0 10 3 4,501 1,5 0,982 1,5 -0,165 4 5,023 2,5 —0,410 2,5 — 1,644 15 0 10 4,25 6,000 3,5 4,000 2,75 2,000 3.25 3.000 2,5 2,000 1,75 1,000 283
Ответы к вариантам J6—30 получим умножением на (—1) соответ- ствующих результатов (варианты 1 — 15), увеличив на 15 номер варианта. Лабораторная работа 14 МУ = 2,5 КГ1; DX = 7,37 IO’3; DV = 1,05 • 10“2; К (X, У) = — 2,15 • 10-3; р (X, У) = —2,44 • 10’1; MX = = 1,77 • 10-’ + 0,In при п = 1—15; MX = —1,377 • 0,1/1 при л = 16—30. СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ 1. Албсрг Дж., Нильсон Э., Уолт Дж. Теория сплайнов и ее при- менение.— М. : Мир, 1972.— 316 с. 2. Бахвалов Н. С. Численные методы.— М. : Наука, 1975,— 630 с. 3. Белый Ю. А. Считающая микроэлектроника.— М. : Наука, 1983,- 120 с. 4. Березин И. С., Жидков Н. П. Методы вычислений.— М. : Наука, 1966.— Т. 1.— 464 с. 5. Березин И. С., Жидков И. П. Методы вычислений.— М. : Физ- матгиз, 1962.— Т. 2.— 620 с. 6. Васильев Ф. П. Лекции по методам решения оптимальных за- дач.—М. : Изд-во Моск, ун-та, 1974.— 374 с. 7. Васильева В. И. Основы теории сплайнов,— Иркутск: Изд-во Иркут, ун-та, 1982,— 174 с. 8. Вергасов В. А., Журкин И. Г., Красиков М. В. Вычислительная математика.— М. : Недра, 1976.— 230 с. 9. Воеводин В. В. Вычислительные основы линейной алгебры.— М.: Наука, 1977,- 303 с. 10. Воеводин В. В., Кузнецов Ю. А. Матрицы и вычисления,— М. : Наука, 1984.— 320 с. 11. Волков Е. А. Численные методы.— М. : Наука, 1982.— 254 с. 12. Грабарь Л. П. Таблицы полиномов Чебышева, ортонормированных на системе равноотстоящих точек.— М. : Вычисл. центр АН СССР, 1965,- 198 с. 13. Гребенников А. И. Метод сплайнов и решение некорректных задач теории приближений.— М. : Изд-во Моск, ун-та, 1983.— 208 с. 14. Демидович Б. П., Марон И. А. Основы вычислительной матема- тики.— М. : Наука, 1966.— 664 с. 15. Демидович Б. П., Марон И. А., Шувалова Э. 3. Численные методы анализа.— М. : Наука, 1967.— 368 с. 16. Дьяконов В. П. Расчет нелинейных н импульсных устройств на про- граммируемых микрокалькуляторах : Справ, пособие.— М. : Ра- дио и связь, 1984.— 176 с. 17. Жалдак М. /., Рамський 10. С. Програмуванпя на м!крокальку- ляторах : ПоЛбпик.— К. : Рад. шк., 1985.— 224 с. 18. Завьялов Ю. С., Квасов Б. И., Мирошниченко В. Л. Методы сплайн- фуикций.— М. : Наука, 1980.— 352 с. 19. Калипгкин И. Н. Численные методы,— Наука, 1978.— 512 с. 20. Кан/порович Л. В., Акилов Г. П. Функциональный анализ.— М. : Наука, 1977,— 740 с. 21. Коллатц Л. Функциональный анализ и вычислительная матема- тика.— М. : Мир, 1969,— 447 с. 284
22. Копченоеа Н. В., Марон И. Д. Вычислительная математика и пгп мерах и задачах,- М. : Наука, 1972,- 367 с. Пр" 23. Корнейчук Н. П. Сплайны в теории приближения.— м • Инкя 1984,— 352 с. '' ’ 24. Ляшко И. И., Макаров В. Л., Скоробогатько А. А. Методы вьи-ис- лепий.— К. : Вища шк. Головное изд-во, 1977,— 406 с. 25. Макаров В. Л., Хлобыстов В. В. Сплайн-аппроксимация санк- ций.— М. : Высш, шк., 1983,— 80 с. 26. Плис А. И., Сливина П. А. Лабораторный практикум по высшей математике.— М. : Высш, шк., 1983.— 20S с. 27. Сигорский В. П. Математический аппарат инженера.— К. : Тех- н!ка, 1977.— 768 с. 28. Стечкин С. Б., Субботин Ю. Н. Сплайны в вычислительной мате- матике.— М. : Наука, 1976.— 248 с. 29. Трохименко Я. К., Любич Ф. Д. Инженерные расчеты на микро- калькуляторах,— К. : Техшка. 1980.— 381 с. 30. Трохименко Д. К., Любич Ф. Д. Инженерные расчеты на програм- мируемых микрокалькуляторах,— К. : Техн1ка, 1985.— 328 с. 31. Трохименко Д. К., Любич Ф. Д. Радиотехнические расчеты на микрокалькуляторах,— М. : Радио п связь, 1983.— 256 с. 32. Фаддеев Д. К., Фаддеева В. Н. Вычислительные методы линейной алгебры.— М. : Наука, 1960.— 656 с. 33. Форсайт Дж., Малькольм М., Моулер К. Машинные методы мате- матических вычислений.— М. : Мир, 1980.— 279 с. 34. Хемминг Р. В. Численные методы.— М. : Наука, 1968.— 398 с. 35. Химмельблау Д. Прикладное нелинейное программирование.— М. : Мир, 1975.— 536 с. 36. Цветков А. Н, Прикладные программы на микро-ЭВМ «Электро- ника БЗ-21».— М. : Финансы и статистика, 1972 — 128 с. 37, Цветков А. Н., Епанечников В. А. Прикладные программы для микро-ЭВМ «Электроника БЗ-34», «Электроника МК-56», «Элек- троника МК-54»,— М, : Финансы и статистика, 1984,— 175 с.
ОГЛАВЛЕНИЕ Предисловие ................................................3 Глава 1. Программируемые электронные микрокалькуляторы . . 6 1.1. Краткая история развития вычислительных средств . . 6 1.2. Общие сведения о программируемых микрокалькуляторах 9 1.3. Ввод чисел..........................................И 1.4. Микрокалькуляторы «Электроника БЗ-21» и «Электроника МК-46» 14 1.5. Микрокалькуляторы «Электроника БЗ-34», «Электроника МК-54», «Электроника МК-56». «Электроника МК-61» и «Электроника МК-52» 19 1.6. Работа микрокалькулятора в автоматическом режиме . . 32 1.7. Работа микрокалькулятора в программируемом режиме . 33 1.8. Составление программы.................................34 1.9. Ввод исходных данных и пуск программы.................38 1.10. Запись программы.....................................40 Глава 2. Элементы теории погрешностей ....................42 2.1. Классификация погрешностей ...........................42 2.2. Абсолютная и относительная погрешности ...............43 2.3. Запись приближенных чисел. Правила округления ... 44 2.4. Погрешности функций ..................................45 2.5. Погрешности вычислений на микрокалькуляторах ... 48 Глава 3. Методы решения систем линейных алгебраических урав- нений .....................................................50 3.1. Решение системы линейных алгебраических уравнений мето- дом Гаусса.............................................50 3.2. Вычисление определителя и обратной матрицы методом Гаусса 56 3.3. Погрешность решения системы линейных уравнений ... 57 3.4. Лабораторная работа 1. Решение системы линейных алгеб- . раических уравнений методом Гаусса—Жордана .... 61 3.5. Метод прогонки .......................................67 3.6. Итерационные методы решения линейных систем .... 70 Глава 4. Численные методы решения нелинейных уравнений и систем ....................................................77 4.1. Численные методы решения нелинейного уравнения с одним неизвестным ................................................77 4.2. Лабораторная работа 2. Приближенное-решение нелинейного уравнения методом Ньютона—Рафсона...........................87 4.3. Численные методы решения системы нелинейных уравнений 89 4.4. Лабораторная работа 3. Приближенное решение системы двух нелинейных уравнений методом простой итерации . . 92 286
4.5. Решение систем нелинейных уравнении методом Ньютона 97 4.6. Лабораторная работа 4. Приближенное решение системы двух нелинейных уравнений методом Ньютона ..... gg Г лава 5. Приближение функций 102 5.1. Постановка задачи приближения функций ...... 5.2. Полиномиальная .интерполяция ......................... 107 5.3. Лабораторная работа 5. Полиномиальная интерполяция 119 5.4. Аппроксимация функции методом наименьших квадратов 127 5.5. Точечная аппроксимация функции методом наименьших квадратов ............................................• . 130 5.6. Точечная аппроксимация функций алгебраическими много- членами ................................................ . 133 5.7. Лабораторная работа 6. Точечная аппроксимация функции’ алгебраическими многочленами методом наименьших квад- ратов .....................................................135 5.8. Точечная аппроксимация функций ортогональными поли- номами ....................................................139 5.9. Точечная аппроксимация функции тригонометрически?.ш полиномами ................................................144 5.10. Лабораторная работа 7. Аппроксимация функции тритоне- метрическими полиномами по методу наименьших квадра- тов .......................................................149 5.11. Интегральная аппроксимация функции методом иаимет- ших квадратов ............................................,153 5.12. Лабораторная работа 8. Интегральная аппроксимация функции методом наименьших квадратов ортогональными полиномами ............................................... 159 5.13. Аппроксимация сплайнами ...............................164 5.14, Определение и способы аналитического представления сплайнов ..................................................166 5.15. Интерполяция кубическими сплайнами.....................172 5.16. Кубические В-сплайцы...................................183 Глава 6. Численное дифференцирование и интегрирование функ- ции одной переменной........................................191 6.1. Численное дифференцирование функций с помощью интер- поляционных полиномов ..........................191 6.2. Численное дифференцирование функций с помощью сплайнов 198 6.3. Численное интегрирование функций одной переменной . . 201 6.4. Лабораторная работа 9. Численное интегрирование функ- ции одной переменной.......................................214 Глава 7. Численные методы минимизации функции ...............221 7.1. Постановка задачи ......................................221 7.2. Одномерная минимизация функции..........................223 7.3. Лабораторная работа 10. Одномерная минимизация функции 225 7.4. Метод покоординатного спуска............................227 7.5. Метод градиентного спуска...............................229 7.6. Метод Ньютона ..........................................230 7.7. Лабораторная работа 11. Методы минимизации функции нескольких переменных......................................233 Глава 8. Численные методы решения задачи Коши для обыкно- венных дифференциальных уравнений ........................ 8.1. Метод Эйлера ........................................ 8.2, Метод Рунге—Кутта.................................... 287
8.3. Метод Адамса..........................................246 8.4. Метод Милна...........................................248 8.5. Лабораторная работа 12. Численные методы решения задачи Коши........................................................249 Глава 9. Решение краевых задач математической физики методом сеток ...........................................254 9.1. Метод сеток...........................................254 9.2. Решение задачи Дирихле для уравнения Лапласа методом сеток.......................................................256 9.3. Решение первой краевой задачи для уравнения параболиче- ского типа методом сеток....................................258 9.4. Решение первой краевой задачи для уравнения гиперболиче- ского типа методом сеток....................................260 9.5. Лабораторная работа 13. Решение задачи Дирихле для урав- нения Лапласа в прямоугольной области методом сеток . . 261 Глава 10. Вычисление числовых характеристик случайных век- торов .................................................265 10.1. Аксиоматическое определение вероятности..............265 10.2. Случайные величины и случайные векторы...............266 10.3. Числовые характеристики случайного двумерного вектора 267 10.4. Лабораторная работа 14. Вычисление числовых характери- стик двумерного случайного вектора..........................268 Ответы к заданиям по лабораторным работам..................272 Список рекомендуемой литературы ...........................284 Учебное пособие Галина Григорьевна Барановская Ирина Николаевна Любченко МИКРОКАЛЬКУЛЯТОРЫ В КУРСЕ ВЫСШЕЙ МАТЕМАТИКИ Практикум Редактор Л. И. Мубаракшина Художественный редактор С. П. Духленко Технический редактор /1. И. Омоховская Корректор А. Г. Телалова Информ, бланк № 10837 Сдано в набор 27.06.86. Подп. п печать 09.01.87. БФ 26547. Формат 84X1081/32. Бумага типогр. № 1. Лит. гари. Выс. печать. Усл. печ. л. 15.12. Усл. кр.-отт. 15,38. Уч.-изд. л. 15.5. Тираж 20000 экз. Изд. № /515,. Зак. 6-467. Цена 70 к. Головное издательство издательского объединения «Ви:ца школа», 252054, Киев-54, ул. Гоголевская, 7. Книжная фабрика им. М. В, Фрунзе, 310057, Харьков-57, Допец-Захаржевского, 6/8.