ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ РФ МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕХНОЛОГИЙ И УПРАВЛЕНИЯ
(образован в 195...
608 downloads
746 Views
439KB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ РФ МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕХНОЛОГИЙ И УПРАВЛЕНИЯ
(образован в 1953 году) Кафедра информационных технологий
В. Ю. ЯНЬКОВ
ЛАБОРАТОРНЫЙ ПРАКТИКУМ ПО МАТКАДУ Модуль 2. Работа со встроенными функциями Маткада. Для преподавателей, аспирантов и студентов технических, технологических и экономических специальностей всех форм обучения .
Москва 2009
Содержание Введение
Стр. 4
Лабораторная работа №1. Решение обыкновенных дифференциальных уравне- 4 ний (Задача Коши). Часть1. Лабораторная работа №2.Решение обыкновенных дифференциальных уравнений 10 (Задача Коши). Часть2 Лабораторная работа №3. Решение краевых задач 15 Лабораторная задача №4.Решение разностных уравнений
19
Лабораторная работа №5. Регрессии
21
Лабораторная работа №6. Доверительные области и доверительные интервалы
27
Рекомендуемые источники
30
2
ВВЕДЕНИЕ Все математические операции в Маткаде можно осуществлять, используя встроенные функции и встроенные операторы. Встроенные функции вызываются с помощью мастера функций – кнопки с изображением f (x), расположенной на инструментальной панели. При этом появляется окно с перечнем всех функций Маткада, из которого можно выбрать необходимую в данный момент функцию. Встроенные операторы расположены на панели вычислений, которая вызывается кнопкой с изображением производной и интеграла на математической панели. Во втором модуле «Работа со встроенными функциями Маткада» решаются с использованием встроенных функций различные математические задачи без привязки к конкретным прикладным задачам. Модуль состоит из шести лабораторных работ. В первых четырех лабораторных работах приводится решение основных типов дифференциальных уравнений в Маткаде. Рассматривается несколько методов решения задачи Коши, решается краевая задача. Рассматривается решение разностных уравнений. Две последние лабораторные работы посвящены построению различных регрессий, доверительных интервалов и проверке статистических гипотез. ЛАБОРАТОРНАЯ РАБОТА №1. РЕШЕНИЕ ОБЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ В МАТКАДЕ (ЗАДАЧА КОШИ) Часть 1. В Маткаде имеется тринадцать встроенных функций для решения обыкновенных дифференциальных уравнений различными методами. Большинство из них требуют предварительного представления дифференциального уравнения в виде системы дифференциальных уравнений первого порядка. Среди встроенных функций Маткада для решения дифференциальных уравнений есть функция их решения методом Рунге – Кутты с постоянным фиксированным шагом. Она имеет вид: rkfixed( v,x0,x k,n,F). Здесь v начальные условия, записанные в виде вектора, x0,xk – начальное и конечное значения аргумента, n- число шагов, F- правые части системы, записанные в виде вектора. Возможно решение тем же методом с автоматическим выбором шага. Для этого служит функция rkadapt(y, x1, x2, n points, D). Эти методы требуют преобразования дифференциального уравнения в систему уравнений первого порядка. В последних версиях Маткада появилась функция odesolve(х, b) (ordinary differential equation solution – решение обыкновенного дифференциального уравнения), позволяющая решать уравнение без его преобразования. Здесь в скобках х – переменная интегрирования, b- верхняя граница изменения аргумента. Нижняя граница равна нулю. Решение дифференциальных уравнений с помощью функции odesolve. Задача 1. Используя встроенную функцию odesolve решить в Маткаде следующее нелинейное обыкновенное дифференциальное уравнение второго порядка с нулевыми начальными условиями: sin x 100 y ``+10( y `) 2 + 101 y = 50( ) 4 На рис. 1. показано это решение Итак, для решения с использованием этой функции нужно: 1. Ввести директиву given 2. Набрать дифференциальное уравнение. Знак производной набирается клавишей Ё английской клавиатуры, знак «=» - с логической панели, 3. набрать начальные условия, 4. набрать функцию odesolve, 3
5. 6.
сформировать график, Нажать клавишу F9. Given
50⋅ ⎛⎜
2
100y''( x) + 10y'( x) + 101y ( x)
sin ( x) ⎞
⎝ 4 ⎠
y'( 0)
y := Odesolve ( x, 200)
0
y ( 0)
0
x := 0 , 0.05.. 200
10
y ( x)
0
50
100
150
200
10 x
Рис.1. Решение в Маткаде обыкновенного дифференциального уравнения с помощью встроенной функции odesolve Задача 2. Используя функцию odesolve, решить самостоятельно приведенные ниже дифференциальные уравнения. Построить графики решения: y ```+50 y ``+ y `y + 9 y = 0 y ``(0) = 2
y``+5 y `+10 y = 5 x y`(0) = 0 y ( 0) = 0
y `(0) = 0 y ( 0) = 8
Используя функцию odesolve, можно решать и системы дифференциальных уравнений первого порядка. На рис.2 приведено решение системы двух уравнений. Из рисунка видно, что в функцию odesolve помимо прежних данных вводится вектор имен решаемых функций Given 3
5 u'( x) + w'( x) ⋅ u ( x) + u ( x) + 5⋅ x
0 2
4 w'( x) + 9 u ( x) + 5 w( x) − 7⋅ x u ( 0)
0
w( 0)
0
0
⎛ u ⎞ := Odesolve ⎡⎛ u ⎞ , x, 10⎤ ⎜ ⎢⎜ ⎥ ⎝ w⎠ ⎣⎝ w ⎠ ⎦
x := 0 , 0.1.. 20
400
u( x)
200
w ( x) 0
5
200 x
4
10
Рис.2.Решение системы уравнений первого порядка. Недостатком этой функции является фиксированная нижняя граница аргумента Задача 3. Решить самостоятельно приведенные ниже системы уравнений первого порядка y `( x ) + y ( x ) z ( x ) + 8 x = 0
u `(t ) w(t ) + u (t ) − 3t = 0
z `( x ) + 8 z ( x ) − 10 = 0
w`(t ) − w(t ) + t 2 = 0 u ( 0) = 0 w(0) = 0
y ( 0) = 1 z ( 0) = 5
Решение дифференциальных уравнений с помощью функции rkfixed. Встроенная функция rkfixed (метод Рунге – Кутта с фиксированным шагом решения) позволяет решать только системы дифференциальных уравнений первого порядка. Уравнения порядка выше первого требуется преобразовывать в систему первого порядка. Разберем сначала, как это делается применительно к пакету Маткад. Любое обыкновенное дифференциальное уравнение выше первого порядка может быть представлено в виде системы дифференциальных уравнений первого порядка, число которых равно порядку преобразуемого уравнения. Покажем это на примере дифференциального уравнения третьего порядка. Дано ay'''+by''+cy'+dy=f(x) . (1) Введем подстановки: y''=y0, (2) y'=y1, (3) y=y2. (4) Тогда уравнение (1) запишется в виде:
сюда
ay0'+by0+cy1+dy2=f(x) . (5) Это первое уравнение первого порядка будущей системы. Продифференцируем уравнение (3). Получим y''=y1'. (4) Левые части уравнений (2) и (4) равны. Следовательно, равны и их правые части. Отy1'=y0
. (5)
Продифференцируем уравнение (4). Получим y'=y2'. (6) Левые части уравнений (3) и (6) равны, следовательно, равны и их правые части. Тогда (7) y2'=y1. Мы получили систему из трех дифференциальных уравнений первого порядка: ay0'+by0+cy1+dy2=f(x) y1'=y0 (8) y2'=y1 Разрешив первое уравнение относительно производной, окончательно получим: y0'=–by0/a–cy1/a–dy2/a+f(x)/a y1'=y0 (9) y2'=y1 Решим методом Рунге- Кутты с фиксированным шагом дифференциальное уравнение второго порядка: d2y dy + 1.33 + 1.667 y = 0 dt dt dy при заданных начальных условиях t0 =0, y(0)=1, = 0 и заданном конце счета tk= 13. dt 5
Проведя преобразование в систему уравнений первого порядка, получим: dy = −1.33 y 0 − 1.667 y1 dt dy1 = y0 . dt Начальные условия примут вид: y0(0) = 0, y1(0) = 1. Записав правые части и начальные условия в виде векторов , получим
⎡− 1.33 y0 − 1.66 y1 ⎤ f (t , y ) = ⎢ ⎥ ⎣ y0 ⎦
⎡0 ⎤ v=⎢ ⎥ ⎣1 ⎦
f(t, y) – это вектор правых частей системы. При его формировании надо обратить внимание на следующее: 1.Вместо буквы f можно использовать любую другую букву. Но тогда и во встроенной функции нужно, естественно, использовать ту же букву. 2.Внутри скобок первое имя (в нашем случае t) является именем аргумента, по которому происходит интегрирование дифференциального уравнения. Т. е. опять - таки это может быть и другая буква. 3.Вторая буква внутри скобок – это вектор имен зависимых переменных. Им эти имена полностью определяются. Если принято имя y, то именами переменных должны являться y0, y1, y2 и т.д., причем первое уравнение – это dy0 /dt =……, второе dy1/dt = ……….. и т.д. На рис. 3 приведено решение этой системы. Р ⎛ − 1.333 ⋅ y 0 − 1.667 ⋅ y 1 ⎞ F ( t , y ) := ⎜ 0 1 2 y0 ⎝ ⎠ 0 0 0 1
⎡⎛ 0 ⎞ ⎤ , 0 , 13 , 1000 , F ⎥ ⎣⎝ 1 ⎠ ⎦
z := rkfixed ⎢⎜
z = j := 0 .. 1000
1 0.5
1
0.013
-0.021
1
2
0.026
-0.043
0.999
3
0.039
-0.063
0.999
4
0.052
-0.084
0.998
5
0.065
-0.104
0.997
6
0.078
-0.123
0.995
7
0.091
-0.143
0.993
8
0.104
-0.161
0.991
9
0.117
-0.18
0.989
10
0.13
-0.198
0.987
11
0.143
-0.216
0.984
12
0.156
-0.233
0.981
13
0.169
-0.25
0.978
14
0.182
-0.267
0.975
15
0.195
-0.283
0.971
zj , 2 0
5
10
15
0.5 zj , 0
и Рис.3 Решение дифференциального уравнения с помощью функции rkfixed. Ответ получен в виде вектора и в виде графика. В первой строке этого вектора показаны номера переменных: z0 это время, z1 - производная y0, z2 - сама функция у. Выведены только первые 11 значений вектора ответа. 6
Начальные условия заданы встроенным вектором v. Ранжировка j := 0..1000 относится не к функции rkfixed , а к графику. Для встроенной функции число точек решения задано числом 1000 внутри нее. Внутри функции указано время интегрирования 0 –13 . По оси абсцисс графика отложен первый столбец матрицы ответов zj,0 - аргумент (в нашей задаче – время t ), где j =0..1000. По оси ординат отложена переменная zj,2 В процессе решения задачи на экране мигает электрическая лампочка. Задача 1. Решить приведенную выше систему в Маткаде. Задача 2. Решить в Маткаде дифференциальное уравнение второго порядка T2 d2 y/dt2 + ξ T dy/dt +y =0 при начальных условиях t 0 = 0, y(t0) =1, dy/dt (t0) =0 и заданных значениях параметров Т=10, ξ =0.5. Задача 3. Решить в Маткаде самостоятельно следующие дифференциальные уравнения: 1. 3d2y/dx2 +5 dy/dx +6 y =0 x0 =0, y(x0) =2, dy/dx (x0)=0. хлон= 20, n=500. 2. 5d3y/dt3 + 9 d2y/dt2 – 2dy/dt + 8y = 1/(t+1). y(0)=0, y`(0)=1, y``(0)=0. Задача 4.Построение фазовых портретов. Фазовым портретом называется график функции в координатах y`(y). Фазовые портреты используются в теории автоматического управления для определения переходных процессов в автоматических системах. Построим фазовый портрет для дифференциального уравнения второго порядка, записанного в форме: T 2 y ``+2Tξy `+ y = 0 y ( 0) = 0 : y `(0) = 1 Здесь Т- постоянная времени, ξ – коэффициент затухания. Решаются три одинаковых дифференциальных уравнения с одинаковыми начальными условиями, но с разными коэффициентами затухания. T := 10
ξ := 0
⎛⎜ −2ξ⋅ T⋅ y1 − y1 0 1 ⎜ 2 f1( t , y1) := ⎜ T ⎜ y1 ⎜ 0 ⎝ ξ := 0.1
ξ := −0.1
⎞ ⎟ ⎟ ⎟
⎡⎛ 0 ⎞ ⎤ , 0 , 100 , 1000 , f1⎥ ⎢⎜ 1 ⎥ ⎣⎝ ⎠ ⎦
z1 := rkfixed⎢⎜
⎠
⎛⎜ −2ξ⋅ T⋅ y2 − y2 0 1 ⎜ 2 f2( t , y2) := ⎜ T ⎜ y2 ⎜ 0 ⎝
⎞ ⎟ ⎟ ⎟
⎡⎛ 0 ⎞ ⎤ , 0 , 100 , 1000 , f2⎥ ⎢⎜ 1 ⎥ ⎣⎝ ⎠ ⎦
z2 := rkfixed⎢⎜
⎠
⎛⎜ −2ξ⋅ T⋅ y3 − y3 0 1 ⎜ 2 f3( t , y3) := ⎜ T ⎜ y3 ⎜ 0 ⎝
⎞ ⎟ ⎟ ⎟
⎡⎛ 0 ⎞ ⎤ , 0 , 100 , 1000 , f3⎥ ⎢⎜ 1 ⎥ ⎣⎝ ⎠ ⎦
z3 := rkfixed⎢⎜
⎠
7
2
1
z1 j, 2 z2 j, 2
0.25
0.2
0.15
0.1
0.05
z3 j, 2
0
0.05
0.1
0.15
0.2
1
j := 0 .. 1000
2
3
z1 j, 1 , z2 j, 1 , z3 j, 1
Рис.4. Фазовые портреты Все три решения начинаются в одной точке (0,1). Но первая сплошная кривая при ξ=0 – эллипс, характеризует консервативную систему, незатухающие гармонические колебания. Вторая пунктирная кривая при ξ=0.1 – затухающая кривая, характеризует затухающие колебания, такая система является устойчивой (это характерно для всех 0 < ξ <1). Третья кривая пунктиром – при ξ = - 0.1 характеризует неустойчивую колебательную систему. Решение дифференциальных уравнений методом Буль-Штейера Электронный учебник по Маткаду утверждает, что численный метод Буль – Штейера дает более точное решение, чем метод Рунге Кутта. Ниже на рис.5 приведено решение этим методом нелинейной системы второго порядка: с начальными условиями dx 0 = x0 (0.01 x1 − 1) x0 (0) = 50 dt x1 (0) = 2000 dx1 = −0.01 x0 x1 dt Из рисунка видно, что последовательность решения не отличается от последовательности решения методом Рунге-Кутта. ⎡x0⋅ ( 0.01⋅ x1 − 1)⎤ ⎥ f( t , x) := ⎢ ⎢ −0.01⋅ x ⋅ x ⎥ 0 1 ⎦ ⎣
j := 0 .. 100
⎡⎛ 50 ⎞ , 0, 13, 1000, f⎤ ⎥ ⎣⎝ 2000 ⎠ ⎦
z := Bulstoer ⎢⎜
2000
z j , 2 1000
0
0.5
1
1.5
z j, 0
Рис.5.Решение дифференциального уравнения методом Буль - Штейера Дифференциальныеt уравнения со случайной составляющей. Маткад позволяет решать дифференциальные уравнения, коэффициенты которого являются случайными функциями. При этом, конечно, каждая реализация решения будет отличаться от предыдущей. Ниже, на рис.6 показано решение уравнения третьего порядка, сво8
бодный член которого реализуется функцией rnd –возвращающей равномерно распределенную случайную величину в пределах 0 – 1. j := 1 .. 1024 ⎛⎜ −3⋅ y 1 − 5 y 2 − 6 y 3 + rnd ( 1) ⎞ ⎟ y f( t , y ) := ⎜ 1 ⎜ ⎟ 0 ⎤ ⎡⎛ ⎞ ⎜ y ⎢ ⎜ ⎥ z := rkfixed 0 , 0 , 50, 1024, f 2 ⎝ ⎠ ⎢⎜ ⎥ ⎣⎝ 1 ⎠ ⎦ 1
1 0.63 z j , 4 0.25 0.13 0
15
30
45
60
z =
0.5 z j,1
2
3
4
1 2
0 0.049
0 -0.249
0 -6.172·10 -3
1 1
3
0.098
-0.455
-0.023
0.999
4
0.146
-0.629
-0.05
0.997
5
0.195
-0.768
-0.084
0.994
6
0.244
-0.88
-0.125
0.989
7
0.293
-0.969
-0.17
0.982
8
0.342
-1.052
-0.219
0.972
9
0.391
-1.092
-0.272
0.961
10
0.439
-1.112
-0.326
0.946
11
0.488
-1.114
-0.38
0.929
12
0.537
-1.097
-0.434
0.909
13
0.586
-1.071
-0.487
0.886
14
0.635
-1.015
-0.538
0.861
15
0.684
-0.964
-0.587
0.834
16
0.732
-0.891
-0.632
0.804
Рис.6 Решение дифференциального уравнения со случайными параметрами ЛАБОРАТОРНАЯ РАБОТА №2.РЕШЕНИЕ ОБЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ В МАТКАДЕ (ЗАДАЧА КОШИ) Часть 2. Опыт показывает, решение дифференциальных уравнений в численном виде приводит к тому, что студенты не понимают принципиального отличия нелинейных систем от линейных. Аналитическое решение подчеркивает это различие, численное – стирает. Поэтому представляется полезным провести некоторое исследование свойств обоих типов уравнений. Дифференциальное уравнение порядка n an
dny d n −1 y dy + a n −1 + ...a1 + a0 = f ( x ) n dx n dx dx
называется линейным, если все его коэффициенты a n ( n =0,1,…) являются числами или функциями аргумента х. Дифференциальное уравнение называется нелинейным, если хотя бы один из этих коэффициентов зависит от функции у, или ее производных. Рассмотрим линейное дифференциальное. уравнение второго порядка d2y dy + 2ξT +y=0 2 dt dt y ( 0) = 0 y `(0) = 1
T2
Данное дифференциальное уравнение является линейным с постоянными коэффициентами, так как и Т и ξ - числа. В теории автоматического управления линейное уравнение, записанное в такой форме, называется типовым динамическим звеном второго порядка. 1. Исследуем влияние на решение коэффициента ξ. Его значения при Т= 10 заданы в таблице: 9
T
ξ
Убедимся, что при ξ =5 решение - монотонно затухающая кривая, 10 5 при ξ =0,5 - решение затухающее колебательное, при ξ =0 решение - чистая синусоида, при 10 -0.5 ξ = -0,5 решение расходящаяся синусоида и, наконец, 10 0 при ξ = -5 решение - монотонно расходящаяся кривая. Следовательно, если данным дифференциальным. уравнением описывается какая - либо реальная система ( а это бывает сплошь и рядом), то при ξ= 0,-0.5, -5 система неработоспособна, т.к. является неустойчивой. Коэффициент ξ в данном уравнении называют коэффициентом затухания. 3. Исследуем теперь влияние коэффициента Т при неизменном ξ = 0.5 . Примем Т= 1, 5,10,25. Убедимся, что увеличение Т ведет к увеличению запаздывания системы. Коэффициент Т называют линейным запаздыванием. 1. Если в любом дифференциальном уравнении и правая часть равна 0 и заданы нулевые начальные условия, то его решение будет также тождественно равно 0.Начальные условия и правая часть являются возмущениями. Рассмотрим, как влияет величина начальных условий - возмущений на решение дифференциального уравнения. При Т= 10, ξ = 0.5 рассмотрим решения для у0 = 10 и y0 =100. Мы видим, что характер решения не изменился, устойчивая система продолжает оставаться устойчивой при увеличении возмущений. Пример решения линейного уравнения. Задано одно и то же уравнение, но разные начальные условия (различное возмущение). 3d2z/dt2 +0,8dz/dt +6z=0 3d2y/dt2 +0,8dy/dt +6y=0 t0 =0, z0 =100, dz/dt t=0 =0 t0 =0, y0= 10 , dy/dt t=0 =0 10
0.5
j := 0 .. 1000
100 y j,1 z j,1
0
5
10
100 200
Рис.1 Влияние начальных условий на решение линейного дифференциального уравнения. Характер решения не изменился. В обоих случаях - затухающие колебания с одинаковой частотой. Задача 1. А)Решить приведенное выше линейное дифференциальное уравнение для Т=10 и ξ= 2,-0.5, 0, 0.5,5. Убедиться, что: При ξ - -2 решение – расходящийся апериодический процесс; при ξ = -0.5 – решение – расходящийся периодический процесс; при ξ =0 – решение незатухающие гармонические колебания; при ξ= +0.5 – решение затухающие колебания; 10
при ξ = +5 – решение апериодический сходящийся процесс. Б). Решить приведенное выше линейное дифференциальное уравнение для ξ=2 и Т=0.5,5,10. Убедиться, что увеличение коэффициента линейного запаздывания Т приводит к уменьшению наклона решения - экспоненты . В) Решить приведенное выше линейное дифференциальное уравнение для начальных условий, заданных на рис.1. Убедиться, что характер решения и период колебаний не изменился. Исследование нелинейных дифференциальных уравнений. Если решение линейных дифференциальных уравнений полностью определяется параметрами (коэффициентами) этих уравнений, то решение нелинейных уравнений зависит также и от величины возмущений. Пример решения нелинейного уравнения Рассмотрим решение двух одинаковых нелинейных дифференциальных уравнений с различными начальными условиями. d2y/dt2 +1,53 dy/dt *y +0,16y=0 t0 =0, y0 =0,5 , dy/dt t=0 =0
d2z/dt2 +1,53dz/dt*z +0,16z =0 t0=0 , z0 =3 , dz/dt t=0 =0 .
На рис.2 показаны решения обоих уравнений. ⎛ −1.53⋅ z0⋅ z1 − 0.16⋅ z1 ⎞ F( t , z) := ⎜ ⎜ z 0 ⎝ ⎠
⎛ −1.53y0⋅ y 1 − 0.16⋅ y 1 ⎞ f( t , y ) := ⎜ ⎜ y 0 ⎝ ⎠ ⎡⎛ 0 ⎞ , 0 , 100, 1000, f⎤ y := rkfixed⎢⎜ ⎥ ⎣⎝ 0.5 ⎠ ⎦
⎡⎛ 0 ⎞ , 0 , 100, 1000, F⎤ ⎥ ⎣⎝ 3 ⎠ ⎦
z := rkfixed⎢⎜ j := 0 .. 1000
5 y j,2 0
z j,2
10
20
30
40
50
60
70
80
90
100
5 y j,0
Рис.2. Влияние начальных условий на решение нелинейного дифференциального уравнения. Вывод: При изменении начальных условий изменилась форма кривой, период колебаний. Задача 2. Решить оба уравнения, построить графики. Символьное решение линейных дифференциальных уравнений. Встроенных функций для символьного решения дифференциальных уравнений в Маткаде нет. Символьное решение линейных дифференциальных уравнений проводится классическим способом, через решение характеристического уравнения с последующим определением констант методом вариации постоянных.
11
Так как алгебраические уравнения с буквенными коэффициентами выше третьей степени не решаются в Маткаде символьно, то и линейные дифференциальные уравнения с буквенными коэффициентами выше третьего порядка решены быть не могут Разберем символьное решение следующего линейного дифференциального уравнения третьего порядка y ( 0 ) = 8 .1 d3y d2y dy 0.01 3 + 0.1 2 + 0.1 + 0.01 = 7 y `(0) = 0 dt dt dt y ``(0) = 0 Его характеристическое уравнение: 3
2
0.01s + 0.1s + 0.1s + 0.01
0
Мы решаем его символьно −1. ⎛ ⎞ ⎜ 0.01⋅ s + 0.1⋅ s + 0.1⋅ s + 0.01 solve , s → −8.8874821936960610302 ⎜ ⎝ −.11251780630393896979⎠ Однако полученные корни имеют слишком много знаков. Для уменьшения числа значащих цифр найдем эти корни с одновременным переводом их с помощью оператора float (плавающая точка) в форму с плавающей точкой. 3
2
solve , s 0.01⋅ s + 0.1⋅ s + 0.1⋅ s + 0.01 → float , 3 3
2
⎛ −1. ⎞ ⎜ −8.89 ⎜ ⎝ −.113 ⎠
Поставив float 3 , мы ограничились тремя значащими знаками. Установка двух операторов производится автоматически нажатием последовательно двух кнопок на панели символьных вычислений. Отсюда частные решения имеют вид:
y1( t) := exp( −t)
y2( t ) := exp( −8.89⋅ t ) y3( t ) := exp( −0.113⋅ t )
и общее решение равно
y = C1 e −8.89 t + C 2 e − t + C 3 e −0.113 t Решая систему алгебраических уравнений, определяем С1,С2,С3. given C1⋅ y1( t) + C2⋅ y2( t) + C3⋅ y3( t)
0
d d d C1⋅ y1( t) + C2⋅ y2( t) + C3⋅ y3( t) dt dt dt C1⋅
d
2
dt
12
2
y1( t) + C2⋅
d
2
dt
2
y2( t) + C3⋅
d
2
dt
2
−1.00 ⎡ ⎤ ⎢ ⎥ 1000 ⎢ ⎡e( − .100e-2) ⋅ t⎤ ⎥ ⎣ ⎦ ⎢ ⎥ .101 ⎢ ⎥ find( C1, C2, C3) float , 3 → ⎢ 8890 ⎥ ( − .100e-2) ⋅ t⎤ ⎢ ⎡⎣e ⎥ ⎦ ⎢ ⎥ .899 ⎢ ⎥ ⎢ ⎡ ( − .100e-2) ⋅ t⎤ 113 ⎥ ⎣ ⎣e ⎦ ⎦
y3( t)
0 7
Используя оператор simplify(упростить. Соответствующая кнопка символьной панели), упрощаем найденное решение −1.00 ⎡ ⎤ ⎢ ⎥ 1000 ⎢ ⎡e( − .100e-2) ⋅ t⎤ ⎥ ⎣ ⎦ ⎡ ( −1.) ⋅ et ⎤ ⎢ ⎥ ⎢ ⎥ .101 ⎢ ⎥ simplify ⎢ ⎥ 8.89 ⋅ t → .101⋅ e 8890 ⎥ ⎢ float , 3 ( − .100e-2) ⋅ t⎤ ⎢ ⎥ ⎡ ⎢ ⎣e ⎥ ⎦ ⎢ .113⋅ t ⎥ ⎢ ⎥ ⎣.899⋅ e ⎦ .899 ⎢ ⎥ ⎢ ⎡ ( − .100e-2) ⋅ t⎤ 113 ⎥ ⎣ ⎣e ⎦ ⎦ Интегрируем ⌠ ⎮ t t ⎮ −e dt float , 3 → ( −1.) ⋅ e ⌡ ⌠ 8.89⋅ t 8.89⋅ t ⎮ dt float , 3 → .114e-1⋅ e ⎮ 0.101e ⌡ ⌠ ⎮ .113⋅ t .113⋅ t dt float , 3 → 7.96⋅ e ⎮ .899⋅ e ⌡
Прибавляем постоянные интегрирования t ⎡ ( −1.) ⋅ et ⎤ ⎡ ⎤ ⎢ ⎥ ⎛ C11 ⎞ ⎢ ( −1.) ⋅ e + C11 ⎥ ⎢ ⎥ 8.89⋅ t ⎥ + ⎜ C12 → ⎢ 8.89⋅ t + C12⎥ ⎢.114e-1⋅ e ⎥ ⎜ ⎢.114e-1⋅ e ⎢ .113⋅ t ⎥ ⎝ C13 ⎠ ⎢ .113⋅ t ⎥ + C13 ⎦ ⎣ 7.96⋅ e ⎦ ⎣ 7.96⋅ e
Формируем общее решение ⎛ y1( t) ⎞ ⎜ y2( t) ⎜ ⎝ y3( t) ⎠
T
⎡ ( −1.) ⋅ et + C11 ⎤ ⎢ ⎥ ⎢ ⎥ simplify→ .200e-3⋅ ⎡.349e5⋅ et + .500e4⋅ C11 + .500e4⋅ e( − 7.89) ⋅ t ⋅ C12 + .500e4⋅ e.887⋅ t ⋅ C13⎤ ⋅ e( − 1.) ⋅ t 8.89 ⋅ t ⋅ .114e-1⋅ e ⎣ ⎦ + C12 ⎢ ⎥ float , 3 ⎢ .113⋅ t ⎥ + C13 ⎦ ⎣ 7.96⋅ e
Для определения констант дифференцируем два раза с упрощением t ( − 7.89) ⋅ t .887⋅ t ( − 1.) ⋅ t⎤ d ⎡ ⋅ C12 + .500e4⋅ e ⋅ C13⎤⎦ ⋅ e ⎣.200e-3⋅ ⎡⎣.349e5⋅ e + .500e4⋅ C11 + .500e4⋅ e ⎦ dt
simplify ( − 8.89) ⋅ t ( − .113) ⋅ t ( − 1.) ⋅ t → ( −8.89) ⋅ e ⋅ C12 − .113⋅ e ⋅ C13 − 1.⋅ e ⋅ C11 float , 3
Приравнивая нулю время t, составляем уравнения для определения констант d
2
dt
( − 7.89) ⋅ t .887⋅ t ( − 1.) ⋅ t⎤ given ⎡.200e-3⋅ ⎡⎣.349e5⋅ et + .500e4 ⋅ C11 + .500e4⋅ e ⋅ C12 + .500e4⋅ e ⋅ C13⎤⎦ ⋅ e ⎦ 2⎣
C11 + C12 + C13
simplify ( − 8.89) ⋅ t ( − .113) ⋅ t ( − 1.) ⋅ t → 79.0⋅ e ⋅ C12 + .128e-1⋅ e ⋅ C13 + e ⋅ C11 float , 3
8.1
13
−8.89C12 − 0.113⋅ C13 − C11 0 −79⋅ C12 + 0.128⋅ C13 + C11 0
⎛ −1.05 ⎞ find( C11, C12, C13) float , 3 → ⎜ .156e-2 ⎜ ⎝ 9.15 ⎠
Общее решение принимает вид: t ( − 7.89) ⋅ t .887⋅ t ( − 1.) ⋅ t y ( t) := 200e-3⋅ ⎡⎣.349e5⋅ e + .500e4⋅ ( −1.05) + .500e4⋅ e ⋅ 0.00156 + .500e4⋅ e ⋅ 9.15⎤⎦ ⋅ e Упрощаем выражение: y ( t)
simplify t ( − 7.89) ⋅ t .887⋅ t⎤ ( − 1.) ⋅ t → .400e-1⋅ ⎡⎣.175e6⋅ e − .263e5 + 39.⋅ e + .229e6⋅ e ⎦ ⋅e float , 3
Окончательное выражение для общего решения: y ( t) := .400e-1⋅ ⎡⎣.175e6⋅ e − .263e5 + 39.⋅ e t
( − 7.89) ⋅ t
+ .229e6⋅ e
.887⋅ t⎤ ( − 1.) ⋅ t
⎦ ⋅e
Строим график: 4
2 .10
4
1.5 .10 y ( t)
t := 0 .. 100
4
1 .10
5000
0
50
100
t
ЛАБОРАТОРНАЯ РАБОТА №3. РЕШЕНИЕ КРАЕВЫХ ЗАДАЧ. Краевая задача решается в Маткаде методом пристрелки с помощью встроенной функции sbval. Эта функция на основании заданных конечных условий вычисляет начальные условия. После этого задача сводится к задаче Коши и ее можно решить, используя известную функцию rkfixed. Функция sbval имеет вид sbval(v,x1,x2,f,load,score). Здесь: v-вектор незаданных начальных условий, т.е. тех начальных условий, вместо которых заданы конечные условия. Обычно выбираем все компоненты v, равными 1; x1, x2- начальное и конечное значения аргумента, т.е. интервал решения дифференциального уравнения; f(x,y)- векторная функция, содержащая правые части дифференциального уравнения , та же, что используется при решении дифференциального уравнения с помощью rkfixed; load(x1,v) -вектор всех начальных условий. Сюда помещаются все заданные начальные условия, а вместо незаданных помещаются компоненты вектора v; score( x2, y)- вектор конечных условий, в который помещаются разности между текущими значениями тех переменных, для которых заданы конечные условия, и их численными значениями. Задача 1. Задано однородное дифференциальное уравнение пятого порядка
d5y +y=0 dx 5 14
Задан интервал решения:0,1. Для уравнения пятого порядка должны быть заданы пять граничных условий. Заданы начальные условия y(0)=0 , dy/dx x=0 =7 и конечные условия y(1) = 1 , dy/dx x=1 = 10 , d2y/dx2x=1 = 5 . Сформируем для трех не заданных начальных условий вектор v ,присвоив всем его элементам единичные значения ⎡1⎤ v = ⎢⎢1⎥⎥ ⎢⎣1⎥⎦ Сформируем вектор f(x,y). Для этого введем подстановки:
d4y = y0 dx 4 d3y = y1 dx 3 d2y = y2 dx 2 dy = y3 dx y = y4 Вместо одного уравнения пятого порядка мы имеем теперь систему из пяти уравнений первого порядка: dy 0 + y4 = 0 dx dy1 = y0 dx dy 2 = y1 dx dy 3 = y2 dx dy 4 = y3 dx Разрешив первое уравнение этой системы относительно производной, получим :
.
dy 0 dx dy1 dx dy 2 dx dy 3 dx dy 4 dx
= − y4 = y0 = y1 = y2 = y3 15
xn := 0
xk := 1
⎛1⎞ v := ⎜ 1 ⎜ ⎝1⎠
Следовательно,
Сформируем вектор
⎛ v0 ⎞ ⎜ ⎜ v1 ⎟ load ( xn, v ) := ⎜ v ⎟ ⎜ 2⎟ ⎜7⎟ ⎜ ⎝0⎠
⎡− y4 ⎤ ⎢y ⎥ ⎢ 0 ⎥ f (t , y ) = ⎢ y1 ⎥ ⎢ ⎥ ⎢ y2 ⎥ ⎢ y3 ⎥ ⎣ ⎦
⎛⎜ y 2 − 5 ⎞ score ( xk, y ) := ⎜ y 3 − 10 ⎟ ⎜ ⎟ ⎜ y4 − 1 ⎝ ⎠
⎡0 ⎤ ⎢7 ⎥ ⎢ ⎥ load ( xn, v ) = ⎢v 0 ⎥ ⎢ ⎥ ⎢v1 ⎥ ⎢⎣v 2 ⎥⎦
Здесь xn - начальное значение x, а вектор заполняется следующим образом: была проведена подстановка d4y = y0 dx 4 d3y = y1 dx 3 d2y = y2 dx 2 dy = y3 dx y = y4 После которой вектор переменных приобрел следующий вид: ⎡ y0 ⎤ ⎢y ⎥ ⎢ 1⎥ ⎢ y2 ⎥ ⎢ ⎥ ⎢ y3 ⎥ ⎢y ⎥ ⎣ 4⎦ С учетом подстановки нам заданы y0 = 0 и y1=7. Остальные начальные условия неизвестны и мы заполняем их вектором v. Сформируем вектор score(xk,y) для заданных конечных условий:
⎡ y0 − 1 ⎤ score( xk , y ) = ⎢⎢ y1 − 10⎥⎥ ⎢⎣ y2 − 5 ⎥⎦ Вектор включает те переменные, для которых заданы конечные значения. Все вышеперечисленные действия были произведены в Маткаде, и было получено искомое решение, приведенное на рис.1. 16
xn := 0
⎛ 1⎞ v := ⎜ 1 ⎜ ⎝ 1⎠
xk := 1
⎛⎜ y 2 − 5 ⎞ score ( xk, y ) := ⎜ y 3 − 10 ⎟ ⎜ ⎟ ⎜ y4 − 1 ⎝ ⎠
⎛ −y 4 ⎞ ⎜ ⎜ y0 ⎟ ⎟ ⎜ f( x, y ) := ⎜ y 1 ⎟ ⎜y ⎟ ⎜ 2 ⎟ ⎜y ⎝ 3 ⎠
⎛ v0 ⎞ ⎜ ⎜ v1 ⎟ load ( xn, v ) := ⎜ v ⎟ ⎜ 2⎟ ⎜7⎟ ⎜ ⎝0⎠
S := sbval ( v , 0 , 1 , f , load , score )
50
⎡⎛ −516.257⎞ ⎤ ⎢⎜ 348.107 ⎥ ⎟ ⎢⎜ ⎥ y := rkfixed⎢⎜ −85.014 ⎟ , xn, xk, 1000, f⎥ ⎢⎜ 7 ⎟ ⎥ ⎢⎜ ⎥ ⎣⎝ 0 ⎠ ⎦
y j,5
j := 0 .. 1000
0
y j,4 y j,3
0.5
1
50
100
Рис.1 решение краевой задачи в Маткаде. Функция sbval вычисляет неизвестные начальные условия, а мы затем вводим их в функцию rkfixed и получаем решение. На графиках приведены те кривые, для которых заданы конечные условия, чтобы можно было убедиться в их выполнении, а именно y3(x), y4 (x), y5(x). Ниже приведены вычисленные начальные и конечные значения переменных. Весь диапазон решения разбит нами на 1000 точек (j=0..1000), поэтому y0,0 - это начальное, а y1000,0 - конечное значения y0. То же относится к другим переменным. y0 , 5 = 0
y 1000 , 5 = 1
y0 , 4 = 7
y 1000 , 4 = 10
y 1000 , 3 = 5
Как видим, вычисленные значения совпадают с заданными. Задача 1. Решить приведенное уравнение в Маткаде. Задача 2. Задано линейное дифференциальное уравнение с переменными коэффициентами (другое название - нестационарное): y ′′+ xy ′+ x 2 y = x . В таких уравнениях коэффициенты при переменной являются функцией независимой переменной - аргумента, в нашем случае х. Задан интервал вычислений 0<= x <=5, заданы конечные условия y(5) =2, y ′(5) = 3 . Нестационарные дифференциальные уравнения относятся к классу линейных, однако их аналитическое решение обычно затруднено, и их проще решать численно. Перейдя к системе дифференциальных уравнений первого y ′ = − xy − x 2 y + x 0 0 1 порядка, имеем (проделать самостоятельно):
y′=y 1 0 17
Далее составляем все необходимые функции, как показано на рисунке и проводим решение.
xn := 0
⎛1⎞ ⎝1⎠
v := ⎜
xk := 5
⎛ y0 − 3 ⎞
score ( xk, y ) := ⎜
load ( xn, v ) := v
⎜y − 2 ⎝ 1 ⎠
⎛ −x⋅ y − x2⋅ y + x ⎞ 0 1 f ( x, y ) := ⎜ s := sbval ( v , xn, xk, f , load , score ) ⎜ y 0 ⎝ ⎠ y := rkfixed( s , xn, xk, 1000, f )
s=
j := 0 .. 1000 4000 2000 y j,2 0
2
4
6
2000 y j,0
Рис.2. Решение краевой задачи для нестационарного дифференциального уравнения Это уравнение является сложным для компьютера, что видно из длительности его решения. Проверим вычисление крайних точек: y
3
0, 2
= 2.073 × 10
y
1000 , 2
=2 y
3
0, 1
= −2.673 × 10
y
1000 , 1
=3
Как видим, конечные значения совпали с заданными. ЛАБОРАТОРНАЯ РАБОТА №4.РЕШЕНИЕ РАЗНОСТНЫХ УРАВНЕНИЙ. Обыкновенное разностное уравнение порядка n есть уравнение G (x k , y k, y k+1 ,….y k +n)=0 , (1) (k=0,1,2,….), связывающее значения y k = y (х k) = у (x0 + k ∆x) функции у = у(х) на дискретном множестве значений x = x k = x 0 +k ∆x, где ∆x — фиксированное приращение. Часто бывает удобно ввести в качестве новой независимой переменной величину k =(x-x0 )/ ∆x = 0, ± 1, ±2,;... Решением разностного уравнения называется такая функция у =у (х ), что последовательность уk удовлетворяет данным уравнениям для некоторой области значений k. Общее решение обыкновенного разностного уравнения порядка n содержит, вообще говоря, n произвольных постоянных, которые должны быть определены по начальным, краевым или другим дополнительным условиям, налагаемым на уk. Решение разностного уравнения в любой конечной области значений k сводится в принципе к решению системы алгебраических уравнений. Разностные уравнения применяются: I) для аппроксимации дифференциальных уравнений, 18
2) для решения задач, представляющих модели с дискретными переменными. Разностное уравнение порядка “n” a0 yk +1 + a1 yk + ... + an yk − n = f (k ) , (2) в котором все коэффициенты – константы, называется линейным разностным уравнением с постоянными коэффициентами. Если правая часть f(k)=0, уравнение называется однородным. Общее решение такого однородного уравнения имеет вид: k k k y k = C1 z1 + C 2 z 2 + ... + C n z n , (3) где z1 , z2 ,...zn - корни характеристического уравнения
a0 z n + a1 z n −1 + ... + an = 0. (4) Для частного решения разностного уравнения порядка n должно быть задано n начальных или краевых условий y0 , y1 ,... yn , по которым определяются константы С в уравнении (3). Пример решения разностного уравнения второго порядка. Задано уравнение (5) a0 yk +1 + a1 yk + a2 yk −1 = 0 . Заданы начальные условия: y 0 , y1 . Его характеристическое уравнение: a0 z 2 + a1 z + a2 = 0.
(6)
2
Отсюда
z1, 2 =
− a1 + − a1 − 4a 0 a 2
2a 0
.
(7)
И решение равно: k
k
yk = C1 z1 + C2 z2 . Значения констант определяем из начальных условий: 0 0 y0 = C1 z1 + C2 z2
(8)
(9) 1 1 y1 = C1 z1 + C2 z2 . Подставив в (9) значения начальных условий и вычисленные в (7) значения корней характеристического уравнения, и решив систему из двух линейных алгебраических уравнений , получим значения констант С. Задача 1. Задано разностное уравнение второго порядка 3 y k +1 + 5 y k + 8 y k −1 с начальными условиями y0 = 1, y1 = 0. Пользуясь калькулятором, решить его и вычислить первые пять значений y. В случае уравнений порядка выше второго характеристическое уравнение, константы значения самой функции у можно вычислять на ЭВМ, в частности, в пакете Маткад. Задача 2. Решить в маткаде разностное уравнение третьего порядка и построить график решения: 5 yk +1 + yk + 7 yk −1 + yk − 2 = 0 . Заданы начальные условия: y0 = 1, y1 = 0, y2 = 0 1. Характеристическое уравнение имеет вид: 5 z 3 + z 2 + 7 z + 1 = 0 . Решаем его в Маткаде с помощью функции polyroots: ⎛⎜ 1 ⎞ 7 z := polyroots ⎜ ⎟ ⎜1⎟ ⎜5 ⎝ ⎠
−0.144 ⎛ ⎞ ⎜ z = −0.028 + 1.179i ⎜ ⎝ −0.028 − 1.179i ⎠
19
z = −0.144
Корни получены в виде матрицы, причем ее первый элемент z = −0.028 + 1.179i
второй
третий-
1
0
z = −0.028 − 1.179i 2
k
k
k
Решение разностного уравнения ищем по формуле yk = C0 z0 + C1 z1 + C2 z2 . 2. Отсюда находим соотношения для констант С0, С1, С2: С0+С1+С2=1 С0z0+C1z1+C2z2=0 C0z02+C1z12+C2z22=0. Решая эту систему в Маткаде, определяем значения констант.
C0 := 1
C1 := 1
k := 0 .. 10
C2 := 10
k
Given C0 + C1 + C2
1
1
C0 ⋅ z + C1 ⋅ z + C2 ⋅ z 0
1
2
0
0.5
( 0)2 + C1 ⋅ (z1)2 + C2 ⋅ (z2)2
C0 ⋅ z
yk
0
−3
− 0.06i
0
2.5
5
7.5
10
0.5
⎛ C0 ⎞ ⎜ C1 := Find( C0, C1, C2) ⎜ ⎝ C2 ⎠ C0 = 0.991 C1 = 4.47 × 10
( 0)k + C1 ⋅ (z1)k + C2 ⋅ (z2)k
y := C0 ⋅ z
1 k
−3
C2 = 4.47 × 10
+
Здесь до слова Given заданы начальные приближения неизвестных. Сначала все они были заданы равными 1. Однако Пакет попросил изменить их. Поэтому для С2 было принято начальное значение 10. Строим график, выбирая в окне настройки не «линии»(lines), а «точки» (points). Задача 2.. Решить самостоятельно в маткаде нижеприведенные разностные уравнения. Построить графики их решения для 20 точек. А). 6 y k +1 + 2 y k + 8 y k −1 + 3 y k − 2 = 0. Начальные условия: y0 = 1, y1 = 0, y2 = 0, y3 = 0 Б). 4 yk +1 + 8 yk + 12 yk −1 + 56 yk − 2 + yk − 3 = 0. Начальные условия: y0 = 1, y1 = 0, y2 = 0, y3 = 0, y4 = 0.
ний:
ЛАБОРАТОРНАЯ РАБОТА №5.РЕГРЕССИИ. В Маткаде имеется большое количество встроенных функций по обработке наблюде-
Линейная регрессия 1.Функция slope (vx, vy) – возвращает коэффициент «a» линейной регрессии y=ax+b векторов vx и vy. 2. Функция intercept ( vx, vy) – возвращает коэффициент «b» линейной регрессии векторов vx и vy. Эти обе функции используются для линейной регрессии.
20
На рис. 1 показано вычисление коэффициентов линейной регрессии с помощью этих функций. Как известно, линейная регрессия вычисляется по результатам измерений входного и выходного сигналов системы. Здесь vx- вектор входных сигналов, vy- вектор выходных сигналов. По ним функциями slope и intercept мы находим коэффициенты прямой линии, наилучшим образом сглаживающей ошибки измерения. Затем записываем уравнение этой прямой и строим для нее график. slope ( vx, vy ) = 7.84 x := 0 , 0.1.. 10
⎛ 1.9 ⎞ ⎜ ⎜ 1.5 ⎟ ⎜ 3 ⎟ vx := ⎜ 4 ⎟ ⎜ ⎟ ⎜ 5.5 ⎟ ⎜ 6.2 ⎟ ⎜ ⎝ 7.2 ⎠
j := 0 .. 6 intercept ( vx, vy ) = −12.874
⎛ 4 ⎞ ⎜ ⎜ 1 ⎟ ⎜ 9.5 ⎟ vy := ⎜ 17 ⎟ ⎜ ⎟ ⎜ 23 ⎟ ⎜ 35.1 ⎟ ⎜ ⎝ 50 ⎠
⎛ −12.874⎞ ⎝ 7.84 ⎠
line( vx, vy ) = ⎜
100
y ( x)
y ( x) := 7.84⋅ x − 12.874
50
vy j 0
5
10
50 x, vxj
Рис.1. Вычисление линейной регрессии. х y
1.78 56.7
2.86 53.9
3.32 48.0
5.90 41.2
6.27 39.6
7.10 36.3
7.99 37.1
Задача 1. Решите в маткаде приведенный выше пример. Задача 2. Вычислите коэффициенты линейной регрессии и постройте график для измерений: Нелинейная регрессия. I. Сглаживание кривой заданного порядка. Маткад позволяет вычислять нелинейную регрессию несколькими способами. 1.При сглаживании одной кривой функция regress(vx,vy,n) вычисляет и представляет в векторе vs коэффициенты полинома, наилучшим образом сглаживающего исходные данные. Степень полинома задается числом n. По этим коэффициентам функция интерполяции interp вычисляет точки аппроксимирующей кривой. На рис. 2 показано использование этих двух функций для того же набора данных, что и в случае линейной регрессии при сглаживании кривой третьего порядка (При решении примера необходимо ввести вектора vx и vy). Задача.3. Решите в Маткаде приведенную на рис.2 задачу.
vs := regress (vx,vy,3)
⎛x 3 ⎞ ⎜ ⎜ 3 ⎟ ⎜ 3 ⎟ vs = ⎜ −18.824⎟ ⎜ ⎟ ⎜ 18.152⎟ ⎜ −3.942⎟ ⎜ ⎝ 0.382 ⎠
200 interp( vs , vx, vy, x) 100 vyj 0
5
100
10
21 x , vxj
Рис.2.Сглаживание кривой третьего порядка Решите ту же задачу для линейного, квадратичного сглаживания функцией regress, а также для сглаживания кривой четвертого порядка Сглаживание заданным набором кривых. Часто одной функции недостаточно, чтобы удовлетворительно провести аппроксима-
цию. Маткад позволяет с помощью функции linfit проводить аппроксимацию набором кривых, заданных вектором f. На рис.3. приведен набор функций и проведена аппроксимация тех же данных, что и в предыдущих задачах, набором полиномов. Сначала, для проведения сортировки формируется матрица М и проводится сортировка. Затем формируются отсортированные вектора vx и vy. Набор полиномов задается функцией f(х) Используя функцию linfit, Маткад формирует вектор а, умножение которого на f(x) и дает аппроксимирующую кривую. ⎛ x⎞ 〈1〉 ⎜ 〈 〉 〈0〉 1 M := vy 〈0〉 M := vx vy M := ⎜ x2 ⎟ vx := M f ( x) := ⎜ ⎟ 3 M := csort ( M , 0) ⎜x ⎟ ⎜ 4 ⎛ −4.439 ⎞ ⎝x ⎠ ⎜ a := linfit( vx , vy , f)
a=
⎜ 5.023 ⎜ −1.052 ⎜ ⎝ 0.08 ⎠
y ( x) := f ( x) ⋅a
300 200 x) 100
0
2.5
5
7.5
10
− 100
Рис.3 Аппроксимация набором функций
X
y
Задача 4 . Решите в Маткаде пример рис.3 Задача 5. Подберите набор функций для следующих данных : 5 1 3 8 9 2 4 0.5
9.1
3.4
5.7
2.9
3.6
7.1
6
6.7
Множественная регрессия. В Маткаде возможна реализация множественной регрессии с помощью встроенных функций только для двух аргументов. Множественная регрессия при большем их числе может быть реализована с помощью функции minerr (minimum error – минимальная ошибка). Множественная регрессия двух аргументов реализуется в Маткаде с помощью функции regress( M, vz, n) Функция regress возвращает координаты аппроксимирующей поверхности. 22
7
0
Здесь М - матрица 2*m из двух столбцов и m строк, в которую заносятся наблюденные данные двух аргументов, vz- вектор наблюденных значений аппроксимируемой функции, n- степень приближающего полинома. При n=1 имеем линейную, при n >1 - нелинейную множественную регрессию. Аппроксимация плоскостью. Задана матрица аргументов M и вектор наблюдений vz (См. рисунок 4). Вектор vs определяет коэффициенты аппроксимирующей плоскости. Здесь нижний элемент – коэффициент при х, следующий – коэффициент при у, а третий снизу – свободный член. ⎛ 3 ⎞ ⎜ 3 ⎜ ⎟ 7 ⎟ 1 ⎟ ⎜ vs = 41 ⎟ ⎜ −6.957 ⎟ vs := regress ( M , vz , 1 ) ⎟ 0 ⎜ −0.328 ⎟ ⎜ 50 ⎠ ⎝ 54.816 ⎠ Рис.4. Исходные данные вычисление вектора vs Составляем уравнение плоскости ⎛1 ⎜ 2 ⎜ M := ⎜ 3 ⎜4 ⎜ ⎝5
23 ⎞
⎛ 56 ⎞ ⎜ 23 ⎜ ⎟ vz := ⎜ 9 ⎟ ⎜ 34 ⎟ ⎜ ⎝8⎠
z( x, y ) := 54.816x − 0.328y − 6.957
Теперь, как всегда при формировании трехмерного графика создаем матрицу решений и строим график или (и) получаем таблицу решений в узловых точках. i := 0 .. 20
j := 0 .. 20
x := i i
y := j j
M
Рис.5. График линейной множественной регрессии. Нелинейная аппроксимация полиномом 2-го порядка.
M
1
10
2
3
2
20
4
3
3
30
6
2
4
40
8
0
5
50
10
6
60
7
70
14
8
80
16
9
90
18
10 100
20
vz
12
vs
regress ( M , vz , 2 )
vs = 0 0.198 4.622 10
15
0.02 0
23
Рис.6. Построение множественной нелинейной регрессии с использованием функции regress. На рисунке 6 приведена регрессия с помощью функции regress полиномом второго порядка. Заданы М, vz из десяти значений. Принимаем n=2. В векторе vs вычислены коэффициенты аппроксимирующего полинома второго порядка. Здесь. Первый снизу элемент вектора – коэффициент полинома при х2, Второй снизу – коэффициент при х, третий снизу – свободный член, четвертый – коэффициент при у, пятый – при ху и шестой – при у2. Таким образом аппроксимирующая функция имеет вид : z( x, y )
0 .10
15 . 2
y
0 .y .x 0.198.y
4.622.10
15
0 .02.x 0 .x
2
Обычным способом получаем таблицу решений и строим график (рис.7) этой функции : 0
1 2 -4 -4 -3 0 1.305 10 5.481 10 1.251 10
M1 =
1 0.181
0.218
0.259
2 1.375
1.515
1.662
3 4.566
4.874
5.192
4 10.738
11.279
11.834
5 20.874
21.714
22.569
6 35.957
37.16
38.383
1500 1000 500 0
5
0
10
15
20
5 10 15 20
M1
Рис.7. График нелинейной регрессии. Недостатком изложенного метода является необходимость изменения уравнения при изменении условий задачи. Кроме того, в доступных книгах по Маткаду не приводится расшифровка коэффициентов полинома в векторе vs , а их экспериментальная расшифровка для полиномов высокого порядка затруднительна. Множественная регрессия с использованием функции « MINERR». Как уже говорилось, построение регрессии с использованием функции minerr производится в случае размерности регрессии более двух. При этом используется блок решения given. Ниже на рис.8 приведено построение множественной, четырехмерной, т.е. в функции четырех аргументов линейной регрессии. В матрице М – экспериментальные значения аргументов, в векторе vy – экспериментальные значения функции. Функция y аппроксимируется функцией yi. Заданы начальные приближения для аппроксимирующих коэффициентов a,b,c,d,k. В решающем блоке given строится выражение для квадрата разностей между экспериментальными значениями вектора vy и аппроксимирующей функцией у. В процессе решения методом наименьших квадратов определяются коэффициенты аппроксимирующей функции у. ORIGIN := 1
⎛1 ⎜ ⎜2 ⎜7 ⎜4 ⎜ 9 M := ⎜ ⎜3 ⎜ 10 ⎜ ⎜ 12 ⎜9 ⎜ ⎝ 17
i := 1 .. 10
24
(
y := a ⋅ M i
i, 1
+ b⋅M
23 1 32 ⎞ 21 2 27
⎟
16 1 24 ⎟ 14 5 19 7 13 5 12 4 9 3 10 2
29 ⎟ ⎟ 17 ⎟ 12 ⎟ ⎟ 18 ⎟ 19 ⎟ 23 ⎟
14 1 25 ⎠
i, 2
+ c⋅M
i, 3
⎛ 345 ⎞ ⎜ ⎜ 320 ⎟ ⎜ 400 ⎟ ⎜ 289 ⎟ ⎜ ⎟ 260 ⎟ ⎜ vy := ⎜ 279 ⎟ ⎜ 240 ⎟ ⎜ ⎟ ⎜ 145 ⎟ ⎜ 100 ⎟ ⎜ ⎝ 98 ⎠ + d⋅M
i, 4
a := 2 c := 1 k := 1
)
+ k
b := 1 d := 1
Given 10
2 ∑ (vy i − a ⋅ Mi, 1 − b ⋅ Mi, 2 − c ⋅ Mi, 3 − d ⋅ Mi, 4 − k)
0
i=1
⎛a ⎞ ⎛ a ⎞ ⎛ −11.674⎞ ⎜b ⎜b ⎜ ⎜ ⎟ ⎜ ⎟ ⎜ 9.236 ⎟ ⎜ c ⎟ := Minerr( a , b , c , d , k) ⎜ c ⎟ = ⎜ −3.408 ⎟ ⎜d⎟ ⎜ d ⎟ ⎜ −2.856 ⎟ ⎜ ⎜ ⎜ ⎝k⎠ ⎝ k ⎠ ⎝ 269.62 ⎠ Рис.8 Вычисление множественной линейной регрессии с помощью функции minerr. Множественная нелинейная регрессия с MINERR. При решении задач нелинейной регрессии, как и при решении любых нелинейных задач, следует учитывать зависимость ответа от заданных начальных приближений. Задача. Исходные данные по аргументам заданы матрицей М, исходные данные для функции – вектором vy. Задаемся начальными приближениями коэффициентов. ORIGIN:= 1
⎛1 ⎜ ⎜2 ⎜7 ⎜4 ⎜ 9 M := ⎜ ⎜3 ⎜ 10 ⎜ ⎜ 12 ⎜9 ⎜ ⎝ 17
23 1 32 ⎞ 21 2 27 16 1 14 5 19 7 13 5 12 4 9 3 10 2
⎟ 24 ⎟ 29 ⎟ ⎟ 17 ⎟ 12 ⎟ ⎟ 18 ⎟ 19 ⎟ 23 ⎟
14 1 25 ⎠
⎛ 345 ⎞ ⎜ ⎜ 320 ⎟ ⎜ 400 ⎟ ⎜ 289 ⎟ ⎜ ⎟ 260 ⎟ vy := ⎜ ⎜ 279 ⎟ ⎜ 240 ⎟ ⎜ ⎟ ⎜ 145 ⎟ ⎜ 100 ⎟ ⎜ ⎝ 98 ⎠
a1 := 1 b1 := 1 c1 := 1 d1 := 1 g := 1 l := 1 p := 1
a2 := 1 b2 := 1 c2 := 1
i := 1 .. 10
d2 := 1 m := 1 n := 1 q := 1
Рис.9. Исходные данные для вычисления нелинейной множественной регрессии. В качестве аппроксимирующего выбираем полином с неопределенными показателями степеней. Значения этих показателей должны быть также определены в процессе расчета. Составляем выражение для метода наименьших квадратов в решающем блоке given Given
10
∑ i
1
⎡vy − a1 ⋅ M a2 − b1 ⋅ M b2 − c1 ⋅ M c2 − d1 ⋅ M d2 − g ⋅ M ⋅ M − l ⋅ M ⋅ M − m ⋅ M ⋅ M − n ⋅ M ⋅ M − p ⋅ M ⋅ M − q ⋅ M ⋅ M ⎤ ( i , 1) ( i , 2) ( i , 3) ( i , 4) i, 1 i, 2 i, 1 i, 3 i, 1 i, 4 i, 2 i, 3 i, 2 i, 4 i, 3 i , 4⎦ ⎣ i
25
2
0
⎛ a1 ⎞ ⎜ a2 ⎜ ⎟ ⎜ b1 ⎟ ⎜ b2 ⎟ ⎜ c1 ⎟ ⎜ ⎟ ⎜ c2 ⎟ ⎜ d1 ⎟ ⎜ ⎟ := Minerr( a1 , a2 , b1 , b2 , c1 , c2 , d1 , d2 , g , l, m, n , p , q ) ⎜ d2 ⎟ ⎜g⎟ ⎜ l ⎟ ⎜ ⎟ ⎜ m⎟ ⎜n⎟ ⎜p⎟ ⎜ ⎝q⎠
⎛ a1 ⎞ ⎜ a2 ⎜ ⎟ ⎜ b1 ⎟ ⎜ b2 ⎟ ⎜ c1 ⎟ ⎜ ⎟ ⎜ c2 ⎟ ⎜ d1 ⎟ ⎜ ⎟= ⎜ d2 ⎟ ⎜g⎟ ⎜ l ⎟ ⎜ ⎟ ⎜m⎟ ⎜n⎟ ⎜p⎟ ⎜ ⎝q⎠
1 1
7.96
2
0.717
3
9.717
4
1.088
5
18.609
6
-6.122
7
3.743
8
0.925
9
0.248
10
-0.6
11
-0.514
12
-0.13
13
-0.045
14
0.681
Рис.10. Вычисление нелинейной множественной регрессии с помощью функции minerr. ЛАБОРАТОРНАЯ РАБОТА №6. ДОВЕРИТЕЛЬНЫЕ ОБЛАСТИ И ДОВЕРИТЕЛЬНЫЕ ИНТЕРВАЛЫ. Доверительной областью называется область, внутри которой случайная величина находится с вероятностью не менее заданной, а доверительным интервалом – границы этой области. Задача 1. Произведено 20 опытов над величиной Х . Результаты приведены в таблице: i xi i xi Требуется .найти оценку матема1 10.5 11 10.6 ~ и и построить тического ожидания m 2 10.8 12 11.3 для него доверительный интервал ве3 11.2 13 10.5 роятности β=0.8. 4 10.9 14 10.7 1.Составляем из таблицы вектор 5 10.4 15 10.8 X (на рис.1 для экономии места часть 6 10.6 16 10.9 этого вектора приведена в транспони7 10.9 17 10.8 рованном виде). Вычисляем с помощью 8 11.0 18 10.7 встроенной функции mean среднее 9 10.3 19 10.9 арифметическое – оценку математиче10 10.8 20 11.0 ского ожидания, а с помощью встроенной функции stdev – оценку среднеквадратического отклонения. . T
X =
0
0
1
2
3
4
5
6
10.5
10.8
11.2
10.9
10.4
10.6
10.9
7 11
8
9
10.3
10.8
m := mean( X) m = 10.78
Рис.1 Ввод наблюдений и вычисление числовых характеристик. Вычисленное значение среднего является случайной величиной (например, если увеличить число опытов, то оно изменится). И как для любой случайной величины, мы можем построить для него математическое ожидание и среднеквадратическое отклонение. 26
Теперь мы должны найти для него такой отрезок на оси х, внутри которого эта случайная величина находится с вероятностью 0,8. Для решения этой задачи нужно найти такой интервал ε относительно оценки матема~ , внутри которого с вероятностью 0.8 расположено истинное значетического ожидания m ние математического ожидания m:
~ − m < ε ) = 0 .8 P( m Из курса теории вероятностей известно, что для этого необходимо вычислить обратную функцию распределения исследуемой случайной величины. Наше среднее является суммой независимых одинаково распределенных случайных величин Хi (i=1..20) и, согласно центральной предельной теореме, при достаточно большом числе опытов ее закон распределения близок к нормальному. На практике, даже при относительно небольшом числе слагаемых (порядка 10 – 20) закон распределения суммы можно считать нормальным. Поэтому будем считать, что m – нормально распределенная случайная величина. В этом случае необходимо использовать обратную функцию Лапласа Φ-1. В Маткаде имеется встроенная функция qnorm(p,m,σ), являющаяся обратной функцией нормального распределения. Здесь р – заданная вероятность, m- математическое ожидание, а σ –среднеквадратическое отклонение нормально распределенной случайной величины. Функция qnorm возвращает отрезок -∞ - х, оси абсцисс, на котором находится случайная величина х с заданной вероятностью р. ~ − m , внутри которого с вероятностью 0,8 должно нахоНас интересует отрезок ε = m диться математическое ожидание m. Для лучшего понимания, что нам необходимо сделать, рассмотрим рис.2 1
x := 9 , 9.01 .. 11
y2( x) := 0.1
z ( x) y1 ( x)
0.5
y2 ( x)
9
10
11
x
Рис.2. Доверительный интервал для нормальной функции распределения. На этом рисунке кривая – функция распределения нормально распределенной случайной величины с математическим ожиданием m=10 и среднеквадратическим отклонением σ=0,2. Функция распределения F(x) показывает вероятность попадания случайной величины х на отрезок оси абсцисс (-∞, х). Из рисунка видно, что эта вероятность для х= m равна 0.5. Нам нужно найти такие отрезки на оси х, границы которых соответствуют вероятностям 0,5+0,4 и 0,5-0,4. Их длину мы обозначим через ε1 и ε2 .Эти вероятности обозначены на рисунке пунктирными горизонтальными линиями. Нахождение отрезков и границ доверительной области в Маткаде показано на рис.3. В первой строке производится вычисление верхнего интервала и верхней границы доверительной области, во второй – нижнего интервала и нижней границы области. Задача решена. ε1 := qnorm( 0.5, m, σm) − qnorm( 0.1, m, σm)
.
ε2 := qnorm( 0.9, m, σm) − qnorm( 0.5, m, σm)
ε1 = 0.072 ε2 = 0.072
m1 := m − ε1 m2 := m + ε2
m1 = 10.708 m2 = 10.852
Рис.3. Вычисление отрезков ε1 и ε2 и границ доверительной области . 27
Проверка статистических гипотез в пакете Маткад.
Произведено 500 наблюдений. Результаты наблюдений сведены в статистический ряд: Интервалы -4-;3 -3;-2 -2;-1 -1;0 0;1 1;2 2;3 3;4 Наблюдений Число наблюдений в данном интервале
6
25
72
133
120
88
46
10
Частота m/n
0.012
0.05
0.144
0.266
0.240
0.176
0.092
0.02
Задано среднее этих наблюдений m=0.2 и среднеквадратическое отклонение s=1.5. Требуется построить гистограмму этого ряда, выбрать в качестве теоретического нормальное распределение и проверить его согласованность со статистическим распределением. В качестве параметров теоретического нормального распределения выбрать статистическое среднее и статистическое среднеквадратическое отклонение. Решение в Маткаде. Гистограмма для этой задачи была построена в лабораторной работе №6 модуля 1. Поэтому здесь только приводятся ее график и векторы интервалов и частот. 0.3 T
v = ( −4 −3 −2 −1 0 1 2 3 4 ) 0.2 fi
f
0.1
−4
−2
0 〈0〉
(H )i
2
T
= ( 0.012 0.05 0.144 0.266 0.24 0.176 0.092 0.02)
4
Рис.4. График гистограммы и векторы интервалов и частоты После построения гистограммы с помощью встроенной функции dnorm(x, 0.2,1.35) строим график нормального закона распределения и вычисляем вероятности попадания случайной величины в каждый интервал. Как известно, эта вероятность равна интегралу от кривой распределения в пределах границ участка. x := −6 , −5.9.. 6
0.3 0.2
fi dnorm( x, m , s)
0.1
− 10
−5
0 〈0〉
(H )i, x
5
Рис.5.График гистограммы и теоретического нормального распределения 28
10
Далее (см. рис.6), вычисляем значение χ2 (мы обозначили его через U), оно равно 3.899, и вызываем встроенную функцию Маткада pchisq. Если ввести в нее вычисленное значение U и число «степеней свободы», то в ответ получим вероятность противоречивости гипотезы о нормальном распределении наших наблюдений. В нашем случае число степеней свободы равно пяти, так как у нас восемь интервалов, и мы накладываем три условия: сумма теоретических вероятностей равна 1, 1. задаемся математическим ожиданием теоретического распределения, 2. задаемся среднеквадратическим отклонением теоретического распреде3. ления. Как известно, число степеней свободы равно разности числа интервалов и числа условий. В результате мы получили вероятность р=0.436. Это вероятность несоответствия наблюдений нашей гипотезе. 7
p
T
= ( 0.014 0.055 0.141 0.235 0.256 0.182 0.084 0.025) U = 3.899
U := 500
∑
i=0
(f i − p i)2 f
i
pchisq ( U , 5) = 0.436
Рис.6. Вычисление вероятности несоответствия наблюдений гипотезе о нормальности Следовательно, вероятность соответствия рсоотв. = 1- pchisq = 0.564 Это достаточно хорошая вероятность того, что наши наблюдения распределены нормально. РЕКОМЕДУЕМЫЕ ИСТОЧНИКИ 1.Очков В.Ф. Mathcad 14 для студентов, инженеров и конструкторов БХВ- Петербург
2007 2.Очков В.Ф. Мультимедийный обучающий курс по Mathcad 13. Курс создан на фирме Мультимедиа Технологии – (495) 673-76-92, www.mmt-dl.ru 3. Интернет- форум exponenta.ru//Mathcad 4. Краснов А.Е. и др. Информационные технологии пищевых производств в условиях неопределенности. М.,2001 5. Краснов А.Е. и др. Основы математического моделирования рецептурных смесей пищевой биотехнологии. М., Пищепромиздат ,2006 6.Грачев.Ю.П. и др. Моделирование и оптимизация тепло- и массообменов пищевых производств .М., Легкая и пищевая промышленность,1984
29