Текст
                    НОСАЧ В. В.
шение задач
оксумации
помощью
персональных
компьютеров
1994 г.


Носач В.В. Решение задач аппроксимации с помощью персо- персональных компьютеров. — М.: МИКАП, 1994. — 382 с: ил. 78. ISBN 5-85959-067-9. В книге содержится достаточно полное изложение основных современных методов аппроксимации функций, заданных экспериментальными данными. Для различных классов аппроксимирующих функций рассматриваются главные теоретические поло- положения, а также проанализированы возможные подходы к решению задач аппрокси- аппроксимации. На основе теоретических результатов сформулированы алгоритмы вычисления коэффициентов приближений. Рассмотренные алгоритмы реализованы в 27-ми про- программах аппроксимации на Бэйсике для IBM-совместимых компьютеров. Программы размещены на дискете, которую можно приобрести в АО "МКС Дельта" (тел. (факс) @95L96-74-08), а листинги программ содержатся в тексте книги. Выходная инфор- информация, полученная в результате обработки данных с помощью этих программ, пред- представляется в виде удобных для интерпретации таблиц и графиков. Книга предназна- предназначена для научных работников и инженеров, которые в своей практической деятель- деятельности, сталкиваются с необходимостью обработки данных. Она может быть использована также преподавателями, аспирантами и студентами вузов в качестве учебного пособия. Табл. 15, ил. 78 Оформление художника Р. Бушуева Издание осуществлено совместно с фирмой «Дельта МКС-Плюс» ISBN 5-85959-067-9 © В.В.Носач, 1993
ПРЕДИСЛОВИЕ АВТОРА В программном обеспечении современных робототехнических и моделирующих комплексов, систем автоматизированного проекти- проектирования, автоматизированных систем обработки экспериментальных данных и других областях инженерной деятельности в настоящее время широко используются различные математические методы апп- аппроксимации. Современные математические методы аппроксимации достаточно подробно изложены в ряде книг отечественных и зару- зарубежных авторов. Однако большинство из этих книг имеет ярко выра- выраженный теоретический характер. В них основное внимание уделяется рассмотрению различных теоретических результатов типа теорем существования и единственности и в недостаточной мере ос- освещены практические аспекты использования методов аппроксима- аппроксимации в прикладных исследованиях. В первую очередь это относится к книгам по теории сплайнов и нелинейному оцениванию параметров. Разрыв между общей теорией аппроксимации, базирующейся на последних достижениях функционального анализа, и уровнем прак- практического использования инженерами методов аппроксимации еще более увеличился в результате широкого распространения компью- компьютерной техники (в частности персональных компьютеров). Основные пакеты программ, разработанные в настоящее время для ЕС ЭВМ, СМ ЭВМ и персональных компьютеров, представляют собой объект- объектные модули, записанные на магнитных носителях в кодах ЭВМ. В практических расчетах каждую из этих программ можно использовать только как "черный ящик", позволяющий по заданной входной инфор- информации получить определенную выходную информацию. Для корректного использования библиотек прикладных про- программ, а также глубокого понимания полученных результатов, ин- инженер должен иметь достаточно высокий уровень математической подготовки. Однако сильная занятость в конкретной области иссле- исследований практически не оставляет инженеру времени на изучение математических методов, обычно разбросанных по малодоступным источникам. Этот факт часто снижает эффективность использования инженером компьютеров в прикладных исследованиях. Не менее сложная ситуация возникает и при использовании раз- различных интегрированных пакетов программ обработки данных , раз- разработанных для персональных компьютеров. Каждый из этих пакетов представляет собой достаточно большую программу, в кото- которой предусмотрены различные варианты использования ряда мате- математических методов, причем обычно отсутствует подробное их описание. Поэтому на практике инженеру приходится затрачивать очень большие усилия на освоение интегрированных пакетов про- программ. Если же инженеру и удается освоить эти пакеты, то чаще всего он использует их "вслепую" без достаточно глубокого понимания сущ-
ности реализованных в них методов. Игнорирование особенностей математических методов часто значительно снижает, а иногда и вов- вовсе обесценивает результаты вычислений на ЭВМ. Проблемы, связанные с использованием интегрированных паке- пакетов, иногда возникают также и у высококвалифицированных специ- специалистов, создающих достаточно сложные прикладные программы. В свои программы они часто пытаются включить совместно модули из различных интегрированных пакетов. Это обычно приводит к значи- значительному увеличению объему используемой памяти компьютера, так как при такой стыковке модулей в ней должны содержаться исполь- используемые интегрированные пакеты. Поэтому на практике программисты часто предпочитают сами разрабатывать соответствующие недостающие фрагменты програм- программы, реализующие различные методы аппроксимации, или же ис- использовать готовые программы, предварительно трансформировав их с других алгоритмических языков, причем чем проще исходный язык программирования, тем легче осуществить перевод программы. Та- Такой подход иногда может привести к непредвиденным трудностям, так как опубликованные программы часто содержат преднамеренно внесенные в них ошибки, защищающие программы от несанкциони- несанкционированного использования. Если же программы и не содержат оши- ошибок, но написаны на достаточно сложных языках, то программисту приходится затрачивать очень большие усилия на трансформацию программы, ее ввод в память ЭВМ и последующую отладку. Данная книга предназначена читателю, имеющему минималь- минимальную математическую подготовку в объеме программы технического вуза. В ней подробно и достаточно строго изложены различные под- подходы к решению задач аппроксимации. Книга состоит из трех глав. В первой главе рассматриваются ме- методы построения алгебраических и тригонометрических приближе- приближений для функций, заданных экспериментальными данными. Во второй главе изложены некоторые алгоритмы сплайн-аппроксима- сплайн-аппроксимации. В ней использован только минимально необходимый объем по- понятий теории сплайнов. В частности, не рассматриваются В-сплайны, подробно описанные в литературе по теории сплайнов. В третьей главе представлены различные методы оценивания парамет- параметров нелинейных моделей по экспериментальным данным. Каждый из разделов книги построен таким образом, что сначала рассматривается идейное содержание излагаемого в нем метода и приводятся необходимые для понимания сущности метода математи- математические сведения, после чего на основе теоретических результатов строится алгоритм решения задачи. Книга имеет справочный харак- характер. Особенность стиля изложения материала в книге состоит в том, что для освоения излагаемого в каждом из разделов метода практи- практически нет необходимости изучать другие разделы. Большинство из представленных в книге алгоритмов реализовано на алгоритмиче-
ском языке Бейсик. Выбор Бейсика в качестве языка программирова- программирования обусловлен как легкостью его освоения инженером, так и нали- наличием компиляторов или интерпретаторов с этого языка практически для всех персональных компьютеров. В силу простоты Бейсика, а также наличия в нем достаточно широкого набора операторов, ти- типичных для многих языков программирования, программы книги можно легко трансформировать в программы на других алгоритми- алгоритмических языках. В тексте представлены листинги 27 программ аппроксимации, а дискету с программами можно приобрести в АО "МКС Дельта". Про- Программы на дискете записаны в формате А, позволяющем работать с ними в Турбо-Бейсике. В каждой из рассмотренных в книге про- программ предусмотрено три варианта графического представления ре- результатов обработки на экране (а следовательно и на принтере) компьютера. Результаты обработки можно вывести на печатающее устройства в виде таблиц. Выходная информация представляется в форме, удобной для интерпретации результатов обработки данных. В книге содержатся примеры практического использования программ при обработке результатов испытаний летательных аппаратов. Она позволит читателю, имеющему минимальную математическую под- подготовку, освоить и использовать в своей практической работе раз- различные методы аппроксимации. Эта книга является первой в серии написанных автором и готовя- готовящихся к изданию книг по применению математических методов и пер- персональных компьютеров при обработке экспериментальных данных. В последующих книгах серии будут рассмотрены : — методы классической математической статистики; — многомерный регрессионный анализ; — методы оптимального планирования эксперимента; — методы выделения трендов временных рядов; — алгоритмы построения параметрических моделей случайных процессов; — методы расчета цифровых фильтров и цифровая обработка сигналов; — методы построения обобщенных сплайнов; — линейное программирование; — специальные задачи линейного программирования; — сетевые задачи оптимизации; — нелинейное программирование; — методы вычислительной математики; — устойчивые методы обработки данных и другие вопросы. Для каждой из книг серии будут предложены дискеты, содержа- содержащие по 30-50 программ на алгоритмическом языке Бейсик, что по- позволит исследователю существенно облегчить процесс практического освоения современных прикладных математических методов.
ВВЕДЕНИЕ При проведении испытаний современных сложных технических систем приходится обрабатывать и анализировать очень большие объемы информации. В настоящее время качественная обработка этой информации невозможна без применения компьютерной техни- техники. Компьютер позволяет обрабатывать данные только в тех случа- случаях, когда четко сформулированы алгоритмы, однозначно определяющие последовательность необходимых вычислений. В алгоритмах обработки экспериментальной информации часто возникает необходимость представления в сжатой форме эмпириче- эмпирических зависимостей между параметрами, описывающих поведение сложной системы. Такое сжатие информации в современной матема- математике осуществляется с помощью различных методов аппроксимации функций. В программном математическом обеспечении современных ком- компьютеров имеются программы, или пакеты программ аппроксимации функций. Однако при решении различных практических задач эти программы чаще всего используются исследователем "вслепую", так как в их описаниях обычно содержится только минимальное количе- количество информации о реализованных в данных программах математи- математических методах. Затруднения возникают также при попытке более глубоко разобраться в сущности соответствующих математических методов, которые описаны в различных, часто малодоступных иссле- исследователю изданиях. Указанные трудности, с которыми сталкивается инженер при попытках применить математические методы и компь- компьютеры в прикладных исследованиях, и послужили поводом для напи- написания данной книги. Книга состоит из трех глав, в которых рассмотрены основные направления теории аппроксимации. В первой главе рассмотрены методы аппроксимации функций с помощью алгебраических полиномов и тригонометрических много- многочленов. Значительное внимание в ней уделено рассмотрению интер- интерполяционных полиномов Лагранжа и Ньютона, а также проанализированы условия, при которых их использование приводит к корректным результатам. Основное внимание в этой главе уделя- уделяется рассмотрению алгоритмов вычисления коэффициентов алгебра- алгебраических и тригонометрических приближений методом наименьших квадратов. Изложены алгоритмы построения полиномов чебышев- ского приближения. Во второй главе рассмотрены алгоритмы аппроксимации быстро изменяющихся зависимостей, имеющих достаточно сложную струк- структуру, с помощью сплайнов. Сплайн представляет собой функцию, со- составленную из "кусков" алгебраических полиномов, стыкованных между собой таким образом, что результирующая функция имеет несколько непрерывных производных. Сплайны позволяют решать
не только задачи аппроксимации сложных зависимостей, но и по- построить эффективные алгоритмы численного дифференцирования и интегрирования функций, заданных экспериментальными данными. В третьей главе изложены и проанализированы различные мето- методы нелинейного оценивания параметров. Задача нелинейного оцени- оценивания возникает в тех случаях, когда путем теоретического анализа физической сущности изучаемого процесса удается получить анали- аналитическое выражение функции, описывающей зависимость между оп- определенными параметрами системы. При этом аппроксимирующая функция содержит некоторое число неизвестных параметров, кото- которые входят в ее аналитическое выражение нелинейно. Нелинейные зависимости можно использовать для прогнозирования поведения системы в область, где отсутствуют экспериментальные данные. В тексте книги содержатся программы аппроксимации на алго- алгоритмическом языке Бейсик, позволяющие обрабатывать данные на IBM-совместимых персональных компьютерах. Эти программы мож- можно легко трансформировать на алгоритмические языки Фортран, Па- Паскаль и Си. Книга позволит научным работникам, инженерам, аспирантам и студентам вузов освоить и использовать на практике методы аппроксимации при обработке данных на персональных ком- компьютерах.
Глава 1 АППРОКСИМАЦИЯ ФУНКЦИЙ, ЗАДАННЫХ ЭКСПЕРИ МЕНТАЛЬНЫМИ ДАННЫМИ, С ПОМОЩЬЮ АЛГЕБРАМ ЧЕСКИХ И ТРИГОНОМЕТРИЧЕСКИХ МНОГОЧЛЕНОВ В ходе автоматизированной обработки результатов испытаний технических систем часто возникает необходимость аппроксимации функций, заданных экспериментальными данными. В простейшей постановке задача аппроксимации формулируется следующим обра- образом. Пусть в результате проведения эксперимента в точках х\ ,...,** найдены значения у\,...,уи некоторой неизвестной функции у = /(*), а также задан определенный класс функций L = {<р (х; в)}, где в = (в\ ,...,0*) — вектор произвольных парамет- параметров. Для функции у = f (х) необходимо выбрать функцию <р (х; в) из класса L , в некотором смысле близкую к / (х) . В зависимости от вы- выбора класса функций L , а также критерия близости функций, мож- можно построить различные алгоритмы аппроксимации, позволяющие решать самые разнообразные практические задачи. Одной из простейших задач аппроксимации является задача ин- терполяцииг для которой функции / (х) и <р (х; в) считаются "близкими", если т.е. f(x) и <р (х; в) совпадают в точках xj, /= 1,...,Л^ .Точки xj обычно называются узлами интерполяции. Эта задача возникает в тех случаях, когда известно, что ошибки эксперимента являются на- настолько малыми, что их можно не учитывать. Если ошибки в экспериментальных данных являются существен- существенными, в качестве критерия близости функций можно взять сумму квадратов ф (в) = 2 (я - *>(*,; о)J , /■-I а соответствующий метод аппроксимации называется методом наи- наименьших квадратов. Для решения различных практических задач можно также ис- использовать минимаксный критерий, при котором функция <р (х; в) выбирается из условия минимума функции (в) = max I yj - <p(Xj; в) 1 <j<N I 8
В данной главе рассмотрены некоторые алгоритмы аппроксима- аппроксимации функций, заданных экспериментальными данными. При постро- построении этих алгоритмов мера близости между функциями задается с помощью одного из рассмотренных выше критериев, а в качестве класса функций L выбирается совокупность алгебраических полиномов или тригонометрических многочленов. 1.1. АППРОКСИМАЦИЯ ФУНКЦИЙ С ПОМОЩЬЮ АЛГЕБРАИЧЕСКИХ ИНТЕРПОЛЯЦИОННЫХ ПОЛИНОМОВ Данные, полученные при испытаниях сложных технических систем, для наглядности часто представляются графически, или в виде таблиц. Ввод сложных графиков, или таблиц большого объе- объема в ЭВМ приводит к усложнению алгоритмов обработки. Поэтому на практике программист обычно предпочитает иметь дело не с графиком и таблицами, а с формулами. Если ошибки в экспери- экспериментальных данных можно не учитывать, то информацию, задан- заданную графически или таблично, часто представляют в помощью интерполяционных формул. Достачно простые и легко реализуе- реализуемые на ЭВМ формулы дают алгебраические интерполяционные многочлены (алгебраические интерполяционные полиномы). Хотя с их помощью можно аппроксимировать только простейшие зави- зависимости, в ряде случаев они дают приемлемые практические ре- результаты. Задача аппроксимации функции с помощью алгебраического ин- интерполяционного полинома формулируется следующим образом. Пусть аналитическое выражение функции у = / (х) неизвестно, а заданы только ее значения yi,...,^ в точках xi,...,x^ некоторого отрезка [а,Ь]. Необходимо найти полином степени п i-0 для которого выполняются условия . /= 1.....ЛГ. A.1.2) Так как в точках X/ значения функции у, и значения полинома Pn(Xj) должны совпадать между собой, то неизвестные коэффици- коэффициенты полинома можно найти путем решения системы уравнений A.1.2). В общем случае, когда п + 1 < N, система A.1.2) не имеет ре- решений. Попытка разработать математический аппарат, позволяю- позволяющий решить такие системы, привела к созданию метода наименьших квадратов. Если среди узлов х, нет совпадающих между собой то- точек, то система линейных алгебраических уравнений A.1.2) может
иметь единственное решение только при л + 1 = ТУ, т.е. п « N — 1 , так как определителем этой системы является опреде- определитель Вандермонда, имеющий вид: Х\ Х\ . . . м 1 Х2 Х2 ♦ • • #2 = 11 (*' - */) • A.1.3) <*>/> Известно, что при различных xs этот определитель отличен от нуля [4,12,16,22 ], т.е. система уравнений имеет решение. Отсюда следует, что по заданным N парам чисел (*/, yj) j - ly...,N мы можем найти полином степени GV- 1). Этот полином яв- является единственным. В самом деле, если существует два полинома ¥$li(x) ylF%l\(x) , удовлетворяющих условиям интерполяции, то разность Р(х) = /#>,(*) - P%U{x) , представляющая собой алгебраический полином степени не выше (N - 1)-й, в N точках обращается в нуль. Однако это невозможно, так как в силу основной теоремы высшей алгебры произвольный ал- алгебраический полином n-й степени не может иметь более п корней [12,16,22]. Ниже мы рассмотрим некоторые наиболее распространенные ме- методы построения интерполяционных полиномов. &> Интерполяционная формула Лагранжа Одну из простейших формул интерполяции позволяет построить метод Лагранжа. По условию мы должны найти полином Рн-\(х) степени (N- 1), который в Сточках совпадает с jVзначениями фун- функции/(jc) . Очевидно, что если мы сможем найти систему полиномов {<р}{х)}, каждый из которых в точке х, равен 1, а в остальных точках равен нулю, то интерполяционный полином можно представить в виде: N A.1.4) Это следует из того, что Ры-\(хт) = 2 » <pj(xm) = 2 У/ <Р&*т) + У»#>т(хт) = ут . 10
Последовательность функций {<pj(x)} такого типа называется фунда- фундаментальной системой полиномов. По предположению полином <fj{x) в точках хк , при к * j обра- обращается в нуль. Поэтому его можно представить в виде N <рКх) = С}(х — xi) ...(х — x#-i)(x — Xy+i) ...(х — Хы) ~ Cj 11 (x — X*) , A.1.5) ще Су — некоторая постоянная. Учитывая, что у>/(х/) = 1 , получим N П(* v \ (х - хк) A.1.6) Отсюда следует, что интерполяционный полином Лагранжа имеет вид (*"" х0 (х"" x/0(x " х/ч0 '(^ ~ Xn) 1 *1. Выражение A.1.7) можно представить в более компактной фор- форме. Для этого введем вспомогательную функцию производная которой равна N N ". A.1.9) Легко заметить, что знаменатель функции A.1.6) равен П (xj). Тог- Тогда умножив и разделив каждое из слагаемых выражения A.1.7) на (x—Xj) , а также заменив выражение в числителе функцией П(х) , получим общеизвестную форму полинома Лагранжа ■ <lU0) или 11
/ЯВ1 (X—Xj) Если узлы интерполяции являются равноотстоящими, т.е. то интерполяционный полином Лагранжа имеет вид Pn-i(x) - A.1.12) где зависимая переменная * введена с помощью замены Значения интерполяционного полинома Лагранжа равны значе- значениям функции /(х) только в N точках; в остальных точках отрезка [a9b] разность отлична от нуля. Поскольку полином Лагранжа используется для ап- аппроксимации функции f(x) , возникает вопрос, как сильно Рн-\(х) может отличаться от f(x) в точках, отличных от узловых. Функция Я(х), характеризующая точность аппроксимации, называется оста- точнцм членом интерполяции. Остаточный член интерполяции мож- можно оценить теоретически, если функция f(x) N раз непрерывно дифференцируема. В этом случае остаточный член можно предста- представить в виде ^f , A.1.13) где | — некоторая точка отрезка [а, Ь ], зависящая от х. На практике для оценки точности аппроксимации часто исполь- используют такие характеристики, как абсолютная погрешности метода в точуе х €Е \пуЪ] и абсолютная погрешность метода на отрезке [й,Ь]. Абсолютной погрешностью метода в точке xG [a,b] называется по возможности малая положительная функция д(х) > 0 такая, что Шх)\ <д(х). A.1.14) Наименьшее число 6*, для которого д(х) < <$* для любого х, на- называется абсолютной погрешностью метода на отрезке [а,А]. Если каким-то образом мы сможем найти число DN = max /^(x) , то абсолютные погрешности формулы Лагранжа а<х<Ь ' ' в точке х и на отрезке [а, Ь ], соответственно, равны 12
д(х) = N, A.1.15) <5 = лп max asxsb |tf(x) A.1.16) В качестве примера рассмотрим построение интерполяционного полинома Лагранжа, аппроксимирующего зависимость тяги несуще- несущего винта вертолета от высоты Я висения у земли. Необходимость ап- аппроксимации функции Т ш f (H) возникает при разработке алгоритмов автоматизированной обработки тяговых характеристик несущего винта. Экспериментальные значения этой функции, пол- полученные в ходе испытаний вертолета Ми-6, представлены на рис. 1.1. Jlertto заметить, что зависимость тяги от высоты по форме напо- напоминает параболу. Для аппроксимации функции Т - / (Н) с помощью интерполяционного полинома Лагранжа второй степени необходимо иметь значения этой функции в трех точках. Значения тяги и высоты, с помощью которых можно построить интерполяционный полином, за- заданы в таблице 1.1. Таблица 1.1. ] Hj;m ТыП 1 5 37,5 2 15 34,2 3 30 33 Согласно формуле A.1.7) интерполяционный полином Лагранжа имеет вид т_37 ЛЯ-15)(Я-30) 2 (Я-5ХЯ-30) (Я-5ХЯ-15) _ '' E-15)E-30) ' A5-5)A5-30) м C0-5)C0-15) - 0,15(Я-15)(Я-30) - 0,228(Я-5)(Я-30) -I- 0,088(Я-5)(Я-15) = = 0,01Я2 - 0,53Я + 39,9 . В точках Hj значения этого полинома равны экспериментальным данным. В остальных точках погрешность аппроксимации не превы- превышает 150 кг. На первый взгляд может показаться, что точность аппроксима- аппроксимации можно повысить за счет увеличения числа узловых точек N. Од- Однако, исследования показали, что при N-* «> последовательность полиномов {PN-i(x)} не всегда сходится к Дх). Отсутствие сходи- сходимости на практике проявляется в том, что при увеличении N откло- отклонение полинома Ры-\(х) от f(x) не уменьшается. В случае, когда функцию Дх) можно разложить в степенной ряд, сходящийся при произвольном конечном х , iVi(x)-* Дх) , причем сходимость n-i (х)} к Дх) является равномерной. Такие функции называются 13
целыми [13]. Рунге построил пример бесконечно дифференцируемой функции у as f(x) = 1 /A+25jc2) , для которой интерполяционный процесс не сходится на отрезке [-1, 1 ]. Более того, при увеличении N значения полинома Pn-\ (х) могут становиться сколь угодно большими по абсо- абсолютной величине. Математически это свойство выражается следую- следующим образом [13,21,22] lim max I Pn-i(x) - /(jc)| = « Например, для N ш 6 полином Ps(x) имеет отклонение от f(x) , равное 0,44. При N** 21 максимальное отклонение полинома Рго(х) от f(x) по модулю становится большим 58. Графики функции Рунге, а также интерполяционных полиномов Лагранжа Рю(х) и Р2о(х) представлены на рис. 1.1 — 1.3. Рис. 1Л получен с помощью программы FRUNGE. Функция Рунге определяется подпрограммой, операторы которой имеют номе- номера 3000—3020. Изменив оператор ЗОЮ, можно построить график Лю- Любой другой функции. Программа FRUNGE содержит три подпрограммы построения различных типов графиков, обращение к которым осуществляется с помощью оператов с номерами 2110, 2120 и 2130. Управление режимом построения типа графика осуществля- осуществляется с помощью ключевого слова REM (комментарий). Во второй и третьей подпрограммах имеется возможность использования 5-ти различных маркеров в зависимости от значения параметра MARKER. Значениям параметра MARKER - 1, 2, 3, 4, 5 соответст- соответствуют символы + , 7 М., * , А . На рис. 1.1 символом Щ помечены N ш 9 значений функции Рунге с постоянным шагом Н * 0.25 . Ниже приведена распечатка программы FRUNGE, а также даны помеченные маркером ^f значения функции Рунге на отрезке [-1,1 ] с шагом Н * 0.25. 2000 REM HFRUNGEH 2005 DIMXD0),Y<40) 2010 N-9:XA)--1:X(N)-1 2020 H-(X(N)-XA))/(N-1) 2030 FOR 1-1 TO N 2040 X(I)-X<1)+(I-1)*H 2050 Y(I)-l/(l+25*X(ir2) 2055 PRINTX(I),Y(I) 2060 NEXT I 2110 REM GOSUB 9000 2120 MARKER-3:GOSUB 9500 2130 REM MARKER-5:GOSUB 10000 2140 END 3000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНА ЧЕНИЙ ФУНКЦИИ РУНГЕ ЗОЮ YU-l/(l+25*Xir2) 3020 RETURN 9000 REM HGR9000": ПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА 14
ФУНКЦИИ 9010 PRINT " ":PRINT " ГРАФИК ФУНКЦИИ "-.PRINT"" 9020 NXD-6:XMIN-XA):XMAX-X(N) 9030 NYD-4:YMIN--l:YMAX-3 9050 NY-NYD+1 9060 CLS:SCREEN2:DY-(YMAX-YMIN)/NYD:FORI-1 TO NY:Y-2<H160/NYD*(I-l) 9070 LINE G4,Y) - E74,Y) :NEXT I:NX-NXEH-1 9080 FOR 1-1 TO NX:X-84+480/NXD* (I-1) :UNE (X, 12) - (X, 188) .NEXT I 9090 R-23 9100 FORK-0TONYD 9110 LOCATE R 1 9120 SY-YMlN+DY*K:PRINT USING H#.###H;SY 9130 R-R-20/NYD 9135 NEXT К 9140 O7:DX-(XMAX-XNHN)/NXD 9150 FOR K-0 TO NXD.KEY OFF:LOCATE 24.C 9160 SX-XMIN+DX4C 9170 PRINT USING H####.##";SX; 9180 C-O60/(NXD+0) 9185 NEXT К 9310 XA-E64-84) / (XMAX-XMIN): YA-( 180-20) / (YMAX-YMIN) 9320 FOR IX-84 TO 564:XU-XMIN+(IX-84) /480* (XMAX-XMIN) 9330 GOSUB 3000 9340 IY-180-(YU-YMIN)*YA 9350 IF IY<20 OR IY>180 THEN 9370 9360 IF IX-84 THEN PSET (IX.IY) 9365 LINE-(IXJY) 9370 NEXT IX 9380 FOR 1-1 TO N 9390 YG-180-(Y(I)-YMIN)*YA 9400 IF YG<20 OR YG>180 GOTO 9440 9410 XG-480* (X (I) -XMIN) / (XMAX-XMINH84 9420 PSET (XG,YG) 9430 DRAW "E2G4E2H2F4H2E2D4L4U4R4G2H 9440 NEXT I 9450 RETURN 9500 REM "GRAF9500" 9510 XMIN-XA) :XMAX-X(N) :XS-(XMIN+XMAX) /2 9520 YMIN— 1:YMAX-3:YS-(YMIN+YMAX) /2 9540 SCREEN 2:CLS:KEY OFF 9550 VX-XMAX-XMIN:DX-300/VX:VY-YMAX-YMIN:DY-120/VY 9560 FOR IX-40 TO 440 9570 XU-XMIN+(IX-40)/400*VX 9580 GOSUB 3000 9590 IY-125-(YU-YMIN)*DY 9600 IF IX--40 THEN PSET (IX,IY):GOTO 9620 9610 UNE-(IXJY) %20 NEXT IX 9630 FOR IE-1 TO N 9640 YE-125-(Y(IE)-YMIN)*DY 9650 IF YE<5 OR TE>125 GOTO 9740 9660 XE-400*(X(IE)-XMIN)/VX+40 9670 PSET (XE,YE) 9680 ON MARKER GOTO 9690,9700,9710,9720,9730 9690 DRAW MU2D4U2L4R8L4M:GOTO 9740 9700 DRAW HE2L4F4L4E3H:GOTO 9740 9710 DRAW HE2D4H4D4E2L4R8L4H:GOTO 9740 15
9720 DRAW "E2G4E2H2F4H2L4R8L4'f:GOTO 9740 9730 DRAW*U2G3R6H3D2- 9740 NEXT IE 9750 LINE D0,5)-D40,5) 9760 LINE D0,125)-D40,125) 9770 UNE D0,5)-D0,125) ! 9780 UNE D40,5) - D40,125) 9790 FOR Y-5 TO 125 STEP 12 9800 LINE D0,Y)-D3,Y) 9810 LINE D40,Y)-D37,Y) 9820 NEXTY 9830 LOCATE 1,2:PRINT YMAX 9840 LOCATE 9.2:PRINT YS 9850 LOCATE 16,2:PRINT YMIN 9860 FOR X-79 TO 440 STEP 40 9870 LINE (X,125)-(X,122) 9880 UNE (X+1,125)-(X+1,122) 9890 LINE (X,5)-(X,8) 9900 UNE(X+1,5)-(X+1,8) 9910 NEXTX 9920 LOCATE 17,4:PRINTXMIN 9930 LOCATE 17,29:PRINTXS 9940 LOCATE 17,54:PRINTXMAX 9950 A$-INPUT$A) 9960 END 10000 REMHGR10000H .ПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА ФУНКЦИИ 10010 PRINT H H:PRINT и ГРАФИЧЕСКОЕ ИЗОБРАЖЕНИЕ ФУН 10020 NXD-6:XMIN-XA):XMAX-X(N) 10030 NYD-4:YMIN--l:YMAX-3 10040 NY-NYD+1 10050 CLS:SCREEN 2:DY-(YMAX-YMIN)/NYD:FOR 1-1 TO NY:Y-20* 160/NYD*(I-l) 10060 LINEG6,Y)-(90,Y):NEXT I:NX-NXD+1 10070 FORI-1 TONX:X-84+480/NXD*(I-l):UNE (X,176)-(X,184):NE 10080 UNE (84,12) (84,188):LINE (84,180)-E68,180) 10090 R-23 10100 FORK-OTONYD 10110 LOCATE R 3 10120 SY-YMIN+DY*K:PRINT USING H#.##";SY 10130 R-R-20/NYD 10140 NEXT К 10150 O-7:DX-(XMAX-XMIN)/NXD 10160 FOR K-0 TO NXD:KEY OFF:LOCATE 24,C 10170 SX-XMIN+DXnC 10180 PRINT USING H####.##H;SX; 10190 C-C+60/(NXJHO) 10200 NEXT К 10210 VX-XMAX-XMIN:VY-YMAX-YMIN:XA-480/VX:YA-l 60/VY 10230 FOR IX-84 TO 564:XU-XMIN+(IX-84)/480*VX 10240 GOSUB3000 10250 IY-180-(YU-YMIN)*YA 10260 IF IY<20 OR IY>180 THEN 10290 10270 IF IX-84 THEN PSET (IX,IY) 10280 UNE-(IX,IY) 10290 NEXT IX 10300 FORIE-1TON 10310 YE-180-(Y(IE)-YMIN)*YA 16
10320 IF YE<20 OR TE>1180 GOTO 10410 10330 XE-480*(X(IE)-XMIN)/VX+84 10340 PSET (XE,YE) 10350 ON MARKER GOTO 10360,10370,10380,10390,10400 10360 DRAW "U2D4U2L4R8L4H:QOTO 10410 10370 t)RAW HE2L4F4L4E3H:GOTO 10410 10380 DRAW "E2D4H4D4E2L4R8L4M:GOTO 10410 10390 DRAW HE2G4E2H2F4H2L4R8L4H:GOTO 10410 10400 DRAW HU2G3R6H3D2H 10410 NEXT IE 10420 RETURN RUN i -i -I -.75 -.5 -.25 0 .25 .5 .75 1 3.846154E-02 6.639005E-02 .137931 .3902439 1 .3902439 .137931 6.639005E-02 3.846154E-02 3 1 ■ I I I 1 i i И 1 n 1 1 1 1 1 1 1 1 / i 1 /*\ 1 1 \ 1 1 1 1 1 1 ■ I ■ ■ ■ a И j n 1 I ■ I -1 1 Рис. l.l. График функции Рунге, полученной с помощью программ PRUNGE ( MARKER - 2 ) 1
3 ч , ,, 11 , I I I I 1 I M -1 I в Рис. 1.2. Интерполяционный полином Лагранжа для функции Рунге при N 50 I ■ I 0 :5В I I I I I I I I 1 | I I I 1ы -1 В Рис. 1.3. Интерполяционный полином Лагранжа, аппроксимирующий < Рунге при #-20 18
Рисунки 1.2 и 1.3 получены с помощью программы APR01W01 построения интерполяционного полинома Лагранжа по равноудален- равноудаленным значениям функции Рунге при N * 10 и N в 20. Ввод начальных данных выполняет подпрограмма, заданная операторами 8000— 8200. Значения полинома Лагранжа позволяет вычислять подпрог- подпрограмма с операторами 3000—3100. Анализ этих рисунков показывает, что при увеличении N максимальное отклонение полинома от функ- функции Рунге возрастает. Ниже представлен листинг программы APR01W01, а также значе- значения интерполяционного полинома Лагранжа при Л^* 10, вычисленные в = 21 точке отрезка [-1,1] с шагом HR = 2/(NR-1) -0.1. 10 REM"APR01W01" 20 REM******************************************************************** 30 REM** ПРОГРАММА АППРОКСИМАЦИИ ФУНКЦИИ Y-FOC) ЗАДАННОЙ 46 REM** ЭКСПЕРИМЕНТАЛЬНЬШИЗНАЧЕНИЯМИУСЛВТОЧКАХХа)^-!,...^ 50 REM** С ПОМОЩЬЮ ИНТЕРПОЛЯЦИОННОГО ПОЛИНОМА ЛАГРАНЖА 60 REM******************************************************************** 70 REM ВВОД НАЧАЛЬНЫХ ДАННЫХ ОСУЩЕСТВЛЯЕТСЯ В ПОДПРОГ- 80 REM РАММЕ,ПЕРВЫЙ ОПЕРАТОР КОТОРОЙ ИМЕЕТ НОМЕР 8000 85 REMDEFDBLX,Y,P 90 DIMXE0),Y<50),XRB00),YR<200) 100 GOSUB8000 105 PRINT:PRINT и РЕЗУЛЬТАТЫ АППРОКСИМАЦИИ" 110 PRINT "*********************************************" 115 FOR I-l TO NR 120 XU-XR(I):GOSUB3000:YR(I)-YU 130 NEXT I 140 PRINT:PRINT "НОМЕР ТОЧКИ ЗНАЧ.АРГУМ. ЗНАЧ.МОДЕЛИ" 145 PRINT "I XR(I) YR(I)" 150 PRINT " " 155 FOR I-l TO NR 160 PRINTI,XR(I),YR(I)' 170 NEXT I 175 PRINT " " 180 PRINT "*********************************************" 190 INPUT ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧ. АРГУМ. XMIN,XMAX";XMIN,XMAX 200 INPUT "ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧ. ФУНКЦ. YMIN,YMAX";YMIN,YMAX 230 REM GOSUB 9000 240 MARKER-2:GOSUB 9500 250 REM MARKER-4:GOSUB 10000 300 END 3000 REM ПОДПРОПРАММАВЬИИСЛЕНИЯЗНАЧЕНИЯПОЛИНОМАЛАГРАНЖА ЗОЮ YU-0 3020 FOR K-l TO N 3030 P-l 3040 FOR J-l TO N 3050 IF J-K GOTO 3070 3060 P-P*(XU-X(J))/(X(K)-X(J)) 3070 NEXTJ 3080 YU-YU+P*Y(K) 3090 NEXT К 3100 RETURN 19
8000 REM ПОДПРОГРАММА ВВОДА ТЕСТОВЫХ ДАННЫХ 8010 PRINT:PRINT:PRINT и НАЧАЛЬНЫЕ ДАННЫЕ" 8020 PRINT " 8030 PRINT "jXd) Yd)" 8040 PRINT " " 8060 N-ll:NR-21:H-2/(N-l):HR-H*(N-l)/(NR-l) 8070 FOR 1-1 TO N 8080 X(I)--l+d-D*H 8090 УA)-1/(Н25*ХA)л2) 8100 PRINT X(I),Y(I) 8110 NEXT I 8120 PRINT" " 8130 FORI-1 TO NR 8140 XR(I)--1+(I-1)*HR 8150 NEXT I 8160 MARKER-5 8200 RETURN 9000 REM ПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА ФУНКЦИИ 9010 PRINT " ":PRINT " ГРАФИК ПОЛИНОМА ЛАГРАНЖА'^Ш 9020 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X: NXD-";NXD 9030 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y: NYD-";NYD 9050 NY-NYD+1 9060 CLS:SCREEN2:DY-(YMAX-YMIN)/NYD:FORbl TONY:Y-20fl60/NYl 9070 LINE G4,Y) - E74,Y) :NEXT !:NX-NXD+1 9080 FORI-1 TONX:X-84+480/NXD*d-l):LINE (X,12)-(X,188):NEXTI 9090 R-23 9100 FORK-0TONYD 9110 LOCATE R,l 9120 SY-YMIN+DY*K:PRINT USING "#.###";SY 9130 R-R-20/NYD9135NEXTK 9140 C-7:DX-(XMAX-XMIN)/NXD 9150 FOR K-0 TO NXD:KEY OFF:LOCATE 24,C 9160 SX-XMIN+DX*K 9170 PRINT USING "####.##";SX; 9180 C-C+60/(NXD4O) 9185 NEXT К 9310 XA-E64-84) / (XMAX-XMIN):YA-( 180-20) / (YMAX-YMIN) 9320 FOR IX-84 TO 564:XU-XMIN+(IX-84)/480* (XMAX-XMIN) 9330 GOSUB 3000 I 9340 IY-180-(YU-YMIN)*YA 9350 IF IY<20 OR IY>180 THEN 9370 9360 IF IX-84 THEN PSET (IXJY) 9365 LINE -(IX,IY) 9370 NEXT IX 9380 FOR 1-1 TO N 9390 YG-180-(Y(I)-YMIN)*YA 9400 IF YG<20 OR YG>180 GOTO 9440 9410 XG-480* (X (I) -XMIN) / (XMAX-XMINH84 9420 PSET (XG,YG) 9430 DRAW "E2G4E2H2F4H2E2D4L4U4R4G2" 9440 NEXT I 9450 RETURN 9500 REM "GRAF9500" 9510 XS-(XMIN+XMAX)/2 9520 S-(YMIN+YMAX)/2 9540 SCREEN 2*CLS*KEY OFF 9550 VX-XMAX-XMIN:DX-300/VX:VY-YMAX-YMIN:DY-120/VY 9560 FOR IX-40 TO 440 20
9570 XU-XMIN+(IX-4O)/4OO*VX 9580 GOSUB 3000 9590 IY-125-(¥U-YMIN)*DY 9595 IFIY<5ORIY>125GOTO%20 9600 IF IX-40 THEN PSET (IX,IY) :G6TO 9620 9610 UNE-(IX,IY) 9620 NEXT IX 9630 FOR IE-1 TO N 9640 YE-125-(Y(IE)-YMIN)*DY 9650 IF YE<5 OR YE>125 GOTO 9740 9660 XE-400*(X(IE)-XMIN)/VX+4Q 9670 PSET (XE,YE) 9680 ON MARKER GOTO .9690,9700,9710,9720,9730 9690 DRAW HU2D4U2L4R8L4H:GOTO 9146 9700 DRAW "E2L4F4L4E3H:GOTO 9740 9710 DRAW HE2D4H4D4E2L4R8L4H:GOTO 9740 9720 DRAW HE2G4E2H2F4H2L4R8L4":GOTO 9740 9730 DRAW HU2G3R6H3D2H 9740 NEXT IE 9750 UNE D0,5)-D40,5) 9760 ONE D0,125) -D40,125) 9770 LINE D0,5)-D0,125) 9780 UNE D40,5)-D40,125) 9790 FOR Y-5 TO 125 STEP 12 9800 UNE D0,Y)-D3,Y) 9810 UNE D40,Y)-D37,Y) 9820 NEXTY 9830 LOCATE 1,2:PRINT YMAX 9840 LOCATE 9.2:PRINT YS 9850 LOCATE 16,2:PRINTYMIN 9860 FOR X-79 TO 440 STEP 40 9870 UNE (X,125)-(X,122) 9880 UNE(X+1,125)-(X+1,122) 9890 UNE (X,5)-(X,8) 9900 UNE(X+1,5)-(X+1,8) 9910 NEXTX 9920 LOCATE 17,4:PRINTXMIN 9930 LOCATE 17,29:PRINTXS 9940 LOCATE 17,54:PRINTXMAX 9950 A$4NPUT$A) 9960 END 10000 REM "GR10000" ПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА ФУНКЦИИ 10010 PRINT и H:PRINT и ГРАФИЧЕСКОЕ ИЗОБРАЖЕНИЕ РЕЗУЛЬТАТОВ AnnPOKCHMALUttT:PRINT H" 10020 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X: NXD-";NXD 10030 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y: NYD-";NYD 10040 NY-NYD+1 10050 CLS:SCREEN2:DY-(YMAX-YMIN)/NYD:FORI-1 TO NY: Y-20+160/NYD* A-1) 10060 UNEG6,Y)-(90,Y):NEXTI:NX-NXEH-l 10070 FORM TONX:X-84+480/NXD*(I-l):UNE (X,176)-(X,184):NEXTI 10080 UNE (84,12)-(84,188):UNE (84,180) E68,180) 10090 R-23 10100 FORK-0TONYD 10110 LOCATE R,3 10120 SY-YMIN+DY*K:PRINT USING "#.##";SY 10130 R-R-20/NYD 21
I ! 10140 NEXT К 10150 C-7:DX-(XMAX-XMIN)/NXD 10160 FOR K-0 TO NXD:KEY OFF:LOCATE 24,C 10170 SX-XMIN+DX*K 10180 PRINT USING "####.##H;SX; 10190 C-C+60/<NXD+O) 10200 NEXT К 10210 VX-XMAX-XMIN:VY-YMAX-YMIN:XA-480/VX:YA-l 60/VY 10230 FOR IX-84 TO 564:XU-XMIN+(IX-84)/480*VX 10240 GOSUB 3000 10250 IY-180-(YU-YMIN)*YA 10260 IF IY<20 OR IY>180 THEN 10290 10270 IF IX-84 THEN PSET <IX,IY) 10280 UNE-(IX,IY) 10290 NEXT IX 10300 FOR IE-1 TO N 10310 YE-180-(Y(IE)-YMIN)*YA 10320 IFYE<20ORTE>1180GOTO 10410 10330 XE-480*(X(IE)-XMIN)/VX+84 10340 PSET (XE,YE) 10350 ON MARKER GOTO 10360Л0370Л0380Л0390Л0400 10360 DRAW 4J2D4U2L4R8L4":GOTO 10410 10370 DRAW ИЕ2МР4МЕЗИ:СОТО 10410 10380 DRAW ME2D4H4D4E2L4R8L4":GOTO 10410 10390 DRAW "E2G4E2H2F4H2L4R8L4":GOTO 10410 10400 DRAW HU2G3R6H3D2" 10410 NEXT IE 10420 RETURN RUN НАЧАЛЬНЫЕ ДАННЫЕ X(I) Yd) -1 -.8 -.6 -.4 -.2 0 .2000001 .4 .6 .8000001 1 3.846154E-02 5.882353E-02 .1 .2 .5000001 1 .4999999 .2 .1 5.882352E-02 3.846154E-02 РЕЗУЛЬТАТЫ АППРОКСИМАЦИИ г******************************************************************** НОМЕР ТОЧКИ ЗНАЧ.АРГУМ ЗНАЧ.МОДЕЛИ I XR(I) YR(I) 1 -1 3.846154Е-02 2 -.9 1.57872 3 -.8 5.882353Е-02 4 -.7 -.2261962
3 1 -t 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 .6 .5 .4 .3 .2 9.999996E-02 0 Л .2000001 .3 .4 .5 .6 .7000001 .8000001 .9 1 .1 .2537554 .2 .2353465 .5000001 .8434074 1 .8434074 .4999999 .2353467 .2 .2537553 .1 -.2261964 5.882352E-02 1.578719 3.846154E-02 ************************************************************************ ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧ. АРГУМ.. XMIN.XMAX? -1,1 ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧ. ФУНКЦ. YMIN,YMAX? -1,3 1 1 1 • i» T^ ^* ■ 1 1 1 1. У 1 1 / 1 1 1 1 \ 1 1 1 1 1 1 j ■ ■ ■ ■ ■ —И ■ i i -1 е i Рис. 1.4. Полином Лагранжа 10-го порядка, для которого в качестве узлов выбраны нули полинома Чебышева На рис. 1.4 показан график интерполяционного полинома Лаг- Лагранжа 10-го порядка, при построении которого в качестве узлов ин- интерполяции использовались нули полинома Чебышева Xi = (a+£+(£-a)cos(B/-l)jr/ BJV))) /2, i = 1,..., N . 23
ниже приведен листинг подпрограммы ввода начальных данных, которая использовалась в программе APR01W01. 8000 REM ПОДПРОГРАММА ВВОДА ТЕСТОВЫХ ДАННЫХ 8010 PRINT:PRINT:PRINT " НАЧАЛЬНЫЕ ДАННЫЕ" 8020 PRINT " 8030 PRINT "X(D Yd)" 8040 PRINT " " 8060 N-ll:NR-21:H-2/(N-l):HR-H*(N-l)/(NR-l) 8065 PI-3.141593 8070 FOR 1-1 TO N 8080 X (I)-COS (B*1-1) *PI/N/2) /COS (PI/N/2) 8090 Y(I)-1/A+25*X(I)~2) 8100 PRINTX(I),Yd) 8110 NEXT I 8120 PRINT " " 8130 FORI-1TONR 8140 XR(I)~-1+(I-1)*HR 8150 NEXT I 8160 MARKER-5 8200 RETURN В программе APR01W01 начальные данные вводились с помощью подпрограммы, заданной операторами с номерами 8000—8200. Необ- Необходимую для построения полинома Лагранжа информацию можно также ввести в диалоговом режиме с клавиатуры с помощью следую- следующей подпрограммы 7000 REM "VVNDt':ПOДПPOГPAMMA ВВОДА НАЧАЛЬНЫХ ДАННЫХ 7010 INPUT "ВВЕДИТЕ ЧИСЛО ТОЧЕК N: N-";N 7020 INPUT "ВВЕДИТЕ СТЕПЕНЬ ПОЛИНОМА М: М-";М 7030 FOR I-l TO N 7040 PRINT "I-";I 7050 INPUT "ВВЕДИТЕ ЗНАЧЕНИЯ X(I)tY(I)";X(I),Y(I) 7060 NEXT I 7070 PRINT:PRINT:PRINT 7080 PRINT" НАЧАЛЬНЫЕ ДАННЫЕ" 7090 PRINT " 7100 PRINT "X(I) Y(I) 7110 PRINT " " 7120 FOR I-l TON 7130 PRINTX(I),Yd) 7140 NEXT I 7150 PRINT" " 7160 RETURN На рис. 1.5 приведен график интерполяционного полинома Лаг- Лагранжа 2-го порядка, аппроксимирующего зависимость тяги несущего винта вертолета Ми-6 от высоты висения у земли. Значения тяги для трех различных высот, полученные в ходе обработки результатов летных испытаний, содержатся в таблице 1.1. Ниже показан листинг подпрограммы, позволяющей задать значения тяги и высоты при по- построении интерполяционного полинома Лагранжа с помощью про- 24
граммы APR01W01. 8000 REM ПОДПРОГРАММА ВВОДА ТЕСТОВЫХ ДАННЫХ 8010 PRINT:PRINT:PRINT H НАЧАЛЬНЫЕ ДАННЫЕ" 8020 PRINT" 8030 PRINT ИХA) Y(I)H 8040 PRINT и й 8055 ХМШ-5:ХМАХ-30 8060 N-3:NR-26:HR-(XMAX-XMIN)/<NR-1) 8070 X(l)-5:Y(l)-37.5 8080 XB)-15:YB)-34.2 8090 XC)-30:YC)-33 8100 FOR J«*l TO N 8105 PRINT X(I),Y(I) 8110 NEXT I 8120 PRINT H * H 8130 FORI-1TONR 8140 XR(I)-XMIN+<I-1)*HR 8150 NEXT I 8160 MARKER-2 8200 RETURN Рис 1.5. Интерполяционный полином 2-го порядка Т = Рг(Н) , аппроксимирующий зависимость Т » ДЯ) тяги Т несущего винта вертолета Ми-6 от высоты Я висения у земли Практика показала, что аппроксимация с помощью интерполя- интерполяционных полиномов Лагранжа является достаточно эффективной, когда интерполируются гладкие функции и число N является малым. В частности в математическом обеспечении большинства ЭВМ име- 25
ются стандартные подпрограммы аппроксимации, в которых реали- реализована формула Лагранжа при малых N (например, в некоторых под- подпрограммах сглаживания используется формула Лагранжа при N - 4). При применении формулы Лагранжа для обработки эксперимен- экспериментальных данных необходимо учитывать ошибки эксперимента. Если <5/ — погрешность, с которой найдено значение функции в точке х} , то абсолютная погрешность в произвольной точке х Е [а,Ь ] равна n <*(*) = 2 К Щх) A.1.17) Формула Лагранжа при N > 4 становится громоздкой при прак- практическом использовании, т.к. в нее входит произведение П(х). Рас- Рассмотрим некоторые случаи выбора узлов интерполяции, когда формула Лагранжа значительно упрощается. Предположим, что функция у = f(x) задана на отрезке [-1,1 ]. Дальше полученные результаты мы обобщим на случай произволь- произвольного отрезка [а,А]. Сначала введем полиномы Чебышева 1-го и 2-го рода. По определению полиномы Чебышева 1-го и 2-го рода задаются с помощью формул [13,15,16-18,20] Тп(х) = cos [n (arccos jc)] , A.1.18) sin 2 — x ) где n — порядок полинома. Возьмем в качестве узлов интерполяции нули полинома Чебы шева 1-го рода Tn(x). Из уравнения Tn(x) = 0 получим , /= 1,...,ЛГ. Так как узлами интерполяции являются нули полинома П(х) = Tn(x) = cos [Л^ (arccos x) ], а Я N sin ^ A.1.20) , то A.1.21) При х — % имеем A.1.22) Отсюда следует, что если узлами интерполяции являются нули полинома Tn(x)> to интерполяционный полином Лагранжа можно представить в вцде 26
1 N /-1 V, Pat-iU) = yj, / ■ 1,...,,Y. A.1.23) Предположим, что узлами интерполяции являются нули полинома Чебышева 2-го рода Un{x) . Решая уравйение £/*(*) — 0 » получим нули полинома X/ = COS N+ 1 , /= !,...,#. A.1.24) Аналогично предыдущему случаю, имеем Производная функции Я(х) имеет вид Я'(дс) = *ТТЯ sin[(JV+l)arccosx:] 1-х2 A.1.26) а при х = х-, 1 — Xj _ Отсюда следует, что если узлами интерполяции являются нули полинома Чебышева 2-го рода £/#(*)> то интерполяционную фор- формулу Лагранжа можно представить в виде A.1.28) Пусть теперь функция у = / (jc) задана на произвольном отрезке [а>Ъ]. Сделаем замену независимой переменной х = <pi(u) таким образом, чтобы функция у = f(<pi(u)) = /i(w) была задана на отрез- отрезке [-1,1 ]. Предположим, что функция х = <р\(и) имеет обратную и = <р\ (х) и точкам xj соответствуют точки щ , являющиеся ну- нулями одного из полиномов Чебышева. Тоща для аппроксимации Функции y = fx(u) можно использовать - формулы A.1.23) или A.1.28). Если у = PN-ltl(u) аппроксимирует функцию у = fi(u) , то 27
' сделав замену переменных u-f\ '(*), получим функцию У = Pn-u(") = Pn-i,i (v>i~l(xj\ = PN-i(x) , аппроксимирующую функцию у = f(x). Легко заметить, что преобразование F - д)ц + (д 4- ft) х~ 2 независимой переменной позволяет функцию, заданную на отрезке [ayb] , свести к функции на отрезке [1,1 ], а преобразование 2х - (a -f Ъ) и = г-* L Ъ- а A.1.29) дает возможность осуществить обратный переход. Таким образом функцию, заданную на отрезке [<z,ft], можно ап- аппроксимировать с помощью интерполяционных полиномов, имею- имеющих вид — cos /-1 г., cos UVarccos 2N г —т-^ Ч 2х - (д - cos 2N где у/ — значения функции в точках Xi = 1/2 X A.1.30) A.1.31) или - cos - (a X 2* - (a + - a ~ cos ; N -f 1 где у/ — значения функции в точках A.1.32) 28
(* - a) cos-jJfj + (a + ft) A.1.33) формулы A.1.31), A.1.33) имеют более простой вид по сравне- сравнению с формулой A.1.11). С другой стороны, эти формулы имеют тот же недостаток, что узлы необходимо выбирать специальным обра- образом. При этом точки Xj располагаются гуще на концах отрезка [а,Ь ] и реже возле его середины. Можно также показать, что абсолютная погрешность интерполирования будет минимальной, если узлы ин- интерполяции являются нулями полинома Чебышева 1-го рода, имею- имеющего вид A.1.18). б. Интерполяционная формула Ньютона На практике для аппроксимации функций часто используется интерполяционный полином Ньютона. Этот полином вводится с по- помощью разделенных разностей различных порядковт найденных по значениям функции у\ ,...,>># в точках х\ ,...,*#. По определению разделенные разности 1-го порядка равны У2 "У1 1 . A.1.34) Разности 2-го порядка определяются с помощью разностей 1-го порядка - x\ * v ч f(XN,XN-l) - f(XN-l,XN-2) /1 1 ОСЧ ,Xn- 1,Xn-2) = ~Л C 7* u . A.1.05) Xn — Xn-2 Пусть найдены разности (n -1)-го порядка. Тогда разности л-го порядка можно вычислить по формуле A.1.36) Разделенные разности располагаются в специальной таблице, которая строится по следующей схеме: 29
Xi f(X->.Xt\ /(X3,X2,Xi) У4 Xs Каждое число этой таблицы равно частному от деления разно- разностей двух смежных с ним чисел в столбце слева, на разность х,-, соот- соответствующих тем yh которые лежат на диагоналях, проходящих через это число. Разделенные разности п-го порядка можно представить в виде [4,7,16,22] N A.1.37) Отсюда следует, что разделенная разность является симметричной функцией относительно узлов jc;, т.е. не зависит от порядка располо- расположения входящих в нее переменных х/. Теперь перейдем к построению интерполяционного полинома Ньютона. Пусть х — произвольная точка отрезка [а,Ь]. Рассмотрим разность 1-го порядка f(x9xi) = f№"* , хе[а,Ь]. A.1.38) Из этого выражения можно найти значение функции в точке х [b ] f(x) = ух + (х - xi)/(x,xi). A.1.39) Разность 2-го порядка имеет вид J (X,Xi ,Х2) = —^ "Г  • (А • 1.4U) X "~ Л2 Отсюда /(x,xi) =/(xi,x2) +/(x,xi,x2)(x - х2). A.1.41) Подставив это выражение в A.1.39), получим + (х - х,)(х - х2)/(x,xi ,х2) . A.1.42) 30
Аналогично разность 3-го порядка v v L ч / (*>** >*2) ~ / (Х\ ,Х2,Х3) /11 ,Xi ,хг ,хз) = ~ ~ . A.1 X — лз позволяет представить A.1.42) в виде /(х) = У\ + (X - Xi)/(Xi,X2) + (* - Xl)(x - Х2)/(Х1,Х2,Хз) + +• (х - Xi)(x - хг)(х - Хз)/(х,Х1,х2,Хз) . A.1.44) Продолжая процесс подстановки, получим выражение f(x) = У\ + (X - Xl)/(Xi,X2) + (X - Xl)(x - Х2)/(Х1,Х2,Хз) + ...+ 4- (х—Xi)...(x—x#_i)/(xi,...,x#) + (x—xi)...(x—x^)/(x,xi,...,x^) , A.1.45) которое можно переписать в следующей форме f{x) = /Vi(x).+ Ллг-1(х), A.1.46) вде (X-Xi)/(X1,X2) + ...+ (x-Xi)...(x-X*-l)/(Xi,...,Xtf) , A.1.47) = (x-xi)...(x-x*)/(x,Xi,...,Xtf). A.1.48) Полином P^-i(jc) является интерполяционным, так как имеют место равенства f(xj) = PN-i(xj), j = 1,...,М A.1.49) Этот полином обычно называется интерполяционным полино- полиномом Ньютона, a RN-\(x) — остаточным членом формулы Ньютона. Так как по значениям функции в некоторых точках можно постро- построить единственный интерполяционный полином, то полином Ньютона путем перегруппировки его членов можно преобразовать в интерпо- интерполяционный полином Лагранжа и наоборот. Однако, в отличие от ин- интерполяционного полинома Лагранжа, для которого каждое из слагаемых суммы A.1.11) зависит от всех узлов интерполяции, про- произвольный m-й член полинома Ньютона зависит только от т первых узлов. Поэтому для полинома Ньютона добавление новых узлов ин- интерполяции приводит лишь к появлению новых слагаемых полино- полинома, без изменения первоначальных. Остаточный член формулы Ньютона A.1.48) представляет собой истинную погрешность метода интерполирования. Если известно, что функция/(х) N раз непрерывно дифференцируема, то , A.1.50) 31
где f — некоторая точка отрезка [ а,Ь ], а остаточный член N f у-i На практике производные функции / (x) обычно известны и поэтому остаточный член часто оценивается непосредственно по формуле A.1.48). Если все узлы интерполяции являются равноотстоящими, т.е. Xi = х\ + (/'— 1)А , то разделенные разности имеют вид A.1.52) где Отсюда следует, что интерполяционную формулу Ньютона мож но представить в следующем виде A + -1) f AЛ.53) В результате мы получим интерполяционную формулу, которая называется интерполяционной формулой Нькууона интерполирова- интерполирования вперед. Эта формула имеет наибольшую точность в начале таб- таблицы. На практике часто используется интерполяционный полином Ньютона, представленный в несколько иной форме. Так как при по- построении интерполяционного полинома Ньютона порядок располо- расположения узлов не играет роли, то формулу A.1.47) можно представить в виде Pn-\(x) = yN + (х - xN)f (xN,xN-i) + + (х - xN)(x - xN-\)f (xN>xN-i,xN-2) +... A.1.54) Если узлы Xj являются равноостоящими, то из формулы A.1.54) получим формулу Ньютон? интерполцровация назад [3,4,7,13,16] 32
Ar-i(*) = ум (/V —1) ! A.1.55) которая имеет наибольшую точность в конце таблицы. При построении интерполяционных полиномов Ньютона можно использовать таблицу разностей, каждый элемент которой 1 'Vi - А1» : Хг хг Уг Уз A.1.56) I-1 В формуле A.L53) используется верхняя (нисходящая) строка этой таблицы, а в формуле A.1.51) — нижняя (восходящая) строка таблицы. Рассмотрим пример применения интерполяционного полинома Ньютона при обработке экспериментальных данных. Аппроксимиру- Аппроксимируем с помощью формулы Ньютона интерполирования вперед зависи- зависимость тяги несущего винта вертолета Ми-6 от высоты висения у земли. Для построения интерполяционного полинома второй степени выбираем значения тяги в трех точках. Значения тяги и высоты зада- заданы в таблице 1.2. Таблица 1.2. J Hi, м Тьт 1 5 39 2 15 35,9 3 25 35 Строим таблицу разностей вида A.1.56) 5 39 15 35,9 25 35 2,2 Тогда формула интерполирования вперед имеет вид = 39 - 1 ! 10 2! 10' 509 33
После элементарных преобразований получим Рг(Н) = 0,011#2 - 0,53# + 41,375 . Очевидно, что в узлах интерполяции Рг(Щ = 7} , /=1,2,3. Вычисле- Вычисления показали, что погрешность аппроксимации в других точках не превышает 150 кг. Ниже дан листинг программы (и результаты ее выполнения), с помощью которой можно построить интерполяционный полином Ньютона. Ввод начальных данных выполняется в подпрограмме, за- заданной операторами 8000—8130, а коэффициенты полинома вычис- вычисляются в подпрограмме, первый оператор которой имеет номер 3000. Вычисление значений полинома Ньютона позволдяет осуществить подпрограмма, определенная операторами 3500—3550. Построение графиков выполняется при "активизации" одного из операторов 250—270. Следует отметить, что в формулах вычисления коэффициентов алгебраического полинома по конечным разностям формулы Ньюто- Ньютона, узлы Xj входят в знаменатели слагаемых [4,16], поэтому нули необходимо заменять близкими к ним не равными нулю малыми числами. Необходимо также помнить, что при выполнении этой про- программы массив Y разрушается, поэтому начальные значения функ- функции должны запоминаться в массиве Y0. 10 REM "APR02W0r 20 REM******************************************************************* 30 REM*** ПРОГРАММА АППРОКСИМАЦИИ ФУНКЦИИ Y-F(X) ЗАДАН 35 REM***HOft ЭКСПЕРИМЕН- 40 REM*** ТАЛЬНЫМИ ЗНАЧЕНИЯМИ Y(J) В ТОЧКАХ X(J),J-1,...,N, 45 REM*** С ПОМОЩЬЮ 50 REM*** ИНТЕРПОЛЯЦИОННОГО ПОЛИНОМА НЬЮТОНА 55 REM*** (ВСЕ УЗЛЫ ИНТЕРПОЛЯЦИИ ХЦ) ДОЛЖНЫ БЫТЬ НЕ РАВ 58 REM*** НЫМИ НУЛЮ) 60 REM*** (ЕСЛИ НЕКОТОРЫЙ УЗЕЛ Х0)-0,ТО ЕГО НЕОБХОДИМО УДАЛИТЬ) 65 REM******************************************************************* 70 REMBЮДHAЧAЛЬHЬIXДAHHЬIXOCУЩECЛKЛЯErП^BПOДПГОГPAMME, ПЕРВЫЙ 80 REM ОПЕРАТОР КОТОРОЙ ИМЕЕТ НОМЕР 8000 85 REM DEFDBL X,Y,P 90 DIM XE0),Y<50),Y0E0),XRD80),YR<480),A<50),FE0) 95 GOSUB 8000:GOSUB 3000 100 PRINT "ПОСТРОЕНИЕ ИНТЕРПОЛЯЦИОННОГО ПОЛИНОМА НЬЮТОНА" 102 PRINT "♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦" 104 PRINTrPRINT "ЧИСЛО ТОЧЕК N-";N 106 PRINT:PRINT "КОЭФФИЦИЕНТЫ ПОЛИНОМА ВИДА" 108 PRINT:PRINT"Y-F(N)*X^(N-l)+...+FB)*X+F(l)" 110 PRINT " " 112 FORI-NTO1 STEP-1 114 PRINT TC;I;")-";F(N-I+1) 116 NEXT I 118 PRINT " —- - " 125 FORM) TO NR 34
130 XU-XR(I):GOSUB3500:YR(I)-YU 135 NEXT I 140 PRINT:PRINT "НОМЕР ТОЧКИ ЗНАЧ.АРГУМ. ЗНАЧ.МОДЕЛИ" 145 PRINT "I XR(I) YR(I)" 150 PRINT " " 155 FOR 1-0 TO NR 160 PRINTI,XR(I),YR(I) 170 NEXT I 175 PRINT " " 180 INPUT "ВВЕДИТЕ МИНИМАЛЬН. И МАКСИМ.ЗНАЧ. АРГУМ. XMIN,XMAXH;XMIN,XMAX 14Ю INPUT "ВВЕДИТЕ МИНИМАЛЬН. И МАКСИМ.ЗНАЧ. ФУНКЦ. YMIN,YMAX";YMIN,YMAX 250 REM GOSUB 9000 260 MARKER-2:GOSUB 9500 270 REM MARKER-3:GOSUB 10000 300 END 3000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ КОЭФФИЦИЕНТОВ ПОЛИНОМА НЬЮТОНА ЗОЮ NHN-1 3015 АA)-1 3020 F(N)-Y<1) 3025 FOR I-l TO N1 3030 F(I)-0 3035 NEXT I 3040 FOR I-l TO N1 3050 NI-N-I:I1-I+1 3060 FOR J-l TO N1 3070 J1-J+1:J2-I+J 3080 Y<J)-(Y(J1)-Y(J))/<X<J2)-X<J)) 3090 NEXTJ 3100 R-l 3110 IF (I/2-INT(I/2))< > 0 THEN R--1 3120 P-l 3130 FOR J-l TO I 3140 P-P*X(J) 3150 NEXTJ 3160 A(I1)-R*P 3170 IF I-l GOTO 3330 3180 FOR J-l TO I 3190 W-0 3200 FOR K-l TO J 3210 R-l 3220 IF <I/2-INT(I/2))< > 0 THEN R--1 3230 S-0 3240 FOR L-l TO I 3245 REM IF X(L)-0THEN X(L)-(X(N)-X(l))/20:LO-L 3250 S-S+R*A/X(L))~K 3260 NEXTL 3270 W-W+(-R)*A(Il+K-J)*S 3280 NEXT К 3290 U-Il-J 3300 A(U)-W/J 3310 NEXTJ 3330 FOR J-N TO N1 STEP -1 3340 JN-J-N+I+1 3350 F(J)-F(J)+A(JN)*YA) 3360 NEXTJ 35
3370 NEXT I 3375 REMX(L0)-0 3380 RETURN 3500 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ ПОЛИНОМА НЬЮТОНА 3510 N1-N-1 3515 YU-F(l) 3520 FOR IN-1 TO N1 3530 YU-YU*XU+F(IN+1) 3540 NEXT IN 3550 RETURN 8000 REM ПОДПРОГРАММА ВВОДА НАЧАЛЬНЫХ ДАННЫХ 8010 N-3:NR-20 80t3 X(l)-5:XB)-15:XC)-30 8015 Y(l)-37.5:YB)-34.2:YC)-33 8018 FOR I-l TO N:Y0(I)-Y(I):NEXT I 8020 NR-2Q:HR-(X(N)-XA))/NR 8025 PRINT:PRINT:PRINT " НАЧАЛЬНЫЕ ДАННЫЕ" 8028 PRINT H 8030 PRINT BX(I) Yd)" 8035 PRINT " H 8040 FOR I-l TO N 8045 PRINTX(I),Yd) 8050 NEXT I 8055 PRINT " H 8065 FORI-0TONR 8070 XR(I)-XA)+I*HR 8080 NEXT I 8090 FOR I-l TO N 8100 IFX(I)-0THENX(I)-(X(I+l)-X(I))/20:I0-I 8110 NEXT I 8120 Y(I0)-l/(l+25*X(I0))~2) 8130 RETURN 9000 REM "GR9000": ПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА ФУНКЦИИ 9010 PRINT " ".PRINT " ГРАФИК ПОЛИНОМА НЬЮТОНА":PRINT " ' 9020 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X:NXD-";NXD 9030 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y:NYD-";NYD 9050 NY-NYD+1 9060 CLS:SCREEN2:DY-(YMAX-YMIN)/NYD:FORI-1 ТО NY:YI-2Of 160/NYD* (I-1) 9070 LINE G4.YI)-E74,YI):NEXT LNX-NXD+1 9080 FOR I-l TO NX:XI-84+480/NXD* (I-1) :LINE (XI, 12) - (XI, 188) :NEXT I 9090 R-23 9100 FORK-4)TONYD 9110 LOCATE R 1 9120 SY«YMIN+DY*K:PRINT USING "#.###";SY 9130 R-R-20/NYD 9135 NEXT К 9140 C-7:DX-(XMAX-XMIN)/NXD 9150 FORK-0TONXD:KEYOFF:LOCATE24,C 9160 SX-XMIN+DX*K 9170 PRINT USING "####.##";SX; 9180 C-C+60/(NXIHO) 9185 NEXT К 9310 XA-E64-84) / (XMAX-XMIN):YA-( 180-20) / (YMAX-YMIN) 9320 FOR IX-84 TO 564:XU-XMIN+(IX-84)/480*(XMAX-XMIN) 9330 GOSUB3500 36
9340 IY-180-(YU-YMIN)*YA 9350 IFIY<20 OR IY>180 THEN 9370 9360 IF IX-84 THEN PSET (IX.IY) 9365 UNE-(IX.IY) 9370 NEXT IX 9380 FOR 1-1 TO N 9390 YG-180-(Y0(I)-YMIN)*YA 9400 IFYG<20 OR YG> 180 GOTO 9440 9410 XG-480*(X(I)-XMIN)/(XMAX-XMIN)+84 9420 PSET (XG,YG) 9430 DRAW "E2G4E2H2F4H2E2D4L4U4R4G2" 9440 NEXT I 9450 RETURN 9500 REM "GRAF9500" 9510 XS-(XMIN+XMAX)/2 9520 YS-(YMIN+YMAX)/2 9530 QLS 9540 SCREEN 2:KEY OFF 9550 VX-XMAX-XMIN:DX-300/VX:VY-YMAX-YMIN:DY-l 20/VY 9560 FOR IX-40 TO 440 9570 XU-XMIN+(IX-40)/400*VX 9580 GOSUB 3500 9590 IY-125-(YU-YMIN)*DY 9595 IF IY<5 OR IY>125 GOTO 9620 9600 IF IX-40 THEN PSET (IX,IY) :GOTO 9620 9610 UNE-(IXJY) 9620 NEXT IX %30 FOR IE-1 TO N 9640 YE-125-(Y0(IE)-YMIN)*DY 9650 IF YE<5 OR YE>125 GOTO 9740 9660 XE-400*(X(IE)-XMIN)/VX+40 9670 PSET (XE,YE) 9680 ON MARKER GOTO 9690,9700,9710,9720,9730 9690 DRAW ffU2D4U2UR8Uff:GOTO 9740 9700 DRAW "E2L4F4L4E3M:GOTO 9740 9710 DRAW ffE2D4H4D4E2UR8L4tf:GQTO 9740 9720 DRAW "E2G4E2H2F4H2L4R8L4ff:GOTO 9740 9730 DRAW 4J2G3R6H3D2" 9740 NEXT IE 9750 UNE D0,5)-D40,5) 9760 UNE D0,125)-D40,125) 9770 UNE D0,5)-D0,125) 9780 UNE D40,5) D40,125) 9790 FOR Y-5 TO 125 STEP 12 9800 UNE D0,Y)-D3,Y) 9810 UNE D40,Y)-D37,Y) 9820 NEXTY 9830 LOCATE 1,2:PRINT YMAX 9840 LOCATE 9.2:PRINT YS 9850 LOCATE 16,2:PRINTYMIN 9860 FOR X-79 TO 440 STEP 40 9870 UNE(X,125)-(X,122) 9880 UNE(X+1,125)-(X+1,122) 9890 UNE (X,5)-(X,8) 9900 UNE(X+1,5)-(X+1,8) 9910 NEXTX 9920 LOCATE 17,4:PRINTXMIN 9930 LOCATE 17,29:PRINTXS 37
9940 LOCATE 17,54:PRINTXMAX 9950 A$-INPUT$A) 9960 RETURN 10000 REM "GRIOOOO" ПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА ФУНКЦИИ 10010 PRINT и "iPRINT и ГРАФИЧЕСКОЕ ИЗОБРАЖЕНИЕ РЕЗУЛЬТАТО U 10020 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X:NXD-";NXD 10030 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y:NYD-";NYD 10040 NY-NYEM-1 10050 CLS:SCREEN2:DY-(YMAX-YMIN)/NYD:FORI-1 ТО NY:Y-2Of 160/NYD* (I-1) 10060 UNEG6,Y)-(90,Y):NEXTI:NX-NXD+l 10070 FORI-1 TONX:X-84+480/NXD*U-l):UNE (X, 176)-(X, 184).NEXTI 10080 LINE (84,12)-(84,188):UNE (84,180)-E68,180) 10090 R-23 10100 FORK-OTONYD 10110 LOCATE R,3 10120 SY-YMIN+DY*K:PRINT USING И#.##И£У 10130 R-4*-20/NYD 10140 NEXT К 10150 C-7:DX-(XMAX-XMIN)/NXD 10160 FOR K-0 TO NXDrKEY OFFrLOCATE 24.C 10170 SX-XMIN+DX*K 10180 PRINT USING И####.##И;8Х; 10190 C-C+60/(NXD+0) 10200 NEXT К 10210 VX-XMAX-XMIN:VY-YMAX-YMIN:XA-480/VX:YA-160/VY 10230 FOR IX-84 TO 564:XU-XMIN+(IX-84)/480*VX 10240 GOSUB3500 10250 IY-180-(YU-YMIN)*YA 10260 IF IY<20 OR IY> 180 THEN 10290 10270 IF IX-84 THEN PSET (IX,IY) 10280 LINE-(IX,IY) 10290 NEXT IX 10300 FORIE-1TON 10310 YE-180-(Y0(IE)-YMIN)*YA 10320 IFYE<20 ORYE>180GOTO 10410 10330 XE-480*(X(IE)-XMIN)/VX+84 10340 PSET (XE,YE) 10350 ON MARKER GOTO 10360,10370,10380,10390,10400 10360 DRAW 4J2D4U2L4R8L4":GOTO 10410 10370 DRAW ИЕ2ЫР4ЫЕЗИ:СОТО 10410 10380 DRAW ИЕ2О4Н4О4Е2МК8МИ:СОТО 10410 10390 DRAW "E2G4E2H2F4H2L4R8L4H:GOTO 10410 10400 DRAW "U2G3R6H3D2ff 10410 NEXT IE 10420 RETURN RUN НАЧАЛЬНЫЕ ДАННЫЕ X(I) Yd) 5 37.5 15 34.2 38
30 33 ПОСТРОЕНИЕ ИНТЕРПОЛЯЦИОННОГО ПОЛИНОМА НЬЮТОНА *********************************************************************** ЧИСЛО ТОЧЕК N- 3 КОЭФФИЦИЕНТЫ ПОЛИНОМА ВИДА Y-F<N)*X>v(N-l)+...+FB)*X+F(l) F( 3 )- 9.999995Е-03 F( 2 )--.5299999 F( 1 )- 39.9 НОМЕР ТОЧКИ I 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ЗНАЧ.АРГУМ. XR(I) 5 6.25 7.5 8.75 10 11.25 12.5 13.75 15 16.25 17.5 18.75 20 21.25 22.5 23.75 25 26.25 27.5 28.75 30 ЗНАЧ.МОДЕЛИ YR(I) 37.5 36.97813 36.4875 36.02813 35.6 35.20313 34.8375 34.50313 34.20001 33.92813 33.68751 33.47813 33.3 33.15313 33.0375 32.95313 32.9 32.87813 32.8875 32.92813 33 ВВЕДИТЕ МИНИМАЛЬН. И МАКСИМ.ЗНАЧ. АРГУМ. XMIN,XMAX? 5,30 ВВЕДИТЕ МИНИМАЛЬН. И МАКСИМ.ЗНАЧ. ФУНКЦ. YMIN,YMAX?30,40 40 35 30 5 17.5 30 На рис. 1.6 приведен график интерполяционного полинома Нью- Ньютона 2-го порядка, полученного по данным таблицы 1.1. Ниже представлены листинг программы ввода начальных дан- данных при аппроксимации зависимости Г-/ (Я) по Nm 5 точкам с по- помощью полинома Ньютона, а также распечатка результатов вычислений. Аппроксимирующий полином 4-го порядка, построен- построенный по 5-ти точкам, показан на рис. 1.7. 39
Рис. 1.6. Интерполяционный полином Ньютона Т = Pi(H), аппроксими висимость Т - Д#) 8000 REM ПОДПРОГРАММА ВВОДА НАЧАЛЬНЫХ ДАННЫХ 8010 N-5:NR-20 8013 Х<1)-5:ХB)-8:ХC>-15:ХD)-22:Х<5)-30 8015 Y(l)-37.5:YB)-36.3:YC)-34.5:YD)-33.3:Y<5)-33 8018 FOR I-l TO N:Y0(I)-Y(I):NEXT I 8020 NR-20:HR-(X(N)-X(l))/NR 8025 PRINT:PRINT:PRINT " НАЧАЛЬНЫЕ ДАННЫЕ" 8028 PRINT " 8030 PRINT "X(I) Y(I)" 8035 PRINT " " 8040 FOR I-l TO N 8045 PRINTX(I),Yd) 8050 NEXT I 8055 PRINT " " 8065 FORM) TO NR 8070 XR(I)-XA)+I*HR 8080 NEXT I 8090 FOR I-l TO N 8100 IFX(I)-OTHENX(I)-(X(I+1)-X(I))/20:IO-I 8110 NEXT I 8130 RETURN RUN НАЧАЛЬНЫЕ ДАННЫЕ 40
Yd) 5 8 15 22 30 37.5 36.3 34.5 33.3 33 ПОСТРОЕНИЕ ИНТЕРПОЛЯЦИОННОГО ПОЛИНОМА НЬЮТОНА *********************************************************************** ЧИСЛО ТОЧЕК N- 5 КОЭФФИЦИЕНТЫ ПОЛИНОМА ВИДА Y-F(N>*X^(N-l)+...+FB)*X+F(l) F( 5 )- 2.430985Е-05 F( 4 )--1.695689Е-03 F( 3 )- 4.841893Е-02 F( 2 )--.838829 F< 1 )- 40.68044 НОМЕР ТОЧКИ I 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ЗНАЧ.АРГУМ. XR(I) 5 6.25 7.5 8.75 10 11.25 12.5 13.75 15 16.25 17.5 18.75 20 21.25 22.5 23.75 25 26.25 27.5 28.75 30 ЗНАЧ.МО ДЕЛИ YR(I) 37.5 36.95223 36.47434 36.05428 35.68145 35.34666 35.04215 34.76156 34.5 34.25396 34.02139 33.80164 33.59549 33.40515 33.23425 33.08785 32.97243 32.89589 32.86756 32.89819 32.99997 ВВЕДИТЕ МИНИМАЛЬН. И МАКСИМ.ЗНАЧ. АРГУМ. XMIN,XMAX? 5,30 ВВЕДИТЕ МИНИМАЛЬН. И МАКСИМ.ЗНАЧ. ФУНКЦ. YMIN,YMAX?30,40 41
Рис. 1.7. Аппроксимация зависимости Г-/(Я) с помощью полинома Т = Р4(Н) Кроме рассмотренных выше методов интерполяции функций, в современной вычислительной математике имеется много различных методов решения интерполяционных задач. Среди них в первую оче- очередь следует выделить методы построения интерполяционных фор- формул Гаусса, Стирлинга и Бесселя и т.д. Достаточно подробное изложение теории интерполяции, а также примеры аппроксимации можно найти в работах [3,4,7,13,16,22]. 1.2. ИНТЕРПОЛИРОВАНИЕ ПЕРИОДИЧЕСКИХ ФУНКЦИЙ, ЗАДАННЫХ ЭКСПЕРИМЕНТАЛЬНЫМИ ДАННЫМИ. При обработке на ЭВМ информации, полученной в ходе испыта- испытаний технических систем, часто возникает необходимость аппрокси- аппроксимации периодических функций, заданных экспериментальными данными. Если известно, что ошибки эксперимента являются пре- пренебрежимо малыми, или же по некоторым соображениям их можно не учитывать, то для аппроксимации функций такого вида иногда используются тригонометрические интерполяционные многочлены [4,7,16,22]. Задача аппроксимации периодической функции с помощью три- тригонометрического интерполяционного многочлена формулируется следующим образом. Пусть на отрезке [а>Ь] задана функция у = / (х) 42
значениями у\,.. .,>w в точках xi,.. .,**, причем эта функция является периодической с периодом ТшЬ- а. По экспериментальным данным необходимо найти неизвестные коэффициенты а*, А* тригонометри- тригонометрического многочлена ж v» / 2лк(х-а) , , .Л 2лк(х-а) 2» (Uk C0S ft-fl + ** Sm ^Lfl таким ТNразом, чтобы /= 1,...,Л^, A.2.2, где N — целое нечетное число. Сначала будем предполагать, что функция уш/(х) задана на от- отрезке [0, Ъг ], а затем обобщим полученные формулы на случай произвольного отрезка [а ,Ь]. Если функция задана на отрезке [0, Ъг ], то тригонометрический многочлен A.2.1) имеет вид A.2.3) Tm(x) = -~- + 2 (я* cos Ax + bk sin /be) Узлы интерполяции дс; можно выбирать произвольным образом. Однако чаще всего они располагаются равномерно Х/+1 — X; = А = cons*, / = 1,2,... , так как в этом случае система функций, состоящая из синусов и ко- косинусов, является ортогональной на дискретном множестве точек Свойство ортогональности тригонометрической системы функций на дискретных множествах точек рассмотрено в работах [4,13,16,22 ]. Коэффициенты тригонометрического многочлена A.2.3) можно найти путем решения системы линейных алгебраических уравнений A.2.2). Эта система может иметь решение (в обычном смысле) толь- только в том случае, когда выполняется условие N - 1т + 1. Известно, что определитель системы A.2.2) 1 cosxi sinxi cos2xi sin2xi ... cosmxi 1 cosjc2 sinx2 cos2x2 sin2;t2 ... COSX2m+l 2 N > П sin 43
отличен от нуля, если 0 < л>* < 2тг их,* х-, при i * J. Поэтому сис- система линейных уравнений A.2.2) имеет единственное решение. По условию равенство Ддс) = Тт(х) выполняется в Лоточках Для того, чтобы найти коэффициенты многочлена A.2.3), обе части равенства m /С*) = "Т + ^{fycospx + Ьр s\npx\ A.2.4) умножим на cos kx и просуммируем по всем xj . Тогда учитывая свойство ортогональности системы тригонометрических функций на множестве {дс>}, получим ( . 7лк(}—Х) _ Nuk Отсюда находим значение коэффициента Ок: 2 У» *, ..ч 27Г^(/~1) , /1 О С\ COS 77 ) Л = 1,..., W . vl.2.J; Аналогично можно найти коэффициенты Т7 ЁЛ^) sin ы'^ ' * = 1»'"» m * A.2.6) Просуммировав левые и правые части равенства A.2.4) по всем получим Отсюда следует, что коэффициент ао можно также вычислять по формуле A.2.5), Если число N является четным, т.е. ^«2т, то приближение для функции уш/(х) имеет вид 44
m-1 sin**) + -у- cosmx , A.2.8) вде ао , ak у Ьк вычисляются по формулам A.2.5)—A.2.7), а 2 " У У; cos N 2 При произвольном расположении точек Л/ на отрезке [0, 2л] тригонометрический многочлен имеет вид [4,20 ] Т (х\ = У v X Х\ . X ДС/-1 . ДС Xj+i . ДС sin —~—... sin —^— sin —^—.. .sin sin -^—... sin '— sin ^;—...sin A.2.10) Пусть по определению ^ . A.2.11) Тогда учитывая, что sin ^=-^ = 2 Qf(jcy) , A.2.12) 1 а также умножив и разделив каждое из слагаемых выражения A.2.10) на sin —=—'-, получим формулу, аналогичную формуле Лаг- ранжа: Ых) = £ у, g*> . A.2.13) t-\ 2 (si^) При вычислении значений тригонометрического многочлена A.2.13) необходимо находить произведение A.2.11). Поэтому фор- формула A.2.13) является неудобной для практических расчетов. Рас- Рассмотрим некоторые частные случаи выбора узлов, позволяющих значительно упростить формулу A.2.13). 1) Пусть N -=■ 2т + 1 и л*/ являются нулями полинома Q(x) = sin=^^-x . A.2.14) Тогда 45
A'2Л5)  Q(xj) = (- I/ ^y^ , j = 1 ЛГ. A.2.16) Отсюда следует, что формулу A.2.13) можно представить в виде . 2т+1, ч n sin —ту— (*-*/) Ъ у, Г7=5— ' sm A.2.17) 2) Если узлами интерполяции являются нули полинома _ s\n(m+l)x sin(x/2) ' то Х' = ^Г[ » у= 1,2,..., 2т+1 . A.2.19) Тогда учитывая, что ^' A-220) получим следующее выражение т W 2(w+l)^ * w /оч • v ' Jx (/2) sin . A.2.21) 3) Аналогично можно показать, что если функция у = f(x) зада- задана на отрезке [0, ж ], то имеют место соотношения: 1 • / . 1\ «-и A+cosjcy) sin [(/n+l)x]tg = 4т jy.sw(OT+1)x +1 (- iy-'^ — — m+1 r sinx pf2 v 7 Л cosx-cosx/ , A.2.22) где у/ — значения функции у = f(x) в точках *у = " 46
4) m sin Sin X - Sin X; X/ , A.2.24) где у/ — значения функции в точках */ ~ т + \ » ^ ~ А>^»#"» m • Другие способы выбора узлов интерполяции при построении три- тригонометрических интерполяционных полиномов изложены в работах [4,20]. Обобщим теперь рассмотренные формулы на тот случай, когда функция у = Дх) задана на произвольном отрезке [а, Ь]. Для первых двух формул сделаем замену зависимой переменной = а , 0 2тг. A.2.25) Тогда формулы A.2.17) и A.2.21) можно, соответственно, пред- представить в виде 2ж+1 sin 2m+l х—а\~ о f /—1 2л - Ъг sin . \ х—а Ъ-а Ъг - Ъг где у; — значения функции в точках 6-а 2тг(/-1) _ ; Д+ 2тг 2т+1 ~а+ 2т+1 и 1 A.2.26) , A.2.27) sin JT/ sin 1 x-a l\b-a bi sin 1 2 jc—a b-a т+1 x * x,:, Tmm(xj) = y, , — значения функции в точках A.2.28) 47
, b—a jt/ (b—a)t . % * 1,1 /i i in\ xy = a + -= -f-j = я + j, ,V\ » /=l,2,...,2m+l . A.2.29) 1 Ъс m+1 2(/n+l) Аналогично, используя замену переменной х = „ + fe-^) *, 0 < * < ж , A.2.30) формулы A.2.22) и A.2.24) можно переписать в следующей форме SUIT Ж b-a 1+cos v /) sin [(m+l)-7—jr]tg [57т—г ж] ■ V/ 1 у-1 v ^(~ iy У1 ж(х-а) /=2 COS ~t ~ COS ft /n + 1 = # , A.2.31) ще у, — значения функции в точках х--а I Ь~аЛ °~1) - д I (Ь~а) °~1) ;=12 1 m + 1 ff v .2.32) х—а , . л] . x-a . ж j sin т—ж - sin —f-r b—a /n + 1 A.2.33) где у/ — значения функции у = Дх) в точках . Ь—а • (L2-34) При практических расчетах чаще всего используются тригоно- тригонометрические многочлены вида A.2.1). В настоящее время разработа- разработано несколько алгоритмов нахождения коэффициентов A.2.5) — A.2.7). В частности, если N = 2м , то наиболее эффективным явля- является алгоритм быстрого преобразования Фурье (БПФ), рассмотрен- рассмотренный в работах [3,6 ]. В случае произвольного N коэффициенты тригонометрического многочлена вычисляются непосредственно по формулам A.2.5) — A.2.7). Однако при этом приходится многократно вычислять синусы 48
и косинусы, что приводит к большим затратам машинного времени. Рассмотрим предложенный Хеммингом алгоритм, позволяющий зна- значительно сократить объем вычислений при нахождении коэффици- коэффициентов многочлена A.2.3) [22]. В этом алгоритме для вычисления коэффициентов а* и Ьк необ- 2жк . Ъгк ~ ходимо знать только cos—— и sin-rj- . Сначала строится вспомога- вспомогательная последовательность по формулам /= 2,3,4,..., # . A.2.35) Тогда коэффициенты а* и Ьк можно найти из соотношений = 2 2 y/cos2^1^ 2 = 0,1,..., [Л^/2] , A.2.36) где {Л72 ] — целая часть числа N/2. Рассмотренный алгоритм вычисления коэффициентов тригоно- тригонометрического интерполяционного многочлена (иногда также называ- называемый алгоритмом Герцеля) реализован в нижеприведенной йрограмме. В этой программе предполагается, что аппроксимируе- аппроксимируемая функция у-/(х) является периодической с периодом Т = (Ь- а) и ее значения у; на отрезке [а,Ь] заданы в точках *у = а + (b—a)j/N у j = 1,...г N , причем yN = 10 REM "APR03W02" 20 REM**************************************************************** 30 REM*** ПРОГРАММА ВЫЧИСЛЕНИЯ КОЭФФИЦИЕНТОВ ТРИГОНОМЕТРИЧЕСКОГО 40 REM*** МНОГОЧЛЕНА С ПОМОЩЬЮ АЛГОРИТМА ГЕРЦЕЛЯ 60 REM**************************************************************** 70 REM ВВОД НАЧАЛЬНЫХ ДАННЫХ ОСУЩЕСТВЛЯЕТСЯ В ПОДПРОГРАММЕ,ПЕРВЫЙ 80 REM ОПЕРАТОР КОТОРОЙ ИМЕЕТ НОМЕР 8000 90 DIM XB00),YB00),YMB00),AE0),BE0),RE0),TETE0) 100 GOSUB8000 НО GOSUB 1000 115 T-N*H:PRINT "ПЕРИОД T-";N*H 120 INPUT "ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧ. АРГУМ. XMIN,XMAX";XMIN,XMAX 130 INPUT "ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧ. ФУНКЦ. YMIN,YMAX";YMIN,YMAX 140 REM XMIN-O:XMAX-T 160 REM GOSUB 9000 49
170 MARKER-2:GOSUB 9500 180 REM MARKER«3:GOSUB 10000 200 END 1000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ КОЭФФИЦИЕНТОВ ОТРЕЗКА РЯДА ФУРЬЕ 1010 PRINT:PRINT:PRINT 1020 PRINT " РЕЗУЛЬТАТЫ ГАРМОНИЧЕСКОГО АНАЛИЗА" 1030 PRINT "♦♦♦♦♦♦*♦*♦♦******************♦♦*♦♦♦**♦***********♦*♦♦♦♦" 1035 N-N1+1 1040 PRINT:PRINT "ЧИСЛО ЗНАЧЕНИЙ ФУНКЦИИ N-";N 1050 Р1«3.141592653# 1060 W-2/N 1070 U1-COS(W*PI) 1080 V1-SIN(W*PI) 1090 U2-1 1100V2-0 1110 M«INT(Nl/2) 1115 PRINT:PRINT "ЧИСЛО ГАРМОНИЧЕСКИХ СОСТАВЛЯЮЩИХ 1120 FOR 1-Ю ТОМ ИЗО Z1-0 1140 Z2-0 1150 FOR J-N1 ТО 1 STEP -1 1160 ZO-Y(J)+2*U2*Z1-Z2 1170 Z2-Z1 1180 Z1-Z0 1190 NEXTJ 1200 A(I)-W*(Y(N)+Z1*U2-Z2) 1210 B(I)-W*Z1*V2 1220 T-U1*U2-V1*V2 1230 V2-U1*V2+V1*U2 1240 U2-T 1250 NEXT I 1330 FORI-OTON 1340 YM(I)«A@)/2 1350 SI-I 1360 Z-W*SI*PI 1370 FORJ-1TOM 1380 SJ-J 1390 ARG«Z*SJ 1400 YM(I)-YM(I)+A(J)*COS(ARG)+B(J)*SIN(ARG) 1410 NEXTJ 1415 NEXTI 1420 PRINT 1 _ПП PDTVT " 1 *T_#V» 1 JVlil 1 ~ ~ "" "" — — — — — — — — — — — — — — — — —— — — — — — ~— —— — — 1470 PRINT "НОМЕРА КОЭФФИЦ. КОЭФФИЦ. АМПЛИТУДЫ 1480 PRINT "I A(I) B(I) R(I) TET(I)" 1 AQft PPTMT " i *т ~\j i jxiii l ~ — — — — — — — — — — _ — — _-..-_ _ ___ _ _ ________ _._ __ 1500 FORI-OTOM 1505 R(I)-SQR(A(I)^2+B(I)^2):TET(I)-ATN(-B(I)/A(I))*180/PI 1515 PRINT I,A(I),B(I),R(D,TET(I) 1520 NEXTI 1 ЧЧП PPT\TT " - - - - 1 %J %J\J I. rVlXl I. "" ~ — — —— — — .—___ — — 1540 PRINT:PRINT 1550 PRINT "НОМЕР ЗНАЧЕН. ЗНАЧЕНИЯ ЗНАЧЕНИЯ РАЗИ 1560 PRINT "ТОЧКИ АР ГУМЕН- ФУНКЦИИ МОДЕЛИ" 1565 PRINT "I X(I) Y(I) YM(I) Y(I)-YMd)" 1570 PRINT" 1580 FORI-OTON 1590 DEL-Yd)-YM(I) 50
1600 PRINTI,X(I),Y(I),YM(I),DEL 1610 NEXT I 1620 PRINT" - -" 1630 PRINT "♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦" 1640 RETURN 5000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ ТРИГОНОМЕТРИЧЕСКОГО МНОГОЧЛЕНА 5010 YU-A@)/2 5020 FOR 1-1 ТО М 5030 SI-I 5040 ARO2*PI*SI*(XU-XMIN)/(N*H) 5050 YU-YU+A(I)*COS(ARG)+B(I)*SIN(ARG) 5060 NEXT I 5070 RETURN 8000 REM ПОДПРОГРАММА ВВОДА НАЧАЛЬНЫХ ДАННЫХ 8005 PI-3.141593 8010 N1-24 8020 N-Nl+1 8060 H-2*PI/N 8070 FOR 1-1 TO N 8080 X(I)-I*H 8090 IFX(I)<-PI THENYCD-Xd^GOTOSllO 8100 Ya)-B*Vl-X(l))*2 8110 NEXT I 8200 RETURN 9000 REM "GR9000": ПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА ФУНКЦИИ 9010 PRINT " ":PRINT " ГРАФИК ТРИГОНОМЕТРИЧЕСКОГО МНОГОЧЛЕНА ".PRINT " " 9020 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X:NXD-";NXD 9030 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y:NYD-";NYD 9050 NY-NYD+1 9060 CLS:SCREEN 2:DY-(YMAX-YMIN)/NYD:FOR 1-1 TO NY: YI-2Of 160/NYD* (I-1) 9070 LINEG4,YI)-E74,YI):NEXT I:NX-NXD+1 9080 FORI-1 TONX:XI-84+480/NXD*(I-l):LINE (XI,12)-(XI,188):NEXTI 9090 R-23 9100 FORK-0TONYD 9110 LOCATE R 1 9120 SY-YMIN+DY*K:PRINT USING "#.###';SY 9130 R-R-20/NYD 9135 NEXT К 9140 C-7:DX-(XMAX-XMIN)/NXD 9150 FORK-OTONXD:KEYOFF:LOCATE24,C 9160 SX-XMIN+DX*K 9170 PRINT USING f*####.##";SX; 9180 C-C+60/(NXEHO) 9185 NEXT К 9310 XA-E64-84) /(XMAX-XMIN) :YA-( 180-20)/(YMAX-YMIN) 9320 FOR IX-84 TO 564:XU-XMIN+(IX-84)/480* (XMAX-XMIN) 9330 GOSUB5000 9340 IY-180-(YU-YMIN)*YA 9350 IF IY<20 OR IY>180 THEN 9370 9360 IF IX-84 THEN PSET (IX.IY) 9365 LINE-(IX,IY) 9370 NEXT IX 9380 FOR 1-1 TO N 9390 YG-180-(Y(I)-YMIN)*YA 51
9400 IFYG<20ORYG>180GOTO9440 9410 XG-480* (X(I) -XMIN) /(XMAX-XMIN)+84 9420 PSET (XG,YG) 9430 DRAW "E2G4E2H2F4H2E2D4L4U4R4G2" 9440 NEXT I 9450 RETURN 9500 REM "GRAF9500" 9510 XS-(XMIN+XMAX)/2 9520 YS-(YMIN+YMAX)/2 9530 CLS 9540 SCREEN 2:KEY OFF 9550 VX-XMAX-XMIN:DX-300/VX:VY-YMAX-YMIN:DY-120/VY 9560 FOR IX-40 TO 440 9570 XU-XMIN+(IX-40)/400*VX 9580 GOSUB5000 9590 IY-125-(YU-YMIN)*DY 9595 IF IY<5 OR IY>125 GOTO 9620 9600 IF IX-40 THEN PSET <IX,IY):GOTO 9620 9610 LINE-(IXJY) 9620 NEXT IX 9630 FOR IE-1 TO N 9640 YE-125-(Y(IE)-YMIN)*DY 9650 IFYE<5ORYE>125GOTO9740 9660 XE-400*(X(IE)-XMIN)/VX+40 9670 PSET (XE,YE) 9680 ON MARKER GOTO 9690,9700,9710,9720,9730 9690 DRAW "U2D4U2L4R8L4":GOTO 9740 9700 DRAW "E2L4F4L4E3":GOTO 9740 9710 DRAW "E2D4H4D4E2L4R8L4":GOTO 9740 9720 DRAW "E2G4E2H2F4H2L4R8L4":GOTO 9740 9730 DRAW "U2G3R6H3D2" 9740 NEXT IE 9750 LINE D0,5)-D40,5) 9760 LINE D0,125)-D40,125) 9770 LINE D0,5)-D0,125) 9780 LINE D40,5)-D40,125) 9790 FOR Y-5 TO 125 STEP 12 9800 LINE D0,Y)-D3,Y) 9810 LINE D40,Y)-D37,Y) 9820 NEXTY 9830 LOCATE 1,2:PRINT YMAX 9840 LOCATE 9.2:PRINT YS 9850 LOCATE 16,2:PRINT YMIN 9860 FOR X-79 TO 440 STEP 40 9870 LINE (X, 125)-(X, 122) 9880 LINE(X+1,125)-(X+1,122) 9890 LINE (X,5)-(X,8) 9900 LINE(X+1,5)-(X+1,8) 9910 NEXTX 9920 LOCATE 17,4:PRINT XMIN 9930 LOCATE 17,29:PRINTXS 9940 LOCATE 17,54:PRINTXMAX 9950 A$-INPUT$A) 9960 RETURN 10000 REM "GR 10000" ПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА ФУНКЦИИ 10010 PRINTи ":PRINT " ГРАФИЧЕСКОЕ ИЗОБРАЖЕНИЕ РЕЗУЛЬТАТО AnnPOKCHMAIXHH":PRINT " " 52
10020 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X:NXD-";NXD 10030 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y:NYD-";NYD 10040 NY-NYD+1 10050 CLS:SCREEN2:DY-(YMAX-YMIN)/NYD:FORI-1 TO NY: Y-20H 60/NYD* (I-1) 10060 LINEG6,Y)-(90,Y):NEXTI:NX-NXD+l 10070 FORM TONX:X-84+480/NXD*(I-l):LINE (X,176)-(X,184):NEXTI 10080 LINE (84,12)-(84,188):LINE (84,180)-E68,180) 10090 R-23 10100 FOR K-0 TO NYD 10110 LOCATE R,3 10120 SY-YMIN+DY*K:PRINT USING "#.##";SY 10130 R-R-20/NYD 10140 NEXT К 10150 C-7:DX-(XMAX-XMIN)/NXD 10160 FOR K-0 TO NXD:KEY OFF:LOCATE 24,C 10170 SX-XMIN+DX*K 10180 PRINT USING M######";SX; 10190 C-C+60/(NXD4O) 10200 NEXT К 10210 VX-XMAX-XMIN:VY-YMAX-YMIN:XA-480/VX:YA-160/VY 10230 FOR IX-84 TO 564:XU-XMIN+(IX-84)/480*VX 10240 GOSUB5000 10250 IY-180-(YU-YMIN)*YA 10260 IF IY<20 OR IY>180 THEN 10290 10270 IF IX-84 THEN PSET (IX,IY) 10280 UNE~(IX,IY) 10290 NEXT IX 10300 FOR IE-1 TO N 10310 YE-180-(Y(IE)-YMIN)*YA 10320 IF YE<20 OR YE> 180 GOTO 10410 10330 XE-480*(XUE)-XMIN)/VX+84 10340 PSET (XE,YE) 10350 ON MARKER GOTO 10360,10370,10380,10390,10400 10360 DRAW4J2D4U2L4R8L4'.GOTO 10410 10370 DRAW "E2L4F4UE3":GOTO 10410 10380 DRAW ME2D4H4D4E2L4R8L4":GOTO 10410 10390 DRAW "E2G4E2H2F4H2L4R8L4":GOTO 10410 10400 DRAW MU2G3R6H3D2M 10410 NEXT IE 10420 RETURN RUN РЕЗУЛЬТАТЫ ГАРМОНИЧЕСКОГО АНАЛИЗА ♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦*♦♦♦♦»♦♦♦♦♦♦♦•♦♦*♦♦♦♦♦♦♦♦♦♦♦♦♦♦*♦*♦♦♦♦♦ ЧИСЛО ЗНАЧЕНИЙ ФУНКЦИИ N- 25 ЧИСЛО ГАРМОНИЧЕСКИХ СОСТАВЛЯЮЩИХ М- 12 НОМЕРА I КОЭФФИЦ. КОЭФФИЦ. АМПЛИТУДЫ ФАЗЫ B(I) R(I) TET(I) 0 1 2 3 4 5 6.569199 -3.98942 .9892391 -.4333802 .2384988 -.1479109 0 1.199127Е-05 -2.8Ш82Е-06 8.617423Е-07 1.610428Е-08 1.269798Е-07 6.569199 3.98942 .9892391 .4333802 .2384988 .1479109 0 1.722178Е-04 1.66047Е-04 1.139282Е-04 -3.868812Е-06 4.918777Е-05 53
6 7 8 9 10 И 12 НОМЕР ТОЧКИ I 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 9.826117Е-02 -6.781873Е-02 4.747701Е-02 -3.284982Е-02 2.157984Е-02 -1.226673Е-02 3.98175Е-03 ЗНАЧЕН. АРГУМЕН. ХA) 0 .2513274 .5026549 .7539823 1.00531 1.256637 1.507965 1.759292 2.010619 2.261947 2.513274 2.764602 3.015929 3.267257 3.518584 3.769911 4.021239 4.272567 4.523894 4.775221 5.026549 5.277876 5.529204 5.780531 6.031859 6.283186 -4.877938Е-08 -4.215521Е-08 2.243568Е-07 -2.498385Е-07 1.597585Е-07 -2.707637Е-07 3.711322Е-07 ЗНАЧЕНИЯ ФУНКЦИИ Yd) 0 6.316547Е-02 .2526619 .5684893 1.010648 1.579137 2.273957 3.095108 4.04259 5.116404 6.316548 7.643023 9.095829 9.095831 7.643024 6.31655 5.116405 4.042591 3.Q95109 2.273959 1.579138 1.010648 .5684897 .2526621 6.316552Е-02 2.273737Е-13 9.826117Е-02 6.781873Е-02 4.747701 Е-02 3.284982Е-02 2.157984Е-02 1.226673Е-02 3.98175Е-03 ЗНАЧЕНИЯ МОДЕЛИ YM(I) -8.668751Е-06 6.315918Е-02 .2526577 .568486 1.010646 1.579138 2.273961 3.095115 4.042597 5.116413 6.316556 7.643032 9.095832 9.095827 7.643015 6.316537 5.11639 4.042571 3.095091 2.273939 1.57912 1.010631 .5684742 .252649 6.315459Е-02 -8.683652Е-06 2.84431Е-05 -3.561429Е-05 -2.707563Е-04 -4.357616Е-04 -4.241685Е-04 -1.26469Е-03 -5.340443Е-03 РАЗНОСТИ Yd)-YM(I) 8.668751 Е-06 6.28829Е-06 4.172325Е-06 3.397465Е-06 1.907349Е-06 -1.430512Е-06 -3.576279Е-06 -6.198883Е-06 -6.67572Е-06 -9.059906Е-06 -8.106232Е-06 -9.536743Е-06 -2.861023Е-06 3.814697Е-06 9.059906Е-06 1.28746Е-05 1.525879L-05 2.002716Е-05 1.811981Е-05 1.931191Е-05 1.788139Е-05 1.704693Е-05 1.549721Е-05 1.311302Е-05 1.093Е-05 8.683652Е-06 ПЕРИОД Т- 6.283186 ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧ. АРГУМ. XMIN.XMAX? 0,6.28 ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧ. ФУНКЦ. YMIN,YMAX? -1,11 11 5 -1 0 3.14 6.28 В качестве примера рассмотрим вычисление с помощью програм мы APR03W02 коэффициентов Фурье функции /(*) = 0 < х < л ; (bt-xf , л < х 1л A.2.37) 54
Ряд Фурье данной функции имеет вид ж -4 COS* I2 cos2jc cos3x _ cos4x . A.2.38) Значения функции A.2.37) вычисляются в точках v. г= 2лу/ Л^, у = 1,..., N , в подпрограмме, заданной операторами 8000 - 8200. Найденные при различных N с помощью программы APR03W02 значения коэффициентов, а также теоретические коэффициенты разложения A.2.38) содержатся в таблице 1.3. Таблица 1.3. № гар- гармоники 0 1 2 3 4 5 6 7 8 9 10 И 12 Теоретиче- Теоретические коэффи- коэффициенты Ок 3,2898 -4 1 -0,4444 0,2500 -0,1600 0,1111 -0,0816 0,0625 -0,0493 0,0400 -0,0330 0,0270 Приближенные значения коэффициентов ЛГ-25 3,2845 -3,9893 0,9892 -0,4333 0,2385 -0,1479 0,0982 -0,0678 0,0475 -0,0328 0,0216 -0,0122 0,0040 ЛГ-51 3,2877 -3,9974 0,9974 ' -0,4419 0,2474 -0,1574 0,1085 -0,0789 0,0597 -0,0466 0,0371 -0,0300 0,0247 ЛГ-81 3,2883 -3,9988 0,9989 -0,4434 0,2490 -0,1590 0,1101 -0,0806 0,0615 -0,0483 0,0389 -0,0320 0,0267 ЛГ- 101 3,2881 -3,9989 0,9994 -0,4438 0,2493 -0,1594 0,1105 -0,0810 0,0618 -0,0487 0,0393 -0,0324 0,0271 Следует отметить, что программа APR03W02 коэффициент вычисляет по формуле A.2.7), а в таблице 1.3 содержатся величины во / 2 . Очевидно, что при увеличении N точность определения коэффициентов возрастает. Значения функции A.2.37), а также аппроксимирующий их тригонометрический многочлен jTi2(jc) представлены на рис. 1.8. Ниже приведена подпрограмма ввода с шагом А* = 0.016 сек ™ ш 21 значений изгибных напряжений в лопасти несущего винта вертолета Ми-8 на относительном радиусе г « 0.77. Значения изгибных напряжений, а также аппроксимирующий их тригонометрический многочлен Tw(t), построенный с помощью про- П>аммы APR03W02, представлены на рис. 1.9. 55
11 5 -1 1 ■ I ■ ■ 1 1 / 1 1 / f 1 1 / / 1 1 1 1 \ \ 1 1 \ 1 1 \ 1 1 1 1 1 Xf , 1 8 3.14 6.28 Рис. 1.8. Аппроксимация с помощью тригонометрического многочлена Т\г{х) з чений функции A.2.37) 8 6 в 1 ■ к ■ ■ 1 1 /* 1 1 J 1 / 1 1 1 —г— А / 1 1 \ 1 1 W 1 1 я • * / а 1 ■ 1 .168 .336 Рис. 1.9. Аппроксимация с помощью тригонометрического многочлена T\o(f) изг ных напряжений в лопасти несущего винта вертолета Ми-8 56
8000 REM ПОДПРОГРАММА ВВОДА НАЧАЛЬНЫХ ДАННЫХ 8010 N1-20 8020 N-N1+1 8060 Н-.016 8070 FOR I-O TO N1 8080 ХA)-1*Н 8090 NEXTI 8130 FOR 1-0 ТО N1 8140 READ Yd) 8150 NEXTI 8160 DATA 5.95,6.35,5.8,5.5,5.75,5.85,5.9,6.1,7.1,7.65,6.95,6.8,7.1,7.4,7, 6.45,6,5.75,5.47,5.25,5.35 8165 Y(N)-Y@):X(N)-X(Nl)+H 8170 RETURN АППРОКСИМАЦИЯ ФУНКЦИЙ МЕТОДОМ НАИМЕНЬШИХ КВАДРАТОВ С ПОМОЩЬЮ ОРТОГОНАЛЬНЫХ ПОЛИНОМОВ Методы, рассмотренные в предыдущих параграфах данной гла- главы, позволяют аппроксимировать функции, заданные эксперимен- экспериментальными данными, с помощью интерполяционных многочленов. На практике интерполяционные формулы применяются в тех случаях, когда ошибки в данных можно не учитывать и число N точек х, явля- является малым. При больших N эти формулы становятся громоздкими, а также возникают трудности, связанные с неустойчивостью интерпо- интерполяционного процесса на концах отрезка [а , Ь ]. В реальных задачах ошибки в экспериментальных данных необ- необходимо учитывать. Если зависимости между параметрами являются достаточно гладкими, то даже при больших N часто нет необходимо- необходимости выбирать для аппроксимации полиномы, имеющие высокую сте- степень я. В этом случае при аппроксимации функций можно использовать метод наименьших квадратов (МНК), рассмотренный в общем виде в работах [1,9,11,14,19,24 J. Предположим, что функция у = f(x) задана на отрезке [а , b ] экспериментальными значениями + е/ > /= 1-..ЛГ, A.3.1) tj — некоррелированные случайные величины, имеющие нуле- математическое ожидание и дисперсию с/2 . При аппроксимации Функции у = f(x) алгебраическим полиномом A.1.1) с помощью МНК, по экспериментальным данным необходимей оценить коэффи- коэффициенты at полинома таким образом, чтобы сумма квадратов N Ф(оо, ai...., a.) = 2 CV/ - Pn(Xj)J , n+1 < # , A.3.2) минимальной. В дальнейшем мы будем предполагать, что ос- 57
новные условия, при которых можно применять на практике МНК, выполняются [1,11,19]. Легко заметить, что алгебраический полином A.1.1) является частным случаем общей линейной модели У} = ao<po(Xj) + ai<pi(xj) + ... + а*рп(х/) + ej, ; = 1,..., N. Известно, что оценивание коэффициентов общей линейной модели сводится к решению системы нормальных уравнений X X а = X У [11,19], которая для приближения A.1.1) имеет вид п ак = fa , i = 0,1,..., п , *=0 где N , U к = 0,1,..., п A.3.3) A.3.4) N i = 0,1,..., п, У-1 A.3.5) — оценки коэффициентов Покажем, что система уравнений A.3.3) имеет решение. Для этого необходимо доказать, что ее определитель Д„+1 * 0 . Пусть Д„+1 = 0 . Тогда однородная система = 0 , I = 0,1,..., /I , A.3.6) ненулевое решение. Умножив i'-е уравнение системы A.3.6) на а< и просуммировав по всем /, получим п N У-l i=0 \ 2 г=0 N = 2 А2(*у). У-1 A.3.7) Сумма квадратов 7V чисел равна нулю тогда и только тогда, когда каждое из этих чисел равно нулю. Поэтому из равенства A.3.7) сле- следует, что Pn(xj) = 0, ;= 1,...,//, A.3.8) где п + 1 < N. Но это невозможно, так как в силу основной теоремы высшей алгебры полином п-й степени может иметь не более п нулей. Поэтому Д„+| * 0 , т. е. решение системы A.3.3) существует. 58
Однако при практической реализации МНК на ЭВМ может ока- оказаться, что определитель Ап+\ системы A.3.3) даже при сравнитель- сравнительно малых п близок к нулю. Особенно неблагоприятная ситуация возникает в том случае, когда точки х/ расположены равномерно на [а, Ь \ Без потери общности можно предположить, что 0 < х,- < 1 . Тогда элементы матрицы системы нормальных уравнений имеют вид а» = (ХТХ)ik = 2 /1 N о i+Jt+1 A.3.9) а определитель матрицы системы равен = ЛГ1 Gn+ A.3.10) ще ik — элемент матрицы X X , расположенный на пересече- пересечении /-и строки и к-го столбца, a Gn+i — определитель матрицы Гильберта (п + 1)-го порядка 1 1 1 2 • 1 1 2 1 3 • 1 д+1 1 я+2 1 A.3.11) п+2 При увеличении п определитель Гильберта очень быстро стремится к нулю. Доказано, что определитель Гильберта можно вычислить по формуле — к " Г1Т ОТ О-- *• * * * * ^ Значения определителя Гильберта для некоторых к приведены в таб лице 1.4. Таблица 1.4. к 1 2 3 Gk 1 8,3xl0~2 4,6xlO~4 к 4 5 6 Gk 1,7хЮ~7 3JX102 5,4xlO~16 к 7 8 9 С* 4,8xlO~25 2,7xlO~33 9,7xlO3 59
Таким образом, матрица Гильберта является плохо обусловлен- обусловленной. Характеристикой степени обусловленности матрицы является ее число обусловленности равное отношению максимального Ятах к минимальному Ятю собственных чисел матрицы. Число обусловлен- обусловленности матрицы Гильберта Я* является величиной порядка е3*5* , где -I к — порядок матрицы. Определитель матрицы Я* , обратной к мат- 2 рице Нк , является величиной порядка 2~2к . Поэтому матрица X1 X также плохо обусловлена [19]. Плохая обусловленность матрицы X X приводит к тому, что по- появление даже самых малых ошибок в правой части системы нормаль- нормальных уравнений вызывает появление больших ошибок в решении системы. В частности, уже для п > 9 при расчетах на ЭВМ, опериру- оперирующих с числами, имеющими восемь значащих цифр, получаются практически неверные результаты. Например, при п * 9 матрица Яю, обратная к матрице Гильберта Ню > содержит элементы по- порядка Зх 1010 . Поэтому даже ошибка порядка 10~10 в правых частях и коэффициентах системы может привести к ошибке порядка 3 е ре- решении системы [19]. В рамках современной математики задача аппроксимации с по- помощью алгебраического полинома A.1.1) формулируется как задача оценивания коэффициентов модели, представляющей собой комби- комбинацию функций некоторой подсистемы L» системы базисных функ- функций L = {1,jc,jc2,..., я",...} . Влияние плохой обусловленности значительно уменьшается, если вместо модели A.1.1) рассматрива- рассматривается модель п = 2 с* р*(х) , хЕ[а,Ь] , A.3.13) представляющая собой линейную комбинацию элементов подсистемы Ln системы ортогональных полиномов L = Система полиномов L = {Мх)I ортогональна на [а, Ь ] в следующем смысле: N [<р(х) <рк(х) ] = ^ Vtxti <рк{х,) = 0 , i * к . A.3.14) 00 =0 В настоящее время разработано несколько подходов к построе- построению систем ортогональных полиномов. Одной из наиболее простых является система полиномов Чебышева. В общем случае такую сис- 60
тему ортогональных полиномов можно получить с помощью следую щих рекуррентных формул N <ро (х) = 1 , <pi(x) = х - [х]/ N = х - i = Х,3,..., At,... Можно показать [11,14], что так построенная система полиномов яв- является ортогональной на [а, Ъ ]. На практике удобной является также система ортогональных полиномов Форсайта <ро(х) = 1 ,?>i(*) = 2(дс-у,), 1 ЛТШ ще <;= 1,2,...иу*+1 и дк выбираются из условия ортогональности системы {<pk(x)J: N -» £j Xj = ы 2 2 A.3.18) В этом методе построения ортогональных полиномов на каждом шаге используются только два предыдущих полинома. При вычисле- вычислениях по формулам A.3.15) на каждом шаге используются все ранее найденные полиномы. Если аппроксимирующая функция имеет вид A.3.13), то п 2) ск <Pk(Xj) + Ej , /=1,2,...,#. A.3.19) *-0 систему уравнений можно представить в матричной форме 61
у = Хс + е , A.3.20) где У\ <pl(X2) ... <рп(Х2) <Po(xN) ... <Pn(xN) . л —— / \ Со С\ • Сп \ 1 V с — (n + 1)-мерный вектор-столбец неизвестных параметров модели A.3.13). Тогда в силу условия ортогональности A.3.14) матрица сис- системы нормальных уравнений является диагональной: ХТХ = N о N о о о о о A.3.21) Из линейной алгебры известно, что матрица, обратная к диаго- диагональной, также является диагональной, причем ее элементы равны обратным величинам диагональных элементов исходной матрицы. Поэтому учитывая, что решение нормальной системы уравнений можно найти по формуле с = (ХтХ)~1Хту , получим оценки коэффи- коэффициентов модели A.3.13) : ) У) , 2 У 1 = Ы ~— v/,x,..«, П • A.3.22) Оценки коэффициентов со, ci,..., cn не коррелированы между собой и имеют дисперсии а2 С* = 2 1г — П 1 и A.3.23) гдеа2 — дисперсия случайных ошибок эксперимента [1,4,19]. 62
В реальных задачах дисперсия а1 обычно неизвестна. Поэтому в формулах A.3.23) можно использовать ее оценку N О»-ЛJ . A.3.24) где У} — значения модели A.3.13) в точках х\. Если модель A.3.13) выбрана правильно, то оценка A.3.24) дисперсии с/ является несме- несмещенной, т. е. М sn = о . При решении практических задач степень аппроксимирующего полинома обычно неизвестна. Если функция у = f(x) аппроксимиру- аппроксимируется с помощью полинома A.1.1), то выбор его степени часто осуще- осуществляется следующим образом. Начиная с некоторого малого числа по (например, по = 1) выбирается возрастающая последовательность целых чисел п\> пг> из,..., яР)... и для этих степеней путем решения системы (X X) а = X у вычисляются коэффициенты полинома. Для каждого значения п с помощью найденных оценок вычисляются оста- остаточные дисперсии (J.3.24). При увеличении п остаточная дисперсия сначала обычно убывает, а позже наступает момент, когда она начина- начинает возрастать. Поэтому степень полинома п выбирается равной значе- значению п , при котором остаточная дисперсия является минимальной. Рассмотренный метод выбора наилучшего аппроксимирующего полинома имеет тот недостаток, что на каждом шаге оценки всех коэф- коэффициентов приходится вычислять заново. Если для аппроксимации функции у = f(x) используются ортогональные полиномы, то при пере- переходе от полиндмадггепе^и п к полиному степени (п +1) все оценки ко- коэффициентов со, ci,..Mycn остаются без изменений и находится тхш&о оценка коэффициента с„+1 при ортогональном полиноме <рп+1 (x). Описанную выше процедуру выбора наилучшего аппроксимиру- аппроксимирующего полинома следует использовать очень осторожно, так ка1к мо- может оказаться, что процесс вычислений прекратился преждевременно. Эта ситуация может возникнуть в том случае, ког- когда аппроксимируется почти симметричная функция, для которой ап- аппроксимирующий полином будет содержать лишь составляющие с четными степенями, а составляющие с нечетными степенями явля- являются очень малыми. В данном случае при переходе от полинома чет- четной степени к полиному нечетной степени остаточная дисперсия практически не изменится. Поэтому для того, чтобы избежать, оши- ошибок, необходимо найти первый момент, когда дисперсия стабилизи- стабилизируется на некотором уровне, а после этого сделать еще несколько шагов и рассмотреть дальнейшее поведение остаточной дисперсии. Другие процедуры выбора степени алгебраического полинома Рассмотрены в работах [11,19,24]. Их можно использовать при ре- решении задачи аппроксимации только в том случае, когда ошибки в экспериментальных данных имеют нормальное распределение. 63
Из формул A.3.22) следует, что оценки коэффициентов модели A.3.13), найденные по МНК, представляют собой линейные комби- комбинации экспериментальных значений функции у**/(х). Эти оценки имеют минимальные дисперсии в классе линейных насыщенных оце- оценок параметров модели A.3.13), независимо от типа распределения ошибок в экспериментальных данных [11]. Если ошибки эксперимента нормально распределены, то можно по- построить статистические критерии, позволяющие проверить гипотезы о значимости коэффициентов модели, оценить достоверность обработки, а при наличии результатов параллельных опытов проверить гипотезу об адекватности модели A.3.13). Критерии проверки значимости коэф- коэффициентов, а также адекватности модели рассмотрены в работах [1,5,14,19,24]. Доверительный эллипсоид для коэффициентов со, с\,..., с модели, характеризующий точность оценки, имеет вид = {(со, ci,..., Сл)]£ | \ '' < Ye E (» - 2) OfPfa)) } у (ЬЗ.25) где е > О — уровень значимости, у, = i4i,*2(l -~е) — квантиль распре- распределения Фишера c£i = п+1и£2 = N—(n+1) степенями свободы [9 ]. Аппроксимирующую функцию A.3.13) можно преобразовать в обычный алгебраический полином. Выведем рекуррентные соотно- соотношения, с помощью которых вычисляются коэффициенты алгебраи- алгебраического полинома A.1.1). Предположим, что ортогональные полиномы в модели A.3.13) имеют вид A.3.15). Выражение для <рп(х) подставим в формулу A.3.13). В результате получим у(х) = с0<ро(х) + С\<р\(х) +...+ cn-i<pn-i(x) + л л л / = со<ро(х) +...+ ся-1^)п-1(дс) + с«(дс - V ) = (со - (L3-26) Пусть с?^ = с, , I = 0,1,2,..., п и положим сР> = с{'> - cV [ХУ^Х}} , ' = 0,1,2,..., и-1. A.3.27) Тогда, учитывая A.3.27), находим у(х) = d2)<p0(x) + с\\х{х) +...+ <£}црл-1{х) + <4'V • A.3.28) 64
Диалогично, используя выражение A.3Л 5) для <рп-\(х), модель A.3ЛЗ) можно представить в следующей форме: с?Уо(*) + с\Ъ)<рх{х) +...+ с$2<рп-2(х) + A.3.29) , / = 0,1,2,..., л-2, A.3.30) и т.д. В результате получим рекуррентную формулу, по которой можно вычислить коэффициенты с\к): i(x) ] * = 0,1 ,..., К После выполнения преобразований модель A.3.13) имеет вид 3<jc) - сГ0 + №х + ср-!У +...+ c?->i^! + rfV . A.3.32) Отсюда следует, что алгебраический полином A.1.1) и модель A.3.13) эквивалентны, если оценивание неизвестных параметров осуществляется по МНК. В некоторых случаях при решении задачи аппроксимации дис- дисперсию случайных ошибок эксперимента нельзя считать постоянной. Например, при увеличении, значений аргумента разброс значений функций может возрастать. Для аппроксимации функций такого ти- типа можно использовать взвешенный метод наименьших квадратов. Если функция у = f(x) аппроксимируется алгебраическим полино- полиномом AЛ.1), то взвешенный метод наименьших квадратов состоит в минимизации функции [19] а,,..., ап) = 2 Ыя - 2 *rf) > A.3.33) — весовые коэффициенты. Чаще всего весовые коэффициенты // обратно пропорциональны дисперсиям of ошибок случайных ве- Jf . В этом случае значения у с наибольшими дисперсиями наименьшее влияние на оценки коэффициентов полинома. Система нормальных уравнений взвешенного метода наимень- квадратов имеет вид A.3.3), где у а = o,i,...,л, d.3.34) 65
A- * - A.3.35) Задачу аппроксимации функции взвешенным методом наимень- наименьших квадратов (ВМНК) можно также решить, используя ортого- ортогональные полиномы. При этом коэффициенты модели A.3.13) выбираются из условия минимума функции N (co,ci,..., Сп) = 2 рУ(» """ е* A.3.36) Если полиномы ^а(х) , £ = 0,1,2,..., образуют ортогональную систе- систему функций, то матрица нормальной системы является диагональ- диагональной, а решение системы имеет вид N - , 4 = 0,1,..., л. A.3.37) У-1 Ортогональные полиномы ^ь(дс) можно найти с помощью рекуррент- рекуррентных формул 1,2,3,..., n , A.3.38) ще X Л = x , У-1 2 , о о = 0 , 4 = 1,2,3,. A.3.39) 2 У-1 Статистические аспекты теории ВМНК практически не отличаются от соответствующих результатов для МНК. Рассмотренные алгоритмы аппроксимации функций методом на- наименьших квадратов с помощью ортогональных полиномов Чебыше- ва и Форсайта реализованы в программах APR04W01 и APR05W01. В программе APR04W01c помощью узлов xj строится система ор* тогональных полиномов {<рк(х)} по формулам A.3.15). Коэффициен- Коэффициенты при ортогональных полиномах, а также коэффициенты 66
алгебраического полинома вычисляются по формулам A.3.22), A,3.27) — A.3.31). В подпрограмме ввода начальных данных, задан- заданной операторами 8000—8070, в качестве тестовых рассматриваются jifmlO значений полинома у = 1.7+0.5*— 1.2дс +0.17дс + 1.2* в точ- точках х>-= 0.1/, у = 1,..., 10 . Ниже приведен листинг программы APR04W01 для рассматриваемых тестовых данных, а также резуль- результаты вычислений на ПЭВМ. Значения тестового полинома, а также аппроксимирующий полином представлены на рис. 1.10. 10 REM "APR04W01" 30 rem******************************************************************* 40 REM*** ПРОГРАММА АППРОКСИМЦИИ ФУНКЦИИ Y-F(X) ЗАДАННОЙ 42 REMxxx ЭКСПЕРИМЕНТАЛЬНЫМИ ЗНАЧЕНИЯМИ 50 REM*** Y(J) В ТОЧКАХ X(J),J-1 N С ПОМОЩЬЮ ЛИНЕЙНОЙ 55 REM*** КОМБИНАЦИИ ОРТОГОНАЛЬНЫХ ПОЛИНОМОВ ЧЕБЫШЕВА 60 REM****************************************************************** 70 DIMXA00),YA00)tCA0),FIA00,10),FIYA0),SYlA00) 80 DIM FI2AO),C1 A0,10) ,VA0),W<10) 90 GOSUB 8000 100 PRINT 101 PRINT "АППРОКСИМАЦИЯ ПО МНК С ПОМОЩЬЮ ОРТОГОНАЛЬНЫХ ПОЛИНОМОВ ЧЕБЫШЕВА" 102 PRINT "♦♦*♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦*♦♦♦♦♦♦*♦♦♦♦*♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦*♦♦♦*" 103 PRINT:PRINT "ЧИСЛО ЗНАЧЕНИЙ ФУНКЦИИ N-";N ПО PRINT "ЧИСЛО ОЦЕНИВАЕМЫХ КОЭФФИЦИЕНТОВ МОДЕЛИ М-Н;М 115 PRINT 150 SX-0:SY-0 1^0 FORM TON 170 SX-SX+X(I):SY-SY+Y(I) 180 NEXT I 190 SX-SX/N:SY-SY/N 200 PRINT 210 PRINT "СРЕДНЕЕ ЗНАЧЕНИЕ АРГУМЕНТА SX-";SX 215 PRINT 220 PRINT "СРЕДНЕЕ ЗНАЧЕНИЕ ФУНКЦИИ SY-";SY 225 PRINT 230 FOR 1-1 TO N 240 FI(I,1)-1 250 NEXT I 260 FIYA)-SY*N:FI2A)-N 270 FOR 1-1 TO N 280 FI(I,2)-X(I)-SX 29Q NEXT I 300 FIYB)-0:FI2B)-0 310 FOR 1-1 TO N 320 FIYB)-FIYB)+FI(I,2)*Y<I) 330 Р12B)-Р12B)+Р1<1,2)Л2 340 NEXT I 350 CA)-SY:CB)-FIYB)/FI2B) 360 IF M>2 GOTO 440 370 A-CB):B-C<1)-C<2)*SX 380 PRINT:PRINT "КОЭФФИЦИЕНТЫ ЛИНЕЙНОЙ МОДЕЛИ Y-A*X+B" 390 PRINT:PRINTHA-";A;'B-";B 395 PRINT 400 FOR 1-1 TO N 3* 67
i ii! 410 SY1(I)-CA)+CB)*(X(I)-SX) 420 NEXT I 422 S2-0 424 FOR M TO N 426 S2-S2+(Y(I)-SYl(I)r2 427 NEXT! 428 S2-S2/N 429 PRINT "ОСТАТОЧНАЯ ДИСПЕРСИЯ S2-";S2 430 PRINT 435 GOTO 1050 440 FOR 1-3 TO M 450 Il-I-l 460 FORJ-1TOI1 470 V(J)-0:W(J)-0 480 FOR K-l TO N 490 500 J 510 NEXT К ,J 520 FOR K-l TO N 530 FI(K,I)-0 540 FORJ-1TOI1 550 FI<K,I)-FKK,I)+V<J)/W<J)*FI<K,J) 560 NEXTJ 562 FKK.D-Xacm-FKKJ) 565 NEXTK.I 570 FOR 1-3TOM 580 FIY(I)-0:FI2(I)-0 590 FOR K-l TO N 600 FIY(I)-FIY(I)+FI(K,I)*Y(K) 610 Р12A)-Р12Ц)+Р1(К,1)Л2 620 NEXTK.I 630 FOR 1-3 TO M 640 C(I)-FIY(I)/FI2(I) 650 NEXT I 660 FOR 1-1 TO N 670 SY1<I)-O 680 FOR K-l TO M 690 SY1<I)-SY1(I)+C<K)*FI<I,K) 700 NEXTKJ 710 S-0 720 FOR J-l TO N 730 S-S+WD-SYKI))^ 740 NEXT I 750 IFN-MGOTO 1010 760 S2-S/(N-M) 770 PRINT:PRINT "ОСТАТОЧНАЯ ДИСПЕРСИЯ S2-";S2 780 PRINT:PRINT "КОЭФФИЦИЕНТЫ ПРИ ОРТОГОНАЛЬНЬ 785 PRINT ' " 790 FOR 1-1 TO M 800 PRINT "С(";Г)-";СA) 810 NEXT I 815 PRINT " " 820 FOR 1-1 TO M 830 CKIJ)-C(I) 840 NEXT I 850 Ml-M-1 860 FOR K-l TO Ml 870 MK-M-K:MK1-M-K+1 68
f> tf 880 FOR 1-1 TO MK 890 V(I)-0:W(I)-4) 900 FOR Lp-1 TO N 910 V(I)-V(I)+FI(l 920 W(I)-W(I)+FI(LJ)>V2 930 NEXTL 940 Kl-K+1 950 Cl(Kl,I)-C1 (K.D-Cl (K,MK1)*V(I)/W<I) 960 NEXT I 965 NEXT К 970 FOR 1-1 TO M 980 MI1-M-I+1 990 C(I)-CKMIIJ) 1000 NEXT I 1010 PRINT:PRINT "КОЭФФИЦИЕНТЫ АЛГЕБРАИЧЕСКОГО ПОЛИНОМА" 1015 PRINT " ^ " 1020 FORI-1TOM 1030 PRINT "C(";I;")-";C(D 1040 NEXT I 1045 PRINT" " 1050 PRINT:PRINT 1055 PRINT "НОМЕР ТОЧКИ ЗНАЧ.АРГУМ. ЗНАЧ.ФУНК. ЗНАЧЕН. МОДЕЛИ РАЗНОСТИ" 1060 PRINT " 1065 FOR I-l TO N 1070 PRINT I,X(I),Y(I),SY1 (I),Y(I)-SY1 (I) 1080 NEXT I 1090 PRINT " 1100 PRINT " ":PRINT 1110 INPUT "ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧ. АРГУМ. XMIN,XMAX";XMIN,XMAX 1120 INPUT "ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧ. ФУНКЦ. YMIN,YMAX";YMIN,YMAX ИЗО REMGOSUB9000 1140 MARKER-2:GOSUB 9500 1150 REM MARKER-3:GOSUB 10000 120Q END 3000 REM ПОДПРОГРАММА'ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ ВЫВОДИМОЙ НА ГРАФИК ФУНКЦИИ ЗОЮ YU-C(M-1)+C(M)*XU:M1-M-1 3020 FOR 1-2 ТО Ml 3030 YU-C(M-I)+YU*XU 3040 NEXT I 3050 RETURN 8000 REM ПОДПРОГРАММА ВВОДА НАЧАЛЬНЫХ ДАННЫХ 8010 N-10 8020 М-5 8030 FOR М ТО N 8040 X(D- 8050 YOb 8060 NEXT I 8070 RETURN 9000 REM "GR9000": ПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА -^ ФУНКЦИИ 9010 PRINT " ":PRINT " ГРАФИК ПОЛИНОМА ":PRINT " " 9020 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X:NXD-";NXD 9030 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y:NYD-";NYD 9050 NY-NYD+1 69
9060 CLS:SCREEN2:DY-(YMAX-YMIN)/NYD:FORI-1 TO NY:YI-2Of 160/NYD* (I-1) 9070 LINEG4,YI)-E74,YI):NEXT I:NX-NXD+1 9080 FOR I-l TO NX:XI«84+480/NXD*(I-l):LINE (XI,12)-(XI,188):NEXT I 9090 R-23 9100 FORK-OTONYD 9110 LOCATE R 1 9120 SY-YMIN+DY*K:PRINT USING "#.###ff;SY 9130 R-R-20/NYD 9135 NEXT К 9140 O7:DX-(XMAX-XMIN)/NXD 9150 FOR K-0 TO NXD:KEY OFF:LOCATE 24,C 9160 SX-XMIN+DX*K 9170 PRINT USING "####.##ff;SX; 9180 C-C+60/(NXD+0) 9185 NEXT К 9310 XA-E64-84) / (XMAX-XMIN):YA-A80-20) / (YMAX-YMIN) 9320 FOR IX-84 TO 564:XU-XMIN+(IX-84)/480* (XMAX-XMIN) 9330 GOSUB3000 9340 IY-J80-(YU-YMIN)*YA 9350 IFIY<20ORIY>180THEN9370 9360 IF IX-84 THEN PSET (IX,IY) 9365 LINE-(IX,IY) 9370 NEXT IX 9380 FOR I-l TO N 9390 YG-180-(Y(I)-YMIN)*YA 9400 IF YG<20 OR YG>180 GOTO 9440 9410 XG-480* (X (I) -XMIN) / (XMAX-XMIN)+84 9420 PSET (XG,YG) 9430 DRAW "E2G4E2H2F4H2E2D4L4U4R4G2ff 9440 NEXTJ 9450 RETURN 9500 REM f GRAF9500' 9510 XS-(XMIN+XMAX)/2 9520 YS-(YMIN+YMAX)/2 9530 CLS 9540 SCREEN 2:KEY OFF 9550 VX-XMAX-XMIN:DX-300/VX:VY-YMAX-YMIN:DY-120/VY 9560 FOR IX-40 TO 440 •• 9570 XU-XMIN+(IX-40)/400*VX 9580 GOSUB 3000 9590 IY-125-(YU-YMIN)*DY 9595 IF IY<5 OR IY>125 GOTO 9620 9600 IF IX-40 THEN PSET (IX,IY) :GOTO 9620 9610 LINE-(IX,IY) 9620 NEXT IX 9630 FOR IE-1 TO N 9640 YE-125-(Y(IE)-YMIN)*DY 9650 IF YE<5 OR YE>125 GOTO 9740 9660 XE-400*(X(IE)-XMIN)/VX+40 9670 PSET (XE,YE) 9680 ON MARKER GOTO 9690,9700,9710,9720,9730 9690 DRAW "U2D4U2L4R8L4":GOTO 9740 9700 DRAW "E2L4F4L4E3":GOTO 9740 9710 DRAW ffE2D4H4D4E2L4R8L4":GOTO 9740 9720 DRAW "E2G4E2H2F4H2L4R8L4 ":GOTO 9740 9730 DRAW "U2G3R6H3D2" 9740 NEXT IE 70
9750 LINE D0,5)-D40,5) 9760 LINE D0,125)- D40,125) 9770 LINE D0,5) -D0,125) 9780 LINE D40,5) - D40,125) 9790 FOR Y-5 TO 125 STEP 12 9800 LINED0,Y)-D3,Y) 9810 LINE D40,Y)-D37,Y) 9820 NEXTY 9830 LOCATE 1,2:PRINT YMAX 9840 LOCATE 9.2:PRINTYS 9850 LOCATE 16,2:PRINT YMIN 9860 FOR X-79 TO 440 STEP 40 9870 LINE (X, 125)-(X, 122) 9880 LINE (X-£l,125)-(X+l, 122) 9890 LINE (X,5)-(X,8) 9900 LINE(X+1,5)-(X+1,8) 9910 NEXTX 9920 LOCATE 17,4:PRINTXMIN 9930 LOCATE 17,29:PRINTXS 9940 LOCATE 17,54:PRINTXMAX 9950 A$-INPUT$A) 9960 RETURN 10000 REM "GR 10000" ПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА ФУНКЦИИ 10010 PRINT " ":PRINT " ГРАФИЧЕСКОЕ ИЗОБРАЖЕНИЕ РЕЗУЛЬТАТОВ AnnPOKCHMAUHH":PRINT и и 10020 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X:NXD-";NXD 10030 INt>UT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y:NYD-";NYD 10040 NY-NYD+1 10050 CLS:SCREEN2:DY-(YMAX-YMIN)/NYD:FORI-1 TO NY: Y-2Of 160/NYD* (I-1) 10060 LINEG6,Y)-(90,Y):NEXT LNX-NXD+1 10070 FOR I-l TO NX:X-84+480/NXD*(I-l):LINE (X,176)-(X,184):NEXT I 10080 LINE (84,12M84,188):LINE (84,180)-E68,180) 10090 R-23 10100 FORK-OTONYD 10110 LOCATE R 3 10120 SY-YMIN+DY*K: PRINT USING "#.##";SY 10130 R-R-20/NYD 10140 NEXT К 10150 C-7:DX-(XMAX-XMIN)/NXD 10160 FORK-0TONXD:KEYOFF:LOCATE24,C 10170 SX-XMIN+DX*K 10180 PRINT USING "####.##";SX; 10190 C-C+60/(NXD+0) 10200 NEXT К 10210 VX-XMAX-XMIN:VY-YMAX-YMIN:XA-480/VX:YA-160/VY 10230 FOR IX-84 TO 564:XU-XMIN+(IX-84) /480*VX 10240 GOSUB 3000 10250 IY-180-(YU-YMIN)*YA Ю260 IF IY<20 OR IY>180 THEN 10290 10270 IF IX-84 THEN PSET (IX,IY) Ю280 UNE-(IX,IY) Ю290 NEXT IX Ю300 FOR IE-1 TO N Ю310 YE-180-(Y(IE)-YMIN)*YA Ю320 IF YE<20 OR YE>180 GOTO 10410 Ю330 XE-480*(X(IE)-XMIN)/VX+84 71
10340 PSET (XE,YE) 10350 ON MARKER GOTO 10360,10370,10380,10390,10400 10360 DRAW 4J2D4U2L4R8L4":GOTO 10410 10370 DRAW "E2L4F4L4E3":GOTO 10410 10380 DRAW "E2D4H4D4E2L4R8L4 ":GOTO 10410 10390 DRAWtE2G4E2H2F4H2L4R8L4':GOTO 10410 10400 DRAW"U2G3R6H3D2' 10410 NEXT IE 10420 RETURN RUN АППРОКСИМАЦИЯ ПО MHK С ПОМОЩЬЮ ОРТОГОНАЛЬНЫХ ПОЛИНОМОВ ЧЕБЫШЕВА ЧИСЛО ЗНАЧЕНИЙ ФУНКЦИИ N- 10 ЧИСЛО ОЦЕНИВАЕМЫХ КОЭФФИЦИЕНТОВ МОДЕЛИ М- 5 СРЕДНЕЕ ЗНАЧЕНИЕ АРГУМЕНТА SX- .55 СРЕДНЕЕ ЗНАЧЕНИЕ ФУНКЦИИ SY- 1.868421 ОСТАТОЧНАЯ ДИСПЕРСИЯ S2- 7.619378Е-10 КОЭФФИЦИЕНТЫ ПРИ ОРТОГОНАЛЬНЫХ ПОЛИНОМАХ С( 1 )- С( 2 )- С( 3 )- С( 4 )- С( 5 )- 1.868421 .5445399 1.504509 2.809752 1.204706 КОЭФФИЦИЕНТЫ АЛГЕБРАИЧЕСКОГО ПОЛИНОМА С( 1 )- С( 2 )- 1.700179 .4977788 С( 3 )--1.192107 С( 4 )- С( 5 )- НОМЕР ТОЧКИ 1 2 3 4 5 6 7 8 9 10 .15945*9 1.204706 ЗНАЧЕН. АРГУМ. .1 .2 .3 .4 .5 .6 .7 .8 .9000001 1 ЗНАЧЕН. ФУНКЦИИ 1.73829 1.75528 1.75631 1.7496 1.74625 1.76024 1.80843 1.91056 2.08925 2.37 ЗНАЧЕН. МОДЕЛИ 1.738316 1.755254 1.756286 1.749599 1.746268 1.760261 1.808436 1.910544 2.089227 2.370017 РАЗНОСТИ -2.574921 Е-05 2.646446Е-05 2.360344Е-05 8.344651 Е-07 -1.8ООО6Е-О5 -2.086163Е-05 -6.198883Е-06 1.597405Е-05 2.360344Е-05 -1.66893Е-05 ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧ. АРГУМ. XMIN,XMAX? 0,1 ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧ. ФУНКЦ. YMIN,YMAX? 1.5,2.5 ГРАФИЧЕСКОЕ ИЗОБРАЖЕНИЕ РЕЗУЛЬТАТОВ АППРОКСИМАЦИИ ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X:NXD-? 5 ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y:NYD-? 4
1 Рис 1.10. Аппроксимация полиномом 4-й степени значений тестового полинома ме- методом наименьших квадратов В качестве примера рассмотрим решение задачи аппроксимации с помощью модели A.3.13) тарировочных значений перегрузки пу са- самодета Л-410. При испытательном полете самолета Л-410 на ленту магнитного самописца записывалась зависимость пу от времени t . Процесс !(*) = Яу@ является случайным. Для того, чтобы осущест- осуществить статистическую обработку реализации этого процесса, необхо- необходимо ввести ее в память ЭВМ. На магнитную ленту самописца обычно записывается электри- электрический аналог процесса £(*) в виде непрерывного сигнала, или циф- цифрового кода. Поэтому для ввода с магнитной ленты физических значений перегрузки в память ЭВМ, необходимо установить взаимно однозначное соответствие между кодом сигнала х , заданным в отно- относительных единицах, и перегрузкой пу. Соответствие между х и пу устанавливается в лабораторных условиях при тарировке датчика. Значения кода дс, а также соответствующие значения пу приведены нарисЛ.П. Приближение для пу = /(дс) выбиралось в виде полинома A.3.13). При этом степень полинома наиболее целесообразно выбирать из ус- ловия минимума дисперсии A.3.24). Степень полинома можно также найти из условия 73
А„ = max \yn(xj) - yj\ < д , вде д > О — малое число. Величина Ая называется погрешности аппроксимации. Значения тарировочной характеристики вводили в память ПЭВМ с помощью следующей подпрограммы 8000 REM ПОДПРОГРАММА ВВОДА НАЧАЛЬНЫХ ДАННЫХ 8010 N-11 8020 М-5 8030 FOR I-l TO N 8040 READX(I),Y(D 8050 NEXTI 8060 DATA 0.03,-1 8070 DATA 0.07,-0.75 8080 DATA 0.12,-0.5 8090 DATA 0.24,0 8100 DATA 0.31,0.5 8110 DATA 0.37,1 8120 DATA 0.43,1.3 8130 DATA 0.46,1.59 8140 DATA 0.51,1.9 8150 DATA 0.6,2.5 8160 DATA 0.65,2.8 8170 RETURN RUN АППРОКСИМАЦИЯ ПО МНК С ПОМОЩЬЮ ОРТОГОНАЛЬНЫХ ПОЛИНОМОВ ЧЕБЫШЕВА ЧИСЛО ЗНАЧЕНИЙ ФУНКЦИИ N- 11 ЧИСЛО ОЦЕНИВАЕМЫХ КОЭФФИЦИЕНТОВ МОДЕЛИ М- 5 СРЕДНЕЕ ЗНАЧЕНИЕ АРГУМЕНТА SX- .3445455 СРЕДНЕЕ ЗНАЧЕНИЕ ФУНКЦИИ SY- .8490909 ОСТАТОЧНАЯ ДИСПЕРСИЯ S2- 3.647176Е-03 КОЭФФИЦИЕНТЫ ПРИ ОРТОГОНАЛЬНЫХ ПОЛИНОМАХ С( 1 )- .8490909 С( 2 )- 6.178821 С( 3 )- 1.990272 С( 4 )--6.992199 С( 5 )--24.85474 КОЭФФИЦИЕНТЫ АЛГЕБРАИЧЕСКОГО ПОЛИНОМА С( 1 )--1.122791 С( 2 )- 5.211029 С( 3 )--5.81263 С( 4 )- 26.99206 С( 5 )--24.85474 74
НОМЕР точки 1 2 з 4 5 6 7 8 9 10 11 ЗНАЧЕНИЕ АРГУМЕНТА .03 .07 .12 .24 .31 .37 .43 .46 .51 .6 .65 ЗНАЧЕНИЕ ФУНКЦИИ -1 -.75 -.5 0 .5 1 1.3 1.59 1.9 2.5 2.8 ЗНАЧЕНИЕ МОДЕЛИ -.9709822 -.7778388 -.5396805 8.372505Е-02 .5086163 .9109521 1.33952 1.558769 1.92202 2.520391 2.7845Q9 РАЗНОСТИ -2.901775Е-02 2.783883Е-02 3.968042Е-02 -8.3725О5Е-02 -8.616269Е-03 8.904791Е-02 -3.952003Е-02 3.123069Е-02 -.0220201 -2.039075Е-02 1.549125Е-02 ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧ. АРГУМ. XMIN,XMAX? 0,.7 ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧ. ФУНКЦ. YMIN,YMAX? -2,3 Значения тарировочной характеристики, а также аппроксимирую- аппроксимирующего полинома 4-й степени изображены на рис. 1.11. з .5 -2 1 ■ ■ ■ ■ ■ ■ 1 1 1 1 I 1 1 1 1 1 1 1 S 1 1 У 1 ш т 1 . т ш ш ш ■ 1 1 е .35 .7 Рис. 1.11. Аппроксимация полиномом 4-й степени тарировочной характеристики пе Р*грузок в центре тяжести самолета Значения полиномов различных степеней, полученные с по- **ощыо программы APR04W01, содержатся в таблице 1.5. 75
Таблица 1.5 j 1 2 3 4 5 6 7 8 9 10 11 12 0,03 0,07 0,12 0,24 0,31 0,37 0,43 0,46 0,51 0,56 0,60 0,65 yj -1 -0,75 -0,5 0 0,5 1 1,3 1,59 1,9 2,18 2,5 2,8 Pi (Xi) -1,09 -0,85 -0,54 0,2 0,63 1 1,38 1,56 1,87 2,18 2,43 2,74 P2(Xj) -0,99 0,79 -0,53 0,14 0,55 0,93 1,31 1,51 1,85 2,2 2,49 2,85 PHxi) -0,95 -0,79 -0,56 0,09 0,53 0,93 1,34 1,54 1,89 2,22 2,48 2,8 P4(Xj) -0,97 -0,78 -0,55 0,09 0,52 0,92 1,33 1,54 1,9 2,24 2,49 2,78 Ps(xj) -0,97 -0,77 -0,55 0,07 0,52 0,93 1,35 1,56 1,89 2,21 2,47 2,81 Pe(Xj) -0,97 -0,77 -0,55 0,05 0,52 0,94 1,37 1,57 1,88 2,19 2,45 2,84 Pi(Xj) -0,97 -0,76 -0,56 0,04 0,52 0,96 1,38 1,58 1,87 2,17 2,43 2,86 График зависимости остаточной дисперсии A.3.24) от степени полинома п представлен на рис. 1.12. °п 0.010 0.005 1 • 1 5 Рис.1.12. Зависимость остаточной дисперсии от степени аппроксимирующего полинома 76
Алгоритм аппроксимации методом наименьших квадратов с по- подо ортогональных полиномов Форсайта реализован в программе 01. По системе узлов xs строится ортогональная система юмов Форсайта {<pi(x)} с помощью формул A.3.38)—A.3.39). Коффициенты полинома вычисляются по формулам A.3.37). Тес- Тестовые данные определяются подпрограммой, заданной операторами 800М160. Ниже представлен листинг программы APR05W01, реализующей метод Форсайта, а также результаты вычислений по этой программе. Тестовые данные, а также аппроксимирующий полином, получен- полученные с помощью этой программы, показаны на рис. 1.13. 10 REMHAPR05W0r 20 rem************************************************************** 30 КЕМ*** ПРОГРАММА АППРОКСИМАЦИИ МЕТОДОМ НАИМЕНЬШИХ КВАДРАТОВ 40 КЕМ*** ФУНКЦИИ ОДНОЙ ПЕРЕМЕННОЙ Y-F(X), С ПОМОЩЬЮ 50 КЕМ*** ОРТОГОНАЛЬНЫХ ПОЛИНОМОВ ФОРСАЙТА 60 ЦЕМ************************************************************** 70 КЕМ ВВОД НАЧАЛЬНЫХ ДАННЫХ ОСУЩЕСТВЛЯЕТСЯ В ПОДПРОГРАММЕ,ПЕРВЫЙ S0 КЕМ ОПЕРАТОР КОТОРОЙ ИМЕЕТ НОМЕР 8000 90 DIMXB00),YB00),YMB00),UA0),VA0),AA0KE5),CA0),DA0),PA0) 100 GOSUB 8000 110 PRINT:PRINT:PRINT 120 PRINT " РЕГРЕССИОННЫЙ АНАЛИЗ С ПОМОЩЬЮ МЕТОДА ФОРСАЙТА" 130 PRINT "********************************************************" 140 IF N-0 OR M>N-1 OR M>10 THEN PRINT "ОШИБКА В ДАННЫХ'^О 150 PRINT:PRINT "ЧИСЛО ЭКСПЕРИМЕНТАЛЬНЫХ ТОЧЕК N-";N 160 PRINT:PRINT "СТЕПЕНЬ АЛГЕБРАИЧЕСКОГО ПОЛИНОМА М-";М 170 D@)-N 180 MN-1:MV-M 190 FOR LrMN TOMV 200 SX2W) 210 FOR 1-1 TO N 220 LI-L-1:XI-X(I) 230 GOSUB 3000:ZPFS-ZFORS 240 SXZ-SXZ+X(I)*ZPFS~2 250 NEXT I 260 U(L)-SXZ/D(L-1) 270 SXfc-0 280 FORM TON 290 U-L-1:XI-X(I) 300 GOSUB 3000:ZPFS-ZFORS 310 U-L:XI-X(I) 320 GOSUB 3000:ZPFS1-ZFORS 330 SX2WSXZ+X(I)*ZPFS*ZPFS1 340 NEXT I 350 V(L)-SXZ/D(L-1) 360 SZK) 370 FOR 1-1 TO N 380 U-L:XI-X(I) 390 GOSUB 3000:ZPFS-ZFORS SZ 410 NEXT I 77
420 D(L)-SZ 430 NEXTL 450 FORL-0ТОМУ 460 SYZrO 470 FOR 1-1 TO N 480 U-L:XI-X(I) 490 GOSUB 3000:ZPFS-ZFORS 500 SYZpSYZ+Y(I)*ZPFS 510 NEXT I 520 A(L)-SYZ/D(L) 530 NEXTL 540 B{0)-l 550 MV1-MV-1 560 FOR K-0 TO MV1 570 Kl-K+1 580 FOR D-Kl TO MV 590 ILK-L+INT(K*B*MV-K-l)/2) 600 GOSUB 4000 610 B(ILK)-BF 620 NEXTL,K 630 PRINT:PRINT "КОЭФФИЦИЕНТЫ ПОЛИНОМА" 640 PRINT " " 650 FOR K-0 ТОМУ 660 C(K)-A{K) 670 Kl-K+1 680 IFK1>MVGOT0 730 690 FOR IHK1 TO MV 700 ILK-L+INT(K*B*MV-K-l)/2) 710 C(K)-C(K)+A(L)*B(ILK) 720 NEXTL 730 PRINT "C(";K;")-";C(K) 740 NEXT К 745 PRINT" ---" 750 PRINT 760 PRINT "НОМЕР ТОЧКИ ЗНАЧ.АРГУМ. ЗНАЧ.Ф-ИИ ЗНАЧ.МОДЕЛ РАЗНОСТИ" 770 PRINT"-— - " 780 S2-0 790 FOR I-l TO N 800 YMd)-C(O) 810 ХМ-1 820 FOR J-l TO M 830 XM-XM*X(I) 840 YM{I)-YM(I)+C(J)*XM 850 NEXTJ 860 DEI^-Y{I)-YM(I) 870 S2-S2+DEL*DEL 880 PRINTI,X(I),Y(D,YM(I),DEL 890 NEXT I 900 PRINT" - " 910 S2-S2/(N-M-1) 920 PRINT:PRINT "ОСТАТОЧНАЯ ДИСПЕРСИЯ S2-";S2 930 PRINT 950 PRINT "**************************************************************n 960 INPUT "ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. АРГУМ. XMIN,XMAX";XMIN,XMAX 970 INPUT "ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. ФУНКЦ. YMIN,YMAX";YMIN,YMAX 78
980 REM GOSUB 9000 990 MARKER-2:GOSUB 9500 1000 REM MARKER-3:GOSUB 10000 П00 END ЗООО REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ПО РЕКУРРЕНТНОЙ ЗШ0 REM ФОРМУЛЕ ЗНАЧЕНИЙ ПОЛИНОМОВ ФОРСАЙТА 3O2Q ZFORS-1 303& IF U-0 GOTO 3140 3040 Pd)-XI-U(l) 3050 PB)-(XI-UB))*PA)-VA) 3060 IF U<-2 GOTO 3130 3070 Ul-U-1 308a FOR 11^3 TO LI 1 3090 P (ID- (XI-U (ID) *P (IL-1) -V (IL-1) *P (IL-2) 3100 NEXTIL 3110 ZFORS-(XI-U(LI))*P(U-l)-V(LI-l)*P(LI-2) 3120 GOTO 3140 3130 ZFORS-P(U) 3140 RETURN 4000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ВСПОМОГАТЕЛЬНЫХ КОЭФФИЦИЕНТОВ 4010 REM ДЛЯ ПОЛИНОМОВ ФОРСАЙТА 4020 U-L-1:KI-K-1 4030 GOSUB 5OOO:BG1-BG 4040 U-L-1:KI-K 4050 GOSUB 5000:BG2-BG 4060 LI-L-2:KI-K 4070 GOSUB 5000 4080 BF-BG1-U(L)*BG2-V(L-1)*BG 4090 RETURN 5000 REM 5010 BOO 5020 IF KI<0 GOTO 5090 5030 IF KI>U GOTO 5090 5040 IF KI-U GOTO 5080 5050 IUCl-LI+INT(KI*B*MV-Kf-l)/2) 5060 BOB (ILK 1) 5070 GOTO 5090 5080 BO1 5090 RETURN 6000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ ВЫВОДИМОЙ НА ГРАФИК ФУНКЦИИ 6010 YU-C@) 6020 FOR I-l TO M 6030 YU-YU+C(I)*XU^I 6040 NEXT I 6050 RETURN 8000 REM ПОДПРОГРАММА ВВОДА НАЧАЛЬНЫХ ДАННЫХ 8010 N-10 8020 М-4 8030 FOR I-l TO N «040 READ X(I),Yd) 8050 NEXT I 8060 DATA 0.23,5.64 8070 DATA 1.01,7.83 8080 DATA 2.29,17.04 8090 DATA 2.87,21.38 8100 DATA 4.15,24.^6 79
8110 DATA 5.36,16.21 8120 DATA 5.51,14.57 8130 DATA 6.36,0.78 8140 DATA 6.84,-7.64 8150 DATA 7.00,-12.52 8160 RETURN 9000 REM tfGR9000tf: ПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА ФУНКЦИИ 9010 PRINT w ":PRINT и ГРАФИК ПОЛИНОМА ФОРСАЙТА":PRINTH 9020 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ XrNXD-^NXD 9030 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y:NYD-tf;NYD 9050 NY-NYIH1 9060 CLS:SCREEN2:DY-(YMAX-YMIN)/NYD:FORI-1 ТО NY:YI-2O+ 160/NYDVI-l) 9070 UNE G4,YI) - E74,YI) :NEXT I:NX-NXD+1 9080 FORI-1 TONX:XI-84+480/NXD*(I-l):LINE (XI,12)-(XI,188):NEXTI 9090 R-23 9100 FORK-OTONYD 9110 LOCATE R,l 9120 SY-YMIN+DY*K:PRINT USING И#.###И;8У 9130 R4*-20/NYD 9135 NEXT К 9140 C-7:DX-(XMAX-XMIN)/NXD 9150 FOR K-0 TO NXD:KEY OFF:LOCATE 24,C 9160 SX-XMIN+DX*K 9170 PRINT USING И####.##И;8Х; 9180 C-C+tf0/(NXD+O) 9185 NEXT К 9310 XA-E64-84) /(XMAX-XMIN):YA-( 180-20) /(YMAX-TMIN) 9320 FOR IX-84 TO 564:XU-XMIN+(IX-84)/480* (XMAX-XMIN) 9330 GOSUB 6000 9340 IY-180-(YU-YMIN)*YA 9350 IFIY<20ORIY>180THEN9370 9360 IF IX-84 THEN PSET (IX.IY) 9365 IJNE-(IX,IY) 9370 NEXT IX 9380 FOR 1-1 TO N 9390 YG-180-(Y(D-YMIN)*YA 9400 IF YG<20 OR YG>180 GOTO 9440 9410 XG-480* (X (I) -XMIN) / (XMAX-XMIN)+84 9420 PSET (XG,YG) 9430 DRAW tfE2G4E2H2F4H2E2D4UU4R4G2tf 9440 NEXT I 9450 RETURN 9500 REM "GRAF95(Xr 9510 XS-(XMIN+XMAX)/2 9520 YS-(YMIN+YMAX)/2 9530 CLS 9540 SCREEN 2:KEY OFF 9550 VX-XMAX-XMIN:DX-300/VX:VY-YMAX-YMIN:DY-120/VY 9560 FOR IX-40 TO 440 9570 XU-XMIN+(IX-40)/400*VX 9580 GOSUB 6000 9590 IY-125-(YU-YMIN)*DY 9595 IFIY<5ORIY>125GOTQ9620 9600 IF IX-40 THEN PSET (IX,IY):GOTO 9620 9610 UNE-(IX,IY) 9620 NEXT IX 80
9630 FOR IE-1 TO N 9640 YE-125-(Y(IE)-YMIN)*DY 9650 IF YE<5 OR YE>125 GOTO 9740 9660 XE-400*(X(IE)-XMIN)/VX+40 9670 PSET (XEfYE) 0680 ON MARKER GOTO 9690,9700,9710,9720,9730 9690 DRAW 4J2D4U2L4R8L4":GOTO 9740 9700 DRAW "E2L4F4L4E3":GOTO 9740 97HO DRAW "E2D4H4D4E2L4R8L4":GOTO 9740 9720 DRAW "E2G4E2H2F4H2L4R8L4":GOTO 9740 9730 DRAW "U2G3R6H3D2" 9740 NEXT IE 9750 LINE D0,5)-D40,5) 9760 LINE D0,125)-D40,125) 9770 LINE D0,5)-D0,125) 9780 LINE D40,5) -D40,125) 9790 FOR Y-5 TO 125 STEP 12 9800 U№ D0,Y)-D3,Y) 9810 LINE D40,Y)-D37,Y) 9820 NEXTY 9830 LOCATE 1,2:PRINT YMAX 9840 LOCATE 9.2:PRINT YS 9850 LOCATE 16,2:PRINTYMIN 9860 FOR X-79 TO 440 STEP 40 9870 LINE (X,125)-(X,122) 9880 LINE(X+1,125)-(X+1,122) 9890 LINE (X,5)-(X,8) 9900 UNE(X+1,5)-(X+1,8) 9910 NEXTX 9920 LOCATE 17,4:PRINTXMIN 9930 LOCATE 17,29;PRINTXS 9940 LOCATE 17,54:PRINTXMAX 9950 A$-INPUT$A) 9960 RETURN 10000 REM "GR 10000й ПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА ФУНКЦИИ 10010 PRINT и "-.PRINT и ГРАФИЧЕСКОЕ ИЗОБРАЖЕНИЕ РЕЗУЛЬТАТОВ U 10020 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X:NXD-";NXD 10030 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y:NYD-";NYD 10040 NY-NYDH 10050 CLS:SCREEN2:DY-(YMAX-YMIN)/NYD:FORI-1 ТО NY:Y-20+160/NYD* (I-1) 10060 UNEG6,Y)-(90,Y):NEXTI:NX-NXD+l 10070 FORI-1 TONX:X-84+480/NXD*(I-l):LINE (X,176)-(X,184):NEXTI 10080 LINE (84,12)-(84,188):LINE (84,180)-E68,180) 10090 R-23 10100 FOR K-0 TO NYD ЮНО LOCATE R,3 10120 SY-YMIN+DY*K:PRINT USING "#.##M;SY 10130 RHR-20/NYD 10140 NEXT К 10150 C-7:DX-(XMAX-XMIN)/NXD 10160 FOR К-Ю TO NXD:KEY OFF:LOCATE 24,C 10170 SX-XMIN+DX*K 10180 PRINT USING "####.##H;SX; 10190 C4T+60/(NXEHO) 10200 NEXT К 81
10210 VX-XMAX-XMIN:VY-YMAX-YMIN:XA-480/VX:YA-160/VY 10230 FOR IX-84 TO 564:XU-XMIN+(IX-84)/480*VX 10240 GOSUB6000 10250 IY-180-(YU-YMIN)*YA 10260 IF IY<20 OR IY>180 THEN 10290 10270 IF IX-84 THEN PSET (IX,IY) 10280 UNE-(IX,IY) 10290 NEXT IX 10300 FORIE-1TON 10310 YE-180-(Y(IE)-YMIN)*YA 10320 IF YE<20 OR YE>180 GOTO 10410 10330 XE-480*(X(IE)-XMIN)/VX+84 10340 PSET (XE,YE) 10350 ON MARKER GOTO 10360,10370,10380,10390,10400 10360 DRAW tfU2D4U2UR8Utf:GOTO 10410 10370 DRAW иЕ2иР4МЕЗ":СОТО 10410 10380 DRAW "E2D4H4D4E2UR8Utf:GOTO 10410 10390 DRAW "E2G4E2H2F4H2L4R8Utf:GOTO 10410 10400 DRAW 4J2G3R6H3D2tf 10410 NEXT IE 10420 RETURN RUN РЕГРЕССИОННЫЙ АНАЛИЗ С ПОМОЩЬЮ МЕТОДА ФОРСАЙТА ЧИСЛО ЭКСПЕРИМЕНТАЛЬНЫХ ТОЧЕК N-10 СТЕПЕНЬ АЛГЕБРАИЧЕСКОГО ПОЛИНОМА М- 4 КОЭФФИЦИЕНТЫ ПОЛИНОМА С( 0 )- 6.315707 С( 1 )—4.230168 С( 2 )- 6.954799 С( 3 )—1.493027 С( 4 )- 7.6О7579Е-О2 НОМЕР ТОЧКИ 1 2 3 4 5 6 7 8 9 10 ЗНАЧ. АРГУМ. .23 1.01 2.29 2.87 4.15 5.36 5.51 6.36 6.84 7 ЗНАЧ. ФУНКЦИИ 5.64 7.83 17.04 21.38 24.56 16.21 14.57 .78 -7.64 -12.52 ЗНАЧ. МОДЕЛИ 5.692724 7678726 17.26267 21.32758 24.39307 16.33064 14.51792 1.108368 -8.501206 -11.96051 РАЗНОСТИ -5.272389Е-02 .1512742 -.2226734 5.241966Е-02 .1669293 -.1206398 5.207825Е-02 -.328368 .8612056 -.5594902 ОСТАТОЧНАЯ ДИСПЕРСИЯ S2- .2571313 ********************************************4 ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧ. АРГУМ. XMIN,XMAX? 0,7 ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧ. ФУНКЦ. YMIN.YMAX? -30,30 82
Рнс.1.13. Аппроксимация полиномом тестовых данных по программе APR05W01 Ниже представлена программа ввода значений тарировочной ха- характеристики, а также приведены результаты расчетов с помощью программы APR05W01 для этой программы. Тарировочные значения и аппроксимирующий их полином показаны на рис. 1.14. 8000 REM ПОДПРОГРАММА ВВОДА НАЧАЛЬНЫХ ДАННЫХ 8010 N-11 8020 М-4 8030 FOR I-l TO N 8040 READX(I),Y(I) 8050 NEXT I 8060 DATA 0.03,-1 8070 DATA 0.07,-0.75 8080 DATA 0.12,-0.5 8090 DATA 0.24,0 8100 DATA 0.31,0.5 8110 DATA 0.37,1 8120 DATA 0.43,1.3 8130 DATA 0.46,1.59 8140 DATA 0.51,1.9 8150 DATA 0.6,2.5 8160 DATA 0.65,2.8 8200 RETURN RUN РЕГРЕССИОННЫЙ АНАЛИЗ С ПОМОЩЬЮ МЕТОДА ФОРСАЙТА **************************************************************************** 83
ЧИСЛО ЭКСПЕРИМЕНТАЛЬНЫХ ТОЧЕК N- 11 СТЕПЕНЬ АЛГЕБРАИЧЕСКОГО ПОЛИНОМА М- 4 КОЭФФИЦИЕНТЫ ПОЛИНОМА С( 0 )-- С( 1 )- 1.122822 5.21169 С( 2 )—5.815611 С( 3 )- 26.99672 С( 4 )—24.85703 НОМЕР ТОЧКИ 1 2 3 4 5 6 7 8 9 10 11 ЗНАЧ. АРГУМ. .03 .07 .12 .24 .31 .37 .43 .46 .51 .6 .63 ЗНАЧ. ФУНКЦИИ -1 -.75 -.5 0 .5 1 1.3 1.59 1.9 2.5 2.8 ЗНАЧ. МОДЕЛИ -.970997 -.7778375 -.5396685 8.373695Е-02 .5086207 .9109494 1.339513 1.558761 1.922012 2.520392 2.784518 РАЗНОСТИ -2.900303Е-02 2.783752Е-02 3.966844Е-02 -8.373695Е-02 -8.62062Е-03 8.905053Е-02 -3.951347Е-02 3.123868Е-02 -2.201223Е-02 -.0203917 1.548219Е-02 3 ОСТАТОЧНАЯ ДИСПЕРСИЯ S2- 3.647184Е-03 ************************************************* ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧ. АРГУМ. XMIN.XMAX? 0,0.7 ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧ. ФУНКЦ. YMIN,YMAX? -2,3 .5 -2 г- 1 1 • t 1 1 1 . i *^ i i у1 i i У* 1 i i i у* 1 1 ч 1 а ■ а а в .35 .7 ис 1.14. Аппроксимация полиномом тарировочных значений перегрузок в центре там ги
Анализ результатов выполнения программ APR04W01 и APR05W01 показьцйет, что для тарировочной характеристики эти программы позволяют получить практически одинаковые результа- результаты. 1.4. ПРИБЛИЖЕНИЕ ФУНКЦИЙ МЕТОДОМ НАИМЕНЬШИХ КВАДРАТОВ С ЙОМОЩЬЮ ТРИГОНОМЕТРИЧЕСКИХ МНОГОЧЛЕНОВ При обработке данных эксперимента часто встречаются функ- функции, которые плохо аппроксимируются алгебраическими полинома- полиномами, и увеличение степени полиномов не приводит к повышению точности аппроксимации. В этом случае можно добиться более при- приемлемых результатов, применяя тригонометрические интерполяци- интерполяционные многочлены. При больших N интерполяционные многочлены становятся очень громоздкими даже в том случае, когда для аппрок- аппроксимации используется выражение A.2.3). В случае, когда N - 2м и необходимо найти все гармонические составляющие исследуемого процесса, для вычисления коэффициентов A.2.5)—A.2.7) можно ис- пользовать алгоритм БПФ, рассмотренный в работе [6 ]. Однако в реальных задачах часто нет необходимости вычислять все гармонические составляющие, так как заранее известны номера наиболее существенных гармоник. Например, если реализация со- содержит г периодов процесса, то наиболее важными будут гармоники с номерами kj» = rj, / « !,..., g. В этом случае для аппроксимации функций можно использовать метод наименьших квадратов [2 ]. Задача аппроксимации функции методом наименьших квадратов с помощью тригонометрического интерполяционного полинома фор- формулируется следующим образом. Пусть функция <р — f{x) задана на о*р(езке [0, 2л] значениями yi в точках jc/ » (htl)/N, / = 1,..., N. Необходимо найти оценки коэффициентов ао, <х*у, /?*у, у = 1,..., g мо- модели * Tg(x) = ао + 2 (akj coskpc + pkj sinkjx) , A.4.1) при которых сумма квадратов N 2 Ф («о, a*,,..., akg,fikl9...,fikg) = X (У/ - т*(*дJ • (Ь4.2) будет минимальной. Модель A.4.1) является линейной относительно неизвестных параметров. Тогда оценки неизвестных параметров *0* модели можно найти путем решения нормальной системы урав- * которая имеет диагональную матрицу. Однако оценки коэф- модели A.4.1) можно также найти путем 85
непосредственной минимизации функции A.4.2), характеризующей расстояние многочлена Tg(x) от/(*) • Введем вспомогательные величины 2о, д*;, А*; по формулам Й) = Т7 2 v» = T7Z У i bki — тт 2£ '» /=1,2,..., Тоща функцию A.4.2) можно представить в виде N A.4.3) AT -2 {*- ? [ao ? - 2 3? - i 1 . 2nkj A.4.4) Za • /1 A/ ^-^ A/ I /-1 V /-1 / /-1 . LJtk; y-i 2a Ay 1-1 N N 22 i-1 2 a*/ cos~^ у Ъск, /-i iV y-i Рассмотренное выражение значительно упрощается с помощью равенств
cosfec/ = О, 2 sin fee/ = 0 , к — целое ы 2 cos fee/ sin mxt = 0 ; 2 sin fee/ sin cos tx/ cos mxi = 0 , к # m ; 0 , * = m = 0 , Л72 0 , к * m ; A.4.5) A.4.6) A.4.7) , it = m = 0 , ЛГ/2 . Для того, чтобы доказать справедливость этих тождеств, рас- рассмотрим сумму: N N N cos fee/+*•£ sin fee/= N 1 ~ A.4.8) Комплексное число равно нулю, если его вещественная и мнимая части равны нулю. Отсюда гледует справедливость равенства A.4.5). Соотношения A.4.6), A.4.7) вытекают из A.4.5), если мы использу- используем тождества cosfec sinmx = ^ [sin(ifc+m)x + sin(Jfc—m)x], 1 cosfec cosmjc = iz [cos(£-m)jc + cos(it-l-m)x]. A.4.9) После элементарных преобразований, с учетом тождеств A.4.5) — получим («о, N - 2Na03o - N g 87
т £ Минимум этой функции достигается при а0 = So , сг*у = a*;, /J*y = A*;, / = 1,..., g , т.е. оценки коэффициентов метода наименьших квадратов вычисляются по формулам A.4.3), которые полностью совпадают с оценками A.2.5) — A.2.7). Если ошибки в экспериментальных данных нормально распреде- распределены и выполняются основные предпосылки метода наименьших квадратов, то можно осуществить статистический анализ результа- результатов обработки в соответствии с общей методикой, рассмотренной в работах [2,19]. В качестве примера рассмотрим аппроксимацию с помощью три- тригонометрического многочлена зависимости от времени t изгибных напряжений в лопасти несущего винта вертолета Ми-8 на относи- относительном радиусе г- 0,66. Процесс ап<A) имеет ярко выраженную пе- периодически составляющую, период которой (Т - 0,32 сек) равен одному периоду оборота несущего винта. Один из периодов этого процесса представлен на рис. 1.8. Значения изгибных напряжений в моменты tj = 0,01524 / , / == 1,..., 21 заданы в таблице 1.6. Оценки коэффициентов тригонометрического многочлена («m COS —=— + Рт Sin —=г-) A.4.11) можно найти с помощью программы APR06W01, в которой реализо- реализованы формулы A.4.3) оценивания коэффициентов приближения A.4.11) по методу наименьших квадратов. Ниже представлены листинг программы APR06W01, а также ре- результаты аппроксимации изгибных напряжений, содержащихся в таблице 1.6, с помощью тригонометрического многочлена 8-го по- порядка. График результатов аппроксимации представлен на рис. 1.15. 10 REM"APR06W0r 20 rem**************************************************************** 30 REM*" ПРОГРАММА ВЫЧИСЛЕНИЯ КОЭФФИЦИЕНТОВ 35 REM"* ТРИГОНОМЕТРИЧЕСКОГО 40 REM"* МНОГОЧЛЕНА.СОДЕРЖАЩЕГО ГАРМОНИЧЕСКИЕ 45 REM*" СОСТАВЛЯЮЩИЕ.НОМЕРА 50 REM"* КОТОРЫХ СОДЕРЖАТСЯ В МАССИВЕ NG(I) 60 rem**************************************************************** 70 REM ВВОД НАЧАЛЬНЫХ ДАННЫХ ОСУЩЕСТВЛЯЕТСЯ В ПОДПРОГРАММЕ.ПЕРВЫЙ 80 REM ОПЕРАТОР КОТОРОЙ ИМЕЕТ НОМЕР 8000 90 DIMXB00),YB00),VMB00),NGA00),AA00),BA00),RA00),TETA0O)
100 GOSUB8000 ПО А@)-0 120 FORI-l TON 130 A@)-A@)+Yd) 140 NEXT I 150 N-N 160 A@)-A@)/SN 170 B<0)-0 180 PI-3.1415926# 190 FOR I-l TOM 200 SI-NG(I) 210 A(I)-0 220 ВШ-0 230 Zr2*PI*SI/SN 240 FOR J-l TO N 250 SJ-J 260 AROZ*SJ 270 Ad)-Ad)+Y(J)*COS(ARG) 280 Bd)-Bd)+Y(J)*SIN(ARG) 290 NEXTJ 300 A(J)-A(I)*2/SN 310 B(I)-B(I)*2/SN 320 NEXT I 330 FOR I-l TO N 340 YMd)-A(O) 350 SI-I 360 2M*PI*SI/SN 370 FOR J-l TO M 380 SJ-NG(J) 390 ARG-Z*SJ 400 YMd)-YMd)+A(J)*COS<ARG)+B<J)*SIN<ARG) 410 NEXTJJ 420 PRINTiPRINTiPRINT* РЕЗУЛЬТАТЫ ГАРМОНИЧЕСКОГО АНАЛИЗА" 430 рвдот* "в**************************************************************" 440 PRINT:PRINT "ЧИСЛО ТОЧЕК N-";N 450 PRINT:PRINT "ЧИСЛО ГАРМОНИЧЕСКИХ СОСТАВЛЯЮЩИХ М-";М 460 PRINT 470 PRINT "НОМЕРА КОЭФФИЦ. КОЭФФИЦ. АМПЛИТУДЫ ФАЗЫ" 480 PRINT "I A(I) B(I) R(I) TET(I)" 490 PRINT" " 500 FORI-OTOM 505 R(I)HS(№(A(I)/v2+B(I)A2 510 PRINT I,A(I)rB(I),Ra),TET(I) 520 NEXT I 530 PRINT" " 540 PRINT:PRINT 550 PRINT "НОМЕР ЗНАЧЕНИЯ ЗНАЧЕНИЯ РАЗНОСТИ" 560 PRINT ТОЧКИ ФУНКЦИИ МОДЕЛИ" Ш PRINT "I Yd) YM(I) Yd)-YM(I)" 570 PRINT" " 580 FOR I-l TO N 590 DELrYd)-YM(I) 600 PRINT I,Yd),YMd),DEL 610 NEXT I 620 PRINT" " «5 PRINT:PRINT "ПЕРИОД ПРОЦЕССА T-";N*H:PRINT 630 PRINT "ft************************************************************* 640 INPUT "ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. АРГУМ. 89
XMIN,XMAX";XMIN,XMAX 650 INPUT "ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. ФУНУЦ. YMIN,YMAX";YMIN,YMAX 690 REM GOSUB 9000 700 MARKER-2:GOSUB 9500 710 REM MARKER-3:GOSUB 10000 800 END 5000 REM HZTRM'^IKWlPOrPAMMA ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ ТРИГОНОМЕТРИЧЕСКОГО МНОГОЧЛЕНА 5010 YU-A@) 5020 FOR 1-1 TO M 5030 SI-I 5040 ARG-2*PI*SI*(XU-XMIN)/(XMAX-XMIN) 5050 YU-YU+A(I)*COS(ARG)+B(I)*SIN(ARG) 5060 NEXT I 5070 RETURN 8000 REM ПОДПРОГРАММА ВВОДА НАЧАЛЬНЫХ ДАННЫХ 8010 N-21 8020 М-8 8030 FOR 1-1 TO M 8040 NG(I>-I 8050 NEXT I 8060 H-.016 8070 FOR 1-1 TO N 8080 X(IM*H 8090 NEXT I 8130 FORI-1 TON 8140 READ Yd) 8150 NEXT I 8160 DATA 5.95,6.35,5.8,5.5,5.75,5.85,5.9,6.1,7.1,7.65,6.95,6.8,7.1,7.4,7, 6.45,6,5.75,5.47,5.25,5.35 8170 RETURN 9000 REM "GR9000ff: ПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА ФУНКЦИИ 9010 PRINT " ":PRINT и ГРАФИК ТРИГОНОМЕТРИЧЕСКОГО MHOrO4nEHA":PRINT и и 9020 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X:NXD-";NXD 9030 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y:NYD-";NYD 9050 NY-NYEH-1 9060 CLS:SCREEN 2:DY-(YMAX-YMIN)/NYD:FOR 1-1 TO NY: YI-2O460/NYD* (I-1) 9070 UNE G4,YI) - E74,YI) :NEXT I:NX-NXEH-1 9080 FORI-1 TONX:XI-84+480/NXD*(M):UNE (XI,12)-(XI,188):NEXTI 9090 R-23 9100 FORK-0TONYD 9110 LOCATE R 1 9120 SY-YMIN+DY*K:PRINT USING "#.###";SY 9130 R-R-20/NYD 9135 NEXT К 9140 C-7:DX-(XMAX-XMIN)/NXD 9150 FOR K-0 TO NXD:KEY OFFrLOCATE 24.C 9160 SX-XMIN+DX*K 9170 PRINT USING "####.##";SX; 9180 C-C+60/(NXEH0) 9185 NEXT К 9310 XA-E64-84)/(XMAX-XMIN):YA-A80-20)/(YMAX-YMIN) 9320 FOR IX-84 TO 564:XU-XMIN+(IX-84)/480*(XMAX-XMIN) 9330 GOSUB 5000 90
9340 IY-180-(YU-YMIN)*YA 9350 IF IY<20 OR IY>180 THEN 9370 9360 IF IX-84 THEN PSET <IX,IY) 9365 UNE-(IXJY) 9370 NEXT IX 9380 FOR 1-1 TO N 9390 YG-180-(Y(I)-YMIN)*YA 9400 IFYG<20ORYG>180GOTO9440 9410 XG-480*(X(I)-XMIN)/(XMAX-XMIN)+84 9420 PSET <XG,YG) 9430 DRAW HE2G4E2H2F4H2E2D4L4U4R4G2H 9440 NEXT I 9450 RETURN 9500 REM MGRAF9500" 9510 XS-(XMIN+XMAX)/2 9520 YS-(YMIN+YMAX)/2 9£30 CLS 9540 SCREEN 2:KEY OFF 9550 VX-XMAX-XMIN:DX-300/VX: VY-YMAX-YMIN:DY-120/VY 9560 FOR IX-40 TO 440 9570 XU-XMIN+(IX-40)/400*VX 9580 GOSUB 5000 9590 IY-125-(YU-YMIN)*DY 9595 IF IY<5 OR IY>125 GOTO 9620 9600 IF IX-40 THEN PSET <IX,IY) :GOTO 9620 9610 UNE-(IX,IY) 9620 NEXT IX 9630 FOR IE-1 TO N 9640 YE-125-(Y(IE)-YMIN)*DY 9650 IF YE<5 OR YE>125 GOTO 9740 9660 XE-400*(X(IE)-XMIN)/VX+40 9670 PSET (XE,Y£) 9680 ON MARKER GOTO 9690,9700,9710,9720,9730 9690 DRAW "U2D4U2L4R8L4ff:GOTO 9740 9700 DRAW "E2L4F4L4E3":GOTO 9740 9710 DRAW ME2D4H4D4E2L4R8L4ff:GOTO 9740 9720 DRAW "E2G4E2H2F4H2L4R8L4M:GOTO 9740 9730 DRAW MU2G3R6H3D2" 9740 NEXT IE 9750 UNE D0,5)-D40,5) 9760 UNE D0,125)-D40,125) 9770 UNE D0,5)-D0,125) 9780 UNE D40,5)-D40,125) 9790 FOR Y-5 TO 125 STEP 12 9800 UNE D0,Y)-D3,Y) 9810 UNE D40,Y)-D37,Y) 9820 NEXTY 9830 LOCATE 1,2:PRINT YMAX 9840 LOCATE 9.2.PRINT YS 9850 LOCATE f6,2:PRINTYMIN 9860 FOR X-79 TO 440 STEP 40 9870 LINE (X,125)-(X,122) 9880 UNE (X+1,12£)-(X+1,122) 9890 UNE (X,5)-(X,8) 9900 UNE(X+1,5)-(X+1,8) 9910 NEXTX 9920 LOCATE 17,4:PRINT XMIN 9930 LOCATE 17,29:PRINTXS 9940 LOCATE 17,54:PRINTXMAX 91
9950 A$-INPUT$A) 9960 RETURN 10000 REM "GRIOOOO" .ПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА ФУНКЦИИ 10010 PRINT и ":PRINT " ГРАФИЧЕСКОЕ ИЗОБРАЖЕНИЕ РЕЗУЛЬТАТОВ AnnPOKCHMAUHHM:PRINT и и 10020 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X:NXD-";NXD 10030 INPUT 'ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y:NYD-";NYD 10040 NY-NYDM 10050 CLS:SCREEN2:DY-(YMAX-YMIN)/NYP:FORI-1 TO NY: Y-20* 160/NYD* (I-1) 10060 LINEG6,Y)- (90.Y) :NEXT I:NX-NXD+1 10070 FORI-1 TONX:X-84+480/NXD*(I-l):UNE (X,176)-(X,184):NEXTI 10080 LINE (84,12)-(84,188):LINE (84,180)-E68Л80) 10090 R-23 10100 FORK-OTONYD 10110 LOCATE R,3 10120 SY-YMIN+DY*K:PRINT USING "#.##";SY 10130 R-R-20/NYD 10140 NEXT К 10150 C-7:DX-(XMAX-XMIN)/NXD 10160 FOR K-0 TO NXD:KEY OFF:LOCATE 24.C 10170 SX-XMIN+DX*K 10180 PRINT USING "####.##ff;SX; 10190 C-C+60/(NXEHO) 10200 NEXT К 10210 VX-XMAX-XMIN:VY-»YMAX-YMIN:XA-480/VX:YA-160/VY 10230 FOR IX-84 TO 564:XU-XMIN+(IX-84)/480*VX 10240 GOSUB5000 10250 IY-180-(YU-YMIN)*YA 10260 IF IY<20 OR IY> 180 THEN 10290 Ш270 IF IX-84 THEN PSET UX.IY) 10280 UNE-(IX,IY) 10290 NEXT IX 10300 FORIE-1TON 10310 YE-180-(Y(IE)-YMIN)*YA 10320 IFYE<20ORYE>180GOTO10410 10330 XE-480*(X(IE)-XMIN)/VX+84 10340 PSET (XE,YE) 10350 ON MARKER GOTO 10360,10370,10380,10390,10400 10360 DRAW "U2D4U2L4R8L4":GOTO 10410 10370 DRAW"E2L4F4L4E3":GOTO 10410 10380 DRAW "E2D4H4D4E2L4R8L4M:GOTO 10410 10390 DRAW "E2G4E2H2F4H2L4R8L4":GOTO 10410 10400 DRAW MU2G3R6H3D2" 10410 NEXT IE 10420 RETURN RUN РЕЗУЛЬТАТЫ ГАРМОНИЧЕСКОГО АНАЛИЗА **************************************************************************** ЧИСЛО ТОЧЕК N- 21 ЧИСЛО ГАРМОНИЧЕСКИХ СОСТАВЛЯЮЩИХ М- 8
НОМЕРА I 0 1 2 3 4 5 6 7 8 НОМЕР ТОЧКИ I 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 КОЭФФИЦ. АA) 6.260476 -.7631511 . 1176294 -4.614081Е-02 1.596864Е-02 -.1887646 -3.135745Е-02 -2.476097Е-02 -1.450366Е-02 ЗНАЧЕНИЯ ФУНКЦИИ Yd) 5.95 6.35 5.8 5.5 5.75 5.85 5.9 6.1 7.1 7:65 6.95 6.8 7.1 7.4 7 6.45 6 5.75 5.47 5.25 5.35 КОЭФФИЦ. 1» \ш.9 0 -.3131639 .3021101 .2895019 -7.642861 Е-02 .223836 -9.183724Е-02 1.814682Е-02 -5.064842Е-02 АМПЛИТУДЫ ФАЗЫ R(I) TET(I) 6.260476 0 .8249067 -22.31111 .3242023 -68.72608 .2931559 80.94437 .078079 78.19866 .2928048 49.85852 9.704312Е-02 -71.14775 3.069875Е-02 36.23695 5.268415Е-02 -74.02043 ЗНАЧЕНИЯ РАЗНОСТИ МОДЕЛИ YM(I) 5.969384 6.340745 5.796762 5.515057 5.726697 5.875801 5.878468 6.110863 7.104525 7.62803 6.988325 6.749419 7.15648 7.345071 7.04623 6.417989 6.014933 5.751874 5.454601 5.273354 5.325395 Ym-~YM(I) -1.938438Е-02 9.254932Е-03 3.238678Е-03 -1.505661 Е-02 2.330303Е-02 -2.580118Е-02 2.153206Е-02 -1.086235Е-02 -4.524708Е-03 2.197075Е-02 -3.832483Е-02 5.058193Е-02 -5.647993Е-02 5.492974Е-02 -4.622984Е-02 3.201151Е-02 -1.493263Е-02 -1.87397Е-03 1.539946Е-02 -2.335405Е-02 2.46Q528E-02 ПЕРИОД ПРОЦЕССА Т- .336 *******************************<■*********♦****«<***********♦*♦**♦*********** ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. АРГУМ. XMIN,XMAX? 0,34 ВВЕДИТЕ МИНИМ. И МАКСИМ, ЗНАЧЕН. ФУНКЦ. YMIN,YMAX? 4,8 93
8 6 4 1 ■ в ■ jm * V \ I / 1 ■ \ 1 1 1 г А 1 1 / / / } 1 \ 1 1 / 1 1 т \ < 1 1 1 V 3 i i а а 1 • ■ 1 в .17 .34 Рис. 1.15. Аппроксимация с помощью тригонометрического многочлена изгибн напряжений аИзг@ 8 6 1 ■ ■ : 'К Г ■ ■ 1 X 1 \| X 1 1 1} 1 1 ] / 1 X 1 Z 1 1 I 1 1 X ^^ 1 1 \ х\ 1 1 ■ ■ а а ■ а а 1 4 0 .17 .34 Рис. 1.16. Аппроксимация процесса аИзг = ДО тригонометрическим многочлен 4-го порядка 94
6 4 8 .17 Рис. 1.17. Аппроксимация процесса аИзг = ДО тригонометрическим многочленом 6-го порядка коэффициенты тригонометрических многочленов, а также их значения в узлах сетки содержатся в таблицах 1.6 и 1.7. Таблица 1.6. т От ■ 1 и ррп 0 6,2605 0 1 -0,763 -0,313 2 0,1176 0,3021 3 -0,046 0,2895 4 0,0159 -0,076 5 -0,189 0,2238 6 -0,031 -0,092 7 -0,025 0,0181 8 -0,015 -0,051 9 0,0337 0,0112 Таблица 1.7. JU>9143^ JU0667 У! 5,95 6,35 5,80 5,50 5,75 5,85 5,90 6,10 7,10 Ts(tj) 6,05 6,23 5,82 5,56 5,73 5,85 5,83 6,22 7,07 T6(tj) 5,96 6,29 5,87 5,47 5,71 5,94 5,80 6,14 7,14 Ti (tj) 5,99 6,29 5,84 5,49 5,71 5,92 5,83 6,14 7.П Ts(tj) 5,97 6,34 5,80 5,51 5,73 5,88 5,88 6,11 7,10 T9(tj) 5,94 6,35 5,80 5,50 5,76 5,84 5,84 6,08 7,12 95
tj 0,15238 0,16762 0,18286 0,19810 0,21333 0,22857 0,24381 0,25905 0,27429 0,28952 0,30476 0,32000 У! 7,65 6,95 6,80 7,10 7,40 7,00 6,45 6,00 5,75 5,47 5,25 5,35 T5(fj) 7,50 7,13 6,75 7,03 7,41 7,10 6,36 5,% 5,84 5,49 5,14 5,39 T6(tf) 7,56 7,04 6,74 7,13 7,38 7,02 6,43 6,01 5,75 5,48 5,23 5,36 Tl{tj) 7,58 7,04 6,71 7,15 7,38 6,99 6,46 6,00 5,72 5,50 5,22 5,34 7,63 6,99 6,75 7,16 7,34 7,05 6,41 6,01 5,75 5,45 5,27 5,33 T9(tj) 7,63 6,97 6,78 7,12 7,38 7,02 6,43 6,01 5,73 5,48 5,24 5,36 Зависимость остаточной дисперсии 1 | (X ~ Ты(х,)J от порядка М тригонометрического многочлена показана на рис. 1.18. Из рисунка 1.18 видно, что при увеличении М остаточная дис- дисперсия сначала быстро убывает, а для М > 6 ее изменение становит- становится незначительным. Поэтому при аппроксимации атг = f(t) можно ограничиться рассмотрением тригонометрического многочлена шес- шестого порядка. Этот же вывод можно сделать, анализируя таблицу 1.7. од 0.05 9 Л Рис. 1.18. График зависимости остаточной дисперсии от порядка тригонометриче- тригонометрического многочлена 96
Ниже представлены листинг подпрограммы, позволяющей вве- значения тестовой функции A.2.37), а также результаты ее ап- аппроксимации тригонометрическим многочленом 4-го порядка. Значения функции A.2.37) и тригонометрический многочлен пока- показаны на рис. 1.19. 8000 REM ПОДПРОГРАММА ВВОДА НАЧАЛЬНЫХ ДАННЫХ 8010 N-21 8020 М-4 8025 PI-3.141593 8030 FOR 1-1 ТОМ 8040 NG(I)-I 8050 NEXTI 8060 H-2*PI/N 8070 FOR 1-1 TO N 8080 X(I)-I*H 8090 IF *(I)<-Pl THEN YCD-XCD^iGOTO 8110 8100 ¥A)-B*Р1-ХA)Г2 8110 NEXTI 8170 RETURN RUN РЕЗУЛЬТАТЫ ГАРМОНИЧЕСКОГО АНАЛИЗА ЧИСЛО ТОЧЕК N- 21 ЧИСЛО ГАРМОНИЧЕСКИХ СОСТАВЛЯЮЩИХ М- 4 НОМЕРА КОЭФФИЦ. КОЭФФИЦ. АМПЛИТУДЫ ФАЗЫ I Ad) B(I) R<I) TET(I) 0 1 2 3 4 НОМЕР ТОЧКИ I 1 2 3 4 5 6 7 8 9 10 11 12 13 * л U 3.282409 -3.984964 .9846056 -.4284343 .2330868 ЗНАЧЕНИЯ ФУНКЦИИ Yd) 0 3.282409 1.198302Е-06 3.984964 -5.460211Е-07 .9846056 -3.689ШЕ-08 .4284343 2.519006Е-07 .2330868 ЗНАЧЕНИЯ МОДЕЛИ YM(I) 8.952024Е-02 .1060365 .358081 .8056823 1.432324 2.238006 3.222729 4.386493 5.729296 7.25114 8.952024 8.952024 7.251139 5.729295 4.386491 .2740649 .7547312 1.508196 2.329071 3.160252 4.237612 5.779566 7.530098 8.742315 8.740018 7.530097 5.779565 4.237608 0 1.722917Е-05 3.177385Е-05 -4.934494Е-06 -6.192046Е-05 РАЗНОСТИ Y(D—YM(I) -1.651628Е-02 8.401614Е-02 5.095107Е-02 -7.587159Е-02 -9.106493Е-02 6.247735Е-02 .1488805 -5.027008Е-02 -.2789574 .2097092 .2097054 -.2789579 -5.027008Е-02 .1488829 <3 «-S09 97
15 16 17 18 19 20 21 3.222727 2.238006 1.432324 .8056818 .3580804 8.952011E-02 0 3.16025 2.32907 1.508195 .754731 .2740644 .1060361 8.670279E-02 6.247688E-02 -9.106469E-02 -7.587087E-02 5.095083E-02 8.401599E-02 -1.651596E-02 -8.670279E-02 ПЕРИОД ПРОЦЕССА Т- 6.283186 **************************************************************************** ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. АРГУМ. XMIN.XMAX? 0,6.28 ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. ФУНКЦ. YMIN,YMAX? 0,10 10 5 1 ■ ■ ■ ■ • ■ 1 / 1 1 / / 1 1 / / 1 1 Л 1 1 \ \ I 1 \ 4 \ i i i 1 | ■ ■ ■ 0 3.14 .28 Рис. 1.19. Аппроксимация тригонометрическим многочленом 4-го порядка тестовой функции A.2.37) 1.5. АППРОКСИМАЦИЯ ФУНКЦИЙ, ЗАДАННЫХ ЭКСПЕРИМЕН- ЭКСПЕРИМЕНТАЛЬНЫМИ ДАННЫМИ, ПО МИНИМАКСНОМУ КРИТЕРИЮ Метод наименьших квадратов позволяет для функции f{x) , за- заданной экспериментальными данными, найти близкую в "среднем* функцию <р(х) . Однако значения этих функций в некоторых точках могут сильно различаться между собой. При обработке эксперимент тальных данных часто возникает необходимость аппроксимаций функции по минимаксному критерию. Минимаксный критерий дз^ возможность для функции/(дс) найти близкую функцию <р(х) такиМ образом, что если "расстояние" между ними является малым, то * 98
значения этих функций в экспериментальных точках будут близки- близкими между собой. Минимаксный критерий впервые был рассмотрен П.Л.Чебыше- $ым во второй половине XIX века при исследовании проблемы суще- существования решений несовместных систем уравнений. Задача решения несовместной системы линейных уравнений л N>n> A.5.1) формулируется следующим образом. Для заданных чисел а# , йу не обходимо найти вектор х — (х\,..., хп) , для которого функция п ф (*i,..., Хп) = max A.5.2) является минимальной. Ниже мы покажем, что задача аппроксима- аппроксимации функции по минимаксному критерию эквивалентна задаче ре- решения (по Чебышеву) некоторой несовместной системы линейных алгебраических уравнений. Предположим, что функция у = /(*,) задана на отрезке [а,Ь] зна- значениями у\,..., >w в точках х\,..., xn , а также имеется некоторая сис- система непрерывных функций L = { <pt(x) } , которые линейно независимы на [ayb]. Пусть приближение для/(х) ищется в виде ли- линейной комбинации п <Р(Х) = 2/ ск<Рк(х) , A.5. где ск— неизвестные параметры. Значения аппроксимирующей функ- функции <р(х) должны равняться значениям у функции Длс), или быть как можно более близкими к ним. Поэтому наиболее естественно попы- попытаться найти неизвестные параметры приближения A.5.3) путем ре- решения системы линейных алгебраических уравнений п D — У} у /=1,...,jV- A.5.4) При Д^ > (/t+1) система A.5.4) является несовместной. В этом слу- Чае в качестве решения системы A.5.4) можно взять вектор ;с ^ (со, Ci,..., сп) , минимизирующий функцию Ф (со, ci,..., сп) = max I ]£ а ^(^у) - у . A.5.5) Если параметры аппроксимирующей функции выбираются из минимума функции A.5.5), то критерий оценивания napa- napa99
метров называется минимаксным , а соответствующая ему задача аппроксимации — задачей чебышерского приближения (ЧП). В настоящее время методы решения задач ЧП составляют один из важнейших разделов вычислительной математики. Значительный вклад в развитие теории ЧП внесли А.А.Марков, С.Н.Берштейн, Валле Пуссен, П.Кирхбергер, В.Л.Гончаров, Н.Г.Чеботарев, Е.Я.Ре* мез, Н.И.Ахиезер и другие ученые. Следует особо отметить большое практическое значение работ Е.Я.Ремеза, посвященных численным методам решения задач ЧП. В последние годы это направление ин- интенсивно развивается В.Ф. Демьяновым, В.Н.Малоземовым, С.р.Стечкиным, Л.Коллатцом и другими [3,4,8,15,17,18,23]. В отличие от МНК, для которого в настоящее время разработаны достаточно простые и, вместе с тем, эффективные численные мето- методы, решение задачи ЧП требует привлечения современных числен- численных методов оптимизации. Одна из основных трудностей, возникающих при решении этой задачи, связана с тем, что функция A.5.5), которую необходимо минимизировать, не является диффе- дифференцируемой. Это ограничение значительно затрудняет решение за- задачи чебышевского приближения. При аппроксимации функций по МНК для минимизации суммы квадратов A.3.2) можно использовать один из численных методов оптимизации, рассмотренных в третьем разделе данной книги. В большинстве из этих методов используются частные производные функции A.3.2). Однако функция A.5.5) не является дифференци- дифференцируемой. Поэтому для минимизации функции A.5.5) нельзя приме- применять обычные квазиградиентные методы. Для решения задачи минимизации функции A.5.5) можно использовать обобщенный гра- градиентный метод, рассмотренный в работе [10]. Сначала рассмотрим некоторые свойства функции A.5.5). Функ- Функция ф(с) является выпуклой вниз, т.е. для произвольных и и 0 < X < 1 выполняется неравенство A) B) *- ф(Хс{[) В самом деле сB) A) - Х)сB)) < Хф(сA)) + (\-Х)ф(сB)) . B) A.5.6) п = max - у. п max I <j<N п X max <pi(xj) - y, + A-Я) max \<j<N c?] <pt(xj) - y. 100
Минимум выпуклой вниз негладкой функции A.5.5) можно найти с помощью алгоритма обобщенного градиента спуска [10]. Основная ддея метода обобщенного градиентного спуска заключается в следу- следующем. Если выпуклая вниз функция ф(с) не является гладкой, то ее линии уровня могут иметь "излом" (рис. 1.20). В этой случае, в отли- отличие от градиентного метода для гладких функций, в точке с(к) нет единственной касательной гиперплоскости, а имеется целая совокуп- совокупность так называемых опорных гиперплоскостей г проходящих через точку с(*}. Аналогично тому, как касательная гиперплоскость может быть задана с помощью градиента, каждую опорную гиперплоскость можно охарактеризовать вектором обобщенного градиента, направ- направленным по внешней нормали к гиперплоскости. I Ь20. Линия уровня выпуклой функции ф(с) 101
Вектор обобщенного градиента фс(с) удовлетворяет неравенству <p(w) - ф(с) > (&(с), w - с) , A.5.7) где (и, v) — скалярное произведение векторов ииу. Для негладкой функции ф(с) в точке с(*} существует бесконечно много таких векто- векторов обобщенного градиента. Если функция ф(с) является гладкой, то вектор обобщенного градиента совпадает с вектором обычного гради- градиента. Алгоритм обобщенного градиентного метода иммет вид = 0,1,2,..., A.5.8) где с@) — начальное приближение, рк — величина шага, у* — нор- нормирующий множитель, фс(с^к)) — один из обобщенных градиентов в точке с(*}. Для гладкой функции ф(с) алгоритм обобщенного гради- градиентного метода A.5.8) совпадает с алгоритмом обычного градиентно- градиентного метода = 0,1,2,... . A.5.9) Для функции A.5.5) компоненты вектора обобщенного градиента равны П <Pi(*j) > <pi(Xj) rt 0 , 0 , A.5.10) где / = j(c) — номер у, при котором п /=0 имеет макси- максимальное значение. Алгоритм градиентного метода сходится (является сходящимся), т.е. с ,(*) с при условии, что величины рк удовлетворяют условиям a) б) О, 00 е) £ = 00 A.5.11) где нормирующий множитель у к выбирается таким образом, чтобы ,(*) Фс{*") = Ук 1/2 < оо A.5.12) 102
00 Расходимость ряда ^ рк позволяет достигнуть экстремальной «точки из любого начального приближения с@). В отличие от градиен- градиентного метода, для которого последовательность значений функций цели убывает от итерации к итерации, в методе обобщенного гради- градиентного спуска такое убывание не наблюдается , а только уменьша- уменьшайся расстояние между сР> и с*. Как правило, в практических задачах можно выделить область, которой должны принадлежать значения последовательности {с(к)}. Часто ограничения на параметры с, имеют вид D = { ai < d < bi, i = 0,1,2,..., л} . A.5.13) В этом случае алгоритм обобщенного градиентного метода имеет вид , A.5.14) где DGEn+i — выпуклое замкнутое множество, Ля(у), — операция проектирования, удовлетворяющая условиям: = v , 2) Kd(v)€zD для любого 3) 11лку) - wl I < 11 v - wl I , A.5.15) В качестве проекции Kd(z) вектора z на множество D можно взять ре- решение экстремальной задачи llz- vll -*min, vGD. A.5.16) В частности, если область D имеет вид A.5.13), то я;, v, < di; vz, cii<Vi<bi\ A.5.17) , Vi > bi, i = 0,1,..., ti. Если функция ф(с) непрерывно дифференцируема, то алгоритм A.5.14) совпадает с алгоритмом проекций градиента . A.5.18) Если линейно независимые функции <pi(x) имеют вид = У, / = 0,1,2,..., п, A.5.19) имеем задачу аппроксимации по минимаксному критерию функ- и У = f(x) алгебраическим полиномом. В данном случае оценки ко- коэффициентов аппроксимирующего полинома можно найти по ^ягоритму обобщенного градиентного метода. При этом компоненты ^^тора обобщенного градиента имеют вид 103
/-0 A.5.20) /«0 Процесс вычислений по алгоритму A.5.14) заканчивается при выполнении одного из условий A.5.21) A.5.22) \\с(к)\\ + 11 где Si > 0 — малые числа (например, е, = 0.1 или е] = 0.01 ). Шаг на к-н итерации можно взять равным величине 1 = 0,1,2,.... A.5.23) Рассмотренный алгоритм сходится, если известно достаточно хо- хорошее приближение для коэффициентов многочлена. Поэтому на практике при решении минимаксных задач аппрок- аппроксимации более целесообразно использовать класс алгоритмов Ремеза и Валле-Пуссена. В этих алгоритмах используются множества точек, удовлетворяющих условиям чебышевского альтернанса. Пусть функция у = f(x) задана на отрезке [а,А], Рп(х) — аппрок- аппроксимирующий ее полином, а остаток (х) = /(*) - Рп(х). 1.5.24) Совокупность точек дсо < jci < ...< хп < хп+\ отрезка la,b] удов- удовлетворяет условиям^ чебыщевского альт^рнансэг если значения ос- остатка Rn(x) в этих точках удовлетворяют условиям \Rn(x)\ . = Rn(x2) =...=(- A.5.25) В настоящее время пока что нет точных методов определения точек чебышевского альтернанса. Поэтому для их поиска при решении за- задач полиномиальной аппроксимации используются численные про- процедуры, имеющие итерационный характер. В этих метода* осуществляется последовательный выбор точек, удовлетворяющих условиям A.5.25). 104
В достаточно общем виде процедуру поиска точек чебышевского адьтернанса при решении задачи полиномиальной аппроксимации цожяо сформулировать следующим образом. 1) На отрезке [а,Ь] выбирается начальное приближение $) < дй0) <...< *п0) < лсЙ?! для точек альтернанса, а параметр цикла Jt-O. 2) Пусть на 4-ой итерации найдено приближение $) < дс^ <...< д4А) < *i$i; по значениям функции в этих точках опре- определяются коэффициенты полинома Р%\х) и параметр jAk, удовлетво- ряющие условиям . ' = од,..., A.5.26) 3) Вычисляется величина рк ш max I /#>(*) I A.5.27) * проверяется условие (L5.28) которое при вычислениях с помощью компьютера заменяется усло- условием /><A+ф*, A.5.29) щее > 0 — допустимая погрешность при проверке A.5.28). 4) Если условия A.5.28), A.5.29) выполняются, то проверяется выполнение условия для приближений последовательных итераций шах Ы^-хГЧ <<5, A.5.30) !> 0 — допустимая погрешность при определении точек альтер- ВДнеа. 5) При выполнении условий A.5.28)—A.5.30) полученные на к- итерации точки хо < xi <...< хп < хп+\ являются точками при- чебышевского альтернанса, а соответствующий им — оптимальным по минимаксному критерию. Рассмотренный алгоритм сходится со скоростью геометрической ^Регрессии. Для опреления коэффициентов полинома Р$\х) и параметра Цк. Необходимо решить систему из (я+2)-х уравнений A.5.26), содержа- ^Чу п+2 неизвестных. Если функция у = Дх) задана на дискретном из я+2 точек, то параметр цк можно вычислить по фор- *Уле 105
2 i-if& i-0 где n n+I П П (*^ - x<lk))> ' = O»1»-. *> "+1 > A.5.32) y-o /-y+i /Vi причем /# Ч*^) = /(^}) + (~1)>,, i = 0,1,..., л+l . A.5.33) Используя интерполяционную формулу Лагранжа, многочлен можно представить в виде Полином Лагранжа наиболее точно аппроксимирует функцию ^ = Дх), если его узлы являются нулями полинома Чебышева п-го порядка. Поэтому в качестве начального приближения для точек альтернанса наиболее целесообразно выбирать точки - a) cos^*^1^] , i = 0,1,..., /t+1. A.5.35) Скорость сходимости алгоритма чебышевской аппроксимации существенно зависит от эффективности алгоритма поиска приближе- приближения на каждой итерации. Простейшим из класса алгоритмов Ремеза является алгоритм Валее-Пуссена, в котором на каждой итерации осуществляется замена только одной точки приближения для точек альтернанса (такое приближение часто называется текущим базис- базисным). Преобразование базисного множества точек в алгоритме Вялле- Пуссена осуществляется следующим образом [8,18,19]. На отрезке [а,Ь] определяется точка Зс, в которой остаток A.5.24) имеет максимальное значение, то есть = max I Я$\х) I . a<x<b • « При этом возможны три случая расположения точки х на отрезке 106
Пусть Зс < д#}. Если Rn(x)Rn(x!bk)) > 0 , то есть остатки Rn(x) и Rn имеют один и тот же знак, то на (it+D-й итерации принимается jj*+!> = Зс, а все остальные точки не изменяются; если же они имеют различные знаки, то осуществляется преобразование всех точек по формулам Во втором случае существует отрезок [jc^i, x^}], которому принад- принадлежит точка Зс. Тоща если Rn(x)Rn(dp-i) > 0 , то $-Р = Зс; в против- противном случае j4*+1) = x. Все остальные точки базиса остаются без изменений. Если 3c>jc$i> то осуществляется замена последней точки ХлЙ1* = Зс при Лл(Зс)/?л(Хл*+1) > 0 . При невыполнении этого условия осуществляется преобразование всех точек текущего базиса по фор- формулам Последовательность приближений, получаемых с помощью этого ал- алгоритма, сходится к точкам чебышевского альтернанса независимо от выбора начального базиса. В отличие от алгоритма Валле-Пуссена, в алгоритме Ремеза на каждой итерации осуществляется замена всех точек текущего бази- базиса, в результате чего возрастает скорость сходимости к точкам чебы- чебышевского альтернанса. Предположим, что аппроксимируемая функция у = f(x) опреде- определена во всех точках точках отрезка [а,й], или заданы ее значения только в N дискретных точках, принадлежащих [а,Ь]. Алгоритм Ре- меза замены базиса можно сформулировать следующим образом. 1) Пусть л&0) < М0) <...< xl0) < х^Л — начальный базис на [а,Ь], Ро — максимальное значение остатка R^\x). 2) Предположим, что в результате выполнения итерационной процедуры найдено k-t приближение базиса *о < х[к) <...< хл*} < Xn*+i, а также соответствующее значение рк- Преобразование базиса в алгоритме Ремеза на (ifc+D-й итерации со- состоит из (ai+1) шагов. На 1-м шаге на отрезке [a, ffi ] определяются две точки vb < vi, * одной из которых R^^x) имеет наименьшее значение, а в другой — наибольшее. В этом случае нулевая и первая точка (А+1)-го прибли- приближения принимаются равными л#+1) = vo ; x[k+I) = vi . На 2-м шаге на'отрезке [Жк+1\хР] определяются две точки ^ ^ V2, в одной из которых R<k\x) имеет наименьшее значение (на отрезке), а в другой — наибольшее. Если /^(xP^/tf^vi) > О, 107
то вторая точка (fc+l)-ro приближения Х£"' = V2, причем если , то преобразуется также и первая точка приближения xf } = vi. В этом случае запоминается значе- значение параметра g ш 0 и осуществляется переход к следующему шагу алгоритма. Если же R(n\x\k+l))R(n\v\) < 0, то принимается д#+1) = ц и запоминаются г « V2, g = R(n\r) и т.д. Пусть в результате преобра- преобразований такого типа найдены базисные точки д#+1) < х{*+1) <...< д$*+1), а на предыдущем шаге при g Ф 0 получено значение г. Ял (р+1)-м шаге на отрезке [*p*+I\ jc$i ] аналогично предыду- предыдущему находим точки Vi < V2, в одной из которых R^n\x) имеет мини- минимальное, а в другой — максимальное значение. Если > R^ivi) I, то осуществляется \)\) > 0 и ( преобразование (р+1)-й точки при При условии, что RPirf+^RPivi) > 0 и (р+1)-я точка принимается равной дср*и!) = Уг, повторно изменяется х$+1) = vi, а при \g\ > R^ix^p-i^j xf-il) = г. После этого параметр g принимается равным нулю и осуществляется переход к следующему шагу алгоритма замены базисных точек. Если R^\^p^)l^\vi) < 0 , то выполняется преобразование а также запоминаются г - Яа последнем (п+1)-м шаге описанная выше процедура (для р-го шага) осуществляется для отрезка 1^п+1\ Ь]. Если после выполнения рассмотренных (л+1)-го шагов g > /?пЛ)(^+1))|» то осуществляется преобразование точек базиса — г. — Л|+1 , I — U,l,..., Д , Ниже приведены листинг программы вычисления коэффициен тов полинома чебышевского приближения, а также пример аппрок симации значений функции у = Isinx + sin3x -f 8sin5x + 0. - 0.5) 108
помощью полинома 7-й степени. График аппроксимирующего линома на отрезке [0, 2.4 ] представлен на рис. 1.21. Ю REM"APR0TW01" id rem*************************************************************** 30 REM*** ПРОГРАММА ПОСТРОЕНИЯ АЛГЕБРАИЧЕСКОГО 35 REM*** ПОЛИНОМА НАИЛУЧШЕГО 40 REM*** РАВНОМЕРНОГО ПРИБЛИЖЕНИЯ С ПОМОЩЬЮ 45 REM*** 2-ГО АЛГОРИТМА РЕМЕЗА 50 REM*************************************************************** 60 REM ВВОД НАЧАЛЬНЫХ ДАННЫХ ОСУЩЕСТВЛЯЕТСЯ В ПОДПРОГРАММЕ, 70 REM ПЕРВЫЙ ОПЕРАТОР КОТОРОЙ ИМЕЕТ НОМЕР 8000 80 DIM XB00),YB00),YMB00),DELB00),AB0),INB2),JNB2) 85 DIM AXB2),AYB2),AHB2) 90 GOSUB 8000 100 GOSUB 1000 110 INPUT "ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧ. АРГУМ. XMIN,XMAX";XMIN,XMAX 120 INPUT "ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧ. ФУНКЦ. YMIN,YMAX";YMIN,YMAX 140 REM GOSUB 9000 150 MARKER-2:GOSUB 9500 160 REM MARKER-3.GOSUB 10000 200 END 1000 rem подпрограмма вычисления коэффициентов Алгебраического 1010 rem полинома наилучшего равномерного приближения 1020 print:print:print 1025 М2-М+2 1030 PRINT " ПОСТРОЕНИЕ АЛГЕБРАИЧЕСКОГО ПОЛИНОМА" 1040 PRINT " НАИЛУЧШЕГО РАВНОМЕРНОГО ПРИБЛИЖЕНИЯ" 1050 PRINT *♦♦•♦♦♦*♦♦♦♦♦*♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦" 1052 PRINT:PRINT "ЧИСЛО ТОЧЕК N-";N 1054 PRINT.PRINT "СТЕПЕНЬ ПОЛИНОМА М-";М 1058 PRINT:PRINT "НАЧАЛЬНЫЙ БАЗИС(НОМЕРА ТОЧЕК)" 1066 PRINT " " 1062 FOR 1-1 ТО М2 1064 PRINT "IN<";I;")-";IN(I) 1066 NEXT I 1068 PRINT " " 1070 RH-0 1075 ITR-0 1080 J--1 1090 ITR-ITR+1 ПЮ FORI-1TOM2 1120 INI-IN(I) ИЗО AX(I)-X(INI) 1140 AY(I)-Y(INI> 1150 b-J П60 AH(I)-J И70 NEXT I П80 FORK-2TOM2 1W FOR I-M2 TO К STEP -1 1200 IK1-I-K+1 1210 U-AXd)-AX(IKl) 1215 REM PRINT "K-";K;"I-";I;"U-";U 109
1220 AY(I)-(AY(I)-AY(M»/U 1230 AH(I)-(AH(I)-AH(I-1))/U 1240 NEXTIJC 1250 H-AY(M2)/AH(M2) 1260 Ml-M+1 1270 FORI-1TOM1 1280 A(M)-AY(I)-H*AH(I) 1290 NEXT I 1300 MM1-M-1 1310 FOR I-MM1 TO 0 STEP -1 1320 U-AX(I+1) 1330 FORK-ITOMM1 1340 A(K)-A(K)-A(K+1)*U 1350 NEXTKJ 1360 U-RH 1370 RH-ABS(H) 1380 IFRH<-UGOTO 1910 1390 INA)-1:IN(M2)-N:D-1 1400 Zr0:MAXl-H/2:MINl—MAXl 1410 FORI-1TOM1 1420 KMAX-0:KMIN-0 1430 J1-IN(I):R1-J1:R2-J1 1440 J2-INU+1) 1450 F0RJ-J1T0J2 1460 W-0:U-X(J) 1470 FOR K-M TOO STEP-1 1480 W-W*U+A(K) 1485 NEXT К 1488 W-W-Y(J) 1490 IF W< -KMAX GOTO 1510 1495 KMAX-W 1500 Rl-J 1510 IF W-KMIN GOTO 1540 1520 KMIN-W 1530 R2-J 1540 NEXTJ 1550 IF R1 <-R2 GOTO 1580 1560 J-*1:R1HR2:R2-J 1570 U-KMAX:KMAX-KMIN:KMIN-U 1580 IFSGN(MIN1)<>SGN(KMAX) GOTO 1720 1590 IFABS(MIN1)>-ABS(KMAX) GOTO 1670 1600 JN(I)-R1:JN(I+1)-R2 1610 MAX1-KMAX:MIN1-KMIN 1620 IFABS(Z)<-ABS(MAX1) GOTO 1640 1630 JN(M)-IZ 1640 IF D-0 GOTO 1660 1650 H-KMAX:D-0 1660 GOTO 1715 1670 MAX1-MIN1 1680 IFABS(Z)<-ABS(KMIN) GOTO 1705 1690 JNtf+D-IZ 1695 MIN1-Z 1700 GOTO 1715 1705 JN(I+1)-R2:MIN1-KMIN 1710 MIN1-KMIN 1715 ZH):GOTO1810 1720 MAX1-MIN1 1730 IFABS(Z)<-ABS(KMAX) GOTO 1770 1740 JNU+D-IZ 110
1750 MIN1-Z 1760 GOTO 1790 1770 JN(I+1)-R1 1780 MIN1-KMAX 1790 IZH*2 1800 ZrKMIN 1810 NEXT I 1820 IF ABS(Z)<-ABS(H) GOTO 1870 1830 FOR J-l TO Ml 1840 JN(J)-JN(J+1) 1850 NEXTJ 1860 JN(M2)-IZ 1870 FORI-1TOM2 1880 INd)-JN(I) 1890 NEXT I 1900 GOTO 1080 1910 PRINT.PRINT 1980 PRINT " " 1982 PRINT " ЭКСТРЕМАЛЬНЫЙ БАЗИС 1984 PRINT " " 1986 FORI-1TOM2 1988 PRINT"AXC;I;ff)-";AX(I) 1990 NEXT I 1995 PRINT:PRINT:PRINT "КОЭФФИЦИЕНТЫ ПОЛИНОМА" 2000 PRINT" " 2010 FORI-OTOM 2020 PRINT"A(";I;")-";A(I) 2030 NEXT I 2040 PRINT H H 2050 PRINT.PRINT "МАКСИМАЛЬНОЕ ОТКЛОНЕНИЕ ПОЛИНОМА RH-";RH 2060 PRINT.PRINT "ЧИСЛО ИТЕРАЦИЙ ITR-";ITR 2065 PRINT:PRINT 2070 FOR 1-1 TO N 2080 YM(I)-0 2090 FORJ-OTOM 2100 YM(I)-YM(I)+AU)*X(I)^J 2110 NEXTJJ 2120 PRINT "НОМЕР ТОЧКИ ЗНАЧ.АРГУМ. ЗНАЧ.ФУНКЦ. ЗНАЧ.МОДЕЛИ РАЗНОСТИ" 2130 PRINT" 2140 FORI-l TON 2150 DEL(I)-Y(I)-YM(I) 2160 PRINTI,X(I),Y(I),YM<I),DEL<I) 2170 NEXT I 2180 PRINT " 2190 PRINT "♦♦♦*♦♦♦*♦♦♦*♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦*♦♦" 2200 RETURN 3000 REM ПОДПРОГРАММА ОПРЕДЕЛЕНИЯ МИНИМАЛЬНОГО И МАКСИМАЛЬНОГО ЗНАЧЕНИЙ МОДЕЛИ ЗОЮ FOR I-l TO N 3020 YM(I)-0 3030 FOR J-0 TO M 3040 YMCD-YMdHAU^Xdrj 3050 NEXTJJ 3060 YMIN-O:YMAX-O 3070 FOR I-l TO N 3080 IFYM(I)<YMINTHENYMIN-YM(I) 3090 IFYM(I)>YMAXTHENYMAX-YM(I) 111
3100 NEXT I 3110 PRINT "МИНИМАЛЬНОЕ ЗНАЧЕНИЕ YMIN-";YMIN 3120 PRINT "МАКСИМАЛЬНОЕ ЗНАЧЕНИЕ YMAX-";YMAX 3130 INPUT "ВВЕДИТЕ НОВЫЕ YMIN,YMAX";YMIN,YMAX 3140 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ NYD OCHY";NYD 3150 RETURN 5000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ АЛГЕБРАИЧЕСКОГО ПОЛИНОМА 5010 YU-A(M) 5020 FOR IP-1 TO M 5030 YU-YU*XU+A(M-IP) 5040 NEXT IP 5050 RETURN 8000 REM ПОДПРОГРАММА ВВОДА НАЧАЛЬНЫХ ДАННЫХ 8010 N-25:M-7 8020 FOR 1-1 TO N 8030 X(I)-.1*<I-1) 8040 Y(I)-2*SIN(X(I))+SINC*X(I))+.8*SINE*X(I))+.l*(RND-.5) 8050 NEXT I 8060 FOR J-l TO 9 8070 IN(J)-3*(J-1)+1 8080 NEXTJ 8090 RETURN 9000 REM "GR9000": ПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА ФУНКЦИИ 9010 PRINT " ".PRINT " ГРАФИК ПОЛИНОМА ":PRINT " " 9020 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X:NXD-";NXD 9030 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y:NYD-";NYD 9050 NY-NYD+! 9060 CLS:SCREEN2:DY-(YMAX-YMIN)/NYD:FORI-1 ТО NY:YI-2OH 60/NYD* (I-1) 9070 LINE G4,YI) - E74,YI) :NEXT I:NX-NXD+i 9080 FORI-1 TONX:XI-84+480/NXD*(I-l):LINE (XI,12)-(XI,188):NE 9090 R-23 9100 FORK-0TONYD 9110 LOCATE R,l 9120 SY-YMIN+DY*K:PRINT USING "#.###";SY 9130 R-R-20/NYD 9135 NEXT К 9140 C-7:DX-(XMAX-XMIN)/NXD 9150 FOR K-0 TO NXD:KEY OFF:LOCATE 24,C 9160 SX-XMIN+DX*K 9170 PRINT USING "####.##";SX; 9180 C-C+60/(NXD+0) 9185 NEXT К 9310 XA-E64-84) /(XMAX-XMIN):YA-( 180-20) / (YMAX-YMIN) 9320 FOR IX-84 TO 564:XU-XMIN+(IX-84)/480* (XMAX-XMIN) 9330 GOSUB5000 9340 IY-180-(YU-YMIN)*YA 9350 IF IY<20 OR IY>180 THEN 9370 9360 IF IX-84 THEN PSET (IX,IY) 9365 LINE-(IX,IY) 9370 NEXT IX 9380 FOR Ы TO N 9390 YG-180-(Y(I)-YMIN)*YA 9400 IF YG<20 OR YG>180 GOTO 9440 9410 XG-480* (X (D -XMIN) / (XMAX-XMIN)+84 9420 PSET (XG,YG) 112
0430 DRAW "E2G4E2H2F4H2E2D4L4U4R4G2" 9440 NEXT I 045O RETURN 0500 №M "GRAF9500" «510 XS-(XMIN+XMAX)/2 9520 YS-(YMIN+YMAX)/2 95Э0 CLS 0540 SCREEN 2:KEY OFF «550 VX-XMAX-XMlN:DX-300/VX:VY-YMAX-YMIN:DY-120/VY 9560 FOR IX-40 TO 440 9570 XU-XMIN+(IX-40)/400*VX 9580 GOSUB 5000 9590 IY-125-(YU-YMIN)*DY 9595 IF IY<5 OR IY>125 GOTO 9620 9600 IF IX-40 THEN PSET (IX.IY) :GOTO 9620 9610 UNE-(IXJY) 9620 NEXT IX 9630 FOR IE-1 TO N 9640 YE-126-(Y(IE)-YMIN)*DY 9650 IF YE<5 OR YE>125 GOTO 9740 9660 XE-400*(X(IE)-XMIN)/VX+40 9670 PSET (XE,YE) 9680 ON MARKER GOTO 9690,9700,9710,9720,9730 9690 DRAW •fU2D4U2L4R8L4":GOTO 9740 9700 DRAW "E2L4F4L4E3":GOTO 9740 9710 DRAW "E2D4H4D4E2L4R8L4":GOTO 9740 9720 DRAW "E2G4E2H2F4H2L4R8L4":GOTO 9740 9730 DRAW "U2G3R6H3D2" 9740 NEXT IE 9750 LINE D0,5)-D40,5) 9760 LINE D0,125) -D40,125) 9770 LINE D0,5)-D0,125) 9780 LINE D40,5)-D40,125) 9790 FOR Y-5 TO 125 STEP 12 9800 LINE D0,Y)-D3,Y) 9810 LINE D40,Y)-D37,Y) 9820 NEXT Y 9830 LOCATE 1,2:PRINT YMAX 9840 LOCATE 9.2:PRINT YS 9850 LOCATE 16,2:PRINTYMIN 9860 FOR X-79 TO 440 STEP 40 9870 LINE (X, 125)-(X, 122) 9880 UNE(X+1,125)-(X+1,122) 98?0 UNE (X,5)-(X,8) 9900 UNE(X+1,5)-(X+1,8) 9910 NEXT X 9920 LOCATE 17,4:PRINTXMIN 9930 LOCATE 17,29:PRINTXS 9940 LOCATE 17,54.PRINTXMAX 9950 A$-INPIJT$A) 9960 RETURN *<ХЮ0 REM "GR 10000м ^ПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА 1лл Функции 10010 PRINT " ":PRINT " ГРАФИЧЕСКОЕ ИЗОБРАЖЕНИЕ |лл РЕЗУЛЬТАТОВ AnnPOKCHMALUttT:PRINT " и {0020 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X:NXD-";NXD JW30 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y:NYD-";NYD 10040 NY-NYD+1 ИЗ
10050 CLS:SCREE^2:DY-(YMAX-YMIN)/NYD:FORI-1 TO NY:Y-20+160/NYD* (I-1) 10060 UNEG6,Y)-(90,Y):NEXTI:NX-NXD+l 10070 FORI-1 TONX:X-84+480/NXD*(I-l):LINE (X,176)-(X,184):NEXTI 10080 LINE (84,12)-(84Л 88):LINE (84,180) -E68,180) 10090 R-23 10100 FORK-OTONYD 10110 LOCATE R 3 10120 SY-YMIN+DY*K:PRINT USING И#.##";8У 10130 R-R-20/NYD 10140 NEXT К 10150 C-7:DX-(XMAX-XMIN)/NXD 10160 FOR K-0 TO NXD:KEY OFF:LOCATE 24,C 10170 SX-XMIN+DX*K 10180 PRINT USING "####.##И;8Х; 10190 C-C+60/4NXEH0) 10200 NEXT К 10210 VX-XMAX-XMIN:VY-YMAX-YMIN:XA-480/VX:YA-160/VY 10230 FOR IX-84 TO 564:XU-XMIN+(IX-84)/480*VX 10240 GOSUB3500 10250 IY-180-(YU-YMIN)*YA 10260 IF IY<20 OR IY> 180 THEN 10290 10270 IF IX-84 THEN PSET (IX.IY) 10280 UNE-(IX,IY) 10290 NEXT IX 10300 FORIE-1TON 10310 YE-180-(Y(IE)-YMIN)*YA 10320 IF YE<20 OR YE>180 GOTO 10410 10330 XE-480*(X(IE)-XMIN)/VX+84 10340 PSET (XE,YE) 10350 ON MARKER GOTO 10360,10370,10380,10390,10400 10360 DRAW 4J2D4U2L4R8L4":GOTO 10410 10370 DRAWE2L4F4L4E3t':GOTO 10410 10380 DRAWE2D4H4D4E2L4R8L4t':GOTO 10410 10390 DRAWE2G4E2H2F4H2L4R8L4t':GOTO 10410 10400 DRAWU2G3R6H3D2" 10410 NEXT IE 10420 RETURN RUN ПОСТРОЕНИЕ АЛГЕБРАИЧЕСКОГО ПОЛИНОМА НАИЛУЧШЕГО РАВНОМЕРНОГО ПРИБЛИЖЕНИЯ ЧИСЛО ТОЧЕК N- 25 СТЕПЕНЬ ПОЛИНОМА М- 7 НАЧАЛЬНЫЙ БАЗИС (НОМЕРА ТОЧЕК) IN( 1 )- 1 IN( 2 )- 4 IN( 3 )- 7 IN( 4 )- 10 IN( 5 )- 13 IN( 6 )- 16 IN( 7 )- 19 IN( 8 )- 22 IN( 9 )- 25 114
ЭКСТРЕМАЛЬНЫЙ БАЗИС АХ( 1 )- АХ( 2 )- АХ( 3 )- О .1 А .3 АХ( 4 )- .7 АХ( 5 )- 1.1 АХ( 6 )- 1.4 АХ( 7 )- 1.8 АХ( 8 )- 2.2 АХ( 9 )- 2.4 КОЭФФИЦИЕНТЫ ПОЛИНОМА А( 0 )- А( 1 )- А( 2 А< 3 А( 4 А( 5 А( 6 7 А( 7 )«- 1.27О958Е-О2 6.846051 24.43987 112.6436 151.7881 93.6668 27.40478 -3.08094 МАКСИМАЛЬНОЕ ОТКЛОНЕНИЕ ПОЛИНОМА RH- 5.057457E-02 ЧИСЛО ИТЕРАЦИЙ ITR- 5 НОМЕР ТОЧКИ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 *\^ 25 ЗНАЧЕНИЕ АРГУМЕНТА 0 .1 .2 .3 .4 .5 .6 .7 .8 .9000001 1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2 2.1 2.2 2.3 2.4 ЗНАЧЕНИЕ ФУНКЦИИ -3.786499Е-02 .8939135 1.672044 2.19534 2.468199 2.392494 2.21506 1.86647 1.465458 1.257061 1.07731 1.063423 1.245141 1.393539 1.670526 1.811312 1.797963 1.702747 1.521748 1.302051 1.12804 1.056163 1.123936 1.352903 1.681021 ЗНАЧЕНИЕ МОДЕЛИ 1.270958Е-02 .8433389 1.672968 2.245914 2.48615 2.429055 2.168239 1.815898 1.475107 1.222573 1.100198 1.114009 1.238756 1.426939 1.619999 1.761208 1.807709 1.740944 1.572449 1.346253 1.133148 1.017212 1.073608 1.33252 1.73169 РАЗНОСТИ -5.057457Е-02 .0505746 -9.237528Е-04 -5.057431 Е-02 -1.795054Е-02 -3.656173Е-02 4.682136Е-02 .0505724 -9.648204Е-03 3.448737Е-02 -2.288783Е-02 -5.058575Е-02 6.385207Е-03 -3.339958Е-02 5.052722Е-02 5.010391Е-02 -9.745717Е-03 -.0381968 -5.070102Е-02 -4.420173Е-02 -5.107999Е-03 .0389514 5.032802Е-02 .020383 -5.066836Е-02 115
ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧ. АРГУМ. XMIN.XMAX? 0,2.5 ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧ. ФУНКЦ. YMIN.YMAX? -0.5,3.5 3.5 1.5 -.5 1 :/ ■ 1 1 1 1 \ 1 1 Vi 1 1 i 1 1 1 1 4. 1 1 ■ ■ ■ 1 1.25 2.5 Рис. 1.21. Аппроксимация полиномом 7-й степени N5 значений функции у = 2sinjc+sin3x+8sin5x+0.1(?(x)-0.5)cmaroM A=0.1 на отрезке [0,2.4] При отладке программы APR07W01 в качестве примера рассматри- рассматривалась задача аппроксимации значений полинома 4-й степени, со- содержащих ошибки, с помощью полинома 4-й степени. Начальные данные задавались с помощью подпрограммы 8000 REM ПОДПРОГРАММА ВВОДА НАЧАЛЬНЫХ ДАННЫХ 8005 N-10 8010 М-4 8015 Н-.1 8020 FOR I-l TO N 8030 ХA)-Н*(М) 8040 ¥A)-1.7*.5*ХA)-1.2*ХA)л2*-.17*ХA)лЗ+1.2*ХA)л4+.1»а1КО-.5) 8050 NEXTI 8055 XMIN-O:XMAX-(N-1)*H 8058 PI-3.141593 8060 FOR J-l TO M+2 8070 IN(J)-N-INT( 1 -H*J+<(XMIN+XMAX+CXMAX-XMIN) *COS(B*J-1) ♦PI/(M+2)/2))/2)/H) 8080 NEXTJ 8090 RETURN RUN 116
иезуль ен тате вычислений с помощью подпрограммы APR07W01 были следующие результаты ПОСТРОЕНИЕ АЛГЕБРАИЧЕСКОГО ПОЛИНОМА НАИЛУЧШЕГО РАВНОМЕРНОГО ПРИБЛИЖЕНИЯ ^^i***************************************************************** ЧИСЛО ТОЧЕК N- 10 СТЕПЕНЬ ПОЛИНОМА М- 4 ШКАЛЬНЫЙ БАЗИС (НОМЕРА ТОЧЕК) IN( Ш( Ш( ш< 1 2 3 4 5 6 )- 1 )- 2 )- 4 )- 7 )- 9 )- 10 ЭКСТРЕМАЛЬНЫЙ БАЗИС АХ( 1 )- 0 АХ< 2 )- .4 АХ( 3 )- .5 АХ( 4 )- .6 АХ( 5 )- .8 АХ( 6 )- .9000001 КОЭФФИЦИЕНТЫ ПОЛИНОМА А( 0 )- 1.688878 А( 1 )- 1.082579 А( 2 )—3.458673 А< 3 )- 2.716577 А( 4 )* .4046631 МАКСИМАЛЬНОЕ ОТКЛОНЕНИЕ ПОЛИНОМА RH- 2.674301 Е-02 *ШСЛО ИТЕРАЦИЙ ITR- 5 НОМЕР ЗНАЧЕНИЕ ЗНАЧЕНИЕ ТОЧКИ АРГУМЕНТА ФУНКЦИИ 1 2 3 4 б * 9 10 ЗНАЧЕНИЕ МОДЕЛИ РАЗНОСТИ 0 .1 .2 .3 .4 .5 .6 .7 .8 .9000001 1.662135 1.753476 1.792166 1.779286 1.779485 1.70362 1.759271 1.803882 1.871285 2.134301 1.688878 1.765306 1.789427 1.778997 1.752743 1.730363 1.732528 1.780879 1.898028 2.107558 -2.674306Е-02 -1.183009Е-02 2.739191Е-03 2.895594Е-04 2.674282Е-02 -2.674306Е-02 2.674294Е-02 2.300263Е-02 -2.674294Е-02 2.674294Е-02 117
ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧ. АРГУМ. XMIN.XMAX? 0,1 ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧ. ФУНКЦ. YMIN.YMAX? 1.5,2.5 2.5 2 1.5 е I I ■ ■ ■ 1 1 1 1 1 1 1 * ■ iv.. 1 1 1 1 1 1 1 / i t • ■ ■ • i .5 1 Рис. 1.22. График полинома 4-й степени, аппроксимирующего значения полинома 4-й степени с ошибками Сопоставление коэффициентов полинома и его значений, получен- полученных в результате вычислений с исходными данными показывает, что хотя коэффициенты приближения отличаются от исходных, полином чебышевского приближения достаточно точно аппроксимирует ис- исходные данные. Значения аппроксимирующего полинома, а также исходные дан- данные для этой задачи, изображены на рис. 1.22. Следует отметить, что на практике не всегда можно найти алгеб- алгебраический полином наилучшего приближения, даже с помощью та- такого эффективного алгоритма, как алгоритм Ремеза. Одной из причин этого является плохая обусловленность полинома Рп(х). Чис- Числовой характеристикой обусловленности может выступать величина <Р об = max 0<к<п max Pn(x) A.5.36) где пк — коэффициенты полинома Рп(х) . Поэтому на практике пр" построении полинома наилучшего равномерного приближения част" 118
выбирать различные начальные приближения для базис Гто, чтобы добиться сходимости итерационной процедуры. Значения тарировочной характеристики также аппроксимирова с помощью программы APR07W01. При этом для ввода началь использовалась подпрограмма 9000 REM ПОДПРОГРАММА ВВОДА НАЧАЛЬНЫХ ДАННЫХ 8005 N-12 8010 М-5 J020 FOR М ТО N $030 READ X(I),Yd) 8040 NEXTI 8050 XMIN-XA):XMAX-X(N) 8Й55 VX-XMAX-\MIN:H«VX/(N-1) 8058 PI-3.14159C 8060 FOR J-l TO M+2 8070 IN(J)-N+1 -INT( 1 -H*J+<(XMIN+XMAX+VX*COS(B*J-1) ♦PI/(M+2)/2))/2)/H) 8080 NEXTJ 8090 DATA 0.03,-1 8100 DATA 0.07,-0.75 8110 DATA 0.12,-0.5 8120 DATA 0.24,0 8130 DATA 0.31,0.5 8140 DATA 0.37,1 8150 DATA 0.43,1.3 8160 DATA 0.46,1.59 8170 DATA 0.51,1.9 8180 DATA 0.56,2.18 8190 DATA 0.6,2.5 8200 DATA 0.65,2.8 8210 RETURN • которой номера точек начального базиса определяются оператора- мж 8060—8080. Соответствующие точки сетки на [а>Ь] являются бивкайшими к точкам, определенным соотношениями A.5.35). В ЧЗДессе вычислений были получены следующие результаты ПОСТРОЕНИЕ АЛГЕБРАИЧЕСКОГО ПОЛИНОМА _ НАИЛУЧШЕГО РАВНОМЕРНОГО ПРИБЛИЖЕНИЯ *♦•♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦*♦♦♦♦♦♦♦♦#♦♦♦♦♦♦♦#♦♦♦*♦♦♦♦♦♦♦♦♦♦♦♦♦#♦♦*#♦♦♦♦#♦♦♦ ЧИСЛО ТОЧЕК N- 12 СТЕПЕНЬ ПОЛИНОМА М- 5 НАЧАЛЬНЫЙ БАЗИС (НОМЕРА ТОЧЕК) № з )- 4 Ь И 119
INC 7 )- 12 ЭКСТРЕМАЛЬНЫЙ БАЗИС АХ( 1 )- .03 АХ( 2 )- .12 АХ( 3 )- .24 АХ( 4 )- .37 АХ( 5 )- .43 АХ( 6 )- .6 АХ( 7 )- .65 КОЭФФИЦИЕНТЫ ПОЛИНОМА А( 0 )—1.109313 А( 1 )- 6.269438 А( 2 )--28.0064 А( 3 )- 147.4875 А( 4 )--270.5618 А( 5 )- 168.2117 МАКСИМАЛЬНОЕ ОТКЛОНЕНИЕ ПОЛИНОМА RH- 5.733192Е-02 ЧИСЛО ИТЕРАЦИЙ ITR- 4 НОМЕР ЗНАЧЕНИЕ ЗНАЧЕНИЕ ТОЧКИ АРГУМЕНТА ФУНКЦИИ ЗНАЧЕНИЕ МОДЕЛИ РАЗНОСТИ 1 2 3 4 5 6 7 8 9 10 11 12 .03 .07 .12 .24 .31 .37 .43 .46 .51 .56 .6 .65 -1 -.75 -.5 0 .5 1 1.3 1.59 1.9 2.18 2.5 2.8 -.942668 -.7633085 -.557332 5.733197Е-02 .5194775 .9426682 1.357331 1.554566 1.867074 2.175487 2.44267 2.857332 -5.733198Е-02 1.330853Е-02 5.733192Е-02 -5.733197Е-02 -1.947743Е-02 .0573318 -5.7331 ЗЗЕ-02 3.543437Е-02 .0323261 4.5135О2Е-03 5.73301 ЗЕ-02 -5.733228Е-02 ♦♦♦♦♦#♦♦♦♦*♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦*♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦**•♦♦♦♦♦*♦#♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦ ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧ. АРГУМ. ХМШДМАХ? О,.7 ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧ. ФУНКЦ. YMIN,YMAX? -2,3 20
3 .5 -2 1 1 * 1 1 ■ 1 я* 1 1 1 1 У1 1 1 S 1 1 1 1 1 I У 1 1 1 i jX У 1 • ■ 1 4 ■ ■ I .35 .7 Ь23. Аппроксимация тарировочной характеристики с помощью полинома Рп{х) Значения тарировочной характеристики, а также аппроксимиру- аппроксимирующий их полином Рп{х) наилучшего равномерного приближения по- показаны на рис. 1.23. Литература к главе 1 1. г б. г I. 9. £0* Айвазян С.А,, Енюков И.С, Мешалкин Л.Д. Прикладная статистика: Исследова- Исследование зависимостей. М.: Финансы и статистика, 1985. Андерсон Т. Статистический анализ временных рядов. М.: Мир, 1986. опхвалов Н.С„ Жидков Н.П., Кобельков Г.М. Численные методы. М.: Наука, 1%7 .С., Жидков Н.П. Методы вычислений. М.: Физматгиз, 1959. S. Регрессионное моделирование при обработке наблюдений. М.: Наука, в цифровую фильтрацию. М.: Мир, 1^76. дович Б.П., Марон И. А. Основы вычислительной математики. М.: Наука, *»70. фмьянов В.Ф., Малоземов В.Н. Введение в минимакс. М.: Наука, 1972. 4*онсон Н., Лион Ф. Статистика и планирование эксперимента в технике и JjjjyKe: Методы обработки данных, т.1. М.: Мир, 1980. *Ф*в*ьев Ю.М., Ляшко И.И., Михалевич B.C., Тюптя В.И. Математические метОДы исследования операций. Киев: Вища школа, 1979. 121
11. Кендалл М.Дж., Стюарт А. Статистические выводы и связи. М.: Наука, 1973 12. KypoiuAS. Курс высшей алгебры. М.: Наука, 1975. 13. Ланцош К. Практические методы прикладного анализа: Справочное руководи М.: Физматгиз, 1961. 14. Линник Ю.В. Метод наименьших квадратов и основы теории обработки наблюдений. М.: Физматгиз, 1962. 15. Натансон И.П. Конструктивная теория функций. М.-Л.: Госиздтехлит, 1949. 16. Положий Г.Н., Пахарева Н.А., Степаненко И.З. и dp- Математический практикум. М.: Физматгиз, 1960. 17. Попов Б.А., Теслер Г.С. Приближение функций для технических приложений. Киев: Наукова думка, 1980. 18. Попов Б. А., Теслер Г.С. Вычисление функций на ЭВМ. Киев: Наукова думка, 1984. 19. Север Дж. Линейный регрессионный анализ. М.: Мир, 1980. 20. Турецкий А.Х. Теория интерполирования в задачах. Минск: Вышэйшая школа 1968. 21. Форсайт Дж., Малькольм А/., Моулер К. Машинные методы математических вычислений. М.: Мир, 1980. 22. Хемминг Р.В. Численные методы. М.: Наука, 1972. 23. Ремез Е.Я. Основы численных методов чебышевского приближения. Киев: Наукова думка, 1962. 24. ХудсонД. Статистика для физиков. М.: Мир, 1970. 122
ПРИМЕНЕНИЕ СПЛАЙНОВ ПРИ ОБРАБОТКЕ ЭКСПЕРИМЕНТАЛЬНОЙ ИНФОРМАЦИИ При обработке на ЭВМ результатов испытаний сложных техни- технических систем часто возникает необходимость аппроксимации, чис- ленного дифференцирования и интегрирования функций, заданных экспериментальными данными. Для решения таких задач обычно применяются ставшие уже классическими методы вычислительной математики. Однако при обработке зависимостей между параметра- параметрами технической системы, имеющих достаточно сложную структуру, эти методы часто дают неудовлетворительные или вовсе неприемле- неприемлемые результаты. Например, при численном дифференцировании функций, заданных экспериментальными данными, которые содер- содержат случайные ошибки, производные, найденные численно с по- помощью конечноразностных соотношений, очень сильно отличаются от истинных производных функций. Аналогичная ситуация часто возникает также при численном интегрировании. В последние годы интенсивно развивается новый раздел совре- современной вычислителльной математики — теория сплайнов. Сплайны позволяют эффективно решать задачи обработки эксперименталь- экспериментальных зависимостей между параметрами, имеющих достаточно слож- сложную структуру. Основоположником теории сплайнов можно считать Л.Эйлера, который еще в 18-м веке разработал "метод ломаных" для интегрирования дифференциальных уравнений. В методе ломаных решение дифференциального уравнения представляется с помощью ломаной линии, которая по существу, является простейшим сплай- сплайном первой степени. Современная теория сплайнов была создана во второй половине 20-го века Дж.Албергом, Э.Нильсоном, Дж.Уол- н*ем, И.Шенбергом, Н.П.Корнейчуком, СБ.Стечкиным, Ю.Н.Суб- Ю.Н.Субботиным, Ю.С.Завьяловым и другими математиками. Наиболее широкое практическое применение, в силу их просто- нашли кубические сплайны. Основные идеи теории кубических сплайнов сформировались в результате попыток математически опи- ^ь гибкие рейки из упругого материала (механические сплайны), Которыми издавна пользовались чертежники в тех случаях, когда •озникала необходимость проведения через заданные точки доста- достаточно гладкой кривой. Известно, что рейка из упругого материала, ^Крепленная в некоторых точках и находящаяся в положении рав- £*еси принимает форму, при которой ее энергия является мини- Это фундаментальное свойство позволяет эффективно ^зовать сплайны при решении практических задач обработки Спериментальной информации. 123
В данной главе рассмотрены алгоритмы аппроксимации, жу вания, численного дифференцирования и интегрирования функцийс помощью сплайнов, а также приведены примеры их использования при обработке данных летного эксперимента. 2.1. ИНТЕРПОЛИРОВАНИЕ ФУНКЦИЙ, ЗАДАННЫХ ЭКСПЕРИМЕНТАЛЬНЫМИ ДАННЫМИ, С ПОМОЩЬЮ КУБИЧЕСКИХ СПЛАЙНОВ Предположим, что некоторая неизвестная функция у = f(x) за- задана значениями yi.—»>w B точках xir..M отрезка [а,Ь], причем а = xi < хг < ...< Хн = Ь . Точки jci ,..., хы , в которых заданы значе- значения функции, называются уздами интерр(ущциит а совокупность этих точек — сеткоц на отрезке [а,Ь]. Значения функции, найден- найденные в ходе эксперимента, обычно известны с некоторыми погрешно- погрешностями. Если погрешности измерений можно не учитывать, то для аппроксимации достаточно сложных функций можно использовать кубические сплайны, позволяющие эффективно решить задачу ин- интерполяции. В общем случае для функции у = f(x) , заданной значениями У\у»чУы в точках xi,..., Xn , требуется найти приближение у = <р(х) таким образом, чтобы f(xj) = <p(xj) ; / = 1,..., N , а в остальных точ- точках отрезка [а, А ] значения функций f(x) и <р(х) были близкими меж- между собой. При малом числе экспериментальных точек N (например, N < 6+8) для решения задачи интерполяции можно использовать один из методов построения интерполяционных полиномов.Однако при большом числе узлов N интерполированные полиномы становят- становятся практически непригодными. Это связано с тем, что степень интер- интерполяционного полинома лишь на единицу меньше числа экспериментальных значений функций. Можно, конечно, отрезок, на котором определена функция, разбить на участки, содержащие малое число экспериментальных точек, и для каждого из них постро- построить интерполяционные полиномы. Однако в этом случае аппрокси- аппроксимирующая функция будет иметь точки, где производная не являете* непрерывной, то есть график функции будет содержать точки "изло- "изломов". Кубичекие сплайны лишены этого недостатка. Исследования * теории балок показали, что гибкая тонкая балка между двумя узлЗ' ми достаточно хорошо описывается кубическим полиномом, и по* скольку она не разрушается, то аппроксимирующая функц^ должна быть по меньшей мере непрерывно дифференцируемо»» [2,3,10,11 ]. Поэтому естественно выдвинуть требование, чтобы фУ1^ кция у = <р(х) , аппроксимирующая функцию у = f(x) , была д непрерывно дифференцируемой. Это означает, что функции <р'(х), <р"(х) должны быть непрерывными на отрезке 124
^ jfном на отрезке [a,b ] называется дважды непрерывно диф- нцируемая функция у = <р(х), на каждом из отрезков Х [*Н, х/] совпадающая с кубическим полиномом и удовлетворя- удовлетворяющая условиям интеполяции <p(xj) = у/; / = 1,..., #. Рассмотрим по- построение кубического сплайна на отрезке Ду = [xj-i,*/];/ = 2,..., #. Ддя этого положим А) = р"(*/) 5/ = 1 >•♦•>#• Так как кубический на каждом из отрезков Л/ совпадает с кубическим полино- хо, то для этих отрезков <р"(х) должна быть линейной функцией. Цз аналитической геометрии известно, что если график линейной функции в декартовой системе координат проходит через точки fa-t» Яу-О» (xh Kj) » т0 ЭТУ функцию можно представить в виде X "" лу-1 «^у "" Л/- Отсюда следует, что = xj - Xj-\ ; j = 2,..., М B.1.2) Проинтегрировав это равенство дважды на отрезке Ду и определив константы интегрирования, получим аналитическое выражение ку- кубического сплайна: »[*/-!, я)]; /=2,...,М B.1.3) Очевидно, что у>(ху) =; у}; / = 1,..., #. Так как функция <р(х) является непрерывно дифференцируемой, *0 • любой точке отрезка [а,Ь ] левосторонняя и правосторонняя про- ИЗЮдные равны между собой. Первая производная сплайна имеет вид = -К , . ициенты сплайна К\у...у KN неизвестны, тяк как неизвестна производная <р"{х) функции <р(х) . Их можно кгйти исходя из что функция <р'(х) является непрерывной в точках 125
,..., xn-i . Для этого мы должны найти значения левосторонней правосторонней производной функции<р(х) в точках дсг,..., Xn-\ чения левосторонней и правосторонней производной в точке x-s о дятся путем перехода к пределам в выражении B.1.4) рассмотренном соответственно на отрезках А; и Ay+i. При этом ' j-O) = lim у'4.x) = x-*xj X<Xj <p'(xi+0) = lim 9V. (*) - ~ %Ч ~ Y X-+XJ l B.1.5) В силу непрерывности <р'(х) имеем vr . У/ - >н ^±1ь- У» ^ Ay + д - - -g-Ay - -уАу+1 B.1.6) Введем величины Лу + Лу +i > Mi == 1 - Л/; У = 2,.-» Л^-1 • B.1.7) Тогда система линейных алгебраических уравнений B.1.6) со- состоит из (N-2)-x уравнений и содержит N неизвестных, которые яв- являются коэффициентами сплайна. Учитывая B.1.7), систему B.1.6) можно переписать в виде /,, . B.1.8) Для того, чтобы найти решение системы уравнений B.1.8), необ- необходимо присоединить к ней еще два уравнения. Эти уравнения мож- можно получить, задавая краевые условия, представляющие собой некоторые ограничения на функцию у = f(x) в точках xi = a hxn = ^ В настоящее время разработано несколько алгоритмов аппрокси- аппроксимаций функций с помощью кубических сплайнов, причем различия между ними в основном обусловлены различными условиями на кон- концах отрезка [a, ft]. В дальнейшем мы рассмотрим лишь некоторые из алгоритмов проксимации функций с помощью сплайнов. Для одного из наиболее распространенных алгоритмов краевые условия имеют вид 126
.41. A* B.1.9) me /i > У '* — значения производной в точках аи b. Следует отметить, до эти значения можно выбирать различными способами. Иногда значе- значения производной можно задать, исходя из физической сущности аппрок- дошруемой зависимости. Чаще всего в качестве у' i и у'N берут значения даечноразностной аппроксимации первой производной в точках х\ и xn . Если е > 0 — произвольное малое число (е < minf/b, Ны) ), • Ух +в » Ух/*-е — значения функции у = f(x) в точках х\ + е и B.1.10) При решении задач аппроксимации в некоторых случаях использу- кугся естественные сплайны, для которых <р"(а) = <р"(Ь) = 0 . Дока- зано, что естественный сплайн имеет минимальную кривизну среди всех функций, интерполирующих данную функцию и имеющих ко- конечный интеграл от квадрата второй производной [2,3,6,7,10,11,15]. Иногда при построении сплайнов условия на концах задаются следующим образом. Пусть у>Д2(х) , <р^х) — кубические функции на первом и последнем интервалах разбиения отрезка [а,Ь]. Тогда условия на концах можно задать с помощью соотношений [19 ] <plN(x) = B.1.11) При этом в качестве констант С'\ и C'n-з выбираются значения конеч- иоразностной аппроксимации третьей производной у'"(х) функции У ж /(*) в начальной и конечной точках отрезка [а,Ь]. Так как третья производная сплайна вычисляется по формуле ■ V-» (ч • ■•/ -л? Л,= d и Слг-з соответственно равны B.1.12) »■■? У4 Х4 -Уз Уз~У2 Хз-Х2 l)(X4-X2) -Х\ )(Х4 -Х\ *■<■ Уы-\"~Уы-2 Уы- 1 УС hi 1 ""^ ЗС hi ^ii ЭСм** 2-у^-З 2-XN-3 -*лг-э) , B.1.13) 127
то условия на концах B.1.11) определяют два уравнения — ATi -Ь Кг s 6A2C1 , Kn — Kn-\ — -з . B.1.14) Коэффициенты сплайна, заданного с помощью наклонов у'\,ум на концах отрезка [а,Ь], можно вычислить путем решения системы уравнений 2 Иг 0 6 0 0 д. 2 Иъ 6 0 0 0 Хг 2 6 0 0 для которой •.. ... • • • ... ... ... 0 0 0 . 2 Ин-\ 0 0 0 0 Xn-2 2 Иы 0 0 0 6 Xs- 2 Кг Кг Kn-2 Kn-\ Kn A2 из d's-г dN-i ds B.1.15) 6 Ы-У\ кг \ кг Л/ "~* Aty»y /V "~* X . B.1.16) Система уравнений B.1.15) имеет единственное решение, так как матрица системы имеет преобладающую (или доминирующую) глав- главную диагональ, то есть X 4- и < 2 / = 1 N B 117) Slj i fAj ^^ л* у у ""~ X,...,iY» \а..1»1»/ Для коэффициентов сплайна с условиями на концах B.1.14) система уравнений имеет вид О О О О -1 Иг 0 0 . 0 0 1 2 Из 0 . 0 0 0 д2 2 И* • 0 0 0 0 Дз 2 • 0 0 ... ... ... . . • . ... ... 0 0 0 0 • 2 1 Даг-i -1 К\ Кг Кг Ks-i Kn dx' di (*3 d\* ds-x' ds' B.1.18) При этом правые части dj для 2 < / < W— 1 вычисляются по форму* лам B.1.16), а dx = 6A2Ci", dN = 6A,vCV-3 . B.1.19) Система B.1.18) также имеет единственное решение [19]. Матрицы систем B.1.15) и B.1.18) являются трехдиагональя^' ми. Рассмотрим алгоритм решения системы линейных алгебраиче- алгебраических уравнений вида 128
to 0 0 0 0 C\ bi O3 0 0 0 0 Сг 6 0 0 0 0 0 bN-2 on-i 0 0 0 0 Cn-2 bN-l UN 0 0 0 0 Cn-i bN Xi хг Хъ Xn-2 Xn-i Xn /i h /s /v-2 /am л B.1.20) Сястему уравнений B.1.20) можно решить методом исключений ffrycea [4,13,19]. Для этого первое уравнение системы разделим на (, я вычтем новое уравнение, умноженное на аг, из второго. В ре- результате получим матрицу, в первом столбце которой будет лишь один отличный от нуля элемент Ъ\. Первая строка новой матрицы ос- остается без изменений. Во второй строке на месте элемента аг будет Стоять нодь, а вместо & будет рг = Ьг — (с\1Ь\)п2. Если положить pi « Ь\, то р2 = & - (ci /pi)a2. В столбце правых частей после преоб- преобразования первый элемент /i останется без изменений, а вместо /г появится элемент z2 =/2 — (f\lp\)u2. Если ввести обозначение ft ~ /i, то Z2 = /г — (zi /pi)a2. Тоща новая система будет иметь вид 0 0 • 0 0 0 c\ Рг 6 0 0 0 .. Сг .. Аз .. 6 ..' 0 .. 0 .. 0 0 0 Алг-2 aN-i 0 0 0 0 Cn-2 bN-l UN 0 0 0 6 Cn-i bN Xi X2 X3 Xn-2 Xn-i Xn m m Z\ Z2 h /v-2 /am /a- » m B.1.21) Аяалогачное преобразование осуществляется для системы уравне- уравнений, матрица которой имеет порядок (N-1) (эта матрица выделена Рамочкой в B.1.21)), и т.д. В результате получим систему уравне- ^ft имеющую верхнюю треугольную матрицу (элементы ниже й диагонали матрицы равны нулю) Pi 0 о о о Р2 о о о о 0 0 0 0 . . Pn-i Cn-i 0 Pn X\ X2 . Xn-\ Xn Z\ Z2 . Zn-i Zn m «a B.1.22) элементы ps и правые части z; вычисляются по ре- формулам = Ъх ; pj = bj - Pj-\ B.1.23) 129
z\ =/i : Zj = fj--£—at; у = 2,..., N; B.1.24) Решая последнее уравнение системы, получим xN = — . B.1.25) Pn Определив х^, по формуле ?LZJj*£Ly y = tf-l,tf-2,..., 1 B.1.26) Р/ последовательно можно найти решение системы уравнений B.1.20). Этот метод решения системы B.1.20 ) иногда также называют мето- методом прогонки [2,10,11,13]. Тоща алгоритм А1 решения системы B.1.15) имеет вид: 1) Вычисляются вспомогательные величины р}, z, по формулам рх = 2 , Р/ = 2 - -^-м, у = 2,..., N; Py-i z\ = rfi , z; = d/ —/*/, у = 2,..., AT. B.1.27) Py-i 2) Коэффициенты сплайна Kj находятся по формулам . B.1.28) Аналогично можно сформулировать алгоритм А2 для решения системы B.1.18): 1) Для системы B.1.18) вспомогательные величины находятся по формулам =- 1; Р/ = 2 - -f1^^/, у = 2,..., Л^—1; pN =-l - 1-Х Pn-\ Z\ = ы 1 \ Zj as fly — ^y , y=Z,...,iV--l| Zn ~ U N ~~ Pj-\ Pn-\ B.1.29) ще d'i и dfN имеют вид B.1.19). 2) Коэффициенты сплайна вычисляются с помощью рекуррент ного соотношения л^ — —, Kj — — , у = TV —I,..., Z, Ai = В приложениях вместо B.1.3) чаще предпочитают пользоваться обычным кубическим полиномом. Если х Е Ау= [xy-i, xy], то анали* 130
«цческое выражение кубического сплайна B.1.3) можно переписать в виде у(х) = »-i + ai.y- B.1.31) ще коэффициенты полинома B.1.31) связаны с коэффициентами сплайна B.1.3) формулами К- — JC'-i оз.у-i = ■—ттг— > У = 2,..., М B.1.32) Вычисление коэффициентов сплайна значительно упрощается, если сетка на отрезке [а,А] является равномерной, то есть 1ц = h = const, /«2,..., N. Так как коэффициенты сплайна определяют- определяются путем решения некоторой системы линейных уравнений вида Ах * Ь> вде х — вектор, компоненты которого являются коэффициентами сплай- сплайна, то решение можно найти, вычислив обратную матрицу А ~1. При этом х « А'1 Ь . Для равномерной сетки легко можно вычислить элементы об- обратной матрицы систем уравнений B.1.15), B.1.18). Если кубический сплайн задан с помощью наклонов на концах отрезка [сцЬ ], то можно по- показать [2 ], что коэффициенты сплайна имеют вид К = A»1 [rf, - jfa _ зь/2)] _ i£ I Aj1» + |- y,  + Aw frf* - 4-0* - »r-i /2I , B.1.33) ' элементы обратной матрицы Av' вычисляют по формулам , = ( 2l-'BDN-2 - чу А:,1 = B.1.34) 131
Dk= V572)*+1 - A - VI B.1.35) Значения величины D* для различных к представлены в таблице 2.1. Таблица 2.1. к 0 1 2 3 Dk 1 2 3.75 7 * 4 5 6 7 At 13.0625 24.375 45.484375 84.875 к 8 9 10 Dk 158.37891 295.53907 551.48342 Можно показать, что величины Dk удовлетворяют соотношению А = 2A-i + 1/4A-2; Л) = 1; А = 2, * = 3,4,5,... B.1.36) Ниже представлен листинг программы SPL01W01, в которой реа- реализован алгоритм вычисления коэффициентов сплайна, определен- определенного с помощью моментов. В этой программе параду с моментами вычисляются также коэффициенты кубических полиномов для каж- каждого из отрезков определения сплайна. Три подпрограммы построе- построения графиков позволяют в различной форме представлять результаты аппроксимации. На печать выдаются начальные данные, коэффициенты интерполяционного сплайна, а также значения сплайна и его двух производных с постоянным шагом. После листин- листинга программы помещены результаты сплайн-аппроксимации зависи- зависимости от времени t (сек) частоты / (Гц) тока в системе электроснабжения самолета Як-42. 10 REM "SPL01W01" 20 REM******************************************************************* 30 REM ПРОГРАММА АППРОКСИМАЦИИ ФУНКЦИИ ОДНОЙ 35 REM ПЕРЕМЕНН0ЙЗАДАНН0Й ЗНАЧЕНИЯМИ 40 REM Y(J) В ТОЧКАХ X(J),J-1,...,N, С ПОМОЩЬЮ КУБИЧЕСКОГО 45 REM ИНТЕРПОЛЯЦИОННОГО СПЛАЙНА Y-S(X),A<-X<-B; 50 REM СПЛАЙН ОПРЕДЕЛЕН ЧЕРЕЗ МОМЕНТЫ A(J)-S"(X(J)) 60 REM******************************************************************* 65 REMDEFDBLA,B,C,F,Z,P 70 DIMXA00),YA00),AA00KA00),CA00),FA00),ZA00),P<100) 80 DIMA0A00),AlA00),A2A00),A3A00),XRD80),YRD80),YMA00) 85 DIMYRlD80),YR2D80) 9<T GOSUB 8000 100 GOSUB 1000 110 GOSUB 2500 520 PRINT "НОМЕР ТОЧКИ ЗНАЧ.АРГУМ. ЗНАЧЕН.Ф-ИИ ЗНАЧ.МОДЕЛИ КОЭФСПЛАЙНА" 525 PRINT" ' 530 FOR I-l TO N 540 PRINT I,X(I),Y(I),YM(I),A(I) 550 NEXT I 132
560 PRINT" 565 COSUB 3000 570 IF INDPR-0 GOTO 640 575 PRINT'HOMEP ТОЧКИ ЗНАЧ.АРГУМ. ЗНАЧ.МОДЕЛИ ЗН.1-ЙПР. ЗН.2-Й ПРОИЗВ." 580 PRINT" 590 FOR 1-1 TO NR 600 PRINTI,XR(I),YR(I),YR1(I),YR2(I) 610 NEXT I 620 PRINT" 630 IF INDPR>0 GOTO 700 640 PRINT "НОМЕР ТОЧКИ ЗНАЧ.АРГУМ. ЗНАЧ.МОДЕЛИ" 650 PRINT" " 660 FOR 1-1 TO NR 670 PRINTI,XR<I),YR(I) 680 NEXT I 690 PRINT" " 700 INPUT "ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. АРГУМЕНТА XMIN,XMAX";XMIN,XMAX 710 INPUT "ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. ФУНКЦИИ YMIN,YMAX";YMIN,YMAX 790 REM GOSUB 9000 800 MARKER-2.GOSUB 9500 810 REM MARKER-2:GOSUB 10000 850 END 1000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ КОЭФФИЦИЕНТОВ КУБИЧЕСКОГО СПЛАЙНА Y-S(X), 1010 REM ОПРЕДЕЛЕННОГО С ПОМОЩЬЮ МОМЕНТОВ ,,, 1020 Nl-N-l:N2-N-2:N3-N-3 1030 FOR 1-2 ТО N1 1040 ВШ-2 1050 A(I)-(X(I)-X(M))/(X(I+1)-X(I-1)) 1060 Cd)-l-A(I) 1070 F(I)-(Y(I+1)-Y(I))/(X(I+1)-X(I» 1080 F(I)-F(I)*6/(X<I+1)-X(I-1» 1090 NEXT I 1100 ON INDUK GOTO 1110,1180,1250 1110 C(l)-.5 1120 A(N)-.5 1130 B(l)-2 1140 B(N)-2 1150 FA)-6*«Y<2)-YA))/(X<2)-XU»Y1)/<XB)X<1)) 1160 F(N)-6*(YN-(Y(N)-Y(N1))/(X(N)-X(N1)))/(X(N)-X(N1)) 1170 GOTO 1350 1180 C(l)-0 1190 A(N)-0 1200 B(l)-2 1210 B(NH2 1220 FA)-2*Y11 1230 F(N)-2*YNN 1240 GOTO 1350 1260 A(N)-1 1270 ВО)—1 1280 B(N)—1 1290 F(i)-(O <ХD)-Х<2)) 133
1300 1310 FA)-6*FA) 1320 F(N)-((Y(N)-Y(N1))/(X(N)-X(N1))-(Y(N1)-Y(N2))/(X(N1)-X(N2))> /(X(N)-X(N3))/(X(N)-X(N2)) 1330 F(N)-F(N)-((Y(N1)-Y(N2))/(X(N1)-X(N2»-(Y(N2)-Y(N3))/(X(N2)- X(N3)))/(X(N1)-X(N3))/(X(N)-X(N3)) 1340 F(N)-6*F(N) 1350 Pd)-B(l) 1360 Zd)-F(l) 1370 FOR 1-2TON 1380 P(I)-B(I)-C(I-1)/P(I-1)*A(I) 1390 Z(I)-F(I)-Z(I-1)/P(I-1)*A(I) 1400 NEXT I 1410 A(N)-Z(N)/P(N) 1420 FOR I-Nl TO 1 STEP -1 1430 A(I)-(Z(I)-C(I)*A(I+1))/P(I) 1440 NEXT I 1450 FOR 1-2TON 1460 Hl-X(I)-Xd-l) 1470 A0(I)-(A(I)-A(I-l))/F*HI) 1480 Al(I)-A(I-l)/2 1490 A2(I)-(Y<I)-Y(I-l))/HM2*A<I-l)+A<I))*HI/6 1500 A3(I)-Y(M) 1510 NEXT I 1520 RETURN 2000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ СПЛАЙНА 2010 Jl-UN-N 2020 IF JN<-J1+1 GOTO 2080 2030 J-INT((Jl+JN)/2) 2040 IF XU-X(J) GOTO 2090 2050 IF XU>X(J) GOTO 2070 2060 JN-J:GOTO 2020 2070 J1-J:GOTO 2020 2080 J-JN 2090 HJ-XU)-X(J-l) 2100 T-(XU-XU-l)) 2110 YU-T*(T*(A0(J)*T+Al (J))+A2(J))+A3(J) 2140 IF INDPR-0 GOTO 2160 2150 GOSUB2200 2160 RETURN 2200 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ 1-Й И 2-Й ПРОИЗВОДНОЙ СПЛАЙНА, 2210 IF INDPR>1 GOTO 2240 2215 INDPR-1 2220 PY1-(T*C*AO(J)*T+2*A1 (J)))+A2(J) 2230 GOTO 2270 2240 INDPR-2 2250 PY1-(T*C*AO(J)*T+2*A1 (J)))+A2(J) 2260 PY2-6*AO(J)*T+2*A1(J) 2270 RETURN 2500 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ СПЛАЙНА В УЗЛАХ СЕТКИ 2510 FORI-l TON 2520 XU-X(I) 2530 GOSUB 2000 2540 YM(I)-YU 2550 NEXT I 134
25@ RETURN rtflO REto ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ *^ ИНТЕРПОЛЯЦИОННОГО СПЛАЙНА, *М0 REM И ЕГО ДВУХ ПРОИЗВОДНЫХ НА РАВНОМЕРНОЙ СЕТКЕ 3030 HR-(X(N)-XA))/(NR-1) ал40 FOR I-l TO NR 3050 XR(D-XA)+(I-1)*HR 3055 NEXT I 3060 FOR I-l TO NR 3065 XU-XR(I) 3070 GOSUB 2000 3080 YR(I)-YU 3090 IF INDPR-0 GOTO 3120 3100 YR1 (D-PY1 ЗП0 YR2(I)-PY2 3120 NEXT I 3130 RETURN 8000 REM ПОДПРОГРАММА ВВОДА ТЕСТОВЫХ ДАННЫХ 8005 INDUK-1 :INDPR-2 8010 N-23 8020 NR-44 8030 FOR I-l TO N 8040 READ X(I),Yd) 8050 NEXT I 8060 Y1-(YB)-YA))/(XB)-X(D) 8070 YN-(Y(N)-Y(N-1))/(X(N)-X(N-D) 8080 DATA 0,426 8090 DATA 0.5,425 8100 DATA 1,424 8110 DATA 1.5,422.6 8120 DATA 2,414.3 8130 DATA 2.5,403.2 8140 DATA 3,407.8 8150 DATA 3.5,411 8160 DATA 4,408.7 8170 DATA 4.5,409.6 8180 DATA 5,415 8190 DATA 5.5,412.4 8200 DATA 6,411 8210 DATA 6.5,411.5 8220 DATA 7,409.6 8230 DATA 7.5,406.4 8240 DATA 8,393 8250 DATA 8.5,397 8260 DATA 9,419 8270 DATA 9.5,430 8280 DATA 10,421.7 «290 DATA 10.5,415 f300 DATA 11,414 £310 RETURN ЭД0 REM "GR9000": ПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА ФУНКЦИИ PRINT" ":PRINT" ГРАФИК КУБИЧЕСКОГО СПЛАЙНА":PRINT " " 20 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X:NXD-";NXD *|30 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y.NYD-";NYD 2«0 NY-NYD+1 CLS:SCREEN2:DY-(YMAX-YMIN)/NYD:FORI-1 TONY:Y-20+160/NYD*(M) UNEG4,Y)-E74,Y):NEXTI:NX-NXD+1 135
9080 FORI-1 TONX:X-84+480/NXD*U-l):LINE (X,12)-(X,188):NEXTI 9090 R-23 9100 FORK-OTONYD 9110 LOCATE R 1 9120 SY-YMIN+DY*K:PRINT USING И#.###И;8У 9130 R4*-20/NYD 9135 NEXT К 9140 O7:DX-(XMAX-XMIN)/NXD 9150 FOR K-0 TO NXD:KEY OFF:LOCATE 24,C 9160 SX-XMIN+DX*K 9170 PRINT USING "####.##";8Х; 9180 C-C+60/(NXD+0) 9185 NEXT К 9310 XA-E64-84) / (XMAX-XMIN):YAH 180-20) / (YMAX-YMIN) 9320 FOR IX-84 TO 564:XU-XMIN+(IX-84)/480* (XMAX-XMIN) 9330 GOSUB 2000 9340 IY-180-(YU-YMIN)*YA 9350 IF IY<20 OR IY>180 THEN 9370 9360 IF IX-84 THEN PSET (IX.IY) 9365 LINE-(IX,IY) 9370 NEXT IX 9380 FOR 1-1 TO N 9390 YG-180-(Y(I)-YMIN)*YA 9400 IFYG<20ORYG>180GOTO9440 9410 XG-480*(X (I) -XMIN) / (XMAX-XMIN)+84 9420 PSET (XG.YG) 9430 DRAW "E2G4E2H2F4H2E2D4L4U4R4G2" 9440 NEXT I 9450 RETURN 9500 REM "GRAF9500" 9510 XS-(XMIN+XMAX)/2 9520 YS-(YMIN+YMAX)/2 9540 SCREEN 2:CLS:KEY OFF 9550 VX-XMAX-XMIN:DX-400/VX:VY-YMAX-YMIN:DY-120/VY 9560 FOR IX-40 TO 440 9570 XU-XMIN+(IX-40)/400*VX 9580 GOSUB 2000 9590 IY-125-(YU-YMIN)*DY 9595 IFIY<5ORIY>125GOTO9620 9600 IF IX-40 THEN PSET (IX,IY):GOTO 9620 9610 LINE-(IX,IY) 9620 NEXT IX 9630 FOR IE-1 TO N 9640 YE-125-(Y(IE)-YMIN)*DY 9650 IFYE<5ORYE>125GOTO9740 9660 XE-400*(X(IE)-XMIN)/VX+40 %70 PSET (XE,YE) 9680 ON MARKER GOTO 9690,9700,9710,9720,9730 9690 DRAW "U2D4U2L4R8L4":GOTO 9740 9700 DRAW "Е2МР4Ь4ЕЗИ:ООТО 9740 9710 DRAW "E2D4H4D4E2L4R8L4":GOTO 9740 9720 DRAW "E2G4E2H2F4H2L4R8L4":GOTO 9740 9730 DRAW "U2G3R6H3D2" 9740 NEXT IE 9750 LINE D0,5)-D40,5) 9760 LINE D0,125)-D40,125) 9770 LINE D0,5)-D0,125) 9780 LINE D40,5)-D40,125) 136
9790 FORY-5TO 125 STEP 12 9800 LINE D0,Y)-D3,Y) 9810 UNE <44O,Y)-D37,Y) 9820 NEXTY 9830 LOCATE 1,2:PRINT YMAX 9840 LOCATE 9.2:PRINT YS 9850 LOCATE 16,2:PRINTYMIN 9860 FOR X-79 TO 440 STEP 40 9870 LINE (X,125)-(X,122) 9880 UNE(X+1,125)-(X+1,U2) 9890 UNE<X,5)-<X,8) 9900 UNE(X+1,5)-(X+1,8) 9910 NEXTX 9920 LOCATE 17,4:PRINTXMIN 9930 LOCATE 17,29:PRINTXS 9940 LOCATE 17,54:PRINTXMAX 9950 A$-INPUT$A) 9960 END 10000 REM "GR-IOOOO" ПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА ФУНЮДИИ 10010 PRINT" ":PRINT" ГРАФИЧЕСКОЕ ИЗОБРАЖЕНИЕ РЕЗУЛЬТАТОВ 10020 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X:NXD-";NXD 10030 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y:NYD-";NYD 10040 NY-NYD+1 10050 CLS:SCREEN2:DY-(YMAX-YMIN)/NYD:FORI-1 ТО NY:Y-2OH60/NYD*(I-l) 10060 UNEG6,Y)-(90,Y):NEXTI:NX-NXD+l 10070 FORI-l tONX:X-84+480/NXD*(I-l):UNE (X,176)-(X,l84).NEXTI 10080 UNE <84,12)-<84,188):LINE (84,180)-E68,180) 10090 R-23 10100 FORK-OTONYD 10110 LOCATE R,3 10120 SY«YMIN+DY*K:PRINT USING И#.##";8У 10130 R-R-20/NYD 10140 NEXT К 10150 C-7:DX-(XMAX-XMIN)/NXD 10160 FOR K-0 TO NXD:KEY OFF:LOCATE 24.C 10170 SX-XMIN+DX*K 10180 PRINT USING "####.##И;8Х; 10190 C-C+60/CNXIH0) 10200 NEXT К 10210 VX-XMAX-XMIN:VY-YMAX-YMIN:XA-480/VX:YA-160/VY 10230 FOR IX-84 TO 564:XU-XMIN+(IX-84) /480*VX 10240 GOSUB 2000 10250 IY-180-(YU-YMIN)*YA 10260 IF IY<20 OR IY> 180 THEN 10290 10270 IF IX-84 THEN PSET (IX.IY) 10280 UNE-(IX,IY) 10290 NEXT IX 10300 FOR IE-1 TO N 10310 YE-180-(Y(IE)-YMIN)*YA 10320 IF YE<20 OR TE>11^0 GOTO 10410 Ю330 XE-480*(X(IE)-XMIN)/VX+84 10340 PSET (XE,YE) Ю350 ON MARKER GOTO 10360,10370,10380,10390,10400 Ю360 DRAW "U2D4U2L4R8L4":GOTO 10410 10370 DRAW "E2L4F4L4E3":GOTO 10410 Ю380 DRAW "E2D4H4D4E2L4R8L4":GOTO 10410 137
10390 DRAW "E2G4E2H2F4H2L4R8L4":GOTO 10410 10400 DRAWU2G3R6H3D2" 10410 NEXT IE 10420 RETURN RUN НОМЕР ТОЧКИ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 НОМЕР ТОЧКИ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ЗНАЧЕНИЕ АРГУМЕНТА 0 .5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8 8.5 9 9.5 10 10.5 11 ЗНАЧЕНИЕ АРГУМЕНТА 0 .25 .5 .75 1 1.25 1.5 1.75 2 2.25 2.5 2.75 3 3.25 3.5 3.75 4 4.25 4.5 4.75 5 5.25 ЗНАЧЕНИЕ ФУНКЦИИ 426 425 424 422.6 414.3 403.2 407.8 411 408.7 409.6 415 412.4 411 411.5 409.6 406.4 393 397 419 430 421.7 415 414 ЗНАЧЕНИЕ МОДЕЛИ 426 425.5205 425 424.4249 424 423.73 422.6 419.5426 414.3 407.5872 403.2 404.2212 407.8 410.3157 411 410.0535 408.7 408.2828 409.6 412.678 415 414.3677 ЗНАЧЕНИЕ МОДЕЛИ 426 425 424 422.6 414.3 403.2 407.8 411 408.7 409.6 415 412.4 411 411.5 409.6 406.4 393 397 419 430 421.7 415 414 ЗНАЧЕНИЕ 1-ОЙ ПР. -1.92715 -1.954469 -2.254976 -2.17302 -1.052947 -1.953445 -7.933199 -16.56317 -25.41433 -25.24398 -6.809454 12.08926 13.65213 6.436792 -.9991502 -5.58633 -4.255386 1.358646 9.620728 12.9017 3.572395 -6.915521 КОЭФ. СПЛАЙНА .4371014 -1.748406 6.556521 -34.07753 -35.84699 110.2665 -28.42016 -30.18497 17.16003 38.34443 -62.53777 19.80665 12.11146 -22.65265 20.89929 -92.14496 102.881 98.22084 -63.76434 -107.1635 29.21861 28.68845 -7.172112 ЗНАЧЕНИЕ 2-ОЙ ПР. .4371014 -.6556521 -1.748406 2.404058 6.556521 -13.7605 -34.07753 -34.96226 -35.84699 37.20975 110.2665 40.92317 -28.42016 -29.30257 -30.18497 -6.51247 17.16003 27.75223 38.34443 -12.09667 -62.53777 -21.36556 138
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 5.5 5.75 6 6.25 6.5 6.75 7 7.25 7.5 7.75 8 8.25 8.5 8.75 9 9.25 9.5 9.75 10 10.25 10.5 10.75 412.4 411.2013 411 411.4147 411.5 410.5774 409.6 409.1132 406.4 399.5322 393 3*1.8578 397 407.4616 419 427.1708 430 427.0679 421.7 417.4452 415 414.1638 -7.110384 -2.639671 .8691435 1.724253 -1.766153 -4.70732 -2.204494 -4.044936 -20.01591 -30.86303 -17.33191 8.097086 32.94356 47.37469 41.55768 22.90415 -1.174282 -19.44127 -20.6605 -13.38898 -6.183733 -1.252905 19.80665 15.95906 12.11146 -5.270594 -22.65265 -.8766804 20.89929 -35.62283 -92.14496 5.368012 102.881 100.5509 98.22084 17.22825 -63.76435 -85.46392 -107.1635 -38.97244 29.21861 28.95353 28.68845 10.75817 ВВЕДИТЕ МИН. И МАКС. ЗНАЧЕН. АРГУМЕНТА XMIN.XMAX? 0,11 ВВЕДИТЕ МИН. И МАКС. ЗНАЧЕН. ФУНКЦИИ YMIN,YMAX? 380,440 1. Аппроксимация с помощью кубического сплайна зависимости / "яоп* тока / (Гц) от времени t в СЭС самолета ЯК-42 11 <p(t) час- 139
Значения зависимости / = <p(t) частоты тока в системе электро- электроснабжения (СЭС) от времени, а также аппроксимирующий ее сплайн, представлены на рис. 2.1. Значения моментов времени, а также соответствующие им зна- значения частоты заданы в подпрограмме ввода начальных данных, оп- определенной операторами 8000—8310. При отладке программы SPL01W01 в качестве одной из тестовых рассматривалась функция у = О.Зх + 0.7sin5x - 0.5cos8x . B.1.37) График этой функции, полученный с помощью подпрограммы FTEST1, показан на рис.2.2. Символом обозначены N-11 ее зна- значений с шагом Ах = 0.3. з е -з 1 1 ■ ■ 1 1 1 \ \ 1 1 J 1 1 r 1 1 i i -^ i i \ \ i i / j i i Л • I 8 1.5 3 Рис.2.2. График зависимости B.1.37), полученный с помощью программы FTESTi Графики произвольной функции, определенной подпрограммой с операторами 3000—3020, можно получить с помощью следующей программы 2000 REM "FTESTI" 2005 DIMXD0),Y<40) 2010 N-ll:X(l)-O:X(N)-3 2015 XMIN-XA):XMAX~X(N) 2020 YMIN--3:YMAX-3 2025 H-(X(N)-XA))/(N-1) 2030 FOR 1-1 TO N 140
2640 2050 XU~X(I):GOSUB3000:Y(I)-YU 2055 PRINT X(I) .Yd) 2060 NEXT I 2110 REMGOSUB9000 2120 MARKER-2:GOSUB 9500 2130 REM MARKER-3.GOSUB 10000 2140 END 3000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ ТЕСТОВОЙ ФУНКЦИИ ДЛЯ СПЛАЙНОВ ЗОЮ YU-.3*XU+.7*SINE*XU)-.5*COS(8*XU) 3020 RETURN 9000 REM "GR9000": ПОДПРОГРАММА, ПОСТРОЕНИЯ ГРАФИКА ФУНКЦИИ 9010 PRINT " ".PRINT" ГРАФИК АППРОКСИМИРУЕМОЙ ФУНКЦИИ'^ЮТ и ' 9020 INPUT "ВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X:NXD-NXD 9030 INPUT "ВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y:NYD-NYD 9050 NY-NYD+1 9060 CLS'.SCREEN 2:DY-(YMXX-YMIN)/NYD:FOR 1-1 TO NY:Y-2OH60/NYD*(I-l) 9070 LINEG4,Y)-<574,Y):NEXT I:NX-NXD+1 908P FOR W TONX:X-84+480/NXD*(I-l):LINE (X,12)-(X,188):NEXTI 9090 R-23 9100 FORK-OTONYD 9110 LOCATE R 1 9120 SY-YMIN+DY»K:PRINT USING "#.###M;SY 9130 R-R-20/NYD 9135 NEXT К 9140 C-7:DX-(XMAX-XMIN)/NXD 9150 FOR K-0 TO NXD:KEY OFF:LOCATE 24,C 9160 SX-XMIN+DX#K 9170 PRINT USING *####.##";SX; 9180 C4:+60/(NXI>+0) 9185 NEXT К 9310 XA-<564-84) /(XMAX-XMIN) :YA-A80-20) / (YMAX-YMIN) 9320 FOR IX-84 TO 564:XU-XMIN+(IX-84) /480* (XMAX-XMIN) 9330 GOSUB3000 9340 IY-180-(YU-YMIN)*YA 9350 IF IY<20 OR IY>180 THEN 9370 9360 IF IX-84 THEN PSET (IX.IY) 9365 LINE-(IXJY) 9370 NEXT IX 9380 FOR 1-1 TO N 9390 YG-180-(Y(I)-YMIN)*YA 9400 IF YG<20 OR YG>180 GOTO 9440 9410 XG-480» (X (I) -XMIN) / (XMAX-XMIN)+84 9420 PSET (XG,YG) 9430 DRAW "E2G4E2H2F4H2E2D4L4U4R4G2" 9440 NEXT I 9450 RETURN 9500 REM *GRAF95(Xr 9510 XS-(XMIN+XMAX)/2 9520 YS-(YMIN+YMAX)/2 9540 SCREEN 2:CLS:KEY OFF 9550 VX-XMAX-XMIN:DX-300/VX:VY-YMAX-YMIN:DY-120/VY 9560 FOR IX-40 TO 440 9570 XU-XMIN+(IX-40)/400*VX 141
9580 GOSUB 3000 9590 IY-125-(YU-YMIN)»DY 9595 IFIY<5ORIY>125GOTO9620 9600 IF IX-40 THEN PSET (IX,IY) :GOTO 9620 9610 LINE-(IX,IY) 9620 NEXT IX 9630 FOR IE-1 TO N 9640 YE-125-(Y(IE)-YMIN)*DY 9650 IF YE<5 OR YE>125 GOTO 9740 9660 XE-400*(X(IE)-XMIN)/VX+40 9670 PSET (XE,YE) 9680 ON MARKER GOTO 9690,9700,9710,9720,9730 9690 DRAW "U2D4U2L4R8L4":GOTO 9740 9700 DRAW "E2L4F4L4E3":GOTO 9740 9710 DRAW 4E2D4H4D4E2L4R8L4":GOTO 9740 9720 DRAW *E2G4E2H2F4H2L4R8L4f\GOTO 9740 9730 DRAW "U2G3R6H3D2" 9740 NEXT IE 9750 LINE D0,5)-D40,5) 9760 LINE D0,125)-D40,125) 9770 LINE D0,5)-D0,125) 9780 LINE D40,5)-D40,125) 9790 FOR Y-5 TO 125 STEP 12 9800 LINE D0,Y)-D3,Y) 9810 LINE D40,Y)-D37,Y) 9820 NEXTY 9830 LOCATE 1,2:PRINT YMAX 9840 LOCATE 9.2:PRINTYS 9850 LOCATE 16,2:PRINT YMIN 9860 FOR X-79 TO 440 STEP 40 9870 LINE (X, 125)-(X, 122) 9880 LINE (X+1,125)-(X+1,122) 9890 LINE (X,5)-(X,8) 9900 LINE(X+1,5)-(X+1,8) 9910 NEXTX 9920 LOCATE 17,4:PRINTXMIN 9930 LOCATE 17,29:PRINTXS 9940 LOCATE 17,54:PRINTXMAX 9950 A$-INPUT$A) 9960 END 10000 REM "GR10000" ПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА ФУНКЦИИ 10010 PRINT " SPRINT и ГРАФИЧЕСКОЕ ИЗОБРАЖЕНИЕ РЕЗУЛЬТАТОВ AnnPOKCHMAUHH*:PRINT " " 10020 INPUT "ВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X:NXD-NXD 10030 INPUT "ВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y.NYD-NYD 10040 NY-NYD+1 10050 CLS:SCREEN 2:DY-(YMAX-YMIN)/NYD:FOR I-l ТО NY:Y-20f 160/NYD* (I-1) 10060 LlNEG6,Y)-(90,Y):NEXT I:NX-NXIH1 10070 FOR I-l TONX:X-84+480/NXD*(M):LINE (X,176)-(X,184):NEXTI 10080 LINE (84,12)-(84,188):LINE (84,180)-E68,180) 10090 R-23 10100 FORK-OTONYD 10110 LOCATE R,3 10120 SY-YMIN+DY*K:PRINT USING "#.##";SY 10130 R-R-20/NYD 10140 NEXT К 42
10150 C-7:DX-(XMAX-XMIN)/NXD 10160 FORK--0TONXD:KEYOFF:LOCATE24,C 10170 SX-XMIN+DX*K 10180 PRINT USING "####.##";SX; 10190 C-C+60/(NXEH<» 10200 NEXT К 10210 VX-XMAX-XMIN:VY-YMAX-YMIN:XA-480/VX:YA-l 60/VY 10230 FOR IX-84 TO 564:XU-XMIN+(IX-84) /480*VX 10240 GOSUB 3000 10250 IY-180-(YU-YMIN)»YA 10260 IF IY<20 OR IY>180 THEN 10290 10270 IF IX-84 THEN PSET (IXJY) 10280 UNE -<IX,IY) 10290 NEXT IX 10300 FORIE-4TON 10310 YE-180-(Y(IE)-YMIN)*YA 10320 IF YE<20 OR YE>1180 GOTO 10410 10330 XE-480*(X(IE)-XMIN)/VX+84 10340 PSET (XE YE) 10350 ON MARKER GOTO 10360,10370,10380,10390,10400 10360 DRAW "U2D4U2L4R8L4':GOTO 10410 10370 DRAW "E2L4F4L4E3":GOTO 10410 10380 DRAW "E2D4H4D4E2L4R8L4":GOTO 10410 10390 DRAW "E2G4E2H2F4H2L4R8L4":GOTO 10410 10400 DRAW "U2G3R6H3D2" 10410 NEXT IE 10420 RETURN RUN 0 .3 .6 .9000001 1.3 1.5 1.8 2.1 2.4 2.7 3 -.5 1.156944 .2350344 -.7184466 .6567531 .6846731 :9583919 .2445515 -.1252111 1.834885 1.143112 На рис.2.3—2.6 показаны графики сплайнов, аппроксимирующих N значений функции B.1.37) с постоянным шагом на отрезке [0,3] при ^71121,31. Ниже представлен листинг подпрограммы, с помощью ко- в программе SPL01W01 определялись значения функции B.1.37). 8000 REM ПОДПРОГРАММА ВВОДА ТЕСТОВЫХ ДАННЫХ 8005 INDUK-1 .INDPR-2 8010 N-31 8020 NR-4*(N-1)+1 8025 H-3/(N-l) 8030 FOR 1-1 TO N 8040 X(I)-(I-1)»H:Y(I)-,3»X(I)+.7*SINE*X(I))-.5*COS(8»X(I)) 8050 NEXT I 8060 Y1-(YB)-YA))/(XB)-XA)) 8070 YN-(Y(N)-Y(N-1))/(X(N)-X(N-D) 8310 RETURN 143
3 8 -3 1 ■ ■ ■ У i ш I 1 N I I V i у 1 1 1 1 1 *^ 1 —1— —~+ I 1 I 8 1.5 3 Рис. 2.З. Аппроксимация функции B.1.37) на отрезке [03] с постоянным шаго H-3/N, N-1 3 8 -3 I ■ 1 1 \ 1 1 , у чу i —г— г 1 1 i i 1 t \ 1 1 J 1 1 / • 1 8 1.5 3 Рис. 2.4. Сплайн-аппроксимация функции <2.1.37) при^У-11 144
■f $ 3 I -3 Ряс. 2.5. Аппроксимация с помощью кубического сплайна N- 21-го значен ДО B.1.37) 3 I «3 В 1.5 6. Сплайн-аппроксимация функции B.1.37) при N- 31
2.2. ПОСТРОЕНИЕ СПЛАЙНОВ С "РАСТЯЖЕНИЕМ" ПРИ ОБРАБОТКЕ ЭКСПЕРИМЕНТАЛЬНЫХ ДАННЫХ При использовании кубических сплайнов для аппроксимации сильно вариабельных, сложных функциональных зависимостей, гра- графики сплайнов иногда могут содержать дополнительные точки пере- перегиба, которых нет в исходных данных. Наиболее часто такая ситуация наблюдается при аппроксимации кубическими сплайнами функций, близких к кусочно-линейным. Эффект появления допол- дополнительных точек перегиба не возникает при использовании с "растяжением" т или напряженных сплайнов, идея построения кото- рщх сформулирована в работе [3 ]. Для сплайна с "растяжением" <р(х), вместо условия линейности вторых производных на отрезках [*у-ь*/], требуется, чтобы была линейной функция [3] ^(д) = <р"(х) - а <р(х) , а > О , B.2.1) на [Xj-i, X/], где а > О — некоторый параметр. Если = Ум ; <p(xj) = yj; <p"(xj-x) = A)-1 ; <p"(xj) = Ay, то для линейной функции гр(х) имеем ,-i) = <p"(Xj-{) - a<p(xj-i) = Ay-i - ayM = zy-i , j) = <p"(xj) - a<p(Xj) = Kj - a» = zy. B.2.2) Так как функция xp{x) по условию является линейной, то для нее должно выполняться соотношение . B.2.3) Отсюда имеем г1>(х) = zM + Zj ~hZj~l (x - jcy-0 , jcG [jcy-i.jcy], B.2.4) где Ay = дсу - дсу-i, /«2,..., Учитывая B.2.1) и B.2.2), формулу B.2.4) можно переписать в виде <р"(х) - af{x) = (К, - ayj) Z^tL + (к._{ _ ayy_0 £LZJ£ , х G [дсу-i ,дсу], j = 2,..., // . B.2.5) В результате мы получили неоднородное дифференциальное уравнение второго порядка с постоянными коэффициентами. Известно, что общее решение неоднородного дифференциально^ го уравнения равно сумме общего решения однородного уравнения и 146
частного решения неоднородного [9 ]. Однородное дифференциаль- дифференциальное уравнение имеет вид (р"(х) - а<р(х) = 0 , х Е [jcy-i, xj]. B.2.6) Характеристическое уравнение А2 - а = 0 имеет корни Х\ = Va , д2 -. — Va. Тоща общее решение однородного уравнения можно предста- представить в виде ^ ^ , B.2.7) tr C19C2 — неизвестные постоянные. Константы С\ и Сг можно найти из условия <p"(xj-i) = Kh\ , ^>"(x/) = Ki • Продифференциро- Продифференцировав дважды выражение B.2.7), получим ( ) )i . B.2.8) Тогда общее решение однородного уравнения имеет вид ее ще х G Ау= [jcy-i, дсу ], / = 2,..., N ; sh(jc) = (ех - е" Частное решение неоднородного уравнения можно найти методом неопределенных коэффициентов. Для неоднородного уравнения с постоянными коэффициентами решение ищется в виде правой части. Правая часть уравнения B.2.5) является линейной функцией вида у = AjX + Bj. Подставив эту функцию в B.2.5), получим В;) = (Kj - аУ/) * *м + (*)_, - аум) ^Г^ • B.2.10) rlj rij Приравнивая коэффициенты при одинаковых степенях jc, получим B 2 11) ahj Тоща частное решение неоднородного уравнения имеет вид <Рчаст. неодн{х) = (уМ ~ Kj-{ /<х)(х} - х) I hj + # - Kj/a)(x - xjri)/hj, x G [*y-i,xy]. B.2.12) "растяжением" следует, что сплайн с "растяжением", представляющий общее решение неоднородного уравнения при *Е[яу-1, лу], 147
рл(*) = &± sh(V5"(*, - х)) I sh(Va hj) + § L, - v. _ х- B.2.13) Коэффициенты сплайна можно найти, потребовав, чтобы левосторон- левосторонние и правосторонние производные сплайна в узлах сетки были равны- равными между собой. Дифференцируя соотношение B.2.13), получим a(xj - х)) I sh(Vah,) а А)., = va - хм)) х G Ays[jcy.i,JCy], j = 2,..., JV. B.2Л4) Рассмотрим выражение B.2Л 4) для первой производной сплайна на соседних отрезках Ау, Ду+i и перейдем в них к пределу при x-*xj со- соответственно слева и справа. В результате получим (xt- 0) = lim <р'(х) =- V h(V A) sh(Va A) Va sh(Va Ay) X<Xj !к а - Ум ~ а hi x-*xj X>Xj sh(Va Л/+1) Va sh(Va A/+ r'+I , ; = 2,..., Л^-I . B.2 Л 5) Тогда из условий y>'(jc;-O) = ^>'(jcyf 0) получим систему линей- линейных алгебраических уравнений 1 ahj Va" 1 148
K, 1A 1 Ay+i 7+1 1 1 aA/+1 Va sh( Va Ay+i _ Ум - » _ » - Ум h h ; = 2,...,//-l . B.2.16) Эта система состоит из (N -2) -х уравнений и содержит # неиз- неизвестных. Дополнительные уравнения можно получить из условий f 4*0 = У'1 • ^ (*") = y'N> ^е УГ1>У» ~ значения производной на концах отрезка [a, b]. Рассматривая выражение B.2.14) на первом и последнем интервалах, а также переходя к пределу соответственно при jc-**i справа и при x~*xn слева, получим дополнительные урав- уравнения: ch(Vah2) ah 1 r-i 1 1 | аАг Va sh(Va A2) chCV^Aiv) 1 ' аЛлг - у 1 - hN • B.2.17) Положим 1 V aA2 sh(Vah2) I ' Ci = a,-/ С1 = 1 аАг V aA/ va sh(va Ay) / ' ch(Va"Ay) sh(VaA/) 1 + sh(vaA/+i) 1 Щ + \ = 2 / J 1 V аАлг Va sh(v^AAr) h _ / сЬ(У^Алг) lv ^ " V Va sh(V5"AAr) аАлг У # B.2.18) Система линейных алгебраических уравнений B.2.16)—B.2.17) et трехдиагональную матрицу. Решая эту систему с помощью Метода прогонки B.1.23) — B.1.26), получим коэффициенты ^^й с "растяжением". Численные эксперименты показали, 149
что при аппроксимации функции часто хорошие практические ре. зультаты дает сплайн, для которого а = 1. На рис. 2.7 показан график (полученный с помощью ниже приве- приведенной программы SPL02W01) зависимости/ = у@> рассмотренной в предыдущем параграфе. Результаты аппроксимации зависимости частоты тока в СЭС самолета Як-42 помещены после листинга про- программы. i 41В. 390 1 ■ I 1 1 ■ 1 1 1 \ \ V 1 1 Г 1 1 / J 1 1 1 1 1 1 N V 1 1 / / / / / / 1 1 \ ■ W ■ а ■ ■ 1 8 5.5 И Рис. 2.7. Аппроксимация с помощью сплайна с "растяжением" зависимости / частоты ток/ от времени f в СЭС самолета Як-42 (#-21, а = 1) 10 REM "SPL02W0r 20 REM******************************************************************** 30 REM ПРОГРАММА АППРОКСИМАЦИИ ФУНКЦИИ ОДНОЙ 35 REM ПЕРЕМЕННОЙ С ПОМОЩЬЮ 40 REM НАПРЯЖЕННОГО ИНТЕРПОЛЯЦИОННОГО СПЛАЙНА 45 REM Y-SN(X), ОПРЕДЕЛЕННОГО ЧЕРЕЗ 50 REM МОМЕНТЫ A(I)-SN"(X(J)),J-1,...,N 60 rem******************************************************************** 65 REMDEFDBLA,B,C,F,Z,P 70 DIMXA00),YA00),AA00),BA00),CA00),FA00),ZA00),PA00) 80 DIMXRD80),YRD80),YRlD80),YR2D80),YMA00) 90 DEFFNCH(U)-(EXP(U)+EXP(-U))/2 100 DEFFNSH(U)-(EXP(U)-EXP(-U))/2 130 GOSUB8000 140 GOSUB1000 150
150 GOSUB2500 520 PRINT'НОМЕР ТОЧКИ ЗНАЧ.АРГУМ. ЗНАЧЕН.Ф-ИИ ЗНАЧ.МОДЕЛИ КОЭФ.СПЛАЙНА" 525 PRINT" 530 FOR I-l TO N 540 PRINTI,X(I),Y(I),YM(I),A(I) 550 NEXT I 560 PRINT" 565 GOSUB 3000 570 PRINT'HOMEPТОЧКИ ЗНАЧ.АРГУМ. ЗНАЧ.МОДЕЛИ ЗН.1-ЙПР. ЗН.2-Й ПРОИЗВ." 580 PRINT" 590 FOR I-l TO NR w 600 1>RINTI,XR(I),YR(I),YR1(I),YR2(I) 610 NEXT I 620 PRINT"- r%- 630 INPUT "ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. АРГУМ. XMIN,XMAX";XMIN,XMAX 640 INPUT "ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. ФУНКЦ. YMIN,YMAX";YMIN,YMAX 790 REM GOSUB 9000 800 MARKER-2:GOSUB 9500 810 REM MARKER-2:GOSUB 10000 1000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ КОЭФФИЦИЕНТОВ НАПРЯЖЕННОГО СПЛАЙНА Y-SN(X) ; 1010 REM ОПРЕДЕЛЕННОГО С ПОМОЩЬЮ' МОМЕНТОВ A(J)-SN"(X(J)),J-1,...,N 1020 N1-N-1 1025 SQA-SQR(ALFA) 1030 FOR 1-2 ТО N1 1040 Hl-Xd)-X(I-l) 1050 HI1-X(I+1)-X(I) 1060 AHI-SQA*HI 1070 AHI1-SQA*HI1 1080 B(I)-(FNCH(AHI)/FNSH(AHI)+FNCH(AHI1)/FNSH(AHI1))/SQA -1/ALFA* A/HI+l/HID 1090 A(I)-1/(ALFA*HI)-1/(SQA*FNSH(SQA*HD) 1100 C(I)-1/(ALFA*H11)-1/(SQA*FNSH(SQA*HID) 1110 F(I)-(Y(I+1)-Y(I))/(X(I+1)-X(I))-(Y(I)-Y(I-1))/<X(I)-X(I-1)) 1120 NEXT I ИЗО Н2-ХB)-ХA) 1140 HN-X(N)-XCN-l) 1150 BA)--A/(ALFA*H2)+FNCH(SQA*H2)/FNSH(SQA*H2)) 1160 B(N)-1/(ALFA*HN)+FNCH(SQA*HN)/FNSH(SQA*HN) 1170 FA)-Y1-(YB)-YA))/H2 1180 F(N)*(Y(N)-Y(N1))/HN-YN 1190 CA)-1/(ALFA*H2)+1/(SQA*FNSH(SQA*H2)) 1200 A(N)--A/(ALFA*HN)+1/(SQA*FNSH(SQA*HN))) 1350 P(l)-B(l) 1360 Z(l)-F(l) 1370 FOR 1-2TON 1380 P(I)-B(I)-C(M)/P(I-1)*A(I) 1390 Z(I)-F(I)-Z(I-1)/P(M)*A(I) 1400 NEXT I 1410 A(N)-Z(N)/P(N) 1420 FOR I-Nl TO 1 STEP -1 1430 A(I)-(Z(I)-C(I)*A(I+1))/P(I) 1440 NEXT I 151
1520 RETURN 2000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ СПЛАЙНА 2010 SQA-SQR(ALFA) 2015 J1-1:JN-N 2020 IFJNK-J1+1 GOTO 2080 2030 J-INT((Jl+JN)/2) 2040 IF XU-X(J) GOTO 2090 2050 IF XU>X(J) GOTO 2070 2060 JN-J:GOTO 2020 2070 Jl-J:GOTO2020 2080 J-JN 2090 HJ-XU)-X(J-l) 2100 T-SQA*<XU-X(M)):T1-SQA*(X(J)-XU) 2105 SQAJ-FNSH(SQA*HJ) 2110 YU-(A(M)/ALFA)#FNSH(T1)/§QAJ+(A(J)/ALFA)*FNSH(T)/SQAJ+(Y J-1)-A(M)/ALFA)*(X(J)-XU)/IU+(Y(J)-A(J)/ALFA)*(XU-X(J-1))/HJ 2140 IF INDPR-0 GOTO 2160 2150 GOSUB2200 2160 RETURN 2200 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ДВУХ ПРОИЗВОДНЫХ НАПРЯЖЕННОГО СПЛА0НА 2210 IFINDPR>1 GOTO 2255 2220 INDPR-1 2230 PY1--AO-1) /SQA'FNCH (Tl) /SQAJ+AU) /SQA'FNCH (T) /SQAJ 2240 PY1-PY1+((Y(J)-A(J)/ALFA)-(Y(J-1)-A(M)/ALFA))/HJ 2250 GOTO 2280 2255 INDPR-2 2260 PY1--A(J-1)/SQA*FNCH(T1)/SQAJ+A(J)/SQA*FNCH(T)/SQAJ 2265 PY1-PY1+((Y(J)-A(J)/ALFA)-(Y(J-1>-A(J-1)/ALFA))/HJ 2270 PY2-(A(M)*FNSH(T1)+A(J)*FNSH(T))/SQAJ 2280 RETURN 2500 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ СПЛАЙНА В УЗЛАХ СЕТКИ 2510 FOR 1-1 TON 2520 XU-X(I) 2530 GOSUB 2000 2540 YM(I)-YU 2550 NEXT I 2560 RETURN 3000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ ИНТЕРПОЛЯЦИОННОГО СПЛАЙНА 3010 REM И ЕГО ДВУХ ПРОИЗВОДНЫХ НА РАВНОМЕРНОЙ СЕТКЕ 3020 NR1-NR+1 3030 HR-(X(N)-XA))/NR 3040 FORI-1TONR1 3050 XR(I)-XA)+(I-1)*HR 3055 NEXT I 3060 FORI-1TONR1 3065 XU»-XR(I) 3070 GOSUB 2000 3080 YR(I)-YU 3090 YRKD-PY1 3100 YR2CD-PY2 3110 NEXT I 3120 RETURN 8000 REM ПОДПРОГРАММА ВВОДА ТЕСТОВЫХ ДАННЫХ 8005 ALFA-l:INDPR-2 8010 N-23 152
8020 NR-44 8030 FOR 1-1 TO N 8040 READ X(I),Yd) 8050 NEXT I 8060 Y1-(YB) 8070 YN-(Y(N)-Y(N-1))/(X(N)-X(N-D) 8080 DATA 0,426 8090 DATA 0.5,425 8100 DATA 1,424 $110 DATA 1.5,422.6 8120 DATA 2,414.3 8130 DATA 2.5,403.2 8140 DATA 3,407.8 8150 DATA 3.5,411 8160 DATA 4,408.7 8170 DATA 4.5,409.6 8180 DATA 5,415 8190 DATA 5.5,412.4 8200 DATA 6,411 8210 DATA 6.5,411.5 8220 DATA 7,409.6 8230 DATA 7.5,406.4 8240 DATA 8,393 8250 DATA 8.5,397 8260 DATA 9,419 8270 DATA 9.5,430 8280 DATA 10,421.7 8290 DATA 10.5,415 8300 DATA 11,414 8310 RETURN 9000 REM "GR9000": ПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА ФУНКЦИИ 9010 PRINT и ":PRINT и ГРАФИК НАПРЯЖЕННОГО СПЛАЙНА" PRINT" " 9020 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X:NXD-";NXD 9030 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y:NYD-';NYD 9050 NY-NYD+1 9060 CLS.SCREEN 2:DY-(YMAX-YMIN)/NYD:FOR I-l ТО NY:Y-20+160/NYD*(I-1) 9070 LINEG4,Y)-E74,Y):NEXT I:NX-NXD+1 9080 FORI-1 TONX:X-84+480/NXD*(M):LINE (X,12)-(X,188):NEXTI 9090 R-23 9100 FORK-OTONYD 9110 LOCATE R,l 9120 SY-YMIN+DY*K:PRINT USING "#.###";SY 9130 R-R-20/NYD 9135 NEXT К 9140 C-7:DX-(XMAX-XMIN)/NXD 9150 FOR K-0 TO NXD.KEY OFF:LOCATE 24,C 9160 SX-XMIN+DX*K 9170 PRINT USING "####.##";SX; 9180 C-C+60/(NXDK» 9185 NEXT К 9310 XA-E64-84) /(XMAX-XMIN) :YA-( 180-20) / (YMAX-YMIN) 9320 FOR IX-84 TO 564:XU-XMIN+<IX-84)/480* (XMAX-XMIN) 9330 GOSUB 2000 9340 IY-180-(YU-YMIN)*YA 9350 IFIY<20ORIY>180THEN9370 9360 IF IX-84 THEN PSET (IX,IY) 153
9365 UNE-(IX,IY) 9370 NEXT IX 9380 FOR 1-1 TO N 9390 YG-180-(Y(I)-YMIN)*YA 9400 IF YG<20 OR YG>180 GOTO 9440 9410 XG-480* (X (I) -XMIN) / (XMAX-XMINH84 9420 PSET (XG,YG) 9430 DRAW ME2G4E2H2F4H2E2D4L4U4R4G2' 9440 NEXT I 9450 RETURN 9500 REM "GRAF9500" 9510 XS-(XMIN+XMAX)/2 9520 YS-(YMIN+YMAX)/2 9540 SCREEN 2:CLS:KEY OFF 9550 VX-XMAX-XMIN:DX-400/VX:VY-YMAX-YMIN:DY-120/VY 9560 FOR IX-40 TO 440 9570 XU-XMIN+(IX-40)/400*VX 9580 GOSUB2000 9590 IY-125-(YU-YMIN)*DY 9595 IF IY<5 OR IY>125 GOTO 9620 9600 IF IX-40 THEN PSET (IX,IY):GOTO 9620 9610 LJNE-(IX,IY) 9620 NEXT IX 9630 FOR IE-1 TO N 9640 YE-125-(Y(IE)-YMIN)*DY 9650 IF YE<5 OR YE>125 GOTO 9740 9660 XE-400*(X(IE)-XMIN)/VX+40 9670 PSET (XE,YE) 9680 ON MARKER GOTO 9690,9700,9710,9720,9730 9690 DRAW "U2D4U2L4R8L4":GOTO 9740 9700 DRAW "E2L4F4L4E3":GOTO 9740 9710 DRAW "E2D4H4D4E2L4R8L4":GOTO 9740 9720 DRAW "E2G4E2H2F4H2L4R8L4":GOTO 9740 9730 DRAW U2G3R6H3D2" 9740 NEXT IE 9750 LINE D0,5)-D40,5) 9760 LINE D0,125) -D40,125) 9770 LINE D0,5)-D0,125) 9780 LINE D40,5)-D40,125) 9790 FOR Y-5 TO 125 STEP 12 9800 LINE D0,Y)-D3,Y) 9810 LINE D40,Y)-D37,Y) 9820 NEXTY 9830 LOCATE 1,2:PRINT YMAX 9840 LOCATE 9.2:PRINTYS 9850 LOCATE 16,2:PRINT YMIN 9860 FOR X-79 TO 440 STEP 40 9870 LINE (X,125)-(X,122) 9880 LINE(X+1,125)-(X+1,122) 9890 LINE (X,5)-(X,8) 9900 LINE(X+1,5)-(X+1,8) 9910 NEXTX 9920 LOCATE 17,4:PRINT XMIN 9930 LOCATE 17,29:PRINTXS 9940 LOCATE 17,54:PRINTXMAX 9950 A$-INPUT$A) 9960 END 10000 REM "GR10000' :11ОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИ 154
ФУНКЦИИ 10010 PRINT и ":PRINT " ГРАФИЧЕСКОЕ ИЗОБРАЖЕНИЕ РЕЗУЛЬТАТОВ АППРОКСИМАЦИИ":РИШТ "и 10020 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X:NXD-";NXD 10030 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y:NYD-";NYD 10040 NY-WD+l 10050 CLS.SCREEN 2:DY-(YMAX-YMIN)/NYD:FOR 1-1 TO NY:Y-2Of 160/NYD*(I-l) 10060 LINEG6,Y)-(90,Y):NEXT I:NX-NXEH-1 10070 FORM TONX:X-84+480/NXD*(I-l):LINE (X,176)-(X,184):NEXTI 10080 LINE (84,12)-(84,188):LINE (84,180)-<568,18Q) 10090 R-23 10100 FORK-OTONYD 10110 LOCATE R,3 10120 SY-YMIN+DY*K:PRINT USING "#.##";SY 10130 R-R-20/NYD 10140 NEXT К 10150 C-7:DX-(XMAX-XMIN)/NXD 10160 FOR K-0 TO NXDrKEY OFF:LOCATE 24,C 10170 SX-XMIN+DX*K 10180 PRINT USING "####.##";SX; 10190 C-C+60/(NXD+O) 10200 NEXT К 10210 VX-XMAX-XMIN:VY-YMAX-YMIN:XA-480/VX:YA-160/VY 10230 FOR IX-84 TO 564:XU-XMIN+(IX-84)/480*VX 10240 GOSUB 2000 10250 IY-180-(YU-YMIN)*YA 10260 IF IY<20 OR IY>180 THEN 10290 10270 IF IX-84 THEN PSET (IX.IY) 10280 LINE -(IX.IY) 10290 NEXT IX 10300 FOR IE-1 TO N 10310 YE-180-(Y(IE)-YMIN)*YA 10320 IF YE<20 OR TE>1180 GOTO 10410 10330 XE-480*(X(IE)-XMIN)/VX+84 10340 PSET (XE.YE) 10350 ON MARKER GOTO 10360,10370,10380,10390,10400 10360 DRAW "U2D4U2L4R8L4":GOTO 10410 10370 DRAW tfE2L4F4L4E3":GOTO 10410 10380 DRAW "E2D4H4D4E2L4R8L4":GOTO 10410 10390 DRAW "E2G4E2H2F4H2L4R8L4":GOTO 10410 10400 DRAW "U2G3R6H3D2" 10410 NEXT IE 10420 RETURN RUN НОМЕР ТОЧКИ ЗНАЧЕНИЕ АРГУМЕНТА ЗНАЧЕНИЕ ФУНКЦИИ ЗНАЧЕНИЕ МОДЕЛИ КОЭФ. СПЛАЙНА 1 2 3 4 5 6 7 8 0 .5 1 1.5 2 2.5 3 3.5 426 425 424 422.6 414.3 403.2 407.8 411 426 425 424 422.6 414.3 403.2 407.8 411 -1.219431 -1.295639 6.466738 -34.77515 -36.07246 111.7033 -28.5035 -30.84664 155
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 НОМЕР ТОЧКИ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 4 4.5 5 5.5 6 6.5 7 7.5 8 8.5 9 9.5 10 10.5 11 ЗНАЧЕНИЕ АРГУМЕНТА 0 .25 .5 .75 1 1.25 1.5 1.75 2 2.25 2.5 2.75 3 3.25 3.5 3.75 4 4.25 4.5 4.75 5 5.25 5.5 5.75 6 6.25 6.5 6.75 7 7.25 7.5 7.75 8 8.25 8.5 8.75 9 9.25 9.5 408.7 409.6 415 412.4 411 411.5 409.6 406.4 393 397 419 430 421.7 415 414 ЗНАЧЕНИЕ МОДЕЛИ 426 425.5383 425 424.4213 424 423.7311 422.6 419.5289 414.3 407.5983 403.2 404.233 407.8 410.338 411 410.0522 408.7 408.2926 409.6 412.6737 415 414.3604 412.4 411.2096 411 411.4096 411.5 410.582 409.6 409.1029 406.4 399.5276 393 391.8871 397 407.4634 419 427.1532 430 408.7 409.6 415 412.4 411 411.5 409.6 406.4 393 397 419 430 421.7 415 414 ЗНАЧЕНИЕ 1-ОЙ ПР. -1.69518 -1.998435 -2.311167 -2.160511 -1.044624 -1.947014 -7.977921 -16.57323 -25.32984 -25.25629 -6.806397 12.09979 13.5708 6.448437 -.9652214 -5.601303 -4.216629 1.362289 9.572685 12.9097 3.562134 -6.920365 -7.059372 -2.642647 .8281422 1.725571 -1.739479 -4.698975 -2.253159 -4.0466 -19.99011 -30.88541 -17.21698 8.091766 32.84873 47.40723 41.47974 22.92497 -1.19149 17.57078 38.73125 -63.27256 19.90534 12.29903 -22.78254 20.68513 -93.1048 104.4275 99.99024 -64.75006 -109.4758 31.37662 21.92376 20.63423 ЗНАЧЕНИЕ 2-ОЙ ПР. -1.219431 -1.219235 -1.295639 2.506803 6.466738 -13.72312 -34.77515 -34.34493 -36.07246 36.6637 111.7033 40.33292 -28.5035 -28.77128 -30.84664 -6.43576 17.57078 27.29364 38.73125 -11.89694 -63.27256 -21.0232 19.90534 15.61178 12.29903 -5.082108 -22.78254 -1.016766 20.68513 -35.10702 -93.1048 5.488913 104.4275 99.09595 99.99024 17.08345 -64.75006 -84.45979 -109.4758 156
40 9-75 41 10 42 Ю.25 43 Ю.5 44 Ю.75 427.0393 421.7 417.5383 415 413.8519 -19.51309 -20.31934 -13.20453 -7.265148 -1.97329 -37.86028 31.37662 25.83853 21.92376 20.63092 ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. АРГУМ. ХМШДМАХ? 0,11 ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. ФУНКЦ. YMIN,YMAX? 380,410 Точность аппроксимации функции с помощью сплайна с "растя- "растяжением" существенно зависит от выбора параметра а . Можно предложить различные алгоритмы выбора параметра а. Один из них заключается в следующем. Предположим, что наряду с узлами х\,..., xn, в которых заданы значения функции, рассматрива- рассматриваются также промежуточные точки **,..., х*м> принадлежащие отрезку [а, Ь]. Пусть у!,..., ум — значения функции в этих точках. Тогда на- наилучшее значение параметра а можно найти из условия минимума функции N *(<*) = 2 C»-**(*?;«)) . B.2.21) /-1 х ' у; а) — значения сплайна в точках xj, ;'■ 1, ..., Л/. При ре- решении практических задач поиск минимума функции B.2.21) наи- наиболее целесообразно осуществлять с помощью одного из алгоритмов одномерной минимизации, рассмотренных в третьей главе. Если аппроксимируемая функция у = f(x) в окрестности некото- некоторой точки хо имеет большие значения производной/(дс) , то в окрест- окрестности этой точки кубический сплайн может иметь колебательный характер. Для сплайна с "растяжением" путем выбора больших зна- значений параметра а можно добиться исчезновения таких флуктуа- флуктуации. В качестве примера рассмотрим функцию у = (деI/16 на отрезке 11, которая в окрестности нуля имеет большие значения произ- ■ОДной. График функции у = (деIлб, полученный с помощью про- Ч^ FTEST2, представлен на рис.2.8. Ниже приводится листинг программы для функции у = (х) Л6, заданной подпрограммой **еющей номера операторов 3000—3020. 2000 REM "FTEST2" 2005 DIMXDO),YDO) 2010 N-11:XA)-O:X(NH1 ?015 XMIN-XA):XMAX-X(N) 2020 YMIN-0:YMAX-1.5 «025 H-(X(N)-XA))/(N1) 2030 FOR 1-1 TO N 2040 X( 157
2050 XU-X(I):GOSUB3000:Y(I)-YU 2055 PRINTX(I),Yd) 2060 NEXT I 2110 REMGOSUB9000 2120 MARKER-2:GOSUB 9500 2130 REM MARKER-3:GOSUB 10000 2140 END 3000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ ТЕСТОВОЙ ФУНКЦИИ ДЛЯ СПЛАЙНОВ ЗОЮ YU-XU^A/16) 3020 RETURN Путем изменения выражения функции, заданного оператором ЗОЮ, можно получить график произвольной, аналитически заданной функции (при соответствующей корректировке оператора 2020, оп- определяющего пределы изменения функции). Рис. 2.8. График функции- у «■ (х) л 6, а также N - 11 ее значений, обозначенных символом с шагом Ах = 0.1 Для аппроксимации этой функции с помощью сплайна с "растя- "растяжением" в программу SPL02W01 необходимо ввести данные, опреде- определенные подпрограммой 8000 REM ПОДПРОГРАММА ВВОДА ТЕСТОВЫХ ДАННЫХ 8005 ALFA-1 :INDPR-2 8010 N-11 158
8015 NR-2*(N-1)+1 8020 H-1/(N-1) 8030 FOR 1-1 TO N 8040 X(I)-(I-1)*H 8050 NEXT I 8060 Y1-(YB)-YA))/(XB)-X(D) 8070 YN-(Y(N)-Y(N-1))/(X(N)-X(N-D) 8310 RETURN График значений функции и аппроксимирующего их сплайна, представлен на рис. 2.9. .5 1 .9. Аппроксимация с помощью сплайна с "растяжением" N - 11 значений фун- У - (jc) л 6 с шагом Я - ОЛ При а = 1 значения сплайна с "растяжением" практически не от- отличается от значений кубического сплайна, за исключением отрезка ЮЛ, 0.2], на котором кубический сплайн, построенный с помощью ЧЮграммы SPL01W01, имеет большие флуктуации. Для начальных данных, определенных подпрограммой J000 REM ПОДПРОГРАММА ВВОДА ТЕСТОВЫХ ДАННЫХ «005 ALFA-1000!:INDPR-2 ?010 N-11 NR-2*(N-1)+1 FOR 1-1 TO N NEXT I 159
8060 Yl-1000*(YB)-Y(l))/(X<2)-X(D) 8070 YN-(Y(N)-Y(N-1))/(X(N)-X(N-D) 8310 RETURN сплайн с "растяжением" на отрезке [0.1, 0.2 ] очень сильно отличает- отличается от аппроксимируемой функции. Это обусловлено тем, что на ле- левом конце отрезка [0,1 ] выбрано очень большое начальное значение, приближенно равное 1000 /@). График полученного сплайна с "рас- "растяжением" показан на рис. 2.10. з 1.5 е 1 11 I 1 I 1 r / 1 1 ^+- 1 1 I. 1 1 —*— 1 —b- 1 1 —h- 1 1 —^ s 1 ■ ■ ■ 1 • 1 .5 1 Рис.2.10. График сплайна с "растяжением", аппроксимирующего функцию у = (Хул* (N^lUy'i^ 1000y'@)) График сплайна с "растяжением", полученного по начальным данным, определенным подпрограммой 8000 REM ПОДПРОГРАММА ВВОДА ТЕСТОВЫХ ДАННЫХ 8005 ALFA-10000!:INDPR-2 8010 N-11 8015 NR-2*(N-1)+1 8020 H-1/(N-1) 8030 FOR 1-1 TO N 8040 X(I)-(I-l)*H:Ya)-XA)^A/16) 8050 NEXT I 8060 Yl~100*(YB)-Y(l))/(XB)-X(l)) 8070 YN-(Y(N)-Y(N-1))/(X(N)-X(N-D) 8310 RETURN представлен на рис.2.11. 160
1 Рис 2.11. Аппроксимация с помощью сплайна с "растяжением" функции У ж (*) (N = 11. ol = 10 , /i ~ 100у'@)) Если начальные данные задаются подпрограммой 8000 REM ПОДПРОГРАММА ВВОДА ТЕСТОВЫХ ДАННЫХ 8005 ALFA-50000!:INDPR-2 8010 N-31 8015 NR-2*(N-1)+1 8020 H-1/(N-1) 8030 FOR 1-1 TO N 8040 X(I)-(M)*H:Y(I)-X(I)^A/16) 8050 NEXT I 8060 Yl-1000>(YB)-Y(l))/(XB)-X(l)) 8070 YN-(Y(N)-Y(N-1))/(X(N)-X(N-1)) 8310 RETURN значения сплайна с "растяжением" (см. рис. 2.12 ) в окрест- окрестности х = 0 незначительно отличаются от значений тестовой Функции (рис. 2.8). Для начальных данных, заданных подпрограммой §000 REM ПОДПРОГРАММА ВВОДА ТЕСТОВЫХ ДАННЫХ *005 INDUK-1 :INDPR-2 8010 N-11 |015 NR-2*(N-1)+1 §020 H-1/(N-1) J030 FOR 1-1 TO N «040 X<I)-<I *050 NEXT I «•509 161
1.5 .75 1 ■ I в в _ ^L в I I 1 1 1 1 1 1 +*+ 1 1 +*+ 1 1 +*+ 1 1 4-H" 1 1 +*-_■ 1 1 1 .5 Рис. 2.12. Аппроксимация сплайном с "растяжением" функц у = (хулъ (Лг=31-а«510т,у'1- 100/@)) 1.5 — 1 ии Рис. 2.13. Кубический сплайн, аппроксимирующий на отрезке [0, 1] дробнораД нальную функцию у = 1/A + 25{х - 0.2) ), заданную значениями в N - И ра* удаленных точках (с шагом Я - 0.1) 162
8060 Y1- 8070 YN-(Y(N)-Y(N-1))/(X(N)-X(N-D) 8310 RETURN ^ический сплайн, построенный с помощью программы SPL01W01, 0реяставлен на рис.2.13. Хотя на отрезке [0, 0.2 ] дробнорациональная функция у = 1/A + 500(х — 0.2J) монотонно возрастает, а на отрезке [0.2,1 ] монотонно убывает, кубический сплан в окрестности точки х * 0.2 имеет флуктуации (то есть указанная монотонность нарушается). На рис. 2.14 представлен график сплайна с "растяжением", полученного 00 #-11 значениям дробнорациональной функции. При этом начальные данные задавались в программе SPL02W01 с помощью подпрограммы 8000 REM ПОДПРОГРАММА ВВОДА ТЕСТОВЫХ ДАННЫХ 8005 ALFA-5000!:INDPR-2 8010 N-11 8015 NR-2*(N-1)+1 8020 H-1/(N-1) 8030 FOR 1-1 TO N 8040 X(I)-(I-l)*H:Y(I)-l/(l+500*<X(I)-.2)~2) 8050 NEXT I 8060 Y1-(YB)-YA))/(XB)-X(D) 8070 YN-(Y(N)-Y(N-1))/(X(N)-X(N-D) 8310 RETURN При небольших значениях а значения сплайна с "растяжением" практически не отличаются от значений кубического сплайна. 1.5— .75 1 14. Сплайн с "растяжением", аппроксимирующий значения дробнорацио- и функции при JV - 11, а = 5000 V
2.3. ПРИМЕНЕНИЕ СПЛАЙНОВ ПРИ АППРОКСИМАЦИИ ПЕРИОДИЧЕСКИХ ФУНКЦИЙ, ЗАДАННЫХ ЭКСПЕРИМЕНТАЛЬНЫМИ ДАННЫМИ В инженерных исследованиях с применением ЭВМ часто возни* кает необходимость аппроксимации зависимостей между параметра* ми, которые имеют периодический характер. Наиболее часто периодические зависимости встречаются при летно-прочностных ис- испытаниях вертолетов. В предыдущей главе книги рассматривались алгоритмы, позволяющие аппроксимировать периодические функ- функции с помощью линейных комбинаций синусов и косинусов. Этот подход позволяет инженеру легко интерпретировать результаты ис- испытаний. Однако в ряде случаев нет необходимости находить приближе- приближения для периодических функций в виде отрезка ряда Фурье. Часто исследователь может ограничиться лишь рассмотрением приближе- приближения, которое для произвольного значения аргумента позволяют до- достаточно точно вычислить значение функции. Такая ситуация возникает, например, при использовании информации, полученной в ходе испытаний, для моделирования на ЭВМ различных режимов функционирования сложных систем. В этом случае для аппроксима- аппроксимации периодических функций можно использовать кубические перио- периодические сплайны [2,7,10,11]. Предположим, что на отрезке [а, Ь] числовой прямой в точках а = х\ < Х2 <... < хы = Ьу которые называются узлами интерполя- интерполяции, заданы значения у\, >ъ,..., уы некоторой периодической функ- функции, имеющей период Т = Ь — а. Кубический сплайн, интерполирующий значения функции у = f(x), называется п ческимг если <р«\а+0) = ср(к\Ь-О) ; * = 0,1,2, B.3.1) где <р{к\х) — производная к-то порядка от сплайна <р(х). При этом число Т = Ь - а называется периодом сплайна. Как и для неперио- непериодического сплайна, коэффициенты периодического сплайна можно найти, приравнивая между собой значения правосторонней и лево- левосторонней производных в узлах сетки. Система линейных алгебраи- алгебраических уравнений, с помощью которой можно найти коэффициенты сплайна, имеет вид у = 2,..., jV-1 . B.3.2) Периодический сплайн отличается от обычного сплайна лишь уело' виями на концах отрезка [а, Ь ]. Так как для периодического сплайна выполняются условия B.3.1), то должны выполняться соотношения 164
s yN ', K\ — Kn ! yi = yN+i > Кг= Kn+\', hi = Ллм-i следует, что Av = Аг/(Лг + An), ^л/ = 1 — Aw. Тогда система уравнений, определяющая коэффициенты периодического сплайна, ^еетвид '2 А2 О 2 Аз О /I* 2 B.3.3) 0 0 0 0 0 0 о о 0 0 0 • 2 V-1 0 0 0 0 Xn-2 2 Un 0 0 0 Ад,. 2 ЯШ т <ш К3 Kn-2 Kn d2 d3 dN-2 dN гае ~ У! ^-j ; / - 2,..., N. B.3.4) Следует особо отметить, что в отличие от обычного кубического шлайна, для периодического сплайна ds также вычисляется по фор- формуле B.3.4), так как ун+\ = уг . Рассмотрим алгоритм АЪ решения системы уравнений B.3.3), позволяющий найти коэффициенты периодического сплайна. 1) Для решения системы линейных алгебраических уравнений B.3.3) с трехдиагональной матрицей и отличными от нуля элемента- элементами в левом нижнем и правом верхнем углах матрицы можно исполь- использовать метод цикличеруой прогонкц [2,10,11]. Запишем систему уравнений 02 О о о Саг й in о О О О Ъъ ш о о о 0 0 0 0 0 0 0 0 Ьы- CN-2 0 О aN bN X\ X2 хз . Xn-2 Xn-\ m « m m A /2 /э * fN-2 fN-\ fs m ш B.3.5) ч*стным случаем которой является система B.3.3), в виде О о О О О С2 Ьг . О О 0 0 0 0 0 0 bN-2 Cn-2 Xi X2 Хз Xn-2 Xn-i 0 0 0 Cn-i Xn = /. /2 /з /n-2 /h-i B.3.6) 165
CsX\ + CLnXn-1 + 2) Рассмотрим вспомогательные системы уравнений B.3.7) by a2 0 0 0 'by аг 0 О О Су Ъг аз О О Ci Ъг аз О О О Сг Ъз О О О Сг Ъз О О О О О bN-2 вЛГ-1 О О О ... bN-2 • .. UN-У О О О cn-2 О О О Cn-2 ЙлГ-1 Z\ Z2 23 Zn-2 Zn-i т т т тщ tl t2 h tN-2 tN-l = A /2 h ffi-2 fN-X ay 0 0 0 Cn-у B.3.8) B.3.9) ще U ,.••» ts-\ >z\,..., zn-\ — некоторые неизвестные величины. 3) Системы уравнений можно решить, используя алгоритм B.1.23)—B.1.26), рассмотренный в разделе 2.1. При решении сис- систем B.3.8), B.3.9) с помощью алгоритма А1 вычисляются вспомога- вспомогательные величины B.3.10) B.3.11) Р\ = Ъ\ , pi = bj - -^- щ , / = 2,..., N-1 , Pji ~— » у = 2,..., #— 1 , »=-fli» а^-^г-ц* у = 2,..., лг-2, Pn-2 UN-X . B.3.12) Тогда по формулам i.W-1 — п> j = N-2,N-3,...,2,l, B.3.13) B.3.14) - B.3.9). У — iv -3 2 можно найти и,..., tN-\ ,zi,..., z//_i , удовлетворяющие B.3.8) 4) Решение системы B.3.6) — B.3.7) ищется в виде i "" Z/ i Z"" 1,..., TV"~ 1 , B.3-15) 166
«а есть решение системы B.3.5) представляется в виде линейной «добинации решений вспомогательных систем B.3.8)—B.3.9). Под- выражения B.3.15) в B.3.6) — B.3.7), получим: U.i.lO) tN-l + CN U + On Отсюда по формуле B.3.15) можно легко найти решение системы B.3.5). Так как система B.3.3) является частным случаем системы B.3.5), то с помощью сформулированного алгоритма можно вычис- вычислять коэффициенты периодического сплайна К\,..., Кх-\, KN, причем число операций имеет порядок O(N). Для равномерной сетки коэф- коэффициенты сплайна можно вычислить по формулам [2 ] 2 Я*1»*!!*' ' = 2,..МЛГ, B.3.17) у.2 Л we - *» - ^'i'o •' ° -л -2 • <2-ЗЛ8) Величина Яу1 быстро убывает с ростом I/ - i I. Поэтому при вычис- вычислении коэффициентов Kt сплайна по формулам B.1.33) и B.3.17) можно ограничиваться рассмотрением только нескольких значений )>, симметрично расположенных относительно Очевидно, что lim <$} = d$ = 4^Г— • B.3.19) N-+- 1-ГО Поэтому при больших N элементы матрицы Я#1 можно вычислить по приближенной формуле ^ J B.3.20) о причем погрешность аппроксимации равна Г N-\j-i\-\ , ■звачения элементов dp матрицы Л при различных N заданы в таблице 2.4. 167
Таблица 2.4 к 0 1 2 3 4 к 0 1 2 3 4 5 6 7 8 0,66667 -0,33333 — — — 0,57795 -0,15470 0,04147 -0,01116 0,00319 -0,00159 — — — 0,55556 -0,11111 — —— — 0,57735 -0,15470 0,04145 -0,01109 0,00292 -0,00058 —— — — 0,58333 -0,16667 0,08333 — — 0,57735 -0,15470 0,04145 -0,01111 0,00299 -0,00085 0,00043 — — 0,57576 -0,15152 0,03030 —— —— 0,57735 -0,15470 0,04145 -0,01111 0,00297 -0,00078 0,00016 — — 0,57778 -0,15556 0,04444 -0,02222 — 0,57735 -0,15470 0,04145 -0,01111 0,00298 -0,00080 0,00023 -0,0011 — 0,57724 -0 Л 5447 0,04065 -0,00813 — а,57735 -0,15470 0,04145 -0,01111 0,00298 -0,00080 0,00021 -0,00004 — 0,57738 -0,15476 0,04167 -0,01190 0,00595 0,57735 -0,15470 0,04145 -0,01111 0,00298 -0,00080 0,00021 -0,00006 -0,00003 Ф JL5T731 .15Л5468 _!Щ1з^ -0,01089 0,00218 0,57735 -0,15470 0,04145 -0,01111 0,00298 -0,00080 0,00021 -0,00006 0,00001 Рассмотренный алгоритм аппроксимации периодических функ- функций реализован в программе SPL03W01. В этой программе предпо- предполагается, что значения >>i,..M}to периодической функции у = f(x) заданы в точках х\,..., xNотрезка [а, А], причем = а, xn = b, y\ = /(jci) = уи = Ha рис.2 Л 5 приведен график, на котором показаны значения из- гибных напряжений в лопасти несущего винта вертолета на относи- относительном радиусе г* 0.66, полученных в летных испытаниях, а также аппроксимирующий этот процесс периодический сплайн. Ниже содержится листинг программы SPL03W01, а также ре* зультаты обработки процесса аизг(() на персональном компьютере. 10 REMMSPL03W0r 20 REM************************************************************** 30 REM*** ПРОГРАММА АППРОКСИМАЦИИ ПЕРИОДИЧЕСКОЙ 35 REM*** ФУНКЦИИ Y-F(X), 40 REM*** ЗАДАННОЙ ЭКСПЕРИМЕНТАЛЬНЫМИ ЗНАЧЕНИЯМИ Y(J) 45 REM*** В ТОЧКАХ 50 REM*** X(J)J-1,...,N, С ПОМОЩЬЮ КУБИЧЕСКОГО ПЕРОДИЧЕСКОГО 60 REM*** СПЛАЙНА 70 rem************************************************************** 80 REM ВВОДНАЧАЛЬНЬ1ХДАННЬ1ХВЬШаЛШШТПОДПРОГРАММАДТЕРВЬ1Й 90 REM ОПЕРАТОР КОТОРОЙ ИМЕЕТ НОМЕР 8000 100 DIM XA00),YA00),CA00),ZA00),PA00),RA00),GA00),WA00) ПО DIMAOAOO),A1AOO),A2AOO),A3AOO),XREOO),YREOO),YMAOO) 168
I 4 te.2.15. Аппроксимация с помощью периодического сплайна изгибных напряже ни в лопасти несущего винта вертолета Ми-8 115 120 130 140 150 570 575 580 590 600 610 620 630 640 650 660 670 680 690 700 710 ЗНАЧ.МОДЕЛИ ЗНЛ-ЙПР IS J°0 DIMYRlE00),YR2<500) GOSUB 8000 GOSUB 1000 GOSUB 2500 GOSUB 3000 IF INDPR-0 GOTO 640 PRINTHOMEP ТОЧКИ ЗНАЧ.АРГУМ. ЗН.2-Й ПРОИЗВ." PRINT " - - FOR Ы TO NR PRINT I,XR(I),YR(I),YR1 (I),YR2(I) NEXT I Print *- - , — GOTO 700 PRINT "НОМЕР ТОЧКИ ЗНАЧ.АРГУМ. ЗНАЧ.МОДЕЛИ" PRINT и ~ - - " FOR I-l TO NR PRINT I,XR<I),YR(I) NEXT I PRINT" " INPUT "ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. АРГУМЕНТА XMIN,XMAX";XMIN,XMAX INPUT "ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. ФУНКЦИИ YMIN,YMAX";YMIN,YMAX REM GOSUB 9000 MARKER-2:GOSUB 9500 REM MARKER-2:GOSUB 10000 169
850 END 1000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ КОЭФФИЦИЕНТОВ ПЕРИОДИЧЕСКОГО СПЛАЙНА 1010 N1-N-1 1020 N2-N-2 1030 РB)-2 1040 RB)-(YC)-YB))/(XC)-XB))-(YB)-YA))/(XB)-X(D) 1050 RB)-6*RB)/(XC)-X(D) 1060 GB)-(XC)-XB))/(XC)-XA))-1 1070 FORJ-3TON1 1080 HJ-X(J)-Xtt-l) 1090 HJ1-X(J+1)-X(J) 1100 HJ2-X(J-l)-X(J-2) 1110 FJ-(Y(J+1)-Y(J))/HJ1-(Y(J)-Y(J-1))/HJ 1120 FJ-6*FJ/(HJ+HJ1) 1130 RMJ-1-HJ1/(HJ+HJ1) 1140 RLJ-HJ/(HJ2+HJ) 1150 P(J)-2-RLJ*RMJ/P(J-l) 1160 R(J)-FJ-R(J-1)*RMJ/P<J-1) 1170 IFJ-N1 GOTO 1190 1180 G(J)--G(J-1)*RMJ/P(J~1) 1190 NEXTJ 1200 RUHX (N) -X (N-1)) / (X (N) -X (N-2)) 1210 RMJ-1-RLJ 1220 G(N-l)--RU-G(N-2)*RMJ/P(N-2) 1230 Z(N-1)-R(N-1)/P(N-1) 1240 W(N-1)-G(N-1)/P(N~1) 1250 FOR 1-2 TO N2 1260 J-N24+2 1270 RLJ-(X(J+1)-X(J))/(X(J+1)-X(J-1)) 1280 Z(J)-(R(J)-RU*Z(J+1))/P(J) 1290 W(J)-(G(J)-RU*W(J+1))/P(J) 1300 NEXT I 1310 RLJ-(XB)-XA))/(XB)-XA)+X(N)-X(N-1)) 1320 RMJ-1-RLJ 1330 FJ-(YB)-Y(N))/(XB)-XA))-(Y(N)-Y(N-1))/(X(N)-X(N-1)) 1340 FJ-6*FJ/(X(N)-X(N-1)+XB)-X<1)) 1350 HJ-(FJ-RU*Z(l)-RMJ*Z(N-l))/(RMJ*W(N-l)+RU*W(l)+2) 1360 FORJ-2TON1 1370 C(J)-Z(J)+HJ*W(J) 1380 NEXTJ 1390 FOR 1-2 TO N 1400 HI-XCI)-X(I-l) 1410 A0<I)-(C(I)-C(I-l))/(HI*6) 1420 Al(I)-C(I-l)/2 1430 A2(I)-(Y(I)-Y(I-l))/HI-B*C(I-l)+C(I))*HI/6 1440 A3(I)-Y(I-1) 1450 NEXT I 1460 PRINT:PRINT:PRINT 1470 PRINT "АППРОКСИМАЦИЯ ПЕРИОДИЧЕСКОЙ ФУНКЦИИ С ПОМОЩЬЮ 1480 PRINT "ПЕРИОДИЧЕСКОГО КУБИЧЕСКОГО СПЛАЙНА,ЗАДАННОГ0и 1490 PRINT" ЧЕРЕЗ МОМЕНТЫ C(J)-S"(J)),J-1,...,N" 1500 PRINT "ft*********************************************" 1510 PRINT.PRINT "ЧИСЛО ТОЧЕК НА ПЕРИОДЕ N-";N 1520 PRINT:PRINT "ПЕРИОД ФУНКЦИИ Т-";Х (N) -X A) 1530 PRINT:PRINT "НОМЕР ТОЧКИ ЗНАЧ.АРГУМ. ЗНАЧ.ФУНКЦ. 70
КОЭФ.СПЛАИНА" 1540 PRINT" " 1550 FOR 1-1 TO N 1560 PRINT I,X (I) Л (I),C (I) 1570 NEXT I 1580 PRINT" " 1590 RETURN 2000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ СПЛАЙНА 2010 J1-1JN-N 2020 IFJN<-J1+1 GOTO 2080 2030 J-INT«Jl+JN)/2) 2040 IF XU-X(J) GOTO 2090 2050 IF XU>X(J) GOTO 2070 2060 JN-J.GOTO 2020 2070 JW:G0T0 2020 2080 J-JN 2090 HJ-X(J)-XU-l) 2100 T-(XU-XU-l)) 2110 YU-T*(T*(AO(J)*T+A1 (J))+A2(J))+A3(J) 2120 IF INDPR-0 GOTO 2160 2130 GOSUB2200 2140 IF INDPR-0 GOTO 2160 2150 GOSUB 2200 2160 RETURN 2200 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ 1 -Й И 2-Й ПРОИЗВОДНОЙ СПЛАЙНА 2210 IFINDPR>1 GOTO 2240 2215 INDPR-1 2220 PYl-(T*C*A0(J)*T+2*Al (J)))+A2(J) 2230 GOTO 2270 2240 INDPR-2 2250 PY1-(T*C*AO(J)*T+2*A1 (J)))+A2(J) 2260 PY2-6*AO(J)*T+2*A1(J) 2270 RETURN 2500 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ СПЛАЙНА В УЗЛАХ СЕТКИ 2510 FORI-l TON 2520 XU-X(I) 2530 GOSUB 2000 2540 YM(I)-YU 2550 NEXT I 2560 RETURN 3000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ ИНТЕРПОЛЯЦИОННОГО СПЛАЙНА ЗОЮ REM И ЕГО ДВУХ ПРОИЗВОДНЫХ НА РАВНОМЕРНОЙ СЕТКЕ 3030 HR-(X(N)-XA))/(NR-1) 3040 FOR I-l TO NR 3050 XR(I)-XA)+(I-1)*HR 3055 NEXT I 3060 FOR I-l TO NR 3065 XU-XR(I) 3070 GOSUB 2000 3080 YR(I)-YU 3090 IF INDPR-0 GOTO 3120 3100 YRKD-PY1 3U0 YR2(I)-PY2 171
3120 NEXT I 3130 RETURN 8000 REM ПОДПРОГРАММА ВВОДА НАЧАЛЬНЫХ ДАННЫХ 8010 INDPR-2 8020 N-22 8025 NR-43 8030 H-.01524 8040 FOR 1-1 TO N 8050 X(I)-(I-1)*H 8060 READ Yd) 8070 NEXT I 8080 DATA 5.35 8090 DATA 5.95 8100 DATA 6.35 8110 DATA 5.8 8120 DATA 5.5 8130 DATA 5.75 8140 DATA 5.85 8150 DATA 5.9 8160 DATA 6.1 8180 DATA 7.1 8190 DATA 7.65 8200 DATA 6.95 8210 DATA 6.8 8220 DATA 7.1 8230 DATA 7.4 8240 DATA 7 8250 DATA 6.45 8260 DATA 6 8280 DATA 5.75 8290 DATA 5.47 8300 DATA 5.25 8310 DATA 5.35 8320 RETURN 9000 REM "GR9000": ПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА ФУНКЦШ 9010 PRINT " ".PRINT " ГРАФИК КУБИЧЕСКОГО CrUIAftHA":PRINT ' 9020 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X:NXD-H;NXD 9030 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y:NYD-";NYD 9050 NY-NYD+1 9060 CLS:SCREEN 2:DY-(YMAX~YMIN)/NYD:FOR 1-1 TO NY:Y-2O+160/NYD*(I-l) 9070 LINE G4, Y)- E74,Y):NEXT I:NX-NXD+1 9080 FORI-1 TONX:X-84+480/NXD*(I-l):LINE (X,12)-(X,188):NEXTI 9090 R-23 9100 FORK-OTONYD 9110 LOCATE R 1 9120 SY-YMIN+DY*K:PRINT USING "#.###";SY 9130 R-R-20/NYD 9135 NEXT К 9140 C-7:DX-(XMAX-XMIN)/NXD 9150 FOR K-0 TO NXD:KEY OFF:LOCATE 24,C 9160 SX-XMIN+DX*K 9170 PRINT USING "####.##";SX; 9180 C-C+60/(NXD40) 9185 NEXT К 9310 XA-E64-84)/(XMAX-XMIN):YA-(l 80-20) /(YMAX-YMIN) 72
9320 FOR IX-84 TO 564:XU-XMIN+(IX-84)/480*(XMAX-XMIN) 9330 GOSUB2000 9340 IY-180-(YU-YMIN)*YA 9350 IF IY<20 OR IY> 180 THEN 9370 9360 IF IX-84 THEN PSET (IX,IY) 9365 UNE-(IX.IY) 9370 NEXT IX 9380 FOR 1-1 TO N 9390 YG-180-(Y(I)-YMIN)*YA 9400 IFYG<20ORYG>180GOTO9440 9410 XG-480* (X (I) -XMIN) / (ХМАХ-ХМ1Ю+84 9420 PSET (XG,YG) 9430 DRAW HE2G4E2H2F4H2E2D4L4U4R4G2H 9440 NEXT I 9450 RETURN 9500 REM HGRAF9500M 9510 XS-(XMIN+XMAX)/2 9520 YS-(YMIN+YMAX)/2 9540 SCREEN 2:CLS:KEY OFF 9550 VX-XMAX-XMIN.DX-400/VX: VY-YMAX-YMIN.DY-120/VY 9560 FOR IX-40 TO 440 9570 XU-XMIN+(IX-4O)/4OO*VX 9580 GOSUB 2000 9596 IY-125-(YU-YMIN)*DY 9595 IF IY<5 OR IY>125 GOTO 9620 9600 IF IX-40 THEN PSET (IX,IY) :GOTO 9620 9610 UNE-(IX,IY) 9620 NEXT IX 9630 FOR IE-1 TO N 9640 YE-125-(Y(IE)-YMIN)*DY 9650 IF YE<5 OR YE>125 GOTO 9740 9660 XE-400*(X(IE)-XMIN)/VX+40 9670 PSET (XE,YE) 9680 ON MARKER GOTO 9690,9700,9710,9720,9730 9690 DRAW HU2D4U2L4R8L4":GOTO 9740 9700 DRAW HE2L4F4L4E3H:GOTO 9740 9710 DRAW "E2D4H4D4E2L4R8L4M:GOTO 9740 9720 DRAW HE2G4E2H2F4H2L4R8L4H:GOTO 9740 9730 DRAW "U2G3R6H3D2" 9740 NEXT IE 9750 LINE D0,5)-D40,5) 9760 UNE D0,125)-D40,125) 9770 LINED0,5)-D0,125) 9780 LINE D40,5)-D40,125) 9790 FOR Y-5 TO 125 STEP 12 9800 UNE D0,Y)-D3,Y) 9810 LINE D40,Y)-D37,Y) 9820 NEXTY 98Э0 LOCATE 1,2:PRINT YMAX 9840 LOCATE 9.2:PRINT YS 9850 LOCATE 16,2:PRINT YMIN 9860 FOR X-79 TO 440 STEP 40 9870 UNE(X,125)-(X,122) 9880 UNE(X+1,125)-(X+1,122) 9890 LINE (X,5)-(X,8) 9900 LINE(X+1,5)-(X+1,8) 9910 NEXTX 9920 LOCATE 17,4:PRINT XMIN 173
9930 LOCATE 17,29.PRINTXS 9Q40 LOCATE 17f54:PRINT XMAX 9950 A$-INPUT$A) 9960 END 10000 REM "GRIOOOO" ПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА ФУНКЦИИ 10010 PRINT H H:PRINT " ГРАФИЧЕСКОЕ ИЗОБРАЖЕНИЕ РЕЗУЛЬТАТОВ AnnPOKCHMAUHH":PRINT н н 10020 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X:NXD-H;NXD 10030 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y:NYD-H;NYD 10040 NY-NYTH-1 10050 CLSrSCREEN 2:DY-(YMAX-YMIN)/NYD:FOR 1-1 TO NY:Y-20+160/NYD* (I-1) 10060 UNEG6,Y)-(90,Y):NEXTI:NX-NXD+l 10070 FORI-1 TONX:X-84+480/NXD*(I-l):LINE (X, 176)-(X, 184) .NEXT I 10080 LINE (84,12)-(84,188):LINE (84,180)-E68,180) 10090 R-23 10100 FORK-OTONYD 10110 LOCATE R 3 10120 SY-YMIN+DY*K:PRINT USING H#.##H;SY 10130 R-R-20/NYD 10140 NEXT К 10150 C-7:DX-(XMAX-XMIN)/NXD 10160 FOR K-0 TO NXD:KEYOFF:LOCATE 24,C 10170 SX-XMIN+DX*K 10180 PRINT USING "####.##";SX; 10190 C-C+60/(NXD+0) 10200 NEXT К 10210 VX-XMAX-XMIN:VY-YMAX-YMIN:XA-480/VX:YA-160/VY 10230 FOR IX-84 TO 564:XU-XMIN+(IX-84)/480*VX 10240 GOSUB2000 10250 IY-180-(YU-YMIN)*YA 10260 IF IY<20 OR IY>180 THEN 10290 10270 IF IX-84 THEN PSET (IX,IY) 10280 LINE-(IX,IY) 10290 NEXT IX 10300 FORIE-1TON 10310 YE-180-(Y(IE)-YMIN)*YA 10320 IF YE<20 OR TE>1180 GOTO 10410 10330 XE-480*(X(IE)-XMIN)/VX+84 10340 PSET (XE,YE) 10350 ON MARKER GOTO 10360,10370,10380,10390,10400 10360 DRAW "U2D4U2L4R8L4":GOTO 10410 10370 DRAW "E2L4F4L4E3":GOTO 10410 10380 DRAW ME2D4H4D4E2L4R8L4":GOTO 10410 10390 DRAW "E2G4E2H2F4H2L4R8L4".GOTO 10410 10400 DRAW HU2G3R6H3D2M 10410 NEXT IE 10420 RETURN RUN АППРОКСИМАЦИЯ ПЕРИОДИЧЕСКОЙ ФУНКЦИИ С ПОМОЩЬЮ ПЕРИОДИЧЕСКОГО КУБИЧЕСКОГО СПЛАЙНА, ЗАДАННОГО ЧЕРЕЗ МОМЕНТЫ C(J)-S" (J)), J-1 N ЧИСЛО ТОЧЕК НА ПЕРИОДЕ N- 22 74
ПЕРИОД ФУНКЦИИ Т- .32004 НОМЕР ТОЧКИ ЗНАЧЕНИЕ АРГУМЕНТА ЗНАЧЕНИЕ ФУНКЦИИ КОЭФЛ СПЛАЙНА 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 НОМЕР ТОЧКИ 0 .01524 .03048 .04572 .06096 .0762 .09144 .10668 .12192 .13716 .1524 .16764 .18288 .19812 .21336 .2286 .24384 .25908 .27432 .28956 .3048 .32004 ЗНАЧЕНИЕ АРГУМЕНТА 5.35 5.95 6.35 5.8 5.5 5.75 5.85 5.9 6.1 7.1 7.65 6.95 6.8 7.1 7.4 7 6.45 6 5.75 5.47 5.25 5.35 ЗНАЧЕНИЕ МОДЕЛИ 0 -355.524 -6652.155 2422.431 3420.763 -1897.118 292.6985 -565.3383 5843.653 -2142.577 -8898.353 5444.235 1329.795 861.5938 -4776.158 159.6615 262.5007 1373.685 -590.5643 213.5505 1286.387 0 ЗНАЧЕНИЕ 1-ОЙ ПР ЗНАЧЕНИЕ 2-ОЙ ПР 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 0 .00762 .01524 .02286 .03048 .0381 .04572 .05334 .06096 .06858 .0762 .08382 .09144 .09906 .10668 .1143 .12192 .12954 .13716 .14478 .1524 .16002 .16764 .17526 .18288 .1905 5.35 5.655161 5.95 6.251724 6.35 6.1364 5.8 5.56518 5.5 5.602883 5.75 5.82329 5.85 5.878958 5.9 5.92338 6.1 6.546274 7.1 7.535271 7.65 7.350141 6.95 6.776668 6.8 6.91819 40.27311 39.59583 37.56402 30.24508 -8.449253 -4185159. -40.67975 -20.319 3.845394 19.78108 15.45558 5.171141 3.229903 3.825706 1.152389 9.053638 41.37314 70.68802 69.57536 40.37922 -14.5565 -55.03932 -40.87689 -7.229855 10.74122 19.98232 0 -177.762 -335.524 -3503839 -6652155 -2114.862 2422.43 2921.597 3420.763 761.822 -1897.118 -802.2097 292.6984 -136.3199 -565.3383 2639.157 5843.653 1850.54 -2142.577 -5520.461 -8898.352 -1727.066 5444.235 3387.017 1329.795 1095.695 175
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 .19812 .20574 .21336 .22098 .2286 .23622 .24384 .25146 .25908 .2667 .27432 .28194 .28956 .29718 .3048 .31242 .32004 7.1 7.306824 7.4 7.267014 7 6.718872 6.45 6.201249 6 5.863632 5.75 5.615473 5.47 5.338227 5.25 5.281327 5.35 27.4396 23.26504 -2.389382 -29.38096 -37.56709 -36.15456 -34.35021 -30.23316 -21.88248 -15.15689 -15.91509 -18.88335 -18.78793 -15.11692 -7.358399 7.378526 9.829102 861.5938 -1957.279 -4776.158 -2308.251 159.6616 211.081 262.5007 818.0925 1373.685 381.5604 -590.5645 -188.5077 213.5505 749.9688 1286.387 643.1948 1.220703E-04 ВВЕДИТЕ МИН. И МАКС. ЗНАЧЕН. АРГУМЕНТА ХМШДМАХ? 0,.32 ВВЕДИТЕ МИН. И МАКС. ЗНАЧЕН. ФУНКЦИИ YMIN,YMAX? 4,8 При отладке программы SPL03W01 в качестве одной из тестовой рас сматривалась функция у = 0.5 sin(x/27r) + ъЩх/ж) + 2 sinB*/jr) . B.3.22) График этой функции, полученный с помощью программы 2000 REM "FTEST3" 2005 DIMXD0),YD0) 2010 N-ll:X(l)-0:X(N)-30 2015 XMIN-XA):XMAX-X(N) 2020 YMIN--3:YMAX-3 2025 H-(X(N)-XA))/(N-1) 2030 PI-3.1415926# 2035 FOR 1-1 TO N 2040 X(I)-XA)+(I-1)*H 2050 XU-X(I):GOSUB3000:Y(I)~YU 2055 PRINTX(I),Yd) 2060 NEXT I 2110 REM GOSUB 9000 2120 MARKER-2.GOSUB 9500 2130 REM MARKER-3:GOSUB 10000 2140 END 3000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ ТЕСТОВОЙ ФУНКЦИИ ДЛЯ СПЛАЙНОВ ЗОЮ YU-.5*SIN(XU/2/PI)+SIN(XU/PI)+2*SINB*XU/PI) 3020 RETURN показан на рис. 2.16. На этом рисунке символом £ обозначены Nш\\ значений тестовой периодической функции с шагом А ~ 3. Тестовая функция B.3.22) аппроксимировалась с помощью пе- периодического сплайна. На рис.2.17 показан график периодическо- периодического сплайна, полученного с помощью программы SPL03W01. 176
I -3 1 15 tec. 2.16. График тестовой функции B.3.22), а также N - 11 ее значений с шагом - 3, полученных с помощью программы FTEST (построение графика осуществ- осуществилось подпрограммой с операторами 9500—9960) 3 ■3 . Аппроксимация с помощью периодического сплайна N - 11 значений B.3.22) с шагом Л - 3 177
Начальные данные для этого варианта вводились с помощью программы 8000 REM ПОДПРОГРАММА ВВОДА НАЧАЛЬНЫХ ДАННЫХ 8010 INDPR-2 8020 N-11 8025 NR-41 8040 PI-3.1415926* 8050 H-30/(N-l) 8130 FORI-l TON 8140 X(I)-(M)*H 8150 Y(I)-.5*SIN(X(I)/2PI)+SIN(X(I)/PI)+2*SINB*X(I)/PI) 8170 NEXf I 8320 RETURN При вводе начальных данных с помощью подпрограммы 8000 REM ПОДПРОГРАММА ВВОДА НАЧАЛЬНЫХ ДАННЫХ 8010 INDPR-2 8020 N-21 8025 NR-41 8040 Р1-3.1415926# 8050 H-30/(N-l) 8130 FOR I-l TON 8140 X(I)-(I-1)*H 8150 Y(I)-.5*SIN(X(I)/2PI>+Sm(X(D/PI)+2*SINB*X(I)/PI) 8170 NEXT I 8320 RETURN был получен периодический сплайн, изображенный на рис. 2.18. На рис. 2.19 представлен периодический сплайн, полученный по #-31 значению функции B.3.22) с шагом А - 1. Для этого варианта начальные данные вводились в программу SPL03W01 с помощью подпрограммы 8000 REM ПОДПРОГРАММА ВВОДА НАЧАЛЬНЫХ ДАННЫХ 8010 INDPR-2 8020 N-31 8025 NR-61 8040 Р1-3.1415926# 8050 H-30/CN-1) 8130 FOR I-l TON 8140 X(I)-(I-1)*H 8150 Y(I)-.5*SIN(X(I)/2PI)+SIN(X(I)/PI)+2*SINB*X(I)/PI) 8170 NEXT I 8320 RETURN Анализ графиков тестовой функции, а также аппроксимируй щих ее сплайнов показывает, что значительное увеличение числ* узлов при решении задачи аппроксимации не приводит к существен* ному повышению точности аппроксимации. 178
I -3 Рис 2.18. Аппроксимация с помощью периодического сплайна N - 21 значени функции B.3.22) с шагом Л - 1.5 3 Сплайн-аппроксимация функции B.3.22) при N-31, h-1 17
2.4. численное дифференцирование и интегрирование Функций с помощью сплайнов В практических исследованиях задачи численного дифферент^ рования и интегрирования функций чаще всего возникают в тех слу. чаях, когда нужно найти производную или интеграл от некоторой неизвестной функции, заданной экспериментальными данными. Ес- Если функция является достаточно гладкой, то для решения этих задач можно использовать методы, разработанные в классической вычис- вычислительной математике [4,13]. Однако реальные зависимости между параметрами часто имеют достаточно сложную структуру. Примене- Применение классических вычислительных методов при численном диффе- дифференцировании и интегрировании функций такого типа может привести к образованию значительных ошибок, а следовательно и к искажению результатов обработки. Для решения задач численного дифференцирования и интегри- интегрирования функций можно использовать методы аппроксимации функ- функций с помощью сплайнов. Алгоритмы, разработанные на основе сплайнов, позволяют более эффективно (по сравнению с классиче- классическими вычислительными методами) решать эти задачи, Эффектив- Эффективность алгоритмов численного сплайн-дифференцирования и интегрирования обусловлена свойствами наилучшего приближениям минимальной кривизны сплайна [2,4,6,8,10,12,14,16]. Сначала рас- рассмотрим некоторые алгоритмы численного сплайн-дифференцирова- сплайн-дифференцирования. В классической вычислительной математике производные неизвестной функции обычно находятся путем вычисления конечно- разностных приближений, или же путем дифференцирования пол- полинома, аппроксимирующего экспериментальные значения функции. При использовании этих методов для обработки каждой из достаточно сложных функций на нескольких участках, будут существовать точки, в которых даже первые производные являтюся разрывными. Алгоритмы численного сплайн-дифференцирования лишены этого недостатка, так как первая и вторая производная сплайна непрерывны. Пусть неизвестная функция у = Дх) задана значениями Уи У2,—, Уы в точках xi, *2,..., xn, принадлежащих отрезку [а, Я» причем а = xi < xi < ... < xn = А. Для решения задачи численного дифференцирования можно использовать кубические сплайны, за- заданные с помощью наклонов ту, представляющих собой значения первой производной сплайна в узлах х7- сетки на [я, Ь]. Если rrij = <p'(xj), j = 1,..., N , то на отрезке [xy_i, xy] кубический сплайн имеет вид (Ху - ХJ(Х - Ху-i) (Х - Xy-iJ(Xy - X) 180
j-xf [2(x -x,-,) + h,] (х- хмJ[2(х,-х) + Л? +yi h] x G Ay=[xy-i,xy] , / = 2,..., N. B.4.1) Первая производная сплайна равна (*/ - x)Bxhi + х/ - 3s) Лу Л Л ^—z 6 з Лу B.4.2) Дифференцируя выражение B.4.2), получим вторую производ ную 2ху + Xy-i — Зх - 2xy-i + Ху — Зх , —i 4 2my—* -r^ + Лу Лу y_, -2x),XGAy=[Xy-i,Xy], /=2,...,ЛГ. B.4.3) Рассмотрим выражения вида B.4.3) на отрезке Ау, Ау-ц и перей- перейдем в каждом из них к пределу при х-*ху соответственно слева и справа. В результате получим У/ " У/-1 Ay+i Так как вторая производная сплайна непрерывна, то следует, что Система линейных уравнений B.4.5) состоит из (N - 2)-х урав- WJt и содержит N неизвестных. Для того, чтобы можно было одно- определить коэффициенты сплайна, необходимо иметь еще Уравнения. Для непериодического сплайна можно задать крае- 181
вые условия с помощью производных у\",yNn на концах отрезка [а, Ь]. Используя обозначения B.1.7), систему B.4.5) можно пере- переписать в виде -x + 2/п/ -I- +x = ЗА, —т + ГЦ -J-r ТЦ+1 / — 9 N—\ J "™* Лл у .. • у J т X . Если задать краевые условия B.4.6) 2/Л| = 3 )!N — ~~ У Г B.4.7) то система уравнений для коэффициентов сплайна имеет вид 2 0 0 0 Cv 2 Аз 6 0 0 0 fi2 2 « 0 0 0 ♦ ♦ • * • * ... • » . ... 0 0 0 2 0 0 0 0 flN-2 2 Av 0 0 0 0 flN-1 2 тпъ где - у\ -, Cn = Cl Съ cN B.4.8) с- = ЗА- Условия на концах можно задать также в виде B.4.9) B.4.10) Система уравнений B.4.9) имеет матрицу с доминирующей главной диагональю и поэтому она имеет единственное решение. Решение этой системы уравнений можно найти с помощью алго- алгоритма А У, рассмотренного в первом параграфе этой главы. Для пери- периодического сплайна yN = yXy mN = mi, yN+i = уг> mN+i = тг. Тогда коэффициенты периодического сплайна определяются путем реше- решения системы уравнений 182
2 Аз 0 0 0 UN иг 2 х4 0 0 0 0 ... из 2 ... 0 ... 0 ... 0 ... 0 0 0 2 ЛАГ-1 0 0 0 0 UN-г 2 XN Хг 0 0 0 Un- 2 Ш2 fits ТП.А ТПы-2 TTIn m m C2 Съ C4 Cn-2 cn~\ Cn m m B.4.11) правые части которой вычисляются по формуле сi = 3Ay -У) П., +1 /=2 N B.4.12) Алгоритм определения коэффициентов периодического сплайна рассмотрен в третьем разделе данной главы. Так как в узлах ху коэффициенты сплайна m7 = <p'(xj), то в каче- качестве приближенных значений производной функции у = f(x) в точ- itax X/ можно взять наклоны т,, /•= 1,..., N . В промежуточных точках приближенные значения производной вычисляются по фор- формуле B.4.2). Если же сплайн задан с помощью моментов А), то мож- можно показать [2 ], что B.4.13) при 1 < / < N, или У/ B.4.14) Для 1 < j < N. Отсюда следует, что в случае, когда сплайн задан че- через моменты, значения производной вычисляются с помощью фор- нул B.4.13)—B.4.14). Шенберг показал [2,10,11], что значения наклонов ntj сплайна являются сглаженными значениями конечнораз- ностного приближения производной {у, — yh{)/hj. Алгоритм аппроксимации функции с помощью кубического й определенного с помощью наклонов т,, реализован в про- SPL04W01. График значений зависимости частоты / в СЭС Як-42 от времени т;, а также аппроксимирующий ее сплайн, представлены на рис. 2.20. Построение графика в этой программе осуществлялось подпрог- u, определенной операторами с номерами 9500—9960. Ниже представлены листинг программы SPL04W01, а также ре- ^Ультаты ее выполнения на персональном компьютере. Входные дан- ***е определены подпрограммой с операторами 8000—8310. 183
418 380 в 1 ■ ■ ■ ■ i i \ \ \ V 1 1 1 1 / J 1 1 1 1 1 1 V 1 1 / / / / I 1 л; ■ ■ ■ 1 5.5 Рис. 2.20. Аппроксимация с помощью сплайна вида B.4.1) зависимости /= <р полученная в результате выполнения программы SPL04W01 10 REM "SPL04W0r 20 reM****************************************************************** 30 REM ПРОГРАММА АППРОКСИМАЦИИ ФУНКЦИИ ОДНОЙ 35 REM ПЕРЕМЕННОЙ С ПОМОЩЬЮ 40 REM КУБИЧЕСКОГО ИНТЕРПОЛЯЦИОННОГО СПЛАЙНА, 45 REM ОПРЕДЕЛЕННОГО ЧЕРЕЗ 50 REM НАКЛОНЫ A(J)-S'(X(J)),J-1,...,N 60 REM****************************************************************** 65 REMDEFDBLAJB,C,F,Z,P 70 DIM XA00),YA00),AA00),BA00),CA00),FA00),ZA00),PA00) 80 DIMXRD80),YRD80),YRlD80),YR2D80),YMA00) 90 GOSUB 8000 100 GOSUB 1000 110 GOSUB 2500 520 PfcINT "НОМЕР ТОЧКИ ЗНАЧ.АРГУМ. ЗНАЧЕН.Ф-ИИ ЗНАЧ.МОДЕЛИ КОЭФ.СПЛАЙНА" 525 PRINT" - -- 530 FOR I-l TO N 540 PRINT I,X(I),Y(I),YM(I),A(I) 550 NEXT I 560 PRINT" 565 GOSUB 3000 570 PRINT'HOMEP ТОЧКИ ЗНАЧ.АРГУМ. ЗНАЧ.МОДЕЛИ ЗН. 1 -Й ПР. ЗН.2-Й ПРОЗВ." 580 PRINT" " 590 FOR I-l TO NR 600 PRINTI,XR(I),YR(I),YR1(I),YR2(I) 184
610 NEXT I 620 PRINT" 630 INPUT "ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. АРГУМЕНТА XMIN,XMAX";XMIN,XMAX 640 INPUT "ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. ФУНКЦИИ YMIN,YMAXM;YMIN,YMAX 690 REM GOSUB 9000 700 MARKER-2:GOSUB 9500 710 REM MARKER-3:GOSUB 10000 800 END 1000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ КОЭФФИЦИЕНТОВ КУБИЧЕСКОГО СПЛАЙНА Y-S (X), 1010 REM ОПРЕДЕЛЕННОГО С ПОМОЩЬЮ НАКЛОНОВ A(JHS'(X(J)),J-1,...,N 1020 N1*N-1 1030 FOR 1-2 ТО N1 1040 B(I)-2 1060 1070 1080 1090 NEXT I 1100 ON INDUK GOTO 1110,1180 1105 INDUK-1 1110 C(l)-0 1120 A(N)-0 1130 B(l)-2 1140 B(N)-2 1150 FA)-2*Y1 1160 F(N)-2*YN 1170 GOTO 1350 1180 INDUK-2 1185 C(l)-.5 1190 A(N)-.5 1200 B(l)-2 1210 B(N)-2 1220 FA)-3*(YB)-YA))/(XB)-XA))-(XB)-XA))/2*Y11 1230 F(N)-3*(Y(N)-Y(N1))/(X(N)-X(N1))+(X(N)-X(N1))/2*YNN 1350 P(l)-B(l) 1360 Z(l)-F(l) 1370 FOR 1-2TON 1380 P<ILBU)-C(I-1)/P(I-1)*A(I) 1390 Z(I)-F(I)-Z(M)/P(M)*A(I) 1400 NEXT I 1410 A(N)-Z(N)/P(N) 1420 FOR I-Nl TO 1 STEP -1 1430 A(I)-(Z<I)-C(I)*A(I+1))/P(I) 1440 NEXT I 1520 RETURN 2000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ СПЛАЙНА 2010 J1-1:JN-N 2020 IFJN<-J1+1 GOTO 2080 2030 J4NT((Jl+JN)/2) 2040 IF XU-X(J) GOTO 2090 2050 IF XU>X(J) GOTO 2070 2060 JN-J.GOTO 2020 2070 J1-J:GOTO 2020 2080 J-JN 2090 HJ-XU)-X(J-l) 185
2100 T™XU-X(J-1):T1"|X(J)-XU 2110 YU-A(J-l)*T1^2*T/HJ^2 HJ^3+Y(J) *ТЛ2* B*T1 +HJ) /КГ 3 2140 IF INDPR-0 GOTO 2160 2150 GOSUB2200 2160 RETURN 2200 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ 1 -Й И 2-Й ПРОИЗВОДНЫХ СПЛАЙНА 2210 IF INDPR>1 GOTO 2250 2220 INDPR-1 2230 PY1-A(M)*T1*(T1-2*T)/HJ^2-A(J)*B*T1-T)/HJ^2+6*(Y(J)-Y(J-1)) •Т1*Т/НГЗ 2240 GOTO 2280 2250 РУ1-А(М)»Т1»(Т1-2»Т)/Н1л2-Аа)»B»Т1-Т)/Шл2+6»(¥а)-¥(М)) 2260 2270 PY2-PY2+6*(Y(J)-Y(J-l))*(Tl-T)/Hr3 2280 RETURN 2500 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ СПЛАЙНА В УЗЛАХ СЕТКИ 2510 FOR 1-1 TON 2520 XU-X(I) 2530 GOSUB2000 2540 YM(I)-YU 2550 NEXT I 2560 RETURN 3000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ ИНТЕРПОЛЯЦИОННОГО СПЛАЙНА 3010 REM И ЕГО ДВУХ ПРОИЗВОДНЫХ НА РАВНОМЕРНОЙ СЕТКЕ 3020 NR1-NR+1 3030 HR-(X(N)-XA))/NR 3040 FORI-1TONR1 3050 XR(I)-XA)+(I-1)*HR 3055 NEXT I 3060 FORI-1TONR1 3065 XU-XR(I) 3070 GOSUB2000 3080 YR(I)-YU 3090 YRKD-PY1 3100 YR2(I)-PY2 3110 NEXT I 3120 RETURN 8000 REM ПОДПРОГРАММА ВВОДА ТЕСТОВЫХ ДАННЫХ 8005 INDUK-1 8010 INDPR-2 8015 N-23 8020 NR-44 8030 FOR 1-1 TO N 8040 READ X(I),Yd) 8050 NEXT I 8060 Y1-(YD)-YA))/(XD)-XA)) 8070 YN-(Y(N)-Y(N-2))/(X(N)-X(N-2)) 8080 DATA 0,426 8090 DATA 0.5,425 8100 DATA 1,424 8110 DATA 1.5 422.6 8120 DATA 2,414.3 8130 DATA 2.5,403.2 186
8140 DATA 3,407.8 «150 DATA 3.5,411 8160 DATA 4,408.7 •170 DATA 4.5,409.6 Я180 DATA 5,415 8190 DATA 5.5,412.4 8200 DATA 6,411 8210 DATA 6.5,411.5 8220 DATA 7,409.6 8230 DATA 7.5,406.4 8240 DATA 8,393 8250 DATA 8.5,397 $260 DATA 9,419 8270 DATA 9.5,430 8280 DATA 10,421.7 8290 DATA 10.5,415 8300 DATA 11,414 8310 RETURN 9000 REM "GR9000": ПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА ФУНКЦИИ 9010 PRINT H ".PRINT " ГРАФИК КУБИЧЕСКОГО СПЛАЙН A": PRINT " " 9020 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X:NXD-";NXD 9030 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y:NYD-";NYD 9050 NY-NYD+1 9060 CLS:SCREEN 2:DY-(YMAX-YMIN)/NYD:FOR I-l ТО NY:Y-20H 60/NYD* (I-1) 9070 LINEG4,Y)-E74,Y):NEXT I:NX-NXD+1 9080 FOR I-l TONX:X-84+480/NXD*(I-l):LINE (X,12)-(X,188):NEXTI 9090 R-23 9100 FORK-OTONYD 9110 LOCATE R 1 9120 SY-YMIN+DY*K:PRINT USING "#.###";SY 9130 R-R-20/NYD 9135 NEXT К 9140 C-7:DX-(XMAX-XMIN)/NXD 9150 FOR K-0 TO NXD.KEY OFF:LOCATE 24,C 9160 SX-XMIN+DX*K 9170 PRINT USING "####.##";SX; 9180 C-C+60/(NXEH0> 9185 NEXT К 9310 XA-E64-84) / (XMAX-XMIN) :YA-( 180-20) / (YMAX-YMIN) 9320 FOR IX-84 TO 564:XU-XMIN+(IX-84)/480* (XMAX-XMIN) 9330 GOSUB 2000 9340 IY-180-(YU-YMIN)*YA 9350 IF IY<20 OR IY>180 THEN 9370 9360 IF IX-84 THEN PSET (IX,IY) 9365 UNE-(IX,IY) ^370 NEXT IX 9380 FOR I-l TO N 9390 YG-180-(Y(I)-YMIN)*YA 9400 IF YG<20 OR YG>180 GOTO 9440 9410 XG-480*(X(I)-XMIN)/(XMAX-XMIN)+84 9420 PSET (XG,YG) 9430 DRAW "E2G4E2H2F4H2E2D4L4U4R4G2f 9440 NEXT I 9450 RETURN 9500 REM "GRAF9500" 9010 XS-(XMIN+XMAX)/2 ¥520 YS-(YMIN+YMAX)/2 187
9540 SCREEN 2:CLS:KEY OFF 9550 VX-XMAX-XMIN:DX-400/VX:VY-YMAX-YMIN:DY-120/VY 9560 FOR IX-40 TO 440 9570 XU-XMIN+(IX-40)/400*VX 9580 GOSUB2000 9590 IY-125-(YU-YMIN)*DY 9595 IF IY<5 OR IY>125 GOTO 9620 9600 IF IX-40 THEN PSET (IX,IY):GOTO 9620 9610 LINE -<IX,IY) 9620 NEXT IX 9630 FOR IE-1 TO N 9640 YE-125-(Y(IE)-YMIN)*DY 9650 IFYE<5ORYE>125GOTO9740 9660 XE-400*(X(IE)-XMIN)/VX+40 9670 PSET (XE YE) 9680 ON MARKER GOTO 9690,9700,9710,9720,9730 9690 DRAW "U2D4U2L4R8L4":GOTO 9740 9700 DRAW "E2L4F4L4E3":GOTO 9740 9710 DRAW "E2D4H4D4E2L4R8L4":GOTO 9740 9720 DRAW "E2G4E2H2F4H2L4R8L4":GOTO 9740 9730 DRAW "U2G3R6H3D2" 9740 NEXT IE 9750 LINE D0,5)-D40,5) 9760 LINE D0,125)-D40,125) 9770 LINE D0,5)-D0,125) 9780 LINE D40,5)-D40,125) 9790 FOR Y-5 TO 125 STEP 12 9800 LINE D0,Y)-D3,Y) 9810 LINE D40,Y)-D37,Y) 9820 NEXTY 9830 LOCATE 1,2:PRINT YMAX 9840 LOCATE 9.2:PRINTYS 9850 LOCATE 16,2:PRINT YMIN 9860 FOR X-79 TO 440 STEP 40 9870 LINE (X,125)-(X,122) 9880 LINE (X+l, 125)-(X+l, 122) 9890 LINE (X,5)-(X,8) 9900 LINE (X+l,5)-(X+l,8) 9910 NEXTX 9920 LOCATE 17,4:PRINTXMIN 9930 LOCATE 17,29:PRINTXS 9940 LOCATE 17,54:PRINTXMAX 9950 A$-INPUT$A) 9960 END 10000 REM "GR10000" :ПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА ФУНКЦИИ 10010 PRINT " ":PRINT " ГРАФИЧЕСКОЕ ИЗОБРАЖЕНИЕ РЕЗУЛЬТАТОВ AnnPOKCHMAUHH":PRINT " " 10020 INPUT ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X:NXD-";NXD 10030 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y:NYD-";NYD 10040 NY-NYD+1 10050 CLS:SCREEN 2:DY-(YMAX-YMIN)/NYD:FOR 1-1 TO NY:Y-20+160/NYD*(I-l) 10060 LINEG6,Y)-(90,Y) :NEXT I:NX-NXD+1 10070 FORI-l TONX:X-84+480/NXD*(I-l):LINE (X,176)-(X,184):NEXTI 10080 LINE (84,12)-(84,188):LINE (84,180)-E68,180) 10090 R-23 10100 FORK-OTONYD 188
10110 LOCATE R,3 10120 SY-YMIN+DY*K:PRINT USING "#.##";SY 10130 R-R-20/NYD 10140 NEXT К 10150 C-7:DX-(XMAX-XMIN)/NXD 10160 FOR K-0 TO NXD:KEY OFF:LOCATE 24,C 10170 SX-XMIN+DX*K 10180 PRINT USING "####.##M;SX; 10190 C-C+60/(NXD+0) 10200 NEXT К 10210 VX-XMAX-XMIN: VY-YMAX-YMIN:XA-480/VX:YA-l 60/VY 10230 FOR IX-84 TO 564:XU-XMIN+(IX-84)/480*VX 10240 GOSUB 2000 10250 IY-180-(YU-YMIN)*YA 10260 IF IY<20 OR IY> 180 THEN 10290 10270 IF IX-84 THEN PSET (IX,IY) 10280 LINE-(IXJY) 10290 NEXT IX 10300 FOR IE-1 TO N 10310 YE-180-(Y<IE)-YMIN)*YA 10320 IF YE<20 OR YE>1180 GOTO 10410 10330 XE-480*(X(IE)-XMIN)/VX+84 10340 PSET (XE YE) 10350 ON MARKER GOTO 10360,10370,10380,10390,10400 10360 DRAW "U2D4U2L4R8L4":GOTO 10410 10370 DRAW "E2L4F4L4E3":GOTO 10410 10380 DRAW "E2D4H4D4E2L4R8L4 ":GOTO 10410 10390 DRAW "E2G4E2H2F4H2L4R8L4":GOTO 10410 10400 DRAW "U2G3R6H3D2" 10410 NEXT IE 10420 RETURN RUN НОМЕР ЗНАЧЕНИЕ ЗНАЧЕНИЕ ТОЧКИ АРГУМЕНТА ФУНКЦИИ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 0 .5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8 8.5 9 9.5 10 426 425 424 422.6 414.3 403.2 407.8 411 408.7 409.6 415 412.4 411 411.5 409.6 406.4 393 397 419 430 421.7 ЗНАЧЕНИЕ МОДЕЛИ 426 425 424 422.6 414.3 403.2 407.8 411 408.7 409.6 415 412.4 411 411.5 409.6 406.4 393 397 419 430 421.7 КОЭФ. СПЛАЙНА -2.266663 -2.164004 -1.077323 -7.926668 -25.41608 -6.808982 13.65201 -.9991162 -4.255395 9.620731 3.572394 -7.110381 .8691304 -1.766104 -2.204677 -20.01523 -17.33445 32.95308 41.52214 -1.041626 -21.15556 189
22 23 10.5 11 415 414 415 414 -4.336125 -7.700012 НОМЕР ТОЧКИ ЗНАЧЕНИЕ АРГУМЕНТА ЗНАЧЕНИЕ МОДЕЛИ ЗНАЧЕНИЕ 1-ОЙ ПР. ЗНАЧЕНИЕ 2-ОЙ ПР. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 0 .25 .5 .75 1 1.25 1.5 1.75 2. 2.25 2.5 2.75 3 3.25 3.5 3.75 4 4.25 4.5 4.75 5 5.25 5.5 5.75 6 6.25 6.5 6.75 7 7.25 7.5 7.75 8 8.25 8.5 8.75 9 9.25 9.5 9.75 10 10.25 10.5 10.75 426 425.4936 425 424.4321 424 423.7281 422.6 419.5431 414.3 407..587 403.2 404.2212 407.8 410.3157 411 410.0535 408.7 408.2828 409.6 412.6781 415 414.3677 412.4 411.2013 411 411.4147 411.5 410.5774 409.6 409.1132 406.4 399.5325 393 391.857 397 407.4644 419 427.1602 430 427.1071 421.7 417.2988 415 414.7102 6.389352 -.2693308 -4.328007 -1.381676 -2.154646 3996017 -15.85344 2.49769 -50.83216 -20.13693 -13.61796 1.850167 27.30401 7.186152 -1.998233 -2.39479 -8.510789 -5.856901 19.24146 10.2224 7.144788 -1.582736 -14.22076 -3.291517 1.738261 3.048822 -3.532209 -3.053779 -4.409353 10.96636 -40.03045 -17.86172 -34.66891 -16.61946 65.90615 16.23959 83.04428 23.66109 -2.083251 -3.483996 -42.31113 -10.47502 -8.67225 5.784044 2.789314 .205318 -2.378679 2.173361 6.725401 -13.69869 -34.12278 -34.97882 -35.83486 37.2142 110.2633 40.92198 -28.4193 -29.30224 -30.1852 6.512557 17.16009 27.75225 38.34442 -12.09668 -62.53778 -21.36555 19.80667 15.95902 12.11137 -5.27047 -22.65231 -.8771441 20.89803 -35.6211 -92.14023 5.361546 102.8633 100.5751 98.28679 17.13812 -64.01062 -85.12752 -106.2445 -40.22787 25.78871 33.63888 41.48905 -6.727775 ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. АРГУМЕНТА XMIN,XMAX? О, И ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. ФУНКЦИИ YMIN,YMAX? 380,440 Выше в этой главе мы рассмотрели методы сплайн-аппроксимз* ции, которые позволяют решать задачу численного дифферендир0* вания функций, заданных экспериментальными данными» 190
ддоритмы аппроксимации функций кубическими сплайнами можно -рюльзовать также для численного интегрирования. Предположим, известны значения функции у = Дх) в узлах некоторой сетки, отрезка [хм, ху] УМ "*~ У/l. = ry 'Ау , / = 2,..., N, B.4.15) а интеграл вычисляется по формуле /=/ $ В самом деле щ xi + ЗУ . _ Км + Kj з 24 Лу B.4.16) к_ (*!-*? + к. 6ЛУ (дсу-хL Лх-xy-iL (ху - хJ / KMhj "Км 24ЛУ + К* 24Лу " 2АУ Vм " 6 (-%• -у \ V U ^ ' V /v, i-i 2Ау Vй 6 *у-1 24 Тоща если функция у = Дх) аппроксимируется сплайном у = то ь ь f f(x)dx ** f <p(x)dx = « a Если N Ум + *±±±Jku* 24 у B.4.17) сплайн задан с помощью наклонов, то f f(x)dx ~ f <p(x)dx = /'==2 - Щ B.4Л8) v-ледует отметить, что при приближенном дифференцированиифунк- |** с помощью сплайнов ошибка равна О(А3), а при интегрировании имеет порядок О(Л4), где А = max Ay, ; = 2,..., JV . При решении практических задач значение интеграла от функ- заданной экспериментальными данными, можно вычислить с программы SPL05W01. Ниже представлен листинг этой , в которой подпрограммой с операторами 3000—3020 оп- a тестовая функция 191
у = х + cosx - 0.5 cos2x , xG [О,тг]. B.4.19) 10 REM"SPL05W01" 20 REM************************************************************* 30 REM*** ПРОГРАММА ЧИСЛЕННОГО ИНТЕГРИРОВАНИЯ ФУНКЦИИ,ЗАДАННОЙ 40 REM*** ЗНАЧЕНИЯМИ Y(J) В ТОЧКАХ X(J),J-1,...,N, С ПОМОЩЬЮ 50 REM*** КУБИЧЕСКОГО ИНТЕРПОЛЯЦИОННОГО СПЛАЙНА 60 REM************************************************************* 70 REM ВВОД НАЧАЛЬНЫХ ДАННЫХ ОСУЩЕСТВЛЯЕТСЯ В ПОДПРОГРАММЕ 80 REM ПЕРВЫЙ ОПЕРАТОР КОТОРОЙ ИМЕЕТ НОМЕР 4000 90 DIMXA00),YA00),CA00),ZA00),PA00) ПО GOSUB4000 130 Y1-(YB)-YA))/(XB)-X(D) 140 YN-(Y(N)-Y(N-1))/(X(N)-X(N-D) 150 GOSUB 1000 160 GOSUB 1500 200 END 1000 REM ПОДПЮГРАММА ВЫЧИСЛЕНИЯ КОЭФФИЦИЕНТОВ КУБИЧЕСКОГО 1010 REM СПЛАЙНА,ЗАДАННОГО С ПОМОЩЬЮ МОМЕНТОВ 1020 N1-N-1 1030 РA)-2 1040 Н2-ХB)-ХA) 1050 Н3-ХC)-ХA) 1060 РB)-2-Н2/НЗ/2 1070 Y2«YB)-YA) 1080 Z(l)-6/H2*(Y2/H2-Yl) 1090 ZB)-(YC)-YB))/(XC)-XB))-Y2/H2 1100 ZB)-6*ZB)/H3 1110 FOR 1-3 TO N1 1120 Hl-X(I)-Xd-l) ИЗО HI1-X(I+1)-X(I-1) 1140 P (D-2-HI/ (X (I) -X A-2)) *HI/HI 1 /P (I-1) 1150 Z(I)-(Y(I+1)-Y(I))/(X(I+1)-X(D) 1160 Z(I)-Z(I)-(Y(I)-Y(I-1))/HI1 1170 Z(I)-6*Z(I)/HI1 1180 NEXT I 1190 HN-X(N)-X(N-1) 1200 P(N)-2-HN/(X(N)-X(N-2))/P(N-l) 1210 Z(N)-YN-(Y(N)-Y(N-1))/HN 1220 Z(N)HS/HN*Z(N)-Z(N-1)/P(N-1) 1230 C(N)-Z(N)/P(N) 1240 FOR I-N-l TO 1 STEP -1 1250 C(I)-(Z(I)-(X(R1)-X(I))/(X(R1)-X(I-1))*C(M))/P(I) 1260 NEXT I 1270 RETURN 1500 REM ПОДПРОГРАММА ЧИСЛЕННОГО ИНТЕГРИРОВАНИЯ ФУНКЦИИ 1510 REM С ПОМОЩЬЮ КУБИЧЕСКОГО СПЛАЙНА 1550 S-0 1560 FOR 1-2TON 1570 Hl-X(I)-Xd-l) 1580 S-S4-HI*(Y(I-1L-Y(I)-HI*HI*(C(I-1)-K:(I))/12) 1590 NEXT I 1600 S-S/2 1610 PRINT "ЗНАЧЕНИЕ ИНТЕГРАЛА S-";S 1620 RETURN 3000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ 92
ИНТЕГРИРУЕМОЙ ФУНКЦИИ ЗОЮ YU-XU+COS(XU)-.5*COSB*XU) 3020 RETURN 4000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ ФУНКЦИИ 4010 REM НА РАВНОМЕРНОЙ СЕТКЕ (ДЛЯ ТЕСТОВОЙ Ф-ИИ) 4020 Р1-ЗЛ415923# 4030 N-50 4040 H-PI/CN-1) 4050 FOR I-l TO N 4060 ХA)-(М)*Н 4070 XU-X(I):GOSUB3000:Y(I)-YU 4080 NEXTI 4090 RETURN RUN ЗНАЧЕНИЕ ИНТЕГРАЛА S- 4.931461 Аналогично для начальных данных, определенных подпрограммой 4000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ ФУНКЦИИ 4010 REM НА РАВНОМЕРНОЙ СЕТКЕ (ДЛЯ ТЕСТОВОЙ Ф-ИИ) 4020 Р1-3.1415923# 4030 N-100 4040 H-PI/(N-1) 4050 FOR 1-1 ТО N 4060 X(I)-(I-1)*H 4070 XU-X(I):GOSUB3000:Y(I)-YU 4080 NEXTI 4090 RETURN получим RUN ЗНАЧЕНИЕ ИНТЕГРАЛА S- 4.933012 Интеграл от функции B.4.19 ) на отрезке [0, ж] можно вычис- вычислить, используя элементарные правила интегрирования. При этом получим ж ж J f(x)dx = / [х + cos* - 0.5 cos2x ]dx = о о -1/4 sin2x = пг12 « 4.9348 . значение этого интеграла позволяет найти тривиальная про- REM ВЫЧИСЛЕНИЕ ЗНАЧЕНИЯ 20 PI-3.1415926 30 ST-PI~2/2 ft ?RINT "ТОЧНОЕ ЗНАЧЕНИЕ ИНТЕГРАЛА PI~2/2-";ST 50 END N ТОЧНОЕ ЗНАЧЕНИЕ ИНТЕГРАЛА Р1л2/2- 4.93480225 193
2.5. ПРИМЕНЕНИЕ СГЛАЖИВАЮЩИХ СПЛАЙНОВ ПРИ ОБРАБОТКЕ ЭКСПЕРИМЕНТАЛЬНЫХ ДАННЫХ Экспериментальные значения функциональных зависимостей между параметрами исследуемых в ходе испытаний технических си- систем обычно известны с некоторыми погрешностями. При аппрокси- аппроксимации функций такого типа интерполяционными сплайнами на графиках сплайнов могут наблюдаться значительные осцилляции обусловленные наличием случайных ошибок. Более гладкие аппрок- аппроксимирующие кривые позволяют получить сглаживающие сплайны, которые в отличие от интерполяционных сплайнов проходят вблизи значений функции [2,3,6-8,10-17]. Предполжим, что экспериментальные значения >>/, ;= 1,...,# функции у = f(x) известны с некоторыми погрешностями, причем точные значения функции f(xj) удовлетворяют ограничениям Л — /(лгу)| <<$, /= 1,..., N. B.5.1) Известно [2 ], что кубический сплайн имеет минимальную кривизну. Поэтому при построении сглаживающего сплайна <р(х) естественно потребовать, чтобы он минимизировал характеризующий кривизну интеграл ь Ф(<Р) = f[<p"(x)fdx -* min , B.5.2) а и при этом удовлетворялись условия |р(*/)-»| <<*. У= U...,N. B.5.3) Отсюда следует, что в такой общей постановке задача построения сглаживающего сплайна является задачей нелинейного программи- программирования. Некоторые численные методы решения задач нелинейного программирования будут рассмотрены в следующей главе. При решении задачи B.5.2)—B.5.3) возникает ряд трудностей. Одна из основных трудностей состоит в том, что численные методы оптимизации, с помощью которых осуществляется поиск минимума функции B.5.2), малоэффективны в областях типа E.2.3). Поэтому в некоторых случаях рассматривают задачу минимизации функции B.5.2) при ограничении £ lp(xj) - я? < CN62 , B.5.4) /«I где С > 0 — некоторое заданное число, например С = 2-*-3. Иногда параметр С задается в зависимости от величины доверительного уровня [4,7]. Например, если ошибки в экспериментальных данны* нормально распределены, ад2 — их дисперсия, то в качестве 194
нетр С целесообразно взять соответствующий квантиль нормально- ц> распределния [1]. В некоторых случаях при построении сглаживающих сплайнов вместо задачи B.5.2), B.5.4) рассматривается задача безусловной 11яяимизации функционала 3» I2 - CN& B.5.5) щ А > 0 — достаточно большое число, зависящее от физической сущности решаемой задачи [4-8,10-17]. Если <р(х) — кубический сплайн вида B.1,3), то N У-2 dx + + A i-l (x-xhly Xj—, hi H " 'б ') X - X;- Kjhj B.5.6) где К\,..., ^ — коэффициенты сглаживающего сплайна, z\,..., zN — сглаженные значения (которые как и коэффициенты сплайна необ- необходимо найти в результате минимизации функции 4х ). Выполнив преобразования, получим N У-2 1 Ay)у (zj - у/J - CN& У-1 B.5.7) Минимум этой функции можно найти с помощью одного из числен- численных методов оптимизации, рассмотренных в третьей главе. При фиксированных значениях А функция B.5.7) является квад- №тичной относительно неизвестных параметров. Поэтому в некото- некоторых случаях ее минимум определяется следующим образом. Выбирается несколько значений А и для каждого из них решается (в Данном случае линейная) нормальная система уравнений. После это- ?° в качестве коэффициентов Ху^пл^йна и сглаживающих значений выбирается набор параметров Ay, z-5 соответствующих значению А , вРи котором функция B.5.7) является минимальной. При больших N сглаживающий сплайн можно построить следую- Т1 образом. Отрезок [а,Ь] разбивается на интервалы точками ** » * = 1,..., m , таким образом, что а < х\ < х\ <...< х*т < Ъ , при- 7» 195
чем точки х* могут не совпадать ни с одной из точек ху, у = 1,.., Тогда неизвестные коэффициенты KJ сплайна, а также сглаженные значения г] определяются путем минимизации функции Ф(К\,..., ж ' zm, А) = 2^ J /=2 ♦ Ху—X A/ + 2 где + х - 6а; л; г 6 у — Ху — Xy-i , у — Zy...y ftl , + :1—х B.5.8) = 2,..., m, B.5.9) Коэффициенты AJ и значения z* сглаживающего сплайна можно также найти в результате решения задачи минимизации функции ,..., id, zi,..., z^) = 2 B.5.10) где /?/ — весовые коэффициенты. Если дисперсия ошибок в экспери- экспериментальных данных является постоянной, то весовые коэффициенты принимаются равными единице. Если эта дисперсия является пере- переменной величиной, зависящей от номера экспериментального значе- значения функции, то весовые коэффициенты выбираются равными величинам, обратным к величинам дисперсий. В случае, когда узлы ху распределены неравномерно на отрезке [а,А], чем чаще располо- расположены точки Ху, тем меньшими должны быть значения pjt Необходимое условие минимума функции B.5.10) имеет вид 0 , -— = 0, у = 1,..., т «N . dz B.5.П) В результате получим систему линейных уравнений = 0; x=xi у — 1,..., fti . B.5.12) 196
Эта система уравнений имеет очень сложную структуру, поэто- поэтому на практике при построении сглаживающих сплайнов использу- используйся следующий подход. Эффективные и, вместе с тем, легко реализуемые на ЭВМ сгла- сглаживающие сплайны возникают при минимизации функционала [5,10,11,13-15] Ь N Ф(*>) = / [*>"(*) fdx + 2 Pi' [Фд - У)? , B.5.13) ще <p(Xj) — значения сплайна в узлах ху-, р} > О — заданные весовые коэффициенты. Можно показать, что чем меньшим выбран коэффи- коэффициент ру, teM ближе проходит функция <р(х) к экспериментальному значению у. Если для некоторого номера у коэффициент р} = 0, то ffxj) — Уу, т-е. в точке Ху значение сглаживающего сплайна совпа- совпадает со значением функции в этой точке [4,10,11 ]. Пусть К} = <p"(Xj), у = 1,..., п. Тогда коэффицеинты сглаживаю- сглаживающего сплайна можно найти путем решения системы линейных алгеб- алгебраических уравнений + ЬхК2 + ахКъ = dx , ЬхКх + СгКг + ЬгКъ + а2КА = d2 , i = 3,..., 7V^—2 , Q.N-2K.N-2 + bfj-xKN-i + CtfK/v = Av. B.5.14) Коэффициенты этой системы определяются по формулам 1 . 1 . 1 "~ ^,..*, /V*— 1 , 1 B.5.15) 1 i + 1 Л,+2 « = 2,..., ЛГ-2 , А, I — Z,*.., /V L , i+2 B.5.16) B.5 Л 7) а пРавые части системы B.5.18) 197
где hj = xj - xj-i , j = 2,..., N. Если сглаживающий сплайн является естественным (т.е = KN = 0), то краевые условия имеют вид с\ = cN = 1 , *i = а\ = Ялг-2 = bN-\ = rfi = At = 0 . B.5.19) Для сплайна, заданного краевыми условиями коэффициенты первого и последнего уравнений системы B.5.14) имеют вид р2 " А2 Аз ' j(pN\ Я^) , dN (улгт) , B.5.22) hN \ п / ( I . I \ 1 /1Слл. + \pN-i ~-1ТР"> B.5.23) = — - JL 6 hN = hpNhl . B.5.24) Коэффициенты периодического сглаживающего сплайна можно найти путем решения системы уравнений i= 1,2,..., Л^, B.5.25) для которой при всех / коэффициенты системы вычисляются по формулам B.5.15) — B.5.18), а величины с индексами / и N+i по предположению равны между собой, т.е. d\ = cin+i, K\ = Кц+1, Ai = Ллг+i и т.д. Матрица системы B.5.14) является положительно определенной, поэтому данная система уравнений имеет единственное решение. Отсюда следует, что сглаживающий сплайн является единственным. Решение системы с пятидиагональной матрицей можно найти с тю- мошью метода факторизации [10,11]. После вычисления коэффициентов К( сглаживающего сплайна значения определяются по формулам Zi = у< - piDt, i = 1,..., #, B.5.26) где 198
B.5.27) Рассмотренный алгоритм построения сглаживающего сплайна реализован в программе SPL06W01. В этой программе предполагает- предполагается, что весовые коэффициенты pj выбраны некоторым образом из физических соображений. Вариант, при котором все весовые коэф- коэффициент** равны между собой, задан оператором цикла 170—190. Ниже представлены листинг программы SPL06W01, а также резуль- результаты ее выполнения на ПЭВМ при обработке зависимости / = v@ частоты тока в СЭС самолета от времени. Графики сглаживающих сплайнов, полученных при различных значениях ру = р, показаны на рис.2.21—2.24. 10 REM "SPL06W0r 20 REM****************************************************************** 30 REM ПРОГРАММА АППРОКСИМАЦИИ ФУНКЦИИ ОДНОЙ 35 REM ПЕРЕМЕННОЙ,ЗАДАННОЙ ЗНАЧЕНИЯМИ 40 REM Y(J) В ТОЧКАХ X(J),J-1,...,N, С ПОМОЩЬЮ КУБИЧЕСКОГО 45 REM СГЛАЖИВАЮЩЕГО 50 REM СПЛАЙНА У-8(Х),А<-Х<-В;СПЛАЙН ОПРЕДЕЛЕН ЧЕРЕЗ 55 REM МОМЕНТЫ A(J)-S"(X(J)) 60 REM****************************************************************** 70 REM ВВОД НАЧАЛЬНЫХ ДАННЫХ ОСУЩЕСТВЛЯЕТСЯ В 75 REM ПОДПРОГРАММЕ,ПЕРВЫЙ 80. REM OPEPATOP КОТОРОЙ ИМЕЕТ НОМЕР 8000 90 DIMXA00),YA00),ROA00),CMA00),PA00),QA00),XRD80),YRD80) 110 DIMAA00),BA00),CA00),DA00),EA00),FA00),HA00),DELA00) 115 DIMA0A00),AH100),A2A00),A3A00),YMA00),YRlA00),YR2A00) 120 REMDEFDBLX,Y,A,B,C,D,E,F,P,Q 130 GOSUB 8000 170 FORЫ TON 180 RO(I)-PG 190 NEXT I 200 GOSUB 5000 210 PRINT "НОМЕР ТОЧКИ ЗНАЧ.АРГУМ. ЗНАЧЕН.Ф-ИИ ЗНАЧ.МОДЕЛИ КОЭФ.СПЛАЙНА" 220 PRINT"-———————- -—— --—„—————" 230 FOR I-l TO N 240 PRINTI,X(I),Y(D,YM(I),CM(I) 250 NEXT I 260 PRINT" ~———————————~— ——-—--—" 890 GOSUB 3000 900 IF INDPR-0 GOTO 980 910 PRINT'HOMEP ТОЧКИ ЗНАЧ.АРГУМ. ЗНАЧ.МОДЕЛИ ЗН.1-ЙПР. ЗН.2-Й ПРОИЗВ." 920 PRINT"—- —- - - 930 FOR I-l TO NR 199
940 PRINTI,XR(I),YR(I),YR1(I),YR2(I) 950 NEXT I 960 PRINT" 970 GOTO 1040 980 PRINT "НОМЕР ТОЧКИ ЗНАЧ.АРГУМ. ЗНАЧ.МОДЕЛИ" 990 PRINT н н 1000 FOR I-l TO NR 1010 PRINT I,XR(I),YR(I) 1020 NEXT I 1030 PRINT H H 1040 INPUT "ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. АРГУМЕНТА XMIN,XMAXH;XMIN,XMAX 1050 INPUT "ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. ФУНКЦИИ YMIN,YMAX";YMIN,YMAX 1140 REM GOSUB 9000 1150 MARKER-2:GOSUB 9500 1160 MARKER-3:GOSUB 10000 1200 END 2000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ СПЛАЙ 2010 Jl-liJN-N 2020 IFJN<-J1+1 GOTO 2080 2030 J-INT((Jl+JN)/2) 2040 IFXU-X(J) GOTO 2090 2050 IF XU>X(J) GOTO 2070 2060 JN-J:GOTO 2020 2070 J1-J:GOTO 2020 2080 J-JN 2090 HJ-X(J)-X(J-1) 2100 T-<XU-X(J-D) 2110 YU-T*(T*(A0(J)*T+Al (J))+A2(J))+A3(J) 2140 IF INDPR-0 GOTO 2160 2150 GOSUB 2200 2160 RETURN 2200 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ 1 -Й И 2-Й ПРОИЗВОДНОЙ СПЛАЙНА 2210 IFINDPR>1 GOTO 2240 2215 INDPR-1 2220 PY1-(T*C*AO(J)*T+2*A1 (J)))+A2(J) 2230 GOTO 2270 2240 INDPR-2 2250 PY1-(T*C*AO(J)*T+2*A1 (J)))+A2(J) 2260 PY2-6*A0(J)*T+2*AHJ) 2270 RETURN 2500 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ СПЛАЙ В УЗЛАХ СЕТКИ 2510 FOR I-l TON 2520 XU-X(I) 2530 GOSUB 2000 2540 YM(I)-YU 2550 NEXT I 2560 RETURN 3000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ ИНТЕРПОЛЯЦИОННОГО СПЛАЙНА ЗОЮ REM И ЕГО ДВУХ ПРОИЗВОДНЫХ НА РАВНОМЕРНОЙ 3030 HR-(X(N)-XA))/(NR-1) 3040 FOR I-l TO NR
3050 3055 NEXT I 3060 FOR 1-1 TO NR 3065 XU-XR(I) 3070 GOSUB 2000 3080 YR(I)-YU 3090 IF INDPR-0 GOTO 3120 3100 YR1 (D-PY1 3110 YR2(I)-PY2 3120 NEXT I 3130 RETURN 5000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ КОЭФФИЦИЕНТОВ СГЛАЖИВАЮЩЕГО СПЛАЙНА 5020 Н1-ХB)-ХA) 5030 Н2-ХC)-Х<2) 5040 Nl-N-l:N2-N-2 5050 HN1-X(N)-X(N1) 5060 HN2-X(N1)-X(N2) 5070 C(l)-HJ/3+l/Hl'v2*(RO(l)+ROB)) 5080 //// 5090 EA)-ROB)/(H1*H2) 5100 BB)-D(l) 5110 AC)-E(l) 5120 A(N)-*O(N1)/(HN1*HN2) 5130 B(N)-HNl/6-l/HNl*(l/HNH-l/HN2)*RO(Nl)-RO(N)/HN1^2 5140 / 5150 D(N1)-B(N) 5160 E(N2)-A(N) 5170 FA)-(YB)-YA))/H1-Y1 5180 F(N)-YN-(Y(N)-Y(N1))/HN1 5190 FOR 1-2 TO N1 5200 II-M 5210 Il-I+l 5220 HII-X(I)-X(II) 5230 HI-X(I1)-X(I) 5240 a) 5250 NEXT I 5260 FOR 1-2 TO N2 5270 II-M 5280 Il-I+l 5290 IM+2 5300 HII-X(I)-X(II) 5310 Hi-xai)-x(i) 5320 HI1-X(I2)-X(I1) 5330 D(I)-HI/6-l/HI* 5340 B(I1)-D(I) 5350 NEXT I 5360 N3-N-3 5370 FOR 1-2 TO N3 5380 Il-I+l 5390 I2-I+2 5400 HI-X(I1)-X(I):HI1-X(I2)-XA1) 5410 E(I)-RO(I1)/(HI*HI1) 5420 A(I2)-E(I) 5430 NEXT I 5440 FOR 1-2 TO N1 201
5450 II-I-l 5460 Il-I+l 5470 I2-I+2 5480 HII-X(I)-XUI) 5490 Hl-Xdl)-X(I) 5500 СA) 5510 NEXT I 5520 GOSUB 6000 'РЕШЕНИЕ СИСТЕМЫ УРАВНЕНИЙ 5530 FOR 1-2 TO N1 5540 IM-1 5550 Il-I+l 5560 HII-X(I)-X<H) 5570 HI-X(Il)-XU) 5580 YM( 5590 NEXT I 5600 YMA)-YA)-ROA)*(CMB)-CMA))/H1 5610 YM(N)-Y(N)+RO(N)*(CM(N)-CM<N1))/HN1 5620 FOR 1-2 TO N 5630 HI-X<I)-X(I-1) 5640 A0(I)-(CM(I)-CM(I-l))/F*HI) 5650 Al(I)-CM(M)/2 5660 A2(I)-(YM(I)-YM(M))/HI-B*CM(MLCM(I))*HI/6 5670 A3(I)-YM(I-1) 5680 NEXT I 5700 RETURN 6000 REM ПОДПРОГРАММА РЕШЕНИЯ СИСТЕМЫ ЛИНЕЙНЫХ УРАВНЕНИЙ 6010 REM С ПЯТИДИАГОНАЛЬНОЙ МАТРИЦЕЙ 6020 P(l)--D(l)/C(l) 6030 Q(l)—E(l)/C(l) 6040 CMU)-FA)/CU) 6050 CP-CB)+BB)*PU) 6060 PB)--(D<2)+BB)*QA))/CP 6070 QB)-EB)/CP 6080 CMB)-(FB)-BB)*CMA))/CP 6090 Nl-N-1 6100 E(N1)-O 6110 D(N)-0 6120 E(N)-0 6130 FORK-3TON 6140 Kl-K-1 6150 K2-K-2 6160 CB-A(K)*P(K2)+B(K) 6170 CK4:<K)+CB*P(K1)+A(K)*Q(K2) 6180 POO— (D(KLCB*Q(K1))/CK 6190 Q(K)--E(K)/CK 6200 CM(K)-<F(K)-CB*CM(K1)-A(K)*CM(K2))/CK 6210 NEXT К 6220 Nl-N-1 6230 CM(N1)-P(N1)*CM(N)+CM(N1) 6240 FOR 1-3 TO N 6250 K-N-I+l 6260 Kl-K+1 6270 K2-K+2 6280 CM(K)-P(K)*CM(K1)-K}(K)*CM(K2)+CM(K) 6290 NEXT I 6300 RETURN 02
REM ПОДПРОГРАММА ВВОДА ТЕСТОВЫХ ДАННЫХ INDUK-1 .INDPR-2 N-23 iO2O NR-2*(N-1)+1 «025 INPUT "ВВЕДИТЕ ЗНАЧЕНИЕ ПАРАМЕТРА СГЛАЖИВАНИЯ PG",PG Jo3O FOR W TO N gO4O READ X(I),Yd) ^050 NEXT I gO6O Y1(Y( 8070 YN- g080 DATA 0,426 8090 DATA 0.5,425 8100 DATA 1,424 8110 DATA 1.5,422.6 8120 DATA 2,414.3 8130 DATA 2.5,403.2 8140 DATA 3,407.8 8150 DATA 3.5,411 8160 DATA 4,408.7 8170 DATA 4.5,409.6 8180 DATA 5,415 8190 DATA 5.5,412.4 8200 DATA 6,411 8210 DATA 6.5,411.5 8220 DATA 7,409.6 8230 DATA 7.5,406.4 8240 DATA 8,393 8250 DATA 8.5,397 8260 DATA 9,419 8270 DATA 9.5,430 8280 DATA 10,421.7 8290 DATA 10.5,415 8300 DATA 11,414 8310 RETURN 9000 REM "GR9000": ПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА ФУНКЦИИ 9010 PRINT " ":PRINT и ГРАФИК КУБИЧЕСКОГО СГЛАЖИВАЮЩЕГО 9020 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X:NXD-";NXD 9030 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y:NYD-";NYD 9050 NY-NYD+1 9060 CLS.SCREEN 2:DY-(YMAX-YMIN)/NYD:FOR I-l ТО NY:Y-2OH6O/NYD*(I-1) 9070 LINE G4,Y)-E74,Y) :NEXT I:NX-NXEH-1 9080 FOR I-l TONX:X-84+480/NXD*(I-l):LINE (X,12)-(X,188):NEXTI 9090 R-23 9100 FORK-OTONYD 9110 LOCATE R,l 9120 SY-YMIN+DY*K:PRINT USING "#.###";SY 9130 R-R-20/NYD 9135 NEXT К 9140 C-7:DX-(XMAX-XMIN)/NXD 9150 FOR K-0 TO NXD.KEY OFF.LOCATE 24,C 9160 SX-XMIN+DX*K 9170 PRINT USING "####.##",SX; 9180 C4:+60/(NXEHO) 9* NEXT К 203
9310 XA-E64-84)/(XMAX-XMIN):YA-A80-20)/(YMAX-YMIN) 9320 FOR IX-84 TO 564:XU-XMIN+(IX-84)/480*(XMAX-XMIN) 9330 GOSUB 2000 9340 IY-180-(YU-YMIN)*YA 9350 IF IY<20 OR IY>180 THEN 9370 9360 IF IX-84 THEN PSET (IX,IY) 9365 LINE-(IXJY) 9370 NEXT IX 9380 FOR 1-1 TO N 9390 YO180-(Y(I)-YMIN)*YA 9400 IF YG<20 OR YG>180 GOTO 9440 9410 XG-480* (X (I) -XMIN) / (XMAX-XMINH84 9420 PSET (XG.YG) 9430 DRAW "E2G4E2H2F4H2E2D4L4U4R4G2" 9440 NEXT I 9450 RETURN 9500 REM "GRAF9500" 9510 XS-(XMIN+XMAX)/2 9520 YS-(YMIN+YMAX)/2 9530 MARKER-5 9540 SCREEN 2:CLS:KEY OFF 9550 VX-XMAX-XMIN.DX-400/VX:VY-YMAX-YMIN:DY-120/VY 9560 FOR IX-40 TO 440 9570 XU~XMIN+(IX-40)/400*VX 9580 GOSUB 2000 9590 IY-125-(YU-YMIN)*DY 9595 IF IY<5 OR IY>125 GOTO 9620 9600 IF IX-40 THEN PSET (IX,IY) :GOTO 9620 9610 LINE-(IX,IY) 9620 NEXT IX 9630 FOR IE-1 TO N 9640 YE-125-(Y(IE)-YMIN)*DY 9650 IF YE<5 OR YE>125 GOTO 9740 9660 XE-400*(X(IE)-XMIN)/VX+40 9670 PSET (XE,YE) 9680 ON MARKER GOTO 9690,9700,9710,9720,9730 9690 DRAW "U2D4U2L4R8L4":GOTO 9740 9700 DRAW "E2L4F4L4E3 ":GOTO 9740 9710 DRAW "E2D4H4D4E2L4R8L4":GOTO 9740 9720 DRAW "E2G4E2H2F4H2L4R8L4":GOTO 9740 9730 DRAW "U2G3R6H3D2" 9740 NEXT IE 9750 LINE D0,5)-D40,5) 9760 LINE D0,125) D40,125) 9770 LINE D0,5)-D0Л 25) 9780 LINE D40,5)-D40,125) 9790 FOR Y-5 TO 125 STEP 12 9800 LINE D0,Y)-D3,Y) 9810 LINE D40,Y)-D37,Y) 9820 NEXTY 9830 LOCATE 1,2:PRINT YMAX 9840 LOCATE 9.2.PRINTYS 9850 LOCATE 16,2:PRINT YMIN 9860 FOR X-79 TO 440 STEP 40 9870 LINE (X,125)-(X,122) 9880 LINE (X+1,125)-(X+1,122) 204
* 0&9O UNE (X,5)-(X,8) 9900 LINE (X+l ,5MX+1 ,8) 9910 NEXTX 9920 LOCATE 17,4.PRINTXMIN 9930 LOCATE 17,29:PRINTXS 9940 LOCATE 17,54.PRINTXMAX 9950 A$-INPUT$A) 9960 END 10000 REM "GR10000" .ПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА \ ФУНКЦИИ 10010 PRINT H H:PRINT н ГРАФИЧЕСКОЕ ИЗОБРАЖЕНИЕ РЕЗУЛЬТАТОВ AnnPOKCHMAUHHH:PRINT н н 10020 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X:NXD-";NXD lb030 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y.NYD-";NYD 10040 NY-NYD+1 10050 CLS:SCREEN 2:DY-(YMAX-YMIN)/NYD:FOR 1-1 ТО NY:Y-2Of 160/NYD* (I-1) 10060 LINEG6,Y)-(90,Y):NEXTI:NX-NXEH-l 10070 FORI-1 TONX:X-84+480/NXD*(I-l):LINE (X,176)-(X,184):NEXTI 10080 LINE (84,12)-(84,188):LINE (84,180)-E68,180) 10090 R-23 1Q100 FORK-0TONYD 10110 LOCATE R 3 10120 SY-YMIN+DY*K:PRINT USING "#.##";SY 10130 R-R-20/NYD 10140 NEXT К 10150 C-7:DX-(XMAX-XMIN)/NXD 10160 FOR K-0 TO NXD.KEY OFF.LOCATE 24,C 10170 SX-XMIN+DX*K 10180 PRINT USING "####.##H;SX; 10190 C4T+60/(NXD40) 10200 NEXT К 10210 VX-XMAX-XMIN:VY-YMAX-YMIN:XA-480/VX:YA-l 60/YY 10230 FOR IX~84TO 564:XU-XMIN+(IX~84)/480*VX 10240 GOSUB2000 10250 IY-180-(YU-YMIN)*YA 10260 IF IY<20 OR IY>180 THEN 10290 10270 IF IX-84 THEN PSET (IX,IY) 10280 LINE-(IX,IY) 10290 NEXT IX 10300 FORIE-1TON 10310 YE-180-(Y(IE)-YMIN)*YA 10320 IF YE<20 OR YE>1180 GOTO 10410 10330 XE-480*(X(IE)-XMIN)/VX+84 10340 PSET (XE,YE) 10350 ON MARKER GOTO 10360,10370,10380,10390,10400 10360 DRAWffU2D4U2L4R8L4":GOTO 10410 10370 DRAWfE2L4F4L4E3":GOTO 10410 10380 DRAW "E2D4H4D4E2L4R8L4":GOTO 10410 10390 DRAW "E2G4E2H2F4H2L4R8L4":GOTO 10410 10400 DRAW "U2G3R6H3D2" 10410 NEXT IE 10420 RETURN RUN ВВЕДИТЕ ЗНАЧЕНИЕ ПАРАМЕТРА СГЛАЖИВАНИЯ PG? 0.005 20
НОМЕР ТОЧКИ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 НОМЕР ТОЧКИ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 ЗНАЧЕНИЕ АРГУМЕНТА 0 .5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8 8.5 9 9.5 10 10.5 11 ЗНАЧЕНИЕ АРГУМЕНТА 0 .25 .5 .75 1 1.25 1.5 1.75 2 2.25 2.5 2.75 3 3.25 3.5 3.75 4 4.25 4.5 4.75 5 5.25 5.5 5.75 6 6.25 ЗНАЧЕНИЕ ФУНКЦИИ 426 425 424 422.6 414.3 403.2 407.8 411 408.7 409.6 415 412.4 411 411.5 409.6 406.4 393 397 419 430 421.7 415 414 ЗНАЧЕНИЕ МОДЕЛИ 425.9843 425.4902 425.0405 424.6629 424.3014 423.7214 422.061 418.5818 413.6685 408.3155 404.8325 405.008 407.2297 409.3319 410.3369 409.9095 409:0957 409.0811 410.2266 412.3608 414.0071 413.8796 412.761 411.7632 411.2459 411.2528 ЗНАЧЕНИЕ МОДЕЛИ 425.9843 425.0405 424.3014 422.061 413.6685 404.8325 407.2297 410.3369 409.0957 410.2266 414.0071 412.761 411.2459 411.3152 409.9902 404.7225 394.22 398.4389 417.9969 428.6265 422.5065 415.5278 413.6647 ЗНАЧЕНИЕ 1-ОЙ ПР. -1.999932 -1.920391 -1.645042 -1.426631 -1.517596 -3.801351 -10.16131 -17.22852 -21.63406 -19.43128 -6.673544 6.436336 9.695535 6.668113 .9181538 -3.410091 -2.172305 2.158427 7.108843 8.763041 3.20528 -3.358765 -4.723343 -3.144692 -.8792179 .5363246 КОЭФ. СПЛАЙНА -7.345466Е-02 1.493015 -.98282 -33.59218 -12.29881 72.14086 -6.66456 -28.44493 16.08317 21.04116 -36.65511 4.940625 10.43565 -8.657536 -9.26752 -48.89722 79.21878 85.3378 -52.43233 -89.8908 10.00619 29.25918 -4.271797 ЗНАЧЕНИЕ 2-ОЙ ПР. -7.345466Е-02 .7097803 1.493015 .2550976 -.9828201 -17.2875 -33.59218 -22.9455 -12.29881 29.92102 72.14086 32.73815 -6.664559 -17.55475 -28.44493 -6.180882 16.08317 18.56216 21.04116 -7.806975 -36.65511 -15.85724 4.940624 7.68814 10.43565 .8890591 206
6.5 6.75 7 7.25 7.5 7.75 8 8.25 8.5 8.75 9 9.25 9.5 9.75 10.25 10.5 10.75 411.3152 410.9328 409.9902 408.2652 404.7225 398.9975 394.22 393.7583 398.4389 407.7037 417.9969 425.5355 428.6265 426.8147 422.5065 417.4036 415.5278 414.2058 -.433735 -2.637195 -4.915951 -9.709721 • -19.45717 -23.67421 -11.87677 8.310387 29.2624 41.98618 37.48873 22.03948 1.907936 -14.32118 -18.06319 -14.35832 -8.246835 -3.027756 -8.657536 -8.962528 -9.26752 -29.08237 -48.89722 15.16078 79.21878 82.27829 85.3378 16.45274 -52.43233 -71.16156 -89.8908 -39.94231 10.00619 19.63269 29.25918 12.49369 ВВЕДИТЕ МИН. И МАКС ЗНАЧЕН АРГУМЕНТА XMIN,XMAX? 0,11 ВВЕДИТЕ МИН. И МАКС ЗНАЧЕН ФУНКЦИИ YMIN,YMAX? 380,440 Анализ графического представления результатов аппроксимации показывает, что при р ~* 0 разности между экспериментальными значениями функции и значениями сглаживающих сплайнов умень- уменьшаются. При нулевых весовых коэффициентах сглаживающий сплайн становится интерполяционным. При отладке программы SPL06W01 в качестве одной из тестовых рассматривалась функция у = О.Зх + 7 sinEx) - 5 cos(8;c) . B.5.28) На рис.2.24 представлен график этой функции, полученный с по- помощью программы 2000 REM "FTEST6" 2005 DIMXD0),YD0) 2010 N-ll:X(l)-0:X(N)-10 2015 XMIN-XA):XMAX-X(N) 2020 YMIN--10.YMAX-20 2025 H-(X(N)-XA))/(N-1) 2030 PI-3.1415926# 2035 FOR Ы TO N 2040 X(I)-XA)+(I-1)*H 2050 XU-X(I):GOSUB3000:Y(I)-YU 2055 PRINTX(I),Yd) 2060 NEXT I 2110 REM GOSUB 9000 2120 MARKER-2:GOSUB 9500 2130 REM MARKER-3:GOSUB 10000 2140 END 3000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ ТЕСТОВОЙ ФУНКЦИИ ДЛЯ СПЛАЙНОВ ЗОЮ YU-.3*XU+7*SINE*XU)-5*COS(8*XU) 3020 RETURN 207
Рис.2.21. Аппроксимация с помощью сглаживающего сплайна зависимости / при р} = /> = 0.1 Рис.2.22. Сглаживающий кубический сплайн, аппроксимирующий зависимей / @ e P = °°5 208
Рис.2.23. Кубический сглаживающий сплайн, аппроксимирующий зависимость /«ip(f) частоты тока/от времени t в СЭС самолета Як-42 при/>/ = р = 0.005 . График тестовой функции B.5.28), а также W-11 ее значений с шагом » обозначенных символом 209
tt процессе-отладки программы значения функции искажались путем внесения в них случайных ошибок, имеющих различные зна- значения уровня дисперсии. Сглаживающие сплайны рассчитывались при различном числе N равноудаленных узлов на отрезке [0,10], а также различных уровнях ошибок. На рис.2.25 приведен график сглаживающего сплайна, аппрокси- аппроксимирующего функцию B.5.28) при pf-p- 0.0001, значения кото- которой вводились в SPL06W01 с помощью подпрограммы 8000 REM ПОДПРОГРАММА ВВОДА ТЕСТОВЫХ ДАННЫХ 8005 INDUK-l:INDPR-2 8010 N-61 8015 NR-2*(N-1)+1 8020 H-10/(N-l) 8025 INPUT "ВВЕДИТЕ ЗНАЧЕНИЕ ПАРАМЕТРА СГЛАЖИВАНИЯ PG ;PG 8030 FOR I-l TO N 8040 X(I)-H*(I-1) 8050 Y(I)-.3*X(I)+7*SINE*X(I))-5*COS(8*X(I))+5*(RND-.5) 8060 NEXT I 8160 Y1-(YB)-YA))/(XB)-XA)) 8170 YN-(Y(N)-Y(N-1))/(X(N)-X(N-1)) 8310 RETURN 20 5 -10 1 ■ • II f 4 1 \ 1 /i 1 1 1 1 ^ 1 1 1 1 1 1 1 I 1 1 1 ■ - г 1 V 1 0 5 10 Рис.2.25. Сглаживающий сплайн, аппроксимирующий ЛГ-61 равноудаленных зна- значений функции B.5.28), искаженных случайными ошибками (ps—p — 0.0001) 210
Для начальных данных, вводимых в программу SPL06W01 под- подпрограммой 8000 REM ПОДПРОГРАММА ВВОДА ТЕСТОВЫХ ДАННЫХ 8005 INDUK-l:INDPR-2 8010 N-41 8015 NR-2*(N-1)+1 8020 H-10/(N-l) 8025 INPUT "ВВЕДИТЕ ЗНАЧЕНИЕ ПАРАМЕТРА СГЛАЖИВАНИЯ PG";PG 8030 FOR I-l TO N 8040 X(I)-H*(I-1) 8050 Y(I)-.3*X(I)+7*SINE*X(I))-5*COS(8*X(I))+5*(RND-.5) 8060 NEXT I 8160 Y1-(YB)-YA))/(XB)-X(D) 8170 YN«(Y(N)-Y(N-1))/(X(N)-X(N-1)) 8310 RETURN результаты аппроксимации изображены на рис. 2.26. При формировании начальных данных с помощью подпрограм- подпрограммы 8000 REM ПОДПРОГРАММА ВВОДА ТЕСТОВЫХ ДАННЫХ 8005 INDUK-l:INDPR-2 8010 N-81 8015 NR-2*(N-1)+1 8020 H«10/(N-l) 8025 INPUT "ВВЕДИТЕ ЗНАЧЕНИЕ ПАРАМЕТРА СГЛАЖИВАНИЯ PG";PG 8030 FOR I-l TO N 8040 X(I)-H*(I-1) 8050 Y(I)«.3*X(I)+7*SINE*X(I))-5*COS(8*X(I))+5*(RND-.5) 8060 NEXT I 8160 Y1«(YB)-YA))/(XB)-XA)) 8170 YN-(Y(N)-Y(N-1))/(X(N)-X(N-D) 8310 RETURN сглаживающий сплайн, аппроксимирующий искаженные случайны- случайными ошибками значения функции B.5.28), показан на рис. 2.27. Анализ рисунков 2.25 — 2.27 показывает, что даже при значи- значительных искажениях исходных данных, за счет увеличения числа то- точек N можно добиться приемлемых результатов аппроксимации. При решении практических задач аппроксимации в некоторых случаях коэффициенты сглаживающего сплайна необходимо выби- выбирать таким образом, чтобы выполнялись условия \<р(х;) - yj\ < dj, j = 1,..., N , B.5.29) у - известные ошибки измерений. В работе [10 ] предложен алго- , позволяющий добиться выполнения ограничений B.5.29). алгоритм можно сформулировать следующим образом. этап. Весовые коэффициенты р){) принимаются рав- некоторой положительной постоянной (например, р} = 0,1 или 0,01), а также выбираются величины^ 211
Рис.2.26. Аппроксимация с помощью сглаживающего сплайна (при р - 0.0001, N-41) значений функции B.5.28), искаженных равномерно распределенными на интервале [-2.5,2.5] случайными ошибками 20 5 1 ■ [У V 1 1 1 1 \ к \и\ V II* i i ^ i i у 1 г 1 1 1 АЛ in V * I i i - я 1 -10 0 5 Рис.2.27. График сглаживающего сплайна, аппроксимирующего искаженных чайными ошибками N-81 значений функции B.5.28) приpj = р = 0.0001 212
Основной этап: а) С помощью весовых коэффициентов р*р и экспериментальных значений функции у вычисляются коэффициенты сглаживающего сплайна Aj°; б) По формулам B.5.26) определяются сглаженные значения функции и проверяется выполнение условий B.5.29). Если для всех j неравенства B.5.29) выполняются, то вычисле- вычисления прекращаются; если хотя бы при одном значении/эти ограниче- ограничения нарушаются, то находятся новые весовые коэффициенты по формулам tip B.5.30) 0 , Pi = ще tip определяется с помощью соотношений B.5.26), параметр i увеличивается на 1 и осуществляется переход к пункту а). В формуле B.5.30) величина в выбирается меньшей 1, (напри- (например, 0 = 0,9), а величина £ характеризует скорость изменения третьих производных сглаживающего сплайна [10 ]. В некоторых случаях хорошие результаты были получены при 5 = 0,001 и £ = 0,0001. При реализации этого алгоритма несколько итераций необходимо выполнить без учета ограничений B.5.27). Это позволяет избежать зацикливания, а также переполнения ячеек па- памяти ЭВМ. ПОСТРОЕНИЕ ПАРАБОЛИЧЕСКИХ ИНТЕРПОЛЯЦИОННЫХ СПЛАЙНОВ ПРИ РЕШЕНИИ ЗАДАЧ АППРОКСИМАЦИИ В предыдущих параграфах этой главы рассматривались алгорит- алгоритмы построения кубических сплайнов, позволяющих аппроксимиро- ЭДть достаточно сложные функции, заданные экспериментальными Данными. Если функция у = f(x) задана значениями у\,..., ун в точ- **х *i,..., xn, то на каждом из отрезков Ау = [jcy-i, *,], j = 2,..., N, кубический сплайн у = <р$(х) совпадает с кубическим полиномом. Однако в том случае, когда точки Xj расположены достаточно близко ^*ДУ собой и на каждом из интервалов функция не имеет точек пе- Рсгиба, то для ее аппроксимации можно использовать интерполяци- Ойнй параболический сплайн [18]. сплайн представляет собой непрерывно диффе- функцию у = <рг(х), для которой: = % , /= 1,..., N ; B.6.1) 213
Xl + Х2 2) <рг(х) = xN " X*-i + Хк ^ Хк + X* + i у ~ лг . S* , 2 * 2 э = э"м < X < B,6.2) В отличие от кубического сплайна, который определяется с по- помощью коэффициентов А} = рз "(*/)> равных значению второй про- производной сплайна в узлах ;су сетки, параболический сплайн задается с помощью вторых производных, постоянных на отрезках, концы ко- которых совпадают с серединами интервалов А/. Так как на каждом из отрезков, концы которых совпадают с серединами соседних интерва- интервалов А/, вторая производная параболического сплайна является посто- постоянной величиной, то <рг(х) на этом отрезке есть полином второй степени. Поэтому параболический сплайн на отрезке [а,Ь] можно представить в виде [18 ] X <р2{х) = <р2(а) + <рг(а)(х - а) + / (х - t) <p'2(t) dt. B.6.3) а Рассмотрим первые и вторые разделенные разности функции У = Л*)» заданной значениями у; в точках xf. j+l , У = 1,2,3,..., N-1, Д*. v v N — Я*/+1 >Xi+V f\XJ>XJ+O ; _ 1 9 Ъ КГ 1 П (\ Xj,Xj+uXj+2) — 7 *-—? , / ~ 1,Z,J,..., N-l . (l.O. fljl T /lj2 j+2 Аналогично рассматриваются первые <pi{xj, x/+i) и вторые , JCy+i, xj+г) разделенные разности функции <рг(х), имеющей вид B.6.3). Коэффициенты параболического сплайна Si,..., Sn неизвест- неизвестны. Их можно определить из условия = 2,..., Л^-1 . B.6.5) В результате получим систему линейных алгебраических урав- уравнений 3Sy' + XjSj+i = Sf(xj~i9Xj,xj+i) , ; = 2,3,..., yV-1 , которая состоит из (jV-2)-x уравнений и содержит jV неизвестных. Для того, чтобы коэффициенты сплайна можно было определить однозначно, нужно добавить еще два условия на концах отрезка [а,Ь]. Если у\, yN — значения производной на концах отрезков, то полнительные уравнения имеют вид 214
8 - n - hN B.6.6) Тогда коэффициенты Sj, j = 1,..., Л' можно найти путем реше- яяя системы линейных уравнений  Ai 0 ... О О О 3 А2 0^ /*з 3 обо 0 0 0 0 0 0 dl - A A2 О О » О о о 1-2 о о • о F-1 N-2 Sn-\ " SN" d2 B.6.7) ds-i dN h2 8' An ) - 8 hj hj+i Ay = jcy-jcy-i , y = 2,..., jV-1 . B.6.8) Матрица системы B.6.7) имеет доминирующую главную диагональ, поэ*ому система B.6.7) имеет единственное решение. Для решения этой системы можно использовать алгоритм B.1.23) — B.1.26) мето- метода прогонки. Алгоритм решения системы уравнений B.6.7) имеет вид: 1) Определяются вспомогательные величины ps, z; с помощью соотношений Pi =3, Лу-1 » У ^>»»»i ™ > = d\ , zj = dj- Pi-i B.6.9) 2) Коэффициенты сплайна S/ вычисляются по формулам B.6.10) ^ Рассмотренный выше алгоритм позволяет найти коэффициенты *Фриодического параболического сплайна. С помощью параболи- сплайнов можно также аппроксимировать периодические 215
функции. Для этого вводится понятие периодического параболиче* ского сплайна. Функция у = <р2(х) называется периодическим сплайном с перио* дом Т — Ь — а, если она непрерывно дифференцируема и удовлетво- удовлетворяет условиям: 1) <р2(х + Ъ - а) = <р2(х) , -oo<jc<oo B.6.11) 2) <р'2(х) = S- , (jcy-i + xj)/2 < х < (Xj + JCy+i)/2 , B.6.12) где xN-\ - b - a + x2 - x{ ; 3) <Р2(хд=Уп /= 1,...,ЛГ. B.6.13) При условии, что выполняются равенства B.6.5), получим сис- систему линейных алгебраических уравнений для коэффициентов сплайна: 35;- / Z9..., Эту систему можно переписать в матричном виде О Аз 3 B.6.14) 0 0 0 0 0 0 0 . о о 0 0 0 3 V-1 0 0 0 0 А#-2 3 Иг 0 0 ф 0 Хы- 3 С " О2 t" ON-2 (*2 d$ d4 ds-2 dN m ^ . B.6.15) Для решения системы B.6.15) можно использовать метод цикли- циклической прогонки, рассмотренный в разделе 2.3. В формулу B.6.3) входят неизвестные величины <р2(а) и ^г(я) * Так как <р2(а) = <p2(xi ), то очевидно, что <р2(а) = у\ . Тогда неизвест- неизвестную постоянную (р2(а) можно найти из условия У2 = = <р2{а) - а) -t)dt. B.6.16) Учитывая, чтб х\ получим = У\ Отсюда имеем — а, a также B.6.2) или B.6.12) 2 216
I <p2{a) = j^Vyi - yx - (Л1 / 8) CSi' + Si')] . B.6.17) НзРяДУ с выражением B.6.3) для вычисления значений параболиче- параболического сплайна можно использовать также формулу - зи + hi 8 Ч* (X - Xy-i) + + 2 ^" Х/'"^ B.6.18) вде hj = х/ - = (max {О , и }) . B.6.19) Ниже представлены листинг программы аппроксимации функции с помощью параболического сплайна, а также результаты аппрокси- аппроксимации зависимости / = V@ частоты тока в СЭС самолета от време- времени. График параболического сплайна, полученный с помощью программы SPL07W01, приведен на рис. 2.28. 10 REM"SPL07W01" 20 REM****************************************************************** 30 REM ПРОГРАММА АППРОКСИМАЦИИ ФУНКЦИИ ОДНОЙ 35 REM ПЕРЕМЕННОЙ,ЗАДАННОЙ ЗНАЧЕНИЯМИ 40 REM Y(J) В ТОЧКАХ X(J),J-1,...,N, С ПОМОЩЬЮ ПАРБОЛИЧЕСКОГО 45 REM ИНТЕРПОЛЯЦИОННОГО 50 REM СПЛАЙНАY-S(X),A<-X<-B;CIl/IAftHОПРЕДЕЛЕН SS REM ЧЕРЕЗ МОМЕНТЫ A(J)-S"(X(J)) 60 rj?m***************^************************************************** 65 REMDEFDBLA,B,C,F,Z,P 70 DIMXA00),YA00),AA00),BA00),CA00),FA00),ZA00),PA00) 80 OIMXRD80),YRD80),YR1D80),YR2D80),YMA00) 90 GOSUB 8000 95 PRINT:PRINT:PRINT 100 GOSUB 1000 HO GOSUB 2500 520 PRINT "НОМЕР ТОЧКИ ЗНАЧ.АРГУМ. ЗНАЧЕН.Ф-ИИ ЗНАЧ.МОДЕЛИ КОЭФ.СПЛАЙНА" 525 PRINT" - " 530 FOR I-l TO N 540 PRINT I,X(I),Y(I),YM(I),A(I) 550 NEXT I 560 PRINT" - " 565 GOSUB 3000 570 IF INDPR-0 GOTO 640 575 PRINT "НОМЕР ТОЧКИ ЗНАЧ.АРГУМ. ЗНАЧ.МОДЕЛИ ЗН.1-Й ПР. ЗН.2-Й ПРОИЗВ" 580 PRINT" " 590 FOR I-l TO NR ^99 PRINTI,XR(I),YR(I),YR1(I),YR2(I) "~ NEXTI 217
620 PRINT" 630 GOTO 700 640 PRINT "НОМЕР ТОЧКИ ЗНАЧ.АРГУМ. ЗНАЧ.МОДЕЛИ" 650 PRINT " - " 660 FOR 1-1 TO NR 670 PRINTI,XR(I),YR(I) 680 NEXT I 690 PRINT " " 700 INPUT "ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧ. АРГУМЕНТА XMIN,XMAX";XMIN,XMAX 710 INPUT "ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧ. ФУНКЦИИ YMIN,YMAX";YMIN,YMAX 740 REM GOSUB 9000 750 MARKER-2: GOSUB 9500 760 REM MARKER-3:GOSUB 10000 790 GOSUB 9000 800 END 1000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ КОЭФФИЦИЕНТОВ ПАРАБОЛИЧЕСКИ) СПЛАЙНА Y-S (X), 1010 REM ОПРЕДЕЛЕННОГО С ПОМОЩЬЮ МОМЕНТОВ 1020 N1-N-1 1030 FOR 1-2 ТО N1 1040 ВA)-3 1045 HI-X(I)-X(I-1):HI1-X(I+1)-X(I) 1050 A(I)-HI/(X(I+1)-X(I-D) 1060 Cd)-l-A(I) 1070 F(I)-8*((Y(I+1)-Y(I))*HI-(Y(I)-Y(M))*HI1)/(HI*HI1*(HI+HI1)) 1090 NEXT I 1110 C(l)-.5 1120 A(N)-.5 ИЗО ВA)-3 1140 B(N)-3 1160 F(N)-8*(YN-(Y(N)-Y(N1))/(X(N)-X(N1)))/(X(N)-X(N1)) 1350 P(l)-B(l) 1360 Z(l)-F(l) 1370 FOR 1-2TON 1380 P(I)-B(I)-C(I-1)/P(I-1)*A(I) 1390 Z(I)-F(I)-Z(I-1)/P(M)*A(I) 1400 NEXT I 1410 A(N)-Z(N)/P(N) 1420 FOR I-Nl TO 1 STEP -1 1430 A(I)-(Z(I)-C(I)*A(I+1))/P(I) 1440 NEXT I 1520 RETURN 2000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ СПЛАЙНА И ЕГО ДВУХ ПРОИЗВОДНЫХ 2010 J1-1JN-N 2020 IFJN<-JN+1 GOTO 2080 2030 J-INT((Jl+JN)/2) 2040 IF XU-X(J) GOTO 2090 2050 IF XU>X(J) GOTO 2070 2060 JN-J.GOTO 2020 2070 Jl-J: GOTO 2020 2080 J-JN 2090 hj-x<j>-\<j-;> 2100 T-(XU-(XU-l>+X(J))/2) 218
2110 TS-0 2130 IF TX) THEN Т8-ТЛ2 2150 YU-Y(J-1)+((Y(J)-Y(J-1))/HJ-C*A(M)+A(J))/8*HJ)*(XU-X(J-1)) 2160 YU-YUM(J-l)/2^XU-X(J-l)r2+(A(J)-A(J-l))*TS/2 2165 IF INDPR-0 GOTO 2175 2170 GOSUB 2200 2175 RETURN 2200 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ 1 -Й И 2-Й ПРОИЗВОДНОЙ СПЛАЙНА 2210 IFINDPR>1 GOTO 2240 2215 INDPR-1 2220 PYl-((Y(J)-Y(M))/HJ-C*A(J-l)+A(J))*HJ/8)+A(J-l)*(XU-X(J-l))+ (A(J)-A(J-1))*T*SQR(TS) 2230 GOTO 2270 2240 INDPR-2 2245 TS-0:IF T>0 THEN TS-2*T 2250 PYl-((Y(J)-Y(J-l))/HJ-C*A(J-l)+A(J))*HJ/8)+A(J-l)*(XU-X(J-l))+ (A(J)-A(J-1))*T*TS 2255 TS-0:IF T>0 THEN TS-1 2260 PY2-A(J-1)+(A(J)-A(J-1))*TS 2270 RETURN 2500 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ СПЛАЙНА В УЗЛАХ СЕТКИ 2510 FOR I-l TO N 2520 XU-X(I) 2530 GOSUB 2000 2540 YM(I)-YU 2550 NEXTI 2560 RETURN 3000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ ИНТЕРПОЛЯЦИОННОГО СПЛАЙНА ЗОЮ REM НА РАВНОМЕРНОЙ СЕТКЕ 3030 HR-(X(N)-XA))/(NR-1) 3040 FOR I-l TO NR 3050 XR(I)-XA)+(I-1)*HR 3055 NEXTI 3060 FOR I-l TO NR 3065 XU-XR(I) 3070 GOSUB 2000 3080 YR(I)-YU 3090 IF INDPR-0 GOTO 3120 3100 YRKD-PY1 3110 YR2(I)»PY2 3120 NEXTI 3130 RETURN 8000 REM ПОДПРОГРАММА ВВОДА ТЕСТОВЫХ ДАННЫХ 8005 INDUK-l:INDPR-2 8010 N-23 8020 NR-(N-1)*2+1 8030 FOR I-l TO N 8040 READ X(I),Yd) 8050 NEXTI 8060 Y1-(YB)-YA))/(XB)-X(D) 8070 YN-(Y(N)-Y(N-1))/(X(N)-X(N-D) 8080 DATA 0,426 8090 DATA 0.5,425 8100 DATA 1,424 8110 DATA 1.5,422.6 219
.2 8120 DATA 2,414.3 8130 DATA 2.5,403.! 8140 DATA 3,407.8 8150 DATA 3.5,411 8160 DATA 4,408.7 8170 DATA 4.5,409.6 8180 DATA 5,415 8190 DATA 5.5,412.4 8200 DATA 6,411 8210 DATA 6.5,411.5 8220 DATA 7,409.6 8230 DATA 7.5,406.4 8240 DATA 8,393 8250 DATA 8.5,397 8260 DATA 9,419 8270 DATA 9.5,430 8280 DATA10,42L7 8290 DATA 10.5,415 8300 DATA 11,414 8310 RETURN 9000 REM ' GR9000": ПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА ФУНКЦИИ 9010 PRINT " ":PRINT " ГРАФИК КУБИЧЕСКОГО СПЛАЙНА'^ШТ 9020 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X:NXD-";NXD 9030 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y:NYD-";NYD 9050 NY-NYD+1 9060 CLS:SCREEN 2:DY-(YMAX-YMIN)/NYD:FOR 1-1 TO NY:Y-2OH60/NYD*(I-l) 9070 LINEG4,YM574/Y>:NEXT LNX-NXD+1 9080 FORI-l TONX:X«84f480/NXD*(H):LINE (X,12)-(X,188):NEXT I 9090 R-23 9100 FORK-OTONYD 9110 LOCATE R 1 9120 SY-YM1N+DY*K:PRINT USING "#.###";SY 9130 RHR-20/NYD 9135 NEXT К 9140 C-7:DX-(XMAX-XMIN)/NXD 9150 FOR K-0 TO NXD:KEY OFFrLOCATE 24,C 9160 SX-XMIN+DX*K 9170 PRINT USING "####.##";SX; 9180 C-C+60/(NXD+0) 9185 NEXT К 9310 XA-E64-84) / (XMAX-XMIN):YA-< 180-20) / (YMAX-YMIN) 9320 FOR IX-84 TO 564:XU-XMIN+(IX-84) /480* (XMAX-XMIN) 9330 GOSUB2000 9350 IF IY<20 OR IY>180 THEN 9370 9360 IF IX-84 THEN PSET (IX,IY) 9365 LINE-(IX,IY) 9370 NEXT IX 9380 FOR 1-1 TO N 9390 yg~180~<y(i)-ymin)*ya 9400 if yg<20 or yg>180 goto 9440 9410 xg-480* (x(i) -xmin)/(хмах-хм1ю+84 9420 pset (xg,yg) 9430 draw "e2g4e2h2f4h2e2d4l4u4r4g2" 9440 nf:xti 9450 RETURN 220
9500 REM"GRAF9500' 0510 XS-(XMIN+XMAX)/2 9520 YS-(YMIN+YMAX)/2 0540 SCREEN 2:CLS:KEY OFF 9550 VX-XMAX-XMIN:DX-400/VX:VY-YMAX-YMIN:DY-120/VY 9560 FOR IX-40 TO 440 9570 XU-XMIN+(IX-40)/400*VX 9580 GOSUB 2000 9590 IY-125-(YU-YMIN)*DY 9595 IF IY<5 OR IY>125 GOTO 9620 9600 IF IX-40 THEN PSET (IX,IY):GOTO 9620 9610 UNE-<IX,IY) 9620 NEXT IX 9630 FOR IE-1 TO N 9640 YE-125-(Y(IE)-YMIN)*DY 9650 IFYE<5ORYE>125GOTO9740 9660 XE-400*(X(IE)-XMIN)/VX+40 9670 PSET (XE,YE) 9680 ON MARKER GOTO 9690,9700,9710,9720,9730 9690 DRAW "U2D4U2L4R8L4":GOTO 9740 9700 DRAW "E2L4F4L4E3H:GOTO 9740 9710 DRAW "E2D4H4D4E2L4R8L4":GOTO 9740 9720 DRAW "E2G4E2H2F4H2L4R8L4":GOTO 9740 9730 DRAW "U2G3R6H3D2" 9740 NEXT IE 9750 LINE D0,5)-D40,5) 9760 LINE D0,125)-D40,125) 9770 UNE D0,5)-D0,125) 9780 LINE D40,5)-D40,125) 9790 FOR Y-5 TO 125 STEP 12 9800 UNP D0,Y)-D3,Y) 9810 LINE D4O,Y)-D37,Y) 9820 NEXTY 9830 LOCATE 1,2:PRINTYMAX 9840 LOCATE 9.2:PRINT YS 9850 LOCATE 16,2:PRINTYMIN 9860 FOR X-79 TO 440 STEP 40 9870 UNE Ot,125)-(X,122) 9880 UNE(X+1,125)-(X+1,122) 9890 UNE (X,5)-(X,8) 9900 LINE(X+1,5)-(X+1,8) 9910 NEXTX 9920 LOCATE 17,4:PRINTXMIN 9930 LOCATE 17,29:PRINTXS 9940 LOCATE 17,54:PRINTXMAX 9950 A$-INPUT$A) 9960 END 10000 REM "GR10000" ПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА ФУНКЦИИ 10010 PRINT " ":PRINT " ГРАФИЧЕСКОЕ ИЗОБРАЖЕНИЕ РЕЗУЛЬТАТОВ AnnPOKCHMAltfiH":PRINT и " J0020 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X:NXD-";NXD J0030 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y:NYD-ft;NYD J0040 NY-NYD+1 *°050 CLS:SCREEN 2:DY-(YMAX-YMIN)/NYD:FOR I-l 1АА ТО NY:Y-20+160/NYD*(I-l) J0060 UNE G6.Y) - (90,Y) :NEXT I:NX-NXEH-1 10070 FOR I-l TONX:X-84+480/NXD*(I-l):LINE (X,176)-(X,184):NEXTI 221
10080 LINE <84,12)-<84,188):LINE (84,180) -E68,180) 10090 R-23 10100 FORK-0TONYD 10110 LOCATE R 3 10120 SY-YMIN+i)Y*K:PRINT USING "#.##";SY 10130 R-R-20/NYD 10140 NEXT К 10150 O7:DX-(XMAX-XMIN)/NXD 10160 FOR K-0 TO NXD:KEY OFF:LOCATE 24,C 10170 SX-XMIN+DX*K 10180 PRINT USING "####.##";SX; 10190 C-C+60/(NXD+0) 10200 NEXT К 10210 VX-XMAX-XMIN:VY-YMAX-YMIN:XA-480/VX:YA-160/VY 10230 FOR IX-84 TO 564:XU-XMIN+(IX-84)/480*VX 10240 GOSUB 2000 10250 IY-180-(YU-YMIN)*YA 10260 IF IY<20 OR IY> 180 THEN 10290 10270 IF IX-84 THEN PSET <IX,IY) 10280 LINE-<IX,IY) 10290 NEXT IX 10300 FORIE-1TON 10310 YE-180-<Y<IE)-YMIN)*YA 10320 'IF YE<20 OR YE>1180 GOTO 10410 10330 XE-480*(X<IE)-XMIN)/VX+84 10340 PSET<XE,YE) 10350 ON MARKER GOTO 10360,10370,10380,10390,10400 10360 DRAW 4J2D4U2L4R8L4":GOTO 10410 10370 DRAW "E2L4F4L4E3*:GOTO 10410 10380 DRAW "E2D4H4D4E2L4R8L4":GOTO 10410 10390 DRAW "E2G4E2H2F4H2L4R8L4H:GOTO 10410 10400 DRAW "U2G3R6H3D2" 10410 NEXT IE 10420 RETURN RUN НОМЕР ТОЧКИ ЗНАЧЕНИЕ FPrYMEHTA ЗНАЧЕНИЕ ФУНКЦИИ ЗНАЧЕНИЕ МОДЕЛИ КОЭФ. СПЛАЙНА 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 0 .5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8 8.5 426 425 424 422.6 414.3 403.2 407.8 411 408.7 409.6 415 412.4 411 411.5 409.6 406.4 393 397 426 425 424 422.6 414.3 403.2 407.8 411 408.7 409.6 415 412.4 411 411.5 409.6 406.4 393 397 .1004964 -.6029786 3.517375 -33.30108 -24.5117 90.77264 -17.72574 -29.217 17.02772 29.45007 -49.72815 12.91882 10.6156 -15.81263 7.460352 -70.55007 89.44068 90.70575 222
19 20 21 22 23 НОМЕР ТОЧКИ 1 2 3 4 5 6 7 8 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 9 9.5 10 10.5 11 ЗНАЧЕНИЕ АРГУМЕНТА 0 .25 .5 .75 1 1.25 1.5 1.75 2 2.25 2.5 2.75 3 3.25 3.5 3.75 4 4.25 4.5 4.75 5 5.25 5.5 5.75 6 6.25 6.5 6.75 7 7.25 7.5 7.75 8 8.25 8.5 8.75 9 9.25 9.5 9.75 10 10.25 10.5 10.75 11 419 430 421.7 415 414 ЗНАЧЕНИЕ МОДЕЛИ 426 425.5079 425 424.4545 424 423.7654 422.6 419.3533 414.3 407.7147 403.2 404.3587 407.8 410.1335 411 410.0405 408.7 408.4238 409.6 412.6169 415 414.2751 412.4 411.3323 411 411.3312 411.5 410.6805 409.6 408.9858 406.4 399.4049 393 392.1852 397 407.4839 419 426.9114 430 427.0477 421.7 417.6025 415 414.1375 414 419 430 421.7 415 414 ЗНАЧЕНИЕ 1-Й ПРОИЗ. -1.981157 -1.956033 -2.018843 -2.257522 -1.893223 -.4988347 -4.221798 -17.14937 -24.37597 -29.40523 -21.12261 15.9811 25.11197 7.118228 1.250385 -7.490271 -9.013929 1.023592 6.833316 15.74863 13.21387 -9.115448 -13.71661 -2.656037 .2857663 2.651764 2.002136 -5.254549 -6.298583 -1.524373 -9.410588 -36.79941 -34.43808 7.920933 30.43924 53.27381 57.40263 24.4362 5.144993 -23.89103 -33.47254 -13.88986 -7.909609 2.997542Е-02 2.929941 -57.67522 -96.65445 20.00234 27.83967 -4.639944 ЗНАЧЕНИЕ 2-Й ПРОИЗ .1004964 М004964 -.6029786 -.6029786 3.517375 3.517375 -33.30108 -33.30108 -24.5117 -24.5117 90.77264 90.77264 -17.72575 -17.72575 -29.217 -29.217 17.02772 17.02772 29.45007 29.45007 -49.72815 -49.72815 12.91882 12.91882 10.6156 10.6156 -15.81263 -15.81263 7.460351 7.460352 -70.55007 -70.55007 89.44068 89.44068 90.70575 90.70575 -57.67522 -57.67522 -96.65445 -96.65445 20.00234 20.00234 27.83967 27.83967 -4.639942 ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧ. АРГУМ. XMIN,XMAX? 0,11 ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧ. ФУНКЦ. YMIN,YMAX? 380,440 223
чад 410 1 • * ш ■ I • ■ 1 1 \ \ V I 1 г 1 1 1 s 1 1 ►*•» 1 1 \ V 1 1 / / / / 1 1 1 ■ * V ■ я a • 1 5.5 11 Рис. 2.28 . Аппроксимация с помощью параболического сплайна зависимости / = v@ частоты тока в СЭС самолета от времени При отладке программы SPL07W01 в качестве одной из тестовых функций рассматривалась функция у = х2 на отрезке [0,6 ]. Парабо- Параболический сплайн, полученный в результате выполнения этой про- программы, в которой начальные данные вводятся подпрограммой 8000 REM ПОДПРОГРАММА ВВОДА ТЕСТОВЫХ ДАННЫХ 8005 INDUK-l:INDPR-2 8010 N-7 8020 NR-<N-1)*2+1 8025 H-l 8030 FOR 1-1 TO N 8040 X<I)-H*(I-1) 8050 ¥A)-ХA)Л2 8060 NEXT I 8070 YN-(Y<N)-Y(N-1))/(X(N)-X<N-D) 8310 RETURN представлен на рис.2.29. Очевидно, что сплайн <рг(х) практически является параболой. Расчеты показали, что в промежуточных точках погрешность апп- аппроксимации не превышает 1 % от значений функций у = х2. 224
3 6 Рнс. 2.29. Аппроксимация с помощью параболического сплайна тестовой функции у ■» лг на отрезке [0,6] ПРИМЕНЕНИЕ ДВАЖДЫ КУБИЧЕСКИХ СПЛАЙНОВ ДЛЯ АППРОКСИМАЦИИ ФУНКЦИЙ ДВУХ ПЕРЕМЕННЫХ При- автоматизированной обработке результатов испытаний Сложных систем часто возникает необходимость аппроксимации од- яопараметрнческнх семейств кривых, характеризующих поведение исследуемого объекта в различных режимах функционирования. Математически эта задача формулируется как задача аппрокси- аппроксимации функции двух переменных [2,5,10,12,16,17 ]. Рассмотрим ре- Ф этой задачи с помощью бикубических, или дважды [2,10]. Предположим, что однопараметрическое семейство кривых мож- во описать с помощью некоторой функции у = /(*, 5), причем анали- Л выражение этой функции неизвестно, или же оно имеет сложный вид. Обычно в ходе эксперимента (или путем расче- по очень сложной формуле) можно найти значения у^ функции f(> s) в точках (Ut 5у), *= 1,...,W; /= 1,..., М, где , ft], sj Е [с, d]j причем { U } и { Sj} образуют сетки соответ- о на отрезках [а,й]и [cfd]. Если погрешности измерений являются пренебрежимо малыми, 225 A..
для аппроксимации функции у = /(/, 5) можно использовать ческий сплайн, который: 1) совпадает с бикубическим полиномом (кубическим относу тельно каждой из переменных) на прямоугольниках пц = {(/, s): ti-i < / < ft ; shi < s< s i = 2,..., AT; y = 2,...,M B.7.1) разбиения прямоугольника D = {(*, s): a< t < b; с < s < d] прямыми, параллельными осям t и s и проходящими через точки (ft, sj), i = 1,..., N; у = 1,..., M; 2) принадлежит классу функций C\(D), где Cl(D) — множество функций двух переменных, определенных на прямоугольнике Д п-я частная производная которых, включая не более к дифференци- дифференцирований относительно каждой переменной, существует и непре- непрерывна [2,10]. В теории сплайнов построение бикубического (или дважды куби- кубического) сплайна сводится к построению одномерных фундаменталь- фундаментальных кубических сплайнов. Чтобы построить одномерный кубический сплайн F.3Л) на отрезке [а,Ь], необходимо знать значения сплайна в узлах сетки, а также значения производных на концах отрезка [а,Ь]. Одномерный фундаментальный кубический сплайн <pi(t) име- имеет определяющее значения <pi(ti) = 1 , (pi(tj) = 0 , у = 1,..., N , у # i; <р\ (а) = <р\(Ъ) = 0 , i = 1,..., N. B.7.2) Вводятся также фундаментальные сплайны Vi @ и у#@ ♦ кото- которые имеют определяющие значения у= (а) = М*) = 1, Vi (*) = Ыа) = 0 . B.7.3) Фундаментальные сплайны <2-7в4) образуют базис линейного пространства кубических сплайнов на от- отрезке [а,Ь ]. Это означает, что любой кубический сплайн, коэффици- коэффициенты которого определяются тем же способом, что и коэффициенты фундаментальных сплайнов, можно единственным образом предста- представить в виде линейной комбинации фундаментальных йно B.7.4). Аналогично определяются фундаментальные сплайны $\ (s),..., $m(s) , ф\ (s), фM(s) на отрезке [cfd]. 226
Для того, чтобы построить бикубический сплайн, необходимо «деть его определяющие значения. Определяющие значения бикуби- oro сплайна включают: 1) значения уц функции у = /(/, s) в узлах (£ ,sy) G D , i= 1,..., ЛГ; У = 1,...,М; 2) значения производных на сторонах прямоугольника l f (,• = 1,...,//; у = 1, М) , B.7.6) 3) значения второй частной производной в угловых точках si) f = I Л/ • / = I Л/ B 7 7) Я с Тогда бикубический сплайн, аппроксимирующий на прямоугольнике D функцию у = /(/, s), имеет вид + S 1-е.«) ^^ + 2 ад. о , s) + ?M(,, s) ^+,M(W ^, 5) = ^,-A) fr(s) , i = 1,..., N ; / = 1,..., M , и s) = <pi(t) ipj(s) , i=l,..., JV; /=1,M, "^Двумерные фундаментальные сплайны на прямоугольнике Z). Таким °бразом двумерный бикубический сплайн у = <p(t, s), аппроксимирую- аппроксимирующей на прямоугольнике D функцию у = f{t, s), можно представить в ^e суммы произведений функций от t на функции от s. а Рассмотренный алгоритм построения бикубического сплайна ре- ^^зован в программе SPL08W01. В качестве одной из тестовых рас- ^тривалась функция /(*, 5) = 1{? + s2) + 5sin(r2 + 4s3), Г*Ределенная на квадрате D - [0,1 ]х [0,1 ]. При отладке этой про- *каммы рассматривались значения// функции /(*, 5) в точках Ь 227
(ti9 5y), i = 1,..., N; j = 1,..., M, где N = M = 5, u = 0.2(* - 1), sj• = 0.2(/ - 1). Построение фунда- ментальных сплайнов, а также вычисление значений бикубического сплайна выполняется в подпрограмме, определенной операторами 2000—-2600. Одномерные фундаментальные сплайны рассчитывают» ся с помощью подпрограммы, заданной операторами 1000—1390. Ниже представлены листинг программы SPL08W01, а также результаты аппроксимации значений Д- рассмотренной тестовой функции f(ty s) с помощью бикубического сплайна при n = m = 5, *, = 0.2(/- 1), sy = 0.2(/- 1) , *,/= 1,2,...,5 на единичном квадрате Z)» [0,1 ]х [0,1 ]. 10 REM"SPL08W01" 20 rem********************************************************* 30 REM*** ПРОГРАММА АППРОКСИМАЦИИ НА ПРЯМОУГОЛЬНИКЕ 35 REM*** ФУНКЦИИ 40 REM*** 2-Х ПЕРЕМЕННЫХ С ПОМОЩЬЮ БИКУБИЧЕСКОГО 45 REM*** СПЛАЙНА 50 |££м********************************************************* 60 REM ВВОД НАЧАЛЬНЫХ ДАННЫХ ВЫПОЛНЯЕТ ПОДПРОГРАММА, 70 REM ПЕРВЫЙ ОПЕРАТОР КОТОРОЙ ИМЕЕТ НОМЕР 8000 80 DIMXIE0),X2<50),XE0),YE0),FE0,50),CE0),ZE0),PE0),UE0) 90 DIM V<50),WE0),YME0,50),SUME),AO<50),A1 <50),A2E0),A3<50) 100 GOSUB8000 110 PRINT " ПОСТРОЕНИЕ БИКУБИЧЕСКОГО СПЛАЙНА НА ПРЯМОУГОЛЬНИКЕ" 115 PRINT •'***♦*♦*♦**♦*♦*♦*♦**♦************♦♦*♦♦♦♦♦**********♦♦*♦********" 120 PRINT "XI (I) X2(J) F(I,J) YM(I,J) DEL" 130 PRINT " " 140 IQ-1 150 JQ-1 160 XU1-X1(IQ):XU2-X2(JQ) 170 GOSUB 2000:YM(IQ,JQ)-ZSP:DEI^F<IQ,JQ)-YM(IQ,JQ) 180 PRINT X1 (IQ),X2<JQ),F<IQ,JQ),YM<IQ,JQ) ,DEL 190 IF JQ<M THEN JQ-JQ+1 .GOTO 160 200 IFIQ<NTHENI(^-IQ+l:GOTO150 320 PRINT" " 800 END 1000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ КОЭФФИЦИЕНТОВ КУБИЧЕСКОГО 1010 REM СПЛАЙНА,ЗАДАННОГО С ПОМОЩЬЮ МОМЕНТОВ 1020 N1-N-1 1030 РA)-2 1040 Н2-ХB)-ХA) 1050 НЗ-Х(З)-ХО) 1060 РB)-2-Н2/НЗ/2 1070 Y2-YB)-Y(l) 1080 Z(l)-6/H2*(Y2/H2-Yl) 1090 Z<2)-(YC)-YB))/(X<3)-X<2))-Y2/H2 1100 ZB)-6*Z<2)/H3 1110 1-3 1120 Hl-X(I)-Xa-l) ИЗО НП-ХA+1)-ХA-1) 1140 228
H50 1160 1170 Ц80 IFKN1 THEN I-I+1:GOTO 1120 Ц90 HN-X(N)-X(N-1) 1200 P(N)-2-HN/(X(N)-X(N-2))/P(N-l) 1210 Z(N)-YN-(Y(N)-Y(N-1))/HN 1220 Z(N)-6/HN*Z(N)-Z(N-l)/P<N-l) 1230 C(N)-Z(N)/P(N) 1240 I-Nl 1250 C<I) 1255 C(I) 1260 IF I>2 THEN I-I-1 :GOTO 1250 1270 CA)-(ZA)-C<2))/PA) 1280 J1-1:JN-N 1290 IFJN<-J1+1 GOTO 1350 1300 JU-INT((Jl+JN)/2) 1310 IFXU-X(JU) GOTO 1360 1320 IFXU>X(JU) GOTO 1340 1330 JN-JU:GOTO 1290 1340 Jl-JU:GOTO1290 1350 JU-JN f36O HJ-X(JU)-X(JU-1) 1370 T-(XU-X(JU-D) 1375 GOSUB 3500 1380 YU-T*(T*(AO<JU)*T+A1 <JU))+A2(JU))+A3<JU) 1390 RETURN 2000 REM ПОДПРОГРАММА ПОСТРОЕНИЯ БИКУБИЧЕСКОГО ИНТЕРПОЛЯЦИОННОГО 2010 REM СПЛАЙНА НА ПРЯМОУГОЛЬНИКЕ D-[A,B]x[C,D] 2020 NM-N:N-M 2030 FOR Ь-l ТО N 2040 X(L)-X2(L):Y(L)-0 2050 NEXTL 2060 I/-1 2070 Y(L)-1 2080 Yl-0:YN-0 2090 XU-XU2 2100 GOSUB 1000 2110 U(L)-YU 2120 Y(L)-0 2130 IF L<N THEN Ь-L+l :GOTO 2070 2150 Yl-l:YN-0 2160 GOSUB 1000 2170 P1X2-YU 2180 Y1-O:YN-1 2190 GOSUB 1000 2200 PMX2-YU 2210 N-NM 2220 FOR J-l TON:X(J)-XHJ):Y<J)-O:NEXTJ 2230 J-l 2240 Y(J)-1 2250 Yl-0:YN-O 2260 XU-XU1:GOSUB 1000 2280 W(J)-YU 22J5 Y(JL) 2290 IF J<N THEN J-J+l :GOTO 2240 2300 Yl-l:YN-0 229
2320 GOSUB 1000:PlXl-YU 2330 Yl-0:YN-l 2340 GOSUB 1000 2350 PNX1-YU 2360 Ml-M-1 2370 SUM(l)-0 2380 1-1 2390 J—1 2400 SUMA)-SUMA)+W<ILJ<J)*F<I,J) 2410 IF J<M THEN J-J+l :GOTO 2400 2415 IF KN THEN I-I+l :GOTO 2390 2420 SUMB)-0:SUM<3)-0 2430 1-1 2440 SUMB)-SUM<2)+W<I)*P1X2*<F<I,2)-F(I,1))/<X2<2)-X2<1)) 2450 SUMC)-SUMC)+W(I)*PMX2*<F<I,M)-F<I,M1))/<X2<M)-X2(M1)) 2460 IF KN THEN I-I+l :GOTO 2440 2470 SUMD)-0:SUM<5)-0 2480 J-l 2490 SUMD)-SUMD)*P1X1*U(J)*(FB,J)-FA,J))/(X1B)-X1<1)) 2500 SUME)-SUNfE)+PNXl*U(J)*(F(N,J)-F(NlJ))/(Xl(N)-Xl(Nl)) 2510 IF J<M THEN J-J+l :GOTO 2490 2520 ZSP-0 2530 FOR D-l TO 5 2540* ZSP-ZSP+SUM(L) 2550 NEXTL 2600 RETURN 3490 REM "VZSP3" 3500 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ КОЭФФИЦИЕНТОВ АЛГЕБРАИЧЕСКИХ ПОЛИНОМОВ 3520 HJ-X(JU)-X(JU-1) 3530 A0(JU)-(C(JU)-C(JU-l))/<6*HJ) 3540 Al(JU)-C(JU-l)/2 3550 A2(JU)-(Y(JU)-Y(JU-l))/HJ-B*C(JU-l)+C(JU))*HJ/6 3560 A3(JU)-Y(JU-1) 3580 RETURN 8000 REM ПОДПРОГРАММА ВВОДА НАЧАЛЬНЫХ ДАННЫХ 8010 N-5 8020 М-5 8030 FOR 1-1 TO N 8040 FOR J-l TO M 8050 X1(I)-.2*(I-1) 8060 Х2Ш-.2*(J-l) 8070 F(IJ)-7*(X1 <1)лЗ+2*Х2Ц)~2)+5*8Ш(Х1 <1)УЧ2+4*Х2Ц)лЗ) 8080 NEXT J,1 8090 RETURN RUN ПОСТРОЕНИЕ БИКУБИЧЕСКОГО СПЛАЙНА НА ПРЯМОУГОЛЬНИКЕ **************************************************************************** XI (I) X2(J) F(I,J) YM(I,J) DEL 0 0 0 0 0 .2 0 .2 .4 .6 .8 0 0 .7199727 3.506065 8.842232 13.40142 .2559467 0 .7199725 3.506065 8.842231 13.40142 .2559466 0 1.788139E-07 2.384186E-07 9.536743E-07 0 8.940697E-08 230
.2 .2 .2 .2 .4 .4 .4 .4 .4 .6 .6 .6 .6 .6 .8 .8 .8 .8 .8 .2 .4 .6 .8 0 .2 .4 .6 .8 0 .2 .4 .6 .8 0 .2 .4 .6 .8 .975689 3.754482 9.025036 13.36203 1.244591 1.962113 4.708524 9.758974 13.42681 3.273371 3.982188 6.640875 11.25433 13.81971 6.569977 7.256762 9.728171 13.61285 14.73499 .9756885 3.754481 9.025034 13.36202 1.244591 1.962112 4.708524 9.758973 13.42681 3.273371 3.982187 6.640874 11.25433 13.81971 6.569977 7.25676 9.728171 13.61285 14.73499 4.768372E-07 9.536743E-07 1.907349E-06 2.861023E-06 1.192093E-07 7.152558E-07 4.768372E-07 9.536743E-07 9.536743E-07 0 7.152558E-07 1.430512E-06 9.536743E-07 9.536743E-07 4.768372E-07 1.430512E-06 9.536743E-07 9.536743E-07 0 Бикубический сплайн использовался при решении задачи аппроксимации зависимости среднемесячной температуры Гср в се- северном полушарии зимой от высоты Н над поверхностью Земли и географической широты <р. Значения средней температуры, соответствующие различным значениям высоты и географической широты заданы в таблице 2.5. Таблица 2.5 3.05 6.10 _9.15 _12.20 _ 15.25 0 10 -6 -31 -54 -73 10 8.5 -9.5 -33 -55.5 -72 20 7 -13 -35 -57 -71 30 1 -19 -40 -55 -64 40 -7 -24 -45.5 -55 -59 50 -15 -30 -51 -55 -54 60 -24 -39 -57 -60 -61 Ниже приведены листинг программы аппроксимации функции, заданной значениями на двумерной сетке, подпрограмма ввода зна- значений средней температуры для различных пар значений высоты и географической широты, а также результаты обработки этих экспе- экспериментальных данных. Значения бикубического сплайна, найденные с помощью программы SPL08W02 в узлах (</>,, #,) равны эксперимен- экспериментальным значениям температуры, а в остальных точках погрешность аппроксимации не превышает 2—3 процентов. 10 REM "SPL08W02" 20 кем********************************************************* 30 REM*** ПРОГРАММА АППРОКСИМАЦИИ НА 35 REM*** ПРЯМОУГОЛЬНИКЕ ФУНКЦИИ 40 REM*** 2-Х ПЕРЕМЕННЫХ С ПОМОЩЬЮ БИКУБИЧЕСКОГО 231
45 REM*** СПЛАЙНА 50 rem********************************************************* 60 REM ВВОД НАЧАЛЬНЫХ ДАННЫХ ВЫПОЛНЯЕТ ПОДПРОГРАММА 70 REM ПЕРВЫЙ ОПЕРАТОР КОТОРОЙ ИМЕЕТ НОМЕР 8000 80 DIM XI <50),X2E0),X<50),Y<50),F<50,50),C<50),Z<50),P<50),UE0) 90 DIM VE0),WE0),YME0,50),SUME),A0E0),Al E0),A2E0),A3E0) 95 DIMXR1EO),XR2EO) 100 GOSUB8000 110 PRINT и ПОСТРОЕНИЕ БИКУБИЧЕСКОГО СПЛАЙНА НА ПРЯМОУГОЛЬНИКЕ" 115 PRINT ***************************************************************** 120 PRINT "XI (I) X2(J) F(IfJ) YM(I,J) DEL" 130 PRINT " — -" 140 IQ-1 150 JQ-1 160 XU1-X1(IQ):XU2-X2(JQ) 170 GOSUB 2000:YM(IQJQ)-ZSP:DEl>F(IQ,JQ)-YM(IQJQ) 180 PRINTXI(IQ),X2(JQ),F(IQ,JQ),YM<IQ,JQ),DEL 190 IFJQ<MTHENJQ-JQ+l:GOTO160 200 IF IQ<N THEN IQ-IQ+1 :GOTO 150 310 PRINT" - —" 320 PRINT:PRINT 410 PRINT и ЗНАЧЕНИЯ БИКУБИЧЕСКОГО СПЛАЙНА НА ДВУХМЕРНОЙ СЕТКЕ" 415 PRINT "****************************************************" 420 PRINT "XI (I) X2(J) YM(IJ)" 430 PRINT " " 440 IQ-1 450 JQ-1 460 XU1-XR1(IQ):XU2-XR2(JQ) 470 GOSUB 2000:YM(IQ,JQ)-ZSP 480 PRINT XR1(IQ),XR2(JQ),YM(IQ,JQ) 490 IF JQ<6 THEN JQ-JQ+1 .GOTO 460 500 IF IQ<8 THEN IQ-IQ+1 :GOTO 450 520 PRINT " " 800 END 8000 REM ПОДПРОГРАММА ВВОДА НАЧАЛЬНЫХ ДАННЫХ 8010 N-5 8020 М-5 8030 FOR 1-1 TO N 8040 READ XI (I) 8050 NEXT I 8060 FOR J-l TO M 8070 READX2U) 8080 NEXTJ 8090 FOR Ы TO N 8100 FOR J-l TOM 8110 READF(J,I) 8120 NEXTJ 8130 NEXT I 8140 FORI-1TO8 8150 XRl(I)~10*(I-l) 8160 NEXT I 8170 FOR J-l TO 6 8180 XR2(J)-3*(J-1) 8190 NEXTJ 8200 DATA 0,20,30,50,70 232
8210 DATA 3.05,6.1,9.15,12.2,15.25 8220 DATA 10,7,1,-15,-24 8230 DATA-6,-13,-19,-30,-39 8240 DATA-31,-35,-40,-51,-57 8250 DATA -54,-57,-55,-55,-60 8260 DATA-73,-71,-64,-54,-61 8270 RETURN RUN ПОСТРОЕНИЕ БИКУБИЧЕСКОГО СПЛАЙНА НА ПРЯМОУГОЛЬНИКЕ **************************************************************************** XI (I) X2(J) YM(U) DEL 0 0 0 0 0 20 20 20 20 20 30 30 30 30 30 50 50 50 50 50 70 70 70 70 70 3.05 6.1 9.149999 12.2 15.25 3.05 6.4 9.149999 12.2 15.25 3.05 6.1 9.149999 12.2 15.25 3.05 6.1 9.149999 12.2 15.25 3.05 6.1 9.149999 12.2 15.25 10 -6 -31 -54 -73 7 -13 -35 -57 -71 1 -19 -40 -55 -64 -15 -30 -51 -55 -54 -24 -39 -57 -60 -61 10 -6.000002 -31 -53.99999 -73 6.999998 -13 -34.99999 -56.99997 -70.99997 .9999994 -19 -40 -54.99999 -63.99999 -15 -30 -51 -54.99999 -54 -24.00001 -39.00001 -57.00001 -60.00001 -61.00001 0 1.430512E-06 -1.907349E-06 -1.144409E-05 0 1.907349E-06 -2.861023E-06 -1.144409E-05 -3.051758E-05 -3.051758E-05 6.556511E-07 0 -3.814697E-06 -1.525879E-05 -7.629395E-06 -9.536743E-07 0 -3.814697E-06 -1.144409E-05 0 3.814697E-06 1.144409E-05 1.144409E-05 3.814697E-06 7.629395E-06 ЗНАЧЕНИЯ БИКУБИЧЕСКОГО СПЛАЙНА НА ДВУХМЕРНОЙ СЕТКЕ *************************************************************************** XI (I) о о о о о о 10 10 10 10 10 10 20 X2(J) YM(I,J) О 3 6 9 12 15 О 3 6 9 12 15 О 31.82693 10.26309 -5.386049 -29.47434 -52.07287 -71.42115 30.41705 9.873359 -7.264258 -30.4226 -53.52607 -71.68958 26.39011 233
20 3 7.327784 20 6 -12.35361 20 9 -33.68065 20 12 -55.27025 20 15 -69.84385 30 0 20.92582 30 3 1.327858 30 6 -18.3454 30 9 -38.86931 30 12 -53.89041 30 15 -63,25799 40 0 15.41525 40 3 -5.075726 40 6 -22.69024 40 9 -43.3934 40 12 -53.81483 40 15 -58.4088 50 0 6.428567 50 3 -14.75322 50 6 -29.40961 50 9 -49.99892 50 12 -54.9457 50 15 -54.09056 60 0 .9163078 60 3 -19.19635 60 6 -33.72065 60 9 -53.05809 60 12 -57.17545 60 15 -56.80449 70 0 -5.079691 70 3 -23.75357 70 6 -38.44809 70 9 -56.19422 70 12 -59.92438 70 15 -60.91948 Литература к главе 2 1. Айвазян С.А, Енюков НС, Мешалкин Л. Д. Прикладная статистика. М.: Финан- Финансы и статистика, 1983. 2. Алберг Дж., Нильсон Э., Уолш Дж. Теория сплайнов и ее применения. М.: Мир, 1972. 3. Бор К. Практическое руководство по сплайнам. М.: Радио и связь, 1985. 4. Бахвалов НС, Жидков Н.П., Кобельков Г.М. Численные методы. М.: Наука, 1987. 5. Василенко В.А. Сплайн-функции: теория, алгоритмы, программы. Новосибирск: Наука, 1983. 6. Вершинин В.В., Завьялов Ю.С., Павлов Н.Н. Экстремальные свойства сплайнов и задач сглаживания. Новосибирск: Наука, 1988. 7. ВоскобойниковЮ.Е., Преображенский Н.Г., Седельников А.И. Математическая обработка эксперимента в молекулярной газодинамике. Новосибирск: Наука, 1984. 8. Гребенников А.И. Метод сплайнов и решение некорректных задач теории прибли- приближений. М.: МГУ, 1983. 234
ш\ Щ ЕрУгин Н.П., Шкотало ИЗ., Бондаренко П.С. и др. Курс обыкновенных диффе- ренциальных уравнений. Киев: Вища школа, 1974. id. Зйбьялов ЯХС, Квасов Б.И., Мирошниченко В.Л. Методы сплайн-функций. М.: Наука, 1980. II, Завьялов Ю.С., Леус В.А., Скороспелое В.А. Сплайны в инженерной геометрии. М.*. Машиностроение, 1985. 12 Игнатов М.И., Певный А.Б. Натуральные сплайны многих переменных. Ленинград: Наука,1991. 13. ЛяшкоИ.И., Макаров В.Л.,СкоробогатькоА.А. Методы вычислений. Киев: Вища школа, 1977. 14. Малоэемов В.М., Певный А.Б. Полиномиальные сплайны. Ленинград: ЛГУ, 1986. 15. Макаров В.Л., Хлобыстов В.В, Сплайн-аппроксимация функций. М.: Высшая школа, 1983. 16. Математика и САПР. М.: Мир, том 1,1988; том 2,1989. 17. ПуарьеД. Эконометрия структурных изменений. М.: Финансы и статистика, 1981. \$. Стечкин СБ., СубботинЮ.Н. Сплайны в вычислительной математике. М.: Наука, 1976. 19. Форсайт Дж., Малькольм М., Моулер К. Машинные методы математических вы- вычислений. М.: Мир, 1980.
Глава 3 ПОСТРОЕНИЕ НЕЛИНЕЙНЫХ МОДЕЛЕЙ ПРИ ОБРАБОТКЕ РЕЗУЛЬТАТОВ ЭКСПЕРИМЕНТА При обработке результатов эксперимента часто возникает необ- необходимость построения нелинейных моделей. Нелинейная модель представляет собой функциональную зависимость, в которую нели- нелинейно входит один или несколько неизвестных параметров. В отли- отличие от линейных моделей, для которых построена достаточно общая теория, а также разработаны эффективные численные методы, для нелинейных моделей пока что не существует общих подходов к оце- оцениванию параметров. Поэтому при решении задач нелинейного оце- оценивания параметров в настоящее время приходится ограничиваться применением различных приближенных методов (которые представ- представляют собой итерационные процедуры). Задача нелинейного оценива- оценивания параметров в общей постановке является задачей нелинейного программирования. В данной главе рассмотрены некоторые методы нелинейного оце- оценивания параметров. Хотя для этих процедур, за исключением про- простейших случаев, и не удается доказать сходимость, они часто позволяют получить приемлемые практические результаты, Ниже рассмотрены (сформированные на основе нелинейного программиро- программирования) алгоритмы нелинейного оценивания параметров. Эти алго- алгоритмы реализованы в программах на алгоритмическом языке Бейсик для IBM-совместимых персональных компьютеров. ЗЛ. ОСНОВНЫЕ МЕТОДЫ ОЦЕНИВАНИЯ ПАРАМЕТРОВ НЕЛИНЕЙНЫХ МОДЕЛЕЙ Одной из основных задач испытаний современных сложных тех- технических систем является задача исследования зависимостей между их параметрами. Эти зависимости обычно являются нелинейными. В настоящее время математический аппарат построения нелинейных моделей находится только в начальной стадии развития. Поэтому при обработке результатов испытаний исследователю приходится ог- ограничиваться-рассмотрением линейных моделей, для оценивания па- параметров которых разработаны достаточно эффективные численные методы. Однако в некоторых случаях, несмотря на значительную сложность задачи, возникает необходимость построения нелинейных моделей. Эта ситуация наблюдается, например, в тех случаях, когда модель, найденную путем теоретических исследований, хотят ис- использовать для прогнозирования поведения системы в область, е отсутствуют экспериментальные данные [11]. 236
1 Задача нелинейного оценивания параметров формулируется сле- следующим образом. Предположим, что функциональная зависимость yas/(jci,.-» х„) между параметрами системы xi,..., хп и у неизвестна, а яэвестны только значения # функции в точках v.as (xi/v> Xn/), /'= 1,..., N. Также предположим, что в качестве приближения для функции у = /(xi ,...,xrt) можно рассматривать фун- функцию у = р(xi,..., xn; 01,..., вк)у где 0i,..., 0* — неизвестные парамет- рц. По экспериментальным данным необходимо найти приближенные значения (оценки) неизвестных параметров, а также оценить с теоретико-вероятностных позиций точность и достовер- достоверность обработки. В дальнейшем без потери общности мы будем рас- рассматривать функции только одной переменной, зависящие от нескольких неизвестных параметров. Экспериментальные значения у, функции известны с некоторы- некоторыми погрешностями. Поэтому можно предположить, что У)! = <P(xb ft»—> йО + е;'» /=1,..., ЛГ, C.1.1) вде tj — случайные ошибки, удовлетворяющие условиям Me; = 0, Dej = с?\ Mtitj = 0, i*J. C.1.2) Условия C.1.2) означают, что ошибки в экспериментальных зна- значениях функции у, являются некоррелированными случайными ве- величинами, имеющими нулевое математическое ожидание и дисперсию а*. Значения аргумента х>, соответствующие экспериментальным значениям функции уу, также измеряются с некоторыми погрешно- погрешностями. Однако в дальнейшем мы будем предполагать, что ошибки в определении значений независимой переменной являются пренебре- пренебрежимо малыми по сравнению с ошибками в значениях функции. Это условие означает, что независимая переменная х считается детерми- детерминированной величиной. Пусть 0 = @1,..., 0*) — вектор неизвестных параметров. Тогда соотношения C.1.1) можно представить в виде: = <р(х}; в) + еу, ;=1,..., N. C.1.3) Отсюда следует, что C.1.4) Одним из наиболее общих методов оценивания параметров моде- моделей (как линейных, так и нелинейных) является метод максималь- Ъй^О правдоподобия (ММП). Согласно этому методу оценки Неизвестных параметров моделей находятся из условия максимиза- Чи функции правдоподобия [1,6,18,29]. При нормально распреде- 237
ленных ошибках ts оценивание параметров по ММП сводится к шению задачи минимизации функции N *•(*) = 2 (»-?(*/;*Л . C.1.5) представляющей собой сумму квадратов отклонений эксперимен- экспериментальных значений функции от значений, найденных по модели. Ме- Метод оценивания параметров, основанный на минимизации целевой функции вида C.1.5), обычно называют ратов (МНЮ. Если модель является линейной, т.е. C.1.6) то МНК-оценки неизвестных параметров можно найти путем реше- решения системы нормальных уравнений, представляющих собой систему линейных алгебраических уравнений. Эта система получается из ус- условий ■4/1 "~ U , I ~* I,..., К . Оценки $ параметров 0,- линейной модели, найденные с помощью МНК, являются несмещенными, состоятельными, эффективными и имеют наименьшую дисперсию [2,12,14,18,25]. Для нелинейной модели система нормальных уравнений C.1.7) является нелинейной, причем задача решения этой системы, как правило, намного сложнее задачи непосредственной минимизации функции C.1.5). Поэтому при решении задач нелинейного оценива- оценивания параметров в настоящее время широко применяются различные численные методы оптимизации. Если ошибки эксперимента нор- нормально распределены, то некоторые из оптимальных свойств линей- линейных оценок параметров сохраняются также для оценок параметров нелинейных моделей [12,14,18]. Вектор неизвестных параметров #, который необходимо оценить по экспериментальным "данным, может принадлежать как всему про- пространству £*, состоящему из всевозможных к -мерных векторов, так и некоторому его подмножеству D. Это множество чаще всего задает- задается с помощью ограничений на неизвестные параметры, представлен- представленных в виде равенств или неравенств. Поэтому задача минимизации функции C.1.5) является задачей нелинейного программирования. В общем виде ее можно сформулировать следующим образом: C.1.8) 238
= 0 , / = 1,..., р ; C.1.9) , C.1.10) , C.1.11). ^ 0} , у А > • • •» > В задаче нелинейного оценивания ограничения на параметры от- ответствуют, когда к этим параметрам не предъявляется никаких тре- требований. Наиболее часто в задачах нелинейного оценивания параметров встречаются простейшие ограничения вида C.1.11). В дом случае область D является к -мерным параллелепипедом. В современном нелинейном программировании пока что не раз- работаны общие методы, позволяющие решать произвольные задачи деда C.1.8)—C.1.11) и вряд ли можно надеяться, что в ближайшем будущем такие методы будут созданы. Это обусловлено тем, что ре- реальные задачи минимизации обычно очень сильно отличаются друг ОТ Друга как по своей природе, так и по размерности, поэтому боль- большинство методов нелинейного программирования ориентировано на решение определенных классов оптимизационных задач. Задачи нелинейного оценивания параметров, рассматриваемые как нелинейные оптимизационные задачи, имеют следующие осо- особенности [6,29]: — число неизвестных параметров обычно является малым (не более 10ч-15); :— минимизируемая функция Ф*(в) является сильно нелинейной (ста имеет глубокие "овраги"); — отсутствуют, или имеется небольшое число ограничений в ви- виде неравенств (обычно есть только ограничения вида C.1.11)); — практически нет ограничений в виде равенств. В зависимости от характера информации о целевой функции используемой в алгоритмах минимизации, различают методы нулевого, первого и второго порядка. Методы нулевого порядка ис- оользуют при поиске минимума функции Ф*@) только ее значения • некоторых точках. При определении минимума функции с по- помощью методов первого порядка вместе со значениями функции ис- используются ее производные. В методах второго порядка> наряду с ^формацией, необходимой для методов первых двух типов, необхо- необходимо знать также матрицу вторых производных [3-7, 9-13, 15-17, Ю. 20, 23, 24, 26-30]. В этой главе в дальнейшем будет рассмотрено применение для Решения задач нелинейного оценивания следующих основных чис- численных методов оптимизации: 1) методов нулевого порядка: а) метода покоординатного спуска Хука-Дживса; б) симплексного метода Нелдера-Мида; в) методов случайного поиска; 2) методов первого порядка: а) градиентных методов; 239
б) методов Дэвидона-Флетчера-Пауэла и Флетчера-Ривеа; в) метода Ньютона-Гаусса; г) метода Левенберга-Марквардта; 3) методов второго порядка: а) метода Ньютона-Рафсона. Эти методы реализуются с помощью итерационных процедур вида &^ = №+piPiy C.1.12) где pi > 0 — величина шага из точки 0^ в направлении Pi, i = 0,1,2,3,..., &0) — начальное приближение. В зависимости от стратегии выбора величинр,-, а также векторов направлений pt, мож- можно йолучить различные варианты алгоритмов нелинейного оценива- оценивания параметров. 3.2. МЕТОДЫ ОДНОМЕРНОЙ МИНИМИЗАЦИИ Подавляющее большинство методов нелинейного программиро- программирования, применяемых при нелинейном оценивании параметров, бази- базируются на различных методах поиска минимума функции одной переменной. Одномерная минимизация обычно используется при по- поиске точки минимума по направлению. Эффективность методов ми- минимизации функций многих переменных существенно зависит от эффективности методов одномерной минимизации. В методах нелинейного программирования поиск точки миниму- минимума функции осуществляется следующим образом. Начиная с некото- некоторого начального приближения &0) выполняется последовательность итераций. На (i + 1)-м шаге итерационного процесса находится при- приближение 0°+1) = &г) + piPi, где/>, — величина шага, рь — направле- направление движения, fl^ — приближение j'-й итерации. При этом алгоритм является наиболее эффективным, если величина шага pi выбирается из условия минимума функции тр(р) = Ф*(^:) + ppi), которая рас- рассматривается как функция от параметра р. Чем быстрее алгоритм од- одномерной минимизации позволяет найти минимум функции ?/'(/>), тем более эффективными будут основанные на нем многомерные ме- методы. На первый взгляд может показаться, что задача одномерной ми- минимизации является достаточно простой. Пусть, например, необхо- необходимо найти минимум функции /(*), заданной на отрезке [0, 1 ]» с точностью 0,001. Для этого отрезок [0, 1 ] разобьем на 2000 одинако- одинаковых интервалов и в каждой из точек разбиения вычислим значение функции. В качестве решения задачи выберем точку, в которой функ- функция имеет минимальное значение. При этом интервал, которому принадлежит точка минимума, имеет длину 0,001. Однако точку ми- минимума этой функции можно найти, выполнив значительно меньшее 240
количество вычислений. Для этого отрезок [0,1 ] разобьем на 20 уча- участков и в каждой из точек разбиения вычислим значение функции. Эта процедура позволяет сократить в 10 раз интервал, которому при- принадлежит точка минимума функции. Найденный интервал снова разбивают на 20 участков, среди которых определяется интервал, со- содержащий точку минимума. Повторив еще раз указанные вычисле- вычисления, мы можем найти точку минимума с точностью 0,001. Второй метод оказался более эффективным, так как для определения точки минимума по первому методу необходимо вычислить 2001 значение функции, тогда как по второму всего лишь 59. Этот пример показы- показывает, что эффективность одномерной минимизации существенно за- зависит от выбора стратегии поиска. В нелинейном программировании интервал, которому принадле- ясит точка минимума, принято называть интервалом неопределенно- неопределенности. В дальнейшем мы будем предполагать, что функция одной переменной является унимодальной. т.е. имеет только одну точку минимума. Ниже мы рассмотрим некоторые методы одномерной ми- нимизации. В этих методах поиск минимума осуществляется путем целенаправленного сокращения интервала неопределенности. 1) Классический метод Один из подходов к решению задачи минимизации функции одной переменной подсказывает дифференциальное исчисление. Известно [4,5,7,9,27], что если кусочно-непрерывная и кусочно-дифферен- кусочно-дифференцируемая функция /(*), заданная на отрезке [a, ft], в некоторой точке х* имеет минимум, то в этой точке выполняется одно из четы- четырех условий: — функция является разрывной (разрыв 1-го рода); — производная имеет разрыв; — производная равна нулю; — либо х = а, либо х = Ь. Точки, удовлетворяющие одному из этих условий, называются ДОДОЗПитеттьными на экстремум. Поиск минимума функции начинается с выделения точек, подозри- подозрительных на экстремум. Если в некоторой точке функция имеет раз- Р**в, или разрывна ее производная, то характер экстремума легко Установить по знаку производной функции слева и справа. Значи- Значительно сложнее выделить точки, в которых производная равна нулю. •» этом случае возникает необходимость решения вообще говоря не- нелинейного уравнения f(x) = 0. Если нам все же удалось найти ре- решения этого уравнения, то необходимо проводить дополнительные Исследования, так как среди точек, в которых производная равна ку- ^ могут быть как точки максимумов и минимумов функции, так и перегиба. Поэтому в практических расчетах, за исключением "Ростейших случаев, стремятся избежать минимизации функции пу- 241
тем приравнивания ее производной нулю. Более эффективными яв- являются различные методы поиска экстремума, в которых нспользу- ются только значения функции в специальным образом выбранных точках. 2) Дихотомический поиск минимума функции В начале этого раздела мы рассмотрели простейший метод по- поиска, при котором точка минимума определяется по значениям функции на равномерной сетке. Пусть унимодальная функция за- задана на отрезке [а, Ь]. Тогда для того, чтобы сократить интервал не- неопределенности до длины <5i = 2<5, необходимо вычислить N = [2(Ь-а)/д ] + 1 значений функции, где <5 — длина отрезка раз- разбиения, [Q] — целая часть числа Q = 2{Ь-а) I д . Более эффективным методом поиска минимума функции явля- является дихотомический поиск, который часто называют методом деле- деления отрезка пополам [4,7,9,20,26]. Дихотомический поиск, в отличие от равномерного поиска, позволяет значительно сократить объем вычислений, так как в нем используется информация, пол- полученная на предыдущих этапах. Очевидно, что если функция f(x) является унимодальной на от- отрезке [а, Ь]у то для того, чтобы сократить интервал неопределенно- неопределенности, необходимо вычислить значения функции как минимум в двух точках (рис. 3.1). Рис. 3.1. Сокращение интервала неопределенности 242
Если ДА) < f(u), то интервалом неопределенности будет отрезок [а, М ]» если же/0) > Л/0»то интервалом неопределенности является урезок [Я, ft]. Каждый из этих интервалов имеет длину соответст- соответственно (/г — а) и (ft — Я). Интервал неопределенности имеет наимень- наименьшую длину, если fi = Я = (а 4- ft)/2. Однако в этом случае две точки Аи/* вырождаются в одну. Поэтому выбираются точки Я i и//1 , распо- расположенные симметрично относительно середины интервала (а + ft)/2 на расстоянии г, где е > 0 — малое число. В методе дихотомии ин- интервал неопределенности выбирается в зависимости от значений функции f(x) в точках Хи/л\ . Алгоритм дихотомического поиска можно сформулировать сле- следующим образом. Пусть функция f(x) унимодальна на отрезке [af ft]. 1) Начальный этап. Выбирается положительное малое е > О, а также конечное значение д > О длины интервала неопределенности. Положим а\ = a, fti = ft. 2) Основной этап. а) Если ft; — си < E, то дс*Е [а, ft] и вычисления прекращаются; ес- если же ft/ — ui > 5, то определяются величины 1 а< + & аг + bt М = —2 е» /*' - —9— € C.2.1) и переходим к пункту б). б) если f(Xi) < f(/ii)y то cii+i = cii> ft,+i = //, . В противном случае «i+i = Ai, fti+i = fti. После этого i заменяется на (i -ь 1) и осуществляет- осуществляется переход к пункту а). Следует подчеркнуть, что в начале (i + 1)-й итерации длина ин- интервала неопределенности равна И = (fti+1 — #i+l) = C.2.2) Если д > 0 — длина конечного интервала неопределенности, то ми- минимальное число N вычислений значений функции, необходимых Для достижения заданной точности, можно найти из условия C.2.3) В качестве оптимального выбирается наименьшее значение , 4>и котором неравенство C.2.3) выполняется. Очевидно, что число * можно взять равным числу 1 Jb-a 1 + 1 , C.2.4) [Q] — целая часть числа Q = r-тг In —j— . 243
3) Метод золотого сечения Эффективность метода поиска экстремума можно охарактеризо. вать с помощью коэффициента сжатия 5* /([a, b]) ~ b^~a' а2-5> где /([а, Ь ]) — длина отрезка [а, Ъ ], /([а,, А ])— длина интервала не- неопределенности на 1-й итерации. В дихотомическом поиске коэффи. циент сжатия # приближенно равен @,5)'. Более эффективным методом, по сравнению с дихотомическим поиском, является метод золотого сечения. Коэффициент сжатия этого метода & = @.618)' больше коэффициента сжатия дихотоми- дихотомического поиска. Однако в методе золотого сечения на каждом этапе итерационного процесса вычисляется только одно значение функции в точке, которая выбирается таким образом, чтобы это значение да- давало новую информацию. Пусть [а, Ь] — начальный интервал неоп- неопределенности. Точка х делит отрезок [а, Ь] по правилу золотого сечения, если (х - а)/(Ь - а) = (Ь - х)/(х - а). Точка золотого се- сечения делит отрезок [я, Ь] таким образом, что отношения большего отрезка ко всему отрезку равно отношению меньшего отрезка к боль- большему (см. рис. 3.2). Рис. 3.2. Метод золотого сечения Введем обозначения : z = b — a, i\ = b — x, определению золотого сечения получим = x — а .Тогда п 244
r< — = —. C.2.6) Z Z2 Из определения величин z, z\, z2 следует, что z = z{ + z2 , Тогда соотношение C.2.6) можно представить в виде El) + El _ ! = о . C.2.7) Z, j Z! решая это квадратное уравнение относительно (zi/zi), получим, что значение положительного корня равно 0,618. Преимущества метода золотого сечения проявляются на первых же шагах итерационного процесса (за исключением начального), так как на каждом шаге есть одно значение функции (из предыдущего этапа) и необходимо вы- вычислять еще одно значение функции. Алгоритм метода золотого сечения можно сформулировать сле- следующим образом [4,5,7,9,20 ]„ .1. Начальный этап. Пусть д — длина конечного интервала неоп- неопределенности, [а\, Ь\ ] —- начальный интервал неопределенности (а\ = a, fti = b). Положим Ai = ai + A - a)(bi - ai) , //i = a\ + a(b\ - ax) , щеа « 0,618. Вычислив /(Ai), /(wi) и приняв i - 1, переходим к ос- основному этапу. 2. Основной этап. а) Если ft, — а, < 6, то х*Е [а„ ft, ] и процесс вычислений прерыва- прерывается. В противном случае, если/(А,) > /(^{), то переходим к шагу б) и если ДА,) < /(/г,), то к шагу в). б) Принимаем #м = A,-, ft{+i = fti, А,+1 =//,,/i/+i = a,+i -f a(fti+i — a, Вычислив f(/ii+i), переходим к пункту г), в) Положим /^/+i = Аг, находим/(At4i). После этого переходим к пункту г). г) Параметр цикла г заменяем на / -ь 1 и переходим к пункту а). Если длина конечного интервала неопределенности равна <5, то достижения требуемой точности число N вычислений значений Функции по методу золотого сечения можно найти из условия @,618)" <—— . C.2.8) о — а При этом в качестве N выбирается наименьшее целое положи- целое число Afc, для которого выполняется неравенство . Очевидно, что число N* равно 245
= [ - 2,07785 ln^-^] + 1 , C.2.9) где [Q] — целая часть числа Q = -2,07785 ln(E/(ft-a)). Рассмотренный алгоритм можно использовать для решения зада- задачи нелинейного оценивания. В этом случае должна минимизировать- минимизироваться сумма квадратов отклонений C.1.5). Алгоритм нелинейно^ оценивания по МНК с помощью метода золотого сечения реализован в программе NREG01W1. Ниже представлены листинг этой програм- программы, а также результаты ее выполнения при решении задачи аппрок- аппроксимации функции y(t;x) = £~~*cos3f noN" 11 значениям yi = e'06tJcosCtj) + 0.05(£у - 0,5), t, = 0.5(/ - 1), у = 1,..., N, где |у — равномерно распределенные на [0, 1 ] псевдослучайные чис- числа, полученные с помощью стандартной подпрограммы RND, х — неизвестный параметр. 10 REM'NREGOIWI" 20 rem***************************************************************** 30 REM"» ПРОГРАММА ОЦЕНИВАНИЯ ПАРАМЕТРА X 35 REM*** НЕЛИНЕЙНОЙ МОДЕЛИ YU-F(XU;X) 40 REM*** МЕТОДОМ "ЗОЛОТОГО СЕЧЕНИЯ" 50 rem***************************************************************** 60 REM ЗНАЧЕНИЯ НЕЛИНЕЙНОЙ МОДЕЛИ ВЫЧИСЛЯЮТСЯ 65 REM В ПОДПРОГРАММЕ, 70 REM ОПРЕДЕЛЕННОЙ ОПЕРАТОРАМИ 1000-1020 80 DIMXLA00),YLA00),YMA00) 85 GOSUB 8000 90 PRINT:PRINT:PRINT 95 PRINT "ОЦЕНИВАНИЕ НЕИЗВЕСТНОГО ПАРАМЕТРА X НЕЛИНЕЙНОЙ МОДЕЛИ YU-F(XU;X) 98 PRINT "ПО ЭКСПЕРИМЕНТАЛЬНЫМ ЗНАЧЕНИЯМ YL(I) В ТОЧКАХ XL(I),I-1,...,N" 100 PRINT "************************************************************" 105 U-.381966 110 V-l-U 120 XO-A 130 Xl-A-i-U*(B-A) 140 X2-A-i-V*(B-A) 150 X3-B 160 X-Xl 170 GOSUB 3000 180 Fl-Z 190 X-X2 200 GOSUB 3000 210 F2-ZT 220 PRINT "ПОСЛЕДОВАТЕЛЬНОСТЬ ИТЕРАЦИЙ" 225 PRINT "- " 230 PRINT Х0ДЗ 240 IFF2<F1GOTO340 250 DX-X2-X0 260 X3-X2 270 X2-X1 246
280 X1-XOHJ*DX 290 F2-F1 зоох-xi 310 GOSUB 3000 320 Fl-Z 330 GOTO 420 340 DX-X3-X1 350 XO-X1 360 X1-X2 370 X2-X0+V*DX 380 F1-F2 390 X-X2 400 GOSUB 3000 410 F2-Z 420 IF DX>EPS п^то 230 430 PRINT"—- - " 435 PRINT 440 PRINT "♦*♦♦♦♦*♦♦*♦♦*♦♦♦♦*♦♦**♦*♦♦*♦**" 460 PRINT "ОЦЕНКА ПАРАМЕТРА Х-";Х 470 PRINT "♦♦♦***♦♦♦*♦♦*♦♦♦♦♦♦**♦♦♦**♦♦*♦" 475 PRINT 490 PRINT " СУММА КВАДРАТОВ ОТКЛОНЕНИЙ SUM(YL(I)-YM(I))^2-";F1 500 PRINT 510 PRINT "НОМЕР ТОЧКИ ЗНАЧ.АРГУМ. ЗНАЧ. ФУНКЦ. ЗНАЧ МОДЕЛИ РАЗНОСТИ" 520 PRINT " s " 530 FOR 1-1 ТО N 540 DEL-YL(I)-YMd) 550 PRINT I,XL(I),YL<I),YM<I),DEL 560 NEXT I 570 PRINT " 580 PRINT 590 PRINT "♦♦♦♦♦♦♦♦♦♦♦♦♦♦**♦♦♦♦♦♦***♦♦♦♦♦*♦♦♦♦♦♦♦*♦♦♦♦♦♦♦*♦♦♦♦♦♦♦*♦♦♦♦♦♦♦•• 600 PRINT:PRINT 620 INPUT "ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. АРГУМЕНТА XMIN,XMAX";XMIN,XMAX 630 INPUT "ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. ФУНКЦИИ YMIN,YMAX";YMIN,YMAX 650 PRINT 660 REM GOSUB 9000 670 MARKER-2:GOSUB 9500 680 REM MARKER-2: GOSUB 10000 700 END 1000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ АППРОКСИМИРУЮЩЕЙ ФУНУЦИИ 1010 YU-EXP(-X*XU)*COSC*XU) 1020 RETURN 3000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ОСТАТОЧНОЙ СУММЫ КВАДРАТОВ ЗОЮ Z-0 3020 FOR 1-1 ТО N 3030 XU-XL(I):GOSUB1000:YM(I)-YU 3040 Z-Z+(YL(I)-YM(I))^2 3050 NEXTI 3060 RETURN J00O REM ПОДПРОГРАММА ВВОДА НАЧАЛЬНЫХ ДАННЫХ «010 N-11 &020 FOR 1-1 ТО N 247
8030 XL(I)-.5*(I-1) 8040 YL(I)-EXP(-.6*XL(I»*COSC*XL(I)) 8050 YL(I)-YL(I)+.05*(RND-.5) 8060 NEXT I 8110 INPUT "ВВЕДИТЕ ЗНАЧЕНИЕ А ЛЕВОГО КОНЦА ИНТЕРВАЛА <А,В): А-И;А 8120 INPUT "ВВЕДИТЕ ЗНАЧЕНИЕ В ПРАВОГО КОНЦА ИНТЕРВАЛА (А,В):В-И;В 8140 INPUT "ВВЕДИТЕ ТОЧНОСТЬ ОПРЕДЕЛЕНИЯ ОЦЕНКИ ПАРАМЕТРА EPS-' ;EPS 8190 RETURN 9000 REM "GR9000": ПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА ФУНКЦИИ 9010 PRINT и ":PRINT ' ГРАФИК НЕЛИНЕЙНОЙ МОДЕЛИ":№ШТ " " 9020 INPUT 'ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X:NXD-";NXD 9030 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y:NYD-";NYD 9050 NY-NYD+1 9060 CLS:SCREEN2:DY-(YMAX-YMIN)/NYD:FORI-1 ТО NY:Y-2Of 160/NYD* (ID 9070 LINE G4.Y) - E74,Y) :NEXT I:NX-NXEH-1 9080 FORI-1 TONX:X-84+48a/NXD*(I-l):LINE (X,12b(X,188):NEXTI 9090 R-23 9100 FORK-0TONYD 9110 LOCATE R 1 9120 SY-YMIN+DY*K:PRINT USING ft#.###";SY 9130 R-R-20/NYD 9135 NEXT К 9140 C-7:DX-(XMAX-XMIN)/NXD 9150 FOR K-0 TO NXD:kEY OFF:LOCATE 24,C 9160 SX-XMIN+DX*K 9170 PRINT USING "####.##";SX; 9180 C-C+60/(NXD+0) 9185 NEXT К 9310 XA-E64-84) / (XMAX-XMIN):YA-( 180-20) /(YMAX-YMIN) 9320 FOR IX-84 TO 564:XU-XMIN+(IX-84) /480* (XMAX-XMIN) 933a GOSUB 1000 9340 IY-180-(YU-YMIN)*YA 9350 IFIY<20ORIY>180THEN9370 9360 IF IX-84 THEN PSET (IX,IY) 9365 LINE-(IX,IY) 9370 NEXT IX 9380 FOR 1-1 TO N 9390 YG-180-(YL(I)-YMIN)*YA 9400 IF YG<20 OR YG>180 GOTO 9440 9410 XG-480* (XL(I) -XMIN) / (XMAX-XMIN)+84 9420 PSET <XG,YG) 9430 DRAW "E2G4E2H2F4H2E2D4L4U4R4G2" 9440 NEXT I 9450 RETURN 9500 REM MGRAF9500" 9510 XS-(XMIN-i-XMAX)/2 9520 YS-(YMIN+YMAX)/2 9540 SCREEN 2:CLS:KEY OFF 9550 VX-XMAX-XMIN:DX-300/VX:VY-YMAX-YMIN:DY-120/VY 9560 FOR IX-40 TO 440 9570 XU-XMIN+(IX-40)/400*VX 9580 GOSUB 1000 9590 IY-125-(YU-YMIN)*DY 248
9600 IF IX-40 THEN PSET (IX,IY) :GOTO 9620 9610 UNE-(IX,IY) 9620 NEXT IX 96Э0 FOR IE-1 TO N 9640 YE-125-(YL(IE)-YMIN)*DY 9650 IF YE<5 OR YE>125 GOTO 9740 9660 XE-400*(XL(IE)-XMIN)/VX+40 9670 PSET (XE,YE) 9680 ON MARKER GOTO 9690,9700,9710,9720,9730 9690 DRAW MU2D4U2L4R8Uft:GOTO 9740 9700 DRAW -E2L4F4L4E3-:GOTO 9740 9710 DRAW ftE2D4H4D4E2L4R8L4M:GOTO 9740 9720 DRAW f'E2G4E2H2F4H2L4R8Uf':GOTO 9740 9730 DRAW MU2G3R6H3D2ft 9740 NEXT IE 9750 LINE D0,5)-D40,5) 9760 UNE D0,125)-D40,125) 9770 LINE D0,5)-D0,125) 9780 LINE D40,5)-D40,125) 9790 FORY-5TO 125 STEP 12 9800 UNE D0,Y)-D3,Y) 9810 UNE D4O,Y)-D37,Y) 9820 NEXTY 9830 LOCATE 1,2:PRINT YMAX 9840 LOCATE 9.2:PRINTYS 9850 LOCATE 16,2:PRINTYMIN 9860 FOR X-79 TO 440 STEP 40 9870 UNE(X,125)-(X,122) 9880 UNE(X+1,125)-(X+1,122) 9890 UNE (X,5)-(X,8) 9900 UNE(X+1,5)-(X+1,8) 9910 NEXTX 9920 LOCATE 17,4:PRINTXMIN 9930 LOCATE 17,29:PRINT XS 9940 LOCATE 17,54:PRINTXMAX 9950 A$-INPUT$A) 9960 ENP 10000 REM "GR 10000й ПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА ФУНКЦИИ 10010 PRINT и SPRINT и ГРАФИЧЕСКОЕ ИЗОБРАЖЕНИЕ РЕЗУЛЬТАТОВ AnnPOKCHMAUHH":PRINT " и 10020 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X:NXI>-";NXD 10030 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y:NYD-";NYD 10040 NY-NYIH1 10050 CLS:SCREEN 2:DY-(YMAX-YMIN)/NYD:FOR 1-1 TO NY:Y-#H160/NYD*(I-l) 10060 UNEG6,Y)-(90,Y):NEXTI:NX-NXD+l 10070 FORI-lTONX:X-84+480/NXD*(I-l):LINE (X,176)-(X,184):NEXTI 10080 LINE (84,12)-(84,188):LINE (84,180)-E68,180) 10090 R-23 10100 FORK-OTONYD Ю110 LOCATE R,3 10120 SY-YMIN+DY*K:PRINT USING "#.##M;SY 10130 R-R-20/NYD 10140 NEXT К 10150 C-7:DX-(XMAX-XMIN)/NXD 10160 FOR K-0 TO NXD:KEY OFF:LOCATE 24,C Ю170 SX-XMIN+DX*K 249
10180 PRINT USING "####.##";SX; 10190 C-C+60/(NXEHO) 10200 NEXT К 10210 VX-XMAX-XMIN:VY-YMAX-YMIN:XA-480/VX:YA-160/VY 10230 FOR IX-84 TO 564: XU-XMIN+(IX-84)/480* VX 10240 GOSUB 1000 10250 IY-180-(YU-YMIN)*YA 10260 IF IY<20 OR IY>180 THEN 10290 10270 IF IX-84 THEN PSET (IX,IY) 10280 LINE-(IX,IY) 10290 NEXT IX 10300 FORIE-1TON 10310 YE-180-(YL(IE)-YMIN)*YA 10320 IFYE<20ORYE>1180GOTO10410 10330 XE-480*(XL(IE)-XMIN)/VX+84 10340 PSET(XE.YE) 10350 ON MARKER GOTO 10360,10370,10380,10390,10400 10360 DRAW "U2D4U2L4R8L4":GOTO 10410 10370 DRAW "E2L4F4L4E3":GOTO 10410 10380 DRAW "E2D4H4D4E2L4R8L4":GOTO 10410 10390 DRAW "E2G4E2H2F4H2L4R8L4":GOTO 10410 10400 DRAW U2G3R6H3D2" 10410 NEXT IE 10420 RETURN RUN ВВЕДИТЕ ЗНАЧЕНИЕ А ЛЕВОГО КОНЦА ИНТЕРВАЛА (А,В): А-? 0 ВВЕДИТЕ ЗНАЧЕНИЕ В ПРАВОГО КОНЦА ИНТЕРВАЛА (А,В): В-? 2 ВВЕДИТЕ ТОЧНОСТЬ ОПРЕДЕЛЕНИЯ ОЦЕНКИ ПАРАМЕТРА EPS-? 0.000 ОЦЕНИВАНИЕ НЕИЗВЕСТНОГО ПАРАМЕТРА X НЕЛИНЕЙНОЙ МОДЕЛИ YU-F(XU;X) ПО ЭКСПЕРИМЕНТАЛЬНЫМ ЗНАЧЕНИЯМ YL(L) В ТОЧКАХ XL(I),I-1 N **************************************************************************** ПОСЛЕДОВАТЕЛЬНОСТЬ ИТЕРАЦИЙ 0 0 .472136 .472136 .472136 .472136 .5410197 .5835921 .5835921 .5998533 .5998533 .6060646 .6060646 .6084371 .6084371 .6084371 .6089972 .6089972 .6092111 .6092111 .6092111 2 1.236068 1.236068 .9442719 .763932 .6524758 .6524758 .6524758 .6261646 .6261646 .6161146 .6161146 .6122758 .6122758 .6108096 .6099034 .6099034 .6095573 .6095573 .6094251 .6093^33 250
f**************************************** ОЦЕНКА ПАРАМЕТРА Х- .6093121 ***************************************** СУММА КВАДРАТОВ ОТКЛОНЕНИЙ SUM(YL(I)-YM(I))/V2- 2.476492E-03 ЗНАЧЕНИЕ РАЗНОСТИ МОДЕЛИ НОМЕР ЗНАЧЕНИЕ ЗНАЧЕНИЕ ТОЧКИ АРГУМЕНТА ФУНКЦИИ 1 2 3 4 5 6 7 8 9 10 11 0 .5 1 1.5 2 2.5 3 3.5 4 4.5 5 .9810675 5.999646Е-02 -.5248764 -7.421505Е-02 .3041404 5.602971Е-02 -.1510932 -6.050661 Е-02 5.691519Е-02 6.250746Е-02 -2.76291 ЗЕ-02 1 5.215999Е-02 -.5382835 -8.451439Е-02 .2838616 .075565 -.1464596 -5.636522Е-02 7.375371Е-02 3.834115Е-02 -3.610197Е-02 -1.893252Е-02 7.836469Е-03 1.340717Е-02 1.029935Е-02 2.027881 Е-02 -1.953529Е-02 -4.633546Е-03 -4.141383Е-03 -1.683853Е-02 2.416632Е-02 8.472841Е-03 ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. АРГУМЕНТА XMIN.XMAX? 0,5 ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. ФУНКЦИИ YMIN.YMAX? -1,1 Значения (jcy, yj), а также аппроксимирующая их нелинейная модель, полученная с помощью программы NREG01W1, показаны на рис. 3.3. 1 8 -1 5 Ч 3.3. Нелинейная зависимость у - е ^cos^f), х = 0.6093121, аппроксимирую- аппроксимируются #-11 значений у/ = ехр(-0.6х;) cosCjc;) + 0.05(£y - 0.5), х, = 0.5(j - 1) , ♦ * If., 11, найденная методом "золотого сечения" 251
В качестве одной из тестовых для программы NREG01W1 сматривалась также функция у = <p(t;x) = e~° 6tcos(xt). Неизвестный параметр х оценивался по рассмотренным выше данным. Ниже при* ведены подпрограмма ввода начальных данных, а также результаты выполнения программы NREG01W1. 8000 REM ПОДПРОГРАММА ВВОДА НАЧАЛЬНЫХ ДАННЫХ 8010 N-11 8020 FOR I-l TO N 8030 XL(I)-.5*(I-1) 8040 YL(I)-EXP(-.6*XL(I))*COSC*XL(D) 8050 YL(I)-YL(I)+.05*(RND-.5) 8060 NEXT I 8110 INPUT "ВВЕДИТЕ ЗНАЧЕНИЕ А ЛЕВОГО КОНЦА ИНТЕРВАЛА (A,R):A-';A 8! 20 INPUT "ВВЕДИТЕ ЗНАЧЕНИЕ В ПРАВОГО КОНЦА ИНТЕРВАЛА (А,В):В-";В 8140 INPUT "ВВЕДИТЕ ТОЧНОСТЬ ОПРЕДЕЛЕНИЯ ОЦЕНКИ ПАРАМЕТРА EPS-";EPS 8190 RETURN RUN ВВЕДИТЕ ЗНАЧЕНИЕ А ЛЕВОГО КОНЦА ИНТЕРВАЛА (А,В>: А-? 0 ВВЕДИТЕ ЗНАЧЕНИЕ В ПРАВОГО КОНЦА ИНТЕРВАЛА (А,В): В-? 5 ВВЕДИТЕ; ТОЧНОСТЬ ОПРЕДЕЛЕНИЯ ОЦЕНКИ ПАРАМЕТРА EPS-? 0.0001 ОЦЕНИВАНИЕ НЕИЗВЕСТНОГО ПАРАМЕТРА X НЕЛИНЕЙНОЙ МОДЕЛИ YU-F(XU;X) ПО ЭКСПЕРИМЕНТАЛЬНЫМ ЗНАЧЕНИЯМ YL(L) В ТОЧКАХ ПОСЛЕДОВАТЕЛЬНОСТЬ ИТЕРАЦИЙ 0 1.90983 1.90983 2.63932 2.63932 2.917961 2.917961 2.917961 2.983739 2.983739 2.983739 2.999267 2.999267 2.999267 3002933 3.002933 3.002933 3.003798 3.003798 3.003798 3.004002 3.004129 3.004129 5 5 3.81966 3.81966 3.368811 3.368811 3.196601 3.09017 3.09017 3.049517 3.024392 3.024392 3.014795 3.008864 3.008864 3.006598 3.005198 3.005198 3.004663 3.004333 3.004333 3.004333 3.004255 252
ОЦЕНКА ПАРАМЕТРА Х- 3.004225 СУММА КВАДРАТОВ ОТКЛОНЕНИЙ SUM(YL(I)-YM(I))^2- 2.549845Е-03 НОМЕР ЗНАЧЕНИЕ ЗНАЧЕНИЕ ЗНАЧЕНИЕ РАЗНОСТИ ТОЧКИ АРГУМЕНТА ФУНКЦИИ МОДЕЛИ 1 2 3 4 5 6 7 8 9 10 И 0 .5 1 1.5 2 2.5 3 3.5 4 4.5 5 .9810675 5.999646Е-02 -.5248764 -7.421505Е-02 .3041404 5.602971 Е-02 -.1510932 -6.050661 Е-02 5.691519Е-02 6.250746Е-02 -2.76291 ЗЕ-02 1 5.084223Е-02 -.5436418 -8.318268Е-02 .2898985 7.512985Е-02 -.1514602 -5.663325Е-02 7.736438Е-02 3.894776Е-02 -3.849809Е-02 -1.893252Е-02 9.154227Е-03 1.876539Е-02 8.967631Е-03 1.424185Е-02 -1.910015Е-02 3.669858Е-04 -3.87336Е-03 -.0204492 2.355971 Е-02 1.086896Е-02 ******************************************************************* ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. АРГУМЕНТА XMIN.XMAX? 0,5 ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. ФУНКЦИИ YMIN.YMAX? -1,1 Нелинейная модель, полученная в результате выполнения про- раммы NREG01W1, представлена на рис. 3.4. 1 I •1 3.4. Нелинейная модель у = exp(-0.6f) cos(jrt), Зс = 3.004225, аппроксимирую- ^1 значений тестовой функции, содержащих случайные погрешности 253
4) Метод Фибоначчи Одним из наиболее эффективных методов поиска минимума функций одной переменной является метод Фибоначчи. Как и в ме- методе золотого сечения, в нем на первой итерации вычисляются два значения функции, а на последующих — по одному. Однако в отли- отличие от рассмотренных выше методов, в методе Фибоначчи законо- закономерность сокращения интервала неопределенности меняется от итерации к итерации. Важнейшая особенность этого метода состоит в том, что он позволяет для заранее заданного числа вычислений фун- функции построить оптимальную процедуру поиска минимума унимо- унимодальной функции. В методе Фибоначчи используется последовательность чисел Фи- Фибоначчи, заданная с помощью рекурентной формулы = F 4- — г, т 7=12 C.2.10) где Fo = Fi - Первые двадцать значений это последовательности представле- представлены в таблице 3.1. Таблица 3.1 * Fi • Fi 0 1 10 89 1 1 11 144 2 2 12 233 3 3 13 377 4 5 14 610 5 8 15 987 6 13 16 1597 7 21 17 2584 8 34 18 4181 9 55 19 6765 Пусть [tfj, Ь\ ] —начальный интервал неопределенности, [ап — интервал неопределенности, полученный после />й итерации. Рас- Рассмотрим две точки Я,- и/г/ из интервала [я,-, &], заданные с помощью соотношений Я Л*п-1~ i-i+l - ai) i = СЦ Fn- i - a,), i = 1,..., n-1 , C.2.11) где n — заданное число вычислений функции. Новый интервал неопределенности [a,-+i, Аж ] равен [Я/, &], f{Xi) > f(/ii) , и [a,-, iii ] если/(Я/) < /(///). Тогда в первом случае новый интервал неопределенности имеет длину a,i+\ = bi — Я, = bi — at — Fn-i-\ r-i+ 1 i - ец) = 254
p( ), C.2.12) во втором F - ^(Ь ). C.2.13) г я- Отсюда следует, что как в первом, так и во втором случае на г-й итерации интервал неопределенности сжимается в {Fn-JFn-i+i) раз. Можно показать [4], что на (i + 1)~й итерации либо A,+i = /*,-, либо ^il+1 = Я/. Поэтому на каждом шаге вычисляется только одно новое значение функции. В отличие от рассмотренных выше методов, в методе Фибоначчи число итераций п необходимо задавать заранее. Это обусловлено тем, что в формулы C.2.11), по которым осуществляются вычисле- вычисления, входит число п. Обычно число п выбирается из следующих сооб- соображений. При решении практических задач минимизации всегда можно задать длину д конечного интервала неопределенности. Так как на каждом шаге интервал неопределенности сжимается в (Fn-ilFn-i+i) раз, то после п итераций интервал неопределенности сжимается в Fn раз. Отсюда следует, что если д — длина конечного интервала неоп- неопределенности, то число итераций п можно выбрать из условия < д . C.2.14) Fn После (п - 2) итераций метода Фибоначчи мы вычислим (п — 1) значение функции. На (п - 1)-м шаге (л-1 + Ьп-\) , поэтому либо Ал-1 = Цп-г , либо//л-1 = Ал-2. Отсюда следует, что тео- теоретически нет необходимости осуществлять дальнейшие вычисле- вычисления. Поэтому для того, чтобы еще сократить интервал неопределенности, точка последнего вычисления значения функции Сдвигается на малый интервал неопределенности е влево или вправо от средней точки кп-\ = /ип-\ . В результате конечный интервал неоп- неопределенности имеет длину V2(bn-i — ап-\). Число е > 0 выбирается таким образом, чтобы значения функции в точках An-i, An_i ± e бы- были различны между собой [4]. 255
Алгоритм метооа ч>иооначчи. Начальный этап. По заданным начальному [а\, Ы ] и конечному , Ъп ] интервалам неопределенности, имеющим длину соответст- соответственно F — а) и д , определяется число итераций п из условия Fn > (Ь — а)/д , а также выбирается константа различимости е. Основной этап алгоритма» а) Если ДА,) > /(///), то переходим к пункту б), если ДА,) < — то к пункту в). б) Пусть я/+1 = А/, 6,41 = 6/. После этого A,+i и /*,+i вычисляются по формулам Если i = /x~2, то переходим к пункту д); в противном случае вычис- вычисляем /(w,4i) и переходим к пункту г). в) Положим <2/+i = an bi+\ — juiy Pi+i = A,, Если i = n—2, то переходим к пункту д); иначе вычисляем/(Ai+i) и переходим к пункту г). г) Заменяем /' на i +1 и переходим к пункту а). д) Положим Ая = Ал-1, /гл = Ая + е. Если ДА„) > /(//я) , то прини- принимаем ап = Ал, Ьп = 6л-1. Если же ДАЛ) < /(//п), то ап = an-i, Ад = Ал и вычисления прекращаются. Точка минимума х*Е [ал, 6Л ]. Алгоритм нелинейного оценивания, в котором для минимизации суммы квадратов отклонений используется метод Фибоначчи, реали- реализован в программе NREG02W1. При отладке этой программы рас- рассматривались различные тестовые функции, в частности функция, иллюстрирующая работу программы NREG01W1. Ниже представле- представлены листинг программы NREG02W1, результаты аппроксимации N* 11 -ти значений тестовой задачи с помощью модели у = e'^cosftfyt а также графическое изображение значений тестовой функции и ап- аппроксимирующей ее нелинейной модели. В результате выполнения программы NREG02W1 была получена оценка 5с = 0.6093817. Гра- График нелинейной модели показан на рис. 3.5. 256
10 REM"NREGO2W1" 20 REM***************************************************************** 30 REM*** ПРОГРАММА ОЦЕНИВАНИЯ ПАРАМЕТРА X НЕЛИНЕЙНОЙ МОДЕЛИ YU-F(XU;X)B) 40 REM*** МЕТОДОМ ФИБОНАЧЧИ. (ЗНАЧЕНИЯ МОДЕЛИ, АППРОКИМИРУЮЩЕЙ ЭКСПЕРИМЕНТАЛЬНЫЕ 50 REM*** ЗНАЧЕНИЯ ФУНКЦИИ ВЫЧИСЛЯЮТСЯ В ПОДПРОГРАММЕ,ОПРЕДЕЛЕННОЙ ОПЕРАТОРАМИ 55 REM*** С НОМЕРАМИ 1000-1020) 60 кем************************************************************* 70 REM ВВОД НАЧАЛЬНЫХ ДАННЫХ ВЫПОЛНЯЕТ ПОДПРОГРАММА, 80 REM ПЕРВЫЙ ОПЕРАТОР КОТОРОЙ ИМЕЕТ НОМЕР 8000 90 DIMXLA00),YLA00),YMA00),F(80) 100 GOSUB 8000 ПО PR1NT:PRINT:PRINT 125 F(O)-I:FA)-1 130 FOR 1-2ТОМ 140 F(I)-F(I-l)+F(I-2) 150 NEXT I 160 PRINT "ОЦЕНИВАНИЕ НЕИЗВЕСТНОГО ПАРАМЕТРА X НЕЛИНЕЙНОЙ МОДЕЛИ YU-F(XU;X) 170 PRINT "ПО ЭКСПЕРИМЕНТАЛЬНЫМ ЗНАЧЕНИЯМ YL(I) В ТОЧКАХ XL<I),I-1,.. .,N" 180 PRINT "*************************************************м***********" 190 PRINT:PRINT "ПОСЛЕДОВАТЕЛЬНОСТЬ ИТЕРАЦИЙ" 195 PRINT " - " 200 Х1-А:Х2-А+((В-А)*Р(М-1)+ЕР8*<-1)лМ)/Р(М):ХЗ~В 210 X-X2:GOSUB 3000:F2-Z 220 PRINT" ТЕКУЩИЙ ИНТЕРВАЛ" 230 K-1:PRINTX1,X3 240 Х4-Х1-Х2+ХЗ 250 X-X4:GOSUB 3000:F4«Z 260 IF F4>F2 THEN GOTO 320 270 IF X2<X4 THEN GOTO 300 280 X3-X2:X2-X4:F2-F4:PRINTX1,X3 290 GOTO 360 300 XHX2:X2-X4:F2-F4:PRINTX1,X3 310 GOTO 360 320 IF X2<X4 THEN GOTO 350 330 X1-X4:PRINTX1,X3 340 GOTO 360 350 X3-X4:PRINT XI,X3 360 K-K+l 370 IF K<-M THEN GOTO 240 380 PRINT " - " 390 PRINT:PRINT "КОНЕЧНЫЙ ИНТЕРВАЛ" 395 PRINT"Am«";Xl;ft Bra-";X3 400 X-(Xl+X3)/2 410 PRINT "*♦♦♦♦♦♦**♦♦*♦♦♦**♦♦♦♦♦♦♦♦♦♦♦♦♦" 420 PRINT "ОЦЕНКА ПАРАМЕТРА Х-";Х 430 PRINT "ft*****************************" 440 PRINT 450 PRINT " СУММА КВАДРАТОВ ОТКЛОНЕНИЙ SUM(YL(I)-YM(I))~2-";F2 460 PRINT 470 PRINT "НОМЕР ТОЧКИ ЗНАЧ.АРГУМ. ЗНАЧ. ФУНКЦ. ЗНАЧ МОДЕЛИ РАЗНОСТИ" 480 PRINT" " 490 FOR I-l TO N «к. 500 257
500 DEI^YL(I)-YMtl) 510 PRINT I,XL(I),YL(I),YM(I),DEL 520 NEXT I 530 PRINT" — « 540 PRINT 550 PRINT "♦♦♦♦♦♦♦♦♦♦♦♦*♦♦♦♦♦♦♦♦♦♦♦♦♦*♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦*****♦♦♦„ 560 PRINT:PRINT 570 INPUT "ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. АРГУМЕНТА XMIN,XMAX";XMIN,XMAX 580 INPUT "ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. ФУНКЦИИ YMIN,YMAX';YMIN,YMAX 590 PRINT 600 REM GOSUB 9000 610 MARKER-2:GOSUB 9500 620 MARKER-2:GOSUB 10000 700 END 1000 REM "ZNREG1P":ПOДПPOГPAMMA ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ МИНИМИЗИРУЕМОЙ ФУНКЦИИ 1010 YU-EXP(-X*XU)*COSC*XU) 1020 RETURN 3000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ОСТАТОЧНОЙ СУММЫ КВАДРАТОВ ЗОЮ ZX) 3020 FOR I-l TO N 3030 XU-XL(I):GOSUB1000:YM(I)-YU 3040 Z-Z+(YL(I)-YM(I))~2 3050 NEXT I 3060 RETURN 8000 REM ПОДПРОГРАММА ВВОДА НАЧАЛЬНЫХ ДАННЫХ 8010 N-ll 8020 FOR I-l TO N 8030 XL(I)-.5*(M) 8040 YL(I)-EXP(-.6*XL(I))*COSC*XL(I)) 8050 YL(I)-YL(I)+.05*(RND-.5) 8060 NEXT I 8110 INPUT "ВВЕДИТЕ ЗНАЧЕНИЕ А ЛЕВОГО КОНЦА ИНТЕРВАЛА (А,В):А-";А 8120 INPUT "ВВЕДИТЕ ЗНАЧЕНИЕ В ПРАВОГО КОНЦА ИНТЕРВАЛА (А,В):В-";В 8140 INPUT "ВВЕДИТЕ ТОЧНОСТЬ ОПРЕДЕЛЕНИЯ ОЦЕНКИ ПАРАМЕТРА EPS-";EPS 8160 INPUT "ЗАДАЙТЕ ЧИСЛО ИТЕРАЦИЙ М";М 8190 RETURN 9000 REM "GR9000": ПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА ФУНКЦИИ 9010 PRINT " ":PRINT " ГРАФИК НЕЛИНЕЙНОЙ МОДЕЛИ":РК1^Т" 9020 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X:NXD-";NXD 9030 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y:NYD-";NYD 9050 NY-NYD+1 9060 CLS:SCREEN 2:DY-(YMAX-YMIN)/NYD:FOR I-l TO NY:Y-2Of 160/NYD* (I-1) 9070 LINEG4,Y)-E74,Y):NEXTI:NX-NXD+1 9080 FOR I-l TONX:X-84+480/NXD*(I-l):LINE (X,12)-(X,188):NEXTI 9090 R-23 9100 FORK-0TONYD 9110 LOCATE R 1 9120 SY-YMIN+DY*K:PRINT USING "#.###";SY 9130 R-R-20/NYD 258
0135 NEXT К 0140 C-7:DX-(XMAX-XMIN)/NXD 9150 FOR K-0 TO NXD:KEY OFF:LOCATE 24,C 0160 SX-XMIN+DX*K 9170 PRINT USING "####.##";SX; 9180 C-C+60/(NXD+0) 9185 NEXT К 9310 XA-E64-84) /(XMAX-XMIN) :YA-(i 80-20)/(YMAX-YMIN) 9320 FOR IX-84TO 564:XU-XMIN+(IX-84) /480*(XMAX-XMIN) 9330 GOSUB 1000 9340 IY-180-(YU-YMIN)*YA 9350 IF IY<20 OR IY>180 THEN 9370 9360 IF IX-84 THEN PSET (IX,IY) 9365 LINE - (IX ДY) 9370 NEXT IX 9380 FOR 1-1 TO N 9390 YG»180-(YL(I)-YMIN)*YA 9400 IF YG<20 OR YG>180 GOTO 9440 9410 XG-480* (XL(I) -XMIN) / (XMAX-XMIN) +84 9420 PSET (XG.YG) 9430 DRAW "E2G4E2H2F4H2E2D4L4U4R4G2" 9440 NEXT I 9450 RETURN 9500 REM "GRAF9500" 9510 XS-(XMIN+XMAX)/2 9520 YS-(YMIN+YMAX)/2 9540 SCREEN 2:CLS"KEY OFF 9550 VX«XMAX-XMIN:DX-300/VX:VY«YMAX-YMIN:DY-120/VY 9560 FOR IX-40 TO 440 9570 XU«XMIN+(IX-40)/400*VX 9580 GOSUB 1000 9590 IY-125-(YU-YMIN)*DY 9600 IF IX-40 THEN PSET (IXJY):GOTO 9620 9610 LINE-(IX.IY) 9620 NEXT IX 9630 FOR IE-1 TO N 9640 YE-125-(YL(IE)-YMIN)*DY 9650 IFYE<5ORYE>125GOTO9740 9660 XE-400*(XL(IE)-XMIN)/VX+40 9670 PSET (XE,YE) 9680 ON MARKER GOTO 9690,9700,9710,9720,9730 9690 DRAW "U2D4U2L4R8L4".GOTO 9740 9700 DRAW "E2L4F4L4E3":GOTO 9740 9710 DRAW "E2D4H4D4E2L4R8L4":GOTO 9740 9720 DRAW "E2G4E2H2F4H2L4R8L4":GOTO 9740 9730 DRAW "U2G3R6H3D2" 9740 NEXT IE 9750 LINE D0,5)-D40,5) 9760 LINE D0,125)-D40,125) 9770 LINE D0,5)-D0,125) 9780 LINE D40,5)-D40,125) 9790 FOR Y-5 TO 125 STEP 12 9800 LINED0,Y)-D3,Y) 9810 LINE D40,Y)-D37,Y) 9820 NEXTY 9830 LOCATE 1,2:PRINT YMAX 9840 LOCATE 9.2:PRINTYS 9850 LOCATE 16,2:PR1NT YMIN 25
9860 FOR X-79 TO 440 STEP 40 9870 LINE (X, 125)-(X, 122) 9880 LINE (X+l, 125)- (X+l, 122) 9890 LINE (X,5)-(X,8) 9900 LINE (X+l,5)-(X+l,8) 9910 NEXTX 9920 LOCATE 17,4.PRINTXMIN 9930 LOCATE 17,29:PRINTXS 9940 LOCATE 17,54:PRINT XMAX 9950 A$-INPUT$A) 9960 END 10000 REM "GR10000" ПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА ФУНКЦИИ 10010 PRINT " ":PRINT " ГРАФИЧЕСКОЕ ИЗОБРАЖЕНИЕ РЕЗУЛЬТАТОВ AnnPOKCHMAUHH":PRINT " " 10020 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X:NXD-";NXD 10030 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y:NYD-";NYD 10040 NY-NYD+1 10050 CLS:SCREEN 2:DY-(YMAX-YMIN)/NYD:FOR 1-1 ТО NY:Y-20+160/NYD*(I-l) 10060 LINEG6,Y)-(90,Y) :NEXT I:NX-NXD+1 10070 FORI-1 TONX:X-84+480/NXD*(I-l):LINE (X,176)-(X,184):NEXTI 10080 LINE (84,12)-(84,188):LINE (84,180)-E68,180) 10090 R~23 10100 FORK-OTONYD 10110 LOCATE R,3 10120 SY-YMIN+DY*K:PRINT USING "#.##";SY 10130 R-R-20/NYD 10140 NEXT К 10150 C-7:DX-(XMAX-XMIN)/NXD 10160 FOR K-0 TO NXD:KEY OFFrLOCATE 24,C 10170 SX-XMIN+DX*K 10180 PRINT USING "####.##";SX; 10190 C-C+60/(NXD+0) 10200 NEXT К 10210 VX-XMAX-XMIN:VY-YMAX-YMIN:XA-480/VX:YA-160/VY 10230 FOR IX-84 TO 564:XU-XMIN+(IX-84)/480*VX 10240 GOSUB 1000 10250 IY-180-(YU-YMIN)*YA 10260 IFIY<20 OR IY> 180 THEN 10290 10270 IF IX-84 THEN PSET (IX,IY) 10280 LINE-(IX,IY) 10290 NEXT IX 10300 FORIE-1TON 10310 YE-180-(YL(IE)-YMIN)*YA 10320 IFYE<20 OR YE>1180 GOTO 10410 10330 XE-480*(XL(IE) -XMIN) /VX+84 10340 PSET (XE YE) 10350 ON MARKER GOTO 10360,10370,10380,10390,10400 10360 DRAW "U2D4U2L4R8L4":GOTO 10410 10370 DRAW "E2L4F4L4E3":GOTO 10410 10380 DRAW "E2D4H4D4E2L4R8L4":GOTO 10410 10390 DRAW"E2G4E2H2F4H2L4R8L4":GOTO 10410 10400 DRAW "U2G3R6H3D2" 10410 NEXT IE 10420 RETURN RUN 260
ВВЕДИТЕ ЗНАЧЕНИЕ А ЛЕВОГО КОНЦА ИНТЕРВАЛА (А,В): А-? О ВВЕДИТЕ ЗНАЧЕНИЕ В ПРАВОГО КОНЦА ИНТЕРВАЛА (А,В): В«? 2 ВВЕДИТЕ ТОЧНОСТЬ ОПРЕДЕЛЕНИЯ ОЦЕНКИ ПАРАМЕТРА EPS-? 0.0001 ЗАДАЙТЕ ЧИСЛО ИТЕРАЦИЙ М? 20 ОЦЕНИВАНИЕ НЕИЗВЕСТНОГО ПАРАМЕТРА X НЕЛИНЕЙНОЙ МОДЕЛИ YU-F(XU;X) ПО ЭКСПЕРИМЕНТАЛЬНЫМ ЗНАЧЕНИЯМ YL(L) В ТОЧКАХ X ПОСЛЕДОВАТЕЛЬНОСТЬ ИТЕРАЦИЙ ТЕКУЩИЙ ИНТЕРВАЛ 0 0 .472136 .472136 .472136 .472136 .5410201 .583592 .583592 .5998514 .5998514 .6060579 .6060579 .608418 .608418 .608418 .6090305 .6090305 .6090305 .6091204 .6092103 2 1.236068 1.236068 .9442721 .763932 .6524761 .6524761 .6524761 .6261638 .6261638 .6161108 .6161108 .6122644 .6122644 .6107781 .6099043 .6099043 .609643 .6093817 .6093817 .6093817 КОНЕЧНЫЙ ИНТЕРВАЛ Am- .6092103 Вт- .6093817 ♦♦♦♦♦♦♦«♦♦♦♦♦*♦♦♦♦♦♦♦♦♦♦♦♦♦*♦♦«♦*♦♦**♦♦♦♦ ОЦЕНКА ПАРАМЕТРА Х- .609296 ***♦♦*♦♦♦******♦**♦***♦**♦*******♦♦***♦♦* СУММА КВАДРАТОВ ОТКЛОНЕНИЙ SUM (YL(I)-YM(I))~2- 2476491E-03 НОМЕР ЗНАЧЕНИЕ ЗНАЧЕНИЕ ЗНАЧЕНИЕ РАЗНОСТИ ТОЧКИ АРГУМЕНТА ФУНКЦИИ МОДЕЛИ 1 2 3 4 5 6 7 * 9 10 И 0 .5 1 1.5 2 2.5 3 3.5 4 4.5 5 .9810675 5.999646Е-02 -.5248764 -7.421505Е-02 .3041404 5.602971Е-02 -.1510932 -6.050661 Е-02 5.691519Е-02 6.250746Е-02 -2.76291 ЗЕ-02 1 5.216264Е-02 -.5383383 -8.452729Е-02 .2839193 7.558423Е-02 -.1465044 -5.638531Е-02 7.378376Е-02 3.835873Е-02 -3.612035Е-02 -1.893252Е-02 7.833816Е-03 1.346189Е-02 1.031224Е-02 2.022103Е-02 -1.955453Е-02 -4.588828Е-03 -4.121296Е-03 -1.686857Е-02 2.414874Е-02 8.491222Е-03 261
***********************************************************************ttj^ ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. АРГУМЕНТА XMIN,XMAX? О 5 ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. ФУНКЦИИ YMIN,YMAX? -J.1 1 J ■ V :\ ■ ■ 1 1 i i / 1 1 f 1 1 \ 1 I i i i п • a -г t a 1 I 2.5 5 Рис. З.5. График нелинейной модели, аппроксимирующей тестовые данные про- программы NREG02W1 При отладке программы NREG02W1 использовались данные вто- второй тестовой задачи, рассмотренной для программы NREG01W1. Ни- Ниже представлен листинг подпрограммы ввода этих данных, а также результаты выполнения для них программы NREG02W1. 8000 REM ПОДПРОГРАММА ВВОДА НАЧАЛЬНЫХ ДАННЫХ 8010 N-11 8020 FOR I-l TO N 8030 XL(I)— 5*A-1) 8040 YL(I)-EXP(-.6*XL(I))*COSC*XL(I)) 8050 YL(I)-YL(I)+.05*(RND.-.5) 80ft) NEXT I 8110 INPUT "ВВЕДИТЕ ЗНАЧЕНИЕ А ЛЕВОГО КОНЦА ИНТЕРВАЛА 8120 INPUT "ВВЕДИТЕ ЗНАЧЕНИЕ В ПРАВОГО КОНЦА ИНТЕРВАЛА (А,В):В-";В 8140 INPUT "ВВЕДИТЕ ТОЧНОСТЬ ОПРЕДЕЛЕНИЯ ОЦЕНКИ ПАРАМЕТРА EPS-";EPS 8160 INPUT "ЗАДАЙТЕ ЧИСЛО ИТЕРАЦИЙ М";М 8190 RETURN RUN 262
ВВЕДИТЕ ЗНАЧЕНИЕ А ЛЕВОГО КОНЦА ИНТЕРВАЛА (А,В): А-? О ВВЕДИТЕ ЗНАЧЕНИЕ В ПРАВОГО КОНЦА ИНТЕРВАЛА (А,В): В-? 5 ВВЕДИТЕ ТОЧНОСТЬ ОПРЕДЕЛЕНИЯ ОЦЕНКИ ПАРАМЕТРА EPS-? 0.0001 ЗАДАЙТЕ ЧИСЛО ИТЕРАЦИЙ М? 20 ОЦЕНИВАНИЕ НЕИЗВЕСТНОГО ПАРАМЕТРА X НЕЛИНЕЙНОЙ МОДЕЛИ YU-F(XU;X) ПО ЭКСПЕРИМЕНТАЛЬНЫМ ЗНАЧЕНИЯМ YL(L) В ТОЧКАХ **************************************************************************** ПОСЛЕДОВАТЕЛЬНОСТЬ ИТЕРАЦИЙ ТЕКУЩИЙ ИНТЕРВАЛ 0 1.90983 1.90983 2.63932 2.63932 2.917961 2.917961 2.917961 2.983738 2.983738 2.983738 2.999272 2.999272 2.999272 3.002915 3.002915 3.002915 3.003876 3.003876 3.003876 3.004078 5 5 3.81966 3.81966 3.368811 3.368811 3.196602 3.09017 3.09017 3.049515 3.024393 3.024393 3.014805 3.00886 3.00886 3.006558 3.005217 3.005217 3.004837 3.004458 3.004458 КОНЕЧНЫЙ ИНТЕРВАЛ Am- 3.004078 Вт- 3.004458 ***************************************** ОЦЕНКА ПАРАМЕТРА Х- 3.004268 ***************************************** СУММА КВАДРАТОВ ОТКЛОНЕНИЙ SUM(YL(I)-YM(I))~2- 2.54895Е-03 НОМЕР ТОЧКИ 1 2 3 4 5 6 7 8 9 10 11 ЗНАЧЕНИЕ АРГУМЕНТА 0 .5 1 1.5 2 2.5 3 3.5 4 4.5 5 ЗНАЧЕНИЕ ФУНКЦИИ .9810675 5.999646Е-02 -.5248764 -7.421505Е-02 .3041404 5.602971Е-02 -.1510932 -6.050661 Е-02 5.691519Е-02 6.250746Е-02 -2.76291 ЗЕ-02 ЗНАЧЕНИЕ МОДЕЛИ 1 5.089659Е-02 -.5436307 -8.327054Е-02 .2898745 7.520709Е-02 -.1514309 -5.668916Е-02 7.733648Е-02 .038984 -3.847486Е-02 РАЗНОСТИ -1.893252Е-02 9.099863Е-03 .0187543 9.055488Е-03 1.426587Е-02 -1.917738Е-02 3.377348Е-04 -3.81745Е-03 -.0204213 2.352347Е-02 1.084574Е-02 263
******************************************************************* ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. АРГУМЕНТА XMIN,XMAX? О 5 ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. ФУНКЦИИ YMIN,YMAX? ■ 1[ д График нелинейной модели, полученной с помощью программы NREG02W1, показан на рис. 3.6. i в -1 Рис. 3.6. Нелинейная модель, аппроксимирующая тестовые данные второй задачи программы NREG01W1 Рассмотрим пример практического использования программы NREG02W1 при обработке экспериментальных данных. При стати- статистической обработке результатов летно-прочностных испытаний ле- летательных аппаратов часто возникает необходимость определения интервалов корреляции исследуемых случайных процессов. ИШ£1Ь взлом корреляции называют наименьший временной интервал ть для которого значения процесса, разделенные интервалом, большим или равным Хк , являются независимыми между собой в статистиче- статистическом смысле. В настоящее время существует несколько определении интервала корреляции. Согласно одному из них Хк выбирается из ус- условия \К(Хк) < е , где К(т) — корреляционная функция, е > О — малое число (напри- 264
с е = 0,05 или е = 0,1). Это определение наиболее часто исполь- йуется при решении различных практических задач. Пусть, например, необходимо найти интервал корреляции т* случайного процесса, представляющего собой угол скручивания вала трансмиссии хвостового винта вертолета Ми-8. Значения оценки корреляционной функции с шагом At = 0.25 заданы в таблице 3.2. Таблица 3.2 ту 0.00 0.25 0.5 0.75 1.00 Ь25 1.5 1.75 2.00 2.25 2.50 2.75 */ 1 0.95 0.82 0.77 0.*4 0.70 0.65 0.63 0.58 0.55 0.50 0.47 Х(ту;а) 1 0.93 0.87 0.81 0.76 0.71 0.66 0.62 0.58 0.54 0.50 0.47 */ 3.00 3.25 3.50 3.75 4.00 4.25 4.5 4.75 5.00 5.25 5.50 5.75 % 0.44 0.43 0.41 0.40 0.37 0.35 0.33 0.29 0.28 0.27 0.25 0.20 0.44 0.41 0.38 0.36 0.33 0.31 0.29 0.27 0.25 0.24 0.22 0.20 V 6.00 6.25 6.5 6.75 7.00 7.25 7.50 7.75 8.00 8.25 8.50 0.18 0.16 0.15 0.13 0.10 0.10 0.09 0.08 0.07 0.05 0.04 0.19 0.18 0.17 0.16 0.15 0.14 0.13 0.12 0.11 0.10 0.10 Легко заметить, что значения Ку оценки корреляционной функ- функции К(т) "ложатся" на кривую, напоминающую по форме убываю- убывающую экспоненту. Поэтому естественно предположить, что К(т) Можно аппроксимировать функцией вида -alt I К(х\ а) = в которую неизвестный параметр а входит нелинейно. При оценива- оценивании параметра а этой нелинейной модели методом наименьших квадратов оценка а находится из условия минимума функции N Очевидно, что оценка параметра а должна принадлежать отрез- отрезку [0, 1 ], так как при а = 0 функция К{х\ а) является постоянной, Равной единице, а при а = 1 значения этой функции лежат ниже значений оценки К(т). Ниже представлена подпрограмма ввода на- начальных данных, а также результаты выполнения программы NREG02W1 при решении данной задачи. 265
8000 REM ПОДПРОГРАММА ВВОДА НАЧАЛЬНЫХ ДАННЫХ 8010 N-35 8020 FOR I-l TO N 8030 XL(I)-.25*(I-1) 8040 READYL(I) 8050 NEXT I 8060 DATA 1 8070 DATA 0.916 8080 DATA 0.821 8090 DATA 0.768 8100 DATA 0.736 8110 DATA 0.695 8120 DATA 0.652 8130 DATA 0.631 8140 DATA 0.579 8150 DATA 0.547 8160 DATA 0.505 8170 DATA 0.473 8180 DATA 0.442 8190 DATA 0.431 8200 DATA 0.41 8210 DATA 0.4 8220 DATA 0.368 8230 DATA 0.358 8240 DATA 0.326 8250 DATA 0.294 8260 DATA 0.284 8270 DATA 0.273 8280 DATA 0.253 8290 DATA 0.2 8300 DATA 0.179 8310 DATA 0.158 8320 DATA 0.147 8330 DATA 0.126 8340 DATA 0.105 8350 DATA 0.099 8360 DATA 0.095 8370 DATA 0.084 8380 DATA 0.074 8390 DATA 0.053 8400 DATA 0.042 8410 INPUT "ВВЕДИТЕ ЗНАЧЕНИЕ А ЛЕВОГО КОНЦА ИНТЕРВАЛА (А,В):А-";А 8420 INPUT "ВВЕДИТЕ ЗНАЧЕНИЕ В ПРАВОГО КОНЦА ИНТЕРВАЛА (А,В):В-";В 8440 INPUT "ВВЕДИТЕ ТОЧНОСТЬ ОПРЕДЕЛЕНИЯ ОЦЕНКИ ПАРАМЕТРА EPS-";EPS 8460 INPUT "ЗАДАЙТЕ ЧИСЛО ИТЕРАЦИЙ М";М 8490 RETURN RUN ВВЕДИТЕ ЗНАЧЕНИЕ А ЛЕВОГО КОНЦА ИНТЕРВАЛА (А,В): А-? 0 ВВЕДИТЕ ЗНАЧЕНИЕ В ПРАВОГО КОНЦА ИНТЕРВАЛА (А,В): В-? 1 ВВЕДИТЕ ТОЧНОСТЬ ОПРЕДЕЛЕНИЯ ОЦЕНКИ ПАРАМЕТРА EPS-? 0.000 ЗАДАЙТЕ ЧИСЛО ИТЕРАЦИЙ М? 20 ОЦЕНИВАНИЕ НЕИЗВЕСТНОГО ПАРАМЕТРА X НЕЛИНЕЙНОЙ МОДЕЛИ YU-F(XU;X) ПО ЭКСПЕРИМЕНТАЛЬНЫМ ЗНАЧЕНИЯМ YL(L) В ТОЧКАХ 66
*********************************************************** ***************** ПОСЛЕДОВАТЕЛЬНОСТЬ ИТЕРАЦИЙ ТЕКУЩИЙ О О О .145898 .236068 .236068 .236068 .2573639 .2705101 .2705101 .2705101 .2705101 .2724333 .2736133 .2736133 .2740502 .2743565 .2743565 .2744872 .2744872 .2745321 ИНТЕРВАЛ 1 .618034 .381966 .381966 .381966 .326238 .291796 .291796 .291796 .2836663 .2786398 .2755365 .2755365 .2755365 .2747934 .2747934 .2747934 .2746627 .2746627 .2746178 .2746178 КОНЕЧНЫЙ ИНТЕРВАЛ Am- .2745321 Вт- .2746178 ***************************************** ОЦЕНКА ПАРАМЕТРА Х- .2745749 ***************************************** СУММА КВАДРАТОВ ОТКЛОНЕНИЙ SUM(YL(I)-YM(I))~2- 3.206498E-02 НОМЕР ТОЧКИ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ЗНАЧЕНИЕ АРГУМЕНТА 0 0.25 0.5 0.75 1 1.25 1.5 1.75 2 2.25 2.5 2.75 3 3.25 3.5 3.75 4 4.25 4.5 4.75 5 ЗНАЧЕНИЕ ФУНКЦИИ 1 .916 .821 .768 .736 .695 .652 .631 .579 .547 .505 .473 .442 .431 .41 .4 ,368 .358 .326 .294 .284 ЗНАЧЕНИЕ МОДЕЛИ 1 .9336598 .8717206 .8138903 .7598966 .709485 .6624175 .6184726 .577443 .5391352 .5033689 .4699753 .438797 .4096871 .3825083 .3571326 .3334403 .3113198 .2906668 .2713839 .2533802 РАЗНОСТИ 0 -1Л65972Е-02 -5.072057Е-02 -4.589033Е-02 -2.389664Е-02 -1.448494Е-02 -1.041752Е-02 1.252741Е-02 1.557052Е-03 7.864773Е-03 1.631141Е-03 3.024757Е-03 3.203064Е-03 2.131295Е-02 2.749172Е-02 4.286739Е-02 3.455967Е-02 4.668021 Е-02 3.533325Е-02 2.261615Е-02 3.061983Е-02 267
22 23 24 25 26 27 28 29 30 31 32 33 34 35 5.25 5.5 5.75 6 6.25 6.5 6.75 7 7.25 7.5 7.75 8 8.25 8.5 .273 .253 .2 .179 .158 .147 .126 .105 .099 .095 .084 .074 .053 .042 .2365709 .2208767 .2062237 .1925428 .1797694 .1678435 .1567087 .1463126 . 1366062 .1275437 .1190824 .1111825 .1038066 9.692001 E-02 3.642914E-02 .0321233 -6.223679E-03 -1.354276E~02 -2.176942E-02 -2.084346E-02 -3.070869E-02 -.0413126 -3.760619E-02 -3.254369E-02 -3.508239E-02 -3.718245E-02 -5.08G659E-02 -5.4920G2E-02 фффффффффффффффффффффффффффффффффффффффффффффффффффф**ффффффффффффф ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. АРГУМЕНТА XMIN,XMAX? 0,9 ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. ФУНКЦИИ YMIN.YMAX? 0. Л В результате выполнения программы получим, что а = 0,27454. Значения аппроксимирующей функции с шагом At = 0,25 сек заданы в таблице 3.2, а также показаны в виде непрерывной кривой на рис 3.7. 1 .5 Рис. 3.7. Значения оценки корреляционной функции и аппроксимирующая фун* ция К{х) = ехр(-0.274т) Из условия К(тк, а) <е получим, что интервал корреляции 268
- _ I2£ a 0ря £ = 0>05 и a = 0,27454 имеем т* = 11 секунд. Поэтому значе- значения процесса <рСкРA), разделенные интервалом т* являются практиче- практически независимыми между собой. Анализ характера поведения оценки корреляционной функции доказывает, что при увеличении задержки т она стремится к нулю, оставаясь положительной. В таких случаях с целью уточнения оцен- оценки К(т) часто осуществляется повторная обработка более длинных реализаций исследуемого процесса. 3.3. МЕТОДЫ ПОИСКА ГЛОБАЛЬНОГО МИНИМУМА ФУНКЦИИ ОДНОЙ ПЕРЕМЕННОЙ В предыдущем параграфе были изложены методы, позволяющие находить минимумы унимодальных функций. Однако при решении практических задач в большинстве случаев заранее неизвестно, яв- является ли минимизируемая функция унимодальной. Очень часто эта функция может иметь несколько локальных экстремумов, так что применение одного из выше описанных методов поиска приводит к окрестности локального минимума. В этом параграфе мы рассмотрим два метода, позволяющих эффективно решать задачи поиска гло- глобального минимума функции одной переменной. 1) Метод ломаных Одним из наиболее эффективных методов поиска глобального минимума функции одной переменной является метод ломаных, предложенный в работах Пиявского и Данилина. Сущность этого ме- метода заключается в следующем. Для функции /(дс), заданной на от- отрезке [я, ft], строится последовательность вспомогательных функций 8п(х), каждая из которых представляет собой ломаную, составленную из отрезков прямых. При больших п функция gn{x) достаточно точно описывает функцию /(*), поэтому задача поиска минимума функции /(*) сводится к задаче поиска минимума функции gn(x). Пиявский Доказал, что метод ломаных является сходящимся. Описание метода ломаных можно найти в книге [9 ]. В методе ломаных предполагается, что многоэкстремальная функ- функция f(x) удовлетворяет условию Липшица на отрезке [a, ft], т. е. | | || x,yG[a,b], L>0. C.3.1) Условие Липшица означает, что тангенс угла наклона отрезка, сое- соединяющего точки (х, /(*)) и (у, f(y)), не превышает константы Лип- Липшица L при всех х, у в [а, Ъ ]. Последовательность функций gn(x) строится следующим обра- 269
зом. Сначала выбирается произвольная точка хо€Е[а, Ь] и строите функция Ро(х) = g(x,x0) = /(хо) - L \х - хо I . C,3.2) Следующая точка х\ находится из условия ро(хх) = min ро(х) . C.3.3) а<х<Ь Очевидно, что х\ = а или Х\ = й. Определим новую функцию Рх(х) = max{ g(x, x\), po(x)}. C.3.4) Точка хг находится из условия рх (х2) = min px (х) <3.3.5) а<х<Ь и т.д. Пусть в результате повторения этой процедуры найдены точки , xx,..., х„. Тогда аналогично предыдущему составляется функция рп(х) = maxj g(x, хп), Pn-i(x)}. C.3.6) Легко заметить, что эту функцию можно представить в виде рп(х) = max { g(x, Xi)\. C.3.7) l J Точка Xn+i находится из условия Рп{хп+х) = min pn(x) . C.3.8) а<х<Ь Итерационный процесс построения функций рп(х), а также опре- определения последовательности точек хп проиллюстрирован на рис. 3.8. Каждая из функций рп(х) является непрерывной ломаной ли- линией, составленной из отрезков прямых с угловыми наклонами + Ьн —L. Может оказаться, что некоторые из функций рп(х) имеют по не- несколько равных между собой минимумов. В этом случае в качестве хл+1 можно взять точку любого из минимумов. Очевидно, что при увеличении п последовательность {рп(х)} мо- монотонно возрастает и для любого п рп(х) < f(x), xG[a, b] . Отсюда следует, что последовательность {рп(х)} сходится к некоторой функ- функции g(x). Пиявский доказал, что функция g(x) совпадает с функцией f(x) для любых значений xG [а, Ъ ]. Важнейшая особенность метода ломаных состоит в том, что он схо- сходится при любом выборе начальной точки jco. Этот метод позволяет найти глобальный минимум функции, имеющей сколько угодно ло- локальных минимумов. При этом не требуется, чтобы функция была диф- дифференцируемой; она лишь должна удовлетворять условию Липшица. Метод ломаных удобен для реализации на ЭВМ, так как на каж- каждом шаге поиск минимума осуществляется путем перебора вершин ломаной и при переходе отрп~\{х) к р„(х) добавляются только две но- новые вершины. Недостаток метода ломаных заключается в том, что 270
. 3.8. Поиск глобального минимума методом ломаных. AqBqCo — график функ ции ро(х); AoBqM2B\ — график функции р\(х) ; МВъМ^ВгМъВх —график функ ^ р2(х)\ A0B0M4B2M3BSM5B1 — график функции ВгМъВ2>М$В\ — график функции р4(х) 271
= max при увеличении п требуемый объем памяти ЭВМ возрастает. Мето ломаных нельзя реализовать, не имея константы Липшица L. Можно показать, что если функция Дх) дифференцируема, то \f(x)\ . C.3.10) Если функция не является дифференцируемой, или дифференцируе- дифференцируема, но имеет сложный вид, то константу L можно оценить с помощью конечноразностных формул [8 ]. Подпрограмма поиска минимума функций методом ломаных описана в книге [20 ], содержащей пакет программ минимизации на алгоритмическом языке Фортран. 2) Информационно-статистические методы поиска глобального минимума Среди различных методов поиска минимума функций наиболь- наибольшее практическое значение имеют методы, позволяющие учитывать информацию Ь структуре функции, полученную на предыдущих эта- этапах вычислений. Один из наиболее эффективных алгоритмов поиска глобального минимума функции предложен Стронгиным. Метод Стронгина принадлежит к классу информационно-статистических методов, в которых информация о расположении точки глобального минимума извлекается из оценки апостериорной плотности вероят- вероятности, найденной по значениям функции. С помощью этой оценки вырабатывается стратегия дальнейшего поиска минимума функции. Некоторые классы функций, для которых можно использовать алго- алгоритм Стронгина, рассмотрены в книгах [9,28 ]. Алгоритм поиска глобального минимума можно сформулировать следующим образом. Пусть функция у = f(x) задана на отрезке [а, Ь]. Начальный этап. По значениям функции Ддсо), f{x\) в точках хо = а и xi = Ъ вычисляется величина C.3.11) mi = X\ ~ Xo Пусть по определению rAi , Ai > 0 0 , A, = 0 , где г > 1 — параметр алгоритма. Тогда 2-е приближение имеет вид Основной этап. а) Пусть точки хо> *i,..., Xi уже найдены. Перенумеровав точки (при необходимости) можно считать, что 272
a = xo < Xi < xi <...<xi-i < Xi: = b . e этого находим величины |/(xs)-/(*,-,) I Д, = max — , C.3.13) *s Xs-\ a , Ai > 0 m' = <;0 , 0d которым строится функция целочисленного аргумента Ri(s) = m - 2 \f(Xs) + f(xs-i)], I < s<i. C.3.15) Перебором по s значений функции Ri(s) находим номер s,-, для которого Лг(«/) = max Ri(s) . C.3.16) Пусть с > 0 — заданная точность. Тоща если xsi - xsi~i < e , C.3.17) to вычисления прекращаются и дс5/ является точкой глобального миниму- минимума; если же условие C.3.17) не выполняется, то переходим к пункту б). б) Находим jivT.3.18) и переходим к пункту а). ЗЛ НЕЛИНЕЙНОЕ ОЦЕНИВАНИЕ ПАРАМЕТРОВ С ПОМОЩЬЮ МЕТОДОВ ПРЯМОГО ПОИСКА При обработке экспериментальных данных параметры нелиней- нелинейной модели C.1.1) можно оценить путем минимизации суммы квад- ратов C.1.5). Задача минимизации этой функции является задачей Нелинейного программирования. В нелинейном программировании *К>ка что не разработано достаточно универсальных методов решения 0йтимизационной задачи C.1.8)—-C.1.11). Поэтому при построении Нелинейных моделей приходится ограничиваться набором методов, *3ждый из которых ориентирован на решение определенного класса фактических задач [3-7,9,10,17,19,20,23,24,26-30]. Целевая функция C.1.5), которую необходимо минимизировать нелинейном оценивании параметров, обычно является многоэк- Стремальной и имеет достаточно сложную структуру. При миними- 273
зации этой функции наиболее целесообразно использовать методы первого и второго порядка, имеющие более высокую скорость сходи- мости по сравнению с методами нулевого порядка. Однако когда чис- число неизвестных параметров является большим, очень трудно найти и запрограммировать аналитические выражения для частных производ- производных, используемых в методах первого и второго порядка. Поэтому при решении различных практических задач нелинейного оценивания па- параметров часто применяются методы нулевого порядка. Хотя эти мето- ды сходятся более медленно по сравнению с методами первого и второго порядка, в ряде случаев они позволяют получить приемлемые практи- практические результаты. В этом параграфе мы рассмотрим некоторые методы нулевого порядка, применяемые при решении задач нелинейнопз оце- оценивания параметров. В дальнейшем в обозначении целевой функции Ф*(в) символ * мы будем опускать. 1) Метод покоординатного спуска Хука-Дживса [3-5,10,20,30] Одним из наиболее простых методов поиска минимума функции многих переменных является метод покоординатного спуска. В этом методе в качестве направлений линейного поиска выбираются на- направления координатных осей. Пусть е\г..%вк — единичные коорди- координатные векторы в ^-мерном пространстве £*, которому принадлежит вектор ^неизвестных параметров, минимизирующий функцию Ф(в). Сначала минимизация функции Ф(#) осуществляется по направле- направлению е\. После того, как будет найдено минимальное значение в этом направлении, осуществляется поиск минимума по направлению ег и т. д. После определения точки минимума по направлению е^ поиск ми- минимума снова начинает осуществляться по направлению е\ ит.д>, пока значения функции не перестанут уменьшаться. Минимизация функ- функции двух переменных методов покоординатного спуска проиллюстри- проиллюстрирована на рис. 3.9. В некоторых случаях, когда линии уровня сильно вытянуты, ме- метод покоординатного спуска может "застревать". Эта ситуация пока- показана на рис. 3.10. Пробные шаги в направлениях ех и ег не приводят к уменьшению значений целевой функции, так что процесс вычис- вычислений прерывается преждевременно вдали от точки минимума. Трудности такого типа позволяет преодолеть метод покоординат- покоординатного спуска, модифицированный Хуком и Дживсом. Сущность мето- метода Хука-Дживса заключается в следующем. Первые к итераций этого метода осуществляются аналогично итерациям обычного покоординат- покоординатного спуска. После определения точки минимума в направлении вк п°" иск минимума осуществляется в направлении вектора, соединяющего начальное приближение &0) и приближение &к), найденное в результат те к-ой итерации. После этого снова осуществляется покоординатной поиск и т. д . Процесс минимизации функции двух переменных с по- мощью метода Хука-Дживса показан на рис. 3.11. Поиск минимума 274
с. 3.9. Поиск минимума функции двух переменных методом покоординатного уска 3.10. Случай "застревания" метода покоординатного спуска 275
(о) Рис. 3.11. Поиск минимума функции методом Хука-Дживса функции по направлениям, отличным от координатных, позволяет существенно повысить эффективность покоординатного спуска, Алгоритм метода Хука-Дживса можно сформулировать следую- следующим образом. Начальный этап. Выбираем начальное приближение 0(О) и опре- деляем вектора е\,..., е* направлений координатных осей. Основной этап, а) Вдоль направлений р-г = ег находим точки ми- минимума функции Ф(#), т. е. определяем такие числа А,*, для которых -{) + Xet) = min &) , i = 1,..., к , и находим 0е0 = &~1) + XIа . б) с помощью найденного в результате к итераций приближения определяем вектор направления поиска минимума 276
pk+l — В результате минимизации по X находим приближение #^+1). Ес- >(в@)) > Ф(^+1)), то точка &Ы1) принимается за начальную и пе- переходим к пункту а); если же это условие не выполняется то вычисления прекращаются. При этом приближение (fik+l) является «дочкой локального минимума. Если функция Ф(#) является положи- положительно определеннной квадратичной формой, то метод Хука-Джив- са сходится за к итераций [4,30]. Алгоритм оценивания вектора параметров нелинейной модели ме- методом Хука-Дживса реализован в программе NREGO3W3. В этой про- 1рамме оценивание параметров нелинейной модели осуществляется путем непосредственной минимизации суммы квадратов отклонений C.1.5). Ниже представлены листинг программы NREGO3W3, а также результаты вычислений при оценивании параметров х, тестовой модели у = х\1{\ + х2х) + e~XiXcos(x4x) C.4.2) s11 значениям У! = 2 /A + Згу) + <r0-75T''cosCry) + 0,05(fy - 0.5) , где ту = 0.5(/-1) , j = 1,..., N , |у — независимые, равномерно рас- распределенные на отрезке [0, 1 ] случайные величины. 10 REM "NREG03W3" 20 rem**********************************************♦♦*♦*****♦♦*♦*♦***♦♦ 30 REM*** ПРОГРАММА ОЦЕНИВАНИЯ ВЕКТОРА X НЕЗВЕСТНЫХ 35 REM*** ПАРАМЕТРОВ 40 REM*** НЕЛИНЕЙНОЙ МОДЕЛИ YUHF(XU;X) МЕТОДОМ 45 REM*** ХУКА-ДЖИВСА 50 rem****************************************************************** 60 REM НАЧАЛЬНОЕ ДАННЫЕ ДЛЯ ИТЕРАЦИОННОГО ПРОЦЕССА ЗАДАЮТСЯ 70 REM В ПОДПРОГРАММЕ.НАЧИНАЮЩЕЙСЯ ОПЕРАТОРОМ С НОМЕРОМ 8000 80 DIMXB0),YG0),BB0),PB0) 90 DIMXLA00),YLA00),YMA00) 100 GOSUB8000 110 GOSUB3000 210 PRINT 220 PRINT "НОМЕР ТОЧКИ ЗНАЧ.АРГУМ. ЗНАЧ. ФУНКЦ. ЗНАЧ МОДЕЛИ" 230 PRINT" '" 240 FOR I-l TO N 250 DEI^-YLd)-YM(I) 260 PRINT I,XL(I),YL(I),YM(I>,DEL 270 NEXT I 280 PRINT " ■ " 290 PRINT 320 PRINT "*♦*♦♦**♦♦*********♦****♦**********♦♦**♦♦♦*♦♦*♦♦*****♦****♦****■• 330 PRINT:PRINT 340 INPUT "ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. 27
АРГУМЕНТА XMIN,XMAX";XMIN,XMAX 350 INPUT "ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. ФУНКЦИИ YMIN,YMAX";YMIN,YMAX 360 PRINT 370 REM GOSUB 9000 380 MARKER-2:GOSUB 9500 390 REM MARKER-2:GOSUB 10000 500 END 1000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ АППРОКСИМИРУЮЩЕЙ ФУНКЦИИ 1010 YU-XA)/A+XB)*XU)+EXP(-XC)*XU)*COS(XD)*XU) 1020 ITR-ITR+1 1030 RETURN 2000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ СУММЫ КВАДРАТОВ ОТКЛОНЕНИЙ 2010 Z-0 2020 FOR IL-1 ТО N 2030 XU-XL(IL) 2040 GOSUB 1000 2050 YMUD-YU 2060 Z-Z+(YL(IL)-YM(IL))/V2 2070 NEXTIL 2080 RETURN 3000 REM ПОДПРОГРАММА ОЦЕНИВАНИЯ ПАРАМЕТРОВ НЕЛИНЕЙНОЙ МОДЕЛИ 3005 REM МЕТОДОМ ХУКА-ДЖИВСА ЗОЮ PRINT:PRINT:PRINT 3015 PRINT "ОЦЕНИВАНИЕ НЕИЗВЕСТНОГО ПАРАМЕТРА X НЕЛИНЕЙНОЙ МОДЕЛИ YU-F(XU;X)" 3020 PRINT "ПО ЭКСПЕРИМЕНТАЛЬНЫМ ЗНАЧЕНИЯМ YL(I) В ТОЧКАХ XL(I),I-1,...,N" 3022PRINT " МЕТОДОМ ХУКА-ДЖИВСА" 3025 PRINT "♦♦♦♦***♦♦**♦♦♦*♦******♦♦♦♦♦*♦♦♦♦**♦♦*♦*♦**♦♦♦****♦****♦******* 3030 PRINT:PRLNT "ЧИСЛО ТОЧЕК N-";N 3032 PRINT:PRINT "ЧИСЛО НЕИЗВЕСТНЫХ ПАРАМЕТРОВ М«";М 3035 PRINT" - - - " 3040 PRINT "< НАЧАЛЬНЫЕ ПРИБЛИЖЕНИЯ ДЛЯ НЕИЗВЕСТНЫХ ПАРАМЕТРОВ >" ЧП45 РРТМТ" - - - - - " \t\J'T»J 1 1Ч11Ч 1 • ^ — — — — — — — — — 3050 FOR 1-1 ТО М 3055 PRINT "Х(";1;")-";Х@ 3060 NEXTI 3070 PRINT" " 3080 HX«H:ITR-0 3090 FOR Ы ТО М 3100 Y(I)-X(I):P(I)-X(I):B(I)-X(I) 3110 NEXTI 3120 GOSUB 2000:FI«Z 3130 PRINT "НАЧАЛЬНОЕ ЗНАЧЕНИЕ МИНИМИЗИРУЕМОЙ СУЦМЫ КВАДРАТОВ Z-";Z 314П РРГМТ" - - - " %/ 1 *Tv» Г 1411^1 1 — — — — — — — — — — — — — — — — — — — — — — — — — — 3150 PRINT" < ИТЕРАЦИОННЫЙ ПРОЦЕСО" 41 £Л РРТМТ" - - - " %J I \J\J Г JXli^l Ж — — — — — — —— — —— — — — — — — — — 3170 PS-0.BS-1 3180 J-1:FB-FI 3190 X(J)-Y(J)+HX 3200 GOSUB 2000 3210 IFZ<FI GOTO 3270 278
3220 X(J)-Y(J)-HX 3230 GOSUB2000 3240 IF Z<FI GOTO 3270 3250 X(J)-Y(J) 3260 GOTO 3280 3270 Y(J)-X(J) 3280 GOSUB2000 3290 FI-Z 3295 REM PRINT " 3300 PRINT "ИССЛЕДУЮЩИЙ ПОИСК ПО";1;"-Й КООРДИНАТЕ:г-м;г 3310 FORI-1 TOM:PRINTX(I);" ";:NEXT I.PRINT"" 3320 IF J-M GOTO 3350 3330 J-J+l 3340 GOTO 3190 3350 IFFKFROOOOOl GOTO 3540 3360 IF*PS«1 AND BS=O GOTO 3380 3370 GOTO J^00 3380 FOR 1-1 TO M 3390 Pd)-B(I) 3400 Y(I)-B(I) 3410 XU)-B(I) 3420 NEXT I 3430 GOSUB2000:BS«1:PS-0 3440 FI-Z:FB-Z 3450 PRINT "ЗАМЕНА БАЗИСНОЙ ТОЧКИ: Z-";Z 3460 FOR 1-1 TO M 3470 PRINT X(I);" "; 3480 NEXT I:PRINT "" 3490 J-l:GOTO3190 3500 HX-HX/10 3510 PRINT "УМЕНШЕНИЕ ДЛИНЫ ШАГА В 10 РАЗ" 3520 IF HX<lE-08 GOTO 3670 3530 J-l:GOTO3190 3540 FOR 1-1 TO M 3550 P(I)-2*Y(I)-B(I) 3560 B(I)-Y(I) 3570 X(I)-P(I) 3580 Y(I)-X(I) 3590 NEXT I 3600 GOSUB 2000 3610 FB-FI:PS«1:BS-O:FI«Z 3620 PRINT "ПОИСК ПО ОБРАЗЦУ: Z-";Z 3630 FOR 1-1 TO M 3640 PRINT XO);" "; 3650 NEXT I:PRINT "" 3660 J-l:GOTO3190 3670 PRINT "*♦♦♦♦*♦♦♦♦♦♦*♦♦♦*♦*♦♦♦*♦***♦♦*♦♦**♦♦♦*♦♦*♦" 3675 PRINT "МИНИМУМ СУММЫ КВАДРАТОВ НАЙДЕН: FMIN«";FB 3678 PRINT "♦*♦♦♦♦♦♦*♦*♦♦♦♦♦♦*♦*♦**♦***♦♦♦*♦♦♦*♦♦♦*♦♦*" 3680 FOR Ы TO M 3690 PRINT "X(";I;")-";P(D 3700 NEXT I 3710 PRINT "КОЛИЧЕСТВО ВЫЧИСЛЕНИЙ ФУНКЦИИ ITR-";ITR 3715 PRINT "♦♦♦♦♦♦*♦♦♦♦♦♦♦♦♦♦♦♦♦*♦♦♦♦♦*♦♦♦♦♦♦*♦♦♦***♦*" 3720 RETURN 8000 REM ПОДПРОГРАММА ВВОДА НАЧАЛЬНЫХ ДАННЫХ 8005 М-4 8010 N-11 279
8015 XA)«1:XB)-2:XC)-2:XD)«2 8020 H-.2 8025 FOR 1-1 TO N 8030 XL(I)-.5*(I-1) 8040 YL(I)-2/(l+3*XL(l))+EXP(-.7*XL(I))*COSC*XL(I)) 8050 REMYL(I)-YL(I)+.05*(RND-.5) 8060 NEXT I 8190 RETURN 9000 REM"GR9000": ПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА ФУНКЦШ 9010 PRINT " ".PRINT " ГРАФИК НЕЛИНЕЙНОЙ МОДЕЛИ-.PRINT " 9020 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X:NXD-";NXD 9030 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y:NYD-";NYD 9050 NY-NYD+1 9060 CLS:SCREEN 2:DY-(YMAX-YMIN)/NYD:FOR М TO NY:Y-20+160/NYD*(I-1.) 9070 LINEG4,Y)-E74,Y):NEXT t:NX«NXD+l 9080 FORI-1 TONX;X-84+480/NXD*(I-l):LINE (X,12)-(X,188):NEXT I 9090 R-23 9100 FORK-0TONYD 9110 LOCATE R 1 9120 SY-YMIN+DY*K:PRINT USING "#.###' ;SY 9130 R-R-20/NYD 9135 NEXT К 9140 C-7:DX-(XMAX-XMIN)/NXD 9150 FOR K-0 TO NXD:KEY OFF:LOCATE 24,C 9160 SX-XMIN+DX*K 9170 PRINT USING "####.##";SX; 9180 C«C+60/(NXD-K)) 9185 NEXT К 9310 XA-E64-84) /(XMAX-XMIN):YA-( 180-20) /(YMAX-YMIN) 9320 FOR IX-84 TO 564:XU-XMIN+(IX-84)/480*(XMAX-XMIN) 9330 GOSUB 1000 9340 IY-180-(YU-YMIN)*YA 9350 IFIY<20ORIY>180THEN9370 9360 IF IX-84 THEN PSET (IX.IY) 9365 LINE-(IXJY) 9370 NEXT IX 9380 FOR 1-1 TO N 9390 YGM80-(YL(I)-YMIN)*YA 9400 IF YG<20 OR YG>180 GOTO 9440 9410 XG-480*(XL(I)-XMIN)/(XMAX-XMIN)+84 9420 PSET (XG,YG) 9430 DRAW "E2G4E2H2F4H2E2D4L4U4R4G2" 9440 NEXT I 9450 RETURN 9500 REM "GRAF9500" 9510 XS-(XMIN+XMAX)/2 9520 YS-(YMIN+YMAX)/2 9540 SCREEN 2:CLS:KEY OFF 9550 VX-XMAX-XMIN:DX-300/VX:VY-YMAX-YMIN:DY-120/VY 9560 FOR IX-40 TO 440 9570 XU-XMIN+(IX-40)/400*VX 9580 GOSUB 1000 9590 IY-125-(YU-YMIN)*DY 9600 IF IX-40 THEN PSET (IX,IY):GOTO 9620 9610 LINE-(IXJY) 9620 NEXT IX 9630 FOR IE-1 TO N 280
9640 YE-125-(YL(IE)-YMIN)*DY 9650 IFYE<5ORYE>125GOTO9740 9660 XE-400*(XL(IE)-XMIN)/VX+40 9670 PSET (XE,YE) 9680 ON MARKER GOTO 9690,9700,9710,9720,9730 9690 DRAW "U2D4U2L4R8L4":GOTO 9740 9700 DRAW tfE2L4F4L4E3':GOTO 9740 9710 DRAW "E2D4H4D4E2L4R8L4":GOTO 9740 9720 DRAW HE2G4E2H2F4H2L4R8L4":GOTO 9740 9730 DRAW "U2G3R6H3D2" 9740 NEXT IE 9750 LINE D0,5)-D40,5) 9760 LINE D0,125)-D40,125) 9770 LINE D0,5)-D0Л 25) 9780 LINE D40,5)-D40,125) 9790 FOR Y-5 TO 125 STEP 12 9800 LINE D0,Y)-D3,Y) 9810 LINE D40,YM437,Y) 9820 NEXT Y , 9830 LOCATE 1,2:PRINT YMAX 9840 LOCATE 9.2:PRINTYS 9850 LOCATE 16,2:PRINT YMIN 9860 FOR X-79 TO 440 STEP 40 9870 LINE (X, 125)-(X, 122) 9880 LINE(X+1,125)-(X+1,122) 9890 LINE (X,5MX,8) 9900 LINE(X+1,5)-(X+1,8) 9910 NEXTX 9920 LOCATE 17,4:PRINTXMIN 9930 LOCATE 17,29:PRINTXS 9940 LOCATE 17,54:PRINTXMAX 9950 A$-INPUT$A) 9960 END 10000 REM "GRIOOOO" ПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА ФУНКЦИИ 10010 PRINT " ":PRINT " ГРАФИЧЕСКОЕ ИЗОБРАЖЕНИЕ РЕЗУЛЬТАТОВ AnnPOKCHMAHHH":PRINT "" 10020 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X:NXD-";NXD 10030 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y:NYD~",NYD 10040 NY-NYD+1 10050 CLS'.SCREEN 2:DY-(YMAX-YMIN)/NYD:FOR W ТО NY:Y-2Of 160/NYD*(I-l) 10060 LINEG6,Y)-(90,Y):NEXT I:NX-NXD+1 10070 FORI-1 TONX:X-84+480/NXD*(I-l):LINE (X,176)-(X,184):NEXT I 10080 LINE(84,12)-(84,188):LINE (84,180)-E68,180) 10090 R-23 10100 FORK-OTONYD 10110 LOCATE R,3 10120 SY-YMIN+DY*K:PRINT USING "#.##';SY 10130 R-R-20/NYD 10140 NEXT К 10150 C-7:DX-(XMAX-XMIN)/NXD 10160 FOR K-0 TO NXDiKEY OFF:LOCATE 24,C 10170 SX-XMIN+DX*K 10180 PRINT USING "####.##";SX; 10190 C4:+60/(NXD40) 10200 NEXT К 10210 VX-XMAX-XMIN:VY-YMAX-YMIN:XA-480/VX:YA-160/VY 10230 FORIX-84TO564:XU-XMIN+(IX-84)/480*VX 281
10240 GOSUB 1000 10250 IY-180-(YU-YMIN)*YA 10260 IF IY<20 OR IY> 180 THEN 10290 10270 IF IX-84 THEN PSET (IX,IY) 10280 LINE-(IX,1Y) 10290 NEXT IX 10300 FORIE-1TON 10310 YE-180-(YL(IE)-YMIN)*YA 10320 IFYE<20ORYE>1180GOTO10410 10330 XE-480*(XL(IE)-XMIN)/VX+84 10340 PSET (XE,YE) 10350 ON MARKER GOTO 10360,10370,10380,10390,10400 10360 DRAW ftU2D4U2L4R8L4':GOTO 10410 10370 DRAW "E2L4F4L4E3":GOTO 10410 10380 DRAW"E2D4H4D4E2L4R8L4":GOTO 10410 10390 DRAW fE2G4E2H2F4H2L4R8L4":GOTO 10410 10400 DRAW "U2G3R6H3D2" 10410 NEXT IE 10420 RETURN RUN ОЦЕНИВАНИЕ НЕИЗВЕСТНОГО ПАРАМЕТРА X НЕЛИНЕЙНОЙ МОДЕЛИ YU-F(XU;X) ПО ЭКСПЕРИМЕНТАЛЬНЫМ ЗНАЧЕНИЯМ YU(I) В ТОЧКАХ XL(I),I«1,...,N МЕТОДОМ ХУКА-ДЖИВСА ЧИСЛО ТОЧЕК N- 1 i ЧИСЛО НЕИЗВЕСТНЫХ ПАРАМЕТРОВ М- 4 « НАЧАЛЬНЫЕ ПРИБЛИЖЕНИЯ ДЛЯ НЕИЗВЕСТНЫХ ПАРАМЕТРОВ » ХB)-2 ХC)-2 ХD)-2 НАЧАЛЬНОЕ ЗНАЧ. МИНИМИЗИРУЕМОЙ СУММЫ КВАДРАТОВ Z- 1.247214 « ИТЕРАЦИОННЫЙ ПРОЦЕСС » ИССЛЕДУЮЩИЙ ПОИСК 1.2 2 ИССЛЕДУЮЩИЙ ПОИСК 1.2 2 ИССЛЕДУЮЩИЙ ПОИСК 1.2 2 ИССЛЕДУЮЩИЙ ПОИСК 1.2 2 ПОИСК ПО ОБРАЗЦУ ; Z- 1.4 2 ИССЛЕДУЮЩИЙ ПОИСК 1.6 2 ИССЛЕДУЮЩИЙ ПОИСК 1.6 2.2 ИССЛЕДУЮЩИЙ ПОИСК 1.6 2.2 ИССЛЕДУЮЩИЙ ПОИСК 1.6 2.2 ПО 1 -Й КООРДИНАТЕ: Z- 2 2 ПО 2 -Й КООРДИНАТЕ: Z- 2 2 ПО 3 -Й КООРДИНАТЕ: Z- 1.8 2 ПО 4 -Й КООРДИНАТЕ: Z- 1.8 2.2 .5344628 1.6 2.4 ПО 1 -Й КООРДИНАТЕ: Z- 1.6 2.4 ПО 2 -Й КООРДИНАТЕ: Z- 1.6 2.4 ПО 3 -Й КООРДИНАТЕ: Z- 1.4 2.4 ПО 4 -Й КООРДИНАТЕ: Z- 1.4 2.6 .8667564 .8667564 .8621561 .8415051 .3828009 .3553902 .3372195 .3003578 282
ПОИСК ПО ОБРАЗЦУ ; Z- 2 2.4 ИССЛЕДУЮЩИЙ ПОИСК 1.8 2.4 ИССЛЕДУЮЩИЙ ПОИСК 1.8 2.6 ИССЛЕДУЮЩИЙ ПОИСК 1.8 2.6 ИССЛЕДУЮЩИЙ ПОИСК 1.8 2.6 ПОИСК ПО ОБРАЗЦУ ; Z- 2 3 ИССЛЕДУЮЩИЙ ПОИСК 2 3 ИССЛЕДУЮЩИЙ ПОИСК 2 2.8 8.790315Е-02 .9999998 3 ПО 1 -Й КООРДИНАТЕ: Z~ 8.523582Е-02 .9999998 3 ПО 2 -Й КООРДИНАТЕ: Z~ 7.659992Е-02 .9999998 3 П^ 3-ЙКООРДИН*ТЕ^~ 4.606259Е-02 .7999998 3 ПО 4 -Й КООРДИНАТЕ: Z- 4.606259E-02 .7999998 3 1.0052 .1999997 3.4 ПО 1 -Й КООРДИНАТЕ: Z« 1лл>52 .1999997 3.4 ПО 2-Й КООРДИНАТЕ: Z- .W35244 1.999997 3.4 УМЕНЬШЕНИЕ ДЛИНЫ ШАГА В 10 РАЗ ИССЛЕДУЮЩИЙ ПОИСК ПО 1 -Й КООРДИНАТЕ^- 2.930989Е 14 2 3 .6999998 3 ИССЛЕДУЮЩИЙ ПОИСК ПО 2-Й КООРДИНАТЕ: Z- 2.930989E-I4 2 3 .6999998 3 ИССЛЕДУЮЩИЙ ПОИСК ПО 3-Й КООРДИНАТЕ: Z- 2.930989E-14 2 3 .6999998 3 ИССЛЕДУЮЩИЙ ПОИСК ПО 4 -Й КООРДИНАТЕ: Z- 2.930989E 14 2 3 .6999998 3 УМЕНЬШЕНИЕ ДЛИНЫ ШАГА В 10 РАЗ ******************************************************* МИНИМУМ СУММЫ КВАДРАТОВ НАЙДЕН : FMIN~ \ 732508E-13 ****************************************************^«^ ХB)-3 ХC)- .6999996 ХD)-3 КОЛИЧЕСТВО ВЫЧИСЛЕНИЙ ФУНКЦИИ ITR- 2618 ********************************************************* НОМЕР ТОЧКИ 1 2 3 4 5 6 7 8 9 10 11 ЗНАЧЕНИЕ АРГУМЕНТА 0 .5 1 1.5 2 2.5 3 3.5 4 4.5 5 ЗНАЧЕНИЕ ФУНКЦИИ 3 .8498477 8.384258Е-03 .289871 .5224895 .2955303 8.842622Е-02 .1328773 .205161 .1634247 .1020594 ЗНАЧЕНИЕ МОДЕЛИ 3 .8498477 8.384168Е-03 .2898709 .5224895 .2955304 8.842612Е-02 .1328772 .205161 .1634247 .1020594 РАЗНОСТИ 0 0 8.940697Е-08 5.960465Е-08 -5.960465Е-08 -2.980232Е-08 8.940697Е-08 5.960465Е-08 ~2,980232Е 08 0 2.980232ГС-08 ******************************************************************* ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧ. АРГУМЕНТА XMIN.XMAX? 0,5 ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧ. ФУНКЦИИ YMIN,YMAX? 0,3 283
1.5 e I 1 ■ 1 Ш | л А 1 1 1 ^ \ 1 —К 1 1 X 1 1 1 -Г i 1 i 1 • - • 1 2.5 5 Рис. 3.12. Модель, построенная методом Хука-Дживса для значений тестовой задачи Модель, построенная с помощью программы NREG03W3, а так- также "экспериментальные" значения функции изображены на рис.3 Л 2. 2) Метод Розенброка При минимизации функции Ф(#) методом Хука-Дживса пробные шаги осуществляются по направлениям координатных осей. В неко- некоторых случаях данный метод может "застревать", т. е. пробные шаги не приводят к уменьшению значений функции, так что процесс вы- вычислений прерывается вдали от точки минимума (рис. 3.10). Эти трудности позволяет обойти метод Розенброка. В методе Розенброка пробные шаги осуществляются по направлениям некоторой системы ортогональных векторов, которая на каждой итерации выбирается с учетом структуры минимизируемой функции в окрестности данного приближения. Построение новой системы ортогональных векторов на одной из итераций показано на рис. 3.13. На каждой итерации метода Розенброка направление поиска строится следующим образом. Пусть ei,..., e* — система единичных ортогональных векторов . Новый набор векторов ei,..., ~ё\, строится с помощью процедуры Грама-Шмидта [3,4,7,9,30] по формулам 284
8<0) e Рис. 3.13. Построение новой ортогональной системы в методе Розенброка а, = п bj = ; = 0 , 'гвг , Xj■• * О , C.4.3) I ft/I I» /= 1,...,* » C.4.4) где (a;, ^) — скалярное произведение векторов a; и ^-, I I ft, 11 — нор- норма вектора fty, Ay — длина шага по направлению ej. Можно показать, что система векторов ?i,..., г* является ортогональной. Если функ- функция Ф@) дифференцируема, то метод Розенброка сходится к точке 0, Для которой Ф' ф) = 0. Алгоритм метода Розенброка Начальный этап. Пусть ei,..., e* — координатные направления, 285
} — начальное приближение, е > О — малое число, используемое в критерии прерывания вычислений, )fl) = &l), п = у = 1. Основной этап, а) Найти оптимальное решение А/ задачи мини- минимизации функции Ф(У^ + Xej) и положить Если/ < к, то заменить у на у + 1 и вернуться к а). В противном слу- случае необходимо перейти к пункту 6). б; Примем &п+1) = /+1). Если I 1^л+1) - fl^l I < е , то вычисления прекращаются; в противном случае необходимо положить }fl) = ffn+{\ заменить п на п + I, принять у = 1 и перейти к пункту в). б) Строится новое множество ~ё\ ,...,?* ортогональных векторов и выполняется переход к пункту а); при этом векторы £,- принимаются равными векторам г/, / = 1,..., 3) Симплексный метод Нелдера и Мида [3,5,7,10,20,29,30] л При оценивании параметров нелинейных моделей в некоторых случаях применяется симплексный метод Нелдера и Мида. Наиболее часто он используется при построении моделей, содержащих боль- большое число параметров. Хотя симплексный метод и сложнее метода по- покоординатного спуска, его можно легко запрограммировать на ЭВМ. Симплексный метод Нелдера и Мида базируется на понятии симплекса. Из курса линейной алгебры известно, что регулярный симплекс представляет собой многогранник в ^-мерном пространстве Ek, вершины которого можно задать с помощью столбцов матрицы 0 0 0 d2 t*2 ... с/, ... с*-2 • •-• d2 О Л </l C.4.6) *+ 1 где C.4.7) a — расстояние между двумя вершинами. Столбцы этой матрицы яв- являются координатами (к + 1)-й вершины симплекса. Например, при к- 2 симплекс представляет собой правильный треугольник, а при к = 3 — правильный тетраэдр. Правильные симплексы для двух и трех независимых параметров изображены на рис. 3.14. При поиске минимума функции Ф(#) с помощью метода Нелдс- 286
Рис. 3.14. Правильные симплексы для к - 2 и к - 3. Вершина Л соответствует наи- наибольшему значению функции Ф(в) ра-Мида в качестве пробных значений неизвестных параметров вы- выбираются точки, расположенные в вершинах симплекса. Идея ис- использования симплексов для минимизации функций применялась в планировании эксперимента. В каждой из вершин симплекса вычис- вычисляется значение функции Ф@) и с помощью прямой, проходящей че- через точку Л (в которой функция имеет наибольшее значение) и центр тяжести симплекса, определяется точка В, которая лежит на данной прямой и находится на определенном расстоянии от центра симплекса. Если значение функции в точке В меньше значения функ- функции в точке Л, то вершина Л отбрасывается и строится новый симплекс, называемый отражением, вершинами которого являются вершины ста- старого симплекса (за исключением Л) и точка В. Итерационный процесс такого типа, в котором на каждом шаге отбрасывается вершина с наи- наибольшим значением функции Ф(#), называется симплексным методом Нелдера и Мида. Последовательность симплексов, полученная при ми- минимизации функции Ф@), представлена на рис. 3.15(а). Если целевая функция C.1.5) имеет высокие гребни и крутые овраги, то метод Нелдера-Мида, в котором при поиске минимума ис- используются правильные симплексы, становится малоэффективным. Для ускорения движения по гребням и оврагам необходимо иметь возможность деформировать симплексы в некоторых направлениях. Эта идея реализована в модифицированном симплексном методе Нелдера-Мида. Сущность модифицированного метода заключает- заключается в следующем. Пусть задан исходный симплекс, вершины которого находятся в точках Vi , / = 1,..., к> к+\. Основная идея метода состоит в том, что при удачных шагах, приводящих к уменьшению функции, симплекс расширяется, а при неудачных — сжимается. На каждой итерации выбираются вершины Vm и V/ с максимальным Фт и минимальным значением Ф/ соответственно. ВершинаУт заменяется новой одним 287
Рис. 3.15. Последовательность симплексов метода Нелдера-Мида: а) правильные симплексы; б) симплексы переменного размера из следующих способов: отражением, расширением, редукцией или сжатием. Если $0) — координаты центра симплекса (безКт ), #Г — коорди- координаты вершины Vm, то координаты новой вершины, найденной путем отражения, определяются с помощью соотношений /J* п$) _|_ 1 /7Э@) пт\ ,' Л L / Л Я\ G, — U) Т Л^С7/ ' — Ut ) , I — 1,..., К у \О.Ч.О) где X —- коэффициент отражения. Координаты центра симплекса без вершины Vm можно вычислить по формулам * к+\ /= C.4.9) Если отражение привело к уменьшению функции Ф(#), то в этом на- направлении осуществляется растяжениет т. е. ищется новая точка = Oi + c@i - 0i) , i = I,..., a: , C.4.Ш) где с > 1 —коэффициент расширения. Если расширение оказалось удачным, то есть значение функции Ф(в) уменьшилось, то вершина Vm заменяется на К\ если же расширение неудачное, то на К. При неудачном отражении (значение функции в новой точке больше Фт) симплекс сжимается по направлению к Voi 0Г = б? + 4@? - 0?) , i=l,...,Jfc, C.4.11) где Ъ < 1—крэффииирнт сжатия. Если сжатие также оказалось неу- 288
дачным, или операции с одной и той же вершиной выполняются бо- более двух раз подряд, то сжатие симплекса осуществляется в направ- направлении к вершине с минимальным значением F/ . Эта операция называется редукцией. Редукция представляет собой преобразование вида Щ; = (ff.-fyd + tf, i=l,...,*; y=l,..., jfc+l. C.4.12) Вычисления прекращаются, если выполняется условие < е , C.4.13) ,= где е > 0 — малое число, Ф(К;) — значения функции в вершинах симплекса, Ф(Ко) — значение в центре тяжести (по всем вершинам симплекса). Эффективность метода Нелдера-Мида существенно зависит от выбора параметров Я, Ь, с, d. Численные эксперименты показали, что наилучшими свойствами обладает итерационный процесс, для которого Я = 1; Ь = 0,5; с = 2; d = 0,5;. Трудности, возникающие при выборе других значений этих параметров, рассмотрены в работах [3-5,10,20,30]. В настоящее время методы нулевого порядка реализованы в раз- различных пакетах прикладных программ оптимизации. Например, в пакете [21 ], разработанном в ИМ АН БССР, для решения задач ми- минимизации функции многих переменных предназначены подпрог- подпрограммы MIN01-— MIN05 (пять подпрограмм для методов нулевого порядка). Этим же целям служат подпрограммы MINI и MIN2 па- пакета [20]. Алгоритм нелинейного оценивания вектора неизвестных пара- параметров, в котором для минимизации суммы квадратов отклонений C.1.5) используется метод Нелдера-Мида, реализован в программе NREG04W3. При отладке этой программы в качестве одной из тесто- тестовых рассматривалась функция, представленная на рис. 3.16. В про- программе NREG04W3 использовались N=11 значений этой функции У! = 2/A + Зт;) + <Г07Т/ cosCry), в точках ту = 0.5(/-1), j = 1,...,ЛГ. При оценивании параметров Х\,хг, хъ, х* нелинейной модели У5* xi/(l + Х2т) + е~ХзТ cos(xat) были выбраны начальные прибли- приближения Л0)= 1;*?> =•*?> = *?> = 2. Ниже приведены листинг программы NREG04W3, а также ре- результаты ее выполнения на персональном компьютере. Графическое Изображение начальных данных, а также аппроксимирующей их не- нелинейной модели, представлено на рис. 3.16. Зак. 500 289
10 REM "NREG04W3" 20 REM********************************************** ******************** 30 REM*** ПРОГРАММА ОЦЕНИВАНИЯ ВЕКТОРА X НЕЗВЕСТНЫХ 35 REM*** ПАРАМЕТРОВ 40 REM*** НЕЛИНЕЙНОЙ МОДЕЛИ YU-F(XU;X) МЕТОДОМ 45 REM*** НЕЛДЕРА-МИДА 50 rem****************************************************************** 60 REM НАЧАЛЬНОЕ ДАННЫЕ ДЛЯ ИТЕРАЦИОННОГО ПРОЦЕССА ЗАДАЮТСЯ 70 REM В ПОДПРОГРАММЕ,НАЧИНАЮЩЕЙСЯ ОПЕРАТОРОМ С НОМЕРОМ 8000 80 DIMV<21,20),VMINB0),V0B0hVMAXlB0),VMAXB0) 85 DIMVRB0hVCB0),VEB0),FB0),XB0) 90 DIMXLA00),YLA00),YMA00) 100 GOSUB 8000 110 GOSUB 3000 210 PRINT 220 PRINT "НОМЕР ТОЧКИ ЗНАЧ.АРГУМ. ЗНАЧ. ФУНКЦ. ЗНАЧ МОДЕЛИ РАЗНОСТИ" 230 PRINT" 240 FOR I-l TO N 250 DEL-YL(I)-YM(I) 260 PRINT I,XL(I),YL(I),YM(I),DEL 270 NEXT I 280 PRINT" —' 290 PRINT 320 PRINT "************************************************************** 330 PRINT:PRINT 340 INPUT "ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. АРГУМЕНТА XMIN,XMAX";XMIN,XMAX 350 INPUT "ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. ФУНКЦИИ YMIN,YMAX";YMIN,YMAX 360 PRINT 370 REM GOSUB 9000 380 MARKER=2:GOSUB 9500 390 REM MARKER«2:GOSUB 10000 500 END 999 REM "NRNM" 1000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ АППРОКСИМИРУЮЩЕЙ ФУНКЦИИ 1010 YU-XA)/A+XB)*XU)+EXP<-XC)*XU)*COS(XD)*XU) 1020 NVF-NVF+1 1030 RETURN 2000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ СУММЫ КВАДРАТОВ ОТКЛОНЕНИЙ 2010 Y-0 2030 FOR IE-1 ТО N 2040 XU-XL(IE):GOSUB1000:YM(IE)-YU 2050 Y-Y+(YL(IE)-YM(IE))^2 2060 NEXT IE 2070 RETURN 3000 REM ПОДПРОГРАММА ОЦЕНИВАНИЯ ВЕКТОРА ПАРАМЕТРОВ X НЕЛИНЕЙНОЙ МОДЕЛИ 3005 REM YU-F(XU;X) МЕТОДОМ НЕЛДЕРА-МИДА (ДЕФОРМИРУЕМОГО МНОГОГРАННИКА) ЗОЮ PRINT:PRINT:PRINT 3015 PRINT "ОЦЕНИВАНИЕ НЕИЗВЕСТНОГО ПАРАМЕТРА X НЕЛИНЕЙНОЙ МОДЕЛИ YU-F(XU;X)" 290
3020 PRINT "ПО ЭКСПЕРИМЕНТАЛЬНЫМ ЗНАЧЕНИЯМ YL(I) В ТОЧКАХ XL(I),I-1,...,N" 3022 PRINT" МЕТОДОМ НЕЛДЕРА-МИДА" 3025 PRINT "♦♦♦♦*♦♦♦♦♦*♦♦♦♦♦♦♦♦♦*♦♦♦♦♦♦♦*♦♦*♦**♦♦♦♦♦♦*♦♦♦♦♦♦♦♦♦♦♦*♦♦**♦♦♦♦" 3032 PRINT:PRINT "ЧИСЛО НЕИЗВЕСТНЫХ ПАРАМЕТРОВ М-";М 3035 PRINT:PRINT "ЧИСЛО ЗНАЧЕНИЙ ФУНКЦИИ N-";N 3060 PRINT" " 3070 PRINT " < НАЧАЛЬНЫЕ ПРИБЛИЖЕНИЯ ПЕРЕМЕННЫХ >" 3080 PRINT" " 3090 FOR W TO M 3100 PRINT" X(";I;")-";VA,I) 3110 NEXT I 3120 FORI-1TOM:X(I)-VA,I):NEXTI 3130 GOSUB 2000:YO-Y 3140 PRINT "НАЧАЛЬНОЕ ЗНАЧЕНИЕ СУММЫ КВАДРАТОВ SO-";Y0 3150 PRINT" — = r 3160 PRINT "♦♦♦♦*♦♦♦♦***♦***♦♦♦**♦♦♦♦♦♦♦***♦*♦♦♦♦*****♦♦*♦***♦*" 3170 PRINT " < ПОСЛЕДОВАТЕЛЬНОСТЬ ИТЕРАЦИЙ >" 3180 PRINT "***************************************************" 3190 ITR-l:NVF-0 3200 Ml-M+1 3210 FOR 1-2 TO Ml 3220 FOR J-l TO M 3230 IFJ-I-1 THEN V(I,J)-V(U)+HX:GOTO 3250 3240 V(I,J)-VA,J) 3250 NEXTJ 3260 NEXT I 3270 ALFA-1 :BETA-.5:GAMMA-2:DELTA-.5 3280 FORI-1 TO Ml 3290 FOR J-l TO M 3300 X(J)-V(I,J) 3310 NEXTJ 3320 GOSUB 2000:F(I)-Y 3330 NEXT I 3340 IF IPO GOTO 3380 3350 PRINT " 3360 PRINT" ИТЕРАЦИЯ ITR-";ITR 3370 PRINT" " 3380 FMIN-1E+3O:FMAX--1E+3O 3390 FORI-1 TO Ml 3400 IF F(I)>FMAX THEN FMAX-F(I):IMAX-I 3410 IFF(I)<FMINTHENFMIN-F(I):IMIN-I 3420 NEXT I 3430 FMAX1--1E+30 3440 FORI-1 TO Ml 3450 IF I-IMAX GOTO 3470 3460 IFF(I)>FMAX1 THEN FMAX1-F(I):IMAX1-I 3470 NEXT I 3480 FOR 1-1 TO M 3490 V0(I)-0 3500 FOR J-l TO Ml 3510 IF J-IMAX GOTO 3530 3520 V0(I)-V0(I)+V(J,I) 3530 NEXTJ 3540 V0(I)«V0(I)/M 3550 VMAX(I)-V(IMAX,I) 3560 VMAXKI)-V(IMAXIJ) 3570 VMIN(I)-VdMINJ) 10* 29
3580 NEXT I 3590 FOR 1-1 TO M 3600 X(I)-VOU) 3610 NEXT I 3620 GOSUB 2000:Y0-Y 3630 PRINT "НАЙДЕН ЦЕНТР ТЯЖЕСТИ V0 СИМПЛЕКСА (БЕЗ V(IMAX) 3640 IF IP<>0 GOTO 3690 3650 FOR 1-1 TO M 3660 PRINT "X0(";I;")-";V0(D;""; 3670 NEXT I 3680 PRINT "Y(X0)-";Y0 3690 FOR 1-1 TO M 3700 VR(I)=V0(I)+ALFA*(V0(I)-VMAX<I)) 3710 Xd)-VR(I) 3720 NEXT I 3730 GOSUB 2000:YR-Y 3740 PRINT "ВЫПОЛНЕНО ОТРАЖЕНИЕ ВЕРШИНЫ V(IMAX) ОТНОСИТЕЛЬНО ТОЧКИ V0" 3750 IF IP<>0 GOTO 3790 3760 FOR 1-1 TO M 3770 PRINT "XR(";I;")-";VR(D;""; 3780 NEXT I 3790 PRINT "Y(XR)-";YR 3800 IF YR<FMIN GOTO 3830 3810 IF YR>FMAX1 GOTO 4160 3820 GOTO 4020 3830 FOR 1-1 TO M 3840 VE(I)~GAMMA*VR(I)+A-GAMMA)*VO(I) 3850 Xd)-VE(I) 3860 NEXT I 3870 GOSUB 2000 3880 YE-Y 3890 PRINT "СДЕЛАНА ПОПЫТКА РАСТЯЖЕНИЯ СИМПЛЕКСА В НАПРАВЛЕНИИ УБЫВАНИЯ Ф-ИИ" 3900 IF IP<> 0 GOTO 3940 3910 FORI-1TOM 3920 PRINT "XEC;I;")-";VE(D;""; 3930 NEXT I 3940 PRINT "Y(XE)«";YE 3950 IFYE<FMIN GOTO 3970 3960 GOTO 4020 3970 FOR 1-1 TO M 3980 V(IMAX,I)-VE(I) 3990 NEXT I 4000 FUMAX)-YE 4010 GOTO 4460 4020 FOR I»l TO M 4030 V(IMAX,I)-VR(I) 4040 NEXT I 4050 F(IMAX)-YR 4060 GOTO 4460 4070 NEXT I 4080 F(IMAX)«YR:GOTO 4460 4090 PRINT "ВЕРШИНА V(IMAX) ПЕРЕНЕСЕНА В ТОЧКУ VR" 4100 IF IPO 0 GOTO 4150 4110 FORI-1 TOM 4120 PRINT "XR(";I;")-";VR(D;""; 4130 NEXT I 292
4140 PRINT "Y(XR)-";YR 4150 GOTO 4460 4160 IF YR>FMAX GOTO 4210 4170 FOR W TO M 4180 VMAXd)-VR(I) 4190 NEXT I 4200 F(IMAX)-YR 4210 FORI-1 TOM 4220 VC(I)-BETA*VMAX(I)+A-BETA)*VO(I) 4230 X(I)-VCU) 4240 NEXT I 4250 GOSUB 2000:YC-Y 4260 IF YC> FMAX GOTO 4380 4270 FOR 1-1 TO M 4280 V(IMAXJ)-VCd) 4290 NEXT! 4300 F(IMAX)-YC 4310 PRINT "ВЫПОЛНЕНО СЖАТИЕ СИМПЛЕКСА" 4320 IF IP<> 0 GOTO 4370 4330 FOR 1-1 TO M 4340 PRINT "XC(";I;")-";VC(D;""; 4350 NEXT I 4360 PRINT "Y(XC)-";YC 4370 GOTO 4460 4380 FORI-1 TO Ml 4390 FOR J-l TO M 4400 V(I,J)-DELTA*V(I,J)+A-DELTA)*VMIN(J) 4410 X(J)-V(I,J) 4420 NEXTJ 4430 GOSUB 2000:F(I)-Y 4440 NEXT I 4450 PRINT "ВЫПОЛНЕНА РЕДУКЦИЯ СИМПЛЕКСА В НАПРАВЛЕНИИ ТОЧКИ V(IMIN)" 4460 PRINT "ПРОВЕРКА УСЛОВИЯ СХОДИМОСТИ" 4470 SF1-O:SF2-O 4480 FOR Ы ТО М 4490 SF1-SF1+F(I):SF2-SF2+F(I)~2 4500 NEXTI 4510 SIGMA-SF2-SF1'V2/M1:SIGMA-SIGMA/M1 4520 PRINT " " 4530 IF SIGMA< EPS GOTO 4550 4540 ITR-lTR+l:GOTO3340 4550 PRINT "♦♦***♦♦***♦♦*♦♦♦*♦****♦♦♦♦**♦*" 4560 PRINT" < МИНИМУМ НАЙДЕН >" 4570 PRINT "**♦*♦♦♦♦♦♦♦♦*♦♦♦♦♦♦*♦♦♦*♦♦♦♦♦♦" 4580 FOR 1-1 TO M 4590 PRINT" X(";I;")-";X(I) 4600 NEXTI 4610 PRINT "МИНИМУМ СУММЫ КВАДРАТОВ ОТКЛОНЕНИЙ SMIN-";F(IMIN) 4620 PRINT "ЧИСЛО ИТЕРАЦИЙ ITR-";ITR 4630 PRINT "ЧИСЛО ВЫЧИСЛЕНИЙ ФУНКЦИИ NVF-";NVF 4710 RETURN 4890 REM ПОДПРОГРАММА ВВОДА НАЧАЛЬНЫХ ДАННЫХ 4900 М-2 4910 НХ-.2 4920 V(l,l)-2:V(l,2)-2 4930 EPS-IE-10 293
4940 IP-1 4950 RETURN 8000 REM ПОДПРОГРАММА ВВОДА НАЧАЛЬНЫХ ДАННЫХ 8005 М-4 8010 N-11 8015 ХA)-1:ХB)-2:Х<3)-2:Х<4)-2 8020 IP-1 8025 НХ-.5 8030 EPS-.0CO1 8035 FOR IE-1 ТО N 8040 XLOEMIE-1) *.5:YL(IE)-2/A +3*XL(IE))+ЕХР(-.7*XL(IE))*COSC*XL(IE)) 8050 NEXT IE 8060 FOR Ы TO M:VA,1)-X(I):NEXTI 807C RETURN 9000 REM "GR9000": ПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА ФУНКЦИИ 9010 PRINTи ":PRINT " ГРАФИК НЕЛИНЕЙНОЙ MOARniTiPRINT " 9020 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X:NXD-";NXD 9030 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y:NYD-";NYD 9050 NY-NYD+1 9060 CLSrSCREEN 2:DY-(YMAX-YMIN)/NYD:FOR 1-1 TO NY:Y-20M 60/NYD* (I~ 1) 9070 LINEG4,Y)-E74,Y) :NEXT I:NX-NXD+1 9080 FORI-1 TONX:X-8^480/NXD*(I-1):L1NE <X,12)-(X,188):NEXT I 9090 R-23 9100 FOR КЧ) TON YD 9110 LOCATE R,l 9120 SY-YMIN+DY*K:PRINT USING "#.###";SY 9130 R-R-20/NYD 9135 NEXT К 9140 C-7:DX-(XMAX-XMIN)/NXD 9150 FOR K-0 TO NXD:KEY OFFrLOCATE 24,C 9160 SX-XMIN+DX*K 9170 PRINT USING "####.##";SX; 9180 C-C+60/(NXCHO) 9185 NEXT К 9310 XA-E64-84) /(XMAX-XMIN) :YA-( 180-20) /(YMAX-YMIN) 9320 FOR IX-84 TO 564:XU-XMIN+(IX-84)/480* (XMAX-XMIN) 9330 GOSUB 1000 9340 IY-180-(YU-YMIN)*YA 9350 IFIY< 20 OR IY> 180 THEN 9370 9360 IF IX-84 THEN PSET (IX,IY) 9365 LINE-(IXJY) 9370 NEXT IX 9380 FOR HTON 9390 YG-180-(YL(I)-YMIN)*YA 9400 IF YG < 20 OR YG > 180 GOTO 9440 9410 XG-480*(XL(I)-XMIN)/ (XMAX-XMINH84 9420 PSET (XG,YG) 9430 DRAW "E2G4E2H2F4H2E2D4L4U4R4G2" 9440 NEXT I 9450 RETURN 9500 REM "GRAF9500" 9510 XS-(XMIN+XMAX)/2 9520 YS-(YMIN+YMAX)/2 9540 SCREEN 2CLS*KEY OFF 9550 VX-XMAX-XMIN:DX-300/VX:VY-YMAX-YMIN:DY-120/VY 9560 FOR IX-40 TO 440 294
9570 XU«XMIN+(IX-40)/400*VX 9580 GOSUB 1000 9590 IY-125-(YU-YMIN)*DY 9600 IF IX-40 THEN PSET (IX,IY):GOTO 9620 9610 LINE-(IX,IY) 9620 NEXT IX 9630 FOR IE-1 TO N 9640 YE-125-(YL(IE)-YMIN)*DY 9650 IF YE< 5 OR YE > 125 GOTO 9740 9660 XE-400*(XL(IE)-XMIN)/VX+40 9670 PSET (XE YE) 9680 ON MARKER GOTO 9690,9700,9710,9720,9730 9690 DRAW "U2D4U2L4R8L4":GOTO 9740 9700 DRAW "E2L4F4L4E3":GOTO 9740 9710 DRAW "E2D4H4D4E2L4R8L4":GOTO 9740 9720 DRAW ' E2G4E2H2F4H2L4R8L4":GOTO 9740 9730 DRAW "U2G3R6H3D2" 9740 NEXT IE 9750 LINE D0,5)-D40,5) 9760 LINE D0,125)-D40,125) 9770 LINE D0,5)-D0,125) 9780 LINE D40,5)-D40,125) 9790 FOR Y-5 TO 125 STEP 12 9800 LINE D0,Y)-D3,Y) 9810 LINE D40,Y)-D37,Y) 9820 NEXTY 9830 LOCATE 1,2:PRINT YMAX 9840 LOCATE 9.2:PRINTYS 9850 LOCATE 16,2:PRINT YMIN 9860 FOR X-79 TO 440 STEP 40 9870 LINE(X,125)-(X,122) 9880 LINE(X+1,125)-(X+1,122) 9890 LINE (X,5)-(X,8) 9900 LINE <X+1,5)-(X+1,8) 9910 NEXTX 9920 LOCATE 17,4:PRINT XMIN 9930 LOCATE 17,29:PRINT XS 9940 LOCATE 17,54:PRINT XMAX 9950 A$-INPUT$A) 9960 END 10000 REM "GR 10000" ПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА ФУНКЦИИ 10010 PRINT "":PRINT" ГРАФИЧЕСКОЕ ИЗОБРАЖЕНИЕ РЕЗУЛЬТАТОВ AnnPOKCHMAHHH":PRINT "" 10020 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X:NXD-";NXD 10030 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y:NYD-";NYD 10040 NY-NYD+1 10050 CLS:SCREEN 2:DY-(YMAX-YMIN)/NYD:FOR 1-1 TO NY:Y-2O^160/NYD*(I-l) 10060 LINEG6,Y)-(90,Y):NEXTI:NX-NXD+l 10070 FORI-l TONX:X-84+480/NXD*(I-l):LINE (X,176)-(X,184):NEXT I 10080 LINE (84,12)-(84,188):LINE (84,180)-E68,180) 10090 R-23 10100 FORK-0TONYD 10110 LOCATE R,3 10120 SY-YMIN+DY*K:PRINT USING "#.##";SY 10130 R-R-20/NYD 10140 NEXT К 295
10150 C-7:DX-(XMAX-XMIN)/NXD 10160 FOR K-0TO NXD:KEY OFF:LOCATE 24,C 10170 SX-XMIN+DX*K 10180 PRINT USING M####.##";SX; 10190 C-C+60/(NXI>K)) 10200 NEXT К 10210 VX-XMAX-XMIN:VY-YMAX-YMIN:XA-480/VX:YA-160/VY 10230 FOR IX-84 TO 564:XU-XMIN+(IX-84)/480*VX 10240 GOSUB 1000 10250 IY-180-(YU-YMIN)*YA 10260 IFIY< 20 OR IY> 180 THEN 10290 10270 IF IX-84 THEN PSET (IX,IY) 10280 LINE-(IX,IY) 10290 NEXT IX 10300 FOR IE-1 TON 10310 YE-180-(YL(IE)-YMIN)*YA 10320 IF YE < 20 OR YE > 1180 GOTO 10410 10330 XE-480*(XL(IE)-XMIN)/VX+84 10340 PSET (XE YE) 10350 ON MARKER GOTO 10360,10370,10380,10390,10400 10360 DRAW "U2D4U2L4R8L4":GOTO 10410 10370 DRAW "E2L4F4L4E3":GOTO 10410 10380 DRAW "E2D4H4D4E2L4R8L4":GOTO 10410 10390 DRAW"E2G4E2H2F4H2L4R8L4":GOTO 10410 10400 DRAW "U2G3R6H3D2" 10410 NEXT IE 10420 RETURN RUN ОЦЕНИВАНИЕ НЕИЗВЕСТНОГО ПАРАМЕТРА X НЕЛИНЕЙНОЙ МОДЕЛИ YU-F(XU;X) ПО ЭКСПЕРИМЕНТАЛЬНЫМ ЗНАЧЕНИЯМ YU(I) В ТОЧКАХ XL(I),I-l,...,N МЕТОДОМ ХУКА-ДЖИВСА ЧИСЛО НЕИЗВЕСТНЫХ ПАРАМЕТРОВ М- 4 ЧИСЛО ЗНАЧЕНИЙ ФУНКЦИИ N- 11 « НАЧАЛЬНЫЕ ПРИБЛИЖЕНИЯ ПЕРЕМЕННЫХ » ХB)-2 ХC)-2 Х<4)-2 НАЧАЛЬНОЕ ЗНАЧ. СУММЫ КВАДРАТОВ SO- 1.247214 *************************************************************** « ПОСЛЕДОВАТЕЛЬНОСТЬ ИТЕРАЦИЙ » ффффф********************************************************** НАЙДЕН ЦЕНР ТЯЖЕСТИ V0 СИМПЛЕКСА ( БЕЗ V(IMAX) ) ВЫПОЛНЕНО ОТРАЖЕНИЕ ВЕРШИНЫ V(IMAX) ОТНОСИТЕЛЬНО ТОЧКИ V0 Y(XR)-.8200401 ПРОВЕРКА УСЛОВИЯ СХОДИМОСТИ НАЙДЕН ЦЕНР ТЯЖЕСТИ V0 СИМПЛЕКСА ( БЕЗ VUMAX) ) ВЫПОЛНЕНО ОТРАЖЕ11ИЕ ВЕРШИНЫ V(IMAX) ОТНОСИТЕЛЬНО ТОЧКИ V0 Y(XR)-.587428 ПРОВЕРКА УСЛОВИЯ СХОДИМОСТИ 96
НАЙДЕН ЦЕНР ТЯЖЕСТИ V0 СИМПЛЕКСА ( БЕЗ V(IMAX) ) ВЫПОЛНЕНО ОТРАЖЕНИЕ ВЕРШИНЫ V(IMAX) ОТНОСИТЕЛЬНО ТОЧКИ V0 Y(XR)- .5074332 СДЕЛАНА ПОПЫТКА РАСТЯЖЕНИЯ СИМПЛЕКСА В НАПРАВЛЕНИИ УБЫВАНИЯ ФУНКЦИИ Y(XE)- .6780431 ПРОВЕРКА УСЛОВИЯ СХОДИМОСТИ НАЙДЕН ЦЕНР ТЯЖЕСТИ V0 СИМПЛЕКСА ( БЕЗ V(IMAX) ) ВЫПОЛНЕНО ОТРАЖЕНИЕ ВЕРШИНЫ V(IMAX) ОТНОСИТЕЛЬНО ТОЧКИ V0 Y(XR)- .8482329 ВЫПОЛНЕНО СЖАТИЕ СИМПЛЕКСА ПРОВЕРКА УСЛОВИЯ СХОДИМОСТИ НАЙДЕН ЦЕНР ТЯЖЕСТИ V0 СИМПЛЕКСА ( БЕЗ V(IMAX) ) ВЫПОЛНЕНО ОТРАЖЕНИЕ ВЕРШИНЫ V(IMAX) ОТНОСИТЕЛЬНО ТОЧКИ V0 Y(XR)-. 3718387 СДЕЛАНА ПОПЫТКА РАСТЯЖЕНИЯ СИМПЛЕКСА В НАПРАВЛЕНИИ УБЫВАНИЯ ФУНКЦИИ Y(XE)- .3656077 ПРОВЕРКА УСЛОВИЯ СХОДИМОСТИ НАЙДЕН ЦЕНР ТЯЖЕСТИ V0 СИМПЛЕКСА ( БЕЗ V(IMAX) ) ВЫПОЛНЕНО ОТРАЖЕНИЕ ВЕРШИНЫ V(IMAX) ОТНОСИТЕЛЬНО ТОЧКИ V0 Y(XR)- .5610794 ПРОВЕРКА УСЛОВИЯ СХОДИМОСТИ НАЙДЕН ЦЕНР ТЯЖЕСТИ V0 СИМПЛЕКСА ( БЕЗ V(IMAX) ) ВЫПОЛНЕНО ОТРАЖЕНИЕ ВЕРШИНЫ V(IMAX) ОТНОСИТЕЛЬНО ТОЧКИ V0 Y(XR)~. 2997816 СДЕЛАНА ПОПЫТКА РАСТЯЖЕНИЯ СИМПЛЕКСА В НАПРАВЛЕНИИ УБЫВАНИЯ ФУНКЦИИ Y(XE)- .2389494 ПРОВЕРКА УСЛОВИЯ СХОДИМОСТИ НАЙДЕН ЦЕНР ТЯЖЕСТИ V0 СИМПЛЕКСА ( БЕЗ V(IMAX) ) ВЫПОЛНЕНО ОТРАЖЕНИЕ ВЕРШИНЫ V(IMAX) ОТНОСИТЕЛЬНО ТОЧКИ V0 Y(XR)*" 3076823 ПРОВЕРКА УСЛОВИЯ СХОДИМОСТИ НАЙДЕН ЦЕНР ТЯЖЕСТИ V0 СИМПЛЕКСА < БЕЗ V(IMAX) ) ВЫПОЛНЕНО ОТРАЖЕНИЕ ВЕРШИНЫ V(IMAX) ОТНОСИТЕЛЬНО ТОЧКИ V0 Y(XR)-.1297001 СДЕЛАНА ПОПЫТКА РАСТЯЖЕНИЯ СИМПЛЕКСА В НАПРАВЛЕНИИ УБЫВАНИЯ ФУНКЦИИ Y(XE)- .84457 ПРОВЕРКА УСЛОВИЯ СХОДИМОСТИ НАЙДЕН ЦЕНР ТЯЖЕСТИ V0 СИМПЛЕКСА ( БЕЗ V(IMAX) ) ВЫПОЛНЕНО ОТРАЖЕНИЕ ВЕРШИНЫ V(IMAX) ОТНОСИТЕЛЬНО ТОЧКИ V0 Y(XR)= .6146385 ВЫПОЛНЕНО СЖАТИЕ СИМПЛЕКСА ПРОВЕРКА УСЛОВИЯ СХОДИМОСТИ НАЙДЕН ЦЕНР ТЯЖЕСТИ V0 СИМПЛЕКСА ( БЕЗ V(IMAX) ) ВЫПОЛНЕНО ОТРАЖЕНИЕ ВЕРШИНЫ V(IMAX) ОТНОСИТЕЛЬНО ТОЧКИ V0 Y(XR)-.189221 ПРОВЕРКА УСЛОВИЯ СХОДИМОСТИ 297
НАЙДЕН ЦЕНР ТЯЖЕСТИ V0 СИМПЛЕКСА ( БЕЗ V(IMAX) ) ВЫПОЛНЕНО ОТРАЖЕНИЕ ВЕРШИНЫ V(IMAX) ОТНОСИТЕЛЬНО ТОЧКИ V0 Y(XR)-4.637939E-02 СДЕЛАНА ПОПЫТКА РАСТЯЖЕНИЯ СИМПЛЕКСА В НАПРАВЛЕНИИ УБЫВАНИЯ ФУНКЦИИ Y(XE)-3.402678E-02 ПРОВЕРКА УСЛОВИЯ СХОДИМОСТИ НАЙДЕН ЦЕНР ТЯЖЕСТИ V0 СИМПЛЕКСА ( БЕЗ V(IMAX) ) ВЫПОЛНЕНО ОТРАЖЕНИЕ ВЕРШИНЫ V(IMAX) ОТНОСИТЕЛЬНО ТОЧКИ V0 Y(XR)-. 2321644 ПРОВЕРКА УСЛОВИЯ СХОДИМОСТИ НАЙДЕН ЦЕНР ТЯЖЕСТИ V0 СИМПЛЕКСА ( БЕЗ V(IMAX) ) ВЫПОЛНЕНО ОТРАЖЕНИЕ ВЕРШИНЫ V(IMAX) ОТНОСИТЕЛЬНО ТОЧКИ V0 Y(XR)-.24O166 ВЫПОЛНЕНО СЖАТИЕ СИМПЛЕКСА ПРОВЕРКА УСЛОВИЯ СХОДИМОСТИ НАЙДЕН ЦЕНР ТЯЖЕСТИ V0 СИМПЛЕКСА ( БЕЗ V(IMAX) ) ВЫПОЛНЕНО ОТРАЖЕНИЕ ВЕРШИНЫ V(IMAX) ОТНОСИТЕЛЬНО ТОЧКИ V0 Y(XR)- .2636462 ВЫПОЛНЕНО СЖАТИЕ СИМПЛЕКСА ПРОВЕРКА УСЛОВИЯ СХОДИМОСТИ НАЙДЕН ЦЕНР ТЯЖЕСТИ V0 СИМПЛЕКСА ( БЕЗ V(IMAX) ) ВЫПОЛНЕНО ОТРАЖЕНИЕ ВЕРШИНЫ V(IMAX) ОТНОСИТЕЛЬНО ТОЧКИ V0 Y(XR)"" 6320738 ' ВЫПОЛНЕНО СЖАТИЕ СИМПЛЕКСА ПРОВЕРКА УСЛОВИЯ СХОДИМОСТИ НАЙДЕН ЦЕНР ТЯЖЕСТИ V0 СИМПЛЕКСА ( БЕЗ V(IMAX) ) ВЫПОЛНЕНО ОТРАЖЕНИЕ ВЕРШИНЫ V(IMAX) ОТНОСИТЕЛЬНО ТОЧКИ V0 Y(XR)«3.592655E-02 ПРОВЕРКА УСЛОВИЯ СХОДИМОСТИ НАЙДЕН ЦЕНР ТЯЖЕСТИ V0 СИМПЛЕКСА ( БЕЗ V(IMAX) ) ВЫПОЛНЕНО ОТРАЖЕНИЕ ВЕРШИНЫ V(IMAX) ОТНОСИТЕЛЬНО ТОЧКИ V0 Y(XR)-1.842544E-02 СДЕЛАНА ПОПЫТКА РАСТЯЖЕНИЯ СИМПЛЕКСА В НАПРАВЛЕНИИ УБЫВАНИЯ ФУНКЦИИ Y(XE)- 6.07861 ЗЕ-02 ПРОВЕРКА УСЛОВИЯ СХОДИМОСТИ НАЙДЕН ЦЕНР ТЯЖЕСТИ V0 СИМПЛЕКСА ( БЕЗ V(IMAX) ) ВЫПОЛНЕНО ОТРАЖЕНИЕ ВЕРШИНЫ V(IMAX) ОТНОСИТЕЛЬНО ТОЧКИ V0 Y(XR)-3.127875E-02 ПРОВЕРКА УСЛОВИЯ СХОДИМОСТИ НАЙДЕН ЦЕНР ТЯЖЕСТИ V0 СИМПЛЕКСА ( БЕЗ V(IMAX) ) ВЫПОЛНЕНО ОТРАЖЕНИЕ ВЕРШИНЫ V(IMAX) ОТНОСИТЕЛЬНО ТОЧКИ V0 Y(XR)-.8787874 ВЫПОЛНЕНО СЖАТИЕ СИМПЛЕКСА ПРОВЕРКА УСЛОВИЯ СХОДИМОСТИ НАЙДЕН ЦЕНР ТЯЖЕСТИ V0 СИМПЛЕКСА ( БЕЗ V(IMAX) ) ВЫПОЛНЕНО ОТРАЖЕНИЕ ВЕРШИНЫ V(IMAX) ОТНОСИТЕЛЬНО ТОЧКИ V0 98
Y(XR)- 6.748125E-02 ВЫПОЛНЕНО СЖАТИЕ СИМПЛЕКСА ПРОВЕРКА УСЛОВИЯ СХОДИМОСТИ НАЙДЕН ЦЕНР ТЯЖЕСТИ V0 СИМПЛЕКСА ( БЕЗ V (IMAX) ) ВЫПОЛНЕНО ОТРАЖЕНИЕ ВЕРШИНЫ V(IMAX) ОТНОСИТЕЛЬНО ТОЧКИ V0 Y(XR)-4.257305E 02 ВЫПОЛНЕНО СЖАТИЕ СИМПЛЕКСА ПРОВЕРКА УСЛОВИЯ СХОДИМОСТИ НАЙДЕН ЦЕНР ТЯЖЕСТИ V0 СИМПЛЕКСА ( БЕЗ V(IMAX) ) ВЫПОЛНЕНО ОТРАЖЕНИЕ ВЕРШИНЫ V(IMAX) ОТНОСИТЕЛЬНО ТОЧКИ V0 Y(XR)- .058908 ВЫПОЛНЕНО СЖАТИЕ СИМПЛЕКСА ПРОВЕРКА УСЛОВИЯ СХОДИМОСТИ **********$**«*******♦♦******$♦*****♦**« «МИНИМУМ НАЙДЕН» **************************************** Х( 1 )-1.975383 Х( 2)-3.324477 ХC)-. 7208444 Х( 4)-2.986253 МИНИМУМ СУММЫ КВАДРАТОВ ОТКЛОНЕНИЙ SMIN- 6.932975Е-03 ЧИСЛО ИТЕРАЦИЙ ITR- 23 ЧИСЛО ВЫЧИСЛЕНИЙ ФУНКЦИИ NVF- 726 ********************************************************* НОМЕР ТОЧКИ 1 2 3 4 5 6 7 8 9 10 11 ЗНАЧЕНИЕ АРГУМЕНТА 0 .5 1 1.5 2 2.5 3 3.5 4 4.5 5 ЗНАЧЕНИЕ ФУНКЦИИ 3 .8498477 8.384258Е-03 .289871 .5224895 .2955303 8.842622Е-02 .1328773 .205161 .1634247 .1020594 ЗНАЧЕНИЕ МОДЕЛИ 2.975383 .7961118 -2.369425Е-02 .2516455 .4834599 .2746116 7.724841 Е-02 .1148353 .1836476 .1488751 9.268904Е-02 РАЗНОСТИ 2.461672Е-02 5.373585Е-02 3.207851Е-02 3.822544Е-02 3.902957Е-02 2.091873Е-02 1.117781Е-02 1.804198Е-02 2.151342Е-02 1.454955Е-02 9.370379Е-03 ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧ. АРГУМЕНТА XMIN,XMAX? 0,5 ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧ. ФУНКЦИИ YMIN,YMAX? 0,3 4) Методы случайного поиска Эффективность методов поиска минимума суммы квадратов C.1.5) существенно зависит от того, насколько удачно выбрано на- начальное приближение. В некоторых случаях начальные значения оцениваемых параметров можно выбрать на основе анализа физической сущности исследуемого явления. Однако в подавляющем большинст- большинстве случаев очень трудно предугадать, какое начальное приближение 299
5 Рис. 3.16. Аппроксимация сдюмощ^о нелинейной модели C.4.2) tV- 11 ее значе ний, найденных при xi = 2; xi = 3; дгз = 0.7; Х4 = 3, методом Нелдера-Мида необходимо взять, чтобы процедура поиска минимума была сходя- сходящейся. Выбор начального приближения осложняется также тем, что функция C.1.5) может иметь несколько локальных экстремумов. Ес- Если начальная точка лежит в окрестности одного из локальных мини- минимумов, то рассматриваемые в данной главе методы позволяют найти только точку этого минимума. Трудности такого типа позволяют обойти методы случайного по- поиска. В методах случайного поиска в итерационную процедуру пред- преднамеренно вводится элемент случайности, что позволяет "проскакивать" при спуске точки локальных минимумов [9,17,28 I Для большинства вариантов методов случайного поиска последо- последовательность приближений определяется с помощью соотношения / = 0,1,2,..., C.4.14) где #@)— начальное приближение (произвольная точка из Ел), pi -~ величина шага, £ — ^-мерный случайный вектор. Компоненты слу- случайного вектора £ являются независимыми случайными величинами с функцией распределения F$(x). Для реализации методов случай- случайного поиска на ЭВМ в математическом обеспечении необходимо иметь датчик случайных чисел, равномерно распределеных на 300
отрезке [0, 1 ] или [-1, 1 ]. С помощью этого датчика путем некото- некоторых преобразований можно получить случайные числа, имеющие произвольную функцию распределения [ 1 ]. Рассмотрим несколько вариантов метода случайного поиска ми- минимума функции Ф@) на множестве D Е £*. 1) Алгоритм с возвращением при неудачном шаге. Сущность этого алгоритма заключается в следующем. Пусть из- известно некоторое приближение (fl) итерационного процесса. С по- мошью датчика случайных чисел формируется случайный вектор £ и определяется точка F=0Ci)+ р£, C.4.15) где р = const > 0. Если Ф(У) < Ф(в^г)) , то средний шаг считается удачным и полагают 0°+1) = V. Если же Ф(У) > Ф(^°), или V&D , то шаг является неудачным и 0^+1) = (fl). Если начиная с некоторого номера /о для достаточно больших N, то &10) можно выбрать в качестве прибли- приближения искомой точки минимума. 2) Алгоритм наилучшей пробы. В этом варианте метода генерируется М реализаций £A),..., £(М) случайного вектора £ и вычисляются значения функции Ф@) в точ- точках V® = &1) + р]-® у j = 1,...,М (предполагается, что точки Vе0 при- принадлежат множеству D). Тогда следующее приближение можно найти по формуле )) C.4.16) где вектор £(ю) определяется из условия Ф (№ + pfm) = min Ф (б*0 + ррА . C.4.17) 3) Случайный поиск С длзптаиией. В рассмотренных выше вариантах метода случайного поиска рас- распределение вектора £ не зависит от номера итерации. Это означает, что при определении направления поиска данной итерации не учи- учитывается информация, полученная на предыдущих этапах вычисле- вычислений. Такие алгоритмы не способны адаптироваться и сходятся очень медленно. Более эффективными являются алгоритмы случайного поиска с адаптацией (обучением). В алгоритмах с адаптацией распределение вектора £ изменяется от итерации к итерации таким образом, что 301
направления, в которых функция Ф@) убывает, становятся более ве- вероятными, чем остальные направления. При реализации методов случайного поиска с адаптацией после- давательность приближения для точки минимума функциии Ф(в) вычисляется с помощью итерационной процедуры = б® C.4.18) где случайный вектор £A) зависит от номера итерации. Распределение случайного вектора |0 выбирается с учетом априорной информации о структуре функции Ф(#). Если такая информация отсутствует, то предполагается, что компоненты вектора |о являются независимыми, равномерно распределенными на отрезке [-1, 1 ] случайными вели- величинами. Рассмотрим вариант метода случайного поиска с адаптацией, предложенный Л. А. Растригиным. Этот алгоритм называется ритмом непрерывной адаптации. В алгоритме непрерывной адапта- адаптации случайный вектор £ имеет вид * w\\ где г] = (rj\,..., rjk) — случайный вектор, компоненты которого являют- являются независимыми, равномерно распределенными на отрезке [-1, I ] случайными величинами, a w = (w\,..., и>*) — вектор параметров обу- обучения. Поиск минимума начинается с выбора двух случайных ^-мерных векторов |@) и |A) = |@), реализации которых используются при оп- определении приближений &0) и &{) по формуле C.4.18). Пусть извест- известны приближения Тогда компоненты векто- вектоа также вектор параметров обучения ра w(l) можно вычислить по формулам - 6 sign [ ( —- 1,^,..., К , i ""■ где величина уЗ > 0 называется параметром забывания, а д > 0 — параметром*интенсивности обучения. С помощью вектора и^ нахо- находим вектор £ (по формуле C.4.19), который позволяет найти следу- следующее приближение ^'+1) для вектора неизвестных параметров Увеличение I I w I I приводит к уменьшению влияния случайного вектора rj. Поэтому на практике последовательность векторов н; выбирается таким образом, чтобы выполнялось условие 302
< с, C.4.21) где с — некоторая постоянная. Это ограничение позволяет избежать излишней детерминированности случайного поиска. Рекомендации по выбору параметров алгоритма непрерывной адаптации можно найти в книгах [9,28 ]. 3.5. ПРИМЕНЕНИЕ МЕТОДОВ ПЕРВОГО ПОРЯДКА ПРИ НЕЛИНЕЙНОМ ОЦЕНИВАНИИ ПАРАМЕТРОВ При обработке результатов испытаний современных сложных технических систем оценивание параметров нелинейных моделей часто осуществляется с помощью методов первого порядка. Это обус- обусловлено тем, что при поиске минимума Ф@) в методах первого по- порядка используются только первые производные целевой функции C.1.5). Методы первого порядка сходятся намного быстрее методов нулевого порядка, так как в них учитываются производные, характе- характеризующие направление наиболее быстрого убывания функции. Рас- Рассмотрим основные методы первого порядка, применяемые при решении задач нелинейного оценивания параметров. 1) Градиентный метод Одним из основных методов, применяемых для оценивания па- параметров нелинейных моделей, является градиентный метод. Этот метод иногда называют также методом наискорейшего пуска [3-7, 9,10,20,23,24,26-30]. В градиентном методе в качестве направления спуска выбирается вектор, направление которого противоположно направлению вектора градиента функции Ф(#). По определеникг диентом функции является вектор /дФ дФ\ grad<I>@)= (а5Г»-'а^ * C.5.1) В математическом анализе доказывается, что вектор gradO(^) ха- характеризует направление наиболее быстрого возрастания функции. Поэтому вектор Р = — grad Ф является направлением наиболее быс- быстрого ее убывания. Рекурентное соотношение, с помощью которого реализуется градиентный метод, имеет вид 1) = 0@ - р, grad Ф^0) , i = 0,1,2,..., C.5.2) где pi > 0 — величина шага, $0)— заданное начальное приближе- приближение. В зависимости от выбора величины шага/),- можно получить раз- различные варианты градиентного метода. Если при вычислениях величины/), выбираются малыми, то градиентный метод называется градиентным методом с малым шагом. В градиентном методе с боль- 303
шим шагом на каждой итерации делается один большой шаг. Приме- Примером метода с большим шагом является оптимальный градиентщц М£ЮД, для которого pi выбирается из условия Ф (^ - pi grad Ф^0)) = min Ф (&*> - р grad Ф@<0)) . C.5.3) Алгоритм градиентного метода. Начальный этап. Пусть е > 0 — некоторая постоянная (малое число) и &0)— начальное приближение. Положим /« 0 и перейдем к основному этапу. Основной этап, а) Если I I grad Ф(в^1)) II < е, то вычисления преры- прерываются; если же это условие не выполняется, то за направление движения выбирается вектор Р,- = — grad Ф(&1)) и решается задача линейного по- поиска точки минимума функции (р(р) = Ф(^° - р grad Ф(в^1))) б) Следующее приближение определяется по формуле C.5.2). Заменив / на / +1 переходим к пункту а). Таким образом, градиентный метод позволяет найти одну из стационарных точек, для которой grad Ф(в*) = 0. Алгоритм оценивания вектора параметров нелинейной модели, в котором минимизация суммы квадратов отклонений осуществляется градиентным методом, реализован в программе NREG05W1. При от- отладке этой программы в качестве одной из тестовых рассматривалась дробнорациональная функция у = 2/A 4- Зт). В программу вводятся N - 11 ее значений у-} в точках ту = 0.5(/-1), / = 1,..,, N. Начальные значения параметров х\ и Х2 нелинейной модели у — х\ /A +хгт) вы- выбирались равными лй0) = 1; х^ = 2 . Оценивание производных мини- минимизируемой суммы квадратов отклонений осуществляется в программе с помощью конечноразностных соотношений. Листинг программы NREG05W1, а также результаты аппроксимации значе- значений тестовой задачи представлены ниже. График "эксперименталь- "экспериментальных" значений тестовой функции и полученной в результате выполнения программы NREG05W1 нелинейной модели показан на рис. 3.17. Начальные данные в программе определены операторами 8000—8070. Аппроксимирующая функция задана в подпрограмме операторами с номерами 1000—1030. 10 REM "NREG05W1" 20 R£M********************************************************************* 25 REM*** ПРОГРАММА ОЦЕНИВАНИЯ ВЕКТОРА X ПАРАМЕТРОВ 27 REM*** НЕЛИНЕЙНОЙ МОДЕЛИ 30 REM*** YU-F(XU;X) МЕТОДОМ НАИСКОРЕЙШЕГО СПУСКА 32 REM*** (ОДНОМЕРНАЯ МИНИМИЗАЦИЯ 35 REM*** ОСУЩЕСТВЛЯЕТСЯ МЕТОДОМ КВАДРАТИЧНОЙ 37 REM*** ИНТЕРПОЛЯЦИИ) 40 rem****************************************************************** 60 DIM XB0),YB0),DGB0),DGXB0),XLD),YU4) 70 DIM X0B0),DXB0),XRA00),YRA00),YMA00) 100 GOSUB8000 304
110 GOSUB3000 210 PRINT 220 PRINT "НОМЕР ТОЧКИ ЗНАЧ.АРГУМ. ЗНАЧ. ФУНКЦ. ЗНАЧ МОДЕЛИ РАЗНОСТИ" 230 PRINT"- 240 FOR I-l TO N 250 DED-YR(I)-YMU) 260 PRINTI,XR(I),YR(I),YM(I),DEL 270 NEXT I 280 PRINT" 290 PRINT 320 PRINT "**♦**♦♦♦*♦♦♦*♦*♦♦♦♦♦*♦♦♦♦*♦♦*♦♦**♦♦♦♦♦*♦♦♦*♦*♦**♦♦♦♦*♦♦*♦♦♦*♦*" 330 PRINT:PRINT 340 INPUT "ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. АРГУМЕНТА XMIN,XMAX";XMIN,XMAX 350 INPUT "ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. ФУНКЦИИ YMIN,YMAX";YMIN,YMAX 360 PRINT 370 REM GOSUB 9000 380 MARKER-*2:GOSUB 9500 390 REM MARKER-2: GOSUB 10000 500 END 999 REM"NRNM" 1000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ АППРОКСИМИРУЮЩЕЙ ФУНКЦИИ 1010 YU«XA)/A+XB)*XU) 1020 NVF-NVF+1 1030 RETURN 2000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ СУММЫ КВАДРАТОВ ОТКЛОНЕНИЙ 2010 Y-0 2020 FOR IR-1 ТО N 2030 XU«XR(IR):GOSUB1000:YM(IR)«YU 2040 Y-Y+(YR(IR)-YM(IR))~2 2050 NEXTIR 2060 RETURN 3000 REM ПОДПРОГРАММА ОЦЕНИВАНИЯ ПЕРАМЕТРОВ НЕЛИНЕЙНОЙ МОДЕЛИ 3005 REM МЕТОДОМ НАИСКОРЕЙШЕГО СПУСКА ЗОЮ PRINT:PRINT:PRINT 3020 PRINT " НЕЛИНЕЙНОЕ ОЦЕНИВАНИЕ МЕТОДОМ ' НАИСКОРЕЙШЕГО СПУСКА" 3030 PRINT "(ПРОИЗВОДНЫЕ ОЦЕНИВАЮТСЯ С ПОМОЩЬЮ КОНЕЧНЫХ РАЗНОСТЕЙ)" 3040 PRINT "♦♦♦*♦♦♦♦♦♦♦♦♦♦*♦♦♦♦♦♦♦*♦♦♦♦♦♦♦♦♦*♦♦*♦♦♦♦♦♦*♦*♦♦*♦*♦♦**♦" 3050 PRINT:PRINT "ЧИСЛО ОЦЕНИВАЕМЫХ ПАРАМЕТРОВ М«";М 3060 PRINT:PRINT "НАЧАЛЬНЫЙ ШАГ ПО ПАРАМЕТРАМ НХ«";НХ 3070 PRINT:PRINT "КОНСТАНТА КРИТЕРИЯ ПРЕРЫВАНИЯ ВЫЧИСЛЕНИЙ EPS- ;EPS 3080 PRINT 3090 PRINT " НАЧАЛЬНЫЕ ПРИБЛИЖЕНИЯ ПАРАМЕТРОВ" 3100 PRINT " " 3110 FOR 1-1 ТОМ 3120 PRINT" X(";I;")-";X(I) 3130 NEXT I 3135 PRINT "-- — " 3140 GOSUB 2000 3150 PRINT:PRINT "НАЧАЛЬНОЕ ЗНАЧЕНИЕ СУММЫ 305
КВАДРАТОВ Y(X1 XM)-";Y 3155 PRINT 3160 PRINT 3170 PRINT w < ПОСЛЕДОВАТЕЛЬНОСТЬ ИТЕРАЦИЙ >" 3180 PRINT" - - " 3190 ITR-l:NVF-0 3200 FOR 1-1 TO M 3210 Yd)-X(I) 3220 NEXT I 3230 GOSUB 2000:YY-Y 3240 GOSUB 5000.GOSUB 5500 3250 IF GSUM < EPS GOTO 3880 3260 FOR 1-1 TO M 3270 DG(I)--DGX(I)/GSUM 3280 NEXT I 3290 XL(l)-0:YL(l)-YY 3300 XLC)-HX 3310 FORI-1TOM 3320 X(I)-Y(I)+XLC)*DG(I) 3330 NEXT I 3340 GOSUB 2OOO:YLC)-Y 3350 GOSUB 5000:GOSUB 5500 3360 GSUM2-0 3370 FOR 1-1 TO M 3380 GSUM2-GSUM2+DG(I)*DGX(I) 3390 NEXT I 3400 IF YLC)>-YLA) OR GSUM2>-0 GOTO 3420 3410 HX-HX*2:GOTO 3300 3420 XLB)«HX/2 3430 FOR 1-1 TO M 3440 X(I)-Y(I)+XLB)*DG(I) 3450 NEXT I 3460 GOSUB 2000 3470 YLB)-Y 3480 XLD)-HX*(YLB)-.75*YLA)-.25*YLC))/B*YLB)-YLA)-YLC)) 3490 IF XLD)< 0 THEN PRINT "ВНИМАНИЕ" 3500 FOR 1-1 TO M 3510 X(I)-Y(I)+XLD)*DG(I) 3520 NEXT I 3530 GOSUB 2000:YLD)-Y 3540 FOR 1-1 TO 3 3550 Il-I+l 3560 FORJ-I1TO4 3570 IFYL(I)<-YL(J) GOTO 3600 3580 SX-XL(I):XL(I)-XL(J):XL(J)-SX 3590 SY«YL(I):YL(I)«YL(J):YL(J)-SY 3600 NEXTJ.I 3610 IF ABS(XLA)-XLB)X.OOOO5 GOTO 3730 3620 U21-SGN(XLB)-XLA)):U31-SGN(XLC)-XLA)):U41-SGN(XLD)~XI.O 3630 IFU21-U31 ANDU21--U41 THEN XLC)-XLD):YLC)-YLD) 3640 VINT-(XLB)-XLC))*YL(l)+(XLC)-XL(l))*YLB)-i-(XL(l)-XLB))*YLC 3650 DINT-(YLA)-YLB))/B*VINT) 3660 DINT-DINT*(XLB)-XLC))* (XLC)-XL( 1)) 3670 XLD)-(XL(l)+XLB))/2+DINT 3680 FOR 1-1 TO M 3690 X(I)-Y(I)+XLD)*DG(I) 3700 NEXT I 3710 GOSUB 2000:YLD)-Y 306
3720 GOTO 3540 3730 FOR 1-1 TO M 3740 X(I)-Y(I)+XLA)*DG(I) 3750 Yd)-X(I) 3760 NEXT I 3770 GOSUB 2000:YY-Y 3780 GOSUB 5000:GOSUB 5500 3790 PRINT"- 3800 PRINT" ИТЕРАЦИЯ ITR-JTR 3810 PRINT "- " 3820 FOR 1-1 TO M 3830 PRINT" XC;I;")«";X(I) 3840 NEXT I 3850 PRINT "Y(X1 XM)-";YY 3860 HX-HX/2 3870 IF GSUM>EPS THEN ITR-ITR+1 :GOTO 3250 3880 PRINT"♦**♦**♦**♦♦♦*♦♦♦♦*♦*♦**♦♦♦♦*♦♦*♦*♦♦♦*♦♦♦♦" 3890 PRINT " СХОДИМОСТЬ ДОСТИГНУТА" 3900 PRINT "♦♦**♦♦♦♦*♦♦♦*♦♦♦*♦♦*♦♦*♦♦♦♦♦♦♦*♦♦♦♦♦♦♦♦*♦" 3910 PRINT "ОЦЕНКИ ПАРАМЕТРОВ" 3915 PRINT" " 3920 FOR 1-1 TO M 3930 PRINT "XC;I;")«";X(D 3940 NEXT I 3945 PRINT " " 3950 PRINT "МИНИМУМ СУММЫ КВАДРАТОВ SUM2»";YY 3960 PRINT "ЧИСЛО ИТЕРАЦИЙ ITR-";ITR 3970 PRINT "ЧИСЛО ВЫЧИСЛЕНИЙ ФУНКЦИИ NVF-";NVF 3980 PRINT "*♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦**♦♦*♦♦♦♦♦♦" 3990 RETURN 5000 REM ПОДПРОГРАММА ОЦЕНИВАНИЯ ЧАСТНЫХ ПРОИЗВОДНЫХ 5010 FORI-1TOM 5020 XO(I)-Xd) 5030 NEXT I 5040 FOR WTOM 5050 DX(I)-ABS(X(I)/1OOO)+.OOOOO1 5060 X(I)-X(I)+DX(I) 5070 GOSUB 2000:YI-Y 5080 X(I)-X(I)-2*DX(I) 5090 GOSUB 2000 5100 DGX(I)-(YI~Y)/DX(I)/2 5110 X(I)-XOU) 5120 NEXT I 5130 FORI-1 TOM 5140 X(I)-XOd) 5150 NEXT I 5160 RETURN 5500 REM ПОДПРОГРАММА ВЫЧИСЛЕНИ НОРМЫ ГРАДИЕНТА 5510 GSUM-0 5520 FOR 1-1 TO M 5530 GSUM-GSUM+DGX(I)'42 5540 NEXT I 5550 GSUM-SQR(GSUM) 5560 RETURN 8000 REM ПОДПРОГРАММА ВВОДА НАЧАЛЬНЫХ ДАННЫХ 8005 N-ll 8010 М-2 8015 ХA)-1:ХB)-2 307
8020 IP-1 8025 HX-.2 8030 EPS-.0001 8035 FOR 1-1 TO N 8040 XR(I)-(I-l)*. 8050 NEXT I 8070 RETURN 9000 REM "GR9000": ПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА ФУНКЦИИ 9010 PRINT " M:PRINT " ГРАФИК НЕЛИНЕЙНОЙ МОДЕЛИ'^ШТ 9020 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X:NXD-";NXD 9030 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y:NYD-";NYD 9050 NY-NYD+1 9060 CLS:SCREEN 2:DY-(YMAX-YMIN)/NYD:FOR 1-1 TO NY:Y-20+160/NYD*(I-l) 9070 LINE G4,Y)-E74,Y):NEXT I:NX-NXD+1 9080 FORI-l TONX:X-84+480/NXD*(I-l):LINE (X,12)-(X,188):NEXTI 9090 R-23 9100 FORK-0TONYD 9110 LOCATE R 1 9120 SY-YMIN+DY*K:PRINT USING "#.###";SY 9130 R-R-20/NYD 9135 NEXT К 9140 C-7:DX-(XMAX-XMIN)/NXD 9150 FOR K-0 TO NXD:KEY OFF:LOCATE 24,C 9160 SX-XMIN+DX*K 9170 PRINT USING "####.##";SX; 9180 C-C+60/(NXD+0) 9185 NEXT К 9310 XA-E64-84) /(XMAX-XMIN): YA«( 180-20) /(YMAX-YMIN) 9320 FOR IX-84 TO 564:XU-XMIN+(IX-84)/480*(XMAX-XMIN) 9330 GOSUB 1000 9340 IY-180-(YU-YMIN)*YA 9350 IFIY <20ORIY>180THEN9370 9360 IF IX-84 THEN PSET (IX.IY) 9365 LINE-(IX JY) 9370 NEXT IX 9380 FOR 1-1 TO N 9390 YG-180-(YR(I)-YMIN)*YA 9400 IF YG < 20 OR YG >180 GOTO 9440 9410 XG-480* (XR (I) -XMIN) / (XMAX-XMIN)-1-84 9420 PSET (XG,YG) 9430 DRAW "E2G4E2H2F4H2E2D4L4U4R4G2" 9440 NEXT I 9450 RETURN 9500 REM "GRAF9500" 9510 XS-(XMIN+XMAX)/2 9520 YS-(YMIN+YMAX)/2 9540 SCREEN 2:CLS:KEY OFF 9550 VX-XMAX-XMIN:DX-300/VX:VY-YMAX-YMIN.DY-120/VY 9560 FOR IX-40 TO 440 9570 XU-XMIN+ (IX-40) /400*VX 9580 GOSUB 1000 9590 IY-125-(YU-YMIN)*DY 9595 IF IY< 5 OR IY >125 GOTO 9620 9600 IF IX-40 THEN PSET (IX,IY):GOTO 9620 9610 LINE-(IX ДY) 9620 NEXT IX 308
9630 FOR IE-1 TO N 9640 YE-125-(YR(IE)-YMIN)*DY 9650 IFYE<5ORYE>125GOTO9740 9660 XE-400*(XR(IE)-XMIN)/VX+40 9670 PSET (XE,YE) 9680 ON MARKER GOTO 9690,9700,9710,9720,9730 9690 DRAW "U2D4U2L4R8L4":GOTO 9740 9700 DRAW ИЕ2ЫР4Ь4ЕЗ":СОТО 9740 9710 DRAW ME2D4H4D4E2L4R8L4":GOTO 9740 9720 DRAW ME2G4E2H2F4H2L4R8L4'1:GOTO 9740 9730 DRAW 4J2G3R6H3D2" 9740 NEXT IE 9750 LINE D0,5)-D40,5) 9760 LINE D0,125)-D40,125) 9770 LINE D0,5) -D0,125) 9780 LINE D40,5)-D40,125) 9790 FOR Y-5 TO 125 STEP 12 9800 LINE D0,Y)-D3,Y) 9810 LINE D40,Y)-D37,Y) 9820 NEXTY 9830 LOCATE 1,2:PRINT YMAX 9840 LOCATE 9.2:PRINTYS 9850 LOCATE 16,2:PRINT YMIN 9860 FOR X-79 TO 440 STEP 40 9870 LINE (X, 125)-(X, 122) 9880 LINE (X+1,125)-(X+1,122) 9890 LINE (X,5)-(X,8) 9900 LINE(X+1,5)-(X+1,8) 9910 NEXTX 9920 LOCATE 17,4:PRINT XMIN 9930 LOCATE 17,29:PRINTXS 9940 LOCATE 17,54:PRINT XMAX 9950 A$-INPUT$U) 9960 END 10000 REM "GR10000" ПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА ФУНКЦИИ 10010 PRINT " ":PRINT " ГРАФИЧЕСКОЕ ИЗОБРАЖЕНИЕ РЕЗУЛЬТАТОВ AnnPOKCHMAUHH":PRINT " " 10020 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X:NXD-";NXD 10030 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y:NYD-";NYD 10040 NY-NYD+1 10050 CLS:SCREEN 2:DY-(YMAX-YMIN)/NYD:FOR 1-1 TO NY:Y-2O+160/NYD*(I-l) 10060 LINEG6,Y)-(90,Y):NEXTI:NX-NXD+l 10070 FORI-1 TONX:X-84+480/NXD*(I-l):LINE (X,176)-(X,184):NEXTI 10080 LINE (84,12)-(84,188):LINE (84,180)-E68,180) 10090 R-23 10100 FORK-0TONYD 10110 LOCATE R 3 10120 SY-YMIN+DY*K:PRINT USING "#.##";SY 10130 R-R-20/NYD 10140 NEXT К 10150 C-7:DX-(XMAX-XMIN)/NXD 10160 FOR K-0 TO NXD:KEY OFF:LOCATE 24,C 10170 SX-XMIN+DX*K 10180 PRINT USING "####.##";SX; 10190 C-C+60/(NXCH0) 10200 NEXT К 309
10210 VX-XMAX-XMIN:VY-YMAX-YMIN:XA-480/VX:YA-160/VY 10230 FOR IX-84 TO 564:XU-XMIN+(IX-84)/480*VX 10240 GOSUB 1000 10250 IY-180-(YU-YMIN)*YA 10260 IF IY<20 OR IY>180 THEN 10290 10270 IF IX-84 THEN PSET <IX,IY) 10280 LINE-(IX,IY) 10290 NEXT IX 10300 FORIE-1TON 10310 YE-180-(YR(IE)-YMIN)*YA 10320 IF YE <20ORYE>l 180 GOTO 10410 10330 XE-480*(XR(IE)-XMIN)/VX+84 10340 PSET (XE YE) 10350 ON MARKER GOTO 10360,10370,10380,10390,10400 10360 DRAW "U2D4U2L4R8L4":GOTO 10410 10370 DRAW "E2L4F4L4E3":GOTO 10410 10380 DRAW"E2D4H4D4E2L4R8L4":GOTO 10410 10390 DRAW "E2G4E2H2F4H2L4R8L4":GOTO 10410 10400 DRAW "U2G3R6H3D2" 10410 NEXT IE 10420 RETURN RUN НЕЛИНЕЙНОЕ ОЦЕНИВАНИЕ МЕТОДОМ НАИСКОРЕЙШЕГО СПУСКА (ПРОИЗВОДНЫЕ ОЦЕНИВАЮТСЯ С ПОМОЩЬЮ КОНЕЧНЫХ РАЗНОСТЕЙ) ЧИСЛО ОЦЕНИВАЕМЫХ ПАРАМЕТРОВ М- 2 НАЧАЛЬНЫЙ ШАГ ПО ПАРАМЕТРАМ НХ- .2 КОНСТАНТА КРИТЕРИЯ ПРЕРЫВАНИЯ ВЫЧИСЛЕНИЙ EPS- .0001 НАЧАЛЬНЫЕ ПРИБЛИЖЕНИЯ ПАРАМЕТРОВ ХB)- 2 НАЧАЛЬНОЕ ЗНАЧЕНИЕ СУММЫ КВАДРАТОВ Y(X1 ХМ)- 1.152833 «ПОСЛЕДОВАТЕЛЬНОСТЬ ИТЕРАЦИЙ » ИТЕРАЦИЯ ITR- 1 Х(П- 1.807533 ХB)- 1.94377 Y(X1,.~,XM)- .1000678 ИТЕРАЦИ5ЩТ*- 2 Х(П- 1.872557 ХB)- 2.877033 Y(X1,...,XM)- 1.790189E-02 ИТЕРАЦИЯ ITR- 3 10
X(D- 1.983713 XB)- 2.869273 Y(X1 ХМ)- 1.023618Е-03 ИТЕРАЦИЯ ITR- 4 X(D- 1.992543 XB)- 2.993198 Y(X1,...,XM)- 6.148193E-05 ИТЕРАЦИЯ ITR- 5 X(D- 1.999132 XB)- 2.992725 Y(X1 ХМ)- 3.018922Е-06 ИТЕРАЦИЯ ITR- 6 X(D- 1.999698 XB)- 2.999779 Y(X1 ХМ)- 1.036295Е-07 ИТЕРАЦИЯ ITR- 7 X(D- 1.999971 XB)- 2.999757 Y(X1 ХМ)- 3.352063Е-09 СХОДИМОСТЬ ДОСТИГНУТА ****************************************************** ОЦЕНКИ ПАРАМЕТРОВ X(D- 1.999971 ХB)- 2.999757 МИНИМУМ СУММЫ КВАДРАТОВ ОТКЛОНЕНИЙ SUM2- ЧИСЛО ИТЕРАЦИЙ ITR- 7 ЧИСЛО ВЫЧИСЛЕНИЙ ФУНКЦИИ NVF- 1441 3.352063Е-09 НОМЕР ТОЧКИ 1 2 3 4 5 6 7 8 9 10 11 ЗНАЧЕНИЕ АРГУМЕНТА 0 .5 1 1.5 2 2.5 3 3.5 4 4.5 5 ЗНАЧЕНИЕ ФУНКЦИИ 2 .8 .5 .3636364 .2857143 .2352941 .2 .1739131 .1538462 .137931 .125 ЗНАЧЕНИЕ МОДЕЛИ 1.999971 .8005077 .5003986 .3639531 .2859752 .2355154 .2001919 .1740824 .1539976 .138068 .125125 РАЗНОСТИ 2.896786Е-05 -5.076528Е-04 -3.985167Е-04 -3.166795Е-04 -2.608597Е-04 -2.212525Е-04 -1.918972Е-04 -1.693219Е-04 -1.514554Е-04 -1.369715Е-04 -1.250207Е-04 ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧ. АРГУМЕНТА XMIN,XMAX? 0,5 ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧ. ФУНКЦИИ YMIN,YMAX? 0,2: 311
2 1 5 Рис. 3.17. Аппроксимация тестовых данных дробнорациональной функцией с по- помощью градиентного метода Градиентный метод является эффективным только на начальной стадии процесса минимизации суммы квадратов C.1.5), а вблизи точки минимума шаги его итерационного процесса становятся очень малыми. Эта ситуация возникает в тех случаях, когда целевая функ- функция имеет овраги. Известно [3,4,27], что направления спуска в гра- градиентном методе на соседних итерациях ортогональны между собой, так что траектория спуска является зигзагообразной ломаной ли- линией. Если эта траектория попадает в овраг, то сходимость градиент- градиентного метода становится очень медленной (см. рис. 3.18), так как точки &1) совершают скачки со склона на склон. Для ускорения сходимости градиентного метода в настоящее вре- время разработано много различных эвристических приемов [9, 19, 28 ]. Наиболее распространенным из них является овражный метод, пред- предложенный Стронгиным и Гельфандом. 2) Овражный метод Сущность овражного метода состоит в следующем. На начальном этапе поиска выбираются две точки 0^О) n(fl) , из которых произво- производится спуск на дно оврага. Если &0) и &{)— точки, полученные в ре* зультате спуска на дно оврага и Ф(^|}) < Ф(^0)), то вдоль дна оврага 312
Рис. 3.18. Траектория градиентного метода при движении по дну оврага -г Рис. 3.19. Траектория овражного метода
делается большой шаг в направлении убывания значений функции. В результате получим точку 110е0- которая, вообще говоря, лежит на склоне оврага. Из точки снова осу- осуществляется спуск на дно оврага и делается шаг вдоль направления, заданного вектором Д0<2) = &2) - (fX) и т. д. Пусть в результате (/' - 1)-й итерации получены приближения (fl) и 0°+1). Тогда новое приближе- приближение овражного метода можно найти по формуле , C.5.5) || где А — шаг овражного метода. Скорость сходимости овражного ме- метода существенно зависит от величины шага Л. Рекомендации по вы- выбору шага овражного метода рассмотрены в работах [9, 19, 28]. Траектория спуска овражного метода показана на рис. 3.19. В этих работах овражный шаг на каждой итерации рекомендует- рекомендуется выбирать следующим образом: = Л,-+,СС0'в|'+1"С0§а|" C.5.6) где (У g,eg) a,-+i = arccos —~\.п ,л -77777 ^— C.5.7) — угол между векторами (#|Ч1) - 0е0) и @е'41} - 0е0) , О 1— пара- параметр алгоритма. Если найдены приближения 0^ и ^г+1), то (i + 2)-e приближение можно найти по формуле , / = 0,1,2,3,- • 0.5.8) При таком выборе шага овражный метод позволяет быстро про- проходить участки дна, имеющего малую кривизну и, вместе с тем, из- избежать выходов за овраг на крутых поворотах. 3) Метод сопряженных градиентов Флетчера-Ривса [3-7,9,10,19,20,26-28,30] В градиентном методе при выборе на каждой итерации направле- направления спуска не учитывается информация, полученная на предыдущих этапах вычислений. Учет этой информации осуществляется в методе сопряженных градиентрв. При рассмотрении градиентного метода отмечалось, что траектория спуска, полученная при минимизации функции, является зигзагообразной линией. В методе сопряженных 314
градиентов направление спуска отклоняется от направления вектора антиградиента за счет добавления к нему вектора направления спу- спуска предыдущей итерации, умноженного на некоторое положитель- положительное число. Метод сопряженных градиентов является частным случаем метода сопряженных направлений, который мы рассмотрим в ^ лсдуюпл^ разделе. Пусть функция Ф(в) является непрерывно дифференцируемой по параметрам 0h j = 1,..., к и 0<О)— начальное приближение. В мето- методе сопряженных градиентов последовательность приближений для вектор неизвестных параметров определяется с помощью рекурент- ного соотношении lpl, C.5.9) где направления спуска ро = grad Ф(^0)) , Pi = grad Ф(^°) - Др,-, , C.5.10) а параметры at и Д выбираются из условий - аф\) = min Ф@<° - ам) , 0), grad Ф(^})-grad ) ) , / = 1,2,...C.5.11) Если функция Ф@) является квадратичной формой, т.е. Ф@) = (Ав, в) - (А, в) , где Л — положительно определенная матрица, то метод соряженных градиентов сходится не более чем за к итераций. Практические вы- вычисления показали, что метод сопряженных градиентов сходится бы- быстрее градиентного метода, причем его эффективность возрастает на завершающих этапах поиска минимума функции. Алгоритм нелинейного оценивания вектора неизвестных пара- параметров с помощью метода сопряженных градиентов реализован в программе NREG06W1. При отладке программы в качестве одной из тестовых рассматривалась дробнорациональная функция у = 2/A4-Зг). В программе вводится N = 11 ее значений с шагом Дт = 0. В качестве аппроксимирующей функции была выбрана функ- функция у = х\/(\+Х2т). Ниже представлены листинг программы NREG06W1, а также результаты ее выполнения на персональном компьютере для рассмотренной тестовой задачи. График тестовых данных и аппроксимирующей их нелинейной модели показан на рис. 3.20. 315
10 REM"NREGO6W1" 20 rem♦♦♦♦♦♦♦♦♦♦♦♦♦*♦♦♦*♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦**♦***♦♦♦♦♦♦♦♦*♦♦♦♦♦ 25 REM*** ПРОГРАММА ОЦЕНИВАНИЯ ВЕКТОРА X ПАРАМЕТРОВ 27 REM*** НЕЛИНЕЙНОЙ МОДЕЛИ 30 REM*** YU-F(XU;X) МЕТОДОМ ФЛЕТЧЕРА-РИВСА (СОПРЯЖЕННЫХ 32 REM*** ГРАДИЕНТОВ) 35 REM*** ОДНОМЕРНАЯ МИНИМИЗАЦИЯ ПО НАПРАВЛЕНИЮ 37 REM*** ОСУЩЕСТВЛЯЕТСЯ МЕТОДОМ 40 REM*** КВАДРАТИЧНОЙ ИНТЕРПОЛЯЦИИ 45 REM********************************************************************* 50 REM ВВОД НАЧАЛЬНЫХ ДАННЫХ ОСУЩЕСТВЛЯЕТСЯ В ПОДПРОГРАММЕ.ПЕРВЫИ ОПЕРАТОР 60 REM КОТОРОЙ ИМЕЕТ НОМЕР 8000 70 DIMXB0),DGB0),V<20),XVB0) 80 DIM PB0),PVB0),DXB0),X0B0) 85 DIMXRA00),YRU00),YMA00) 100 GOSUB8000 110 GOSUB 1000 210 PRINT 220 PRINT "НОМЕР ТОЧКИ ЗНАЧ.АРГУМ. ЗНАЧ. ФУНКЦ. ЗНАЧ МОДЕЛИ РАЗНОСТИ" 230 PRINT" 240 FORI-l TON 250 DEL-YR(I)-YMd) 260 PRINT I,XR(I),YR<I),YM(I),DEL 270 NEXT I 280 PRINT"' —__— ■ , , -" 290 PRINT 320 PRINT ****************************************************************** 330 PRINTiPRINT 340 INPUT "ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. АРГУМЕНТА XMIN,XMAX";XMIN,XMAX 350 INPUT 'ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. ФУНКЦИИ YMIN,YMAX";YMIN,YMAX 360 PRINT 370 REM GOSUB 9000 380 MARKER-2:GOSUB 9500 390 REM MARKER-2:GOSUB 10000 500 END 999 REM'OPFR" 1000 REM ПОДПРОГРАММА ОЦЕНИВАНИЯ ПАРАМЕТРОВ НЕЛИНЕЙНОЙ МОДЕЛИ 1010 REM МЕТОДОМ ФЛЕТЧЕРА-РИВСА (СОПРЯЖЕННЫХ ГРАДИЕНТОВ) 1020 PRINT:PRINT:PRINT ШЗО PRINT" НЕЛИНЕЙНОЕ ОЦЕНИВАНИЕ МЕТОДОМ ФЛЕТЧЕРА-РИВСА 1040 PRINT" (МЕТОД СОПРЯЖЕННЫХ ГРАДИЕНТОВ) " 1050 PRINT "********************************************************** 1055 PRINT:PRINT "ЧИСЛО ТОЧЕК N-";N 1060 PRINTiPRINT "ЧИСЛО ОЦЕНИВАЕМЫХ ПАРАМЕТРОВ М-";М 1070 PRINTiPRINT "КОНСТАНТА КРИТЕРИЯ ПРЕРЫВАНИЯ ВЫЧИСЛЕНИЙ EPS-";EPS 1080 PRINT 1090 PRINT " 1100 PRINT " НАЧАЛЬНЫЕ ПРИБЛИЖЕНИЯ ПЕРЕМЕННЫХ" 1110 PRINT " " 1120 FORI-l ТОМ ИЗО PRINT" X(";I;")-";X(I) 1140 NEXT I 16
1150 GOSUB3000 1160 PRINT "НАЧАЛЬНОЕ ЗНАЧЕНИЕ СУММЫ КВАДРАТОВ Y(X1 XM)-";Y 1170 PRINT" 1180 ITR-l:NVF-0:IP-0 1190 FOR Ы ТОМ 1200 V(I)-X<I) 1210 NEXT I 1220 REM PRINT " 1230 REM PRINT" ИТЕРАЦИЯ ITR-";ITR 1240 REM PRINT " - - - 1250 REM FOR I-1 TOM 1260 REM PRINT "X(";I;")-";X(D 1270 REM NEXT I 1280 GOSUB3000 1300 YT-Y 1310 GOSUB 6000:GOSUB 5000 1320 GSUMl-GSUM.GSUMK-GSUM 1330 FORI-1TOM 1340 P(I)--DGd) 1350 NEXT I 1360 K-l 1370 DGP-0 1380 FORI-1TOM 1390 DGP-DGP+DG(I)*P(I) 1400 NEXT I 1410 IF DGP<-0 GOTO 1530 1420 HX-ABSB*YT/DGP) 1430 IFHX>1THENHX-1 1440 FORI-1TOM 1450 X(I)-V(I)-HX*P(I) 1460 V(I)-X(I) 1470 NEXT I 1480 GOSUB 3000 1490 YT-Y:PRINT "НЕСТАБИЛЬНОСТЬ" 1500 GOSUB 6000:GOSUB 5000 1510 GSUM1-GSUM 1520 GOTO 1370 1530 HX-ABSB*YT/DGP) 1540 IFHX>1THENHX-1 1550 DH-HX 1560 HP-DH 1570 FOR Ы TOM 1580 XV(I)-V(I)+HP*P(I) 1590 X(I)-XV(I) 1600 NEXT I 1610 GOSUB 3000 1620 YV-Y 1630 GOSUB 6000:GOSUB 5000 1640 GSUM2-GSUM 1650 DGPS-0 1660 FORI-1TOM 1670 DGPS-DGPS+DG(I)*P(I) 1680 NEXT I 1690 IF DGPS>0 OR YV>YT GOTO 1760 1700 DH-2*DH 1710 FORI-1TOM 1720 V(I)-XVd) 317
1730 NEXT I 1740 YT-YV:DGP-DGPS:GSUM1-GSUM2 1750 GOTO 1560 1760 WS-3*(YT-YV)/DH 1770 WS-WS+DGP+DGPS 1780 WP-WS/V2-DGP*DGPS 1790 IF WP<0 THEN WP-0 1800 W-SQR(WP) 1810 QV-DH*A-(DGPS+W-WS)/(DGPS~DGP+2*W)) 1820 FORI-1TOM 1830 X(I)-V(I)+QV*P(I) 1840 NEXT I 1850 GOSUB3000 1860 YR-Y 1870 GOSUB 6000:GOSUB 5000 1880 GSUM3-GSUM 1890 GRAD-0 1900 FORI-1TOM 1910 GRAD-GRAD+DG(I)*P(I) 1920 NEXT I 1930 IF Y<-YT AND Y<-YV GOTO 2070 1940 IF GRAD>0 GOTO 2020 1950 DH-DH-QV 1960 £ORI-1 TOM 1970 Vd)-X(I) 1980 NEXT I 1990 YT-Y 2000 DGP-GRAD 2010 GOTO 1760 2020 DH-QV 2030 FOR I-1TOM 2040 XVd)-X(I) 2050 NEXT I 2060 YV-Y:DGPS-GRAD:GOTO 1760 2070 IF GSUM3<EPS GOTO 2280 2080 IF K-M GOTO 2230 2090 K-K+l 2100 AK-(GSUM3/GSUMK)^2 2110 FORI-1TOM 2120 P(D—DG(I)+AK*P(I) 2130 V(I)-X(I) 2140 NEXT I 2150 PRINT "НОВОЕ НАПРАВЛЕНИЕ";:1Р-1Р+1^ШТ и ПОИСКА ;П 2160 YT-Y:GSUM1-GSUM:GSUMK-GSUM 2170 FORM ТОМ 2180 PRINT "X(";I;")-";X(D 2190 NEXT I 2200 GOSUB 3000 2210-PRINT "СУММА КВАДРАТОВ ОТКЛОНЕНИЙ Y(X1 XM)-";Y 2220 GOTO 1370 2230 PRINT "ОБНОВЛЕНИЕ НАЧ. ТОЧКИ";:ITR-ITR+1 :IP«IP+1 2240 PRINT" ИТЕРАЦИЯ";ГШ;" ПОИСК";1Р 2250 PRINT"" 2260 GOTO 1190 2270 PRINT " '* 2280 PRINT "♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦" 2290 PRINT " < СХОДИМОСТЬ ДОСТИГНУТА >" 2300 PRINT "♦♦♦♦♦♦♦♦♦♦♦*♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦" 318
2310 PRINT "ОЦЕНКИ ПАРАМЕТРОВ" 2315 PRINT" " 2320 FOR 1-1 TO M 2330 PRINT "X(";I;")-";X(D 2340 NEXT I 2345 PRINT " " 2350 GOSUB 3000 2360 PRINT "МИНИМУМ СУММЫ КВАДРАТОВ ОТКЛОНЕНИЙ Y(X1 XM)-";Y 2370 PRINT "ЧИСЛО ИТЕРАЦИЙ ITR-";ITR 2380 PRINT "ЧИСЛО ВЫЧИСЛЕНИЙ ФУНКЦИИ NVF-";NVF 2390 PRINT "♦♦♦♦*♦♦♦♦*♦♦*♦♦♦♦♦♦*♦♦♦♦*♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦*" 2400 RETURN 3000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ СУММЫ КВАДРАТОВ ОТКЛОНЕНИЙ ЗОЮ Y-0 3020 FORIR-1TON 3030 XU-XR(IR):GOSUB3500:YM(IR)»YU 3040 Y-Y+(YR(IR)-YM(IR))yv2 3050 NEXTIR 3060 RETURN 3500 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ АППРОКСИМИРУЮЩЕЙ ФУНКЦИИ 3510 YU-XA)/A+XB)*XU) 3520 NVF-NVF+1 3530 RETURN 5000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ СУММЫ КВАДРАТОВ ЧАСТНЫХ ПРОИЗВОДНЫХ 5010 GSUM-0 5020 FOR 1-1 ТО М 5030 GSUM-GSUM+DG(I)^2 5040 NEXTI 5045 GSUM-SQR(GSUM) 5050 RETURN 6000 REM ПОДПРОГРАММА ОЦЕНИВАНИЯ ЗНАЧЕНИЙ ЧАСТНЫХ ПРОИЗВОДНЫХ 6020 FOR Ы ТО М 6030 XOd)-X(I) 6040 NEXTI 6050 FOR 1-1 ТО М 6060 PX(I)-ABS(X(I)/10000)+.0000001 6070 X(I)-X(I)+PX(I) 6080 GOSUB 3000:YI-Y 6085 X(I)-X(I)-2*PX(I) 6087 GOSUB 3000 6089 X(I)-XOd) 6090 DG(I)-(YI-Y)/PX(I)/2 6100 NEXTI 6110 FOR Ы TOM 6120 Xd)-XO(I) 6130 NEXTI 6140 RETURN 8000 REM ПОДПРОГРАММА ВВОДА НАЧАЛЬНЫХ ДАННЫХ 8005 N-ll 8010 М-2 8015 ХA)-1:ХB)-2 8030 EPS-.001 8035 FOR Ы ТО N 319
8040 XRa)-(I-l)*.5:YR(I)-2/(l+3*XR(I)) 8050 NEXT I 8070 RETURN 9000 REM "GR9000": ПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА ФУНКЦИИ 9010 PRINT и ":PRINT " ГРАФИК НЕЛИНЕЙНОЙ МОДЕЛИ":РНЮТ "' 9020 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X:NXD-' ;NXD 9030 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y:NYD-";NYD 9050 NY-NYD+1 9060 CLSrSCREEN 2:DY-(YMAX-YMIN)/NYD:FOR 1-1 TO NY:Y-2O+160/NYD*(I-l) 9070 LINE G4,Y) -E74,Y) :NEXT I:NX-NXD+1 9080 FORI-1 TONX:X-84+480/NXD*(I-l):LINE (X,12)-(X,188):NEXT I 9090 R-23 9100 FORK-OTONYD 9110 LOCATE R 1 9120 SY-YMJN+DY*K:PRINT USING "#.###";SY 9130 R-R-20/NYD 9135 NEXT К 9140 C-7:DX-(XMAX-XMIN)/NXD 9150 FORK-4)TONXD:KEYOFF:LOCATE24,C 9160 SX-XM1N+DX*K 9170 PRINT USING "####.##';SX; 9180 C-C+60/(NXI>K)) 9185 NEXT К 9310 XA-E64-84)/(XMAX-XMIN):YA-( 180-20)/(YMAX-YMIN) 9320 FOR IX-84 TO 564:XU-XMIN+(IX-84)/480*(XMAX-XMIN) 9330 GOSUB3500 9340 IY-180-(YU-YMIN)*YA 9350 IF IY < 20 OR IY > 180 THEN 9370 9360 IF IX-84 THEN PSET (IX,IY) 9365 LINE-(IXJY) 9370 NEXT IX 9380 FOR 1-1 TO N 9390 YG-180-(YR(I)-YMIN)*YA 9400 IF YG <20 OR YG>I 80 GOTO 9440 9410 XG-480* (XR (I) -XMIN) / (XMAX-XMINH84 9420 PSET (XG,YG) 9430 DRAW "E2G4E2H2F4H2E2D4L4U4R4G2' 9440 NEXT I 9450 RETURN 9500 REM "GRAF9500" 9510 XS-(XMIN+XMAX)/2 9520 YS-(YMIN+YMAX)/2 9540 SCREEN 2:CLS:KEY OFF 9550 VX-XMAX-XMIN:DX-400/VX:VY-YMAX-YMIN:DY-120/VY 9560 FOR IX-40 TO 440 9570 XU-XMIN+(IX-40)/400*VX 9580 GOSUB3500 9590 IY-125-(YU-YMIN)*DY 9595 IF IY<5 OR IY>125 GOTO 9620 9600 IF IX-40 THEN PSET (IX,IY):GOTO 9620 9610 LINE-(IXJY) 9620 NEXT IX 9630 FOR IE-1 TO N 9640 YE-125-(YR(IE)-YMIN)*DY 9650 IF YE<5 OR YE> 125 GOTO 9740 9660 XE«400*(XR(IE)-XMIN)/VX+40 320
9670 PSET (XE,YE) 9680 ON MARKER GOTO 9690,9700,9710,9720,9730 9690 DRAW "U2D4U2L4R8L4":GOTO 9740 9700 DRAW "Е2Ь4Р4Ь4ЕЗ":СОТО 9740 9710 DRAW ME2D4H4D4E2L4R8L4":GOTO 9740 9720 DRAW "E2G4E2H2F4H2L4R8L4":GOTO 9740 9730 DRAW "U2G3R6H3D2" 9740 NEXT IE 9750 UNE <40,5)-D40,5) 9760 LINE D0,125)-D40,125) 9770 LINE D0,5)-D0,125) 9780 LINE D40,5)-D40,125) 9790 FOR Y-5 TO 125 STEP 12 9800 LINE D0,Y)-D3,Y) 9810 LINE D40,Y)-D37,Y) 9820 NEXTY 9830 LOCATE 1,2:PRINT YMAX 9840 LOCATE 9.2:PRINTYS 9850 LOCATE 16,2:PRINT YMIN 9860 FOR X-79 TO 440 STEP 40 9870 LINE (X, 125)-(X, 122) 9880 LINE<X+1,125)-(X+U22) 9890 LINE (X,5)-(X,8) 9900 LINE(X+1,5)-(X+1,8) 9910 NEXTX 9920 LOCATE 17,4:PRINTXMIN 9930 LOCATE 17,29:PRINTXS 9940 LOCATE 17,54:PRINT XMAX 9950 A$-INPUT$A) 9960 END 10000 REM "GRIOOOO" гПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА ФУНКЦИИ 10010 PRINT " ":PRINT " ГРАФИЧЕСКОЕ ИЗОБРАЖЕНИЕ РЕЗУЛЬТАТО В AnnPOKCHMAUHH":PRINT " и 10020 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X:NXD-";NXD 10030 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y:NYD-";NYD 10040 NY-NYD+1 10050 CLS:SCREEN2:DY-(YMAX-YMIN)/NYD:FOR I-l ТО NY:Y-2O+160/NYD*(I-l) 10060 LINEG6,Y)-(90,Y):NEXTI:NX-NXD+l 10070 FOR I-l TONX:X-84+480/NXD*(I-l):LINE (X,176)-(X,184):NEXT I 10080 LINE (84,12)-(84,188);LINE (84,180)-E68,180) 10090 R-23 10100 FORK-OTONYD 10110 LOCATE R 3 10120 SY-YMIN+DY*K:PRINT USING #.##';SY 10130 R-R-20/NYD 10140 NEXT К 10150 C-7:DX-(XMAX-XMIN)/NXD 10160 FOR К-Ю TO NXDKEY OFF:LOCATE 24,C 10170 SX-XMIN+DX*K 10180 PRINT USING "####.##";SX; 10190 C-C+60/(NXD+0) 10200 NEXT К 10210 VX-XMAX-XMIN:VY-YMAX-YMIN:XA-48O/VX:YA-16O/VY 10230 FOR IX-84 TO 564:XU-XMIN+(IX-84)/480*VX 10240 GOSUB3500 10250 IY-180-(YU-YMIN)*YA 10260 IF IY <20 OR IY>180 THEN 10290 Зак. 500 321
10270 IF IX-84 THEN PSET (IX,IY) 10280 LINE-(IXJY) 10290 NEXT IX 10300 FORIE-1TON 10310 YE-180-(YR(IE)-YMIN)*YA 10320 IF YE <20 OR YE>1180 GOTO 10410 10330 XE-480*(XR(IE)-XMIN)/VX+84 10340 PSET (XE,YE) 10350 ON MARKER GOTO 10360,10370,10380,10390,10400 10360 DRAW "U2D4U2L4R8L4":GOTO 10410 10370 DRAW "E2L4F4L4E3":GOTO 10410 10380 DRAW"E2D4H4D4E2L4R8L4':GOTO 10410 10390 DRAW"E2G4E2H2F4H2L4R8L4":GOTO 10410 10400 DRAW MU2G3R6H3D2" 10410 NEXT IE 10420 RETURN RUN НЕЛИНЕЙНОЕ ОЦЕНИВАНИЕ МЕТОДОМ ФЛЕТЧЕРА-РИВСА (МЕТОД СОПРЯЖЕННЫХ ГРАДИЕНТОВ) ******************************************************************* ЧИСЛО ТОЧЕК N- 11 ЧИСЛО ОЦЕНИВАЕМЫХ ПАРАМЕТРОВ М- 2 КОНСТАНТА КРИТЕРИЯ ПРЕРЫВАНИЯ ВЫЧИСЛЕНИЙ EPS- .001 НАЧАЛЬНЫЕ ПРИБЛИЖЕНИЯ ПЕРЕМЕННЫХ Х(П- 1 ХB)— 2 НАЧАЛЬНОЕ ЗНАЧЕНИЕ СУММЫ КВАДРАТОВ Y(X1 ,...,ХМ)- 1.152833 НОВОЕ НАПРАВЛЕНИЕ ПОИСКА 1 ХA)-1.807472 Х<2)-1.943721 СУММА КВАДРАТОВ ОТКЛОНЕНИЙ Y(X1 ХМ)- .1000803 ОБНОВЛЕНИЕ НАЧ. ТОЧКИ ИТЕРАЦИЯ 2 ПОИСК 2 НОВОЕ НАПРАВЛЕНИЕ ПОИСКА 3 ХA)- 2.002806 ХB)- 3.023095 СУММА КВАДРАТОВ ОТКЛОНЕНИЙ Y(X1 ХМ)- 3.00941 Е-05 СХОДИМОСТЬ ДОСТИГНУТА ****************************************************** ОЦЕНКИ ПАРАМЕТРОВ Х(П- 2.000069 ХB)- 2.999994 МИНИМУМ СУММЫ КВАДРАТОВ ОТКЛОНЕНИЙ Y(XI ХМ)- 6.451214Е-09 ЧИСЛО ИТЕРАЦИЙ ITR- 2 ЧИСЛО ВЫЧИСЛЕНИЙ ФУНКЦИИ NVF- 858 НОМЕР ЗНАЧЕНИЕ ЗНАЧЕНИЕ ЗНАЧЕНИЕ РАЗНОСТИ ТОЧКИ АРГУМЕНТА ФУНКЦИИ МОДЕЛИ 1 0 2 2.000069 -6.914139Е-05 2 .5 .8 .8000286 -2.861023Е-05 22
3 4 5 6 7 8 9 10 11 1 1.5 2 2.5 3 3.5 4 4.5 5 .5 .3636364 .2857143 .2352941 .2 .1739131 .1538462 .137931 .125 .5000181 .3636496 .2857247 .2353027 .2000073 .1739194 .1538518 .1379361 . 1250046 -1.806021E-05 -1.320243E-05 -1.037121E-05 -8.553266E-06 -7.286668E-06 -6.347895E-06 -5.602837E-06 -5.036593E-06 -4.559756E-06 ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧ. АРГУМЕНТА XMIN,XMAX? 0,5 ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧ. ФУНКЦИИ YMIN.YMAX? 0,3 5 Рис.3.20. Аппроксимация методом сопряженных градиентов данных тестовой зада- задачи с помощью дробнорациональной функции у = х\ /A ) Для начальных данных и аппроксимирующей функции, задан ных подпрограммами 8000 REM ПОДПРОГРАММА ВВОДА НАЧАЛЬНЫХ ДАННЫХ 8005 N-11 8010 М-4 8015 ХA)-1:ХB)-2:ХC)-2:ХХ4)-2 8030 EPS-.001 8035 FOR I-l TO N 8040 XR(I)-(I-l)*.5:YR(I)-2/(l+3*XR(I))+EXP(-.7*XR(I))*COSC*XR(D) 8050 NEXTI 323
8070 RETURN 3500 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ АППРОКСИМИРУЮЩЕЙ ФУНКЦИИ 3510 YU«XA)/A+XB)*XU)+EXP(-XC)*XU)*COS(XD)*XU) 3520 NVF-NVF+1 3530 RETURN нелинейная модель, полученная в результате выполнения програм мы NREG06W1 представлена на рис. 3.21. 2 0 Рис.3.21, Аппроксимация значений суммы дробнорациональной функции и экспо- экспоненциально затухающей косинусоиды с помощью нелинейной модели методом со- сопряженных градиентов 4) Метод статистического градиента [30] При поиске начального приближения, достаточно близкого к точке глобального минимума функции Ф@), можно использоватьju£z. тод статистического градиенту. В этом методе для градиента функ- функции находится статистический аналог, с помощью которого осуществляется процедура поиска минимума суммы квадратов ФF). Пусть в результате моделирования на ЭВМ получено М реализа- реализаций случайного вектора £ = (£i,..., £*), компоненты которого распре- распределены равномерно на отрезке [-1, 1 ]. В точках определяются значения функции Ф(в) и вычисляются разности 324
(о + р£С«)) _ ф(^)) , m = 1,..., М. C.5.12) Тогда оценкой градиента функции Ф(в) в точке вР является вектор 1 ^ ит"~ пч C.5.13) где Л/' — число точек V*m), принадлежащих множеству D. Если для всех т точки Vm)(£D, то описанная процедура повторя- повторяется и снова оценивается вектор градиента. С помощью статистиче- статистического градиента можно найти новое приближение для точки минимума: &i+l) = № + pPi. C.5.14) Поиск осуществляется до тех пор, пока значения функции не пере- перестанут уменьшаться, или же будет исчерпан ресурс количества вы- вычислений значений функции. 3.6. КВАЗИНЬЮТОНОВСКИЕ МЕТОДЫ ОЦЕНИВАНИЯ ПАРАМЕТРОВ НЕЛИНЕЙНЫХ МОДЕЛЕЙ Методы нулевого и первого порядка являются достаточно эффек- эффективными только на начальном этапе минимизации суммы квадратов отклонений C.1.5). На последующих этапах, когда приближения на- находятся вблизи точки минимума или стационарной точки, необходи- необходимо применять методы, имеющие более высокую скорость сходимости. Важнейший класс методов такого типа составляют ме- метод Ньютона и связанные с ним квазиньютоновские методы, позво- позволяющие учитывать структуру целевой функции C.1.5). В этом параграфе мы сначала рассмотрим метод Ньютона-Рафсона, а позже будут изложены методы Ньютона-Гаусса, Левенберга-Марквардта и метод переменной метрики. 1) Метод Ньютона-Рафсона В предыдущем параграфе отмечалось, что при решении задачи минимизации функции многих переменных можно добиться увели- увеличения скорости сходимости метода спуска за счет отклонения векто- вектора антиградиента (в градиентном методе направления на соседних итерациях ортогональны между собой). Один из возможных вариан- вариантов практической реализации этой идеи заложен в методе сопряжен- сопряженных градиентов. Аналогичная процедура отклонения вектора антиградиента осуществляется также в методе Ньютона. При мини- минимизации функции с помощью метрда Ньютона изменение направле- 325
ния спуска достигается за счет умножения вектора антиградиента на некоторую матрицу, содержащую информацию о структуре миними- минимизируемой функции. В этом методе наряду с первыми производными используются также вторые частные производные минимизируемой функции. Пусть функция Ф(в) дважды непрерывно дифференцируема по неизвестным параметрам и (№ — некоторая точка пространства £*. Из курса математического анализа известно, что дважды непрерыв- непрерывно дифференцируемую функцию в достаточно малой окрестности точки &1) можно аппроксимировать квадратичной формой 4- [ grad Ф(&°) f@ - 0е0) + + (в - еР)тн(еР)(в - 6е0), C.6.D где Н(в) — матрица Гессе функции Ф(в), составленная из вторых частных производных (д2Ф/дврдв8\ по неизвестным парамет- параметрам*. Если функция Ф@) в некоторой точке & имеет минимум, то в этой точке grad ф(б) = grad Ф(б) 4- H(f>)(Q - 0е0) = 0 . C.6.2) Отсюда следует, что если матрица Н(в) имеет обратную [#(#) ]~! , то точку #"можно найти по формуле 1 gradФ^0) . Повторяя эту процедуру, получим реку рентную формулу метода Ньютона = 0@ _ [Щ^)]'1 gгadФ@(O), 1 = 0,1,2,..., C.6.3) где (9@)— начальное приближение. Метод Ньютона может расходиться, если начальное приближе- приближение находится вдали от точки минимума. Сходимость метода Ньюто- Ньютона можно гарантировать только в том случае, когда начальное приближение находится в достаточно малой окрестности точки ми- минимума и функция Н(в) положительно определена [7,9,15,24,26,27,30}. Поэтому на практике метод Ньютона обычно используется в сочетании с одним из методов, быстро сходящихся вдали от то^ки минимума. Важнейшим обобщением метода Ньютона, имеющим большое практическое значение, является метод Ньютона с регулировкой ша- шага. В отличии от обычного метода, который сходится при условии, что начальное приближение находится в достаточно малой окрестно- окрестности точки минимума, метод Ньютона с регулировкой шага сходится при произвольном выборе начальной точки (если матрица Н(в) поло- 326
жительно определена). При поиске минимума функции Ф(в) с по- помощью обобщенного метода Ньютона последовательность приближе- приближений вычисляется по формуле 0) , i = 0,1,2,... . C.6.4) В зависимости от выбора величины шага р, можно получить раз- различные варианты обобщенного метода Ньютона. На практике наибо- наиболее часто используются следующие два варианта метода Ньютона. В первом варианте значения р, выбираются по следующему алгорит- алгоритму: а) Пусть приближение 0^ найдено ир = 1. б) Вычисляется значение функции Ф@) в точке в = где Г1 Pi = - [Н(&>) Г1 grad Ф(№) , C.6.5) и проверяется выполнение условия Ф@) - Ф@(О) <ер( grad Ф@<0), pi) , ( 0 < с < 1/2 ) . C.6.6) в) Если неравенство C.6.6) выполняется, тор/ = 1; в противном случае р умножается на величину g < 1 до тех пор, пока не станет выполняться условие C.6.6). Во втором варианте обобщенного метода Ньютона величина шага Pi выбирается исходя из условия ° + piPi) = min Ф(^° 4- ppi) , C.6.7) где поиск минимума в направлении р( осуществляется с помощью од- одного из методов одномерной минимизации. Если в окрестности точки минимума в* матрица Н(в) функции Ф(в) является положительно определенной и выполняются условия т I Izl I < (#@)z, z)<M\\z\\ , C.6.8) I \Н(в) - #@I I < L\ \в - 01 I , C.6.9) то в окрестности 0* метод Ньютона имеет квадратичную скорость сходимости, т. е. 110°+1) - 0*11 <с\ 10е0 - 0*1 I2 , C.6.10) где с = ШТт (L/m) . C.6.11) 327
Это означает, что на каждой итерации число верных значащих цифр удваивается [9,24]. При минимизации квадратичной функции метод Ньютона схо- сходится за один шаг в направлении р = — [Н(в)]~1 grad<I>(#) (незави- (независимо от выбора начального приближения для в). Любой другой шаг в направлении (—Rgrad<£>@)), где R * Я1, не приводит к точке ми- минимума функции Ф(#). В этом случае приходится выполнять не- несколько итераций. Теоретические исследования, а также практические расчеты по- показали, что метод Ньютона является одним из наиболее эффектив- эффективных методов оптимизации. В частности, метод Ньютона позволяет найти минимум квадратичной функции за один шаг, в то время как при поиске минимума этой функции с помощью градиентного метода необходимо выполнить несколько тысяч итераций [6,11 ]. Гринштадт показал, что если под эффективностью метода e(R) понимать отно- отношение уменьшения функции в направлении — RgradФ(в) за одну итерацию к максимально возможному ее уменьшению, то эффектив- эффективность e{R) этого метода удовлетворяет условию г < e{R) < 1 , C.6Л 2} A +у ) где у — отношение максимального собственного значения матрицы Rl/2HRl/2 к минимальному. Эффективность метода Ньютона равна единице. Если поиск минимума осуществляется с помощью градиен тного метода (R = /Г), то у = ун является отношением максимально- максимального и минимального собственных значений матрицы Я. При нелинейном оценивании параметров сумма квадратов Ф(в) имеет сильно вытянутые линии уровня. В этом случае обычной является ситуация., когда ун > Ю5, так что эффективность e(R) метода Нью- Ньютона может оказаться в 25000 раз большей эффективности градиент- градиентного метода [6 ]. Алгоритм оценивания вектора параметров нелинейной модели, в котором минимизация суммы квадратов отклонений C.15) осуществ- осуществляется методом Ньютона с регулировкой шага, реализован в программе NREGW07. При отладке программы в качесгве одной из тестовых рас- рассматривалась дробнорациональная функция. Значения этой функции вводятся в подпрограмме, заданной операторами 8000-8070. Аппрокси- Аппроксимирующая функция определена подпрограммой с операторами 1000—- 1030. Первые и вторые частные производные, используемые в методе Ньютона с регулировкой шага, в программе оцениваются численно с помощью конечноразностных соотношений [7,8,10,22,26]. Ниже пред- представлены листинг программы NREG07W1, а также результаты ее вы- выполнения для рассматриваемых тестовых данных. Экспериментальные значения, а также аппроксимирующая их нелинейная модель показаны на рис. 3.22. 328
10 REM"NREG07Wl" 20 REM**************************************************************** 25 REM*** ПРОГРАММА ОЦЕНИВАНИЯ ВЕКТОРА X ПАРАМЕТРОВ 27 REM*** НЕЛИНЕЙНОЙ МОДЕЛИ 30 REM*** YU-F(XU.X) МЕТОДОМ НЬЮТОНА С РЕГУЛИРОВКОЙ 32 REM*** ШАГА (ОДНОМЕРНАЯ 35 REM*** МИНИМИЗАЦИЯ ОСУЩЕСТВЛЯЕТСЯ МЕТОДОМ 37 REM*** КВАДРАТИЧНОЙ ИНТЕРПОЛЯЦИИ) 40 REM**************************************************************** 60 REM ВВОД НАЧАЛЬНЫХ ДАННЫХ ОСУЩЕСТВЛЯЕТСЯ В ПОДПРОГРАММЕ,ИМЕЮЩЕЙ 65 REM ПЕРВЫЙ ОПЕРАТОР С НОМЕРОМ 8000 70 DIM XB0) ,YB0),DG<20) ,DGXB0) ,XLD) ,YLD) 80 DIMCQBO,2O),ZQBO),PQBO),PX1B1O),X1BO) 90 DIMX2BO),DQBO),PX2BO) 95 DIMXRA00),YRA00),YMA00) 100 GOSUB8000 110 GOSUB2000 210 PRINT 220 PRINT НОМЕР ТОЧКИ ЗНАЧ.АРГУМ. ЗНАЧ. ФУНКЦ. ЗНАЧ МОДЕЛИ РАЗНОСТИ" 230 PRINT" и 240 FOR I-1 TON 250 DEL-YRd)-YM(I) 260 PRINT IfXR(I),YR(I),YM(I),DEL 270 NEXT1 280 PRINT"— " 290 PRINT 320 PRINT "♦♦♦♦♦♦♦♦♦♦♦**♦♦*♦♦♦♦#♦♦♦♦♦*♦♦♦♦♦♦♦♦♦♦♦♦♦♦*♦♦♦♦♦♦♦♦♦♦♦**♦♦♦♦*" 330 PRINT:PRINT 340 INPUT "ВВЕДИТЕ МИИИМ. И МАКСИМ. ЗНАЧЕН. АРГУМЕНТА XMIN,XMAX";XMIN,XMAX 350 INPUT "ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. ФУНКЦИИ YMIN,YMAX";YMIN,YMAX 360 PRINT 370 REM GOSUB 9000 380 MARKER-2:GOSUB 9500 390 REM MARKER-2: GOSUB 10000 500 END 1000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ АППРОКСИМИРУЮЩЕЙ ФУНКЦИИ 1010 YU-XA)/A+XB)*XU) 1020 NVF-NVF+1 1030 RETURN 1500 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ СУММЫ КВАДРАТОВ ОТКЛОНЕНИЙ 1510 ZK) 1520 FORIR-1TON 1530 XU-XR(IR):GOSUB1000:YM(IR)-YU 1540 2>Z+(YR(IR)-YM(IR))^2 1550 NEXTIR 1560 RETURN 2000 REM ПОДПРОГРАММА ОЦЕНИВАНИЯ ПАРАМЕТРОВ НЕЛИНЕЙНОЙ МОДЕЛИ 2010 REM МЕТОДОМ НЬЮТОНА С РЕГУЛИРОВКОЙ ШАГА 2020 PRINT:PRINT:PRINT 2030 PRINT " МЕТОД НЬЮТОНА С РЕГУЛИРОВКОЙ ШАГА" 329
2040 PRINT "(ПРОИЗВОДНЫЕ ОЦЕНИВАЮТСЯ С ПОМОЩЬЮ КОНЕЧНЫХ РАЗНОСТЕЙ)" 2050 PRINT "******************************************************" 2060 PRINT "ЧИСЛО ОЦЕНИВАЕМЫХ ПАРАМЕТРОВ М-";М 2070 PRINT "НАЧАЛЬНЫЙ ШАГ ПО ПАРАМЕТРАМ НХ-";НХ 2080 PRINT "КОНСТАНТА КРИТЕРИЯ ПРЕРЫВАНИЯ ВЫЧИСЛЕНИЙ EPS-";EPS 2090 PRINT" " 2100 PRINT" НАЧАЛЬНЫЕ ПРИБЛИЖЕНИЯ ПАРАМЕТРОВ" 2110 PRINT " " 2120 FOR 1-1 ТОМ 2130 PRINT" X(";I;")-";X(I) 2140 NEXT I 2150 GOSUB 1500 2160 PRINT "НАЧАЛЬНОЕ ЗНАЧЕНИЕ СУММЫ КВАДРАТОВ Y(X1 XM)-";Z 2170 PRINT" 2180 PRINT " < ПОСЛЕДОВАТЕЛЬНОСТЬ ИТЕРАЦИЙ >" 2190 PRINT " " 2200 ITR-l:NVF-0 2210 FOR Ы TOM 2220 Y(I)-X(I) 2230 NEXT I 2240 GOSUB 1500:YY-Z 2250 GOSUB 5000.GOSUB 4000 2260 GOSUB 5500:GOSUB 4500 2270 IF GSUM<EPS GOTO 2920 2280 FOR 1-1 TO M 2290 DG(I)--DGX(I)/GSUM 2300 NEXT I 2310 XLA)-O:YLA)-YY 2320 XLC)-HX 2330 FOR 1-1 TO M 2340 X(I)-Y(I)+XLC)*DG(I) 2350 NEXT I 2360 GOSUB 1500:YLC)-Z 2370 GOSUB 5000:GOSUB 4000 2380 GOSUB 5500: GOSUB 4500 2390 GSUM2-0 2400 FOR 1-1 TO M 2410 GSUM2-GSUM2+DG (I) *DGX (I) 2420 NEXT I 2430 IF YLC)>-YLA) OR GSUM2>-0 GOTO 2450 2440 HX-HX*2:GOTO 2320 2450 XLB)-HX/2 2460 FOR 1-1 TO M 2470 X(I)-Y(I)+XLB)*DG(I) 2480 NEXT I 2490 GOSUB 1500 2500 YLB)*"Z 2510 XLD)-HX*(YLB)-.75*YLA)-.25*YLC))/B*YLB)-YLA)-YLC)) 2520 IF XLD)< 0 THEN PRINT "ВНИМАНИЕ" 2530 FOR 1-1 TO M 2540 X(I)-Y(I)+XLD)*DG(I) 2550 NEXT I 2560 GOSUB 1500:YLD)-Z 2570 FOR 1-1 TO 3 2580 Il-I+l 330
2590 FORJ-I1TO4 2600 IF YLdX-YL(J) GOTO 2630 2610 SX-XL(I):XL(I)-XL(J):XL(J)-SX 2620 SY-YL(I):YL(I)-YL(J):YL(J)-SY 2630 NEXTJJ 2640 IFABS(XLA)-XLB)X.OOOO5 GOTO 2760 2650 U21-SGN(XLB)-XLA)):U31-SGN(XLC)-XLA)):U41- SGN(XLD)-XL(D) 2660 IFU21-U31 ANDU21--U41 THEN XLC)-XLD):YLC)-YLD) 2670 VINT-(XLB)-XLC))*YLA)+(XLC)-XLA))*YLB)+(XL(D- XLB))*YLC) 2680 DINT-(YLA)-YLB))/B*VINT) 2690 DINT-DINT*(XLB)-XLC))*(XLC) -XL( 1)) 2700 XLD)-(XL(l)+XLB))/2+DINT 2710 FORI-1TOM 2720 X(I)~Y(I)+XLD)*DG(I> 2730 NEXT I 2740 GOSUB 1500:YLD>-Z 2750 GOTO 2570 2760 FOR 1-1 TO M 2770 X(I)-Y(I)+XLA)*DG(I) 2780 Yd)-X(I) 2790 NEXT I 2800 GOSUB 1500:YY-Z 2810 GOSUB 5000.GOSUB 4000 2820 GOSUB 5500:GOSUB 4500 2830 PRINT " " 2840 PRINT" ИТЕРАЦИЯ ITR-";ITR 2850 PRINT " - " 2860 FOR 1-1 TO M 2870 PRINT" X(";I;")-";X(I) 2880 NEXT I 2890 PRINT "Y(X1,...,XM)«";YY 2900 HX-HX/2 2910 IF GSUM >EPS THEN ITR-ITR+1 :GOTO 2270 2920 PRINT "*****************************************" 2930 PRINT" СХОДИМОСТЬ ДОСТИГНУТА" 2940 PRINT "♦*♦♦♦♦**♦♦♦♦*♦♦♦♦*♦♦♦♦*♦♦*♦♦♦*♦♦♦♦♦♦♦♦♦*♦" 2945 PRINT "ОЦЕНКИ ПАРАМЕТРОВ" 2948 PRINT " " 2950 FORI-! TOM 2955 PRINT "X(";I;")-";X(D 2960 NEXT I 2962 PRINT " " 2965 PRINT "МИНИМУМ СУММЫ КВАДРАТОВ ОТКЛОНЕНИЙ Y(Xl,...XM)-";YY 2970 PRINT "ЧИСЛО ИТЕРАЦИЙ ITR«";ITR 2975 PRINT "ЧИСЛО ВЫЧИСЛЕНИЙ ФУНКЦИИ NVF-";NVF 2980 PRINT "***♦♦*♦*♦*♦♦*♦♦♦♦♦♦*♦*♦♦*♦♦♦*♦♦♦♦♦♦♦♦♦♦♦♦" 2990 RETURN 4000 REM ПОДПРОГРАММА ОЦЕНИВАНИЯ ЗНАЧЕНИЙ ЧАСТНЫХ ПРОИЗВОДНЫХ 4010 REM МИНИМИЗИРУЕМОЙ ФУНКЦИИ ПО ПЕРЕМЕННЫМ 4020 FOR I-l TO M 4030 XHI)-X(I) 4040 NEXTI 4050 FOR I-l TO M 331
4060 PX1(I)-ABS(X1(I)/1OOO)+.OOOOO1 4070 X(I)-X(I)+PX1(I) 4080 GOSUB 1500.Y11-Z 4090 X(I)-X(I)-2*PX1(I) 4095 GOSUB 1500:YI2-Z 4100 DGX(I)-(YIl-YI2)/PXHI)/2 4105 X(I)-XKI) 4110 NEXT I 4120 FORI-1 TOM 4130 X(I)-XKI) 4140 NEXT I 4150 RETURN 4500 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ СУММЫ КВАДРАТОВ ПРОИЗВОДНЫХ 4510 GSUM-0 4520 FOR I-l TO M 4530 GSUM-GSUM+DGX(ir2 4540 NEXTI 4545 GSUM-SQR(GSUM) 4550 RETURN 5000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ВТОРЫХ ЧАСТНЫХ ПРОИЗВОДНЫХ 5010 REM МИНИМИЗИРУЕМОЙ ФУНКЦИИ 5020 FOR J-l TO M 5030 X2(J)-X(J) 5040 NEXTJ 5050 FOR J-l ТОМ 5060 PX2(J)-ABS(X2(J)/1OOO)+.OOOOO1 5070 X(J)-X(JRPX2(J) 5080 GOSUB 4000 5090 FOR b-1 TO M 5100 CQ(J,L)-DGX(L) 5110 NEXTL 5120 X(J)-X(J)-2*PX2(J) 5130 GOSUB 4000 5140 FORLrlTOM 5150 CQ(J,L)-(CQ(J,L)-DGX(L))/PX2(J)/2 5160 NEXTL 5170 X(J)-X2(J) 5180 NEXTJ 5200 RETURN 5500 REM ПОДПРОГРАММА ОПРЕДЕЛЕНИЯ НАПРАВЛЕНИЯ СПУСКА В МЕТОДЕ НЬЮТОНА 5510 GOSUB 6000 5520 FOR I-l TO M 5530 PQ(I)-0 5540 FOR J-l TO M 5550 PQ(I)-PQ(IHCQ(I,J)*DGX(J) 5560 NEXTJJ 5570 FOR I-l TO M 5580 DGXd)-PQ(I) 5590 NEXTI 5600 RETURN 6000 REM ПОДПРОГРАММА ОБРАЩЕНИЯ СИММЕТРИЧНОЙ МАТРИЦЬ CQ ПОРЯДКА М 6010 М1-М-1 6020 FOR IQ-1 TO M 6030 UQ-1/CQA,1) 332
6040 FORJQ-2TOM 6050 JQ1-JQ-1 6060 ZQ(JQ1)-CQA,JQ> 6070 NEXTJQ 6080 FORJQ-1TOM1 6090 VQ--ZQ(JQLJQ 6100 CQ(JQ,M)-VQ 6110 FORKQ-1TOM1 6120 JQ1-JQ+1:KQ1-KQ+1 6130 CQ(JQ,KQ)-CQ (JQ1 ,KQ 1 )+ZQ (KQ) *VQ 6140 NEXTKQJQ 6150 CQ(M,M)--UQ 6160 NEXTIQ 6170 FORIQ-1TOM 6180 FORJQ-1TOM 6190 CQ(IQ,JQ)—CQ(IQJQ) 6200 CQ(JQ,IQ)-CQ(IQ,JQ) 6210 NEXTJQJQ 6220 FORIQ-1TOM1 6230 IQ1-IQ+1 6240 FORJQ-IQ1TOM 6250 CQ(IQ,JQ)--CQ(IQ,JQ) 6260 CQ(IQ,JQ)-CQ(JQ,IQ) 6270 NEXTJQJQ 6280 RETURN 8000 REM ПОДПРОГРАММА ВВОДА НАЧАЛЬНЫХ ДАННЫХ 8005 N-ll 8010 М-2 8015 ХA)-1.75:ХB)-3.25 8025 HX-.l 8030 EPS-.001 8035 FOR 1-1 TO N 8040 XR(I)-(I-l)*.5:YR(I)-2/(l+3*XR(I)) 8050 NEXT I 8070 RETURN 9000 REM "GR9000": ПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА ФУНКЦИИ 9010 PRINT и ":PRINT " ГРАФИК НЕЛИНЕЙНОЙ MOAEJIH":PRINT " " 9020 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X:NXD-";NXD 9030 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y:NYD- f;NYD 9050 NY-NYD+1 9060 CLS.SCREEN 2:DY-(YMAX-YMIN)/NYD:FOR 1-1 TO NY:Y-2O^160/NYD*(I-l) 9070 LINE G4,Y) - E74,Y) :NEXT I:NX-NXD+1 9080 FORI-1 TONX:X-84+480/NXD*(M):LINE (X,12)-(X,188):NEXT I 9090 R-23 9100 FORK-OTONYD 9110 LOCATE R 1 9120 SY-YMIN+DY*K:PRINT USING "#.###";SY 9130 R-R-20/NYD 9135 NEXT К 9140 C-7:DX-(XMAX-XMIN)/NXD 9150 FOR K-0 TO NXD:KEY OFF;LOCATE 24,C 9160 SX-XMIN+DX*K 9170 PRINT USING "####.##";SX; 9180 C-C+60/(NXD+0) 9185 NEXT К 9310 XA-E64-84) / (XMAX-XMIN) :YA-A80-20) / (YMAX-YMIN) 9320 FOR IX-84 TO 564:XU-XMIN+(IX-84)/480*(XMAX-XMIN) 333
9330 GOSUB 1000 9340 IY-180-(YU-YMIN)*YA 9350 IF IY < 20 OR IY >180 THEN 9370 9360 IF IX-84 THEN PSET (IX,IY) 9365 LINE-(IX,IY) 9370 NEXT IX 9380 FOR 1-1 TO N 9390 YG-180-(YR(I)-YMIN)*YA 9400 IF YG < 20 OR YG>180 GOTO 9440 9410 XG-480* (XR (I) -XMIN) / (XMAX-XMINH84 9420 PSET <XG,YG) 9430 DRAW "E2G4E2H2F4H2E2D4L4U4R4G2" 9440 NEXT I 9450 RETURN 9500 REM "GRAF9500" 9510 XS-(XMIN+XMAX)/2 9520 YS-(YMIN+YMAX)/2 9540 SCREEN 2:CLS:KEY OFF 9550 VX-XMAX-XMIN:DX-300/VX:VY-YMAX-YMIN:DY-120/VY 9560 FOR IX-40 TO 440 9570 XU-XMIN+(IX-40)/400*VX 9580 GOSUB 1000 9590 IY-125-(YU-YMIN)*DY 9595 IF IY < 5 OR IY > 125 GOTO 9620 9600 IF IX-40 THEN PSET (IX,IY):GOTO 9620 9610 LINE-(IX,IY) 9620 NEXT IX 9630 FOR IE-1 TO N 9640 YE-125-(YR(IE)-YMIN)*DY 9650 IF YE < 5 OR YE >125 GOTO 9740 9660 XE-400*(XR(IE)-XMIN)/VX+40 9670 PSET <XE,YE) 9680 ON MARKER GOTO 9690,9700,9710,9720,9730 9690 DRAW "U2D4U2L4R8L4":GOTO 9740 9700 DRAW "E2L4F4L4E3 "GOTO 9740 9710 DRAW ffE2D4H4D4E2L4R8L4":GOTO 9740 9720 DRAW "E2G4E2H2F4H2L4R8L4":GOTO 9740 9730 DRAW "U2G3R6H3D2" 9740 NEXT IE 9750 LINE D0,5)-D40,5) 9760 LINE D0,125)-D40,125) 9770 LINE D0,5)-D0,125) 9780 LINE D40,5)-D40,125) 9790 FOR Y-5 TO 125 STEP 12 9800 LINE D0,Y)-D3,Y) 9810 LINE D40,Y)-D37,Y) 9820 NEXTY 9830 LOCATE 1,2:PRINT YMAX 9840 LOCATE 9.2:PRINTYS 9850 LOCATE 16,2:PRINT YMIN 9860 FOR X-79 TO 440 STEP 40 9870 LINE (X, 125)-(X, 122) 9880 LINE (X+1,125)-(X+1,122) 9890 LINE (X,5)-(X,8) 9900 LINE(X+1,5)-(X+1,8) 9910 NEXTX 9920 LOCATE 17,4:PRINT XMIN 9930 LOCATE 17,29:PRINTXS 334
9940 LOCATE 17,54:PRINT ХМАХ 9950 A$-INPUT$A) 9960 END 10000 REM "GR10000" ПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА ФУНКЦИИ 10010 PRINT и ":PRINT " ГРАФИЧЕСКОЕ ИЗОБРАЖЕНИЕ РЕЗУЛЬТАТОВ AnnPOKCHMAlXHH":PRINT " н 10020 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X:NXD-";NXD 10030 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y:NYD-";NYD 10040 NY-NYD+1 10050 CLS:SCREEN 2:DY-(YMAX-YMIN)/NYD:FOR 1-1 ТО NY:Y-2Of 160/NYD* (I-1) 10060 LINE G6,Y)-(90,Y) NEXT LNX-NXD+1 10070 FORI-1 TONX:X-84+480/NXD*(I-l):LINE (X,176)-(X,184):NEXTI 10080 LINE (84,12)-(84,188):LINE (84,180) -E68,180) 10090 R-23 10100 FORK-0TONYD 10110 LOCATE R,3 10120 SY-YMIN+DY*K:PRINT USING "#.##";SY 10130 R-R-20/NYD 10140 NEXT К 10150 C-7:DX-(XMAX-XMIN)/NXD 10160 FOR K-0TO NXD:KEY OFF:LOCATE 24,C 10170 SX-XMIN+DX*K 10180 PRINT USING "####.##";SX; 10190 C-C+60/(NXEHO) 10200 NEXT К 10210 VX-XMAX-XMIN:VY-YMAX-YMIN:XA-480/VX:YA-160/VY 10230 FOR IX-84 TO 564:XU-XMIN+(IX-84)/480*VX 10240 GOSUB 1000 10250 IY-180-(YU-YMIN)*YA 10260 IF IY < 20 OR IY > 180 THEN 10290 10270 IF IX-84 THEN PSET (IX JY) 10280 LINE-(IXJY) 10290 NEXT IX 10300 FOR IE-1 TON 10310 YE-180-(YR(IE)-YMIN)*YA 10320 IFYE<20 OR YE >1180 GOTO 10410 10330 XE-480*(XR(IE)-XMIN)/VX+84 10340 PSET (XE YE) 10350 ON MARKER GOTO 10360,10370,10380,10390,10400 10360 DRAW "U2D4U2L4R8L4":GOTO 10410 10370 DRAW "E2L4F4L4E3":GOTO 10410 10380 DRAW "E2D4H4D4E2L4R8L4":GOTO 10410 10390 DRAW"E2G4E2H2F4H2L4R8L4":GOTO 10410 10400 DRAW "U2G3R6H3D2" 10410 NEXT IE 10420 RETURN RUN МЕТОД НЬЮТОНА С РЕГУЛИРУВКОЙ ШАГА (ПРОИЗВОДНЫЕ ОЦЕНИВАЮТСЯ С ПОМОЩЬЮ КОНЕЧН. РАЗНОСТЕЙ) ЧИСЛО ОЦЕНИВАЕМЫХ ПАРАМЕТРОВ М- 2 НАЧАЛЬНЫЙ ШАГ ПО ПАРАМЕТРАМ НХ- .1 КОНСТАНТА КРИТЕРИЯ ПРЕРЫВАНИЯ ВЫЧИСЛЕНИЙ EPS- .001 НАЧАЛЬНЫЕ ПРИБЛИЖЕНИЯ ПАРАМЕТРОВ 335
X(D- 1.75 ХB)яя 3.25 НАЧАЛЬНОЕ ЗНАЧЕНИЕ СУММЫ КВАДРАТОВ Y(X1 ,...»ХМ)- .1015252 « ПОСЛЕДОВАТЕЛЬНОСТЬ ИТЕРАЦИЙ » ИТЕРАЦИЯ ITR- 1 ХA)- 1.857033 ХB)- 2.541284 Y(X1,...,XM)- 2.335179E-02 ИТЕРАЦИЯ ITR- 2 Х(П- 1.936665 ХB)- 2.541138 Y(X1,...,XM)~ 1.443ПЗЕ-02 ИТЕРАЦИЯ ITR- 3 ХA)- 1.911271 ХB)- 2.696743 Y(X1,...,XM)- 9.259089E 03 ИТЕРАЦИЯ ITR- 4 Х(П- 1.97226 ХB)- 2.727248 Y(X1,...,XM)- 4.789566E-03 ИТЕРАЦИЯ ITR- 5 ХA)- 1.953984 ХB)- 2.834762 Y(X1 ХМ)- 2.548569Е-03 ИТЕРАЦИЯ ITR- 6 ХA)- 1.991049 ХB)- 2.871276 Y(X1 ХМ)- 1.050981Е-03 ИТЕРАЦИЯ ITR- 7 ХA)- 1.980999 ХB)- 2.929765 Y(X1,...,XM)- 4.401647E-04 ИТЕРАЦИЯ ITR- 8 Х(П- 1.997593 ХB)- 2.951406 Y(X1,...,XM)- 1.514391E-04 ИТЕРАЦИЯ ITR- 9 ХA)- 1.993456 336
XB)- 2.975512 Y(X1,...,XM)- 5.246911E-05 ИТЕРАЦИЯ ITR- 10 X(l)- 1.999353 XB)- 2.984059 Y(X1 ХМ)- 1.646915Е-05 ИТЕРАЦИЯ ITR- 11 X(l)- 1.997945 XB)- 2.992277 Y(X1,...,XM)- 5.183697E-06 ИТЕРАЦИЯ ITR- 12 X(D- 1.999816 XB)- 2.995082 Y(X1,...,XM>- 1.574294E-06 ИТЕРАЦИЯ ITR- 13 X(l)- 1.999376 XB)- 2.997651 Y(X1,...,XM)- 4.786534E-07 ****************************************************** СХОДИМОСТЬ ДОСТИГНУТА ****************************************************** ОЦЕНКИ ПАРАМЕТРОВ X(D- 1.999376 Х<2)- 2.997651 МИНИМУМ СУММЫ КВАДРАТОВ ОТКЛОНЕНИЙ Y(X1 ХМ)- ЧИСЛО ИТЕРАЦИЙ ITR- 13 ЧИСЛО ВЫЧИСЛЕНИЙ ФУНКЦИИ NVF- 8679 4.786534Е-07 НОМЕР ТОЧКИ 1 2 3 4 5 6 7 8 9 10 11 ЗНАЧЕНИЕ АРГУМЕНТА 0 .5 1 1.5 2 2.5 3 3.5 4 4.5 5 ЗНАЧЕНИЕ ФУНКЦИИ 2 .8 .5 .3636364 .2857143 ,2352941 .2 .1739131 .1538462 .137931 .125 ЗНАЧЕНИЕ МОДЕЛИ 1.999767 .8006067 .5005132 .3640539 .2860623 .2355913 .2002589 .1741422 .1540517 .1381172 .1251702 РАЗНОСТИ 6.249991Е-04 -6.066561 Е-04 -5.13196Е-04 -4.175305Е-04 -3.479421 Е-04 -2.971441Е-04 -2.588928Е-04 -2.291799Е-04 -2.05487Е-04 -1.862049Е-04 -1.701862Е-04 ******************************************************************* ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧ. АРГУМЕНТА ХМШДМАХ? 0,5 ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧ. ФУНКЦИИ YMIN,YMAX? 0,2 337
2 1 5 Рис.3.22. Аппроксимация N - 11 37 = 2/A +3ту), ту = 0.5G - 1)./ = 1.»... у — Jfi/A + X2t) методом Ньютона значений дробнорациональной функции с помощью нелинейной модели Для рассматриваемой задачи выбирались начальные приближе- приближения х\ = 1.75; дй0) = 3.25. Сходимость при выполнении программы NREG07W1 была достигнута за 13 итераций. Для реализации этого алгоритма необходимо иметь достаточно хорошее начальное приближение. Численные эксперименты показа- показали, что если начальное приближение расположено далеко от точки B, 3) минимума суммы квадратов отклонений для рассматриваемой задачи, то метод Ньютона может расходиться. Несмотря на то, что метод Ньютона имеет очень высокую скоро- скорость сходимости, он не нашел широкого практического применения при нелинейном оценивании параметров, так как в окрестностях то- точек, отличных от точки минимума, матрица Н(в) не всегда является положительно определенной. Значительные трудности, возникаю- возникающие при использовании метода Ньютона, связаны также с тем, что даже при небольшом числе неизвестных параметров очень трудно находить вторые частные производные суммы квадратов C.1.5). По- Поэтому в настоящее время на практике при решении задач нелинейно- нелинейного оценивания применяются методы, имеющие скорость сходимости метода Ньютона, в которых используются только первые частные производные аппроксимирующей функции f(x;9) или целевой функ- функции Ф@). 338
2) Метод Ньютона-Гаусса Методы, рассмотренные в предыдущих параграфах этой главы, можно использовать только для некоторых достаточно узких классов задач и заранее трудно предугадать, будет ли сходиться каждый из них в данной конкретной задаче. Более того, практика показала, что при оценивании параметров сложных нелинейных моделей эти мето- методы являются малоэффективными, а в некоторых случаях вообще расходятся. Одним из наиболее надежных, широко апробированных методов оценивания параметров нелинейных моделей является метод Ньюто- Ньютона-Гаусса. Этот метод имеет скорость сходимости, близкую к скоро- скорости сходимости метода Ньютона и, вместе с тем, лишен его недостатков, связанных с необходимостью вычисления вторых част- частных производных суммы квадратов отклонений экспериментальных значений от значений модели. Для того, чтобы применить метод Ньютона при оценивании па- параметров модели у = f(x;0) необходимо найти первые и вторые част- частные производные суммы квадратов C.1.5). Очевидно, что первые и вторые частные производные этой функ- функции вычисляются по формулам дФ двг N 0» - /(*;; в)) д0г г = 1,..., к , C.6.13) lirn — д6гд8. двг ев, N , Г, // 1,..., /С » C.6.14) Величины gr являются компонентами вектора градиента, характери- характеризующего направление наиболее быстрого возрастания функции, а Игр элементами матрицы Гессе функции Ф(#). Введем матрицу Р размера N х к элементами которой являются частные производные ; в) df(xi\0) д/(х2; в) df(xN; в) df(x2;9) двк df(xN; в) C.6.15) 339
Тогда соотношение C.6.14) можно представить в матричной форме # = #! ~#2 , где матрица #i = 2РТР, а Яг — матрица, составленная из элемен тов , r,p = 1,..., к . C.6.16) Предположим, что столбцы матрицы Р линейно независимы, точка в находится в некоторой окрестности минимума в* (т.е. от- отклонения у! от f(xj;6) являются малыми), а вторые частные производ- d2f ные кп in ограничены некоторой константой. Тогда в достаточно малой окрестности точки 0* матрица Гессе Н(в) приближенно равна матрице Hi, так как Н2 ~ 0. В обычном методе Ньютона последова- последовательность приближений для вектора неизвестных параметров вычис- вычисляется по формуле C.6.3). Тогда с учетом вышеизложенных предположений алгоритм этого метода можно переписать в следую- следующей форме , . C.6.17) где Y — вектор, составленный из экспериментальных значений y\>...,yN функции в точках Xi,..., xn , F{6) — TV-мерный вектор, элементами которого являются значения модели/(xi; #),:.., Дл^; в). Итерационная процедура, в которой последовательность приближе- приближений находится по формуле C.6.17), называется методом Ньютона^ Гаусса. В отличие от метода Ньютона, для которого матрица Гессе Н{в) не является положительно определенной, в методе Ньютона-Га- усса матрица (Р Р) положительно определена. По объему вычисле- вычислений на каждой итерации метод Ньютона-Гаусса близок к градиентному методу, а по скорости сходимости — к методу Ньюто- Ньютона [6,10,13,15]. В методе Ньютона-Гаусса длина шага на каждой итерации выби- выбирается равно единице. Более гибким является модифицированный метод Ньютона-Гаусса, в котором имеется возможность длину шага выбирать переменной. Аналогично методу Ньютона с регулировкой шага, в модифицированном методе Ньютона-Гаусса последователь- последовательность приближений вычисляется по формуле . C.6.18) На каждой итерации величину шага pi можно выбирать различными 340
способами. При решении практических задач величина шага обычно находится из условия минимизации функции Ф(в) в направлении . C.6.19) Например, в оптимальном методер, определяется из условия Ф(б<0 + />Д) = min Ф@® + pdi) . C.6.20) Величину шага можно также выбирать по следующему принципу. Пусть задано некоторое число 1/г < у < 1. Тогда положим pi = ут , где т — максимальное целое число, для которого выполняется усло- условие Ф@<0 + /9Д) < ФFР>). C.6.21) В варианте метода Ньютона-Гаусса, предложенном Х.Хартли, на каждой итерации величина/?/ выбирается следующим образом. Вдоль направления <$,• определяются значения функции Ф(в) в точках #° + pdi, гдер = 0, 1/2, 1. Найденные значения Ф&°, ф{%9 Ф\1) аппрок- симируются параболой Q(p) = ар + Ьр + с и определяется точка минимума этой параболы. Значение р = />ь при котором парабола имеет минимум, выбирается в качестве величины шага на /-й итера- итерации. Путем элементарных вычислений находим■, что pi ~ Т + Т" Вычисления по методу Ньютона-Гаусса прекращаются, если на не- некоторой итерации выполняется одно из рассмотренных выше усло- условий останова. Выбор подходящего критерия останова процесса вычислений обычно осуществляется с учетом физической сущности решаемой задачи, Алгоритм оценивания параметров нелинейной модели методом Ньютона-Гаусса реализован в программе NREG08W1. Начальные данные вводятся в этой программе с помощью подпрограммы, задан- заданной операторами 8000—8090. В качестве одной из тестовых функций рассматривалась затухающая косинусоида у = е~ъ 2rcosD.5r). В про- программе вводятся Лг* 10 ее значений с шагом Лт = 0.1, а также на- начальные приближения х\0) = 2; л^0) = 3. Аппроксимирующая функция, а также первые и вторые ее частные производные задаются соответственно в подпрограммах, заданных операторами 3000— 3020, 4000—4040, 5000—5060. Ниже представлены листинг программы NREG08W1, а также ре- результаты ее выполнения для тестовых значений затухающей экспоненты. При вычислениях на персональном компьютере для рассматриваемой 341
тестовой задачи сходимость достигнута за 8 итераций. График значе- значений тестовой функции, а также аппроксимирующей их нелинейной модели вида у = ехр(—xit) cos(*2t) приведен на рис. 3.23. 10 REM"NREG08Wr 20 REM************************************************************** 30 REM*** ПРОГРАММА ОЦЕНИВАНИЯ ПО ЭКСПЕРИМЕНТАЛЬНЫМ 35 REM*** ДАННЫМ ВЕКТОРА ПАРАМЕТРОВ 40 REM*** НЕЛИНЕЙНОЙ МОДЕЛИ Y-F(X,A) С ПОМОЩЬЮ МЕТОДА 45 REM*** НЬЮТОНА-ГАУССА 50 REM*** (АВТОМАТИЧЕСКИЙ ВЫБОР ШАГА ПОИСКА) 60 rem************************************************************* 70 REM ВВОД НАЧАЛЬНЫХ ДАННЫХ ОСУЩЕСТВЛЯЕТСЯ В ПОДПРОГРАММЕ,ПЕРВЫЙ ОПЕРАТОР 80 REM КОТОРОЙ ИМЕЕТ НОМЕР 8000 90 В1МХA00),УA00),¥МA00),АA5),СA5),гA5KA5Л5),СA5Л5) 95 mMPAA5),PA2A5,15),CQA5,15),ZQA5),DELA00) 98 GOSUB8000 100 PRINT" МЕТОД НЬЮТОНА-ГАУ ССА" 101 PRINT "♦*♦♦*♦♦**♦♦♦♦♦♦*♦♦♦♦♦♦♦♦♦♦*♦♦♦♦♦♦♦*♦♦♦♦♦*♦*♦♦***♦♦**♦•• 102 PRINT" " 103 PRINT "НАЧАЛЬНЫЕ ПРИБЛИЖЕНИЯ ДЛЯ НЕИЗВЕСТНЫХ ПАРАМЕТРОВ" 104 PRINT " - " 105 FOR 1-1 ТОМ 106 PRINT" A(";I;")-";A(I) 107 NEXT I 108 PRINT " 110 SL-0 120 ITR-1 122 PRINT*PRINT:PRINT "♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦**♦♦♦♦♦*♦♦♦♦♦♦♦" 124 PRINT ' < ПОСЛЕДОВАТЕЛЬНОСТЬ ИТЕРАЦИЙ >" 126 PRINT "♦♦♦♦♦♦♦♦♦♦*♦♦♦♦♦♦♦♦♦♦♦♦*♦*♦♦♦♦♦♦♦♦♦♦♦♦**♦♦♦*♦♦♦♦♦**♦♦♦♦" 130 SQ-0 140 FOR Ы TON 150 X-X(I):GOSUB3000:YM(I)-Y 160 SQ-SQ+(Y(I)-YM(I))~2 170 NEXT I 180 FOR Ы TOM 190 G(I)-0 200 FOR J-l TO M 210 C(I,J)-0 220 NEXTJЛ 230 FOR 1-1 TO N 240 X-X(I):GOSUB3000:YM(I)-Y 245 GOSUB 4000:GOSUB 5000 250 FOR J-l TO M 260 Z(J)-PA(J):G(J)-G(J)+(Y(I)-YM(I))*Z(J) 270 FOR K-l TO M 280 C(J>K)-€(J>K)+Z(J)*Z(K)-(Y(I)-YM(I))*PA2(J,K) 290 NEXTKJ.I 292 REM FOR 1-1 TO M:PRINT G(I):NEXT I 294 REMFORI-1 TOM:FORJ-1 TO M:PRINTC(I,J):NEXT J,I: 300 FOR 1-1 TO M aio forj-iтом 320 CQ(U)-C(I,J) 330 NEXT JД 342
340 GOSUB6000 350 FOR 1-1 TO M 355 FOR J-1 TO M 360 C(I,J)-CQ(I,J) 365 NEXTJ.I 368 REM FOR 1-1 TO M:FOR J-1 TO M:PRINT C(I,J):NEXT J,I 370 SQ1-0 375 FOR 1-1 TO M 380 FOR J-1 TO M 385 SQ1-SQ1+G(I)*G(J)*C(I,J) 390 NEXTJJ 395 IND-1 400 IFSQK0THENIND--1 405 FOR 1-1 TO M 410 Z(I)-0 415 FOR J-1 TOM 420 Z(I)-Z(I)+C(U)*G(J) 425 tfEXTJJ 427 REM FOR 1-1 TO M:PRINT Z(I) :NEXT I 430 SLrWD 435 FOR I-1 TOM 440 G(I)-A(I)+SL*Z(I) 442 Zd)-A(I) 445 NEXT I 450 SQb-0 452 FOR 1-1 TO M:A(I)-G(I):NEXTI 455 FOR J-1 TO N 460 X-X(J):GOSUB3000:YM(J)-Y 465 SQI^SQL+(Y(J)-YM(J))~2 470 NEXTJ 472 REM PRINT SQ,SQL,SL,SQ1 475 IF SQL<SQ GOTO 490 480 SL-.75*SL 485 GOTO 435 490 IF ITR > ITMAX GOTO 630 495 FOR 1-1 TO M 500 IFABS(Z(I)/G(I)-1)>EPSGOTO515 505 NEXT I 507 FOR 1-1 TO M:A(I)-Z(I):NEXT I 510 GOTO 630 515 SQN-SQ:SQ-SQL 520 FOR 1-1 TO M 525 A(I)-G(I) 530 NEXT I 535 PRINT:PRINT " 540 PRINT" ИТЕРАЦИЯ ITR-";ITR 545 PRINT " " 550 PRINT "ОЦЕНКИ КОЭФФИЦИЕНТОВ НА ITR-Й ИТЕРАЦИИ" 560 FOR 1-1 ТО М 570 PRINT" А(";Г)-";АA) 580 NEXT I 590 PRINT "ШАГ ИТЕРАЦИИ SIX;SL 595 PRINT:PRINT "ОСТАТОЧНЫЕ СУММЫ КВАДРАТОВ НА ITR-Й ИТЕРАЦИИ" 600 PRINT "SQ-";SQN;" SQI^";SQL 605 PRINT" 610 IF ITR < ITMAX THEN ITR-ITR+1 :GOTO 180 620 PRINT "СХОДИМОСТЬ ДОСТИГНУТА ЗА ";ITR;" ИТЕРАЦИЙ" 630 FOR 1-1 TO M 343
640 FOR J-l TO M 645 B(I,J)-C(U) 650 C(U)-0 655 FOR K-l TO N:X-X<K) 660 GOSUB4000 665 C(I,J)-C(I,J)+PA<I)*PA(J) 670 NEXTK:CQ(I,J)-C(I,J):NEXTJ,I 675 GOSUB6000 680 FOR 1-1 TO M 685 FOR J-l TOM 690 C(U)-CQ(I,J) 700 NEXTJJ 850 FI-N-M 860 S2-SQ/FI 870 PRINT:PRINT:PRINT "ОСТАТОЧНАЯ ДИСПЕРСИЯ S2-";S2 872 PRINT'PRINT "♦♦♦♦♦*♦*♦♦♦*♦*♦♦*♦*♦♦♦***♦♦♦♦*♦♦**♦*" 874 PRINT " < СХОДИМОСТЬ ДОСТИГНУТА >" 876 PRINT "♦♦♦****♦***♦♦♦♦*♦*****♦**♦♦♦♦*♦♦*♦♦" 880 S~SQR(S2) 890 FOR 1-1 TO M 900 G(I>-S*SQR(C(I,D) 910 IFB<I,I)>-OTHENZ(I)-S*SQR<B(I,I)) ELSE Z(I)-0 920 NEXT I 925 PRINT" ■ " 930 PRINT "НОМЕР КОЭФФИЦ. СТАНД.ОШ. СТАНД.ОШ." 940 PRINT "КОЭФФИЦ. НЕЛИНЕЙН. ПАР.,ОСН.НА ПАРАМ-ОВ," 950 PRINT" МОДЕЛИ ЛИНЕАРИЗ. ОСНОВ.НА" 960 PRINT "I A(I) РЕГРЕССИИ МАТР.2-Х" 970 PRINT" ПРОИЗВ." 980 PRINT" ~ —" 990 FOR Ы ТО М 1000 PRINTI,A(D,G(I),Z(I) 1010 NEXT I 1015 PRINT " 1020 SY-O:SY2-0:DW~O 1030 FORI-1TON 1040 SY«SY+Y(I) 1050 SY2-SY2+Y(I)^2 1060 X-X(I):GOSUB3000:YM(I)-Y 1070 DEL(I)«Y(I)-YM(I) 1080 NEXT I 1088 PRINT" ' 1090 PRINT "НОМЕР ТОЧКИ ЗНАЧ.АРГУМ. ЗНАЧ.Ф-ИИ ЗНАЧ.МОДЕЛИ РАЗНОСТИ" 1105 PRINT " - " 1110 FOR I-l TON 1120 PRINT I,X(IhY(I),YM(I),DEL(I) ИЗО NEXT I 1135 PRINT" ■ '" 1140 FOR 1-2 TO N 1150 DW-DW+(DEL(I)-DEL(I-1))~2 1160 NEXT I 1170 DW-DW/S2/FI 1180 SY2-SY2-SY^2/N 1185 KD-1-S2*FI/SY2 1190 PRINT 1195 IF KD-l THEN PRLNT "ЗАВИСИМОСТЬ ДЕТЕРМИНИРОВАНА":СОТО 1285 1200 KDI-1-S2/SY2*(N-1) 344
1210 FKD-KD*FI/A-KD)/M 1220 R-0 1230 IFKD>-OTHENR-SQR(KD) 1240 PRINTrPRINT "КОЭФФИЦИЕНТ ДЕТЕРМИНАЦИИ KD-";KD 1250 PRINT:PRINT "ИСПРАВЛ.КОЭФФИЦ.ДЕТЕРМИНАЦИИ KDI-'KDI 1260 PRINT:PRINT "F-СТАТИСТИКА КОЭФ-ТА ДЕТЕРМИНАЦИИ FKI>-";FKD 1270 PRINT:PRINT "КОЭФ.МНОЖЕСТВЕННОЙ КОРРЕЛЯЦИИ R-";R 1280 PRINT:PRINT "КОЭФФИЦИЕНТ ДАРБИНА-У OTCOHA DW-H;DW 1285 PRINT 1290 PRINT "ft****************************************************" 1310 INPUT "ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. АРГУМЕНТА XMIN,XMAX";XMIN,XMAX 1320 INPUT "ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. ФУНКЦИИ YMIN,YMAX";YMIN,YMAX 1330 PRINT 1340 REM GOSUB 9000 1350 MARKER-2:GOSUB 9500 1360 REM MARKER-2:GOSUB 10000 1400 END 3000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЯ НЕЛИНЕЙНОЙ МОДЕЛИ ЗОЮ Y-BXP(-A<1)*X)*COS(AB)*X) 3020 RETURN 4000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ ЧАСТНЫХ ПРОИЗВОДНЫХ НЕЛИНЕЙНОЙ 4010 REM МОДЕЛИ Y-F(X,А) ПО НЕИЗВЕСТНЫМ ПАРАМЕТРАМ 4020 PAA)--X*EXP<-AA)*X)*COS<AB)*X) 4030 PAB)--X*EXP(-AA)*X)*SIN(AB)*X) 4040 RETURN 5000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ ВТОРЫХ ЧАСТНЫХ ПРОИЗВОДНЫХ 5010 REM НЕЛИНЕЙНОЙ ФУНКЦИИ Y-F(X.A) ПО НЕИЗВЕСТНЫМ ПАРАМЕТРАМ 5020 PA2A,1>-X~2*EXP(-AA)*X)*COS(AB)*X) 5030 PA2A,2)-X~2*EXP(-A<1)*X>*SIN(AB)*X) 5040 РА2B,1)НРА2A,2) 5050 РА2B,2)--РА2A,1) 5060 RETURN 6000 REM ПОДПРОГРАММА ОБРАЩЕНИЯ СИММЕТРИЧОЙ МАТРИЦЫ (CQ) ПОРЯДКА М 6010 М1-М-1 6020 FOR IQ-1 ТО М 6030 UQ-1/CQA,1> 6040 FORJQ-2TOM 6050 JQ1-JQ-1 6060 ZQ(JQ1)-CQA,JQ) 6070 NEXTJQ 6080 FOR JQ-1 TO Ml 6090 VQ—ZQ(JQ)*UQ 6100 CQ(JQ,M)-VQ 6110 FORKQ-1TOM1 6120 JQ1-JQ+1:KQ1-KQ+1 6130 CQ(JQ,KQ)-CQ(JQ1,KQ1)+ZQ(KQ)*VQ 6140 NEXTKQJQ 6150 CQ(M,M)--UQ 6160 NEXTIQ 345
6170 FORIQ-1TOM 6180 FORJQ-1TOM 6190 CQ(IQ,JQ)-CQ(IQ,JQ) 6200 CQ(JQJQ)-CQ(IQ,JQ) 6210 NEXTJQJQ 6220 FORIQ-1TOM1 6230 IQ1-IQ+1 6240 FORJQ-IQ1TOM 6250 CQ(IQ,JQ)-CQ(IQ,JQ) 6260 CQ(IQ,JQ)-CQ(JQ,IQ) 6270 NEXTJQJQ 6280 RETURN 8000 REM ПОДПРОГРАММА ВВОДА НАЧАЛЬНЫХ ДАННЫХ 8010 N-10 8020 М-2 8030 АA)-2:АB)-3 8040 FOR 1-1 ТО N 8050 X(I)-.1*(I-1):Y(I)-EXP(-3.2*X(I))*COSD5*X(I)) 8060 NEXTI 8070 ITMAX-100 8080 EPS-.0001 8090 RETURN 9000 REM "GR9000": ПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА ФУНКЦИИ 9010 PRINT и ":PRINT " ГРАФИК НЕЛИНЕЙНОЙ M(WEJIHH:PRINT и" 9020 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X:NXD-M;NXD 9030 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y:NYD-";NYD 9050 NY-NYD+1 9060 CLS:SCREEN 2:DY-(YMAX-YMIN)/NYD:FOR 1-1 TO NY:Y-2O460/NYD*(I-l) 9070 LINE G4,Y) - E74.Y) :NEXT I:NX-NXD+1 9080 FORI-1 TONX:X-84+480/NXD*(I-l):LINE (X,12)-(X,188):NEXTI 9090 R-23 9100 FORK-0TONYD 9110 LOCATE R 1 9120 SY-YMIN+DY*K:PRINT USING "#.###";SY 9130 R-R-20/NYD 9135 NEXT К 9140 C-7:DX-(XMAX-XMIN)/NXD 9150 FOR K-0 TO NXD:KEY OFF:LOCATE 24,C 9160 SX-XMIN+DX*K 9170 PRINT USING "####.##';SX; 9180 C4:+60/(NXD4O) 9185 NEXT К 9310 XA-E64-84)/(XMAX-XMIN):YA-( 180-20)/(YMAX-YMIN) 9320 FOR IX-84 TO 564:X-XMIN+(IX-84) /480* (XMAX-XMIN) 9330 GOSUB3000 9340 IY-180-(Y-YMIN)*YA 9350 IF IY < 20 OR IY > 180 THEN 9370 9360 IF IX-84 THEN PSET (IX,IY) 9365 LINE-(IX,IY) 9370 NEXT IX 9380 FOR 1-1 TO N 9390 YG-180-(Y(I)-YMIN)*YA 9400 IF YG< 20 OR YG > 180 GOTO 9440 9410 XG-480* (X (I) -XMIN) /(XMAX-XMIN) +84 9420 PSET (XG,YO) 9430 DRAW' E2G-ir2H2F4H2E2D4L4U4R4G2" 9440 NEXTI 346
9450 RETURN 9500 REM "GRAF9500" 9510 XS-(XMIN+XMAX)/2 9520 YS-(YMIN+YMAX)/2 9540 SCREEN 2:CLS:KEY OFF 9550 VX-XMAX-XMIN:DX-400/VX:VY-YMAX-YMIN:DY-120/VY 9560 FOR IX-40 TO 440 9570 X-XMIN+(IX-40)/400*VX 9580 GOSUB 3000 9590 IY-125-(Y-YMIN)*DY 9595 IF IY < 5 OR IY > 125 GOTO 9620 9600 IF IX-40 THEN PSET (IX,IY):GOTO 9620 9610 LINB-(IXJY) 9620 NEXT IX 9630 FOR IE-1 TO N 9640 YE-125-(Y(IE)-YMIN)*DY 9650 IF YE < 5 OR YE > 125 GOTO 9740 9660 XE-400*(X(IE)-XMIN)/VX+40 9670 PSET (XE/YE) 9680 ON MARKER GOTO 9690,9700,9710,9720,9730 9690 DRAW "U2D4U2L4R8L4":GOTO 9740 9700 DRAW "E2L4F4L4E3":GOTO 9740 9710 DRAW "E2D4H4D4E2L4R8L4":GOTO 9740 9720 DRAW "E2G4E2H2F4H2L4R8L4":GOTO 9740 9730 DRAW "U2G3R6H3D2" 9740 NEXT IE 9750 LINE D0,5)-D40,5) 9760 LINE D0,125)-D40,125) 9770 LINE D0,5)-D0,125) 9780 LINE D40,5)-D40,125) 9790 FOR Y-5 TO 125 STEP 12 9800 LINED0,Y)-D3,Y) 9810 LINE D40,Y)-D37,Y) 9820 NEXTY 9830 LOCATE 1,2:PRINT YMAX 9840 LOCATE 9.2:PRINTYS 9850 LOCATE 16,2:PRINT YMIN 9860 FOR X-79 TO 440 STEP 40 9870 LINE(X,125)-(X,122) 9880 LINE(X+1,125)-(X+1,122) 9890 LINE (X,5)-(X,8) 9900 LINE(X+1,5)-(X+1,8) 9910 NEXTX 9920 LOCATE 17,4:PRINT XMIN 9930 LOCATE 17.29.PRINTXS 9940 LOCATE 17,54:PRINT XMAX 9950 A$-INPUT$A) 9960 END 10000 REM "GRIOOOO" .ПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА ФУНКЦИИ 10010 PRINT " "rPRINT " ГРАФИК НЕЛИНЕЙНОЙ МОДЕЛИ'^ШТ н" 10020 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X:NXD«";NXD 10030 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y:NYD-";NYD 10040 NY-NYD+1 10050 CLS:SCREEN 2:DY-(YMAX-YMIN)/NYD:FOR 1-1 ТО NY:Y-2OH60/NYD*(I-l) 10060 LINEG6,Y)-(90,Y):NEXT LNX-NXD+1 10070 FORI-1 TONX:X-84+480/NXD*(I-l):LINE (X,176)-(X,184):NEXTI 10080 LINE (84,12)-(84,188):LINE (84,180)-E68,180) 347
10090 R-23 10100 FORK-0TONYD 10110 LOCATE R 3 10120 SY-YMIN+DY*K:PRINT USING "#.##";SY 10130 R-R-20/NYD 10140 NEXT К 10150 C-7:DX-(XMAX-XMIN)/NXD 10160 FORK-0TONXD:KEYOFF:LOCATE24,C 10170 SX~XMIN+DX*K 10180 PRINT USING "####.##";SX; 10190 C-C+60/(NXI>K)) 10200 NEXT К 10210 VX-XMAX-XMIN:VY-YMAX-YMIN:XA-480/VX:YA-160/VY 10230 FOR IX-84 TO 564:X-XMIN+(IX-84)/480*VX 10240 GOSUB3000 10250 IY~180-(Y-YMIN)*YA 10260 IF IY< 20 OR IY > 180 THEN 10290 10270 IF IX-84 THEN PSET (IX,IY) 10280 L1NE-(IX,IY) 10290 NEXT IX 10300 FOR1E-1TON 10310 YE-180-(Y(IE)-YMIN)*YA 10320 IFYE<20 OR YE >1180 GOTO 10410 10330 XE~480*(X(IE)-XMIN)/VX+84 10340 PSET (XE YE) 10350 ON MARKER GOTO 10360,10370,10380,10390,10400 10360 DRAW"U2D4U2L4R8L4":GOTO 10410 10370 DRAW "E2L4F4L4E3":GOTO 10410 10380 DRAW"E2D4H4D4E2L4R8L4":GOTO 10410 10390 DRAW "E2G4E2H2F4H2L4R8L4":GOTO 10410 10400 DRAW "U2G3R6H3D2" 10410 NEXT IE 10420 RETURN RUN МЕТОД НЬЮТОНА-ГАУССА *****ч^ ******************************************************** НАЧАЛЬНЫЕ ПРИБЛИЖЕНИЯ ДЛЯ НЕИЗВЕСТНЫХ ПАРАМЕТРОВ А(П- 2 АB)- 3 *************************************************************** «последовате:льность итераций» ***$***********«**********«************************************ ИТЕРАЦИЯ INR- 1 ОЦЕНКИ КОЭФФИЦИЕНТОВ НА ITR-й ИТЕРАЦИИ АA)- 2.873328 АB)- 3.998132 ШАГ ИТЕРАЦИИ SL- I ОСТАТОЧНЫЕ СУММЫ КВАДРАТОВ НА ITR-й ИТЕРАЦИИ SQ- .2319012 SQI- 1.652491E-02 348
ИТЕРАЦИЯ INR- 2 ОЦЕНКИ КОЭФФИЦИЕНТОВ НА ITR-й ИТЕРАЦИИ АA)* 3.114669 А<2)- 4.454756 ШАГ ИТЕРАЦИИ ОСТАТОЧНЫЕ СУММЫ КВАДРАТОВ НА ITR-й ИТЕРАЦИИ SQ- 1.652491Е-02 SQL/- 3.330322E-04 ИТЕРАЦИЯ INR- 3 ОЦЕНКИ КОЭФФИЦИЕНТОВ НА ITR-й ИТЕРАЦИИ АA)- 3.187629 АB)- 4.480503 ШАГ ИТЕРАЦИИ SL- 1 ОСТАТОЧНЫЕ СУММЫ КВАДРАТОВ НА ITR-й ИТЕРАЦИИ SQ- 3.330322E-04 SQl/- 2.179922E-05 ИТЕРАЦИЯ INR- 4 ОЦЕНКИ КОЭФФИЦИЕНТОВ НА ITR-й ИТЕРАЦИИ А(П- 3.19333 АB)- 4.49886 ШАГ ИТЕРАЦИИ SL- 1 ОСТАТОЧНЫЕ СУММЫ КВАДРАТОВ НА ITR-й ИТЕРАЦИИ SQ- 2.179922E-05 SQL- 1.420547E-06 ИТЕРАЦИЯ INR-5 ОЦЕНКИ КОЭФФИЦИЕНТОВ НА ITR-й ИТЕРАЦИИ АA)- 3.200428 АB)- 4.498054 ШАГ ИТЕРАЦИИ SL- 1 ОСТАТОЧНЫЕ СУММЫ КВАДРАТОВ НА ITR-й ИТЕРАЦИИ SQ- 1.420547E-06 SQL- 1.607183Е-07 ИТЕРАЦИЯ INR-6 ОЦЕНКИ КОЭФФИЦИЕНТОВ НА ITR-й ИТЕРАЦИИ АО)- 3.199072 АB)- 4.500417 ШАГ ИТЕРАЦИИ SL- 1 ОСТАТОЧНЫЕ СУММЫ КВАДРАТОВ НА ITR-й ИТЕРАЦИИ SQ- 1.607183E-07 SQL- 3.107984E-08 ИТЕРАЦИЯ INR-7 ОЦЕНКИ КОЭФФИЦИЕНТОВ НА ITR-й ИТЕРАЦИИ 349
АО)- 3.200321 АB)- 4.499645 ШАГ ИТЕРАЦИИ Sir 1 ОСТАТОЧНЫЕ СУММЫ КВАДРАТОВ НА ITR-й ИТЕРАЦИИ SQ- 3.107984Е-08 SQL- 7.835226Е-09 ИТЕРАЦИЯ INR-8 ОЦЕНКИ КОЭФФИЦИЕНТОВ НА ITR-й ИТЕРАЦИИ А(П- 3.199794 АB)- 4.500154 ШАГ ИТЕРАЦИИ Sir 1 ОСТАТОЧНЫЕ СУММЫ КВАДРАТОВ НА ITR-й ИТЕРАЦИИ SQ- 7.835226E-09 SQL- 2.101054E-09 ОСТАТОЧНАЯ ДИСПЕРСИЯ S2- 2.626313Е-10 *************************************************************** « СХОДИМОСТЬ ДОСТИГНУТА » НОМЕР КОЭФФ. I КОЭФФ. НЕЛИНЕЙН. МОДЕЛИ СТАНД.ОШ. ПАР.,ОСН.НА ЛИНЕАРИЗ. РЕГРЕССИИ СТАНД.ОШ. ПАРАМ-ОВ, ОСНОВ. НА МАТР. 2-Х ПРОИЗВ. 1 2 3.199794 4.500154 9.410981Е-05 7.922158Е-05 1.01856Е-04 8.575009Е-05 НОМЕР ТОЧКИ ЗНАЧЕНИЕ АРГУМЕНТА ЗНАЧЕНИЕ ФУНКЦИИ ЗНАЧЕНИЕ МОДЕЛИ РАЗНОСТИ 1 2 3 4 5 6 7 8 9 10 0 Л .2 .3 .4 .5 .6 .7 .8 .9000001 1 .6538588 .3277702 .0838561 -6.317068Е-02 -.1268261 -.1325433 -.1064548 -6.932369Е-02 -3.452301 Е-02 1 .6538675 .3277711 8.384404Е-02 -.0631925 -.1268512 -.1325654 -.10647 -6.933088Е-02 -3.452328Е-02 0 -8.702278Е-06 -8.344651 Е-07 1.206249Е-05 2.182275Е-05 2.510846Е-05 2.211332Е-05 1.522154Е-05 7.189811Е-06 2.644956Е-07 ЗАВИСИМОСТЬ ДЕТЕРМИНИРОВАНА ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧ. АРГУМЕНТА XMIN.XMAX? 0,1 ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧ. ФУНКЦИИ YMIN,YMAX? -0.2,1 350
1 .4 -.2 :\ л ■ ■ ■ ■ i i \ i i \ \ i i ч 1 1 ^^ 1 1 1 1 —'I 1 1 f - i i ■ • ■ ■ ■ ■ ■ --ь— I 8 .5 i Рис. 3.23. Значения затухающей косинусоиды и аппроксимирующая их нелинейная модель у - е х{ rcos(*2T), полученная методом Ньютона-Гаусса 3) Метод Левенберга-Марквардта [6,13,14,19] В методе Ньютона-Гаусса на каждой итерации необходимо нахо- находить матрицу (PjPi)~\ обратную к матрице(РГР/). При решении практических задач нелинейного оценивания матрица (PfPi) очень часто является плохо обусловленной. В результате этого метод Нью- Ньютона-Гаусса может расходиться, так как даже самые малые измене- изменения начальных данных приводят к большим ошибкам при определении компонент вектора поправок для неизвестных парамет- параметров. При решении задач такого типа наиболее часто применяется ме- метод Левенберга-Марквардта. алгоритм которого можно задать с помощью рекурентного соотношения , i = 0,1,2,3,... , C.6.23) гдер/ > 0 — величина шага , Д — диагональная матрица, ненулевые элементы которой равны абсолютным величинам диагональных эле- элементов матрицы (PfPi). При больших значениях параметра //, мат- матрица Bi = PfPi + /iiDi является положительно определенной 351
независимо от того, какова матрица PfPi. Данное свойство матрицы Bi положено в основу метода Левенберга-Марквардта. Характер сходимости этого метода существенно зависит от выбо- выбора величины параметра//,. Из формулы C.6.23) следует, что при ма- малых значениях /*, метод Левенберга-Марквардта близок к методу Ньютона-Гаусса, а при больших — к градиентному методу. Поэтому на начальном этапе вычислений необходимо выбирать большие зна- значения параметра /i,-, а в окрестности точки минимума /i,- должны быть малыми. Один из возможных алгоритмов выбора параметра /*, при нели- нелинейном оценивании методом Левенберга-Марквардта можно сфор- сформулировать следующим образом. 1) Начальный этап. Пусть//п = 0,01; е = 10~7. 2) Основной этап. а) Вычисляем значение функции Ф(9) в точке б) Если Фф) < Ф(^°), то принимаем 0<ж> = б; Мш = max f 0.1//,, e} и переходим к пункту г), в) Если же Фф) > Ф(^г)), то определяем достаточно малое число pi такое, что Ф(^° -I- р£&1)) < Ф(^0), принимаем и переходим к пункту г). г) i заменяем на / + 1 и переходим к а). Алгоритм оценивания параметров нелинейной модели методом Левенберга-Марквардта реализован в программе NREG09W1. В этой программе начальные данные вводятся с помощью подпрограммы, заданной операторами 8000—8090. В качестве тестовой функции рассматриваются затухающая косинусоида у = е~ tcosD.5t), на ко- которую наложены случайные ошибки, равномерно распределенные на отрезке [-0.025, 0.025 ]. При отладке программы использовались N ж 20 значений этой фунхции с шагом Аг = 0.1. Аналитические выражения аппроксимирующей функции, а так- также ее первых и вторых частных производных по неизвестным пара- параметрам, использующиеся в алгоритме Левенберга-Марквардта, определяются подпрограммами с операторами 30(Ю—3020, 4000— 4040 и 5000—5060. Вторые частные производные используются при вычислении стандартных отклонений оценок параметров модели. Ниже представлены листинг программы NREG09W1 и результа- результаты ее выполнения для рассматриваемой тестовой функции. График значений затухающей косинусоиды, а также аппроксимирующей их нелинейной модели приведены на рис. 3.24. 352
10 REM "NREG09W1" 20 REM************************************************************* 30 REM*** ПРОГРАММА ОЦЕНИВАНИЯ ПО ЭКСПЕРИМЕНТАЛЬНЫМ 35 REM*** ДАННЫМ ВЕКТОРА ПАРАМЕТРОВ 40 REM*** НЕЛИНЕЙНОЙ МОДЕЛИ Y-F(X,A) С ПОМОЩЬЮ МЕТОДА 45 REM*** ЛЕВЕНБЕРГА-МАРКВАРДТА 50 REM*** (АВТОМАТИЧЕСКИЙ ВЫБОР ШАГА ПОИСКА) 60 rem************************************************************** 70 REM ВОД НАЧАЛЬНЫХ ДАННЫХ ОСУЩЕСТВЛЯЕТСЯ В 75 REM ПОДПРОГРАММЕ,ПЕРВЫЙ ОПЕРАТОР 80 REM КОТОРОЙ ИМЕЕТ НОМЕР 8000 90 DIMXA00),YA00),YMA00),AA5),GA5),ZA5),BA5,15),CA5,15),DA5,15) 95 DIMPAA5),PA2A5,15),CQA5,15),ZQA5),DELA00) 98 GOSUB8000 100 PRINT:PRINT " МЕТОД ЛЕВЕНБЕРГА-МАРКВАРДТА" 101 PRINT "***************************************************" 102 PRINT" " 103 PRINT "НАЧАЛЬНЫЕ ПРИБЛИЖЕНИЯ ДЛЯ НЕИЗВЕСТНЫХ ПАРАМЕТРОВ" 104 PRINT "-— - " 105 FOR Ы ТОМ 106 PRINT" A(";I;")-";A(I) 107 NEXT I 108 PRINT" 110 SL-.01 120 ITR-1 122 PRINT:PRINT:PRINT " 124 PRINT " < ИТЕРАЦИОННЫЙ ПРОЦЕСС >" 126 PRINT " 130 SQ-0 140 FORI-1TON 150 X-X(I):GOSUB3000:YM(I)-Y 160 SQ-SQ+(Ya)-YM(I))A2 170 NEXT I 180 FORI-1TOM 190 G(I)-0 200 FOR J-l TOM 210 C(I,J)-0 220 NEXTJJ 230 FOR 1-1 TO N 240 X-X(I):GOSUB3000:YM(I)-Y 245 GOSUB4000 250 FOR J-l TO M 260 Z<J)-PA(J):G<J)-G(J)+(Y(I)-YM<I))*Z(J) 270 FOR K-l TO M 280 C(J,K)-C(J,K)+Z(J)*Z(K) 290 NEXTK,J,I 300 FOR 1-1 TO M 310 FOR J-l TOM 320 CQ(U)-C(U) 330 IF I-J THEN CQ(I,I)-A+SL)*CQ(I,I) 340 NEXTJJ 350 GOSUB6000 360 FOR 1-1 TO M 370 Z(I)-A(I) 380 FORJ-1TOM:B(I,J)-CQ(I,J) 390 Z(I)-Z(I)+B(I,J)*G(J) 400 NEXTJJ 509 353
410 SQb-0 420 FOR 1-1 TO N 430 X-XU):GOSUB3000:YM(I)-Y 440 SQL-SQL+(Y(I)~YM(I)r2 450 NEXT I 460 IF SQ>-SQL GOTO 490 470 Slr-SLMO 480 GOTO 300 490 IF ITR>ITMAX GOTO 680 500 FOR 1-1 TO M 510 IFABS(A(I)/Z(I)-1)>EPS GOTO 535 520 NEXT I 530 GOTO 680 535 PRINT:PRINT:PRINT 540 PRINT" ИТЕРАЦИЯ ITR-";ITR 545 PRINT " 550 PRINT "ОЦЕНКИ КОЭФФИЦИЕНТОВ НА ITR-Й ИТЕРАЦИИ" 560 FOR 1-1 TO M 570 PRINT" A(";I")-";A(I) 580 NEXT I 590 PRINT "ПАРАМЕТР ПОПРАВОК К ДИАГОНАЛЬНЫМ ЭЛЕМЕНТА SL-";SL 595 PRINTiPRINT "ОСТАТОЧНЫЕ СУММЫ КВАДРАТОВ НА ITR-Й ИТЕР/ 600 PRINT "SQ-";SQ;" SQL-";SQL 605 PRINT" 610 SQ-SQL 620 FOR 1-1 TO M 630 Ad)-Z(I) 640 NEXT I 650 ITR-ITR+1 660 SWSL/10 670 GOTO 180 680 FOR 1-1 TO M 690 FOR J-l TO M 700 B(I,J)-C(I,J) 710 FOR K-l TO N:X-X(K) 720 GOSUB 5000:D<I,J)-PA2(I,J) 730 B<I,JHB<I,J)+(Y<K)-YM(K))*D<I,J) 740 NEXT K:CQ(I,J)-B(I,J) :NEXT JJ 750 GOSUB 6000 760 FOR 1-1 TO M 770 FOR J-l TO M 780 B(I,J)-CQ(I,J) 790 NEXTJ,I 800 FOR 1-1 TO M 810 FOR J-l TOM 820 CQ(U)-C(I,J) 830 NEXT JJ 840 GOSUB 6000 845 FOR 1-1 TO M:FOR J-l TO M:C(I,J>-CQ(I,J):NEXT J,I 850 FI-N-M 860 S2-SQ/FI 870 PRINT:PRINT:PRINT "ОСТАТОЧНАЯ ДИСПЕРСИЯ S2-";S2 872 PRINTiPRINT "***************************♦*****" 874 PRINT" < СХОДИМОСТЬ ДОСТИГНУТА >" 876 PRINT "******************************♦**" 880 S-SQR(S2) 890 FOR 1-1 TO M 354
900 G(I)-S*SQR(C(IJ)) 910 IFB(I,I»-OTHENZ(I)-S*SQR(B(U)) ELSE Z(I)-0 920 NEXT I 925 PRINT 930 PRINT "НОМЕР КОЭФФИЦ. СТАНД.ОШ. СТАНД.ОШ." 940 PRINT "КОЭФФИЦ. НЕЛИНЕЙН. ПАР.,ОСН.НА ПАРАМ-OB/ 950 PRINT" МОДЕЛИ ЛИНЕАРИЗ. ОСНОВ.НА" 960 PRINT "I A(I) РЕГРЕССИИ МАТР.2-Х " 970 PRINT" ПРОИЗВ." 980 PRINT" " 990 FOR 1-1 TO M 1000 PRINT I,A(I),G(I),Z(I) 1010 NEXT I 1015 PRINT" " 1020 SY-0:SY2-0:DW-0 1030 FORI-1 TON 1040 SY-SY+Y(I) 1050 SY2-SY2+Y(I)^2 1060 X-X(I):GOSUB3000:YM(I)-Y 1070 DEL(I)-Y(I)-YM(I) 1080 NEXT I 1085 PRINT 1088 PRINT " 1090 PRINT "НОМЕР ТОЧКИ ЗНАЧ.АРГУМ. ЗНАЧ.Ф-ИИ ЗНАЧ.МОДЕЛИ РАЗНОСТИ" 1105 PRINT "-— - -— " 1110 FORI-1 TON 1120 PRINT I,X(I) ,Y(I),YM(I),DEL(I) 1130 NEXT I 1135 PRINT 1140 FORI-2TON 1150 DW-DW+(DEL(I)-DEL(I-1))~2 1160 NEXT I 1170 DW-DW/S2/FI 1180 SY2-SY2-SY~2/N 1190 KD-1-S2*FI/SY2 1200 KDI-1-S2/SY2*(N-1) 1210 FKD-KD*FI/A-KD)/M 1220 R-0 1230 IF KD>-0 THEN R-SQR (KD) 1240 PRINT:PRINT "КОЭФФИЦИЕНТ ДЕТЕРМИНАЦИИ KD-";KD 1245 IF KD-1 THEN PRINT 'ЗАВИСИМСТЬ ДЕТЕРМИНИРОВАНА":СОТО 1285 1250 PRINT:PRINT "ИСПРАВЛ.КОЭФФИЦ.ДЕТЕРМИНАЦИИ KDI-'KDI 1260 PRINT:PRINT "F-СТАТИСТИКА КОЭФ-ТА ДЕТЕРМИНАЦИИ FKD-";FKD 1270 PRINT:PRINT "КОЭФ.МНОЖЕСТВЕННОЙ КОРРЕЛЯЦИИ R-";R 1280 PRINT:PRINT "КОЭФФИЦИЕНТ ДАРБИНА-УОТСОНА DW-";DW 1285 PRINT 1290 PRINT "ft**************************************************" 1300 INPUT "ВВЕДИТЕ МИНИМ И МАКСИМ. ЗНАЧЕН. АРГУМЕНТА XMIN,XMAX";XMIN,XMAX 1310 INPUT "ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. ФУНКЦИИ YMIN,YMAX";YMIN,YMAX 1320 PRINT 1330 REMGOSUB9000 1340 MARKER-2:GOSUB 9500 1350 REM MARKER-2.GOSUB 10000 1360 END 355
3000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЯ НЕЛИНЕЙНОЙ МОДЕЛИ ЗОЮ Y-EXP(-AA)*X)*COS(AB)*X) 3020 RETURN 4000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ ЧАСТНЫХ ПРОИЗВОДНЫХ НЕЛИНЕЙНОЙ 4010 REM МОДЕЛИ ПО НЕИЗВЕСТНЫМ ПАРАМЕТРАМ 4020 РАО)—X*EXP(-AA)*X)*COS(AB)*X) 4030 PAB>--X*EXP<-AA)*X)*SIN(AB)*X) 4040 RETURN 5000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ ВТОРЫХ ЧАСТНЫХ ПРОИЗВОДНЫХ 5010 REM НЕЛИНЕЙНОЙ ФУНКЦИИ Y-F(XtA) ПО НЕИЗВЕСТНЫМ ПАРАМЕТРАМ 5020 РА2(и)-Хл2*ЕХР(-АA)*Х)*СО8(АB)*Х) 5030 PA2A,2)-X^2*EXP(-AA)*X)*SIN(AB)*X) 5040 РА2B,1)-РА2A,2) 5050 РА2B,2)--РА2A,1) 5060 RETURN 6000 REM ПОДПРОГРАММА ОБРАЩЕНИЯ СИММЕТРИЧОЙ МАТРИЦЫ (CQ) ПОРЯДКА М 6010 М1-М-1 6020 FOR IQ-1 ТО М 6030 UQ-1/CQ(U) 6040 FOR JQ-2 TO M 6050 JQ1-JQ-1 6060 ZQUQl)-CQ(UQ) 6070 NEXTJQ 6080 FORJQ-1TOM1 6090 VQ--ZQ(JQ)HJQ 6100 CQ(JQ,M)-VQ 6110 FORKQ^lTOMl 6120 JQ1-JQ+1:KQ1-KQ+1 6130 CQ(JQ,KQ)-CQ(JQ1,KQ1)+ZQ(KQ)*VQ 6140 NEXTKQJQ 6150 CQ(M,M)--UQ 6160 NEXTIQ 6170 FOR IQ-1 TOM 6180 FORJQ-1TOM 6190 CQ(IQ,JQ)--CQ(IQ,JQ) 6200 CQ(JQ,IQ)-CQ(IQ,JQ) 6210 NEXTJQJQ 6220 FOR IQ-1 TO Ml 6230 IQ1-IQ+1 6240 FORJQ-IQ1TOM 6250 CQ<IQ,JQ)--CQ(IQ,JQ) 6260 CQ(IQ,JQ)-CQ(JQ,IQ) 6270 NEXTJQJQ 6280 RETURN . 8000 REM ПОДПРОГРАММА ВВОДА НАЧАЛЬНЫХ ДАННЫХ 8010 N-20 8020 М-2 8030 АA)-2:АB)-3 8040 FOR I-l TO N 8050 X(I)-.l*(I-l):Y<I)-EXP(-1.2*X(I))*COSD.5*X(I))-»-.05*(RND-.5) 8060 NEXT I 8070 ITMAX-100 8080 EPS-.01 356
8090 RETURN 9000 REM "GR9000": ПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА ФУНКЦИИ 9010 PRINT " ":PRINT " ГРАФИК НЕЛИНЕЙНОЙ МОДЕЛИ":РНЮТ " " 9020 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X:NXD-";NXD 9030 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y:NYD-";NYD 9050 NY-NYD+1 9060 CLS:SCREEN2:DY-(YMAX-YMIN)/NYD:FORI-1 ТО NY:Y-2(H-160/NYD*(I-l) 9070 LINEG4,Y)-E74,Y):NEXT I:NX-NXEH-1 9080 FORM TONX:X-84+480/NXD*(I-l):LINE (X, 12)-(X, 188).NEXTI 9090 R-23 9100 FORK-OTONYD 9110 LOCATE R 1 9120 SY-YMIN+DY*K:PRINT USING "#.###";SY 9130 R-R-20/NYD 9135 NEXT К 9140 C-7:DX-(XMAX-XMIN)/NXD 9150 FOR K-0 TO NXD:KEY OFF:LOCATE 24.C 9160 SX-XMIN+DX*K 9170 PRINT USING "####.##';SX; 9180 C-C+60/(NXD+0) 9185 NEXT К 9310 XA-E64-84) / (XMAX-XMIN): YA-A80-20) / (YMAX-YMIN) 9320 FOR IX-84 TO 564:X-XMIN+(IX-84)/480* (XMAX-XMIN) 9330 GOSUB 3000 9340 IY-180-(Y-YMIN)*YA 9350 IF IY<20 OR IY>180 THEN 9370 9360 IF IX-84 THEN PSET (IX.IY) 9365 LINE-(IX,IY) 9370 NEXT IX 9380 FOR 1-1 TO N 9390 YG-180-(Y(I)-YMIN)*YA 9400 IF YG<20 OR YG>180 GOTO 9440 9410 XG-480* (X (I) -XMIN) / (XMAX-XMIN)+84 9420 PSET (XG,YG) 9430 DRAW "E2G4E2H2F4H2E2D4L4U4R4G2" 9440 NEXT I 9450 RETURN 9500 REM "G£AF9500" 9510 XS-(XMlN+XMAX)/2 9520 YS-(YMIN+YMAX)/2 9540 SCREEN 2:CLS:KEY OFF 9550 VX-XMAX-XMIN:DX-400/VX:VY-YMAX-YMIN:DY-120/VY 9560 FOR IX-40 TO 440 9570 X-XMIN+ (IX-40) /400*VX 9580 GOSUB 3000 9590 IY-125-(Y-YMIN)*DY 9595 IF IY <5 OR IY>125 GOTO 9620 9600 IF IX-40 THEN PSET (IX,IY):GOTO 9620 9610 LINE-(IXJY) 9620 NEXT IX 9630 FOR IE-1 TON 9640 YE-125-(Y(IE)-YMIN)*DY 9650 IF YE<5 OR YEM 25 GOTO 9740 9660 XE-400*(X(IE)-XMIN)/VX+40 9670 PSET (XE.YE) 9680 ON MARKER GOTO 9690,9700,9710,9720,9730 9690 DRAW "U2D4U2L4R8L4":GOTO 9740 357
9700 DRAW "E2L4F4L4E3":GOTO 9740 9710 DRAW "E2D4H4D4E2L4R8L4":GOTO 9740 9720 DRAW "E2G4E2H2F4H2L4R8L4":GOTO 9740 9730 DRAW "U2G3R6H3D2" 9740 NEXT IE 9750 LINE D0,5)-D40,5) 9760 LINE D0,125)-D40,125) 9770 LINE D0,5)-D0,125) 9780 LINE D40,5)-D40,125) 9790 FOR Y-5 TO 125 STEP 12 9800 LINE D0,Y)-D3,Y) 9810 LINE D40,Y)-D37,Y) 9820 NEXTY 9830 LOCATE 1,2:PRINT YMAX 9840 LOCATE 9.2:PRINT YS 9850 LOCATE 16,2:PRINT YMIN 9860 FOR X-79 TO 440 STEP 40 9870 LINE (X, 125)-(X, 122) 9880 LINE(X+1,125)-(X+1,122) 9890 LINE (X,5)-(X,8) 9900 LINE(X+1,5)-(X+1,8) 9910 NEXTX 9920 LOCATE 17,4:PRINTXMIN 9930* LOCATE 17,29:PRINT XS 9940 LOCATE 17,54:PRINTXMAX 9950 A$-INPUT$A) 9960 END 10000 REM "GR10000" ПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА ФУНКЦИИ 10010 PRINT " ":PRINT " ГРАФИЧЕСКОЕ ИЗОБРАЖЕНИЕ РЕЗУЛЬТАТО AnnPOKCHMAUHH":PRINT " " 10020 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X:NXD-";NXD 10030 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y:NYD-";NYD 10040 NY-NYD+1 10050 CLS:SCREEN 2:DY-(YMAX-YMIN)/NYD:FOR 1-1 TO NY:Y-2O* 160/NYD*(I-l) 10060 LINEG6,Y)-(90,Y):NEXT I:NX-NXD+1 10070 FORI-1 TONX:X-84+480/NXD*(I-l):LINE (X,176)-(X,184):NEXTI 10080 LINE (84,12)-(84,188):LINE (84,180)-E68,180) 10090 R-23 10100 FORK-OTONYD 10110 LOCATE R,3 10120 SY-YMIN+DY*K:PRINT USING "#.##";SY 10130 R-R-20/NYD 10140 NEXT К 10150 C-7:DX-(XMAX-XMIN)/NXD 10160 FOR K-0 TO NXD:KEY OFF.LOCATE 24,C 10170 SX-XMIN+DX*K 101-80 PRINT USING "####.##";SX; 10190 C-C+60/(NXD+0) 10200 NEXT К 10210 VX-XMAX-XMIN:VY-YMAX-YMIN:XA-480/VX:YA-l 60/VY 10230 FOR IX-84 TO 564:X-XMIN+(IX-84)/480*VX 10240 GOSUB3000 10250 IY-180-(Y-YMIN)*YA 10260 IF IY<20 OR IY>180 THEN 10290 10270 IF IX-84 THEN PSET (IX,IY) 10280 LINE-(IXJY) 358
10290 NEXT IX 10300 FORIE-1TON 10310 YE-180-(Y(IE)-YMIN)*YA 10320 IF YE<20 OR YE>1180 GOTO 10410 10330 XE-480*(X(IE)-XMIN)/VX+84 10340 PSET (XE YE) 10350 ON MARKER GOTO 10360,10370,10380,10390,10400 10360 DRAW "U2D4U2L4R8L4":GOTO 10410 10370 DRAW "E2L4F4L4E3":GOTO 10410 10380 DRAW"E2D4H4D4E2L4R8L4":GOTO 10410 10390 DRAW "E2G4E2H2F4H2L4R8L4M:GOTO 10410 10400 DRAW U2G3R6H3D2" 10410 NEXT IE 10420 RETURN RUN МЕТОД ЛЕВЕНБЕРГА-МАРКВАРДТА НАЧАЛЬНЫЕ ПРИБЛИЖЕНИЯ ДЛЯ НЕИЗВЕСТНЫХ ПАРАМЕТРОВ А(П- 2 АB)- 3 « ИТЕРАЦИОННЫЙ ПРОЦЕСС » ИТЕРАЦИЯ ITR- 1 ОЦЕНКИ КОЭФФИЦИЕНТОВ НА ITR-й ИТЕРАЦИИ АA)- 2 А<2)- 3 ПАРАМЕТР ПОПРАВОК К ДИАГОНАЛЬНЫМ ЭЛЕМЕНТАМ Sl> .01 ОСТАТОЧНЫЕ СУММЫ КВАДРАТОВ НА ITR-й ИТЕРАЦИИ SQ- .8143998 SQL- .8143998 ИТЕРАЦИЯ ITR- 2 ОЦЕНКИ КОЭФФИЦИЕНТОВ НА ITR-й ИТЕРАЦИИ АA)- 1.865596 АB)- 4.92929035 ПАРАМЕТР ПОПРАВОК К ДИАГОНАЛЬНЫМ ЭЛЕМЕНТАМ SL- 9.999999E-04 ОСТАТОЧНЫЕ СУММЫ КВАДРАТОВ НА ITR-й ИТЕРАЦИИ SQ- .8143998 SQL- .2247178 ИТЕРАЦИЯ ITR- 3 ОЦЕНКИ КОЭФФИЦИЕНТОВ НА ITR-й ИТЕРАЦИИ АA)- 1.318778 АB)- 4.48226 ПАРАМЕТР ПОПРАВОК К ДИАГОНАЛЬНЫМ ЭЛЕМЕНТАМ SL- 9.999999E-Q5 ОСТАТОЧНЫЕ СУММЫ КВАДРАТОВ НА ITR-й ИТЕРАЦИИ SQ- .2247178 SQL- 1.612286E-02 359
ИТЕРАЦИЯ ITR- 4 ОЦЕНКИ КОЭФФИЦИЕНТОВ НА ITR-й ИТЕРАЦИИ АA)- 1.106954 АB)- 4.591769 ПАРАМЕТР ПОПРАЮК К ДИАГОНАЛЬНЫМ ЭЛЕМЕНТАМ Sir- 9.999999E-O6 ОСТАТОЧНЫЕ СУММЫ КВАДРАТОВ НА ITR-й ИТЕРАЦИИ SQ- 1.612286E-02 SQL- 1.275753Е-02 ИТЕРАЦИЯ ITR- 5 ОЦЕНКИ КОЭФФИЦИЕНТОВ НА ITR-й ИТЕРАЦИИ АA)- 1.242405 АB)- 4.44506 ПАРАМЕТР ПОПРАВОК К ДИАГОНАЛЬНЫМ ЭЛЕМЕНТАМ SLr 9.999999E-07 ОСТАТОЧНЫЕ СУММЫ КВАДРАТОВ НА ITR-й ИТЕРАЦИИ SQ- 1.275753E-02 SQL- 8.859303E-03 ИТЕРАЦИЯ ITR- 13 ОЦЕНКИ КОЭФФИЦИЕНТОВ НА ITR-й ИТЕРАЦИИ А(П- 1.178817 АB)- 4.489332 ПАРАМЕТР ПОПРАВОК К ДИАГОНАЛЬНЫМ ЭЛЕМЕНТАМ SLr 9.999999E-15 ОСТАТОЧНЫЕ СУММЫ КВАДРАТОВ НА ITR-й ИТЕРАЦИИ SQ- 4.006756E-03 SQL- 3.918765E-03 ИТЕРАЦИЯ ITR- 14 ОЦЕНКИ КОЭФФИЦИЕНТОВ НА ITR-й ИТЕРАЦИИ АA)- 1.160471 АB)- 4.506701 ПАРАМЕТР ПОПРАВОК К ДИАГОНАЛЬНЫМ ЭЛЕМЕНГГАМ SLr 9.999999Е-16 ОСТАТОЧНЫЕ СУММЫ КВАДРАТОВ НА ITR-й ИТЕРАЦИИ SQ- 3.918765E-03 SQL- 3.870887E-03 ОСТАТОЧНАЯ ДИСПЕРСИЯ S2- 2.150493Е-04 « СХОДИМОСТЬ ДОСТИГНУТА » ************************************************************* НОМЕР КОЭФФ. I КОЭФФИЦ. НЕЛИНЕЙН. МОДЕЛИ СТАНД. ОШ. ПАР., ОСН. НА ЛИНЕАРИЗ. РЕГРЕССИИ СТАНД. ОШ. ПАРАМ-ОВ, ОСНОВ. НА МАТР.2-Х ПРОИЗВ. 1 2 1.174837 4.49298 .0207223 1.975327Е-02 2.073422Е-02 1.986073Е-02 360
НОМЕР ТОЧКИ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ЗНАЧЕНИЕ АРГУМЕНТА 0 .1 .2 .3 .4 .5 .6 .7 .8 .9000001 1 1.1 1.2 1.3 .14 1.5 1.6 1.7 1.8 1.9 ЗНАЧЕНИЕ ФУНКЦИИ .9810675 .806218 .5074188 Л642839 -.1256463 -.3660641 -.4405436 -.4339694 -.363 -.1863265 -5.329696Е-02 6,447198Е-02 .1739345 .1817731 .209154 .1693387 9.093534Е-02 2.956098Е-02 -1.952586Е-02 -.0554527 ЗНАЧЕНИЕ МОДЕЛИ 1 .8009085 .4923119 .1553978 -.1403013 -.3475939 -.4458601 -.4393796 -.3513101 -.2153623 -6.722646Е-02 6.258029Е-02 .1533913 .1962288 .193052 .1540962 9.420748Е-02 2.907523Е-02 -2.790693Е-02 -6.768856Е-02 РАЗНОСТИ -1.893252Е-02 5.309582Е-03 1.510686Е-02 8.886О84Е-ОЗ 1.465496Е-02 -.0184702 5.316526Е-03 5.410195Е-03 -.0116899 2.903584Е-02 .0139295 1.891688Е-03 2.054317Е-02 -1.445569Е-02 1.610199Е-02 1.524256Е-02 -3.272139Е-03 4.857462Е-04 8.381071Е-03 1.223578Е-02 КОЭФФИЦИЕНТ ДЕТЕРМИНАЦИИ KD- .9985458 ИСПРАВЛ. КОЭФФИЦИЕНТ ДЕТЕРМИНАЦИИ KDI- .9984651 F-СТАТИСТИКА КОЭФ-ТА ДЕТЕРМИНАЦИИ FKD- 6180.079 КОЭФФ. МНОЖЕСТВЕННОЙ КОРРЕЛЯЦИИ R- ,9992726 КОЭФФИЦИЕНТ ДАРБИНА-УОТСОНА DW- 1.985144 ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. АРГУМ. ХМШДМАХ? 0,2 ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. ФУНКЦ. YMIN,YMAX? -1,1 Метод Ньютона-Гаусса сходится быстрее метода Левенберга- Марквардта, если функция Ф@) не имеет глубоких оврагов. Однако в том случае, когда функция Ф@) является сильно нелинейной, бо- более предпочтительным оказывается второй метод. Хотя метод Левен- берга-Марквардта сходится и не так быстро, как метод Ньютона-Гаусса, он дает хорошие результаты для функций, имею- имеющих глубокие овраги, в то время как метод Ньютона-Гаусса при ре- решении таких задач может вовсе расходиться. 4) Метод переменной метрики Одним из наиболее эффективных методов нелинейного оценива- оценивания параметров является метод переменной метрики, принадлежа- принадлежащей классу квазиньютоновских процедур. Этот метод часто также называют методом Дэвидона-Флетчера-Пауэла. В методе перемен- переменной метрики направление поиска на i-й итерации определяется с по- помощью вектора dx,= - A gradO^0), где Д — симметричная, положительно определенная матрица, аппроксимирующая матрицу 361
1 0 -1 гЧ ■ ■ ■ в • 1 1 \ 1 1 1 1 I 1 / 1 1 *** г 1 1 1 i 1 1 а ■ ■ ■ ■ ■ 1 1 в 1 2 Рис. 3.24. Аппроксимация с помощью нелинейной модели у - е х[ tcos(jc2t) значе ний затухающей косинусоиды тестовой задачи На следующей итерации матрица Л+i представляется в виде суммы матрицы Л и двух симметричных матриц, каждая из ко- которых имеет ранг, равный единице. Предположим, что функция Ф@) является дифференцируемой по неизвестным параметрам. Сущность алгоритма переменной мет- метрики заключается в следующем. 1) Начальный этап. Пусть е > О — константа критерия прерыва- прерывания вычислений, Ао — начальная положительно определенная мат- матрица, &0) — начальное приближение, go = grad Ф(^0)). 2) Основной этап, а) В направлении di = — A grad Ф(^°) нахо- находится точка/)/ минимума функции <р(р) = Ф(^0 + pdi). б) С помощью/)/, найденного путем минимизации функции <р(р), определяется следующее приближение бР+1) = &*> + рЖ . C.6.24) в) В точке ^/+1) вычисляются компоненты вектора градиента. Если 11 grad0@(/+1))l I < e, то вычисления прекращаются; в про- противном случае определяются разности 1) - бР> = grad Ф@°Ч1)) - grad г, = C.6.25) 362
и находится новая матрица А i+i = At Ajgjgj Aj г) Параметр i увеличивается на единицу и осуществляется пере- переход к пункту а). Если функция Ф(в) является квадратичной, метод переменной метрики сходится за к шагов. В качестве начального приближения Ао матрицы Н~х (в) можно взять единичную матрицу. При нелинейном оценивании параметров методом переменной метрики на некотором шаге итерационного процесса может возник- возникнуть ситуация, когда матрица Л становится плохо обусловленной, или же для нее нарушается условие положительной определенности. Причиной этого может быть неудачный выбор начального приближе- приближения, а также наличие ошибок округлений. Для преодоления этих трудностей необходимо повысить точность вычислений, а также пе- периодически обновлять итерационный процесс. При обновлении про- процесса вычислений приближения (fil\ для которого обнаружена вырожденность матрицы Л, в качестве начальной матрицы Ло выби- выбирается единичная матрица, после чего вычисления продолжаются. Алгоритм оценивания параметров нелинейной модели, в котором для минимизации суммы квадратов отклонений используется метод переменной метрики, реализован в программе NREG10W1. При от- отладке этой программы в качестве тестовой рассматривалась функция вида C.4.2). В подпрограмме, заданной операторами с номерами 8000—8070, вводятся N - 11 ее значений с шагом Ат = 0.5. Ниже представлены листинг программы NREG10W1, а также резуль- результаты ее выполнения при оценивании параметров модели у = х\/(\ + ДС2Т) + ехр(-дсзт) cos(jc4t). График, на котором показаны значения тестовой функции, а также аппроксимирующая функция, представлен на рис. 3.25. 10 REM'NREGIOWI" 20 REM******************************************************************* 25 REM*** ПРОГРАММА ОЦЕНИВАНИЯ ВЕКТОРА X ПАРАМЕТРОВ 27 REM*** НЕЛИНЕЙНОЙ МОДЕЛИ 30 REM*** YU-F(XU;X) МЕТОДОМ ДЭВИДОНА-ФЛЕТЧЕРА-ПАУЭЛА 32 REM*** (ПЕРЕМЕННОЙ МЕТРИКИ) 35 REM*** ОДНОМЕРНАЯ МИНИМИЗАЦИЯ ПО НАПРАВЛЕНИЮ 37 REM*** ОСУЩЕСТВЛЯЕТСЯ МЕТОДОМ 40 REM*** КВАДРАТИЧНОЙ ИНТЕРПОЛЯЦИИ 45 кем************************************************************** 50 REM ВВОД НАЧАЛЬНЫХ ДАННЫХ ОСУЩЕСТВЛЯЕТСЯ В ПОДПРОГРАММЕ,ПЕРВЫЙ ОПЕРАТОР 60 REM КОТОРОЙ ИМЕЕТ НОМЕР 8000 70 DIM XB0),HB0,20),DGB0),VB0),XVB0) 80 DIMPB0),PVB0),TXB0),DQB0),ZGB0) 85 DIMX0B0),PXB0),XRA00),YRA00),YMA00) 100 GOSUB8000 363
110 GOSUBIOOO 210 PRINT 220 PRINT rtHOMEP ТОЧКИ ЗНАЧ.АРГУМ. ЗНАЧ. ФУНКЦ. ЗНАЧ МОДЕЛИ РАЗНОСТИ" 230 PRINT" 240 FOR I-l TO N 250 DEI^YR(I)-YMd) 260 PRINTI,XR(I),YR(I),YM(I),DEL 270 NEXT I 280 PRINT" 290 PRINT 320 PRINT "♦♦♦*♦♦*♦♦*♦♦*♦♦♦*♦♦♦♦♦♦♦♦*♦***♦♦♦•♦♦*♦*♦♦♦♦♦♦♦♦♦*♦**♦♦*****♦**•• 330 PRINTrPRINT 340 INPUT "ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. АРГУМЕНТА XMIN,XMAX";XMIN,XMAX 350 INPUT "ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. ФУНКЦИИ YMIN,YMAX";YMIN,YMAX 360 PRINT 370 REM GOSUB 9000 380 MARKER-2:GOSUB 9500 390 REM MARKER-2:GOSUB 10000 500 END 1000 REM ПОДПРОГРАММА ОЦЕНИВАНИЯ ПАРАМЕТРОВ НЕЛИНЕЙНОЙ МОДЕЛИ 1010 REM МЕТОДОМ ДЭВИДОНА-ФЛЕТЧЕРА-ПАУЭЛА 1020 PRINT:PRINT:PRINT 1040 PRINT" НЕЛИНЕЙНОЕ ОЦЕНИВАНИЕ МЕТОДОМ ДЭВИДОНА-ФЛЕТЧЕРА-ПАУЭЛА" 1050 PRINT " (С КОНЕЧНОРАЗНОСТНЫМИ ОЦЕНКАМИ ПРОИЗВОДНЫХ)" 106 0PRINT "♦****♦**♦♦*♦♦♦♦♦♦♦♦♦♦♦♦♦♦**♦♦♦*♦*♦♦*♦*♦*♦♦♦*♦♦♦♦♦♦♦♦**♦*" 1065 PRINTrPRINT "ЧИСЛО ТОЧЕК N-";N 1070 PRINT:PRINT "ЧИСЛО ОЦЕНИВАЕМЫХ ПАРАМЕТРОВ М-";М 1080 PRINTrPRINT "КОНСТАНТЫ КРИТЕРИЯ ПРЕРЫВАНИЯ ВЫЧИСЛЕНИЙ" 1090 PRINT "EPS1-";EPS1;" EPS2-";EPS2 1100 PRINT" 1110 PRINT " НАЧАЛЬНЫЕ ПРИБЛИЖЕНИЯ ПАРАМЕТРОВ" 1120 PRINT " - " ИЗО FOR 1-1 ТОМ 1140 PRINT" X(";I;")-";X(I) 1150 NEXT I 1160 GOSUB 3000 1170 PRINT "НАЧАЛЬНОЕ ЗНАЧЕНИЕ СУММЫ КВАДРАТОВ ОТКЛОНЕНИЙ Y(X1 ,...,XM)-";Y 1180 PRINT " 1190 FOR Ы ТОМ 1200 FORJ-1TOM 1210 H(U)-0 1220 NEXTJ 1230 H(I,I)-1 1240 NEXT I 1250 ITR-l:NVF-0 1260 FOR I-l TOM 1270 V(I)-X(I):TX(I)-X(I) 1280 NEXT I 1290 PRINTrPRINT" 1300 PRINT" ИТЕРАЦИЯ ITR-";ITR 364
1310 PRINT" " 1320 FORЫ ТОМ 1330 PRINTHXC;ir)-";X(I) 1340 NEXT I 1350 GOSUB3000 1360 PRINT ХУММА КВАДРАТОВ ОТКЛОНЕНИЙ Y(X1 XM)-";Y 1370 YT-Y 1380 GOSUB 6000:GOSUB 5000 1390 GSUM14JSUM 1400 FORI-1TOM 1410 ZGd)-DG(I) 1420 P(I)-0 1430 FORJ-1TOM 1440 Pd)-Pd)-H(I,J)*DG(J) 1450 NEXTJ 1460 NEXT I 1470 DGP-0 1480 FORЫ TOM 1490 DGP-DGP+DGd)*Pd) 1500 NEXT I 1510 IF DGP<0 GOTO 1630 1520 HX-ABSB*YT/DGP) 1530 IF HX>1 THEN HX-1 1540 FORI-1TOM 1550 X(I)-Vd)-HX*DGd) 1560 Vd)-X(I) 1570 NEXT I 1580 GOSUB 3000 1590 YT-Y 1600 GOSUB 6000:GOSUB 5000 1610 GSUM1-GSUM 1620 GOTO 1470 1630 HX-ABSB*YT/DGP) 1640 IF HX>1 THEN HX-1 1650 DH-HX 1660 HP-DH 1670 FORM TOM 1680 XV(I)-V(IHHP*P(I) 1690 X(I)-XVd) 1700 NEXT I 1710 GOSUB 3000 1720 YV-Y 1730 GOSUB 6000:GOSUB 5000 1740 GSUM2-GSUM 1750 DGPS-0 1760 FORI-1TOM 1770 DGPS-DGPS+DG(I)*P(I) 1780 NEXT I 1790 IF DGPS>0 OR YV>YT GOTO 1810 1800 DH-2*DH:GOTO 1660 1810 WS-3*(YT-YV)/DH 1820 WS-WS+DGP+DGPS 1830 WP-WS/V2-DGP*DGPS 1840 IF WP<0 THEN WP-0 1850 W-SQR(WP) 1860 QV-DH* A - (DGPS+W-WS) / (DGPS-DGP+2*W)) 1870 FORM TOM 1880 X(I)-V(I)+QV*P(I) 365
1890 NEXT I 1900 GOSUB3000 1910 YR-Y 1920 GOSUB 6000:GOSUB 5000 1930 GSUM3-GSUM 1940 GRAD-0 1950 FOR 1-1 TO M 1960 GRAD-GRAI>fDG(I)*P(I) 1970 NEXT I 1980 IF Y<-YT AND Y<-YV GOTO 2120 1990 IF GRAD>0 GOTO 2080 2000 DH-DH-QV 2010 FORI-1TOM 2020 Vd)-X(I) 2030 NEXT I 2040 YP-Y 2050 DGP-GRAD 2060 GSUM1-GSUM 2070 GOTO 1810 2080 DH-QV 2090 FOR 1-1 TO M 2100 XVd)-X(I) 2110 NEXT I 2120 DQZf4) 2130 PZG-0 2140 P2-0 2150 FORI-1TOM 2160 ZG(I)-DG(I)-ZG(I) 2170 PV(I)-X(I)-TX(I) 2180 NEXT I 2190 FORI-1TOM 2200 DQ(I)-0 2210 FORJ-1TOM 2220 DQ(I)-DQ(I)+H(I,J)*ZG(J) 2230 NEXTJ 2240 DQZH3QZ+DQ(I)*ZG(I) 2250 PZG-PZG+PV(I)*ZG(I) 2260 Рг-Рг+РУО)^ 2270 NEXT I 2280 IF DQZH) OR PZG-0 GOTO 2340 2290 FOR 1-1 TO M 2300 FORJ-1TOM 2310 H(I,J)-H(I,J)-DQ(I)*DQ<J)/DQZ+PV(I)*PV(J)/PZG 2320 NEXTJ 2330 NEXT I 2340 IF SQR(P2)<EPS1 OR GSUM3<EPS2 GOTO 2370 2350 PRINT " 2360 ITR-ITR+l:GOTO1260 2370 PRINT "***************♦***♦♦*♦♦♦*♦♦**♦♦♦♦" 2380 PRINT H < СХОДИМОСТЬ ДОСТИГНУТА >" 2390 PRINT "**********************************" 2400 PRINT "ОЦЕНКИ ПАРАМЕТРОВ" 2405 PRINT " " 2410 FORI-1TOM 2420 PRINT fX(";I;")-";X(I) 2430 NEXT I 2435 PRINT " " 2440 GOSUB 3000 366
2450 PRINT "МИНИМУМ СУММЫ КВАДРАТОВ ОТКЛОНЕНИЙ Y(X1 ХМ)- ";Y 2460 PRINT "ЧИСЛО ИТЕРАЦИЙ ITR-";ITR 2470 PRINT "ЧИСЛО ВЫЧИСЛЕНИЙ ФУНКЦИИ NVF-";NVF 2480 PRINT "ft***************************************************" 2490 RETURN 3000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ СУММЫ КВАДРАТОВ ОТКЛОНЕНИЙ ЗОЮ Y-0 3020 FOR Ш-1 ТО N 3030 XU-XR(IR):GOSUB3500:YM(IR)-YU 3040 Y-Y+(YR(IR)-YM(IR))^2 3050 NEXTIR 3060 RETURN 3500 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ АППРОКСИМИРУЮЩЕЙ ФУНКЦИИ 3510 YU-XA)/A+X<2)*XU)+EXP(-X<3)*XU)*COS(XD)*XU) 3520 NVF-NVF+1 3530 RETURN 5000 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ СУММЫ КВАДРАТОВ ЧАСТНЫХ ПРОИЗВОДНЫХ 5010 GSUM-0 5020 FOR 1-1 ТО М 5030 GSUM-GSUM+DGd)^ 5040 NEXTI 5045 GSUM-SQR(GSUM) 5050 RETURN 6000 REM ПОДПРОГРАММА ОЦЕНИВАНИЯ ЗНАЧЕНИЙ ЧАСТНЫХ ПРОИЗВОДНЫХ 6020 FOR 1-1 ТО М 6030 XO(I)-Xd) 6040 NEXTI 6050 FOR 1-1 TO M 6060 PX(I)-ABS(X(I)/10000)+.0000001 6070 X(I)-X(I)+PX(I) 6080 GOSUB 3000:YI-Y 6085 X(I)-X(I)-2*PX(I) 6087 GOSUB 3000 6089 Xd)-XO(I) 6090 DG(I)-(YI-Y)/PX(I)/2 6100 NEXTI 6110 FORI-1TOM 6120 X(I)-X0(I) 6130 NEXTI 6140 RETURN 8000 REM ПОДПРОГРАММА ВВОДА НАЧАЛЬНЫХ ДАННЫХ 8005 N-ll 8010 М-4 8015 ХA)-1:ХB)-2:ХC)-2:ХD)-2 8020 IP-1 8025 EPS 1-.0005 8030 EPS2-.0001 8035 FOR 1-1 TO N 8040 XR(I)-(I-l)*.5:YR(I)-2/(l+3*XR(I))+EXP(-.7iXR(I))*COSC*XR(D) 8050 NEXTI 8070 RETURN 9000 REM "GR9000": ПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА ФУНКЦИИ 367
9010 PRINT " ":PRINT " ГРАФИК НЕЛИНЕЙНОЙ МОДЕЛШРНЮТ 9020 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X:NXD-";NXD 9030 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y:NYD-";NYD 9050 NY-NYD+1 9060 CLS:SCREEN2:DY-(YMAX-YMIN)/NYD:FORI-1 ТО NY:Y-2Of 160/NYD* (I-1) 9070 LINE G4,Y) - E74,Y) :NEXT I:NX-NXD+1 9080 FORI-1 TONX:X-84+480/NXD*(I-l):LINE (X,12)-(X,188):NEXTI 9090 R-23 9100 FORK-0TONYD 9110 LOCATE R 1 9120 SY-YMIN+DY*K:PRINT USING M#.###";SY 9130 R-R-20/NYD 9135 NEXT К 9140 C-7:DX-(XMAX-XMIN)/NXD 9150 FOR K-0 TO NXD:KEY OFF:LOCATE 24,C 9160 SX-XMIN+DX*K 9170 PRINT USING "####.##";SX; 9180 C-C+60/(NXI>K» 9185 NEXT К 9310 XA-E64-84) / (XMAX-XMIN):YA-A80-20) / (YMAX-YMIN) 9320 FOR IX-84 TO 564:XU-XMIN+(IX-84)/480* (XMAX-XMIN) 9330 GOSUB3500 9340 IY-180-(YU-YMIN)*YA 9350 IFIY<20ORlY>180THEN9370 9360 IF IX-84 THEN PSET (IX,IY) 9365 LINE-(IXJY) 9370 NEXT IX 9380 FOR 1-1 TO N 9390 YG-180-(YR(I)-YMIN)*YA 9400 IF YG<20 OR YG>180 GOTO 9440 9410 XG-480* (XR (I) -XMIN) / (XMAX-XMIN)+84 9420 PSET (XG,YG) 9430 DRAW "E2G4E2H2F4H2E2D4L4U4R4G2" 9440 NEXT I 9450 RETURN 9500 REM "GRAF95(XT 9510 XS-(XMIN+XMAX)/2 9520 YS-(YMIN+YMAX)/2 9540 SCREEN 2:CLS:KEY OFF 9550 VX-XMAX-XMIN.DX-400/VX:VY-YMAX-YMIN:DY-120/VY 9560 FOR IX-40 TO 440 9570 XU-XMIN+(IX-40)/400*VX 9580 GOSUB 3500 9590 IY-125-(YU-YMIN)*DY 9595 IF IY<5 OR IY>125 GOTO 9620 9600 IF IX-40 THEN PSET (IX,IY):GOTO 9620 9610 LINE-(IXJY) 9620 NEXT IX 9630 FOR IE-1 TO N 9640 YE-125-(YR(IE)-YMIN)*DY 9650 IF YE<5 OR YE>125 GOTO 9740 9660 XE-400*(XR(IE)-XMIN)/VX+40 9670 PSET (XE.YE) 9680 ON MARKER GOTO 9690,9700,9710,9720,9730 9690 DRAW "U2D4U2L4R8L4":GOTO 9740 9700 DRAW "E2L4F4L4E3":GOTO 9740 9710 DRAW "E2D4H4D4E2L4R8L4":GOTO 9740 368
9720 DRAW "E2G4E2H2F4H2L4R8L4":GOTO 9740 9730 DRAW "U2G3R6H3D2" 9740 NEXT IE 9750 LINE D0,5)-D40,5) 9760 UNE D0,125) -D40,125) 9770 LINE D0,5)-D0,125) 9780 UNE D40,5) -D40,125) 9790 FOR Y-5 TO 125 STEP 12 9800 LINE D0,Y)-D3,Y) 9810 LINED40,Y)-D37,Y) 9820 NEXTY 9830 LOCATE 1,2:PRINT YMAX 9840 LOCATE 9.2:PRINTYS 9850 LOCATE 16,2:PRINT YMIN 9860 FOR X-79 TO 440 STEP 40 9870 LINE (X, 125)-(X, 122) 9880 LINE(X+1,125)-(X+1,122) 9890 LINE (X,5)-(X,8) 9900 LINE(X+1,5)-(X+1,8) 9910 NEXTX 9920 LOCATE 17,4:PRINTXMIN 9930 LOCATE 17,29:PRINTXS 9940 LOCATE 17,54:PRINTXMAX 9950 A$-INPUT$A) 9960 END 10000 REM "GR10000" ПОДПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА ФУНКЦИИ 10010 PRINT " ":PRINT и ГРАФИЧЕСКОЕ ИЗОБРАЖЕНИЕ РЕЗУЛЬТАТОВ АППРОКСИМАЦИИ':PRINT " " 10020 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ X:NXD-";NXD 10030 INPUT "ВВЕДИТЕ ЧИСЛО ДЕЛЕНИЙ ОСИ Y:NYD-f;NYD 10040 NY-NYD+1 10050 CLS:SCREEN 2:DY-(YMAX-YMIN)/NYD:FOR 1-1 TO NY:Y-2Of 160/NYD* (I-1) 10060 LINEG6,YM90,Y):NEXT I:NX-NXD+1 10070 FORI-1 TONX:X-84+480/NXD*(I-l):LINE (X,176)-(X,184):NEXTI 10080 LINE (84,12)-(84,188):LINE (84,180)-E68,180) 10090 R-23 10100 FORK-0TONYD 10110 LOCATE R 3 10120 SY-YMIN+DY*K:PRINT USING M#.##";SY 10130 R-R-20/NYD 10140 NEXT К 10150 C-7:DX-(XMAX-XMIN)/NXD 10160 FOR K-0 TO NXD:KEY OFF:LOCATE 24,C 10170 SX-XMIN+DX*K 10180 PRINT USING "####.##";SX; 10190 C-C+#)/(NXI>K)) 10200 NEXT К 10210 VX-XMAX-XMIN:VY-YMAX-YMIN:XA-480/VX:YA-160/VY 10230 FOR IX-84 TO 564:XU-XMIN+(IX-84)/480*VX 10240 GOSUB3500 10250 IY-180-(YU-YMIN)*YA 10260 IF IY<20 OR IY>180 THEN 10290 10270 IF IX-84 THEN PSET (IX,IY) 10280 LINE-(IXJY) 10290 NEXT IX 10300 FORIE-1TON 369
10310 YE-180-(YR(IE)-YMIN)*YA 10320 IFYE<20ORYE>1180GOTO 10410 10330 XE-480*(XR(IE)-XMIN)/VX+84 10340 PSET (XE,YE) 10350 ON MARKER GOTO 10360,10370,10380,10390,10400 10360 DRAW "U2D4U2L4R8L4":GOTO 10410 10370 DRAW "E2L4F4L4E3":GOTO 10410 10380 DRAW tE2D4H4D4E2UR8U':GOTO 10410 10390 DRAW'E2G4E2H2F4H2UR8L4':GOTO 10410 10400 DRAW "U2G3R6H3D2" 10410 NEXT IE 10420 RETURN RUN НЕЛИНЕЙНОЕ ОЦЕНИВАНИЕ МЕТОДОМ ДЕВИДОНА-ФЛЕТЧЕРАН1АУЭЛА (С КОНЕЧНОРАЗНОСТНЫМИ ОЦЕНКАМИ ПРОИЗВОДНЫХ) ЧИСЛО ТОЧЕК N- 11 ЧИСЛО ОЦЕНИВАЕМЫХ ПАРАМЕТРОВ М- 4 КОНСТАНТЫ КРИТЕРИЯ ПРЕРЫВАНИЯ ВЫЧИСЛЕНИЙ EPS1- .0005 EPS2- .0001 НАЧАЛЬНЫЕ ПРИБЛИЖЕНИЯ ПАРАМЕТРОВ Х( 1 )- 1 Х( 2 )- 2 Х( 3 )- 2 Х( 4 )- 2 НАЧАЛЬНОЕ ЗНАЧЕНИЕ СУММЫ КВАДРАТОВ ОТКЛОНЕНИЙ Y(X1 ХМ)- 1.247214 ИТЕРАЦИЯ ITR- 1 Х( 1 )- 1 Х( 2 )- 2 Х( 3 )- 2 Х( 4 )- 2 СУММА КВАДРАТОВ ОТКЛОНЕНИЙ Y(X1,...,XM)- 1.2472U ИТЕРАЦИЯ ITR- 2 Х( 1 )- 1.703004 Х( 2 )- 1.976069 Х( 3 )- 1.989879 Х( 4 )- 2.01258 СУММА КВАДРАТОВ ОТКЛОНЕНИЙ Y(X1 ХМ)- .4654947 ИТЕРАЦИЯ ITR- 3 Х( 1 )- 2.016699 Х( 2 )- 3.379981 Х( 3 )- 1.892736 Х( 4 )- 2.926317 370
СУММА КВАДРАТОВ ОТКЛОНЕНИЙ Y(X1 ХМ)- .1763766 ИТЕРАЦИЯ ITR- 9 Х( 1 )- 2.000173 Х( 2 )- 2.9719 Х( 3 )- .7034938 Х( 4 )- 2.997542 СУММА КВАДРАТОВ ОТКЛОНЕНИЙ Y(X1 ХМ)- 8.582566Е-05 ИТЕРАЦИЯ ITR- 10 Х( 1 )- 1.999917 Х( 2 )- 2.999165 Х( 3 )- .6996589 Х( 4 )- 3.000079 СУММА КВАДРАТОВ ОТКЛОНЕНИЙ Y(X1 ХМ) 1.070219Е-07 « СХОДИМОСТЬ ДОСТИГНУТА » ************************ ОЦЕНКИ ПАРАМЕТРОВ X( X( X( X( 1 2 3 4 )- 1.999964 )- 2.999942 )- .7000069 )- 2.999975 МИНИМУМ СУММЫ КВАДРАТОВ ОТКЛОНЕНИЙ Y(X1 ХМ)- 1.721271Е-09 ЧИСЛО ИТЕРАЦИЙ ITR- 10 ЧИСЛО ВЫЧИСЛЕНИЙ ФУНКЦИИ NVF- 4862 НОМЕР ТОЧКИ 1 2 3 4 5 6 7 8 9 10 11 ЗНАЧЕНИЕ АРГУМЕНТА 0 .5 1 1.5 2 2.5 3 3.5 4 4.5 5 ЗНАЧЕНИЕ ФУНКЦИИ 3 .8498477 8.384258Е-03 .289871 .5224895 .2955303 8.842622Е-02 .1328773 .205161 .1634247 .1020594 ЗНАЧЕНИЕ МОДЕЛИ 2.999964 .8498513 8.387775Е-03 .2898579 .5224823 .2955394 8.843232Е-02 .1328715 .2051563 .1634278 . 1020627 РАЗНОСТИ 3.576279Е-05 -3.635883Е-06 -3.516674Е-06 1.305342Е-05 7Л52558Е-06 -9.030104Е-06 -6.102026Е-06 5.781651Е-06 4.708767Е-06 -3.144145Е-06 -З.ЗОО6О7Е-О6 ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. АРГУМ. XMIN.XMAX? 0,5 ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. ФУНКЦ. YMIN,YMAX? 0,3 371
W i 1.5 0 v II \ :\ ■ \ ■ \ к Ny I / r 1 г 1 1 1 Г Г 1 V < ■ 1 а e 2.5 5 Рис. 3.25. Аппроксимация с помощью нелинейной модели функции методом переменной метрики -11 значений тестовой Программа NREG10W1 использовалась при оценивании пара- параметров нелинейной модели Т = 30*. + х2е-0ОО5ХзН , аппроксимирующей зависимость тяги Т несущего винта вертолета Ми-6 от высоты Н висения у земли. Значения тяги и высоты заданы в таблице 3.3. Таблица 3.3 я т 5 37.5 10 35.8 15 34.5 20 33.8 30 33.2 Аналитическое выражение аппроксимирующей функции, а так- также начальные данные вводятся в программу с помощью подпрограмм 3500 REM ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ АППРОКСИМИРУЮЩЕЙ ФУНКЦИИ 3510 YU-30*X(l)+XB)*EXP(-.005*XC)*XU) 3520 NVF-NVF+1 3530 RETURN 372
8000 REM ПОДПРОГРАММА ВВОДА НАЧАЛЬНЫХ ДАННЫХ 8005 N-5 8010 М-3 8015 ХA)->1:Х<2)-5:ХC)-1 8020 IP-1 8025 EPS 1-.0005 8030 EPS2-.0001 8035 FOR I-l TO N 8040 READXR(I),YR(I) 8050 DATA 537.5 8060 DATA 10,35.8 8070 DATA 15,34.5 8080 DATA 20,33.8 \ 8090 DATA 30,33.2 8100 NEXT I 8170 RETURN Ниже представлены результаты выполнения программы NREGlOWl для рассматриваемой задачи. График, на котором изо- изображены значения тяги и высоты, а также полученной в результате вычислений нелинейной модели, содержится на рис. 3.26. НЕЛИНЕЙНОЕ ОЦЕНИВАНИЕ МЕТОДОМ ДЕВИДОНА-ФЛЕТЧЕРАЧТАУЭЛА (С КОНЕЧНОРАЗНОСТНЫМИ ОЦЕНКАМИ ПРОИЗВОДНЫХ) ЧИСЛО ТОЧЕК N- 5 ЧИСЛО ОЦЕНИВАЕМЫХ ПАРАМЕТРОВ М- 3 КОНСТАНТЫ КРИТЕРИЯ ПРЕРЫВАНИЯ ВЫЧИСЛЕНИЙ EPS1- .0005 EPS2- .0001 НАЧАЛЬНЫЕ ПРИБЛИЖЕНИЯ ПАРАМЕТРОВ Х( 1 )- 1 Х( 2 )- 5 Х< 3 )- 1 НАЧАЛЬНОЕ ЗНАЧЕНИЕ СУММЫ КВАДРАТОВ ОТКЛОНЕНИЙ Y(X1,...,XM)- 9.73361 ИТЕРАЦИЯ ITR- 1 Х( 1 )- 1 Х( 2 )- 5 Х( 3 )- 1 СУММА КВАДРАТОВ ОТКЛОНЕНИЙ Y(X1 ХМ)- 9.73361 ИТЕРАЦИЯ ITR- 2 Х( 1 )- 1.011339 Х( 2 )- 5.000404 Х( 3 )- 1.000119 373
СУММА КВАДРАТОВ ОТКЛОНЕНИЙ Y(X1,...,XM)- 9.154562 ИТЕРАЦИЯ ITR- 3 Х( 1 )- 1.059164 Х( 2 )- 7.131978 Х( 3 )- 11.15048 СУММА КВАДРАТОВ ОТКЛОНЕНИЙ Y(X1,...,XM)- .3502856 ИТЕРАЦИЯ ITR- 10 Х( 1 )- 1.090828 Х( 2 )- 7.785569 Х( 3 )- 19.28224 СУММА КВАДРАТОВ ОТКЛОНЕНИЙ Y(X1 ХМ)- 2.087501Е-02 ИТЕРАЦИЯ ITR- И Х( 1 )- 1.090841 Х( 2 )- 7.787446 Х( 3 )- 19.28703 СУММА КВАДРАТОВ ОТКЛОНЕНИЙ Y(X1 ХМ)- 2.087385Е-02 ИТЕРАЦИЯ ITR- 12 Х( 1 )- 1.090837 Х( 2 )- 7.787013 Х( 3 )- 19.28414 СУММА КВАДРАТОВ ОТКЛОНЕНИЙ Y(X1 ХМ)- 2.087413Е-02 « СХОДИМОСТЬ ДОСТИГНУТА » ************************ ОЦЕНКИ ПАРАМЕТРОВ Х( 1 )- 1.090837 Х( 2 )- 7.787028 Х( 3 )- 19.28413 МИНИМУМ СУММЫ КВАДРАТОВ ОТКЛОНЕНИЙ Y(X1 ХМ)- 2.08739Е-02 ЧИСЛО ИТЕРАЦИЙ ITR- 12 ЧИСЛО ВЫЧИСЛЕНИЙ ФУНКЦИИ NVF- 2000 **************************************************************************** 374
НОМЕР ТОЧКИ 1 2 3 4 5 ЗНАЧЕНИЕ АРГУМЕНТА 5 10 15 20 30 ЗНАЧЕНИЕ ФУНКЦИИ 37.5 35.8 34.5 33.8 33.2 ЗНАЧЕНИЕ МОДЕЛИ 37.53346 35.69418 34.55846 33.85717 33.15674 РАЗНОСТИ -.0334549 .1058197 -5.845642Е-02 -5.716706Е-02 4.326248Е-02 ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. АРГУМ. ХМШ,ХМАХ? 0,30 ВВЕДИТЕ МИНИМ. И МАКСИМ. ЗНАЧЕН. ФУНКЦ. YMIN,YMAX? 30,45 37.5 30 0 1 ■ ■ I ■ ■ ■ 1 1 1 1 1 1 1 1 1 1 "^-^ 1 1 X ba 1 1 1 1 a ■ I ■ ■ 1 15 30 Рис. 3.26. Аппроксимация с помощью нелинейной модели N - 5 пар значени (tf/, Tj) с помощью метода переменной метрики 37
3.7. СТАТИСТИЧЕСКИЕ ХАРАКТЕРИСТИКИ НЕЛИНЕЙНЫХ ОЦЕНОК ПАРАМЕТРОВ Методы, рассмотренные в предыдущих разделах этой главы, по- позволяют находить только точечные оценки параметров нелинейных моделей. При интерпретации результатов обработки необходимо также иметь представление о статистических характеристиках пол- полученных оценок и соответствующих им моделей. Задача исследова- исследования статистических свойств нелинейных оценок в теоретическом и вычислительном аспектах значительно сложнее соответствующей задачи для линейных оценок. При рассмотрении нелинейного метода наименьших квадратов (НМНК) необходимо учитывать тот факт, что в отличии от оценок параметров линейных моделей, нелинейные оценки могут не существовать с положительной вероятностью [6,11,13,14,29]. Например, если все yj < 0, то оценка параметра в модели yj = е~9х* + tj, при условии что — <» < в < <», не существует. Если же sj E N@, о*), то с положительной вероятностью оценка это- этого параметра не существует. Ясно, что при наличии такой ситуации сама постановка задачи об исследовании характеристик, присущих обычному МНК, теряет свой смысл. Однако если множество £>, кото- которому принадлежит вектор 0, является ограниченным и замкнутым (компактным), то оценка НМНК всегда существует. Более того, она является непрерывной функцией от экспериментальных данных. Одним из важнейших свойств статистической оценки является ее состоятельность. При увеличении числа экспериментальных значе- значений состоятельная оценка стремится к истинному значению пара- параметра модели. Условия, при которых оценки НМНК являются состоятельными, были сформулированы в работах А. Н. Колмогорова. Пусть функция Дх; в) непрерывна на множестве D, а случайные ошибки г; независимы и одинаково распределены. Предположим, что существует предел <р(ву А) = lim j: 2 U(xf; в) - f(Xj; A) f , C.7.1) причем сходимость в C.7.1) равномерная. Тогда если равенство (р(в> А) = 0 возможно в том и в только в том случае, когда в = А, то оценка 6n(Y) является строго состоятельной, т.е. Qn{Y) -* в* с вероят- вероятностью 1. Предположим, что f(x\ в) дважды дифференцируема по неизве- неизвестным параметрам, а также выполняются условия d2f(x; в) двгдвр 376 С, г, р = 1,..., * C.7.2)
1 v. df(xj; в) dfixr, в) 2 C.7.3) г, р = 1,..., * равномерно по в при N-» <», где С — некоторая постоянная, а В(в*) = |2?гр@*)] — невырожденная матрица размера кхк. Тогда если условия C.7.1)—C.7.3) выполняются, то нелинейная оценка вектора неизвестных параметров является ассимптотически нор- нормальной, т. е. при больших N C.7.4) если оценка 0л{У) лежит в достаточно малой окрестности в*, В 1(в*) — матрица, обратная к матрице В (в*). Оценки НМНК зависимы между собой в статистическом смысле. Приближенная матрица ковариапий этих оценок имеет вид cov {&} « s\PTP)~l = s: Л V 2 j; 6) df(Xj; двг дв, -l C.7.5) где ?ш 1 C.7.6) — состоятельная оценка дисперсии ошибок эксперимента с?. Оче- Очевидно, что матрица ковариаций C.7.5) совпадает с матрицей ковари- аций оценок коэффициентов линеаризованной модели C.7.7) r=l Оценки параметров линейной модели, полученные с помощью метода наименьших квадратов, являются несмещенными. Это свой- свойство не выполняется для оценок НМНК. Бокс доказал, что сцрщенщ вектора рцено^с параметров нелинейной модели равно = - ~ где dT = (d\,..., (In) — вектор, компоненты которого равны C.7.8) j = a2 tr / = 1,..., C.7.9) 377
H{xj\ 8) — матрица Гессе функции f(x; §) в точке лу. Смещение ха- характеризует систематическую ошибку опенки. Если модель является линейной, то элементы матрицы H(xj;.p) равны нулю, и поэтому смещения в оценках также равны нулю. Если ошибки эксперимента е, нормально распределены, то оцен- оценки НМНК совпадают с оценками максимального правдоподобия. По- Поэтому оценки НМНК являются ассимптотически эффективными. Таким образом, при больших N оценки нелинейного метода наи- наименьших квадратов являются несмещенными, состоятельными, нор- нормально распределенными и эффективными оценками неизвестных параметров модели. После определения точечных опенок параметров нелинейной модели осуществляется построение доверительных областец для не- неизвестных параметров, а также соответствующей им модели. Задача статистического анализа нелинейной модели намного сложнее соот- соответствующей задачи для линейной модели. В настоящее время пока что нет общих подходов к построению доверительных областей и проверки статистических гипотез для параметров нелинейных моде- моделей. Поэтому при решении практических задач обычно применяются различные приближенные методы, использующие те или иные допу- допущения относительно структуры модели. Один из простейших путей построения доверительной области для вектора неизвестных параметров в* состоит в замене нелинейной модели в окрестности точки ^линейной моделью C.7.7). Тогда дове- доверительная область для вектора 0* имеет вид (в - Щ\РтР){в - §) < j^j Ф@) FktN-k A-е) , C.7.10) где FktN-k(l-e) — квантиль распределения Фишера с к\ = к и кг = N — к степенями свободы, е > 0 — заданный уровень значимо- значимости. При небольших N эта оценка будет достаточно грубой, если функция Ддс; в) существенно нелинейная [6,12 ]. Более точную оценку можно получить, используя аппроксима- аппроксимацию для Ф@): Ф@) « Ф(б) 4-1(<9 - &)тнф)(в - §) , C.7.1 где нф) — матрица Гессе, найденная в точке §. Тогда доверительная область для в* имеет вид иш = {в : (в - &)тН($)(д - б) < 2ks2aFk,a A-е)) , C.7.12) где sa — оценка дисперсии ошибок эксперимента, имеющая а степе- степеней свободы (мо:*но взять а = N — к). Доверительную область для в* можно найти также с помощью 378
метода, основанного на построении контуров функции правдоподо- правдоподобия. Если предположить, что априорное распределение вектора неиз- неизвестных параметров является равномерным, то согласно байесовской теории функцию правдоподобия можно интерпретировать как про- пропорциональную функцию апостериорной плотности распределения вектора 0. Поэтому 100A - г)— доверительная область представля- представляет собой совокупность точек £*, ограниченных контуром равных зна- значений функции правдоподобия, содержащим 100A — е)% апостериорного распределения. В этом случае приближенная довери- доверительная область имеет вид иш = в : Ф@) - N- к Fk,N-k C.7.13) Приближенные индивидуальные доверительные интервалы для параметров 0, можно найти с помощью соотношений tN-k (l- a ,,, \J« '«I i' где ts-к (I—e/2) — 100A - е/2)-%-ная точка распределения Стью- дента с (N — к) степенями свободы, Си — диагональные элементы матрицы (Р Р)~ . Оценка дисперсии предсказанных по модели зна- значений функции вычисляется по формуле ; в) df(x; в) г=1 C.7.15) Тогда приближенный доверительный интервал для функции у = f{x) = (p(x; в*) имеет вид 1/2 <р(х; 0Ф < <р(х\ в) + tN-k (l-e/2) Sa{d(x)\ "" . C.7.16) Средняя относительная ошибка предсказания по модели опреде- ляется с помощью соотношения <5 = N 4 100% . C.7.17) Формулы C.7.14) обычно применяются при определении довери- доверительных интервалов параметров линейных моделей. Численные экс- эксперименты показали, что их можно использовать также для оценивания параметров нелинейных моделей. При этом предполага- предполагается, что нелинейность модели является незначительной. Различные числовые показатели, характеризующие меру нелинейности моде- 379
лей, а также оценка корректности применения линейного МНК для анализа нелинейных моделей, рассмотрены в работах [6,11,13]. При решении практических задач доверительные интервалы для коэффициентов нелинейной модели можно найти с помощью про- программ NREG08W1 и NREG09W1, в которых реализованы алгоритмы Ньютона-Гаусса и Левенберга-Марквардта. В результате выполне- выполнения этих программ определяются диагональные элементы Си матри- матрицы (РТР)~1 , а также оценивается дисперсия ошибок эксперимента C.7.6). На основе данной информации можно построить приближен- приближенные индивидуальные доверительные интервалы вида C.7.14) для па- параметров регрессионной модели, а также доверительный интервал C.7.16) для значений нелинейной модели. Литература к главе 3 1. Айвазян С.А., Енюков И.С., Мешалкин Л. Д. Прикладная статистика: Основы моделирования и первичная обработка данных. М.: Финансы и статистика, 1983, 2. АйвазянС.А., Енюков И. С., Мешалкин Л. Д. Прикладная статистика: Исследование зависимостей. М.: Финансы и статистика, 1985. 3. Аоки М. Введение в методы оптимизации. М,: Наука, 1977. 4. Базара M.t lilemmu /С Нелинейное программирование: Теория и алгоритмы. М.: Мир, 1982. 5. Банди Б. Методы оптимизации: Вводный курс. М.: Радио и связь, 1988. 6. Бард И. Нелинейное оценивание параметров. М.: Финансы и статистика, 1979. 7. Бейко И.В., Бублик Б.Н., ЗинькоП.И. Методы и алгоритмы решения задач оптимизации. Киев: Вища школа, 1983. 8. Березин И.С., Жидков И.П. Методы вычислений, т.т. 1,2. М.: Физматгиз, 1959. 9. Васильев Ф.П. Численные методы решения экстремальных задач. М.: Наука, 1980. 10. Гилл Ф., Мюррей У., Райт М. Практическая оптимизация. М.: Мир, 1985. 11. Горский В.Г. Планирование кинетических экспериментов. М.: Науха, 1984. 12. Демиденко Е.З. Линейная и нелинейная регрессии. М.: Финансы и статистика, 1981. 13. Демиденко Е.З. Оптимизация и регрессия. М.: Наука, 1989. 14. Дрейпер Н., Смит Г. Прикладной регрессионный анализ. М.: Финансы и стати- статистика, т. 1,1986; т. 2, 1987. 15. Дэннис Дж.мл., Шнабель Р. Численные методы безусловной оптимизации и ре- решение нелинейных уравнений. М.: Мир, 1988. 16. Ермольев Ю.М., ЛяшкоИ.И., Михалевич B.C., Тюптя В.И. Математические методы исследования операций. Киев: Вища школа, 1970. 17. Жиглявский А.А., Жилинскас А.Г. Методы поиска глобального экстремума. М.: Наука, 1991. 18. Кендалл М.Дж., Стюарт А. Статистические выводы и связи. М.: Наука, 1973. 19. Ларичев О. И., Горвиц Г.Г. Методы поиска локального экстремума овражных функций. М.: Наука, 1990. 20. Минимизация в инженерных расчетах на ЭВМ. М.: Машиностроение, 1981. 21. Петровичи.Л. Регрессионный анализ и его математическое обеспечение на ЕС ЭВМ. М.: Финансы и статистика, 1982. 22. Положий Г.Н., Пахарева И.А., СтепаненкоИ.З. и др. Математический практикум. М.: Физматгиз, 1960, 23. Поляк Б.Т. Введение в оптимизацию. М.: Наука, 1983. 380
24. Пшеничный Б.Н., Данилин ЮМ. Численные методы решения экстремальных задач. М.: Наука, 1975. 25. СеберДщ. Линейный регрессионный анализ. М.: Мир, L980. 26. Реклейтис Г., Рейвиндран А., Рэгсдел К. Оптимизация в технике. В 2-х книгах М.:Мир, 1986. 27. Таха X. Введение в исследование операций. В 2-х книгах. М.: Мир, 1985. 28. Теория и применения случайного поиска. Рига: Зинатне, 1969. 29. Химмельблау Д Анализ процессов статистическими методами. М.: Мир, 1973. 30. Химмельблау Д. Прикладное нелинейное программирование. М.: Мир, 1975.
ОГЛАВЛЕНИЕ Предисловие автора 3 Введение 6 Глава 1, Аппроксимация функций, заданных экспериментальными данными, с помощью алгебраических и тригонометрических многочленов .... 8 1.1. Аппроксимация функций с помощью алгебраических интерполяционных полиномов 9 1.2. Интерполирование периодических функций, заданных экспериментальными данными : 42 1.3. Аппроксимация функций методом наименьших квадратов с помощью ортогональных полиномов 57 1.4. Приближение функций методом наименьших квадратов с помощью тригонометрических многочленов 85 1.5. Аппроксимация функций, заданных экспериментальными данными, по минимаксному критерию 98 Литература 121 ■ Глава 2. Применение сплайнов при обработке экспериментальной информации 123 2.1. Интерполирование ф ункций, заданных экспериментальными данными, с помощью кубических сплайнов 124 2.2. Применение сплайнов с "растяжением" при обработке экспериментальных данных 146 2.3. Применение сплайнов при аппроксимации периодических функций, заданных экспериментальными данными 164 2.4. Численное дифференцирование и интегрирование функций с помрщью сплайнов % 180 2.5. Применение сглаживающих сплайнов при обработке экспериментальных данных 194 2.6. Построение параболических интерполяционных сплайнов при решении задач аппроксимации . 213 2.7. Применение дважды кубических сплайнов для аппроксимации функций двух переменных 225 Литература 234 Глава 3. Построение нелинейных моделей при обработке результатов эксперимента 236 3.1. Основные методы оценивания параметров нелинейных моделей . . . 236 3.2. Методы одномерной минимизации 240 3.3. Методы поиска глобального минимума функции одной переменной . 269 3.4. Нелинейное оценивание параметров с помощью методов прямого поиска 273 3.5. Применение методов первого порядка при нелинейном оценивании параметров 303 3.6. Квазиньютоновские методы оценивания параметров нелинейных моделей 325 3.7. Статистические характеристики нелинейных оценок параметров . . . 376 Литература 380
Пользователям персональных компьютеров! Если вы хотите быстро понять идейное содержание и освоить со- современные прикладные математические методы, получить в распоряже- распоряжение исходные модули программ для них, научиться использовать эти методы на практике, фирма «БИНОМ» и АО 4Дельта МКС-Плюс» предлагают вашему вниманию серию из 12-15 книг «Современные математические методы в прикладных исследованиях: те- теория, алгоритмы, программы*. Автором книг является с.н.с, к.т.н. Носач В.В. Первой в этой серии издана книга «Решение за- задач аппроксимации с помощью персональных компьютеров». В следующих книгах, которые готовятся к изданию в 1994-95 годах, будут рассмотрены: • методы решения задач линейного программи- программирования и задач транспортного типа; • потоки в сетях и сетевая оптимизация; • численные методы нелинейной оптимизации; • статистические методы обработки экспери- экспериментальных данных; • многомерный регрессионный анализ и его при- ложения; • методы оптимального планирования экспери- эксперимента; • методы сплайн-аппроксимации; • методы анализа временных рядов; • цифровая обработка сигналов и цифровая фильтрация; • методы вычислительной математики; • статистические методы контроля и управ- управления качеством; • прикладные методы теории массового обслу- обслуживания. В этих книгах отражен опыт использования автором современных математиче- математических методов в прикладных исследованиях. Каждая из книг серии имеет объем 350-400 страниц и построена таким образом, что читатель без привлечения допол- дополнительных литературных источников сможет получить определенный объем теоре- теоретических сведений, достаточных для четкого понимания идейного содержания рас- рассматриваемых методов. На основе этих теоретических результатов сформулирова- сформулированы алгоритмы и разработаны программы на языке Бэйсик. Рассмотрены примеры решения различных тестовых и практических задач с помощью этих программ. Каждая из книг серии содержит от 15 до 30 программ, дискеты с которыми можно приобрести в АО «Дельта МКС-Плюс». Предоставленные в распоряжение автора допустимые объемы книг не позволили включить в листинги комментарии. Моди- Модифицированные программы с подробными комментариями содержатся на дискетах. Автор и издатель серии надеются, что эти книги позволят читателю с мини- минимальными усилиями освоить современные прикладные практические методы и на- научиться использовать их на практике с применением персональных компьютеров.
Научное издание Носач Василий Васильевич РЕШЕНИЕ ЗАДАЧ АППРОКСИМАЦИИ С ПОМОЩЬЮ ПЕРСОНАЛЬНЫХ КОМПЬЮТЕРОВ Издательство «МИКАП» Москва, ул. Садово-каретная, 4/6, стр. 1 ЛР № 061794 от 13 ноября 1992 г. Сдано в набор 1.04.93. Подписано в печать 26.05.94. Формат 60><88 Vl6. Бумага типографская. Гарнитура Пресс-роман. Печ. л.£4- Тираж 10000 зкз. Заказ 509 Отпечатано с готовых диапозитивов в типографии № 4 Комитета РФ по печати. Москва 129041, Б. Переяславская, 46.