Совет 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). В первой области генерируются случайные точки, роящиеся вокруг искомой окружности и служащие для тестирования задачи, ее отладки и оптимизации. Если, например, задать число точек, равное трем (n := 3), то окружность должна пройти четко через них, а целевая функция Dг должна быть равна нулю (если, конечно, три случайные точки не окажутся вблизи прямой линии, что сорвет процесс оптимизации). Вторая область исходных данных хранит два «заглушенных» оператора X := и Y :=, предназначенных для ввода пользователем уже реальных, а не тестовых данных.
2. Данные для первого приближения (Guess) и ответ по решению задачи хранятся в разных переменных: xGuess, y Guess, гGuess и x, y , г. Это позволяет при необходимости построить на графике две окружности – окружность первого приближения и искомую окружность, что позволит визуализировать процесс решения. Можно поступить и другим образом – оставить у данных двух троек одинаковые пары имен, а график с окружностью первого приближения вклинить в расчет вызовом функции Minimize.