F(X)=0, метод решения систем нелинейных уравнений

Форум для обсуждения вопросов математики

Модератор: Admin

алексей_алексей
Сообщения: 1776
Зарегистрирован: Вс май 01, 2005 9:02 pm

Сообщение алексей_алексей » Пт окт 12, 2012 11:26 am

s
Последний раз редактировалось алексей_алексей Чт июн 16, 2016 7:39 pm, всего редактировалось 1 раз.

uni
Сообщения: 1817
Зарегистрирован: Сб ноя 13, 2004 3:06 pm
Откуда: п.г.т. Излучинск
Контактная информация:

Сообщение uni » Пт окт 12, 2012 12:33 pm

Вот мой набросок решателя на Maple:

1. Draghilev.mws
2. Draghilev.pdf

Это пока черновой вариант. В pdf можно посмотреть на результат расчёта. Здесь я использовал свою технику с подстановкой координат точки как параметров. Хотя сейчас есть деление на две части, но зависимость численной от символьной ещё осталась, т.е. изменив координату точки нужно всё равно всё пересчитать. Я пока не понял как это в maple побеждается.

Нужно быть внимательным. Теперь начальную точку нужно задавать в виде списка координат через запятую. Сама система формируется без какой-либо заданной начальной точки, предполагая, что это будут параметры (начальная точка войдёт в начальное условие для решения диффура).

Можно выполнить блок формирования системы, а потом вывести её элемент так: deqs[1];
При этом будет видно как изменилась форма записи.

В общем, нужно ещё чуть-чуть подумать и доделать, чтобы было как у меня.

uni
Сообщения: 1817
Зарегистрирован: Сб ноя 13, 2004 3:06 pm
Откуда: п.г.т. Излучинск
Контактная информация:

Сообщение uni » Пт окт 12, 2012 3:02 pm

Вот именно так должны выглядеть листинги цивилизованного математика-программиста, а не так как у Аладьева или 99% местных шедевров программистской мысли. Ещё бы желательна подсветка синтаксиса, конечно.

Так что не всё то ориентир, что собрано в кучу и помечено красным, любым инструментом надо владеть, иначе самокатом может оказаться код в maple, а не самодельная программа.

uni
Сообщения: 1817
Зарегистрирован: Сб ноя 13, 2004 3:06 pm
Откуда: п.г.т. Излучинск
Контактная информация:

Сообщение uni » Сб окт 13, 2012 1:47 pm

Вот, вроде готово. Испробовать можно на примере, что тут уже был:

Код: Выделить всё

cos(x) + cos(y) - 0.2 = 0;
cos(x) + cos( y + Pi / 2 ) - 0.2 = 0


Эта система имитирует бесконечное множество решений на изолированных кривых.

Первая точка взята как: x0 := 1.5, 1.441170822

Код: Выделить всё

x0 := subs( fsolve( { f1( x, y ), x - 1.5 }, { x = 1.5, y = 2 } ), [ x, y ] )[i] $ i = 1 .. 2;


Вторая: x0 := 5.000000000, 1.654556418

Код: Выделить всё

x0 := subs( fsolve( { f1( x, y ), x - 5 }, { x = 6, y = 2 } ), [ x, y ] )[i] $ i = 1 .. 2;


Как видно на отчёте, система у нас одна, но мы можем подставлять разные начальные точки: Отчёт

Вот сам расчётный документ: Draghilev. Example1.mws

Самое интересное, что можно использовать все те численные решатели, что были до сих пор. Т.е. нужно только в dsolve() подставить новые deqs, ics, а в остальном всё можно старое использовать.

То, что помечено как "Часть 1. Cоставление системы" нужно исполнить только один раз, когда забили систему. Ниже уже используется готовая система, которая будет находится в переменной deqs.

Причём систему можно описывать стандартным образом через x и y, как я показал, а можно делать и векторную запись, если понадобится.

Весь метод теперь укладывается в один вызов функции:

Код: Выделить всё

# Формируем систему методом Драгилева
deqs := Draghilev(F):

Включать в эту функцию численные методы не стоит по описанным мною ранее причинам. Эта функция только лишь формирует систему для численного решателя.

Начальные условия теперь записываются так:

Код: Выделить всё

# Начальная точка (в виде списка через запятую)
x0 := subs( fsolve( { f1( x, y ), x - 1.5 }, { x = 1.5, y = 2 } ), [ x, y ] )[i] $ i =
1 .. 2:
# Переопределяем начальные условия, добавив параметры
ics := seq( x[i](0) = [ x0, 1, x0 ][i], i = 1 .. 2 * n + 1 ):


Здесь мы вычисляем произвольную начальную точку на одном уравнении, а потом хитро подставляем в численный решатель. Порядок там важен. Сначала непосредственно само начальное условие, потом известная нам единичка, а потом параметры. Этими параметрами в данном случае являются координаты всё той же начальной точки. Можно, кстати, ввести дополнительные параметры тем же манером, но это уже чуть сложнее, но по виду будет всё также.

На картинках в отчёте начальные точки помечены кружочками. Смысл, как я говорил, в том, что мы один раз посчитали общую систему и потом для каждого связного множества ищем свои корни. Система ведь у них одна для всех.

uni
Сообщения: 1817
Зарегистрирован: Сб ноя 13, 2004 3:06 pm
Откуда: п.г.т. Излучинск
Контактная информация:

Сообщение uni » Вс окт 14, 2012 11:08 pm

Решил попробовать приобщиться к базису Грёбнера и алгоритму тов. Бухбергера: И.В.Аржанцев, Базисы Грёбнера и системы алгебраических уравнений

После просмотра книжки по-диагонали я понял как я далёк от науки.

----------------

У этого курса две цели. Первая — продемонстрировать, что такие абстрактные теоремы, как теорема Гильберта о базисе или теорема Гильберта о нулях, имеют простую и весьма полезную интерпретацию в теории систем алгебраических уравнений. В случае теоремы Гильберта
о нулях существенно, чтобы система рассматривалась не над вещественными, а над комплексными числами. Это может послужить еще одной мотивировкой для введения комплексных чисел, естественность которых нередко вызывает сомнения у студентов–младшекурсников.

Вторая цель — ввести понятие базиса Грёбнера идеала и показать, насколько сильные алгоритмические методы это понятие предоставляет для решения общих систем алгебраических уравнений. В последние десятилетия базис Грёбнера идеала стал играть важную роль во многих
исследованиях по абстрактной алгебре, компьютерной алгебре, алгебраической геометрии, теории выпуклых многогранников, дискретной геометрии и других областях математики, и поэтому изложение первоначальных сведений по этому вопросу в рамках университетского курса представляется вполне уместным.

Мы не останавливаемся здесь на вычислительных аспектах теории, но изложенного материала вполне достаточно, например, для того, чтобы подготовленный студент написал программу, которая для произвольной системы алгебраических уравнений отвечала на вопрос, конечно или бесконечно число ее (комплексных) решений.

По нашему мнению, алгоритм Бухбергера и его применение к решению систем, изложенные в виде рецептов, доступны школьнику старших классов. Удивительно, что понятие базиса Грёбнера возникло в математике сравнительно недавно. Оно было введено Бруно Бухбергером в его диссертации 1965 г., написанной под руководством Вольфганга Грёбнера. Аналогичные идеи были высказаны также Х.Хиронакой и А.И.Ширшовым.
----------------

Теперь я знаю, почему в точках экстремума функции Химмельблау WolframAlpha подцепила несколько мнимых почти-нулей. А последние два абзаца очень оптимистичен. Я в конец почувствовал себя совершенно бесполезным на этом фоне (плакаю :cry: ).

алексей_алексей
Сообщения: 1776
Зарегистрирован: Вс май 01, 2005 9:02 pm

Сообщение алексей_алексей » Пн окт 15, 2012 8:25 am

s
Последний раз редактировалось алексей_алексей Чт июн 16, 2016 7:39 pm, всего редактировалось 1 раз.

алексей_алексей
Сообщения: 1776
Зарегистрирован: Вс май 01, 2005 9:02 pm

Анимация рычажного механизма

Сообщение алексей_алексей » Ср окт 17, 2012 8:36 pm

s
Последний раз редактировалось алексей_алексей Чт июн 16, 2016 7:39 pm, всего редактировалось 1 раз.

алексей_алексей
Сообщения: 1776
Зарегистрирован: Вс май 01, 2005 9:02 pm

Метод Драгилева

Сообщение алексей_алексей » Сб ноя 10, 2012 9:10 am

s
Последний раз редактировалось алексей_алексей Чт июн 16, 2016 7:39 pm, всего редактировалось 1 раз.

алексей_алексей
Сообщения: 1776
Зарегистрирован: Вс май 01, 2005 9:02 pm

Re: Метод Драгилева

Сообщение алексей_алексей » Вс ноя 11, 2012 3:07 pm

[
Последний раз редактировалось алексей_алексей Чт июн 16, 2016 7:40 pm, всего редактировалось 1 раз.

алексей_алексей
Сообщения: 1776
Зарегистрирован: Вс май 01, 2005 9:02 pm

Re: Метод Драгилева

Сообщение алексей_алексей » Ср ноя 14, 2012 12:55 pm

s
Последний раз редактировалось алексей_алексей Чт июн 16, 2016 7:40 pm, всего редактировалось 1 раз.

алексей_алексей
Сообщения: 1776
Зарегистрирован: Вс май 01, 2005 9:02 pm

Re: Метод Драгилева

Сообщение алексей_алексей » Чт ноя 22, 2012 11:00 am

s
Последний раз редактировалось алексей_алексей Чт июн 16, 2016 7:40 pm, всего редактировалось 1 раз.

алексей_алексей
Сообщения: 1776
Зарегистрирован: Вс май 01, 2005 9:02 pm

"численное решение" систем нелинейных параметр. у

Сообщение алексей_алексей » Вс янв 20, 2013 9:25 pm

s
Последний раз редактировалось алексей_алексей Чт июн 16, 2016 7:40 pm, всего редактировалось 1 раз.

алексей_алексей
Сообщения: 1776
Зарегистрирован: Вс май 01, 2005 9:02 pm

функция Химмельблау

Сообщение алексей_алексей » Чт янв 24, 2013 3:04 pm

s
Последний раз редактировалось алексей_алексей Чт июн 16, 2016 7:40 pm, всего редактировалось 1 раз.

алексей_алексей
Сообщения: 1776
Зарегистрирован: Вс май 01, 2005 9:02 pm

Re: "численное решение" систем нелинейных парамет

Сообщение алексей_алексей » Сб фев 09, 2013 8:28 pm

s
Последний раз редактировалось алексей_алексей Чт июн 16, 2016 7:41 pm, всего редактировалось 1 раз.

Олег Б.
Сообщения: 3
Зарегистрирован: Вт мар 19, 2013 9:23 pm

Сообщение Олег Б. » Вт мар 19, 2013 9:28 pm

http://jap.aip.org/resource/1/japiau/v1 ... horized=no

Здесь метод Драгилева использовался для решения одной задачи акустооптики. Работа содержит ссылку на статью в "Прикладной геометрии".