Костян 0 26 марта, 2014 Опубликовано 26 марта, 2014 · Жалоба Дана функция двух переменных f(x,y). Известны значения f(x,y) вблизи экстремума. Как найти значение x,y при котором функции f(x,y) имеет экстремум ? Пример: Функция f(x,y) вблизи экстремума принимает значения, запишем их в виде матрицы 3х3 | 1 , 1 , 1 | F = | 1 , 3, 2 | | 1, 1, 1.5 | Т.е эктремум функции будет примерно при x=2.2 , y = 2.1 . Как это вычислить точно? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 26 марта, 2014 Опубликовано 26 марта, 2014 · Жалоба http://www.cyberforum.ru/matlab/thread580749.html Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость TSerg 26 марта, 2014 Опубликовано 26 марта, 2014 · Жалоба Если сам, то методы: координатного спуска, градиентный, наискорейшего спуска, метод сопряженных градиентов и т.д. Если не сам, то в матлаб fminsearch(..) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Костян 0 26 марта, 2014 Опубликовано 26 марта, 2014 · Жалоба Спасибо. Матлаб хорошо, но нужно самому :). На языке крутиться идея, но выразить не получается. И эксремум мне необходим в максимуме функции. Странно , но в матлабе нету fmaxsearch()/ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость TSerg 26 марта, 2014 Опубликовано 26 марта, 2014 · Жалоба Так написал же выше.. Еще симплекс-метод и еще куча. И эксремум мне необходим в максимуме функции. Странно , но в матлабе нету fmaxsearch()/ имя функции берется с минусом - будет максимум. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Костян 0 26 марта, 2014 Опубликовано 26 марта, 2014 · Жалоба Спасибо, изучаю. Может ли упростится задача, если ответ нужен только под одной переменной X, У - не интересует ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 37 26 марта, 2014 Опубликовано 26 марта, 2014 · Жалоба Может быть аппроксимировать функцию возле вершины двумерной параболой? По типу того, как обычной параболой аппроксимируют импульсные сигналы для более точного определения положения их вершины. Например, уравнением F(x,y) = a*x^2 + b*y^2 + c*x + d*y + e Тут неизвестных 5 штук (a,b,c,d,e), а известных точек в открестности максимума 9. Значит, решение здесь есть, как у переопределенной системы из 9-ти уравнений с 5-ю неизвестными. А дальше каждый максимум определяется тривиально: X = -0.5*c/a Y = -0.5*d/b Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Костян 0 26 марта, 2014 Опубликовано 26 марта, 2014 · Жалоба Может быть аппроксимировать функцию возле вершины двумерной параболой? Да, я думал про апроксимацию параболой. Желательно оптимальный алгоритм для реализации в ПЛИС найти. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 37 26 марта, 2014 Опубликовано 26 марта, 2014 · Жалоба Да, я думал про апроксимацию параболой. Желательно оптимальный алгоритм для реализации в ПЛИС найти. А чем этот вариант плох для ПЛИС? Если начало координат установить в центральную точку (центральная из 9-ти), то левая часть системы уравнений будет всегда одинаковой. Ее можно (псевдо)инвертировать вручную (МатЛабом), а на долю ПЛИС останется только работа множить эту матрицу на реальные значения функции в 9-ти точках. Это даже без матричных операций можно запрограммировать. После умножения получатся коэффициенты (a,b,c,d,e), причем на вычислении последнего можно сэкономить, т.к. для дальнейшего расчета координат он не нужен. Т.е. потребуется 36 (9х4) умножений и столько же сложений. Координаты получатся виде смещения от центральной точки (там еще 2 умножения и 2 деления). Но если ваша ПЛИС умножать, складывать и делить (иные операции здесь не требуются) не умеет, то тогда я пас. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AnatolyT 0 26 марта, 2014 Опубликовано 26 марта, 2014 (изменено) · Жалоба Попробую. Каждая частная производная первого порядка в точке экстремума равняется нулю. То есть нужно решить систему из двух уравнений, {df\dx=0; df\dy=0;}. Для определения координаты экстремума необходимо задаться определенной точностью, то есть величинами dx , dy и df. Принимая во внимание что наша функция непрерывна и экстремум единственный в заданной матрице, можно использовать закон аппроксимации (парабола или др.) и по 9-ти точкам из матрицы построить криволинейную поверхность методами машинной графики с шагом dx, dy и затем в двойном цикле найти частные экстремумы (f(x(n))-f(x(n+1)))<df, (f(y(n))-f(y(n+1)))<df или просто найти максимальное значение функции f(x(n),y(n)) если уверены что там максимум. Изменено 26 марта, 2014 пользователем AnatolyT Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 54 26 марта, 2014 Опубликовано 26 марта, 2014 · Жалоба усреднить по столбцам и по стокам, по горизонтали 1, 1.6, 1.5 по вертикали 1, 2, 1.1666 по трем точкам провести параболы найти максимумы. не совсем честно, зато считать быстро. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться