Совет 170. Разумное первое приближение

Очень часто успех или неуспех при решении задачи численными методами с использованием функций Find, MinErr, Maximize, Minimize и др. зависит от первого приближения (Guess). Обычно в качестве оного выбирают константу (константы), которую вручную подправляют при срыве решения или при получении те того решения, какого ожидали.

Но первым приближением может быть не только константа, но и выражение (выражения), учитывающие исходные данные и ускоряющие (упрощающие) решение задачи. Пример на рис. 170, где решается оптимизационная задача: необходимо найти параметры окружности (координаты центра x и y, а также ее радиус r), наилучшим образом вписывающуюся в заданные точки. Задача сводится к поиску минимума целевой функции Dг (сумма квадратов «радиальных» отклонений исходных точек от искомой кривой). Поиск осуществляется с помощью встроенной функции Minimize, требующей первого приближения (Guess).

На рис. 170 в этой роли выступают выражения:

§          mean(X) – среднее арифметическое значений X

§          mean (Y) – то же по Y

§          (max(X) – min(X))/2 – ополовиненное значение разницы между максимальным и минимальным значениями X.

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

Непронумерованные советы, вытекающие из рис. 170.

1.      Исходные данные задачи об окружности сгруппированы в двух областях (Area). В первой области генерируются случайные точки, роящиеся вокруг искомой окружности и служащие для тестирования задачи, ее отладки и оптимизации. Если, например, задать число точек, равное трем (:= 3), то окружность должна пройти четко через них, а целевая функция Dг должна быть равна нулю (если, конечно, три случайные точки не окажутся вблизи прямой линии, что сорвет процесс оптимизации). Вторая область исходных данных хранит два «заглушенных» оператора X := и :=, предназначенных для ввода пользователем уже реальных, а не тестовых данных.

2.      Данные для первого приближения (Guess) и ответ по решению задачи хранятся в разных переменных: xGuess, y Guess, гGuess и x, y , г. Это позволяет при необходимости построить на графике две окружности – окружность первого приближения и искомую окружность, что позволит визуализировать процесс решения. Можно поступить и другим образом – оставить у данных двух троек одинаковые пары имен, а график с окружностью первого приближения вклинить в расчет вызовом функции Minimize.