Методы метрологически обоснованного решения уравнений и систем уравнений при измерениях, выполняемых информационно-измерительными системами тема диссертации и автореферата по ВАК РФ 00.00.00, кандидат наук Целищева Анастасия Алексеевна
- Специальность ВАК РФ00.00.00
- Количество страниц 271
Оглавление диссертации кандидат наук Целищева Анастасия Алексеевна
Введение
1 Обзор существующих методов решения нелинейных уравнений и систем нелинейных уравнений в метрологических задачах
1. 1 Методы решения нелинейных уравнений
1.2 Методы решения систем нелинейных уравнений
1.3 Интервальные методы
1.4 Методы гарантированного поиска корней нелинейных уравнений и решений систем подобных уравнений
1.4.1 Метод бисекции
1.4.2 Метод золотого сечения
1.4.3 Метод, основанный на числах Фибоначчи
1.4.4 Существующие методы сужения области, содержащей решение системы уравнений
1.5 Правила остановки итерационных процессов
1.5.1 Правила остановки при решении нелинейных уравнений
1.5.2 Правила остановки при решении систем нелинейных уравнений
1.5.3 Специальные правила остановки
1.6 Метрологическое сопровождение методом Монте-Карло и методом метрологического автосопровождения
1.7 Методы оценки наследственной погрешности, основанные на известном виде функции
1.8 Выводы
2 Аналитические приближенные оценки предельных погрешностей корней уравнений или решений систем уравнений, вызванных погрешностями их коэффициентов
2.1 Аналитические оценки предельных погрешностей для корней
уравнений
2.1.1 Выражения для оценки предельных погрешностей для корней уравнений аналитическим подходом
2.1.2 Пример использования оценки предельных погрешностей для корней уравнений аналитическим подходом
2.2 Аналитические оценки предельных погрешностей для решений систем нелинейных уравнений
2.2.1 Выражения для оценки предельных погрешностей для решений систем уравнений аналитическим подходом
2.2.2 Пример использования
2.3 Аналитические оценки предельных погрешностей для корней уравнений и решений систем уравнений при случайных и независимых друг от друга погрешностях коэффициентов этих уравнений
2.4 Выводы
3 Метод интервальной бисекции для решения нелинейных уравнений и систем нелинейных уравнений
3. 1 Метод интервальной бисекции
3.1.1 Алгоритм интервальной бисекции
3.1.2 Псевдокод алгоритма интервальной бисекции
3.1.3 Пример использования интервальной бисекции
3.2 Метод многомерной интервальной бисекции для решения систем нелинейных уравнений
3.2.1 Алгоритм многомерной интервальной бисекции для решения системы из двух уравнений
3.2.2 Алгоритм многомерной интервальной бисекции для решения системы из «-уравнений
3.2.3 Псевдокод алгоритма многомерной интервальной бисекции для решения системы уравнений
3.2.4 Пример использования многомерной интервальной бисекции для поиска решения систем уравнений
3.3 Правила остановки в интервальном методе бисекции
3.4 Выводы
4 Интервальный метод Ньютона для решения нелинейных уравнений и
систем нелинейных уравнений с учетом погрешностей исходных данных
4.1 Интервальная арифметика
4.2 Аффинная арифметика
4.3 Алгоритм интервального метода Ньютона
4.4 Результаты моделирования интервального метода Ньютона
4.5 Выводы
5 Сравнение рассмотренных методов для решения нелинейных уравнений и систем нелинейных уравнений с учетом погрешностей исходных данных
5.1 Анализ и сравнение
5.2 Сравнение путем математического моделирования
5.3 Выводы
6 Примеры практического применения
6.1 Измерение температуры с помощью платинового термосопротивления
6.2 Измерение длины волны на поверхности воды на основе дисперсионного соотношения
6.3 Измерение уровня волнения на поверхности жидкости по изменениям давления на глубине
6.4 Позиционирование объекта в магнитном поле
6.5 Выводы
Заключение
Список литературы
Приложение А
Приложение Б
Приложение В
Приложение Г
Приложение Д
Приложение Е
Введение
Повсеместное использование информационно-измерительных систем, их усложнение и развитие цифровых технологий привели к тому, что существенно растет доля таких измерительных ситуаций, когда для получения результата измерений задействуются математические и численные модели объекта измерений, без которых выполнить измерение оказывается затруднительно или даже невозможно. Такие измерения отвечают определению косвенных, поскольку результат определяется из известных функциональных взаимосвязей с величинами, чьи значения измерялись на объекте непосредственно напрямую. Получение количественной информации о значении измеряемой величины производится путем решения уравнений математической модели.
Развитие и распространение технологий цифровых двойников сложных промышленных и производственных объектов также способствует росту описанных измерительных ситуаций. Представляется, что в ближайшие годы доля последних достигнет значимых значений.
Использование информационно-измерительных систем для получения результатов косвенных измерений является широко распространенной практикой, поскольку такие системы обеспечивают надлежащее одновременное получение результатов прямых измерений величин, чьи значения входят в математическую модель объекта вместе с искомыми значениями. В вычислительном блоке подобных информационно-измерительных систем производится соответствующая математическая обработка. Поскольку при этом используются математические модели, описывающие функциональные зависимости между результатами прямых измерений и искомыми величинами, то часто приходится решать нелинейные уравнения или системы таких уравнений. Полученные значения прямых измерений искажены погрешностью, поэтому результаты дальнейших проводимых с ними расчетов также будут неточны. Их характеристики погрешности должны быть оценены и учтены согласно метрологическим
требованиям, поскольку в соответствии с законом «Об обеспечении единства измерений» [1] все результаты измерений (в том числе косвенных) должны приводиться вместе с характеристикой их предельно возможной погрешности.
Представленная диссертация посвящена вопросу метрологически обоснованного решения нелинейных уравнений (как отдельных, так и систем уравнений), выполняемого в составе информационно-измерительных систем и автоматического получения оценок погрешности получаемых результатов, унаследованной ими от неточности результатов прямых измерений, входящих в состав решаемых уравнений в виде коэффициентов последних.
Актуальность диссертационного исследования
Задача поиска решения нелинейных уравнений или систем нелинейных уравнений, чьи параметры заданы неточно, часто возникает в практике выполнения измерений с применением информационно-измерительных систем, при проведении научных исследований, при обработке результатов прямых измерений для получения результатов косвенных, совокупных или совместных измерений. Решение данной задачи представляет также математический интерес, поскольку предполагает разработку новых методов решения систем уравнений, устойчивых к неопределенности их параметров. Актуальность темы диссертационной работы подтверждается большим количеством релевантных публикаций в рецензируемых изданиях, посвященных вопросам обработки измерительной информации в компьютеризированных средствах измерения.
Рассмотрим подробнее проблему решения уравнений, возникающих при косвенных измерениях, выполняемых информационно-измерительными системами. В результате любых измерений получают неточные значения искомых величин, поскольку данные значения всегда будут возмущены погрешностями. Все дальнейшие расчеты с этими значениями также будут неточны, поскольку результаты вычислений будут наследовать от них погрешность независимо от принципа организации этих вычислений (их
корректности, реализуемой методики и т.д.). Чтобы обоснованно принимать решения по найденным результатам расчетов, требуется выполнить оценку пределов их возможной погрешности в соответствии с метрологическими требованиями, которым подчиняются информационно-измерительные системы. Производимые с неточными данными расчеты часто содержат в себе итерационное решение задач, которые связаны с нахождением характерных значений (корней уравнений или решений систем уравнений, точек оптимума и т.д.). Среди современных методов, реализующих в полной мере метрологическое сопровождение результатов вычислений с неточными данными [2-4] можно выделить две группы: методы, использующие рандомизацию (метод Монте-Карло [5], метод на основе распределений Коши [6, 7] и т.п.), и полуаналитические методы, осуществляющие анализ исполняемых вычислительных процедур с помощью перегрузки основных математический операций. Среди второй группы методов следует отметить методы, основанные на линейной аппроксимации (с применением автоматического дифференцирования [8, 9], оценок конечных разностей и оценок метода комплексного приращения для приближения значений частных производных [10, 11]) и другие подобные методы анализа чувствительности; методы, основанные на полной замене вычислений с числами с плавающей точкой на гранулярные вычисления (интервальная арифметика [12, 13] и ее различные модификации - такие как аффинная арифметика [14, 15], - или другие подходы [16, 17], выполняющие представление сведений о погрешностях с помощью, например, областей возможных значений функций распределения (р-Ьох) [18, 19]). Приведенные методы были разработаны для широкого класса задач, в которых используются вычисления с неточными данными, и могут быть применены для выполнения вычислений в метрологии и измерительных задачах. Особенностью всех перечисленных методов является то, что в случае применения к итерационным процедурам они не обеспечивают гарантии достоверности оценок, получаемых на промежуточных итерациях, что
является важным и желательным свойством для нужд метрологически значимого программного обеспечения информационно-измерительных систем.
При организации математического и алгоритмического обеспечения решения измерительных задач часто применяют специальные подходы, требующие учета особенностей данных задач при оценке погрешности результатов. Например, в метрологической практике при осуществлении косвенных и совместных измерений часто возникает задача оценки корней нелинейных уравнений или решений систем нелинейных уравнений. Измерения многих физических величин нельзя провести непосредственно. В таком случае используют математические модели, описывающие исследуемый объект. Используя их, можно произвести требуемые измерения косвенно, при этом ряд величин измеряют напрямую, а затем искомые значения находят по полученным результатам с использованием известных уравнений взаимосвязи. Подобные задачи с математической точки зрения сводятся к решению уравнений или систем уравнений, коэффициенты которых известны неточно. Это решение выполняется в вычислительном блоке информационно-измерительной системы, осуществляющей косвенное измерение, и оно должно быть подвержено метрологическому контролю так же, как и любая измерительная процедура или преобразование [20-22].
Для поиска корней нелинейных уравнений или решений систем подобных уравнений на практике в программном обеспечении информационно-измерительных систем применяют различные итерационные методы. Перед их использованием необходимо задать начальное приближение значения корня (решения системы) или интервал (область), который гарантированно содержит решение. Далее происходит уточнение оценки решения до достижения необходимой точности на каждой итерации метода. При таком решении нередко погрешности коэффициентов уравнений (результатов прямых измерений) не учитываются, что в итоге может привести к искажению получаемых результатов.
В существующей метрологической практике пределы погрешности получаемого решения если и оценивают, то уже после вычисления решения по полученным заранее аналитическим формулам или при помощи статистического моделирования (например, с помощью упомянутого метода Монте-Карло). В способах, использующиеся в первом подходе, как правило, предполагается, что погрешности параметров уравнений (результатов прямых измерений) достаточно малы, что порой сложно проверить. Второй способ достаточно трудоемок, и в результате его использования возможно возникновение ситуации, когда итерационные процедуры, применяемые для решения уравнений или систем уравнений, будут расходиться. Перечисленные выше существующие подходы к метрологическому автосопровождению задачи решения уравнений отличаются теми же недостатками.
Таким образом, разработка новых методов решения отдельных уравнений косвенных измерений и систем таких уравнений, которая позволит учитывать погрешности коэффициентов решаемых уравнений (результатов прямых измерений), обеспечит гарантию достоверности оценок решения на каждом шаге применяемых итерационных процедур и будет соответствовать требованиям обеспечения единства измерений, является актуальной.
Цель диссертационной работы.
Целью диссертационной работы является разработка новых методов решения нелинейных уравнений и систем нелинейных уравнений, выполняемого при косвенных измерениях, обоснованных с метрологической точки зрения и гарантирующих получение результата, для нужд информационно-измерительных систем. Для достижения данной цели необходимо дополнить известные итерационные методы решения уравнений и систем уравнений так, чтобы получаемые корни и решения систем сопровождались бы оценками погрешности, вызванной неточностью коэффициентов уравнений. Получение таких оценок создает возможность для
обоснованного прерывания итерационной процедуры согласованно с точностью исходных данных. Задачи исследования
Для достижения поставленной цели диссертации был решен ряд задач:
- рассмотрены существующие подходы к решению нелинейных уравнений и систем нелинейных уравнений в составе программного обеспечения информационно-измерительных систем и учету погрешностей задействованных при этом результатов прямых измерений;
- разработан способ оценки погрешности результата косвенных измерений, получаемого решением соответствующих уравнений и систем уравнений, в состав которых входят результаты прямых измерений;
- разработан новый метод на основе метода бисекции для решения нелинейных уравнений и систем нелинейных уравнений при косвенных измерениях, решаемых в информационно-измерительных системах;
- разработаны правила остановки итерационных процессов решения нелинейных уравнений, согласованные с точностью их коэффициентов;
- разработан метод на основе интервального метода Ньютона для решения нелинейных уравнений и систем нелинейных уравнений косвенных измерений, выполняемого в составе информационно-измерительных систем, с использованием разных интервальных арифметик;
- выполнен анализ разработанных методов и их сравнение, выполнена детальная оценка достоверности предоставляемых ими результатов;
- разработанные методы применены к модельным примерам и ряду измерительных задач из практики эксплуатации информационно-измерительных систем.
Объектом исследования являются методы решения нелинейных уравнений и систем нелинейных уравнений косвенных измерений с неточными коэффициентами, встречающихся в практике работы информационно-измерительных систем.
Предметом исследования являются такие методы и программные средства, применяемые для решения нелинейных уравнений и систем нелинейных уравнений, возникающих в измерительной практике, которые позволяют получать оценки самого решения и его погрешности, наследуемой от погрешностей коэффициентов уравнений.
Методы исследования
В ходе работы над диссертацией были корректно применены методы математического моделирования (включая статистическое моделирование), вычислительной математики, функционального анализа, метрологического анализа.
Научная новизна
В ходе работы над диссертационным исследованием были разработаны методы и программные средства метрологического сопровождения расчетов, ведущихся в информационно-измерительных системах и программах обработки неточных данных с решением нелинейных уравнений и систем нелинейных уравнений. Научная новизна заключается в:
- получении новых методов решения отдельных нелинейных уравнений и их систем (коэффициенты которых выражаются результатами измерений), согласованных с точностью исходных данных и с действующими метрологическими нормами;
- получении новых правил остановки итерационных процессов решения уравнений, также согласованных с точностью исходных данных;
- достижении автоматического метрологического сопровождения процедур решения уравнений или систем уравнений, реализуемых в метрологически значимом программном обеспечении информационно-измерительных систем.
Теоретическая и практическая значимость
Полученные в диссертационном исследовании результаты имеют высокую теоретическую значимость, поскольку в нем представлены новые методы и формулы для решения как отдельных, так и систем нелинейных
уравнений, чьи коэффициенты заданы с погрешностями, а также разработаны реализующие их программные средства. Теоретическая значимость результатов также обусловлена тем, что на момент завершения диссертационного исследования опубликованные по ее теме работы были процитированы 18 раз (среднее число цитирований на работу - составило 1,8, что превышает средний уровень цитировании в области). Практическая значимость работы подтверждается тем обстоятельством, что получаемые с применением предложенных методов оценки корней и решений оказываются согласованы с погрешностью исходных данных в соответствии с требованиями метрологической практики и практикой разработки и эксплуатации информационно-измерительных систем. Практическая значимость работы также обусловлена внедрением результатов в работу ряда организаций, о чем составлены соответствующие акты.
Публикации
По материалам работы опубликовано 9 печатных работ в журналах и сборниках конференций, из них 5 работ - в журналах, входящих в Перечень Высшей аттестационной комиссии по научной специальности 2.2.11 «Информационно-измерительные и управляющие системы», а также в изданиях, индексируемых в международных наукометрических базах данных (Web of Science, Scopus); 4 работы - в изданиях, индексируемых в Российском индексе научного цитирования. Дополнительно 1 статья принята к печати в издании, входящем в Перечень Высшей аттестационной комиссии по специальности представляемой диссертации, подготовлено одно учебное пособие и два авторских свидетельства о регистрации программ для ЭВМ.
Рекомендованный список диссертаций по специальности «Другие cпециальности», 00.00.00 шифр ВАК
Приближённые методы решения нелинейных спектральных задач2010 год, доктор физико-математических наук Соловьёв, Сергей Иванович
Полюсный метод Ньютона2005 год, кандидат физико-математических наук Петров, Михаил Юрьевич
Решение задач нелинейной механики гибких систем методом наилучшей параметризации2005 год, доктор физико-математических наук Данилин, Александр Николаевич
Повышение эффективности итерационных методов решения нелинейных уравнений и их применение для задач математического моделирования2017 год, кандидат наук Юманова, Ирина Фарисовна
Исследование одного класса итерационных методов третьего порядка1983 год, кандидат физико-математических наук Зыкова, Зоя Петровна
Введение диссертации (часть автореферата) на тему «Методы метрологически обоснованного решения уравнений и систем уравнений при измерениях, выполняемых информационно-измерительными системами»
Апробация работы
Результаты работы были представлены на следующих научных конференциях и семинарах.
- Студенческая научная конференция Института информационных технологий и управления Санкт-Петербургского государственного политехнического университета «Информатика и кибернетика (COMCON-
2015)», Санкт-Петербург, 22-24 апреля 2015 г.
- Всероссийская научно-практическая конференция с международным участием «Комплексная защита объектов информатизации - 2016», Санкт-Петербург, 1-5 июня 2016 г.
- Всероссийская научно-практическая конференция «Измерения в современном мире», Санкт-Петербург, 6-7 июня 2017 г.
- International Scientific Conference «Telecommunications, Computing and Control (TELECCON-2019)», St. Petersburg, November 18-19, 2019.
- Юбилейные чтения, посвященные научной школе измерительных информационных технологий (90-летие первого выпуска студентов кафедры ИИТ ЛПИ), Санкт-Петербург, 1-2 ноября 2019 г.
- XXIV Международная конференция по мягким вычислениям и измерениям (SCM-2021). Санкт-Петербург, 26-28 мая 2021 г.
The XXIV International Conference on Soft Computing and Measurement (SCM-2021), St. Petersburg, May 26-28, 2021.
- 2nd International Conference on Cyber-Physical Systems & Control (CPS&C-2021), St. Petersburg, June 29 -July 2, 2021.
- Научный семинар кафедры измерительных информационных технологий Института компьютерных наук и технологий Санкт-Петербургского политехнического университета Петра Великого. 2017-2019 гг.
- Научный семинар Высшей школы киберфизических систем и управления Санкт-Петербургского политехнического университета Петра Великого, 2019-2022 г.
Диссертационное исследование было поддержано Российским фондом фундаментальных исследований (РФФИ), проект №19-31-90165 «Методы и программные средства оценки погрешности корней систем нелинейных уравнений с неточными коэффициентами» (2019-2022 гг).
Результаты диссертации внедрены в работу в работу ОП АО «31 Государственный проектный институт специального строительства» «Научно-исследовательский центр 26 Центрального научно-
исследовательского института» и учебный процесс Институт компьютерных наук и технологий Санкт-Петербургского политехнического университета, о чем составлены соответствующие акты, представленные в приложении к диссертации.
Основные положения диссертации, выносимые на защиту
Основными положениями представляемой работы, выносимыми на защиту, являются следующие.
1. Впервые разработан интервальный метод бисекции для нужд информационно-измерительных систем, позволяющий находить корни нелинейных уравнений, коэффициенты которых известны неточно, с учетом этих погрешностей, а также получать оценку пределов погрешности корней.
2. Впервые разработан интервальный метод многомерной бисекции для нужд информационно-измерительных систем, позволяющий находить решения систем нелинейных уравнений, коэффициенты которых известны неточно, с учетом этих погрешностей, а также получать оценку пределов погрешности решений.
3. Впервые выведены аналитические формулы для оценки погрешностей корней нелинейных уравнений и решений систем нелинейных уравнений, коэффициенты которых известны неточно, на основе линеаризации вычисляемых функций.
4. Впервые разработаны правила остановки созданных итерационных процедур, согласующие момент их остановки с точностью исходных данных.
Объем диссертации.
Диссертация состоит из введения, 6 глав, заключения и 6 приложений. В первой главе кратко описаны существующие методы решения нелинейных уравнений или систем нелинейных уравнений, используемые в программном обеспечении информационно-измерительных систем, способы остановки итерационных процессов, а также существующие способы учета погрешностей прямых измерений при использовании таких методов. Во второй главе рассмотрен аналитический подход для получения оценки
погрешностей корней нелинейных уравнений и решений систем нелинейных уравнений любого вида, который предоставляет достоверные значения оценок при малых значениях погрешности коэффициентов решаемых уравнений косвенных измерений. В третьей главе представлен интервальный метод бисекции для решения нелинейных уравнений и решений систем таких уравнений, учитывающий погрешности параметров этих уравнений и гарантированно предоставляющий результат вместе с оценкой предела его унаследованной погрешности. Там же описаны правила остановки итерационного процесса для этого метода, использующие данные о неточности исходных данных. В четвертой главе представлена модификация интервального метода Ньютона, позволяющая находить решения нелинейных уравнений с учетом погрешностей коэффициентов этих уравнений. Данный метод был модифицирован так, что значения как искомых величин, так и коэффициентов уравнений могут быть выражены через классические или аффинные интервалы. В пятой главе проведено аналитическое сравнение методов из глав 2-4, а также выполнено исследование их работы на модельных примерах. В шестой главе представлено применение разработанных методов интервальной бисекции к ряду примеров из практики информационно-измерительных систем.
Соответствие паспорту специальности
Диссертационная работа соответствует паспорту специальности 2.2.11 «Информационно-измерительные и управляющие системы» по направлению исследований и отвечает следующим пунктам направлений исследований: П.2. Исследование возможностей и путей совершенствования существующих и создания новых элементов структуры и образцов информационно-измерительных и управляющих систем, улучшение их технических, эксплуатационных, экономических и эргономических характеристик, разработка новых принципов построения и технических решений.
П.3. Математическое, алгоритмическое, информационное, программное и аппаратное обеспечение информационно-измерительных и управляющих систем.
П.9. Методы и технические средства метрологического обеспечения информационно-измерительных и управляющих систем, метрологического обеспечения испытаний и контроля, метрологического сопровождения и метрологической экспертизы информационно-измерительных и управляющих систем, методы проведения их метрологической аттестации.
1 Обзор существующих методов решения нелинейных уравнений и систем нелинейных уравнений в метрологических задачах
1.1 Методы решения нелинейных уравнений
Для решения нелинейных уравнений вида /х) = 0 программными средствами информационно-измерительных систем часто применяют разные итерационные схемы. При использовании подобных методов для поиска корня таких уравнений сначала приближенно оценивают значение корня или границы отрезка, который содержит корень, далее выполняют уточнение этого значения до требуемой точности. В большинстве случаев оценка свойств этих методов выполняется с точки зрения вычислительной математики: проводится сравнение скорости сходимости методов, вычислительных сложностей методов и т.д. Но, как правило, в таком анализе характеристик свойства преобразования погрешности исходных данных (коэффициентов уравнения) при использовании данных методов не учитываются. Ниже приведен краткий обзор наиболее распространенных в информационно-измерительных системах методов решения нелинейных уравнений и их свойства.
Метод Ньютона и его модификации (метод Ньютона-Рафсона, метод секущих) [23-28] являются одними из наиболее популярных методов решения уравнений в метрологической практике. При использовании метода Ньютона поиск корня уравнения происходит путем построения его последовательных приближений. Для решения нелинейного уравнения /х) = 0 относительно переменной х используют следующую формулу, позволяющую вычислить текущее приближение для корня уравнения [29-31]:
X = Х_1 -/(Ц, г = 1,2,..., (1.1)
/ (Х-1)
где х0 - начальное приближение к корню.
Скорость сходимости метода решения уравнений к его корню имеет большое значение при сравнении эффективности работы различных методов. Чем выше ее значение, тем скорее и за меньшее число итераций будет
найдено приближенное решение уравнения приемлемой точности. Абсолютная погрешность оценок корня уравнения, которые получены на выполненных подряд двух итерационных шагах, определяется следующим неравенством [23, 26]:
' *'< С
Х+ X
X; X
где х - точное значение корня уравнения; Х[ - 1-ое приближение корня, которое вычислено на ¿-ом итерационном шаге; хг+1 - (г + 1)-ое приближение корня, которое вычислено на шаге (г + 1); а - коэффициент, характеризующий скорость сходимости, при этом, чем больше его значение, тем быстрее скорость сходимости; С - некоторая постоянная, значение которой обусловлено решаемым уравнением, методом решения, начальным приближением и т.д.
Метод Ньютона имеет квадратичную сходимость (т.е. а = 2) [32], если начальное приближение было выбрано из окрестности корня. Поскольку значение скорости сходимости у метода Ньютона больше, чем у иных методов, в практических приложениях и измерительной практике данный метод достаточно популярен. Для использования метода Ньютона требуется задать начальное приближение корня, но обычно эта задача целиком возлагается на пользователя, что может вызывать трудности. При неудачном выборе начального приближения возможна ситуация, когда оценка корня уравнения может быть не найдена. Также, кроме проблем с заданием начального приближения, метод Ньютона имеет еще один недостаток: требуется вычислять значение производной от функции / на каждой итерации. Если функция достаточно сложная, то могут возникнуть технические трудности с выполнением данной операции. Так, например, для этого, возможно, потребуется выполнить дополнительные расчеты, что понизит вычислительную эффективность метода.
Метод Ньютона-Рафсона - модификация метода Ньютона, суть которой заключается в том, что выполняется вычисление значения производной / в
точке х = х0 вместо точки х = хг-1 в формуле (1.1), т.е. производится замена /(хг-1) на /(х0). В итоге для нахождения корня используется следующая формула [33]:
/ (х.)
х+1 = х, i = 0,1,2,... (1.2)
/ (х0 )
Так как при использовании метода Ньютона-Рафсона необходимо определить значение производной один раз (в точке начального приближения), то количество вычислений уменьшается, но до линейной снижается и скорость сходимости этого метода [34].
Еще одна модификация метода Ньютона - метод секущих. В данном методе вычисляется среднее значение производной функции / (х), которое
оценивается с помощью конечных разностей. При подстановке упомянутого
/ (х ) _ / (х )
приближения производной /'(х.)» 1— 1-1 в формулу (1.1) получается
х х л
1 1-1
следующая формула для нахождения корня [35-39]:
х.+1 = х.
/ (х1)( х1 _ х1 _■) 1 = 12 (13)
/(х,)-/(х-)'1 и'... (13)
При использовании метода секущих, как и для метода Ньютона, существует та же проблема с выбором начального приближения корня. Данный метод имеет более низкую скорость сходимости а=1,618 [36], чем метод Ньютона, но ее значение достаточно велико для обеспечения методу широкого распространения в измерительной практике. Так в методе Ньютона на каждой итерации требуется вычислять значения функции и значение ее производной, тогда как в методе секущих - только значение функции. Из-за этого становится возможным при использовании метода секущих выполнить вдвое больше итераций при одинаковом объеме вычислений. Метод Ньютона и его модификации (метод Ньютона-Рафсона и метод секущих) построены на локальной линеаризации функции, корень которой ищется.
Метод бисекции (деления отрезка пополам) [40] позволяет находить корни нелинейных уравнений без вычисления производных. Суть метода
бисекции заключается в том, что за одну итерацию интервал, содержащий корень, сокращается вдвое в зависимости от знаков функции на его границах. При выполнении дальнейших итераций можно получить интервал, локализующий корень, такой, что его длина не будет превышать заданного значения. Приближением значения корня уравнения можно считать середину получаемого на каждой итерации интервала [41]. Метод бисекции гарантирует сходимость к корню с заданной точностью, если решаемая функция имеет значения разных знаков на границах выбранного начального интервала, в пределах которого ищется корень. Скорость сходимости данного метода - линейная [42]. Зачастую метод бисекции используют для нахождения начального значения для других методов нахождения корней, имеющих более высокую скорость сходимости (например, для метода Ньютона). Преимуществом метода бисекции является то, что его можно использовать для недифференцируемых непрерывных функций.
Методе Мюллера (или метод парабол) построен на параболической интерполяции функции / по трем точкам. В нем используется квадратичная интерполяция значений функции /, а не линейная аппроксимация, как в методе Ньютона и его модификациях. Корень функции / ищется в окрестности, близкой к корню. Для поиска корня уравнения /х) = 0 методом Мюллера применяются следующие формулы [43, 44]:
X ■. 1 — X ■
г+1 г
( Xг -1 )
' 2С
V В ±у1 В2 - 4АС где А — д/ (X)- д (1 + д)/ (Х-1) + д2/ (^),
В — (2д +1)/(X )-(1 + д)2/(X-1) + д2/(X-2),
С — (1 + д) / (X,), д —
(1.4)
X Х-1
X л X о г-1 г-2
В формуле (1.4) знак перед квадратным корнем выбирается таким образом, чтобы абсолютное значение знаменателя было максимальным.
Скорость сходимости метода Мюллера - сверхлинейная, порядок
сходимости составляет а ~ 1,8 [44]. Метод Мюллера может применяться для поиска кратных корней, в которых анализируемая функция у = /(х) не пересекает ось Ох, а только касается ее [26], т.е. таких х, при которых выполнено не только /(х) = 0, но и /'(х) = 0.
Скорость сходимости метода Мюллера ниже, чем у метода Ньютона, но этот метод дает гарантию сходимости итерационного процесса, более высокую, чем метод Ньютона: данный метод не создает приближений корня за пределами его начального интервала локализации. Следовательно, данный метод хорошо совмещает достоинства методов, использующих при решении линейную аппроксимацию функции / (методы Ньютона, Ньютона-Рафсона), но при этом не имеет их недостатка (потенциальной расходимости итерационного процесса). Но трудоемкость применения этого метода несколько мешает его более широкому распространению для практического использования в измерительных задачах.
При использовании метода простых итераций решаемое уравнение /(х) = 0 заменяется эквивалентным ему уравнением х = ф(х), где ф(х) -некоторая функция, которая определяется различными способами [36]. Например, ф(х) может быть представлена в виде ф(х) = х+щ(х)/(х), где щ(х) -произвольная непрерывная знакопостоянная функция. Далее применяется рекурсивная формула [39, 45]
х*1 = фх), 1 = 0, 1, 2, ..., (1.5)
где 1 - номер итерации, х0 - некоторое начальное приближение корня, х1 - его
* *
приближение на 1-ом шаге. Из формулы (1.5) видно, что если х^х (где х -корень уравнения), то этот предел и есть корень уравнения. Метод имеет линейную скорость сходимости [33]. Метод может разойтись при неудачном выборе начального приближения, а также при неудачном выборе функции
Ф(х).
Для большинства задач, возникающих в метрологии и практике использования информационно-измерительных систем, описанные методы в основном подходят по своим характеристикам (скорости сходимости,
достигаемой точности решения и т.д.), поэтому часто используются в них (кроме метода Мюллера). За рамками данной диссертационной работы останутся вопросы, относящиеся к особенностям практической реализации данных методов в приложениях.
В табл. 1.1 приведено основные характеристики упомянутых ранее методов решения нелинейных уравнений. В данной таблице в первом столбце приведены скорости сходимости рассмотренных методов. В качестве характеристики сложности вычислений методов во втором столбце приведены количество N вычислений значений функции / и количество М вычислений производной /', приходящиеся на одну итерацию. В таблице принято, что ¿ - номер итерации. Четвертый столбец таблицы отмечает гарантию получения корня при выполнении исходных условий, налагаемых
методом, а последний столбец содержит формулы для оценки погрешности
*
текущего приближения корня на ¿-ом шаге итерационного процесса (х -корень решаемого уравнения, [а, Ь] - интервал, на котором ищется корень).
Таблица 1.1 - Основные характеристики методов решения нелинейных уравнений
Название метода Скорость сходимости N и M Гарантия получения корня Оценка погрешности корня на промежуточной итерации
1 2 3 4 5
метод Ньютона квадратичная ^ N 1 1 и нет I * I M 2| * |Р 1 ^X ^X •. 11 ^ I xx xx • I л I '+4 2m} Л , где p = 2 M2 = max f"(X) m, = min f'(x)
метод Ньютона-Рафсона линейная N = 1 f0, i > 1 M = ^ U i = 1 нет аналогично, как и для метода Ньютона, но с p = 1
метод секущих сверхлинейная |1, i > 1 N = <j ' [2, i = 1 M = 0 нет аналогично, как и для метода Ньютона, но с p = 1,618
метод бисекции линейная |1, i > 1 N = «j ' [3, i = 1 M = 0 да 1 * 1 ^ 1 1 * 1 | X Xj+11 | X Xj |
метод Мюллера сверхлинейная IX i > 1 N = «j ' [3, i = 1 M = 0 нет * ^ x - X-+1 ^ f"'( X*) 6f'( X*) 0,42 * 1,84 ' X - X
Продолжение таблицы 1.1
1 2 3 4 5
метод N = 1 \х -x+1| < q\x - xt\,
простых линейная M = 0 нет где q - некоторая константа на
итераций [0, 1)
Из табл. 1.1 видно, что самый быстрый в среднем метод - это метод Ньютона, самые относительно медленные - метод бисекции и метод простых итераций; только методы Ньютона и Ньютона-Рафсона требуют вычисления производной (что не всегда возможно), метод бисекции и метод Мюллера требуют больше остальных методов вычислений значения функции на первом шаге. Только метод бисекции дает гарантию получения корня. Приведенные формулы для оценки погрешности корня на промежуточном
шаге не позволяют использовать их, например, для остановки итерационного
*
процесса (в них используется неизвестная величина х ) и несут скорее теоретическую ценность.
В табл. 1.2 приведены данные по количеству упоминаний в литературе рассмотренных методов решения нелинейных уравнений. В таблице представлены результаты: запроса в поисковой системе scholar.google.com и количество найденных результатов по этому запросу. Данные запросы были выполнены 09.08.2022.
Таблица 1.2 - Количества упоминаний в научной литературе об использовании методов решения нелинейных уравнений по данным Google Scholar по состоянию на 09.08.2022
Название метода Поисковый запрос Количество упоминаний
1 2 3
Метод Ньютона "Newton method" "nonlinear equations" 38000
"Newton method" -solution 40500
"Newton method" "nonlinear equations" -solution 1880
"Newton method" "nonlinear equations" measurement 19400
"Newton method" "nonlinear equations" measurement -solution 1120
Продолжение таблицы 1.2
1 2 3
Метод Ньютона- "Newton-Raphson method" "nonlinear equations" 19200
Рафсона
"Newton-Raphson method" -solution 24800
"Newton-Raphson method" "nonlinear equations" -"solution" 1520
"Newton-Raphson method" "nonlinear equations" 15500
measurement
"Newton-Raphson method" "nonlinear equations" 1060
measurement -solution
Метод секущих "Secant method" "nonlinear equations" 4340
"Secant method" -solution 4420
"Secant method" "nonlinear equations" -solution 264
"Secant method" "nonlinear equations" measurement 3130
"Secant method" "nonlinear equations" measurement - 143
solution
Метод бисекции "Bisection method" "nonlinear equations" 2980
"Bisection method" -solution 8370
"Bisection method" "nonlinear equations" -solution 226
"Bisection method" "nonlinear equations" measurement 2400
"Bisection method" "nonlinear equations" measurement 157
-solution
Метод Мюллера "Muller's method" "nonlinear equations" 127
"Muller's method" -solution 298
"Muller's method" "nonlinear equations" -solution 5
"Muller's method" "nonlinear equations" measurement 109
"Muller's method" "nonlinear equations" measurement - 3
solution
Метод простой "Fixed-point iteration" "nonlinear equations" 4220
итерации
"Fixed-point iteration" -solution 4970
"Fixed-point iteration" "nonlinear equations" -solution 220
"Fixed-point iteration" "nonlinear equations" 3290
measurement
"Fixed-point iteration" "nonlinear equations" 99
measurement -solution
Из табл. 1.2 видно, что наибольшее количество упоминаний в литературе приходится на метод Ньютона (при этом вероятно, что данный результат включает в себя также и упоминания метода Ньютона-Рафсона и другие модификации). Следующий по популярности метод - это метод секущих, далее идут метод простой итерации, бисекции. Наименее частым по упоминаниям оказался метод Мюллера.
1.2 Методы решения систем нелинейных уравнений
Для решения систем нелинейных уравнений ^(х1„ х2,..., хп) = 0, ] = 1, 2,., п, или Р(х) = 0, как и для решения нелинейных уравнений, на практике в информационно-измерительных системах используются различные итерационные методы. Данная задача является более сложной, чем поиск корня одного уравнения. Так, например, если число параметров у решаемых уравнений очень велико, то возможно, что найти решение системы, которое удовлетворяет всем уравнениям системы, будет практически невозможно. Для определения решения подобных систем уравнений при использовании существующих методов необходимо сначала определить начальное приближение решения системы, а затем последовательно уточнять его. Ниже приведен краткий обзор свойств популярных в метрологической практике методов решения нелинейных уравнений.
В методе простых итераций (метод последовательных приближений) для решения систем уравнений используется аналогичный подход, как и для решения в одномерном случае. Как и в формуле (1.5), производится замена системы эквивалентной системой специального вида [34, 39]:
х = Ф( х),
где х = ( Х — хп )\ Ф = р1 ( хп ) Р ( х2,..., хп ),..., (Рп ( ХР х2,..., хп ))Т.
Выбирается ненулевое начальное приближение и решение последовательно уточняется следующим образом: х {+1 = Ф(х {). Данный метод имеет линейную скорость сходимости [39]. Недостатком данного метода можно назвать необходимость приведения системы к виду, пригодному для выполнения итераций.
Метод Ньютона для решения систем уравнений так же, как и в одномерном случае, имеет квадратичную скорость сходимости [36], т.е. при удачном выборе начального приближения корня метод сходится очень быстро, поэтому в метрологической практике его часто используют [36].
Данный метод является обобщением метода Ньютона (касательных) на многомерный случай. При решении этим методом используется матрица Якоби [23]:
'а/1(х) а/1(х) а/1(х)"
з
дх1 дХ2 ' дх и
д/2(х) д/2(х) д/2(х)
дх1 дх2 дхи
д/и (х) д/И (х) д/и (х)
дх1
дх0
дх„
2 ^'"и У
Построить такую матрицу можно только, если каждая из функций системы дифференцируема по каждой переменной.
Обобщением формулы (1.1) для систем уравнений является следующая формула [23, 26, 45]:
X = хг-1 -3-1 (хм)■ Р(хм), i = 1,2,... (1.6)
Недостатки метода Ньютона для решения систем уравнений аналогичны одномерному случаю: необходимо хорошее начальное приближение, отсутствует глобальная сходимость для многих задач. Также данный метод достаточно трудоемок, т.к. на каждой итерации требуется вычислить матрицу, обратную к матрице Якоби, и необходимо решать систему линейных уравнений, которая может быть плохо обусловленной. В литературе часто советуют вместо вычисления обратной матрицы к з на каждом итерационном шаге находить решения системы линейных уравнений относительно приращений Дхг-1 [26]: 3(xi-1 )-Дхг-1 =-Р(хг-1), i = 1,2,...
Для преодоления этих недостатков (увеличение сложности или необходимости вычислять производные) существуют модификации метода Ньютона. При использовании упрощенного метода Ньютона (аналогичен методу Ньютона-Рафсона) производится вычисление матрицы Якоби только один раз на первом шаге алгоритма, для этого используется начальное приближение решения системы, в остальном вычисление решения
происходит аналогично формуле (1.6). Для вычисления приближений решения системы уравнений замена производной осуществляется аналогично формуле (1.2), в итоге получается следующая формула [34]:
X = Х-1 - ^ (х0 )• Р (Х-1) , 1 = 1,25-При этом сходимость метода становится линейной [36]. Суть метода секущих для решения системы нелинейных уравнений заключается в замене в матрице Якоби частных производных разностным выражением, что аналогично методу секущих для одномерного случая.
Таким образом, на каждой итерации приближения решения системы уравнений (замена производной аналогична использованной в формуле (1.4)) вычисляются по следующей формуле [34]:
X = X-1 -[В(х, X-1)]-1 • Р (X-1),
где В(ж1., X,.-!) =
/ \п
(х1. ,..., Хк,(г-1),..., Хп. ) - (Х1,г,..., Хк,г у", Хп. )
Хк.(/-1) - Хк,, ) к =1
I = 1, 2,
При удачном выборе начальных приближений решения скорость сходимости метода будет сверхлинейной.
В табл. 1.3 приведены данные по количеству упоминаний в литературе рассмотренных методов решения систем нелинейных уравнений. В таблице приведены: запрос в поисковой системе scholar.google.com и количество найденных результатов по этому запросу. Данные запросы были выполнены 09.08.2022.
Таблица 1.3 - Количества упоминаний об использовании методов решения систем
нелинейных уравнений по данным Google Scholar по состоянию на 09.08.2022
Название метода Поисковый запрос Количество упоминаний
Метод Ньютона "Newton method" "system of nonlinear equations" 8300
"Newton method" -root 239000
"Newton method" "system of nonlinear 5620
equations" -root
"Newton method" "system of nonlinear 6570
equations" measurement
"Newton method" "system of nonlinear 4370
equations" measurement -root
Метод Ньютона- "Newton-Raphson method" "system of 3860
Рафсона nonlinear equations"
"Newton-Raphson method" -root 82000
"Newton-Raphson method" "system of 2550
nonlinear equations" -root
"Newton-Raphson method" "system of 3280
nonlinear equations" measurement
"Newton-Raphson method" "system of 2150
nonlinear equations" measurement -root
Метод секущих "Secant method" "system of nonlinear equations" 869
"Secant method" -root 13700
"Secant method" "system of nonlinear 368
equations" -root
"Secant method" "system of nonlinear 696
equations" measurement
"Secant method" "system of nonlinear 282
equations" measurement -root
Метод простой "Fixed-point iteration" "system of nonlinear 888
итерации equations"
"Fixed-point iteration" -root 23700
"Fixed-point iteration" "system of nonlinear 537
equations" -root
"Fixed-point iteration" "system of nonlinear 798
equations" measurement
"Fixed-point iteration" "system of nonlinear 480
equations" measurement -root
Метод бисекции "Bisection method" "system of nonlinear equations" 578
"Bisection method" -root 25700
"Bisection method" "system of nonlinear 197
equations" -root
"Bisection method" "system of nonlinear 482
equations" measurement
"Bisection method" "system of nonlinear 163
equations" measurement -root
Из табл. 1.3 видно, что наибольшее количество упоминаний в литературе приходится на метод Ньютона (при этом возможно, что данный результат включает в себя также и упоминания метода Ньютона-Рафсона). Следующим по популярности является метод секущих, далее идет метод простой итерации, и последним является метод бисекции. При этом при втором из приведенных поисковых запросов такое больше количество результатов возможно из-за упоминания данных методов в литературе, в которой они используются не для решения систем уравнений.
Похожие диссертационные работы по специальности «Другие cпециальности», 00.00.00 шифр ВАК
Алгоритмическое обеспечение численного моделирования линейных процессов оптимального управления2001 год, доктор физико-математических наук Александров, Владимир Михайлович
Необходимые и достаточные условия квалифицированной сходимости итерационных методов аппроксимации решений нерегулярных операторных уравнений в банаховом пространстве2008 год, кандидат физико-математических наук Ключев, Вячеслав Валерьевич
Применение метода недоопределенных вычислений в математическом моделировании1999 год, кандидат физико-математических наук Кашеварова, Тамара Петровна
Численный метод и алгоритм решения обратных коэффициентных задач акустического зондирования функционально-градиентных материалов2017 год, кандидат наук Темьянов Булат Каримович
Численное моделирование задач с неопределенностями в данных1998 год, доктор физико-математических наук Добронец, Борис Станиславович
Список литературы диссертационного исследования кандидат наук Целищева Анастасия Алексеевна, 2023 год
Использование
Председатель комиссии:^
Члены комиссии:
fj tCu f H.A. Керро
O.E. Шаповалов
Акт о внедрении результатов диссертационного исследования
Утверждаю Директор Института компьютерных наук и технологии
ФГАОУ ВО «СПбПУ» Л. В. Уткин'"
«30» июня 2022 г,
V
АКТ
о внедрении результатов диссертационной работы Цслищевой Анастасии Алсксссвна на соискание ученой степени кандидата технических наук на тему «Методы метрологически обоснованного решения уравнений и систем уравнений при измерениях^ выполняемых информационно-измерительными системами»
Комиссия в составе:
Председатель: директор Высшей школы киберфизичеёких систем и управления, д.т.н., профессор В. П. Шкоды рев
Члены комиссии: руководитель ОП 27.03.01, 27.04.01, доцент, к.т.н В, А. Сушнмков, доцент, к.т.н. В. Ю. Сальников составили настоящий акт о том, что в йаучно-образовательной деятельности ФГАОУ ВО «СПбПУ» были использованы следующие результаты диссертационной работы Целищевой А.А
I Оценки погрешностей корней нелинейных уравнений и решений систем нелинейных уравнений косвенных измерений, в качестве коэффициентов которых выступают результаты прямых измерений и функции от их значений.
2. Правила остановки итерационных процедур решения нелинейных уравнений, согласующие момент их остановки с точностью их коэффициентов.
Материалы, полученные в результате проведенных в диссертации исследований, используются при разработке учебных программ по дисциплинам «Обработка данных» и «Обработка данных в высокоточных измерительных системах», которые соответствует государственным образовательным стандартам по направлениям 27.03.01 и 27.04.01 «Стандартизация и метрология».
Председатель комиссии: Члены комиссии:
у
Шкодырев В.П. Суш никоВ В.А. Сальников В.К)
Приложение А
Исходный код для вычисления оценок погрешности корня уравнения, возникающих из-за влияния неточности коэффициентов этого уравнения, с помощью метода Монте-Карло, описанного в п.1.6. monteCarlo.m % Метод Монте-Карло
function [root, errors_int, rootslog] = monteCarlo(method, x0, N, f, Ip_in, param, dparam) % Входные параметры:
% method - переменная, указывающая, каким методом находим корень: % method = 1 - fzero, method = 2 - fsolve; % x0 - первое приближение;
% N - количество испытаний в методе Монте-Карло; % f - указатель на функцию, корень которой требуется найти; % Ip_in - интервал возможных значений величины p; % param - параметры уравнения; % dparam - погрешности параметров уравнения. % Выходные параметры:
% root - результат, получаемый после выполнения функции; % errors_int - значение пределов погрешности приближения; % rootslog - все полученные значения корня.
global p dp; % Параметры уравнения
% Случайные значения из интервалов.
if (nargin <= 5 && isempty(p)) || (nargin <= 6 && isempty(dp))
error('Не заданы параметры функции.'); end
if exist('param','var')
p = param; end
if exist('dparam','var')
dp = dparam; end
pb = p; % Сохраняем входные значения параметров уравнения if exist('Ip_in','var')
Ip = Ip_in; else
for k = 1:length(p)
Ip{k} = [p(k) - dp(k), p(k) + dp(k)]; % Интервал возможных значений величины p(k) end end
for k = 1 : length(p)
p_rand{k} = unifrnd(Ip{k}(1), Ip{k}(2), [N, 1]); end
xlen = length(x0);
% Переменные для сохранения результатов if xlen > 1 % для поиска решений систем уравнений
roots = zeros(N, xlen); else
roots = zeros(N, 1);
if xlen > 1 % для поиска решений систем уравнений используем fsolve
method = 2; end
% Расчет без погрешности. switch method
case 1 % Вычисление корня уравнения с помощью метода fzero
res0 = fzero(f, x0); case 2 % Вычисление корня уравнения с помощью метода fsolve options = optimoptions('fsolve','Display7off); res0 = fsolve(f, x0, options);
end
% Расчет с погрешностью. forj = 1:N
for k = 1:length(p)
p(k) = p_rand{k}(j); end
switch method
case 1 % Вычисление корня уравнения с помощью метода fzero
res = fzero(f, x0); case 2 % Вычисление корня уравнения с помощью метода fsolve options = optimoptions('fsolve','Display','off); res = fsolve(f, x0, options);
end
roots(j,:) = res; end
% Определение интервалов возможных значений. if xlen > 1 % для поиска решений систем уравнений for i = 1 :xlen
errors_int(:, :, i) = [min(roots(:,i)), max(roots(:,i))]; end else
errors_int = [min(roots), max(roots)]; end
root = res0; rootslog = roots; p = pb; end
Приложение Б
Исходный код для вычисления оценок погрешности корня уравнения, возникающих из-за влияния неточности коэффициентов этого уравнения, аналитическим способом по формулам (2.6) и (2.7). analytmeth.m
function dx = analytmeth(meth, f, x0, derfx, derfp, derfxp) switch meth case 1
if exist('derfx','var') && exist('derfp','var')
dx = findErrXAnalytMeth 1(x0, f, derfx, derfp); else
dx = findErrXAnalytMeth 1(x0, f); end case 2
if exist('derfx','var') && exist('derfp','var')
dx = findErrXAnalytMeth2(x0, f, derfx, derfp, derfxp); else
dx = findErrXAnalytMeth2(x0, f); end otherwise
disp('Ошибка: не выбран метод')
end end
function dx0 = findErrXAnalytMeth1(x0, f, derfx, derfp) % Функция, которая выполняет оценку погрешности корня уравнения, % возникающую из-за неточности коэффициентов. % (Учитываются слагаемые первого порядка в ряду Тейлора) % Входные параметры:
% x0 - корень, погрешность которого требуется вычислить; % f - указатель на функцию, погрешность корня которой требуется найти; % derfx - указатель на производные функции f по x; % derfp - указатель на производные функции f по p. % Выходные параметры: % dx0 - оценка погрешности корня уравнения. global dp; k = size(dp, 2); dx0 = 0;
dx = zeros(k, 1);
if exist('derfx','var') && exist('derfp','var')
dfx = derfx(xO); % вычисляются производные по x dfp = derfp(xO); % вычисляются производные по p else
[dfx, dfp] = findDiffFunc(x0, f); % вычисляются производные по x и по p end
for i = 1:k % в цикле вычисляется оценка погрешности корня dx(i) = abs(dfp(i) / dfx) * dp(i); dx0 = dx0 + dx(i); end end
function dx0 = findErrXAnalytMeth2(x0, f, derfx, derfp, derfxp) % Функция, которая выполняет оценку погрешности корня уравнения, % возникающую из-за неточности коэффициентов. % (Учитываются слагаемые первого и второго порядка в ряду Тейлора) % Входные параметры:
% x0 - корень, погрешность которого требуется вычислить; % f - указатель на функцию, погрешность корня которой требуется найти; % derfx - указатель на производные функции f по x; % derfp - указатель на производные функции f по p. % Выходные параметры: % dx0 - оценка погрешности корня уравнения. global dp; k = size(dp, 2);
if exist('derfx','var') && exist('derfp','var') && exist('derfxp','var') [dfxl, dfx2] = derfx(xO); % вычисляются производные по x [dfp, dfp2] = derfp(xO); % вычисляются производные по p dfxp = derfxp(xO); % вычисляются смешанные производные по x, p else
[dfxl, dfx2] = findDiffFuncX(x0, f); % вычисляются производные по x [dfp, dfp2] = findDiffFuncP(x0, f); % вычисляются производные по p dfxp = findDiffFuncXP(x0, f); % вычисляются смешанные производные по x, p end
% все комбинации знаков. num = length(dp); set = cell(1, num); for ind = 1 : num
set{ind} = [-1, 1]; end
[S0{1:num}] = ndgrid(set{:}); for i = num:-1:1
S(:,i) = S0{i}(:); end
% вычисление дискриминанта D = zeros(1, 2Anum); sum = zeros(1, 2Anum); for ind = 1 : 2Anum sum1 = 0; for i = 1:k
sum1 = sum1 + dfxp(i) * dp(i) * S(ind,i); end
sum(ind) = sum1; sum2 = 0; for i = 1:k
sum2 = sum2 + dfp(i) * dp(i) * S(ind,i); end
sum3 = 0; for i = 1:k forj = 1:k
sum3 = sum3 + dfp2(i, j) * dp(i) * S(ind,i) * dp(j) * S(ind,j); end end
D(ind) = (dfx1 + sum1)A2 - dfx2 * (2 * sum2 + sum3);
% вычисление оценки погрешности корня dx = abs(sign(dfx1) * sqrt(D) - (dfx1 + sum)) / abs(dfx2); dx0 = max(dx); end
function [dfx, dfp] = findDiffFunc(x, f)
% Функция, которая выполняет вычисление производных функции по x и по p для % определенного значения x. % Входные параметры:
% func - указатель на функцию, чье значение вычисляется; % x - аргумент, при котором требуется вычислить значение функции. % Выходные параметры:
% dfx - значение производной функции f в точке x; % dfp - значение (вектор) производной функции f по p в точке x. alpha = 10Л-100; % Заведомо малая величина.
global p; % Вектор параметров функции и пределы их погрешности. paramLength = length(p);
% Определяются значение производной функции x = x + 1i * alpha; % К x прибавляется мнимая единица, умноженная
% на заведомо малое число. fx = f(x); % Исследуемое значение функции при x. x = real(x); % Вектор x приводится к начальному виду. dfx = imag(fx) / alpha; % Производная значения функции f по x. dfp = zeros(paramLength, 1); fx = zeros(paramLength, 1);
% В цикле определяются производные функции f по каждому p for k = 1:paramLength
p(k) = p(k) + 1i * alpha; % К i-му элементу вектора р прибавляется % мнимая единица, умноженная на заведомо малое число. fx(k) = f(x); % Исследуемое значение функции. p(k) = real(p(k));
% Оценка производных значения функции к значениям ее параметров. dfp(k) = imag(fx(k)) / alpha; end end
function [df1, df2] = findDiffFuncX(x, f)
% Функция, которая выполняет вычисление производных функции по x для % определенного значения x. % Входные параметры:
% f - указатель на функцию, чье значение вычисляется; % x - аргумент, при котором требуется вычислить значение функции. % Выходные параметры:
% df1 - значение первой производной функции f в точке x; % df2 - значение второй производной функции f в точке x. eps = 10Л-5;
df1 = (f(x + eps) - f(x)) / eps; df2 = (f(x + eps) - 2*f(x) + f(x - eps)) / epsЛ2; end
function [dfp, dfp2] = findDiffFuncP(x, f)
% Функция, которая выполняет вычисление производных функции по p для % определенного значения x. % Входные параметры:
% f - указатель на функцию, чье значение вычисляется; % x - аргумент, при котором требуется вычислить значение функции. % Выходные параметры:
% dfp - значение производной функции f по p в точке x; % dfp2 - значение (вектор) производной функции f по разным сочетаниям % параметров p в точке x. global p; k = size(p, 2); param = p; param1 = p; param2 = p; eps = 10A-5; dfp = zeros(k, 1); fx = f(x);
for i = 1:k % в цикле находим частные производные второго порядка
% функции по двум параметрам p(i) = p(i) + eps;
fp = f(x);
p = param;
dfp(i) = (fp - fx) / eps; end
dfp2 = zeros(k, k);
for i = 1:k % в цикле находим частные производные второго порядка % функции по двум параметрам param1(i) = param 1(i) + eps; forj = 1:k
if i == j % если индексы равны - вычисляется производная функции
% второго порядка по одному параметру p(i) = p(i) + eps;
fpplus = f(x);
p = param;
p(i) = p(i) - eps;
fpmin = f(x); p = param;
dfp2(i, j) = (fpplus - 2*fx + fpmin) / epsA2; else % если индексы не равны - вычисляется производная функции % второго порядка по двум разным параметрам param2(j) = param2(j) + eps;
p(i) = param1(i); % находим f при (p1+eps,p2+eps) p(j) = param2(j); fp1p2 = f(x); p = param;
p(i) = param1(i); % находим f при (p1+eps,p2)
fp1 = f(x);
p = param;
p(j) = param2(j); % находим f при (p1,p2+eps) fp2 = f(x); p = param;
dfp2(i, j) = ((fp1p2 - fp1) / eps - (fp2 - fx) / eps) / eps; param2(j) = param(j); end end
param1(i) = param(i); end end
function dfxp = findDiffFuncXP(x, f)
% Функция, которая выполняет вычисление смешанных производных функции по x % (по различным) р для определенного значения x. % Входные параметры:
% f - указатель на функцию, чье значение вычисляется; % x - аргумент, при котором требуется вычислить значение функции. % Выходные параметры:
% dfxp - значение (вектор) смешанных производных функции f по x, p. global p; k = size(p, 2); param = p; eps = 10Л-5;
ff = f(x); % находим f при (x,p)
fx = f(x + eps); % находим f при (x+eps,p)
dfxp = zeros(k, 1);
for i = 1:k % в цикле находим смешанные производные функции по x, p p(i) = p(i) + eps;
fxp = f(x + eps); % находим f при (x+eps,p(i)+eps) fp = f(x); % находим f при (x,p(i)+eps) p = param;
dfxp(i) = ((fxp - fx) / eps - (fp - ff) / eps) / eps; end end
Исходный код для вычисления оценок погрешности корня уравнения, являющегося полином степени к, возникающих из-за влияния неточности коэффициентов этого уравнения, аналитическим способом по формулам (2.8) и (2.9). polynom.m
function dx = polynom(meth, x0, a, da) switch meth case 1
dx = findErrXPol 1(x0, a, da); case 2
dx = findErrXPol2(x0, a, da); otherwise
disp('Ошибка: не выбран метод')
end end
function dx0 = findErrXPol1(x0, a, da)
% Функция, которая выполняет оценку погрешности корня уравнения, % возникающую из-за неточности коэффициентов. % (Учитываются слагаемые первого порядка в ряду Тейлора) % Входные параметры:
% x0 - корень, погрешность которого требуется вычислить;
% a - вектор коэффициентов полинома; % da - вектор погрешностей коэффициентов полинома. % Выходные параметры: % dx0 - оценка погрешности корня уравнения. k = size(a, 2); n = 0; for i = 1:k
n = n + abs(x0A(i-1)) * da(i); end d = 0; for j = 2:k
d = d + (j - 1) * a(j) * x0A(j - 2); end
dx0 = n / abs(d); end
function dx0 = findErrXPol2(x0, a, da)
% Функция, которая выполняет оценку погрешности корня уравнения, % возникающую из-за неточности коэффициентов. % (Учитываются слагаемые первого и второго порядка в ряду Тейлора) % Входные параметры:
% x0 - корень, погрешность которого требуется вычислить; % a - вектор коэффициентов полинома; % da - вектор погрешностей коэффициентов полинома. % Выходные параметры: % dx0 - оценка погрешности корня уравнения. k = size(a, 2);
% все комбинации знаков. num = length(da); set = cell(1, num); for ind = 1 : num
set{ind} = [-1, 1]; end
[S0{1:num}] = ndgrid(set{:}); for i = num:-1:1
S(:,i) = S0{i}(:); end
% вычисление дискриминанта D = zeros(1, 2Anum); dfxa = zeros(1, 2Anum); sum1_1 = 0; for i = 2:k
sum1_1 = sum1_1 + (i - 1) * a(i) * x0A(i - 2); end
dfx1 = sum1_1; sum2 = 0; for i = 3:k
sum2 = sum2 + (i - 1) * (i - 2) * a(i) * x0A(i - 3); end
dfx2 = sum2; for ind = 1 : 2Anum sum1_2 = 0; for i = 2:k
sum1_2 = sum1_2 + (i - 1) * x0A(i - 2) * da(i) * S(ind,i); end
dfxa(ind) = sum1_2; sum3 = 0; for i = 1:k
sum3 = sum3 + abs(x0A(i - 1)) * da(i) * S(ind,i); end
D(ind) = (sum1_1 + sum1_2)A2 - 2 * abs(sum2) * sum3; end
% вычисление оценки погрешности корня dx = abs(sqrt(D) - (dfx1 + dfxa)) / abs(dfx2); dx0 = max(dx); end
Код моделирования для примеров из п. 2.1.2, где выполняется оценка
погрешности корня уравнения с помощью разработанного подхода.
Исходный код для вычисления оценок погрешности корня для
уравнения (2.10) при использовании процедуры из analytmeth.m.
f = @myfun; % Указатель на решаемое уравнение global p dp;
p(1) = -27; % Коэффициенты уравнения p(2) = 3;
dp(1) = 0.2; % Погрешности коэффициентов уравнения dp(2) = 0.1;
x0 = 3; % Корень уравнения
derfx = @derXmyfun;
derfp = @derPmyfun;
derfxp = @derXPmyfun;
dx_1 = analytmeth(1, f, x0, derfx, derfp)
dx_2 = analytmeth(2, f, x0, derfx, derfp, derfxp)
dx_3 = analytmeth(1, f, x0)
dx_4 = analytmeth(2, f, x0) %--------------------------------------------------------------------------
function f = myfun(x) % функция, погрешность корня которой ищется % x - значение переменной x, в которой находится значение функции global p;
f = p(2) * xA2 + p(1); % Уравнение end
function [df1, df2] = derXmyfun(x) % производные функции myfun по x global p;
df1 = 2 * p(2) * x; df2 = 2 * p(2); end
function [dfp1, dfp2] = derPmyfun(x) % производные функции myfun по p global p; dfp1(1) = 1; dfp1(2) = xA2; k = size(p, 2); dfp2 = zeros(k, k);
function dfxp = derXPmyfun(x) % производные функции myfun по x, p global p; dfxp(1) = 0; dfxp(2) = 2 * x; end
Исходный код для вычисления оценок погрешности корня для уравнения (2.10) при использовании процедуры из polynom.m.
a(1) = -27; % Коэффициенты уравнения a(2) = 0; a(3) = 3;
da(1) = 0.2; % Погрешности коэффициентов уравнения da(2) = 0; da(3) = 0.1;
x0 = 3; % Корень уравнения dx_1 = polynom(1, x0, a, da) dx_2 = polynom(2, x0, a, da)
Исходный код для вычисления оценок погрешности корня для уравнения (2.11) c использованием процедуры из analytmeth.m.
f = @myfun2; % Указатель на решаемое уравнение global p dp;
p(1) = 2.00; % Коэффициенты уравнения p(2) = 9.00;
dp(1) = 0.05; % Погрешности коэффициентов уравнения dp(2) = 0.15;
x0 = 1.0986; % Корень уравнения
derfx = @derXmyfun2;
derfp = @derPmyfun2;
derfxp = @derXPmyfun2;
dx_1 = analytmeth(1, f, x0, derfx, derfp)
dx_2 = analytmeth(2, f, x0, derfx, derfp, derfxp)
dx_3 = analytmeth(1, f, x0)
dx_4 = analytmeth(2, f, x0) %--------------------------------------------------------------------------
function f = myfun2(x) % функция, погрешность корня которой ищется % x - значение переменной x, в которой находится значение функции global p;
f = exp(p(1)*x) - p(2); % Уравнение end
function [df1, df2] = derXmyfun2(x) % производные функции myfun2 по x global p;
df1 = p(1)*exp(p(1)*x); df2 = (p(1^2)*exp(p(1)*x); end
function [dfp1, dfp2] = derPmyfun2(x) % производные функции myfun2 по p global p;
dfp1(1) = x*exp(p(1)*x); dfp1(2)=-1;
dfp2(1, 1) = (xA2)*exp(p(1)*x); dfp2(1, 2) = 0; dfp2(2 ,2) = 0; dfp2(1 ,2) = 0; end
function dfxp = derXPmyfun2(x) % смешанные производные функции myfun2 по x, p global p;
dfxp(1) = exp(p(1)*x) + p(1)*x*exp(p(1)*x); dfxp(2) = 0; end
Исходный код для вычисления оценок погрешностей решений систем уравнений, возникающих из-за влияния неточности коэффициентов этого уравнения, аналитическим способом по формуле (2.17). analytmethSystem.m
function dx = analytmethSystem(f, x0, derfx, derfp) if exist('derfx','var') && exist('derfp','var')
dx = findErrXAnalytSyst(x0, f, derfx, derfp); else
dx = findErrXAnalytSyst(x0, f); end end
function dx0 = findErrXAnalytSyst(x0, f, derfx, derfp)
% Функция, которая выполняет оценку погрешности решения системы уравнений, % возникающую из-за неточности коэффициентов. % (Учитываются слагаемые первого порядка в ряду Тейлора) % Входные параметры:
% x0 - решение системы, погрешность которого требуется вычислить; % f - указатель на систему уравнений, погрешность решения которой % требуется найти;
% derfx - указатель на производные функций f по x, матрица Якоби для % системы;
% derfp - указатель на производные функций f по p, матрица Jp. % Выходные параметры:
% dx0 - оценка погрешности решения системы уравнений. global dp; k = size(dp, 2); n = size(x0, 2); dx = zeros(k, 1); dx0 = zeros(n, 1);
% Вычисляются матрицы Jx и Jp (производные по x и по p). if exist('derfx','var') && exist('derfp','var') Jx = derfx(x0); Jp = derfp(x0); else
[Jx, Jp] = findDiffFunc(x0, f); end
g = Jx\(-Jp); % Вычисление матрицы G.
for i = 1:n % В цикле вычисляется оценка погрешности решения. forj = 1:k
dx(j) = abs(g(i, j))*dp(j); dx0(i) = dx0(i) + dx(j); % Сумма по строкам. end end end
function [Jx, Jp] = findDiffFunc(x, f)
% Функция, которая выполняет вычисление производных функции по x и по p для % определенного значения x. % Входные параметры: % f - указатель на систему уравнений;
% x - вектор аргументов, при котором требуется вычислить значение % производных функции. % Выходные параметры:
% Jx - значения матрицы Jx (производные функции f в точке x); % Jp - значения матрицы Jp (производные функции f по p в точке x). alpha = 10Л-100; % Заведомо малая величина.
global p; % Вектор параметров функции и пределы их погрешности. paramLength = length(p); xLength = length(x); dfx = zeros(1, xLength); Jx = zeros(xLength, xLength); % Определяются значения производных F. for i = 1:xLength for j = 1:xLength
% К i-му элементу вектора x прибавляется мнимая единица, % умноженная на заведомо малое число. x(j) = x(j) + 1i*alpha;
fx = f(x); % Исследуемое значение функции при x. x(j) = real(x(j)); % Вектор x приводится к начальному виду. dfx(j) = imag(fx(i))/alpha; % Производная значения функции f по x. end
Jx(i, :) = dfx; % Сохраняем строку в матрицу. end
dfp = zeros(1, paramLength); Jp = zeros(xLength, paramLength);
% В цикле определяются производные функции F по каждому p. for i = 1:xLength
for k = 1:paramLength
% К i-му элементу вектора р прибавляется мнимая единица, % умноженная на заведомо малое число. p(k) = p(k) + 1i*alpha;
fx = f(x); % Исследуемое значение функции. p(k) = real(p(k));
% Оценка производных значения функции к значениям ее параметров. dfp(k) = imag(fx(i))/alpha; end
Jp(i, :) = dfp; % Сохраняем строку в матрицу. end end
Код моделирования для примеров из п. 2.2.2, где выполняется оценка погрешностей решения систем уравнений с помощью разработанного подхода.
Исходный код для вычисления оценок погрешностей решения системы уравнений (2.18) при использовании процедуры из analytmethSystem.m.
f = @myfunsyst; % Указатель на решаемую систему уравнений global p dp;
p(1) = 4; % Коэффициенты уравнений p(2) = 1; p(3) = 8;
dp(1) = 0.15; % Погрешности коэффициентов уравнений dp(2) = 0.05; dp(3) = 0.25;
% Решение системы уравнений
x0(1) = 4;
x0(2) = 0.5;
derfx = @Jxmyfunsyst;
derfp = @Jpmyfunsyst;
dx_1 = analytmethSystem(f, x0, derfx, derfp)
dx_2 = analytmethSystem(f, x0) %--------------------------------------------------------------------------
function f = myfunsyst(s) % система уравнений, погрешность решения которой ищется % x - значение переменной x, в которой находится значение системы global p; x = s(:,1); y = s(:,2);
f1 = p(2) * x - p(1); % Уравнение 1 f2 = p(3) * y - p(1); % Уравнение 2 f = [f1, f2]; end
function Jx = Jxmyfunsyst(x) % матрица Якоби для myfunsyst (производные по x) global p; df_1 = [p(2), 0]; df_2 = [0, p(3)]; Jx = [df_1; df_2]; end
function Ja = Jpmyfunsyst(x) % матрица Ja для myfunsyst (производные по p) global p;
dfp_1 = [-1, x(1), 0]; dfp_2 = [-1, 0, x(2)]; Ja = [dfp_1; dfp_2]; end
Оценки погрешностей решения системы уравнений (2.19) при использовании процедуры из апа1у1ше1;Ь8ув1еш.ш.
f = @myfunsyst2; % Указатель на решаемую систему уравнений global p dp;
p(1) = 1; % Коэффициенты уравнений p(2) = 2; p(3) = 3; p(4) = 12;
dp(1) = 0.05; % Погрешности коэффициентов уравнений dp(2) = 0.10; dp(3) = 0.15; dp(4) = 0.25;
% Решение системы уравнений x0(1) = 2; x0(2) = 2;
derfx = @Jxmyfunsyst2; derfp = @Jpmyfunsyst2; dx_1 = analytmethSystem(f, x0, derfx, derfp)
dx_2 = analytmethSystem(f, x0) %--------------------------------------------------------------------------
function f = myfunsyst2(s) % функция, погрешность корня которой ищется % x - значение переменной x, в которой находится значение функции global p; x = s(:,1); y = s(:,2);
f1 = p(1^2 - p(2)*y; % Уравнение 1 f2 = p(з)*yЛ2 - p(4); % Уравнение 2 f = [f1, f2]; end
function Jx = Jxmyfunsyst2(s) % матрица Якоби для myfunsyst2 (производные по x) global p; x = s(:,1); y = s(:,2);
df_1 = [p(1)*2*x, -p(2)]; df_2 = [0, p(3)*2*y]; Jx = [df_1; df_2]; end
function Ja = Jpmyfunsyst2(s) % матрица Ja для myfunsyst2 (производные по p) global p; x = s(:,1); y = s(:,2);
dfp_1 = K2, -y, 0, 0]; dfp_2 = [0, 0, уЛ2, -1]; Ja = [dfp_1; dfp_2]; end
Приложение В
Исходный код программы для поиска корня уравнения с помощью разработанного метода интервальной бисекции, описанного в п. 3.1.1, с использованием разных правил остановки итерационного процесса из п. 3.1.1 и 3.3.2. bisection1D.m
function [x, intervalErrorRoot, numIter, LogRoot, LogBoundaries] = ... bisection1D(func, interval, errorRoot, opt, param, dparam)
%bisection1D: поиск корня нелинейного уравнения func(x) = 0.
%
% bisection1D - метод бисекции, выполняет поиск корня
% уравнения с учетом погрешностей коэффициентов методом метрологического % автосопровождения и представляет их в соответствии с требованиями
% метрологии. %
% bisection1D(func, interval, errorRoot) находит решение
% x для уравнения func(x)=0 на отрезке interval, а также пределы
% intervalErrorRoot его наследственной погрешности, вызванной неточностью
% коэффициентов уравнения. Уточнение корня происходит до тех пор, пока
% погрешность его определения не станет меньше значения входной
% переменной errorRoot или число достоверно определенных значащих цифр в
% ней не достигнет значения opt.numSignificantDigit. Процедура
% иллюстрирует процесс определения решения и его погрешности на графиках.
%
% x = bisection1D(func, interval, errorRoot) находит
% решение x для заданного уравнения Ш^(х)=0 на отрезке interval
% до тех пор, пока погрешность определения корня не станет меньше
% величины errorRoot. Метод метрологического автосопровождения не
% используется. %
% [x, intervalErrorRoot] = bisection1D(func, interval,
% errorRoot) находит корень x и пределы его погрешности
% intervalErrorRoot, унаследованные от неточных коэффициентов решаемого
% уравнения func^)^. Корень отыскивается на отрезке interval для
% заданной погрешности. Уточнение корня происходит до тех пор, пока
% погрешность его определения не станет меньше значения входной
% переменной errorRoot или число достоверно определенных значащих цифр в
% ней не достигнет значения opt.numSignificantDigit.
%
% [x, intervalErrorRoot, numIter] = bisection1D(...)
% возвращает пользователю значение переменной numIter, содержащей
% количество выполненных итераций, затраченных на поиск корня, а также
% на определение пределов его погрешности.
%
% [x, intervalErrorRoot, numIter, LogRoot] = bisection1D(...)
% возвращает переменную LogRoot, содержащую последовательность всех
% полученных промежуточных приближений корня. %
% [x, intervalErrorRoot, numlter, LogRoot, LogBoundaries] = bisection1D(...)
% возвращает значение переменной LogBoundaries, содержащей всех полученных
% промежуточных значений левой и правой границ интервала возможной
% погрешности корня. %
% [...] = bisection1D(..., opt) принимает на вход
% структуру opt, определяющую настройки итерационной процедуры поиска
% корня уравнения.
%
% [...] = bisection1D(..., param) принимает на вход
% значения параметров решаемого уравнения func(x)=0. Значения переменной
% param также могут быть переданы в функцию через использование
% глобальной переменной p.
%
% [...] = bisection1D(..., param, dparam) принимает на
% вход значения параметров решаемого уравнения func(x)=0 и пределов его
% возможной погрешности. Значения переменной dparam также могут быть
% переданы в функцию через глобальную переменную dp.
%
% Входные параметры:
% func - указатель на функцию, корень которой требуется найти;
% interval - значение левой и правой границы отрезка, локализующего
% корень (вектор);
% errorRoot - заданный предел возможной погрешности вычисления
% корня (скаляр);
% opt - структура типа options, содержащая настройки итерационной
% процедуры, где можно задать параметры:
% - Maxlter - константа, задающая максимальное число итераций,
% выполняемых при поиске корня уравнения (положительное целое число)
% (по умолчанию равно 500);
% - StopRule - константа, определяющая используемое правило остановки:
% - 1 - остановка, когда оценки погрешности внутри и снаружи
% интервала, после их округления, равны (по умолчанию);
% - 2 - остановка, когда оценки погрешности интервала на текущем
% и предыдущем шаге, после их округления, равны;
% - TypeRoundRes - константа, определяющая используемый способ
% предоставления результата intervalErrorRoot:
% - 1 - конечный результат без округления (по умолчанию);
% - 2 - конечный результат округлен - левая граница в меньшую
% сторону, правая - в большую;
% - numSignificantDigit - константа, определяющая количество значащих
% цифр в значении предела возможной погрешности корня (положительное
% целое число) или при "[]" (пустом значении) - округление по правилам
% метрологии (по умолчанию);
% - DispRes - флаг, определяющий требуется ли вывод результата:
% - 0 - не выводить (по умолчанию);
% - 1 - вывод;
% - DispGraph - флаг, определяющий требуется ли строить графики:
% - 0 - без графиков (по умолчанию);
% - 1 - графики строить;
% - DispGraphStage1 - флаг, определяющий требуется ли строить графики,
% полученные на первой стадии метода:
% - 0 - без графиков (по умолчанию, если DispGraph = 0);
% - 1 - графики строить (по умолчанию, если DispGraph = 1);
% - DispGraphStage2 - флаг, определяющий требуется ли строить графики,
% полученные на второй стадии метода:
% - 0 - без графиков (по умолчанию, если DispGraph = 0);
% - 1 - графики строить (по умолчанию, если DispGraph = 1);
% - DispGraphFinX - флаг, определяющий требуется ли строить графики,
% иллюстрирующие полученные приближения корня и оценки его погрешности
% на каждом шаге:
% - 0 - без графиков (по умолчанию, если DispGraph = 0);
% - 1 - графики строить (по умолчанию, если DispGraph = 1);
% - DispGraphStage1IterNum - флаг, определяющий требуется ли на
% графиках первой стадии метода указывать номера итераций:
% - 0 - не указывать (по умолчанию, если DispGraph = 0);
% - 1 - указывать (по умолчанию, если DispGraph = 1);
% - DispGraphSave - флаг, определяющий требуется ли сохранять графики:
% - 0 - не сохранять (по умолчанию);
% - 1 - сохранять;
% param - параметры уравнения (вектор);
% dparam - пределы возможной погрешности параметров уравнения (вектор).
%
% Выходные параметры:
% x - значение найденного корня (скаляр);
% intervalErrorRoot - пределы возможных значений корня (вектор);
% LogRoot - значение приближения корня на i-м шаге процедуры (вектор);
% numlter - количество выполненных итераций (скаляр);
Обратите внимание, представленные выше научные тексты размещены для ознакомления и получены посредством распознавания оригинальных текстов диссертаций (OCR). В связи с чем, в них могут содержаться ошибки, связанные с несовершенством алгоритмов распознавания. В PDF файлах диссертаций и авторефератов, которые мы доставляем, подобных ошибок нет.