численное решение СНУ

численное решение СНУ - Messages

#1 Posted: 4/3/2010 6:43:30 PM
alekcey

alekcey

0 likes in 16 posts.

Group: User

Приветствую создателей!
Пока ничего не скачивал, но заглянул на http://smath.info/live/?lang=rus
Там немного поигрался с solve на многочленах чуть большей степени (8,16 и у второго члена 3 и 1, не меняя коэффициентов и свободного члена). Второго вещественного решения solve не находит. В других ситуациях, – при чуть большем расстоянии между корнями, – иногда находит… Но ведь это только одна переменная.
Если когда надумаете развить численное решение СНУ, то могу посодействовать добрым словом, начиная, например, с вещественных корней полиномов. samar заглядывал на экспоненту (там я алексей_алексей) и говорил:” Численные методы решения ОДУ и СНУ еще не реализованы. В ближайшем будущем за это возьмемся. Скорее всего это будет в виде отдельного плагина. ”. С численной реализацией ОДУ как базового инструмента можно очень далеко продвинуться в численном решении СНУ, много дальше, чем известные западные пакеты на сегодняшний день. Примеров тому уже есть на экспоненте.
#2 Posted: 4/3/2010 11:37:23 PM
Andrey Ivashov

Andrey Ivashov

2269 likes in 3729 posts.

Group: Super Administrator

Здравствуйте, Алексей.

Wrote

Пока ничего не скачивал, но заглянул на http://smath.info/live/?lang=rus


К сожалению времени на продолжение работы с Live версией у меня, пока, нет, а потому её возможности уже очень сильно уступают Desktop/Handheld версиям. Для тестирования Вы можете загрузить последнюю Desktop Portable бету (её не нужно устанавливать), надеюсь, она Вас приятно удивит последними нововведениями, в том числе и динамической помощью ввода функций, переменных и единиц измерения.

Wrote

Там немного поигрался с solve на многочленах чуть большей степени (8,16 и у второго члена 3 и 1, не меняя коэффициентов и свободного члена). Второго вещественного решения solve не находит. В других ситуациях, – при чуть большем расстоянии между корнями, – иногда находит…


Функция solve(..) действительно очень слабая.

Wrote

Если когда надумаете развить численное решение СНУ, то могу посодействовать добрым словом


Могу заняться этим в любой момент, если мне будет доступен эффективный метод. Буду рад помощи, т.к. самому мне сложно выделить время для задачи, которую нужно изучать с нуля... если Вы что-то порекомендуете, то это вполне может стать началом работы.

Wrote

начиная, например, с вещественных корней полиномов


В программе есть функция polyroots(..), которая позволяет находить в том числе и комплексные корни многочленов.

Wrote

... Скорее всего это будет в виде отдельного плагина...


Достойный метод вполне может через какое-то время (после тестирования) попасть и во встроенные библиотеки SMath Studio.

С уважением, Андрей Ивашов.
#3 Posted: 4/4/2010 4:29:59 PM
alekcey

alekcey

0 likes in 16 posts.

Group: User

Андрей, скачал, немного разобрался на примерах, как работает polyroots(..). Не скажу, что удобная форма задания через вектор коэффициентов. А как с полиномом большой степени, вот я дошёл до 30, и уже не очень удобно? И ещё, как больше значащих цифр задавать на выходе? Но работает мгновенно и, похоже, отлично. Молодцы. Не представляю даже, что за алгоритм.
Уже и не знаю теперь, что могу предложить со своей стороны. Конечно, есть глобальные планы, но до них нужно добраться. Может, попробуете для начала простой вариант метода Драгилева решения СНУ, который уже реализован на Маткаде? Он работает с начальными данными и примеры текстов у меня есть. Сам пакетами не владею, но уни и ещё несколько человек у нас (на экспоненте) его реализовали. У уни универсальный алгоритм, а есть текст, по которому понятен сам метод Драгилева. Одновременно с простым вариантом можно реализовать решение СНУ с числом переменных на единицу > числа уравнений. В случае одной степени свободы такие уравнения возникают, например, при расчёте кинематики пространственных рычажных механизмов. Можно делать анимацию на основе решения… На самом деле, это целое направление, которое ещё никто не начал осваивать.
Насчёт плагина я не писал, а привёл слова Вашего компаньона. Признаться, не знаю ещё, что это такое…
Сам я как-то осилил немного программирования на Паскале, чтобы продемонстрировать возможности, ну, и немного графики в точках, чтобы визуализировать. Но запала разбираться с документацией среды программирования нет по причине невостребованности, а теперь уже и возраста… Думаю, в случае необходимости, у Вашей компании получится реализовать всё и даже больше. Если будем общаться, то, наверное, через почту? Возможно, Вы сначала захотите посмотреть примеры и вообще…
Похоже, в Вашем пакете не строятся неявные графики, я не ошибся? Тогда, почему не строятся?
#4 Posted: 4/5/2010 11:35:42 AM
Andrey Ivashov

Andrey Ivashov

2269 likes in 3729 posts.

Group: Super Administrator

Здравствуйте.

Wrote

А как с полиномом большой степени, вот я дошёл до 30, и уже не очень удобно?


Как вариант, можно каждый элемент массива перед использованием в polyroots(..) задавать отдельно, с помощью функции el(..), а не вписывать все элементы в массив при его задании.


Wrote

И ещё, как больше значащих цифр задавать на выходе?


В меню "Сервис" > "Опции" > вкладка "Вычисление" > пункт "Точность ответа".


Wrote

Похоже, в Вашем пакете не строятся неявные графики, я не ошибся? Тогда, почему не строятся?


Это правда. Не строятся они потому, что я не нашёл на это времени. На грамотную реализацию любого нового функционала в программе, часто, приходится жертвовать несколькими днями, неделями, а иногда и месяцами жизни (с учётом того, что в день я на SMath Studio трачу в среднем от 2 до 10 часов своего времени). Заметьте, что есть ешё и основная работа, что нужно осуществлять поддержку многочисленных пользователей по всем возможным средствам связи, что постоянно находятся ошибки в уже существующих функциях программы, что помимо создания нового и исправлении старого нужно ещё и проводить оптимизацию кода (иначе прогррамма просто "задохнётся" изнутри), что нужно осуществлять поддержку сервера, сети и сайтов проекта, что любой функционал требует проверки и оптимизации под разные типы устройств и разные операционные системы и т.п... Потому-то не так и просто занятся не самой приоритетной задачей.

Wrote

Может, попробуете для начала простой вариант метода Драгилева решения СНУ, который уже реализован на Маткаде?
...
Если будем общаться, то, наверное, через почту? Возможно, Вы сначала захотите посмотреть примеры и вообще…


Конечно, мой email andrey@smath.info.

С уважением, Андрей Ивашов.
#5 Posted: 4/14/2010 11:17:49 AM
kmihaylovich

kmihaylovich

8 likes in 131 posts.

Group: User

Wrote

Может, попробуете для начала простой вариант метода Драгилева решения СНУ


Каким методом предполагается решать полученную систему ОДУ?
#6 Posted: 4/14/2010 5:07:49 PM
alekcey

alekcey

0 likes in 16 posts.

Group: User

Wrote


Каким методом предполагается решать полученную систему ОДУ?


Уже давно решается разными методами. На Маткаде – Рунге-Кутта, на Паскале – Хемминга, а на Мэпле – не знаю (не помню, вернее).
Для профессиональной же реализации метод решения ОДУ не принципиален по причинам, связанным с особенностями подхода к общей идее…
#7 Posted: 4/14/2010 6:16:27 PM
kmihaylovich

kmihaylovich

8 likes in 131 posts.

Group: User

Wrote


Уже давно решается разными методами. На Маткаде – Рунге-Кутта, на Паскале – Хемминга, а на Мэпле – не знаю (не помню, вернее).
Для профессиональной же реализации метод решения ОДУ не принципиален по причинам, связанным с особенностями подхода к общей идее…


В случае, если система ОДУ будет "жесткой", то разве ее решение будет более простой задачей нежели метод Ньютона-Рафсона?
#8 Posted: 4/14/2010 7:20:40 PM
alekcey

alekcey

0 likes in 16 posts.

Group: User

Wrote


В случае, если система ОДУ будет "жесткой", то разве ее решение будет более простой задачей нежели метод Ньютона-Рафсона?


Тут ситуация другая. Показано, например, что метод Ньютона является частным случаем метода Драгилева. Потом, сам метод Драгилева способен (пока нечасто) находить все решения системы, решать уравнения с числом переменных > числа уравнений – с его помощью находились уравнения линий пересечения поверхностей даже в аналитическом виде (и где тут Ньютоновские методы?)… Короче, об этом много подробнее можно узнать на сайтах экспоненты, посмотреть примеры, публикации. Но с его помощью удобно именно “находить” решения, то есть, область, содержащую решение. А уточнять до “безобразия” лучше чем-нибудь типа деления отрезка для пространственного случая… В до конца не реализованном варианте для метода Драгилева не нужно задавать начальных приближений…
#9 Posted: 4/14/2010 7:35:51 PM
kmihaylovich

kmihaylovich

8 likes in 131 posts.

Group: User

Wrote

Wrote


В случае, если система ОДУ будет "жесткой", то разве ее решение будет более простой задачей нежели метод Ньютона-Рафсона?


Тут ситуация другая. Показано, например, что метод Ньютона является частным случаем метода Драгилева. Потом, сам метод Драгилева способен (пока нечасто) находить все решения системы, решать уравнения с числом переменных > числа уравнений – с его помощью находились уравнения линий пересечения поверхностей даже в аналитическом виде (и где тут Ньютоновские методы?)… Короче, об этом много подробнее можно узнать на сайтах экспоненты, посмотреть примеры, публикации. Но с его помощью удобно именно “находить” решения, то есть, область, содержащую решение. А уточнять до “безобразия” лучше чем-нибудь типа деления отрезка для пространственного случая… В до конца не реализованном варианте для метода Драгилева не нужно задавать начальных приближений…


А все же, если система "жесткая"?. На экспоненте, написано, что если корни ищутся "вслепую", то преимуществ перед методом Ньютона нет.
#10 Posted: 4/14/2010 7:39:35 PM
kmihaylovich

kmihaylovich

8 likes in 131 posts.

Group: User

Wrote

Wrote


Потом, сам метод Драгилева способен (пока нечасто) находить все решения системы, решать уравнения с числом переменных > числа уравнений


Но это же возможно далеко не всегда
#11 Posted: 4/14/2010 10:06:27 PM
alekcey

alekcey

0 likes in 16 posts.

Group: User

Wrote

...


В далёком прошлом, когда, Анатолий Владимирович Драгилев находил решения системы, под которою создавался целый отдел, ему даже не объясняли причин, по которым не брали на вооружение его метод, а вместо этого освоили бюджет, не справившись с системой. И поведение той публики понятно, особенно в свете современной ситуации в обществе. Но вот чего хотите Вы, понять пока трудно. Если Вас интересует что-то конкретное, и оно, как Вы считаете, не освещено в уже известном Вам месте, то давайте ближе к Вашей проблеме. У Вас есть задача, Вам надо её решить? Вы хотите применить метод Драгилева? Сравнить его с чем-то Вам более привычным? В чём проблема? Решайте, сравнивайте, консультируйтесь, предварительно представившись. Так поступали многие…
#12 Posted: 4/15/2010 8:39:48 AM
kmihaylovich

kmihaylovich

8 likes in 131 posts.

Group: User

Сама идея метода бесспорно интересна, но на мой взгляд, в данном случае это вполне очевидные вопросы, на которые должны быть четкие ответы
#13 Posted: 4/15/2010 5:44:19 PM
alekcey

alekcey

0 likes in 16 posts.

Group: User

Wrote

Сама идея метода бесспорно интересна, но на мой взгляд, в данном случае это вполне очевидные вопросы, на которые должны быть четкие ответы


Отвечу ещё раз. Если бы Вы уделили время знакомству с методом Драгилева, то такого рода вопросов у Вас бы просто не возникло. Чтобы аргументировать свои слова я привожу Вашу цитату:
Wrote

На экспоненте, написано, что если корни ищутся "вслепую", то преимуществ перед методом Ньютона нет.


На самом деле в этом месте сравнивается метод Ньютона и метод продолжения по параметру, который имеет ещё название метод гомотопии. Если у Вас имеется интерес к методу Драгилева, то уж в начальном описании можно было разобраться. Не разобравшись в начале, что можно понять дальше? Не буду говорить, какие ещё напрашиваются ответы на Ваши вопросы. Но не нельзя не заметить, что я, как мог, подталкивал Вас к более внимательному ознакомлению с идеей. Вы предпочли заняться чем-то другим…
(Что касается “жестких” участков траектории, и прочих плохих обусловленностей, то Вы поймёте разницу между Ньютовскими методами и непосредственным движением по кривой, если внимательно ознакомитесь с материалом. Единственное место, которое вызывает трудность для метода Драгилева – это точка самопересечения. Но здесь 0/0, и теория бессильна. Но проскочить можно, и именно за счёт вычислительных погрешностей…)
#14 Posted: 4/15/2010 6:02:19 PM
kmihaylovich

kmihaylovich

8 likes in 131 posts.

Group: User

Wrote

Не буду говорить, какие ещё напрашиваются ответы на Ваши вопросы...


Какие же? Если Вы сводите к решению системы ОДУ, то неизбежно столкнетесь с системами такого рода. И далее если решаете методом Рунге-Кутта, то как минимум с модификацией Мерсона и скорость вычислений при этом станет хуже по сравнению с изначальным применением градиентных методов..
В полиномах существуют множество методов, которые позволяют получить весь спектр корней (включая комплексные), при этом не нужно решать никаких систем вообще.


#15 Posted: 4/15/2010 6:36:53 PM
alekcey

alekcey

0 likes in 16 posts.

Group: User

Wrote

... Если Вы сводите к решению системы ОДУ, то неизбежно столкнетесь с системами такого рода. И далее если решаете методом Рунге-Кутта, то как минимум с модификацией Мерсона и скорость вычислений при этом станет хуже по сравнению с изначальным применением градиентных методов..
В полиномах существуют множество методов, которые позволяют получить весь спектр корней (включая комплексные), при этом не нужно решать никаких систем вообще.



Проблема одна – точка самопересечения.

У нас не обычные ОДУ, у нас всегда есть исходные уравнения, которые позволяют корректировать траекторию, а не доверяться до конца точности решения ОДУ. При простом варианте реализации алгоритма проблема устойчивости не стоит, но и в этом случае есть исходные уравнения. На данном этапе подразумевается не поиск решения системы в лоб в виде области точки, а поиск сначала, например, линии или поверхности, отвечающей решению каких-либо n-1 илиn-2 уравнений, с дальнейшим движением уже по ним до встречи с точкой. При этом не обойтись без уточнений. Для чего ни Рунге, ни его модификации всё равно не подходят. Подходит, похоже, лишь аналогия метода деления отрезка пополам.
Всё гораздо масштабней. Думаю, не за горами численная процедура полного решения системы алгебраических уравнений (посмотрите, на каком этапе спотыкается Математика). Жалко, не могу себя заставить освоить тот же Маткад, но, может быть, сагитирую кого-нибудь когда-нибудь написать...
#16 Posted: 4/15/2010 7:09:06 PM
kmihaylovich

kmihaylovich

8 likes in 131 posts.

Group: User

Но метод "вилки" имеет медленную сходимость.Думаю, что возможно применить более быстрый метод.
А для чего нужен MathCAD? Решение системы ОДУ можно реализовать намного лучше чем это сделано в MathCAD и реализация метода будет быстрее и лучше, чем на листе MathCAD.
В данном случае под полным решением системы понимается нахождение решений только в действительной области или в комплексной тоже?
#17 Posted: 4/15/2010 7:48:15 PM
alekcey

alekcey

0 likes in 16 posts.

Group: User

Маткад исключительно из-за читабельности, потом, не обойтись без символьных вычислений. А другие, чем в пакете методы решения ОДУ, случись в них особая потребность, можно написать прямо там. Деление пополам по причине простоты и надёжности, но, признаюсь, до конца не представляю его пространственный вариант. Не исключаю применения стандартных функций, поскольку само приближение получается довольно приличным, да и уточнение требуется больше для подстраховки. Но это всё варианты...
Как ни странно, для системы много проще рассматривать все корни, чем отдельно вещественные, а для одного уравнения наоборот. Это из-за особенностей, как самих алгебраических уравнений, так и Метода. Тут как бы вместе слабые и сильные места универсального подхода. Идея изложена в конце той же темы … F(X)=0, найти нетрудно в неизбежной, но небольшой, кучке “мусора”…
#18 Posted: 4/15/2010 8:33:29 PM
kmihaylovich

kmihaylovich

8 likes in 131 posts.

Group: User

Для того чтобы разбираться и реализовывать данный метод, необходимо, для начала, убедиться в его уникальности, просто пока сложилось впечатление, что используемые попутно методы, такие как деление пополам, Рунге, проскакивать особенности за счет вычислительных погрешностей, делают его довольно медленным а в последнем случае не надежным
#19 Posted: 4/15/2010 8:38:07 PM
Samar

Samar

2 likes in 107 posts.

Group: User

Если я правильно понял, то смысл метода Драгилева состоит в том, чтобы решение системы нелинейных уравнений свести к решению задачи Коши?
www.math.by
#20 Posted: 4/15/2010 8:47:29 PM
kmihaylovich

kmihaylovich

8 likes in 131 posts.

Group: User

Wrote

Если я правильно понял, то смысл метода Драгилева состоит в том, чтобы решение системы нелинейных уравнений свести к решению задачи Коши?


Сведение к задаче Коши это один из инструментов для достижения поставленной цели
  • New Posts New Posts
  • No New Posts No New Posts