Ar@kel
Участник
licq:6610
|
отправлено: 15-04-2011 15:55:23 | |
инфо • правка • ссылка • сообщить модератору |
Посоветуйте пожалуйста какой нибудь численный метод для решения системы нелинейных уравнений. Основное требование к нему - большая область сходимости. Скорость сходимости устроит линейная. основная задачка такая: есть матрица из узлов, (в случае2*2 квадрат с сопротивлениями на ребрах, для 3*3 на каждом ребре получает 2 сопротивления, а внутри крест, на каждой стороне которого по сопротивлению), к матрицы можно подключать источники тока/напряжения как угодно (только к внешним узлам) и мерить общее сопротивление. Так вот задача стоит в том, что бы по нескольким замерам результирующего сопротивления определить значения всех сопротивлений внутри матрицы. |
|
IP |
|
Pavia
Участник
программирование
licq:1754
|
отправлено: 15-04-2011 17:35:24 | |
инфо • правка • ссылка • сообщить модератору |
цитата: Посоветуйте пожалуйста какой нибудь численный метод для решения системы нелинейных уравнений. Для решения вашей задачи не требуется. Да и система линейная. Распишите суммы которые у вас получаются. И по вычитайте по складывайте замеры с предыдущех замеров. Примерно так если мерим сточку i,j то вычесть i-1,j и вычесть i,j-1 и прибавить i-1,j-1. На границах похожим образом. Вот с углами не получится. |
|
IP |
|
Ar@kel
Участник
licq:6610
|
отправлено: 16-04-2011 03:58:05 | |
инфо • правка • ссылка • сообщить модератору |
To Pavia Может я не так объяснил. попробую ещё раз: берем листок рисуем 3*3 точек и соединям их по 4 степеням свободы(по диагонале нельзя), между каждыми двумя точками ставим сопротивление. должны получить некоторую эквивалентную схему из 12 сопротивлений. Для измерений можем как угодно подключатся к внешним точкам. Собственно вся проблема состоит в том что при увелечений числа сопротивлений (расширения матрицы) начальное приближение стремится к корню. А градиентным спуском тоже невозможно воспользоватся, потому что каждое подключение по сути новая функция, и поэтому получаем N функций у которых минимум находится в одной точке(x1...xn). |
|
IP |
|
Silencer
Участник
licq:1661
|
отправлено: 16-04-2011 11:54:55 | |
инфо • правка • ссылка • сообщить модератору |
To Ar@kel цитата: Посоветуйте пожалуйста какой нибудь численный метод для решения системы нелинейных уравнений. А всяческие оптимизационные методы не подходят? В зависимости от сложности поверхности функции - метод тяжелого шарика, симплексный, метод деформируемых конфигураций.. |
|
IP |
|
Ar@kel
Участник
licq:6610
|
отправлено: 17-04-2011 18:44:55 | |
инфо • правка • ссылка • сообщить модератору |
To Silencer к сожалению я не зпраю аналитического вида функции, жа и к тому же каждое новое подключение это новая функция. Если пременимо к градинтным методам, то у меня стоит вопрос как найти точку которая явдяется минимум для нескольких точек. ЗЫ мне видимо мозгов не достаент но поа не понимают этих оптимизауионных методов |
|
IP |
|
Silencer
Участник
licq:1661
|
отправлено: 17-04-2011 19:16:36 | |
инфо • правка • ссылка • сообщить модератору |
To Ar@kel цитата: мне видимо мозгов не достаент но поа не понимают этих оптимизауионных методов Рассматривается многомерная поверхность функции. Для методов поисковой оптимизации критично наличие "оврагов", и.т.д. И разные методы по-разному чувствительны к "пересеченной местности". Тяжелый шарик - мат. модель поведения шарика, которые обладает массой, поверхности задается коэффициент трения. Очевидно что для обычной, достаточно гладкой функции, шарик скатится в точку оптимума. Симплексный - менее чувствителен к оврагам, в нем по поверхности катают тетраэдр (ну пирамидку), который каждый раз (каждую итерацию) перекатывается вершиной в сторону минимума (происходит оценка, куда стоит перекатиться и перекат, после выбора направления переката). Деформируемых конфигураций - модификация симплексного. Катают фигуру. но фигура может быть не тетраэдром, может менять количество и качество граней. может менять геометрию граней, в зависимости от параметров поверхности, по которой она передвигается, скажем если встретился овраг и тетраэдр в нем застрял, то может быть изменен масштаб тетраэдра, добавлено кол-во граней, изменена форма граней, одна из граней может быть сильно вытянута, ессно с деформацией всей фигуры.. В общем весьма сложный для реализации, но очень гибкий... Но очень неплохо представлять вид поверхности функции... неплохо начать с 2-х измерений.. |
Сообщение изменено Silencer от 2011-04-17 22:49:38 |
|
IP |
|
Ar@kel
Участник
licq:6610
|
отправлено: 17-04-2011 23:16:38 | |
инфо • правка • ссылка • сообщить модератору |
To Silencer Вся загвоздка состоит в том, что мне надо найти точку минимума функций, причем из услоия задачи я знаю что она она одна для всех. Проблема стоит в том, что область начального приближения очень велика и включает в себя несколько экстремумов. Надо как то связть метод поиска локального экстремума для каждой функции (измерения) с тем что точка этого жкстремума одна для всех функций |
|
IP |
|
Silencer
Участник
licq:1661
|
отправлено: 18-04-2011 00:45:08 | |
инфо • правка • ссылка • сообщить модератору |
To Ar@kel На примере метода тяжелого шарика можно поиграть с коэффициентом трения, при слабом трении шарик будет проскакивать локальные экстремумы по инерции. Также можно играть с точностью поиска (ну типа шарик очень большой), и менять точность на каждой итерации, а итерацию проводить по всем измерениям (по каждой функции системы). На следующей итерации увеличивать точность и вводить ограничения с учетом того что было определено на прошлой итерации. Идеально, конечно, было бы привести систему уравнений к одной многомерной функции.. Обычно всегда так делают. |
|
IP |
|
Ar@kel
Участник
licq:6610
|
отправлено: 18-04-2011 04:07:54 | |
инфо • правка • ссылка • сообщить модератору |
To Silencer я бы с радостью привел бы, только сейчас я имею суммарное сопротивление result[i] где i - номер измерения. i = 0..количество сопротивлений ну и могу посчить f[i](x1...xn), т.е. значение функции(измерения) от значения сопротивления. аналитический вид функция я не знаю (на самом деле это правила киргхофа, выраженные с помощью метода узловых потенциалов, но вручную записовать систему для каждой размерности матрицы меня как то смущает, тем более задача как раз и стоит так, что бы не на бумаге а на машине решить нахождения сопротивлений). |
|
IP |
|
Ar@kel
Участник
licq:6610
|
отправлено: 21-04-2011 11:49:12 | |
инфо • правка • ссылка • сообщить модератору |
В общем получил для метода ньютона сходимость +-6%. причем первый корень имеет 0,005 погрешность, следующий 0.01 , 12 - 0.06. Подумал бы что не плохо пройтись каким нибудь методом для грубого нахождения начального приближения, а потом запустить ньютона. Немного модифицировал формулы для градиентного метода: раньше было result - fi(X), где result результат по измерению, а теперь я считаю |result-fi(X)|, это конечно плодит дополнительные локальные минимумы, но зато точно можно найти корни. Пока не получилось получить сходимость потому что xi начинают колебатся вокруг корня и иногда это приводит к тому что методом начинает расходится. |
|
IP |
|
asd
Участник
aka маленький
|
|
Ar@kel
Участник
licq:6610
|
отправлено: 28-04-2011 00:26:56 | |
инфо • правка • ссылка • сообщить модератору |
To asd В идеале матрица представляет собой человеческое тело, далее считаем распределение сопротивлений, и по изменению сопротивления от нормальных значений можем диагностировать болезнь, модель не без изъянов, но это пока что первые шаги) |
|
IP |
|
asd
Участник
aka маленький
|
отправлено: 09-05-2011 23:41:42 | |
инфо • правка • ссылка • сообщить модератору |
To Ar@kel Аааааа! патентный поиск проводили? а то может уже все известно, осталось только напильником подпилить)... |
|
IP |
|
|