/
Author: Носач В.В.
Tags: математика решение задач информационные технологии аппроксимация
ISBN: 5-85959-067-9
Year: 1994
Text
НОСАЧ В. В.
шение задач
оксумации
помощью
персональных
компьютеров
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.