Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

метода, MCad6

.0.pdf
Скачиваний:
18
Добавлен:
26.03.2015
Размер:
1.17 Mб
Скачать

1.3.Обобщенная регрессия

Ксожалению линейная или полиномиальная функции не во всех случаях подходят для описания зависимости данных.

При более сложных зависимостях между данными приходится использовать уравнение регрессии в виде линейной комбинации известных функций

y(x) = a0 f 0 (x) + a1 f1 (x) + ... + an f n (x)

либо в виде произвольной нелинейной функции

y(x) = f (x, a0 , a1 ,..., an ) ,

где коэффициенты a0 , a1 ,..., an подлежат определению. Первая задача может быть решена с использованием встроенной функции linfit, а для решения второй задачи можно воспользоваться функцией genfit.

linfit(VX,VY,F) - возвращает вектор, содержащий коэффициенты, используемые для создания линейной комбинации функций из F, дающую наилучшую аппроксимацию данных из векторов VX и VY. F - функция, которая возвращает вектор, состоящих из функций, которые нужно объединить в виде линейной комбинации.

genfit(VX,VY,VG,F) - возвращает вектор, содержащий n параметров a0 , a1 ,..., an−1 , которые обеспечивают наилучшее приближение данных из VX и VY функцией y(x) = f (x, a0 , a1 ,..., an−1 ) . F - функция, которая возвращает (n+1)- мерный вектор, содержащий f и ее частные производные.

Пример. Для заданного набора экспериментальных данных получить уравнение регрессии в виде:

y(x) = a

 

x2 + a x + a

 

1

 

2 x + 1

 

0

1

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

0.43

 

 

 

 

 

 

 

 

 

0.2

 

 

 

 

 

 

 

 

 

 

 

 

0.22

 

 

 

 

 

vx

 

 

 

0.4

 

 

 

 

 

 

- набор значений

vy

 

 

0.6

 

 

- набор измеренных

 

 

 

0.6

 

 

 

 

 

 

 

 

0.3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

величины X

 

 

 

 

 

 

значений величины Y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0.8

 

 

 

 

 

 

 

 

 

 

 

 

1.4

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

2.3

 

 

 

 

 

 

 

 

 

 

 

 

x2

 

 

 

 

 

 

 

 

 

 

3.596

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

F( x)

 

 

 

 

 

x

 

 

A

 

linfitvx(, vy, F)

A =

 

 

1.562

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0.478

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y( x) A.F( x) - уравнение регрессии

i

0 .. 5

3

 

 

 

 

 

 

y vxi

2

 

 

 

vy i

1

 

 

 

 

 

 

 

 

0

 

 

 

 

0

0.5

1

 

 

 

vxi

 

Получено уравнение регрессии: y(x)=3.087.x2

 

1.475.x

 

 

0.515.

1

 

 

 

 

 

 

 

 

 

 

x 1

Пример. Величины X и Y связаны функциональной зависимостью

y(x)= 2ex

Измерения величины Y производится с погрешностью, которая представляет собой равномерно распределенную на отрезке [ 0,1 ] случайную величину, имеющую среднее значение равное нулю и дисперсию равную 1. Необходимо смоделировать набор измеренных значений величины Y, при условии, что величина X принимает ряд значений в

диапазоне от 0 до 2 с шагом равным 0,2 и получить

уравнение регрессии по этим данным.

 

 

 

Моделирование данных

 

 

 

 

 

 

g( x)

2.e x

 

 

- вид функциональной зависимости между

 

 

 

 

 

 

величинами X и Y

 

 

 

 

δx

 

0.2

N

10

 

- шаг изменения величины X и число измерений

i

0 .. N

 

 

 

 

 

 

 

 

 

 

vx

 

i.δx

vy

 

g vx

rnd( 1)

- моделирование измеренных

i

 

 

 

i

 

i

 

 

значений X и Y

 

 

 

 

 

 

 

 

 

 

 

Получение уравненя регрессии

 

 

 

 

 

y( x,a)

a .ea1

.x

 

- вид уравнения регрессии

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

a .ea1 .x

- функция y(x,a)

 

 

 

 

 

 

 

0

 

 

 

 

d

 

 

 

 

F( x,a)

a1 .x

 

- производная

y( x,a)

 

 

 

 

 

 

e

 

 

 

 

d a

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

a .x.ea1

.x

- производная

d

y( x,a)

 

 

 

 

 

 

0

 

 

 

 

d a

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

va

 

1

- вектор начальных значений для a

 

и a

 

 

2

 

 

 

 

 

 

 

 

 

 

 

0

1

 

a

genfit( vx,vy,va,F)

a = 1.937

- найденные значения

 

 

 

 

 

 

 

0.393

 

коэффициентов a

и a

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

i

0 .. length( vx)

1

 

2.5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

y vxi,a

 

 

 

 

 

 

 

 

 

 

 

 

1.5

 

 

 

 

 

 

 

 

 

 

 

vy i

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

0.5

 

 

 

 

 

 

 

 

 

 

 

 

0

 

0.5

1

1.5

2

vxi

Получено уравнение регрессии: y( x) 1.937.e 0.393 .x

1.Экстремум функции

Рассмотрим два способа поиска экстремума функции многих переменных. Первый из них использует известный из математического анализа факт равенства нулю частных производных функции в точке ее локального экстремума. Если такая точка найдена, то проводится исследование является данная точка точкой локального мксимума или минимума.

Пример. Найти экстремум функции

f (x, y) = (x y − 2)2 + (x + y − 4)2 + 3

f( x, y)

 

 

( x

 

 

 

y

 

2)2

 

 

 

( x

 

 

 

y

 

4)2

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f x( x, y)

 

 

 

d

f( x, y)

 

 

 

- определяем функцию для частной

 

 

 

 

 

 

 

 

 

 

 

 

производной по аргументу x

 

 

 

d x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f y( x, y)

 

 

 

d

f( x, y)

-

определяем функцию для частной

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

d y

 

 

 

производной по аргументу y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

3

 

 

y

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Given

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f x( x, y) 0 - в точке локального экстремума частные производные по каждой переменной должны обращаться в ноль

f y( x, y) 0

x0

 

 

Find( x, y)

x0

=

 

- найдены координаты точки

 

 

3

y0

 

 

y0

1

 

 

 

 

 

 

локального экстремума

 

 

 

 

 

 

 

Определяем, является ли найденная точка локального экстремума функции f(x,y) точкой локального максимума или локального минимума.

Для этого опрелелим функции для вторых, смешаных производных от функции f(x,y) а также определитель матрицы Гессе.

 

 

 

 

 

 

d 2

 

 

 

 

 

 

 

 

d 2

f xx( x, y)

 

 

 

 

 

 

 

f( x,

y)

f yy( x, y)

 

 

 

 

 

 

 

f( x, y)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

d x2

 

 

 

 

 

 

 

d y2

f ( x, y)

 

 

 

d

 

d

f( x, y)

f ( x, y)

 

 

 

d

 

d

f( x, y)

 

 

 

 

 

 

 

 

 

 

 

 

 

xy

d xd y

 

yx

 

 

d yd x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

H( x, y)

 

 

 

 

 

f xx( x, y)

f xy( x, y)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f yx( x, y)

f yy( x, y)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Так как

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f ( x0, y0) = 4

(

f ( x0, y0) > 0 )

 

 

 

 

 

 

xx

 

 

 

 

 

 

xx

 

 

 

 

 

 

H( x0, y0) =

16

 

 

 

 

(

H( x0, y0) > 0 ),

 

 

 

 

 

 

-то точка с координатами x=x0 и y=y0 является точкой локального минимума.

Второй способ основан на использовании функции Minerr и заключается в следующем. Пусть необходимо определить

минимум функции y = f (x1 , x2 ,..., xn ) ³ 0 .Если эта функция является знакопеременной то необходимо воспользоваться

другой функцией, например, g(x , x

,..., ) = e f ( x1 , x2 ,...,xn )

которая

1

2

 

 

монотонно связана с первой и, следовательно, имеет минимум в той же точке что и исходная функция. Далее, если попытаться с использованием функции Minerr найти решение уравнения f (x1 , x2 ,..., xn ) = 0 , то она возвратит набор

значений (x1 , x2 ,..., xn )

для которого значение

функции

f (x1 , x2 ,..., xn ) является

наилучшим приближением

к нулю.

Следовательно набор значений (x1 , x2 ,..., xn ) и будет

определять точку в которой функция

f (x1 , x2 ,..., xn ) достигает

минимума.

 

Если же необходимо определить

максимум функции

f (x1 , x2 ,..., xn ) , то необходимо поступить как и в предыдущем

случае,

но

вместо

функции следует воспользоваться

функцией g(x1 , x2 ,..., ) =

1

 

,

если

f (x1 , x2 ,..., xn ) ³ 0 , или

 

 

 

 

 

 

 

 

 

 

f (x1 , x2 ,..., xn )

 

 

 

g(x , x

,..., ) = ef ( x1 ,x2 ,...,xn ) ,

если

исходная

функция является

1

2

 

 

 

 

 

 

 

 

 

 

знакопеременной.

Тогда

точка

минимума

функции

g(x1 , x2 ,..., xn ) будет

 

соответствовать

точке

максимума

функции f (x1 , x2 ,..., xn )

 

 

 

 

 

 

Заметим,

что

если

функция

f (x1 , x2 ,..., xn ) имеет

несколько

локальных максимумов или минимумов, то результат поиска

будет зависеть от

значений начальных приближений для

аргументов функции при поиске экстремума.

 

Пример.

Найти

локальный

минимум

функции

f (x, y) = sin(xy) + cos(x + y 2 )

 

 

f( x,

y)

 

 

 

sin( x. y)

 

 

 

cos( x

 

 

 

y2 )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

g( x, y)

 

 

 

ef( x, y )

 

- задание точности вычислений

 

 

 

 

TOL

 

 

 

 

10 8

 

 

 

 

 

 

 

 

 

x

 

 

0

 

 

 

 

 

 

y

 

 

1

 

- начальные приближения для переменных

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Given

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

g( x, y)

 

 

0

- формальное равенство, которое необходимо, чтобы число

 

 

x

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

неизвестных в системе уравнений было равно числу

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

уравнений

 

 

 

 

 

 

 

 

 

 

x0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Minerr( x, y)

 

=

 

0.792

- найдены координаты точки

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y0

 

 

 

 

 

 

 

 

y0

 

1.983

локального экстремума

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f( x0, y0) =

 

 

2

 

 

 

- значение функции в точке экстремума

 

 

 

 

Исследуем, действительно ли является ли найденная точка точкой локального минимуа функции f(x,y).

Для этого опрелелим функции для первых, вторых, смешаных производных от функции f(x,y) а также определитель матрицы Гессе.

f x( x, y)

 

 

 

 

d

f( x, y)

 

f y( x, y)

 

 

 

d

f( x, y)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

d x

 

 

 

 

 

 

 

d y

 

 

 

 

 

 

 

 

 

d 2

 

 

 

 

 

 

 

 

 

 

 

d 2

f xx( x, y)

 

 

 

 

 

 

 

 

 

f( x,

y)

f yy( x, y)

 

 

 

 

 

 

 

 

 

f( x, y)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

d x2

 

 

 

 

 

 

 

 

 

 

d y2

f ( x, y)

 

 

 

 

d

 

d

f( x, y)

f ( x, y)

 

 

 

 

 

d

 

d

f( x, y)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xy

 

 

 

d xd y

 

yx

 

 

 

 

 

d yd x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

H( x, y)

 

 

 

 

 

 

 

 

f xx( x, y)

f xy( x, y)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f yx( x, y)

f yy( x, y)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

В точке с координатами x=x0 и y=y0

f x( x0, y0)

=

6.734 10

 

5

- ( = 0 )

 

f y( x0, y0)

=

 

3.445 10

 

4

- ( = 0 )

 

 

 

Следовательно, точка с координатами x=x0 и y=y0 действительно является точкой локального экстремума.

Так как

 

 

 

f ( x0, y0) = 4.933

(

f ( x0, y0)

> 0 )

xx

 

xx

 

H( x0, y0) = 74.977

(

H( x0, y0) >

0 ),

-то точка с координатами x=x0 и y=y0 является точкой локального минимума.

Пример.

Найти

локальный

максимум

функции

f (x, y) = 3xy − 2x4 y 4

 

 

f( x, y)

 

 

 

3.x.y

 

2.x4

 

 

y4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

g( x, y)

 

 

 

e f( x, y )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TOL

 

 

10 8

 

 

- задание точности вычислений

 

 

 

 

 

 

 

 

x

 

0

 

 

y

 

1

 

- начальные приближения для переменных

 

 

 

 

 

 

 

 

 

 

 

 

 

Given

 

 

 

 

 

 

 

 

 

 

 

 

 

g( x, y) 0

x x - формальное равенство, которое необходимо, чтобы число неизвестных в системе уравнений было равно числу уравнений

x0

 

 

Minerr( x, y)

x0

=

 

0.668

 

- найдены координаты точки

 

 

 

 

 

 

 

 

 

 

y0

 

 

y0

 

0.794

 

локального экстремума

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f( x0, y0) = 0.795 - значение функции в точке экстремума

Исследуем, действительно ли является ли найденная точка точкой локального локального максимума функции f(x,y). Для этого опрелелим функции для первых, вторых, смешаных производных от функции f(x,y) а также определитель матрицы Гессе.

f x( x, y)

 

 

 

 

d

f( x, y)

 

f y( x, y)

 

 

 

d

f( x, y)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

d x

 

 

 

 

 

d y

 

 

 

 

 

 

 

 

d 2

 

 

 

 

 

 

 

 

 

d 2

f xx( x, y)

 

 

 

 

 

 

 

 

f( x,

y)

f yy( x, y)

 

 

 

 

 

 

 

 

 

f( x, y)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

d x2

 

 

 

 

 

 

 

 

d y2

f ( x, y)

 

 

 

d

 

d

f( x, y)

f ( x, y)

 

 

 

 

 

d

 

d

f( x, y)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xy

 

 

d xd y

 

yx

 

 

 

 

 

d yd x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

H( x, y)

 

 

 

 

 

 

 

f xx( x, y)

f xy( x, y)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

fyx( x, y) f yy( x, y)

Вточке с координатами x=x0 и y=y0

f

x

( x0, y0)

=

3.371 10

 

5

- ( = 0 )

 

 

 

 

 

 

 

 

f

y

( x0, y0)

=

7.877 10

 

5

- ( = 0 )

 

 

 

 

 

 

 

 

Следовательно, точка с координатами x=x0 и y=y0 действительно является точкой локального экстремума.

Так как

f ( x0, y0) =

 

10.703

(

f ( x0, y0)

< 0 )

 

xx

 

xx

 

H( x0, y0) = 71.996

(

H( x0, y0) >

0 ),

-то точка с координатами x=x0 и y=y0 является точкой локального максимума.

Рассмотрим теперь получение уравнения регрессии по методу наименьших квадратов рассмотренным выше способом, основанным на минимизации целевой функции.

Пусть X = (x1 , x2 ,..., xi ,..., xn )T - вектор измеренных значений величины X, а Y = ( y1 , y2 ,..., yi ,..., yn )T - вектор измеренных значений величины Y. Необходимо по этому набору данных получить уравнение регрессии вида y(x) = f (x, a0 , a1 ,..., am ) .

В соответствии с методом наименьших квадратов задача сводится к минимизации квадратичной целевой функции

n

S (a1 , a2 ,..., am ) = [ yi f (xi , a1 , a2 ,..., am )]2 по набору параметров

i=1

a1 , a2 ,..., am .

Ниже приведен пример решения такой задачи.

Моделирование данных

2

g( x) 2.e ( x 2 ) - вид функциональной зависимости между величинами X и Y

δx 0.2 M 20 - шаг изменения величины X и число измерений

i 0 .. M

vxi i.δx vyi g vxi 0.8.rnd( 1) - моделирование измеренных значений X и Y

Получение уравненя регрессии

N length( vx) 1

f( x,a1 ,a2 ,a3)

 

 

 

a1.ea2.( x

 

 

 

a3)2

- вид уравнения регрессии

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

N

 

 

 

S( a1 ,a2 ,a3)

 

 

 

 

 

 

 

 

f vx ,a1 ,a2 ,a3

 

vy 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

 

 

i

 

 

 

 

 

 

 

 

 

i = 0

 

 

 

a1

 

1

a2

 

 

2

 

a3

 

3

- начальные приближения

 

 

 

 

 

 

 

 

Given

S( a1 ,a2 ,a3) 0 a1 a1

a2 a2

a1

 

 

 

a1

 

2.104

 

 

 

 

 

 

 

 

 

 

a2

 

 

Minerr( a1 ,a2 ,a3)

a2

=

 

 

0.488

 

 

 

 

 

a3

 

 

 

a3

 

1.922