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

MathCad_Дятко_Кишкурно

.pdf
Скачиваний:
121
Добавлен:
09.03.2016
Размер:
1.81 Mб
Скачать

 

Первый способ использует функцию line( X ,Y ) – вектор из двух

элементов

a, b

коэффициентов уравнения

линейной регрессии

y( x)

a bx .

 

 

 

 

 

 

 

 

 

 

 

Во втором способе для определения коэффициента a использует-

ся функция

intercept ( X , Y ),

а для вычисления коэффициента b

функция slope( X , Y ) .

 

 

 

 

 

 

 

 

Аргументами этих функций являются:

 

 

 

 

 

X

x1 , x2 , ,

xn

T

 

 

 

 

 

 

 

 

– вектор действительных данных аргумен-

та;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y1 , y2 ,

 

T

 

 

 

 

 

y(xi ) )

 

Y

, yn

– вектор действительных данных ( yi

того же размера;

 

 

 

 

 

 

 

 

 

 

Ниже приводится пример применения этих функций для построе-

ния линейной регрессии.

 

 

 

 

 

 

 

X

 

( 0 1

2

3

4 5 6 )T

Y

( 4.1

2.4

3 4.3 3.6 5.2 5.9 )T

a

 

 

line(X

Y)

 

 

 

a

 

2.829

 

b

 

 

 

 

 

b

 

0.414

 

 

 

 

 

 

 

 

 

 

 

 

y(x)

 

a

b x

 

 

 

 

 

 

 

 

 

 

x

 

 

0.1

 

 

x

X0

X0

x

Xlast(X)

 

x

Xlast(X)

 

 

 

 

 

 

 

 

 

 

x

X0 X0

 

 

 

 

 

 

 

 

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

Y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y(x)

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2 0

1

2

3

4

5

6

 

 

 

 

 

 

 

 

 

 

 

X x

 

 

 

 

Коэффициенты a и b можно вычислить и так:

51

a

intercept(X Y)

a 2.829

b

slope(X Y)

b 0.414

3.5.2.Регрессия общего вида

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

y( x) a0 f0( x) a1 f1( x) ... an fn ( x) ,

где коэффициенты a0 ,a1 ,...,an подлежат определению.

Неизвестные коэффициенты можно определить использованием встроенной функции linfit( X, Y , F ).

Аргументы функции:

X x1 , x2 , , xn T – вектор действительных данных аргумента, элементы которого расположены в порядке возрастания;

Y

y , y

 

, , y

T – вектор действительных данных ( y

 

y(x

 

)

 

1

2

 

n

i

 

i

 

того же размера;

F – функция, представляющая собой вектор, элементами которого являются функции, которые нужно объединить в виде линейной

комбинации, т. е.

F

 

f

0

( x), f

1

( x), , f

n

( x)

T .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ниже

приведен

 

пример

построения

уравнения

регрессии вида

y( x)

a

0

a x

a

2

x2

 

a

3

x3 по набору данных, записанных в вектора

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X и Y .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

( 0

1

2

3

4

5

 

6 )T

 

Y

( 4.1

 

2.4

3

4.3

3.6 5.2 5.9 )T

F(x)

 

1

x

2 T

 

 

 

 

 

 

A

linfit(X

Y

F)

 

 

x

 

 

 

 

 

 

 

 

 

 

 

AT

 

( 3.602

 

0.514

0.155 )

y (x)

 

A F(x)

 

 

x

 

0.1

 

 

 

x

 

X0

X0

x Xlast(X)

 

 

52

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

X0

X0

x

 

Xlast(X)

 

7

 

 

 

 

 

 

 

 

5.75

 

 

 

 

 

 

 

Y

 

 

 

 

 

 

 

 

y(x)

4.5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.25

 

 

 

 

 

 

 

 

2

0

1

2

3

4

5

6

 

 

 

 

X x

 

 

 

3.6. Математическая статистика

Пакет Mathcad имеет развитый аппарат работы с задачами математической статистики. С одной стороны, имеется большое количество встроенных специальных функций, позволяющих рассчитывать плотности вероятности и другие основные характеристики основных законов распределения случайных величин. Наряду с этим, в Mathcad запрограммировано соответствующее количество генераторов псевдослучайных чисел для каждого закона распределения, что позволяет эффективно проводить моделирование методами Монте-Карло. Имеется возможность строить гистограммы и рассчитывать статистические характеристики выборок случайных чисел и случайных процессов, таких как средние, дисперсии, корреляции и т. п. При этом случайные последовательности могут как создаваться генераторами случайных чисел, так и вводиться пользователем из файлов.

3.6.1. Случайные величины

Для моделирования различных физических, экономических и прочих эффектов широко распространены методы, называемые методами Монте-Карло. Их основная идея состоит в создании определенной последовательности случайных чисел, моделирующей тот или иной эффект, например шум в физическом эксперименте, случайную динамику биржевых индексов и т. п. Для этих целей в Mathcad встроен ряд генераторов псевдослучайных чисел. Такие генераторы реализованы в виде встроенных функций, создающих

53

выборку псевдослучайных данных с соответствующим законом распределения.

Рассмотрим некоторые из этих функций:

rnorm(N , m , у) – возвращает вектор N случайных чисел,

имеющих нормальное распределение с математическим ожиданием m и среднеквадратичным отклонением у (квадратный корень из дисперсии).

runif(N , a , b) – возвращает вектор N случайных чисел, имеющих равномерное распределение на отрезке [a , b] , a b .

rnd( x) – возвращает равномерно распределенное случайное число на отрезке [0, x] . Эквивалент runif(1, 0, x) .

3.6.2.Числовые характеристики случайных величин

ВMathcad имеется ряд встроенных функций для расчетов числовых статистических характеристик случайных данных.

Пусть X x1 , x2 , , xn T – вектор действительных случайных

данных (выборка). Тогда для него могут быть вычислены следующие числовые характеристики:

 

1

 

n

mean(X ) – выборочное среднее значение, mean(X )

 

 

xi ;

n i

 

1

median(X ) – выборочная медиана (median) – значение аргумен-

та, которое делит гистограмму (см. ниже) плотности вероятностей на две равные части;

var( X ) – выборочная дисперсия (variance),

 

1

 

n

 

mean(X ) 2

;

var( X )

 

 

x

i

n i

 

1

 

 

 

 

 

 

stdev(X ) – среднеквадратичное (или «стандартное») отклонение

(standarddeviation), stdev(X ) var( X ) ;

max(X ) , min(X ) – максимальное и минимальное значения выборки;

mode(X) – наиболее часто встречающееся значение выборки;

54

3.6.3. Построение гистограммы

Гистограммой называется график, аппроксимирующий по случайным данным X x1 , x2 , , xn T плотность их распределения.

При построении гистограммы область значений случайной величины[a, b] разбивается на некоторое количество N сегментов, а затем

подсчитывается процент попадания данных в каждый сегмент. Для построения гистограмм в Mathcad имеется несколько встроенных функций. Рассмотрим наиболее удобную из них, функцию histogram(N , X ) . Функция возвращает матрицу, состоящую из двух

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

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

Сформулируем следующую задачу:

получить выборку из 100 случайных чисел, имеющих нормальный закон распределения вероятностей со средним значением 5 и дисперсией 2;

определить числовые характеристики выборки; построить гистограмму.

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

Mathcad.

 

 

 

 

 

 

 

N

100

m 5

D 2

 

D

X

rnorm(N m

)

 

 

 

m_X

 

mean(X)

m_X

4.787

 

 

var_X

var(X)

var_X

1.91

 

 

_X

 

stdev(X)

_X

1.382

 

 

max_X

 

max(X)

max_X

9.311

 

 

min_X

min(X)

min_X

0.898

 

 

median_X

median(X)

median_X 4.901

55

 

 

 

30

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

24

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

H 1

18

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

2

 

 

 

 

4

6

 

 

 

 

8

 

 

 

10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

H 0

 

 

 

 

 

 

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

перейти в режим форматирования и выбрать вкладку Traces (Линии);

раскрыть список Type (Тип) и выбрать тип диаграммы bar.

Если на гистограмме необходимо отображать не число, а частоту попаданий данных в соответствующие интервалы, то второй столбец матрицы H необходимо пронумеровать, как показано ниже.

Y

H 1

N

0.3

 

 

 

 

 

 

0.24

 

 

 

 

 

 

0.18

 

 

 

 

 

 

Y

 

 

 

 

 

 

0.12

 

 

 

 

 

 

0.06

 

 

 

 

 

 

0

0

2

4

6

8

10

 

 

 

 

H 0

 

 

3.7. Поиск экстремума функции

Задачи поиска экстремума функции означают нахождение ее максимума (наибольшего значения) или минимума (наименьшего значе-

56

ния) в некоторой области определения ее аргументов. Ограничения

значений аргументов, задающих эту область, как и прочие дополни-

тельные условия, должны быть определены в виде системы нера-

венств и (или) уравнений. В таком случае говорят о задаче на услов-

ный экстремум. Для решения задач поиска максимума и минимума в

Mathcad имеются встроенные функции Minimize и Maximize. С

помощью этих функций решается задача поиска локальных экстре-

мумов функции.

 

 

 

 

 

 

 

 

 

3.7.1. Экстремум функции одной переменной

 

 

 

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

ваемые встроенные функции имеют следующий синтаксис:

Minimize( f , x) и Maximize( f , x) . Здесь

f – имя функции, для кото-

рой находится экстремум, а x – имя переменной, по которой выполня-

ется поиск.

 

 

 

 

 

 

 

 

 

 

Рассмотрим следующий пример. Пусть требуется найти все ло-

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

функции

f ( x)

x4

5x3

x

10 на отрезке

x

[ 5, 5] .

 

 

 

 

 

 

 

 

 

 

Построим на указанном отрезке график функции

f ( x)

 

f (x)

 

x4

5x3

10x

 

 

 

 

 

x1

 

4

x2

 

2

x

0.1

 

 

 

x

x1 x1

x

 

x2

 

 

 

 

 

 

 

 

 

 

 

40

 

 

 

 

 

 

 

 

 

 

30

 

 

 

 

 

 

 

 

 

 

20

 

 

 

 

f (x)

 

 

 

 

 

10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

3

 

2

1

10 0

1

 

2

 

 

 

 

 

 

 

20

 

 

 

 

 

 

 

 

 

 

30

 

 

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

57

Из графика видно, что на указанном отрезке функция имеет три локальных экстремума: два локальных минимума и один локальный максимум. Для поиска первого локального минимума укажем, исходя из графика функции, для переменной x некоторое начальное приближение к точке x1_ min и воспользуемся функцией Minimizeкак пока-

зано ниже. Затем вычислим значение функции в найденной точке x1_ min .

x

4

x1_min Minimize(f

x)

x1_min

3.552

y1_min

f (x1_min)

y1_min

29.371

 

Аналогичным образом определяем x _ max , x2 _ min и значения функции в этих точках. Результат показан ниже.

x

4

x1_min Minimize(f x)

x1_min

3.552

y1_min

f (x1_min)

y1_min

29.371

 

x

1.5

x_max

Maximize(f x)

 

x_max

0.944

y_max

f (x_max)

y_max

6.028

 

x

1

x2_min Minimize(f x)

 

x2_min

0.746

y2_min

f (x2_min)

y2_min

5.074

3.7.2. Экстремум функции многих переменных

Для поиска экстремума функции многих переменных y f ( x1 , x2 , , xn )

рассматриваемые встроенные функции имеют следующий синтаксис:

Minimize( f , x1 , x2 , , xn ) и Maximize( f , x1 , x2 , , xn ).

Здесь f – имя функции, для которой находится экстремум, а

x1 , x2 , , xn – имена переменных по которым выполняется поиск. При этом необходимо указать начальное приближение к искомой точке экс-

тремума в виде:

x

x0

,

x

2

x0

, ,

x

n

x0

. Указанное требование в

 

1

1

 

 

2

 

 

n

 

58

 

 

 

 

 

 

 

 

 

 

 

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

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

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

x2 y2 ( x 1)2 ( y 2)2

f ( x, y) e

5

e

5

для x [ 5, 5]

и y [ 5, 5]

 

 

 

 

Построим график функции и карту линий уровня.

 

 

x2 y2

 

(x 1)2 (y 2)2

f (x y)

e

5

 

e

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f

f

 

Используя карту линий уровня, выбираем начальное приближение ( x 1, y 2) для поиска локального максимума и находим его.

x

1 y

2

x_max

Maximize(f x y)

y_max

59

x_max

0.272

 

y_max

0.543

 

 

f (x_max y_max)

0.73

 

 

Аналогично определяем начальное приближение для поиска ло-

кального минимума ( x

3,

y

4) и находим его.

 

x

3

y

4

 

 

 

 

x_min

Minimize(f

x y)

x_min

1.272

y_min

 

 

 

 

 

 

 

y_min

2.543

 

f (x_min y_min)

0.73

Рассмотрим еще один пример на условный экстремум. Пусть необходимо найти минимум функции f ( x, y) x 2 y 2 2 при условии, что x y 1.

Поскольку данная функция является квадратичной, то она имеет единственный минимум. Это означает, что в качестве начального приближения для поиска минимума можно взять любое число, например x 0 и y 0 .

Для поиска условного экстремума функции необходимо использовать блок Given, как показано ниже.

x

0

 

 

y

0

 

 

Given

 

 

 

 

x

y

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

x_min

 

Minimize(f

x y)

 

y_min

 

 

 

 

 

 

x_min

0.5

 

y_min

0.5

f (x_min y_min)

2.5

 

60