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

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

Модератор: Admin

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

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

p
Последний раз редактировалось алексей_алексей Пт июн 17, 2016 9:38 am, всего редактировалось 1 раз.

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

Сообщение uni » Пт окт 05, 2012 9:55 am

Короче говоря, у него есть как-бы нелинейная функция с базисами (1, 1/x, log10(x)). Да, похоже, что суперпозиция базиса с коэффициентами находится в показатели степени десятки.

Точки с данными у него - это давления при какой-то температуре. Т.е. иксом является как-бы T, а игриком - p, т.е. f(x) = p(T). Параметрами же являются коэффициенты при базисных функциях, типа как у меня в примере коэффициенты при иксах. У меня базис алгебраический, а у него нелинейный.

Проблема видимо в том, что ему нужно подобрать нелинейную аппроксимирующую функцию под вид данных, либо она уже имеется как заданная или стандартизованная, или из законов физики процесса. Потом найти решатель, который бы справлялся с этой нелинейной функцией в плане поиска коэффициентов базиса по заданному набору точек p(T).

Да, функция у него, похоже, круто уходит в бесконечность, но x^2 тоже не плохо в бесконечность уходит. Минимум он просит найти для невязки функции и точек с данными. Я же ведь также нахожу для квадратного уравнения. Три параметра - три свободных коэффициента, полностью определяющих параболу. Там на самом деле не нужно больше трёх точек для точного восстановления, но я взял 5 точек и добавил к ним шума, чтобы посмотреть как вообще этот принцип работает. По графику видно, что по крайней мере, в этот шум найденная парабола укладывается, а её коэффициенты, с учётом случайного разброса данных, похожи на заданные.

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

Сообщение алексей_алексей » Пт окт 05, 2012 10:20 am

w
Последний раз редактировалось алексей_алексей Пт июн 17, 2016 9:38 am, всего редактировалось 1 раз.

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

Сообщение алексей_алексей » Пт окт 05, 2012 1:36 pm

s
Последний раз редактировалось алексей_алексей Пт июн 17, 2016 9:38 am, всего редактировалось 1 раз.

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

Сообщение uni » Пт окт 05, 2012 5:11 pm

Алексей Борисович, я типа не понял, а где моя типа медаль или типа печенька за труды праведные? Если товарищ из Израиля специалист, то он и без меня разберётся, куда уж мне, самокатному...

И вообще, инженеры сами по себе не склонны усложнять себе жизнь, составляя системы нелинейных уравнений. Что это за инженер, который ставит себе научную задачу? Они практики, +/- 10-15% - это результат, а вы тут такие ужасные невязки показываете. Таких же инженеров, которые ещё и научные работники, не так много, да и переводятся потихоньку.

П.С. Да, кстати, я реализовал нелинейную регрессию в лоб, получается. Судя по теме рядом, это можно сделать проще при помощи genfit().Видимо в этой функции идут по восстановленной кривой при помощи производных по параметрам, а варьируется шаг суммарной невязкой (или её квадратом) и это влияет на шаг по параметру решателя диффура. Интересно как там она внутри реализована... надо подумать.

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

Сообщение алексей_алексей » Пт окт 05, 2012 5:29 pm

s
Последний раз редактировалось алексей_алексей Пт июн 17, 2016 9:38 am, всего редактировалось 1 раз.

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

уравнения от UMP-а

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

s
Последний раз редактировалось алексей_алексей Пт июн 17, 2016 9:39 am, всего редактировалось 1 раз.

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

Сообщение uni » Вс окт 07, 2012 12:46 pm

Ну, не знаю, Алексей Борисович, это конечно красиво смотрится и всё такое, но чем это лучше, скажем, вот этого: http://en.smath.info/forum/yaf_postsm79 ... x#post7901

В плане демонстрации. Я вот от алгебраической регрессии почему-то к нелинейной перейти не могу, решатель долго думать начинает.

Там производные по параметрам простые, когда параметры - множители, а вот когда типа вот так: f(x,a) = a[1] + a[2] * exp( a[3] * x ) - вот тут возникают проблемы. Даже на таком простом вроде бы случае. Проблема в данном случае - это порождение сложного выражения из-за обилия точек и двойного дифференцирования.

Несмотря на то, что вы органически не перевариваете всё алгебраическое, тем не менее, в качестве демонстрации работы решателя на основе метода я показываю примеры документов по восстановлению коэффициентов алгебраических кривых по "опытным данным" (критерий минимума суммы квадратов невязки):
http://en.smath.info/forum/yaf_postsm80 ... x#post8079

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

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

Постановка задачи могла бы выглядеть так:
Изображение

Как видно из предыдущего моего поста, для алгебраических кривых (суммы степеней x) эта система очень просто решается методом даже на SMath. Для K = 4 параметров и M = 10 точек - t = 2 секунды работы интерпретатора.

Заставить же решить что-то посложнее степенных функций у меня пока не получилось. Именно, когда параметр "входит внутрь" нелинейности.

Это ведь нелинейная оптимизационная задача, так?

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

Сообщение uni » Вс окт 07, 2012 3:46 pm

И ещё немного странный вопрос: А зачем мы Якобиан вычисляем символьно? Не проще ли численно его аппроксимировать?

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

Сообщение алексей_алексей » Вс окт 07, 2012 4:50 pm

s
Последний раз редактировалось алексей_алексей Пт июн 17, 2016 9:39 am, всего редактировалось 1 раз.

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

Сообщение uni » Вс окт 07, 2012 5:26 pm

Да в ряд-то разложить каждый может, ещё со времён дедушки Ньютона, он был спец. Да, с заменой это тема, но хотелось как у О.Бендера - сразу.
А на счёт численного Якобиана я всё равно попробую. Считать оно может будет и дольше, зато это можно реализовать без символьных вычислений. Над точностью можно поработать, всё-таки нахождение производной и численная аппроксимация - это как-бы на порядки разные задачи, если их реализовывать в отдельной программе, а не в математическом пакете. Интеграторы интегрируют же и ничего, пусть дифференциаторы дифференцируют. Если будут проблемы банально на окружности в начальную точку вернуться, то даа...

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

Сообщение алексей_алексей » Вс окт 07, 2012 6:47 pm

s
Последний раз редактировалось алексей_алексей Пт июн 17, 2016 9:40 am, всего редактировалось 1 раз.

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

Сообщение uni » Вс окт 07, 2012 7:31 pm

Мне показали вот такие данные:
Изображение

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

Сообщение алексей_алексей » Вс окт 07, 2012 7:51 pm

s
Последний раз редактировалось алексей_алексей Пт июн 17, 2016 9:40 am, всего редактировалось 1 раз.