logo search
учебники и задачи по числ методам / Дьяконов_В

2.9.8. Проведение нелинейной регрессии()

Под нелинейной регрессией общего вида подразумевается нахождение вектора K параметров произвольной функции F(x,K1,K2,...,Kn), при котором обеспечивается минимальная среднеквадратичная погрешность приближения «облака» исходных точек.

Для проведения нелинейной регрессии общего вида используется функция genfit(VX, VY, VS, F) . Она возвращает вектор K параметров функции F, дающий минимальную среднеквадратичную погрешность приближения функцией F(x,K1,K2,...,Kn) исходных данных. F должен быть вектором с символьными элементами, причем они должны содержать уравнение исходной функции и ее производных по всем параметрам. Вектор VS должен содержать начальные значения элементов вектора K, необходимые для решения системы нелинейных уравнений регрессии итерационным методом.

Пример 2.45. Подготовить документ для выполнения нелинейной регрессии общего вида для нелинейной функции F(x,a,b)=aexp(-bx)+ab. Документ представлен на рис. 2.17.

Рис. 2.17. Пример выполнения нелинейной регрессии общего вида

При решении этой задачи возникают две проблемы. Во-первых, надо вычислить значения производных по переменным a и b. В документе на рис. 2.17 это сделано с помощью символьных операций (первая строка документа после титульной надписи), что наглядно показывает пользу от таких операций.

Вторая проблема связана с необходимостью применения функции genfit в ее стандартном виде. Поэтому пришлось заменить параметр a на k1, а параметр b на k2. В остальном операции в примере на рис. 2.17 достаточно очевидны.

Mathcad позволяет выполнять также многомерную регрессию. Самый типичный случай ее - приближение трехмерных поверхностей. Многомерная регрессия применяется сравнительно редко из-за сложности сбора исходных данных.