close

Вход

Забыли?

вход по аккаунту

?

Работа с программой EUREKA

код для вставкиСкачать
1996г.
 Лабораторная работа N1
6───────────────────────────
Знакомство с оболочкой системы Eureka. Решение
систем линейных уравнений.
Цель работы
6────────────────
Приобретение навыков работы с оболочкой системы Eureka. Решение
систем линейных уравнений при помощи системы Eureka.
Теоретическое введение.
а) Интегрированная многооконная система Eureka предназначена для
автоматизации наиболее массовых математических расчетов не очень высо-
кой сложности. Она объединяет: редактор, вычислитель, верификатор
(проверяет правильность вычислений), генератор отчетов и простой гра-
фопостроитель. Система ориентирована на ПК класса IBM PC XT и AT и мо-
жет размещать на одном гибком диске с объемом хранимой информации до
360 Кбайт. Нормальная работа системы обеспечивается при ОЗУ 512 Кбайт
и выше. Система может работать на ПК без математического сопроцессора,
однако его использование значительно повышает скорость работы.
Eureka имеет следующие ограничения:
- максимальная длина идентификаторов до 40 символов, из них 10 яв-
ляются основными;
- число определенных пользователем функций не более 10;
- число используемых числовых констант не более 200;
- число переменных не более 12;
- число подстановок одних переменных в другие до 6.
б) Для загрузки системы ее надо проинсталлировать, т.е. перенести
все файлы, входящие в нее, на рабочий диск в одну директорию. Запуска-
ющим файлам системы является файл eureka.exe.
После запуска на экране монитора появляется табло оболочки систе-
мы. Экран оказывается разделенным на четыре окна.
Edit - для ввода и редактирования текста задачи;
Solution - для вывода результатов;
Report - для вывода отчета о вычислениях на экран, принтер или в
файл с расширением log;
Verify - для проверки точности результата.
Окно в пассивном состоянии обведено одинарной рамкой, а в актив-
ном - двойной. Курсор располагается в активном окне. Кроме окон, табло
оболочки содержит верхнюю и нижнюю строки меню. Нижняя строка меню
представляет возможности работы с ключевыми клавишами (hot keys). Ee
содержимое может менятся в зависимости от режима работы системы. Наи-
больший интерес эта строка представляет в режиме редактирования. В
этом случае она предлагает следующие команды:
F1 - Help - помощь по контексту (можно получать в любой позиции
меню и подменю);
F2 - Save - запись текущего файла на диск;
F3 - Load - загрузка файла с диска;
F5 - Zoom - расширение активного окна на весь экран и возвращение
его (при повторном нажатии) к исходным размерам.
F6 - Next - переключение активности окон (по циклу);
F7 - Beg.Bek - отметка начала блока;
F8 - EndBek - отметка конца блока
SCROOL - Size/move - изменение размера и положения окна.
Нажатие клавиши Ctrl и Alt приводят к высвечиванию иных ключевых
клавиш. Имеет смысл взять на вооружение еще hotkeys такие как:
Esc - отмена команды (переход в вышестоящее меню);
Alt+E - переход в окно редактирования;
Alt+S - начать рещение задачи;
Alt+C - включить встроенный калькулятор;
Alt+X - выход из системы.
В верхней строке оболочки перечисляются позиции основного меню
системы:
File - работа с файлами;
Edit - редактирование текущего файла;
Solve - запуск вычислителя;
Commands - выбор команды управления;
Report - подготовка отчета;
Graph - вывод графиков и таблиц;
Options - задание опций системы;
Window - работа с окнами.
Если активировать в верхней строке позицию File, то после нажатия
клавиши Enter откроется подменю со следующим пунктами:
Load - загрузка файла;
New - подготовка к заданию нового файла;
Save - запись текущего файла;
Directory - просмотр директории;
Change dir - смена текущей директории;
New directory - создание новой директории;
Rename - переименование текущего файла;
OS shell - временный выход в MS DOS (возврат по команде Exit);
Quit - выход из системы по окончании работы.
Если активизировать вторую позицию верхней строки и нажать клави-
шу Enter, то мы окажемся в окне редактирования задач.
Третьей позицией верхней строки является команда Solve. После то-
го как редактирование задачи окончено нужно нажать Esc (для попадания
в верхнюю строку меню) и активизировав пункт меню Solve, запустить за-
дачу на счет нажатием клавиши Enter. Если в описании задачи ошибок с
точки зрения системы нет, то начнется процесс решения. По окончании
этого процесса результат работы будет представлен в окне Solution.
Четвертая позиция верхней строки - Commands. При активизации этой
позиции и нажатии клавиши Enter открывается следующее подменю:
Verify - проверка решения (результат работы этой команды выводит-
ся в одноименное окно);
Calculate - включение калькулятора (для выключения - Esc);
Find other - поиск другого решения (Т.к. итерационные методы при-
водят только к одному из возможных решений, то для нахождения других
надо исключить найденное и заново решить задачу. Именно это и делает
данная команда);
Iterate - пуск итераций после остановки решения (Команда исполь-
зуется для уточнения найденного решения при условии, что заданная точ-
ность не достигнута, а время отведенное на процесс решения закончено).
Пятая позиция верхней строки (Report) открывает следующее подменю:
Go - составление отчета (результат этой команды появляется в окне
Report);
Output - направление вывода отчета (экран, принтер);
Formatted - форматирование отчета;
Capture - запись отчета в файл eureka.log (По запросу EUREKA.LOG
EXIST.A TO ERASE этот файл можно дополнить или стереть. При включенной
команде в строке переключений будет стоять ON, иначе OFF);
Logfile name - изменение имени log-файла.
Подменю шестой позиции верхней строки (Gragh) состоит из четырех
пунктов.
Plot - построение графика (После ввода значений левой и правой
границ аргумента, если, конечно, функция предварительно описана при
помощи команды Function, будет построен график функции состоящий из
текстовых символов псевдографики. При нажатии F5 этот график перестра-
ивается в графическом режиме с высоким разрешением);
Output - вывод графика на экран или принтер;
List - вывод таблицы (После вывода начального значения, шага вы-
числений и количества точек в которых вычисляются значения функций вы-
водится таблица со значениями аргумента и функции, если, конечно,
функция предварительно описана при помощи команды Function или в окне
Edit);
Function - задание функции, которую надо построить.
6Опишем последовательность действий необходимых для построения гра-
6фика функции более подробно.
6Способ N 1
7\\\\\\\\\\\\\
6Активизируйте (т.е. подведите курсор и нажмите Enter) пункт верх-
6него меню под названием - Graph. В открывшемся подменю активизируйте
6пункт - Function. В появившуюся после этого строку введите название
6вашей фунуции (например y(x) или ab) и нажмите Enter. Во вновь появив-
6шуюся строку введите определение вашей функции (например sin(x)+x^2)
6и нажмите Enter. После этого активизируйте пункт подменю с названием
6- Plot. В появившуюся строку введите начало интервала построения гра-
6фика и нажмите Enter. Во вновь появившееся окно введите конец интерва-
6ла и 0 6нажмите Enter. 0 6 В результате всех перечисленных действий на дисп-
6лее появится окно содержащее график выполненный символами псевдогра-
6фики. Если теперь нажать 0 6F5, то график перерисуется на весь экран
6при помощи истинной графики. 0 6Повторное нажатие F5 приводит к воз-
6вращению экрана в состояние 0 6 существовавшее до первого нажатия этой
6клавиши. 0 6График может быть перерисован на весь экран в сиволах псевдо-
6графики, 0 6если преред F5 была нажата клавиша F4. 0 6 При этом, для того
6чтобы вернуться в режим позволяющий использовать 0 6истинную графику
6необходимо нажать F7.
6Способ N 2
7\\\\\\\\\\\\\
6Войдите в окно Edit. Запишите в нем определение одной или несколь-
6ких функций (например:
6z(x)=sin(x)+x^2
6p(x)=deriv(deriv(5*cos(x),x),x) 0
6m(x)=1/x )
6и любую вычислительную задачу (например t=z(1)).
6Поднимитесь в верхнюю строку меню и активизируйте в ней пункт Solve.
6После того, как вычислительная задача будет решена активизируйте пункт
6меню Graph. В открывшемся подменю активизируйте пункт Plot. При этом
6появится меню, позволяющее выбрать функцию (из числа определенных в
6окне Edit) для построения графика. Выбор функции осуществляется при
6помощи курсора. Его надо подвести к названию функции и нажать Enter.
6Далее выполняются те же действия, что и в I 5ом 6 способе после активиза-
6ции пункта Plot.
6Если возникает потребность в построении графика другой функции (из
6числа определенных в окне Edit), то необходимо: войти в окно Edit,
6выйти из этого окна (при этом редактировать записи не обязательно),
6активизировать пункт Solve и далее повторить описанные выше действия.
6Примечание
7\\\\\\\\\\\\\
6Для вывода на экран функции в табличном виде пригодны оба описан-
6ных выше способа. Отличием является только то, что вместо пункта Plot
6активизируется пункт List. При этом Eureka потребует ввести: начало
6интервала вычислений, шаг вычисления и число точек, в которых вычис-
6ляются значения функции.
Седьмая позиция верхней строки (Options) имеет следующее подменю:
Variables - изменение значений переменных без вхождения в редак-
тор;
Settings -задание установок системы (к примеру: accuracy - зада-
ние погрешности вычислений; complex [ 5yes 4no 0] - разрешает вычисления с
комплексными числами; casefold [ 5yes 4no 0] с параметром yes отменяет имею-
щееся по умолчанию различия между прописными и строчными буквами; di-
gits - определяет число цифр у результатов вычислений; substlevel N -
задает количество преобразований переменных, в ходе которых одни пере-
менные автоматически выражаются через другие. При N=0 такие преобразо-
вания не выполняются. Допустимые значения N от 0 до 6. В некоторых
случаях варьирование этого параметра позволяет получить более точный
результат). Кроме перечисленных этот пункт подменю содержит еще ряд
установок, о назначении которых можно узнать, воспользовавшись клави-
шей F1 (т.е. help).
Сolors - установка окраски окон; рамок и текстов;
Directories - установка директории (Система и отдельные файлы мо-
гут храниться в разных директориях. В этом случае нужно указать систе-
ме, где находятся ее файлы и файлы с примерами расчетов.);
LoadSETUP - загрузка установочного файла;
WriteSETUP - запись установочного файла.
Восьмая позиция верхней строки (Window) также имеет подменю:
Open - открывает указанное окно;
Close - закрывает указанное окно;
Next - делает активным следующее окно;
Zoom - расширяет активное окно;
Tile - делает размеры окон равными;
Stack - располагает окна друг за другом;
Goto - переход в активное окно из меню.
в) Системы линейных алгебраических уравнений можно решать как с по-
мощью прямых , так и с помощью итерационных методов. Т.к. о прямых ме-
тодах решения таких , как метод Крамера или метод Гаусса , рассказыва-
лось в курсе математики, то рассмотрим здесь только некоторые итераци-
онные методы. Итерационные методы представляют для нас интерес еще и
потому , что Eureka решает системы линейных уравнений ( как и нелиней-
ных ) итерационными методами. При этом может использоваться подстанов-
ка одних переменных в другие, нередко сводящая задачу к точному реше-
нию.
Итерационные методы применяются на практике к большим системам с
разреженными матрицами. Разработано большое число разлиных итерацион-
ных методов, каждый из которых ориентирован на решение сравнительно
узкого класса задач. Рассмотрим два наиболее простых и извесных итера-
ционных метода.
_Метод простой итерации
Для того чтобы применить метод простой итерации к решению системы
линейных уравнений
Ах=b 4 0 (1)
c квадратной не вырожденной матрицей А, необходимо преобразовать эту
систему к виду
4^ ^
х=Ах+b 4 0 (2)
4^ ^
Здесь А - квадратная матрица (nxn), а b - вектор столбец длины n. Са-
мый простой способ привести систему (1) к виду (2) выразить х 41 0 из пер-
вого уравнения системы (1)
4-1
6x 41 6=a 411 6(-a 412 6x 42 6-a 413 6x 43 6-...-a 41n 6x 4n 6)
х 42 0 из второго уравнения и т.д. В результате получаем систему 6:
4^ ^ ^ ^
6x 41 6= -a 412 6x 42 6-a 413 6x 43 6-...-a 41n 6x 4n 6+b 41
4^ ^ ^ ^
6x 42 6=-a 421 6x 41 6- 4 6-a 423 6x 43 6-...-a 42n 6x 4n 6+b 42
6.....................................
4^ ^ ^ ^ 6 4^
6x 4n 6=-a 4n1 6x 41 6-a 4n2 6x 42 6-a 4n3 6x 43 6-a 4n4 6x 44 6-...+b 4n
4^
у которой на главной диагонали матрицы А находятся нулевые элементы.
Остальные элементы вырожаются по формулам 6 :
4^ ^
6a 4ij 6=a 4ij 6/a 4ii 6 и b 4i 6=b 4i 6/a 4ii 6 .
4(0) (0) (0) (0)
Выберем начальное приближение 6 x 4 6= 4 6(x 41 6, 4 6x 42 6, 4 6... 4 6,x 4n 6).
Часто в качестве началь 6н 0ого приближения выбирают столбец свободных
членов (b 41 0, b 42 0,...b 4n 0). Подставляя его в правую часть системы (2) нахо-
дим первое приближение
4(1) ^ 5 4(0) 5 4^
6x 4 6= 4 6A 4 6x 4 6+ 4 6b
6П 0родолжая этот процесс далее, получим последовательность
х 5(0) 0, 5 0х 5(1) 0, 5 0х 5(2) 0, 5 0..., 5 0х 5(k) 0, ... 6 0приближений, вычисляемых по формуле
4(k+1) ^ (k) ^
6x 4 6= 4 6A 4 6x 4 6+ 4 6b , k=0,1,2,...
Спра 6в 0едли 6в 0а следующая теорема о сходимости метода простой итерации.
_Теоремма
Пусть выполнено одно из условий :
4n 6 4n
6────┐ 4 ──── 6┐
4M 6 4A 6 4X 6 \ │ 4^ 6 4 6│ │ 4 6│ 4 6\ 4 6 │ 4 6│
61 7, 6i 7, 6n 7 4 6/ 4 6│ a 4ij 6│ = q < 1 <=> │ a 4ii 6 │ > 4 6 / 4 6│ a 4ii 6 │ 4 , 6i=1,...,n
6────┘ ────┘
6j=1 4 6j=1
6i 7- 6j
или
4n n
4──── 6┐ 4 ──── 6┐
4M 6 4A 6 4X 6 4 6\ 4 │ ^ │ │ │ 6\ 4 │ │
61 7, 6j 7, 6n 7 4 6/ 4 │ 6a 4ij │ 6= 4 6q 4 6< 1 4 6<=> 4 │ 6a 4jj │ 6> 4 6/ 4 │ 6a 4ij │ 6 ,j=1,...,n
4──── 6┘ 4 ──── 6┘
6i=1 i=1
6i 7- 6j
Тогда:
(I) решение Х системы (2) существует и единственно;
(II) при произвольном начальном приближении х 5(0) 0 справедлива оценка
погрешности 6:
4(k) - k (0) -
4M A X │ 6 x 4i 6- 4 6x 4i 6 │ <= q 4 M A X │ 6 x 4i 6- 4 6x 4i 6 │ .
61 7, 6i 7, 6n 4 7 61 7, 6i 7, 6n
Замечание 1
При помощи понятия нормы теорема о сходимости метода простой ите-
рации для системы линейных уравнений может быть сформулирована в более
общем виде.
Замечание 2
При выполнении условий теоремы о сходимости метода простой итера-
ции для системы линейных уравнений справедлива следующая апостериорная
оценка 6:
4(k) - (k) (k-1)
4M A X │ 6x 4i 6- 4 6x 4i │ <= 6 q/(1-q) 4 6 4M A X │ 6 x 4i 6- 4 6x 4i 6 4 6│
61 7, 6i 7, 6n 4 61 7, 6i 7, 6n
_Метод Зейделя
Этот метод является модификацией метода простой итерации. Основ-
ная идея модификации состоит в том, что при вычислении очередного
4_
(к+1)-го приближения к неизвестному 6x 4i 0 при 6i 0>1 используются уже найден-
4- -
ных (к+1)-е приближения 6к 0неизвестным 6x 41 0 ,... 6,x 4i-1 0 , а не к-е прибли 6-
жения, как в предыдущем методе.
На (к+1)-ой итерации i-ая компонента вычисляется по форм 6у 0ле 6:
4(k+1) ^ (k+1) ^ (k+1) ^ (k) ^ (k) ^
6x 4i 6= 4 6-a 4i,1 6x 41 6- 4 6... 4 6-a 4i,i-1 6x 4 6-a 4i,i+1 6x 4 6-...-a 4i,n 6x 4 6+ 4 6b
Достаточное условие сходимости метода Зйделя совпадает в приве-
денной формулировке с условием сходимости метода простои итерации.
2) Eure 6k 0a позволяет решать системы линейных уравнений (как и мно-
гие другие задачи) без составления каких-либо программ. К примеру для
решения системы линейных уравнений 6:
6┌ ┐ ┌ ┐
62x 41 6+3x 42 6+5x 43 6=31 │ 2 3 5 │ │ 31 │
6-x 41 6+3x 43 6=11 т.е. Ax=b, где A=│-1 0 3 │ b=│ 11 │
6x 41 6-7x 42 6+5x 43 6=0 │ 1 -7 5 │ │ 0 │
6└ ┘ └ ┘
6н 0ужно сделать в окне Edit любую из двух приведенных ниже записей (Eu 6-
re 6k 0a воспримет эти записи практически одинаково 6 ).
6I) 0 6││ II)
6││
62*X1+3*X2+5*X3=31 ││ 2*X1+2*X3+3*X2+3*X3-31=0
6-1*X1+3*X3=11 ││ -X1+3*X3=0
6x1-7*X2+5*X3=0 ││ X1-5*X2+5*X3-2*X2=0
6││
После чего подняться в верхнюю строку меню (при помо 6щ 0и ESC)
и 6 0 подведя 6 0курсор к пункту Solve 6 0нажать Enter. Если 6 0матрица 6 0 системы
вырождена, то попытка 6 0решения 6 0не 6 0преведет к успеху. 6 0В нашем 6 0случае
6det A 7- 60 0и поэтому в окне решений (Solution) появятся результаты, полу 6-
ченные с заданной точностью:
6X1=1.00000000 X2=3.000000000 X3=4.000000000
Eure 6k 0a позволяет решать системы линейных уравнений не только с
дествительными, но и с комплексными коэффициентами. К решению таких
уравнений сводятся, например, задачи на вычисление напряжений и токов
у электро- и радиотехнических цепей при их работе на переменном токе.
Далее приводится пример записи в окне Edit системы линейных уравнений
с комплексными коэффиециентами 6:
6$ complex=yes
6i^2=-1
6(2+i)*X1+7*X2+(7-i)*X3=0
6(5-i)*X1+i*X2+3*i*X3=2
6(3-i)*X1+2*X2+5*X3=4
6Задание
6───────────
а) Проверьте при помощи встроенного в Eure 6k 0a калькулятора может
ли быть решена ваша система методом простой итерации.
б) Проверьте при помощи окна Edit и пункта меню Solve не является
ли ваша система вырожденной.
в) Решите вашу систему. Сделайте проверку решения при помощи окна
Verify. Под 6го 0т 6о 0вьте отчет о решении в окне Report.
г) Найдите матрицу, обратную к матрице вашей системы. Для этого,
используя равенство 6AA 5-1 6=E 0, 6 составьте n 52 6 уравнений с n 52 6 неизвестными,
6где n*n размер исходной матрицы.
6d) Используя равенство AA 5-1 6=E , проверьте является ли 0 найденн 6ая
в пункте 6( 0г 6) матрица обратной к A.
Лабораторная работа N2
6──────────────────────────
Язык и функци 6и 0 системы Eure 6k 0a. Решение нелинейных
уравнений. 6 0Решение систем нелинейных уравнений.
Вычисление экстремум 6а 0 функций от одной переменной.
6Цель работы
6──────────────
Приобретение навыков решения нелинейных уравнений и систем нели-
нейных уравнений при помощи систем Eure 6k 0a.
_Теоретическое введение
a) Алфавит системы Eure 6k 0a содержит стандартный набор символов.
Это латинские прописные (от А до Z) и строчные (от а до z) буквы, а
также ряд спецзнаков.
: - разделитель для выражений размещенных в одной строке;
; - отмечает начало строки комментария;
{} - внутри скобок размещается комментарий;
[] - используется для работы с размерными комментариями;
$ - указывает, что следующее слово-директива;
= - операция присваивания;
:= - задание (определение) функции пользователя или начальных
значений переменных.
Длинные выражения после символа арифм 6е 0тической операции можно пе-
реносить на другую строку.
Директивы, относящиеся к установкам, могут быть заданы в окне
Edit в виде блока.
_Пример
$ settings
acuracy=0.000001
digits=5
$ end
Eureca может производить следующие операции:
+ сложение; - вычитание; * умножение; / деление; ^ возведение в
степень; () изменение приоритета операций; . отделение целой части
числа от дробной; ,отделение переменных друг от друга в списках; <
меньше; > больше; <= меньше или равно; >= больше или равно.
Приоритет операций определяется как и в языках Бейсик, Паскаль и
т.д.
Eure 6k 0a имеет функции re(z) и im(z), возвращающие действительную и
мнимую части комплексного числа z=x+iy. Перед применением этих функций
обходимо ввести директиву: $ complex=yes и обозначить мнимую ед 6и 0ницу
i^2=-1.
Алгебраическ 6ие 0 функци 6и
abs(z) - модуль ; exp(z) - вычисление e=2,71828... в степени z;
floor(x) - целая часть х; ln(z) - вычисление натурального логарифма z;
log 10(z) - вычисление десятичного логарифма z; sqrt(z) - вычисление
корня квадратного из z; pos(x) - возвращает х при х>0 и 0 в противном
случае; sgn(x) - возвращает: 1 при х>0, -1 при х<0 и 0 при x=0
_Тригонометрические и гиперболические функции
atan2(y,x) - вычисление арктангеса по координатам x и у (угол
заключенный между осью Ох и отрезком, концы которого -(0,0) и (х,у));
polar(x,y) - преобоазование декартовых координат в полярные;
sin(z), cos(z), tan(z) - вычисление синуса, косинуса и тангеса z;
sinh(z), cosh(z), tanh(z) - вычисление гиперболических синуса,
косинуса и тангеса z.
Кроме перечисленных выше функций Eure 6k 0a имеет еще ряд функций и
процедур:
deriv(f(x),x) - вычисление производной ф-ции f(x);
integ (f(x),x,a,b) - вычисление определенного интеграла от f(x) в
пределах от а до b.
fact(n) - вычисление факториала числа n;
ncum(x) - вычисляет специальную функцию ошибок Р(х) для нормаль-
ного распределения;
poly(x,an,...,a0) - вычисляет значение всех действительных и
комплексных корней полинома an*x^n+...a1*x+a0 и позволяет задать функ-
цию P(x) вычисляющую значение полинома в точке х.
sum(f(i),i,n,k) - вычисляет сумму f(i) при 6 0индекс 6е 0 i, меняющемся
от n до k.
В системе Eure 6k 0a пользователь имеет возможность задавать необхо-
димые ему функции через имеющиеся встроенные. Функции пользователя за-
даются в виде:
Имя ф-ции (список переменных)=выражения
или
Имя ф-ции (список переменных):=выпажение
Вторая форма используется если заданная функциональная зависи-
мость рассматривается как приближения.
б) Eureca не вычисляет производные (и инегралы) в аналитической
форме. Она может вычислять значения производной в точке численным ме-
тодом. С помощью системы Eure 6k 0a можно вычисл 6я 0ть и производные более
высокого порядка. Например, чтобы вычислить вторую производную функции
sin(x), достаточно написать:
F=deriv(deriv(sin(x),x),x).
Ниже приводится запись в окне Edit. Комментарии помогают понять
смысл записи.
;Вычисление производной
$ settings ; Установка
digits=12 ; числа знаков
$ end ; результата
; Задана функция d(x)=d(sin(x))/dx
d(x)=deriv(sin(x),x)
d1=d(4.3) ; Вычислена функция d(x)=cos(x)
; в точке x=4.3
После этого для получения решения надо подняться в верхнюю строку
меню и активизировать пункт Solve. При этом используя пункт меню
6G 0raph можно построить график d(x).
в) Пусть f(x) - функция, определенная на отрезке [a,b]. Предполо-
4_
жим, что на этом отрезке содержится единственная точка x локального
4-
минимума f(x), причем функция строго убывает при 7 0x 7, 0x и строго возрас-
4-
тает 7 0при 7 0x 7. 0x. Такая функция называется унимодальной. Заметим, что
достаточно рассмотреть задачу минимизации функции f(x), так как макси-
мизация сводится к минимизации с помощью введения новой функции
g(x)=-f(x). Таким образом будут решены оба варианта экстремальной за-
дачи.
Ряд методов минимизации основан на сравнении значений функции
f(x), вычисляемых в точках x1,x2,...,x 4n 0. Эти методы часто называют ме-
тодами прямого поиска, а точки x 4i 0 - пробными точками. Одним из наибо-
лее эффективных методов из этого ряда является метод золотого сечения.
Золотым сечением отрезка называется такое разбиение отрезка на
две неравные 6 части ,что отношение 0 длины всего отрезка к длине 6 0его бо 6-
льшей части равно отношению длины 6 0большей части к длине меньшей части
отрезка.
Золотое сечение отрезка [a,b] осуществляется каждой из двух сим-
метрично расположенных относительно центра отрезка точек:
62 2
7a 6=a + ───────── ( b - a ) 7 b 6=a + ───────── ( b - a )
7|\\\ 6 7|\\\\
63 + 7? 6 5 1 + 7? 6 5
При этом точка 7a 0 осуществляет золотое сечение не только отрезка
[a,b], но и отрезка [a, 7b 0 ]. Кроме того точка 7 b 0 осуществляет золотое се 6-
чение не только отрезка [a,b], но и отрезка [ 7a 0,b].
Очередная (к+1) 6 0 интерации 6 0производится следующим образом. 6 0Точки
7a 5(k) 0 и 7b 5(k) 0 7 0находятся по формулам:
62 5 62
7a 5(k) 6=a 5(k) 6 + ────────── 7 D 5(k) 7 b 5(k) 6=a 5(k) 6 + ────────── 7D 5(k)
7|\\\\ 6 5 7|\\\\\
63 + 7? 6 5 5 61 + 7? 6 5
6г 0де 7D 5(k) 0 - длина отрезка локализации экстремума при к 5ой 0 интерации.
Если 6f( 7a 5(k) 6) 5 7, 5 6f( 7b 5(k) 6) , то
6┌ ┐ ┌ ┐
6x 5(k+1) 0 6принадлежит 0 6│ 0 6a 5(k+1) 4, 6b 5(k+1) 6│ 5= 6│ 0 6a 5(k) 4, 7b 5(k) 6│ 0 7`
6└ ┘ └ ┘
6и x 5(k+1) 6= 7a 5(k)
Если 6f( 7a 5(k) 6) > f( 7b 5(k) 6) , то
6┌ ┐ ┌ ┐
6x 5(k+1) 6 принадлежит │ a 5(k+1) 6,b 5(k+1) 6│=│ 7a 5(k) 6,b 5(k) 6│
6└ ┘ └ ┘
6и x 5(k+1)= 7b 5(k)
Заметим, что точка 6x 5(k) 0 отстоит от концов отрезка [a 5(k) 0, b 5(k) 0] на
вел 6и 0чину, не превышающую 62
6────────── 7 D 5(k)
7|\\\\ 6 .
61 + 7? 6 5
Поэтому верна оценка:
62
6│ x 5(k) - 6x 5* │ 7 , 6 ────────── 7 D 5(k) 6 = 7 D 5(k+1)
7|\\\\ 6 .
61 + 7? 6 5
7|\\\
7? 0 65 + 1
Т.к. каждая интерация сокращает длину отрезка 6 0в 6 ─────────────
62
6раз, 0 то справедлива следующая оценка погрешности:
6┌ ─┐ 5k+1
6│ 2 │
6│ x 5(k) 6 - x 5* │ 7 , 6│ ─────────── │ 5 (b - a)
6│ 7|\\\\ 6 │
6└ 1 + 7? 6 5 7 6┘
Таким образом, метод золотого сечения сходится со скоростью гео-
метрической прогрессии, знаменатель которой
52
g 5 0= 5 ─────────── 7 ~ 6 0.62
7|\\\\
61 5 6+ 5 7? 6 5
Существуют методы, которые могут оказаться более эффективными,
если минимизируемая функция достаточно гладкая. Часть из них является
просто модификациями методов решения нелинейных уравнений применитель-
но к уравнению f(x)=0.
г) Eure 6k 0a позволяет решать задачу поиска экстремума функции при
помощи задания директив: 7 0$min и $max. При этом если функция имеет нес-
колько экстремумов, то для нахождения того который нужен имеет смысл
нарисовать график функции и исходя из этого графика задать начальное
приближение и ограничени 6я 0 для поиска экстремума. В противном случае
поиск экстремума будет происходить от начальных значений заданных сис-
темой Eure 6k 0a по умолчанию и может привести не к тому экстремуму, кото-
рый хотелось бы найти. Ниже приводится пример 6записи из окна Edit. Эта
6запись позволяет найти экстремум.
$ max (T)
V(x)=5*x*exp(-x/2)*(2+sin(3*x))
x:=2
V(x)>10
T=V(x)
В результате решения получается: T=10.629942, x=2.5805014 6.
д) Корень х 5* 0 уравнения f(x)=0 называется простым, если f(x 5* 0)=0 и
f'(x 5* 0) 7- 00. В противном случае корень называется кратным. Целое число m
называется кратностью корня x 5* 0, если f 5(k) 0(x 5* 0)=0 для к=0,1,2,...m-1 и
f 5(m) 0(x 5* 0) 7- 00. 7 0Геометрически 7 0корень 7 0x соответствует 7 0точке 7 0пересечения
графика 7 0функции y=f(x) с осью O 6x 0. Решение 7 0задачи 7 0отыскания корней
нелинейного уравнения осуществляет в два этапа. Первый этап называ 6-
ется этапом локализации корней, второй - этапом итерационного уточ 6-
нения корней. 6 0 Первый 6 0этап удобно 6 0 выполнять при помощи графических
средств системы Eure 6k 0a. 6 0На втором этапе для 6 0вычисления каждого из
корней с точностью 6e 0>0 используют какой-либо из итерационных 6 0методов,
позволяющих 5 0построить последовательность 6x 5(0) 0, 6x 5(1) 0,.., 6x 5(n) 0... 5 0прибли 6-
жений, 6 0сходящуюся 5 0к 5 0 корню 6 x 5* 0. 6 0Сформулируем 6 0 один из 6 0этих 6 0методов
в 6 0виде теоремы.
6Теорема 0 61. 0(о сходимости метода Ньютона)
6───────────────────────────────────────────
Пусть 6x 5* 0- простой вещественный корень уравнения f(x)=0 и пусть
f'(x) 7- 00 в окрестности U 4r 0(x 5* 0)={x: 6│ 0x-x 5* 6│ 0<r}. Пред 6п 0оложим, что f''(x) неп-
рерывна в U 4r 0(x 5* 0) и
0<m=inf 5│ 0f'(x) 5│ 6, 5 0M=sup 5│ 0f''(x) 5│ 0 6, 0 6где x 0при 6надл.U 4r 6(x 5* 6)
6причем
6M │x 5(0) 6 - x 5*│
6q = ────────────── 5── 6 < 1 .
62 m
Тогда, если 5 0начальное приближение 5 6x 5(0) 6принадлежит 5 0U 4r 0(x 5(*) 0), 6 0то
метод Ньютона
6f(x 5(k) 6)
6x 5(k+1) 6=x 5(k) 6- 5 ──── 6────── , где k=0,1,2,... сходится к x 5(*) 6,
6f'(x 5(k) 6)
причем 6 0для 6 0погрешности 6 0справедлива оценка
6│ x 5(k) 6- x 5* 6 │ 7 , 6 q 5t-1 │ 6x 5(0) 6 - x 5* │ 6 , где t=2 5k 6.
_Замечание 1.
Аналогичные теоремы существуют для случая кратных и комплексных
корней.
_Замечание 2.
Как известно, экстремумы функции f(x) находятся в точках, где
f'(x)=0. Поэтому если для g(x)=f'(x) выполняются условия приведенной
выше теоремы, то итерационный процесс, приближающий к точке экстрему-
ма 6 f(x) 0, будет иметь вид:
6f'(x 5(k) 6)
6x 5(k+1)= 6x 5(k) 6 - ──────────── , где k=0,1,2,....
6f''(x 5(k) 6)
е) Задача отыскания решения системы из N-нелинейных уравнений с N
неи 6з 0вестными, имеющая вид
f 41 0 ( 6x 41 0, 6x 42 0, ..., 6x 4n 0)=0
f 42 0 ( 6x 41 0, 6x 42 0, ..., 6x 4n 0)=0 6 0 (1)
......................
6f 0n ( 6x 41 0, 6x 42 0, ..., 6x 4n 0)=0
встречается 6 0очень 6 0часто, т.к. в 6 0реальных 6 0исследованиях определя-
ются 6 0сотни 6 0или 6 0даже 6 0тысячи 6 0параметров. Первым 6 0этапом 6 0 решения
так 6 0же, 6 0как 6 0и 6 0в 6 0одно 6мер 0ном 6 0случае, 6 0является 6 0локализация 6 0решения
x 5* 0=( 6x 41 0,..., 6x 4n 0) 6 0, 6 0т.е. подбор множества содержащего 6x 5* 0.
(Здесь далее нижний индекс будет означать номер компоненты векто-
ра, а верхний - номер интерации). Часто в качестве такого множества
выступает параллепипед или шар в N - мерном пространстве. Во многих
случаях полное решение задачи локализации невозможно и ее можно счи-
тать решенной удовлитворительно, если из каких либо соображений удает 6-
ся 6 0найти хорошее 6 0начальное приближение 6x 5(0) 0. 6 0В 6 0простейших 6 0случаях
(для систем двух уравнений с двумя неизвестными) могут быть использо-
ваны графические методы.
На втором эт 6а 0пе для 6вычисления 0решения с заданной точностью ис-
пользуют один из итерационных методов. Рассмотрим в качестве примера
метод, называемый методом простой итерации. Преобразуем систему (1) к
следующему эквивалетному виду ( к виду удобному для интераций):
6x 41= 7F 41 6(x 41, 6x 42,...., 6x 4n 6)
6x 42 6= 7F 42 6(x 41 6,x 42 6,....,x 4n 6)
6.................... (2)
6x 4n 6= 7F 4n 6(x 41 6,x 42 6,....,x 4n 6)
Если ввести вектор-функцию, 6 7 F 6=( 7F 41 6, 7F 42 6,...., 7F 4n 6) 5T 6, 0то 6 0 система (2)
запишется так:
6x= 7F 6(x) (3)
Пусть начальное приближение 6x 5(0)=( 6x 41 5(0) 0, 6x 42 5(0) 0,..., 6x 4n 5(0) 0) 5T 0 задано.
Подставляя 6 его 0в правую 6 0часть 6 0системы (3), 6 0 получим 6 x 5(1) 6= 7F 6(x 5(0) 6) 0.
Подставляя 6 x 5(1) 0 в 6 0 правую часть (3), 6 0найдем 6x 5(2) 6= 7F 6(x 5(1) 6) и 0т.д.
Продолжая 6 0вычисления 6 0по формулам 6 x 5(k+1) 6= 7F 6(x 5(k) 6) , 0 6k 7. 60 0 получим пос 6-
ледовательность 6x 5(0) 0, 6x 5(1) 0,..., 6x 5(k) 0,... приближений к решению 6x 5* 0.
6┌ ┐
6│ d 7 F 41 6(x) 7 6d 7F 41 6(x) │
6│ 4 ───────── 6─ ...... ───────── │
6│ dx 41 6 7 6 7 6dx 4n 6 │ - матрица ( частных
6│.............................│
Пусть 7F 6'(x) = 0 6│.............................│ производных ) Якоби
6│ │
6│ 7 6d 7F 4n 6(x) 7 6d 7F 4n 6(x) 4 6 │ соответствующая 7 F 6(x).
6│ ───────── ....... ───────── │
6│ 7 6dx 41 6 7 6dx 4n 6 │
6└ ┘
6Сф 0ормулируем теорему о сходимости метода простых интераций.
6Теорема 2 .
6───────────────
Пусть в некоторой 4 7s 0- окрестности 4 0решения 4 6x 5* 0 функции 4 0 7F 4i 6(x)
(i=1,2,...,n) дифференцируемы и выполнено неравенство
6n
6──────┐ │ │
6m a x 0 6\ │ 7 6d 7F 4i 6(x) │
61 7, 6i 7, 6n 0 6/ │─────────│ 7 , 6 q 5 6, где 0 7, 6q<1 и q - постоянная .
6──────┘ │ 7 6dx 4j 6 │
6j=1 │ │
Тогда независимо от выбора начального приближения 6x 5(0) 0 из указан-
ной 7s 0- окрестности 7 0корня 7 0итерационная последовательность не выходит
из этой окрестности, метод сходится со скоростью гео 6м 0етрической прог 6-
рессии и справедлива следующая оценка погрешности:
6m a x │ x 4j 5(k) 6 - x 4j 5* 6 │ 7 , 6 q 5k 6 m a x │ x 4j 5(0) 6 - x 4j 5* 6│
61 7, 6j 7, 6n 1 7, 6j 7, 6n
(При помощи понятия нормы теорема 2 может быть сформулирована в
более общем виде).
_Замечание 3.
В условиях теоремы 2 верна апостериорная оценка погрешности:
6q
6m a x │ x 4j 5(k) 6 - x 4j 5* 6 │ 7, 6 ──────── m a x │ x 4j 5(k) 6 - x 4j 5(k-1) 6 │
61 7, 6j 7, 6n 0 5 61 - q 1 7, 6j 7, 6n
При наличии достаточно хорошего начального приближения 6x 5(0) 0 можно
считать, что
6n
6──────┐ │ 5 6│
6q 7 ~ 6 m a x \ │ 5 7 6d 7F 4i 6(x 5(0) 6) │
61 7, 6i 7, 6n 0 6/ │──────────── 5─ 6│
6──────┘ │ 5 7 6dx 4j 6 5 │ 6 .
6j=1 │ 5 │
_Пример
В результате визуального анализа графиков кривых f1 и f2 из сис-
темы нелинейных уравнений
6f(x 41 6,x 42 6) = x 41 53 4 6+ x 42 53 6 - 8x 41 6x 42 6 = 0
6(4)
6f(x 41 6,x 42 6) = x 41 6ln(x 42 6) - x 42 6ln(x 41 6) = 0
обнаружилось, 5 0что 5 0 одно из ее решений 4 0находится вблизи точки 5 0(3.8 6; 02).
Проверить сходимость 5 0метода простых итераций для 5 0системы (4), 5 0если в
качестве 5 0начального 5 0приближения 5 0взята точка 6 x 41 5(0) 6=3.8 и x 42 5(0) 6=2.
Преобразуем систему к виду убдобному для применения метода прос-
тых итераций.
43 7|\\\\\\\\\\\\
6x 41 6 = 7? 6 8x 41 6x 42 6 - x 42 53 = 7 F 41 6(x 41 6,x 42 6)
6x 42 6 x 41
6x 42 6= x 42 6 + ──────── - ──────── = 7 F 42 6(x 41 6,x 42 6)
6ln(x 42 6) ln(x 41 6)
Для вычисления q воспользуемся системой Eure 6k 0a. Сделаем в окне
Edit следующую запись:
x=3.8 : y=2
a=deriv ((16*x-8)^(1/3),x)
b=deriv ((30.4*y-y^3)^(1/3),y)
c=deriv (2+2/ln(2)-x/ln(x),x)
d=deriv (y+y/ln(y)-3.8/ln(3.8),y)
K=abs(a)+abs(b) : p=abs(c)+abs(d)
В результате решения получаем p<k 7~ 0 0.815...<1.
Cледовательно, метод простой итерации в данном случае сходится.
ж) Для того, чтобы найти оговоренное выше решение системы (4) при
помощи среды Eure 6k 0a, достаточно сделать в окне Edit cледующую запись
x^3+y^3=8*x*y
x*ln(y)=y*ln(x)
x:=3.8 : y:=2
и отдать среде команду Solve.
6Задание
6──────────
а) Проверьте при помощи графика и таблицы из среды Eure 6k 0a наличие
корня y предложенного вам уравнения f(x)=0 на указанном отрезке лока-
лизации корня.
б) Найдите при помощи системы Eure 6k 0a m и M. Проверьте выполнение
условия
6M │ x 5(0) 6- x 5* 6 │
6───────────────── 5 6 < 1
62 m
(из теоремы о сходимости метода Ньютона) для вашего уравнения
f(x)=0.
в) Решите ваше уравнение при помощи системы Eure 6k 0a.
г) Изобразите на миллиметровке графики кривых из предложенной вам
системы нелинейных уравнений в указанном прямоугольнике локализации
корня. Выберите начальное приближение корня. Представьте систему в ви-
де 6x= 7F 6(x).
д) Используя систему Eureka, вычислите
6n
6─────┐ │ 5 6│
6\ │ 7 6d 7F 4i 6(x 5(0) 6) │
6/ │────────── 5─── 6│
6─────┘ │ 4 7 6dx 4j 6 5 6│
6j=1 │ 5 6│
для каждой i-ой строки 6 0Якобиана (i=1,2, ..., 6n 0). 6 0На основании 6 0этого
проверьте выполнение условий теоремы о сходимости метода простой ите 6-
рации.
е) Решите вашу систему при помощи Eureka.
Лабораторная работа N3
6───────────────────────────────
Экстремумы функции многих переменных. Задача линейного
программирования.
Цель работы.
6───────────────
Приобретение навыков вычисления экстремумов функции многих пере-
менных и решения задачи линейного программирования при помощи системы
E 6u 0reka.
Теоритическое введение.
6────────────────────────
а) Пусть f(x)= 6f 0(x 41 0, ...,x 4n 0) - функция от n действительных пере-
менных, минимизируемая на некотором множестве Х. Если Х=R 5n 0, то говорят
о задаче безусловной минимизации. В противном случае говорят о задаче
условной 6 0минимизации. Как 6 0и для функции 6 0одной 6 0переменной, 6 0задача
максимизации функции f(x) сводится к задаче минимизации функ 6-
ции g(x)=-f(x).
Из курса математики известно, что градиент функции f(x), опреде-
ляемый в точке а=(а 41 0, ..., а 4n 0) как вектор
6┌ 7 6df(a) 7 6df(a) ┐
6u(a) = │────────,...., ─────────│ , указывает направление
6└ 7 6dx 41 6 7 6dx 4n 6 ┘
наискорейшего 6 0возрастания 6 0 функции f(x) в точке а. 6 0Вектор -u(a), на 6-
зываемый антирадиентом, указывает 6 0направление наискорейшего 6 0 убывания
функции f(x) в точке а. Точка а называется стационарной точкой функции
f(x), если в этой точке выполняются n равенств:
7(
72 6 df(a)
72 6 ──────── = 0
72 6 7 6dx 41
7* 6..............
72
72 6 df(a)
72 6 ──────── = 0
79 4 6dx 4n
Пусть f(x) дважды 6 0 непрерывно дифференцир 6уема 0. Тогда достаточным
условием того, чтобы стационарная точка а была точкой локального мини-
нума, является положительная определенность матрицы:
6┌ 4 6┐
6│ 4 6│
6│ d 52 6f(a) 7 6 d 52 6f(a) 7 4 6│
6│ ────────,.....,──────── 4 6│
4^ 6 │ dx 41 6dx 41 6 dx 41 6dx 4n 6 │
6А(x) = │.........................│
6│ │
6│ 7 6d 52 6f(a) 7 6d 52 6f(a) 7 6│
6│ 4──────── 6,....., 4──────── 6 │
6│ dx 4n 6dx 41 6 dx 4n 6dx 4n 6 │
6└ ┘
4^ ^
Матрица А называется матрицей Гессе. Напомним, что матрица А 4 0по 6-
4^ ^
ложительно определена, если 6(Ax,x)>0 0 6 0при 6 x 7- 60 0 6 0и 6 (Ax,x)=0 0 6 0при 6 x=0,
где 6x=(x 41 6,...,x 4n 6) 5T 6.
Сущесвует большое количество различных методов нахождения безус-
ловного минимума функции многих переменных. Рассмотрим в качестве при-
мера один из них. Этод метод называется методом наискорейшего спуска и
является одним из представителей большого семейства итерационных мето-
дов. Пусть х 5(k) 0- приближение к точке минимума х, а u 5(k) 0=u(x 5(k) 0) -зна 6-
чение 5 0градиента в точке х 5(k) 0. 5 0Напомним еще раз, что в малой 5 0окрест-
ности точки х 5(к) 0 направление наискорейшего убывания функции f(x) зада-
ется антиградиентом 5 0-u 5(k) 0. Исходя из этого итерационную формулу мето-
дом наискорейшего спуска записывают в виде:
6x 5(k+1) 6 = x 5(k) 6- 5 7a 4k 6u 5(k) 4 6 4 6(1)
Здесь - 7a 4к 0 шаг спуска, выбираемый из соображений минимизации функции
от одной скалярной переменной 7f 4k 6( 7a 6) = f(x 5(k) 6- 5 7a 6u 5(k) 6) 0при 8 5 7a 0>0. 5 0Т.е.
6в 0качестве 7 a 4к 6 0выбираем 6 7 a 0 для которого 7 f 4k 6( 7a 4k 6) = 7 6min 7f 4k 6( 7a 6) 0 6при 0 7a 6>0.
Рассмотрим применение этого метода для минимизации квадратичной
функции f(x 41 0, ..., x 4n 0)=f(x), где
6n n 4 6n
61 ────┐ ────┐ 4 6────┐
6f(x) = ─── \ \ a 4ij 6x 4i 6x 4j 6 - \ b 4i 6x 4i 6 (2)
62 / / 4 6/
6────┘ ────┘ 4 6────┘
6i=1 j=1 i=1
Коэффициенты а 4ij 0 являются элементами симметричной положительно
определенной матрицы А. Используя матричные обозначения, запишем f(x)
так:
61
6f(x) = ───(Ax,x) - (b,x) 4 6 4 6(3)
62
Вычислим градиент и матрицу Гессе для функции (2).
6┌ n n 4 6┐' 4 ┌ 6 n 4 6 ┐'
6d f(x) 0 61 0 6│ ─────┐ ─────┐ 4 6│ 4 │ 6 ─────┐ 4 6 │
6─────── 0 6= 4─── 6│ \ \ a 4ij 6x 4i 6x 4j 6 │ 4 6- 4 │ 6 \ b 4i 6x 4i 6 │
6d x 4k 6 0 62 │ / / 4 6│ 4 6 4 │ 6 / 4 6│ =
6│ ─────┘ ─────┘ 4 6│ 4 │ 6 ─────┘ 4 6│
6└ i=1 j=1 4 6┘x 4k └ 6 i=1 4 6 ┘x 4k
4( 6 где k=1,....,n)
6┌ n 4 6 n 4 6 n 4 6 4 6┐'
61 0 6│ ─────┐ 4 6 4 6 ─────┐ 4 6 ─────┐ 4 6│
6= 0 6───│ \ a 41j 6x 41 6x 4j 6+..+ \ a 4kj 6x 4k 6x 4j 6 +..+ \ a 4nj 6x 4n 6x 4j 6│ - b 4k 6 =
62 0 6│ / 4 6 4 6 / 4 6/ 4 6│
6│ ─────┘ 4 6 4 6─────┘ 4 6─────┘ 4 6│
6└ j=1 4 6 4 6j=1 j=1 4 6 4 6┘x 4k
61 ┌ 4 6 4 6┐
6= ───│ a 41k 6x 41 6 +..+ (a 4k1 6x 41 6 +..+ 2a 4kk 6x 4k 6 +..+ a 4kn 6x 4n 6) +..+ a 4nk 6x 4n 6 │ - b 4k 6 =
62 └ 4 6 4 6┘
61 ┌ 4 6 4 6 4 6┐
6= ───│ (a 41k 6 + a 4k1 6)x 41 6 +..+ 2a 4kk 6x 4k 6 +..+ (a 4kn 6 + a 4nk 6)x 4n 6 │ - b 4k 6 =
62 └ 4 6 4 6 4 6┘
6( т.к. матрица A симметричная )
6n
61 ┌ 4 6 4 6┐ 4 6─────┐
6= ───│ 2a 4k1 6x 41 6 +..+ 2a 4kk 6x 4k 6 +..+ 2a 4kn 6x 4n 6 │ - b 4k 6 = \ a 4kj 6x 4j 6 - b 4k
62 └ 4 6 4 6┘ 4 6 /
6─────┘
6j=1
Окончательно получаем:
6n
6df(x) ─────┐
6─────── = \ a 4kj 6x 4j 6 - b 4k (4)
6dx 4k 6 /
6─────┘
6j=1
Тогда в матричной форме можно записать:
6u(x) = Ax - b (5)
Дифференцируя обе части равенства (4) по х 4р 0 (р=1, ...n), получаем 4 0:
6d 52 6f(x)
6───────── = a 4pk
6dx 4p 6dx 4k
4^
Таким образом, матрица Гессе А(х) не зависит от х и равна А.
6Т 0еперь благодаря формуле (5) формулу (1) можно записать в виде:
6x 5(k+1) 6 = x 5(k) 6 - 7 a 4k 6(Ax 5(k) 6- 5 6b) (6)
Заметим, что 5 6:
61
7f 4k 6( 7a 6) = ───(A(x 5(k) 6- 5 7a 6u 5(k) 6),x 5(k) 6 - 7 a 6u 5(k) 6) - 5 6(b,x 5(k) 6 - 7 a 6u 5(k) 6) =
62
6(*)
61 5 6 5 61
6= ───(Au 5(k) 6,u 5(k) 6 ) 7a 52 6 - (u 5(k) 6,u 5(k) 6) 7a 6 + ───(Ax 5(k) 6,x 5(k) 6) - (b,x 5(k) 6)
62 5 62
6( Доказательство формулы (*) см. в конце лабораторной работы N 3 )
Эта функция является квадратичной функцией параметра 8 7a 0 и достига-
ет минимума при таком значении 8 7a 0= 7a 4к, 0 для которого
7f 4k 5' 6( 7a 4k 6) = (Au 5(k) 6,u 5(k) 6) 7a 4k 6 - (u 5(k) 6,u 5(k) 6) = 0
Таким образом, применительно к минимизации квадратичной функции
(3) метод наискорейшего спуска эквивалентен расчету по формуле (6),
где
6(u 5(k) 6,u 5(k) 6)
7a 4k 6 = ──────────── 5─── 6 (7)
6(Au 5(k) 6,u 5(k) 6)
Имеет место следующая теорема.
_Теорема
Пусть А - симметричная, положительно определенная матрица, и мини-
мизируется квадратичная функция (3). Тогда при любом выборе начального
приближения метод наискорейшего спуска (6), (7) сходится и верна сле-
дующая оценка погрешности
7|\\\\\\\ 6 ┌ ┐ 5n
7/ l 4max 6 │ 7 l 4max 7 6- 7 l 4min 6 │
6│ x 5(k) 6 - x 5* 6│ 7 , 6 7/ 6──────── │───────────────│ 5 │ 6x 5(0) 6 - x 5* │
7? l 4min 6 │ 7 l 4max 7 6+ 7 l 4min 6 │
6└ ┘
Здесь 7l 4min 7 0и 7l 4max 7 0- минимальное и максимальное собственные зна 6-
чения матрицы А.
б) Система Eureka решает задачи на поиск минимума (максимума)
функции 6 0нескольких 6 0переменных. При 6 0этом могут быть заданы ограни 6-
чения и удобные для поиска 6 0начальные значения. 6 0Для проверки 6 0способ 6-
ности системы Eureka решать оптимизационные задачи разработан ряд тес 6-
товых задач, содержащих подвохи. Одна из таких задач - поиск минимума
функции Розенброка. 6Э 0та функция 6 0двух переменных образует в трехмер 6-
ном пространстве " овраг ", затрудняющий поиск. Далее приводится за 6-
пись из окнa Edit, позволяющая минимизировать функцию Розенброка.
6$ min (F)
6f(x,y)=100*(y-x^2)^2+(1-x)^2
6F=f(x,y)
6x:=-1.2
6y:=0
Начальное значение переменных далеки от решения х=y=1 и F=0.
Еще одна тестовая задача содержит ограничения.
6$ min (F)
6f(x,y)=(x-2)^2+(y-1)^2
6F=f(x,y)
6-x^2+y>=0
6-x-y+2>=0
Точное решение: F=1, x=1, y=1.
При решении оптимизационных задач с ограничениями Eure 6k 0a выводит
в окне Solution сообщение о том, насколько полно удовлетворены ограни-
чения. В идеальном случае выводится 100 %. Если это число значительно
меньше чем 100 %, то это может служить признаком неточного нахождения
экстремума. Пока не существует программа, которая была бы способна ре-
шить любую оптимизационную задачу. Поэтому надо быть готовым к тому,
что Eureka может не справиться с предложенным ей заданием.
в) При решении ряда технологических и экономических проблем воз-
никает задача вида:
найти max Z(x) или min Z(x)
6n
6─────┐
если 6 Z(x) = \ c 4j 6x 4j 6 + c 40
6/
6─────┘
6j=1
при ограничениях
6n
6─────┐
6\ a 4ij 6x 4j 7 , 6 b 4i 6 ( i=1,m 41 6 )
6/
6─────┘
6j=1
6n
6─────┐
6\ a 4ij 6x 4j 6 = b 4i 6 ( i=m 41 6+1,m 42 6 )
6/
6─────┘
6j=1
6n
6─────┐
6\ a 4ij 6x 4j 7 . 6 b 4i 6 ( i=m 42 6+1,m )
6/
6─────┘
6j=1
6x 4j 7. 6v 4j 7. 60 4 6 4 6( 4 6j=1,n 41 6)
6x 4j 7, 6w 4j 7, 60 4 6 4 6( 4 6j=n 41 6+1,n 4 6)
Такие задачи называются задачами линейного программирования. Для
решения этих задач создан специальный метод, называемый симплекс-мето-
дом. Изучение задач линейного программирования является предметом спе-
циального курса, поэтому рассмотрим здесь часный случай. Пусть n=2
(т.е. Z(x)=с 41 0х 41 0+с 42 0х 42 0+с 40 0 ) и при этом заданы следующие ограничения
2
─────┐
\ 6 a 4ij 6x 4j 7 , 6 b 4i 6 ( i=1,m )
/
─────┘
6j=1
6x 4j 7. 6v 4j 7. 60 4 6 ( j=1,2 )
В этом случае решение задачи имеет наглядную геометрическую инт 6ер 0-
претацию. 6 0Исходя из заданных ограничений 6 0строится многоугольник до-
пустимых решений. Далее, для каждой точки плоскости функция Z(x)
принимает 6 0фиксированное 6 0значение Z 4т 0. 6 0Множество 6 0всех 6 0точек, в кото 6-
рых, 6 0Z(x)=Z 4т 0 есть 6 п 0рямая 6 0с 41 0х 41 0+с 42 0х 42 0+с 40 0=Z 4т 0 6 0перпендикулярная 6 0вектору
76
6C 0=(с 41 0,с 42 0), выходящему 6 0из начала 6 0координат. Если эту прямую предви 6-
гать 6 0параллельно 6 0самой 6 0себе 6 0по 6 0направлению вектора с, то линейная
функция Z(x) будет возрастать, а в противоположном направлении - убы 6-
76
вать. Пусть при движении прямой Z по направлению вектора 6C 0 она впервые
встретится с многоугольником допустимых решений в одной из его вершин.
Зафиксируем это положение прямой Z. В этой точке функция Z(x) примет
минимальное значение.
76
При дальнейшем движении прямой Z по направлению вектора 6C 0 она
пройдет через другую вершину, выходя из многоугольника допустимых ре-
шений. В этой точке функция Z(x) примет максимальное значение.
Вообще говоря, прямая Z может иметь с многоугольником допустимых
решений (на входе и на выходе ) либо одну общую точку (выршину многоу-
гольника), либо бесконечное множество точек (сторону многоугольника).
Если область допустимых решений незамкнута, то минимума и (или) макси-
мума Z(x) можем не быть совсем.
Рассмотрим типичную задачу линейного программирования. Пусть не-
кий цех с про 6и 0зводительностью 450 тонн продукта в месяц способен про-
изводить три разновидности этого продукта. Согласно договорам цех дол-
жен изготовить не менее 40-ка тонн первой, 60-ти тонн второй, 80-ти
тонн третьей разновидности продукта за месяц. Для изготовления этих
разновидностей продукта используются четыре материала в различных со-
отношениях. Цех располагает следующими запасами материалов: первого -
100 тонн, второго - 150 тонн, третьего - 120 тонн и четвертого - 180
тонн. Данные о расходах материалов на производство одной тонны каждой
разновидности продукта сведены в таблицу.
┌─────────────────┬─────────────┬───────────┬───────────┬────────────┐
│ 6──┐Расход матери- 0│ │ │ │ │
6│ └──┐ала на 0 6одну 0│ │ │ │ │
6│Раз- 0 6└──┐тонну 0 6│ 0 I-го │ II-го │ III-го │ IV-го │
│ 6новидно-└───┐ 0 6│ 0 │ │ │ │
│ 6сти продукта└──── 0│ │ │ │ │
├─────────────────┼─────────────┼───────────┼───────────┼────────────┤
│первая │ 0.3 тонны │ 0.2 тонны │ 0.4 тонны │ 0.4 тонны │
├─────────────────┼─────────────┼───────────┼───────────┼────────────┤
│вторая │ 0.2 тонны │ 0.1 тонны │ 0.3 тонны │ 0.6 тонны │
├─────────────────┼─────────────┼───────────┼───────────┼────────────┤
│третья │ 0.2 тонны │ 0.5 тонны │ 0.2 тонны │ 0.3 тонны │
└─────────────────┴─────────────┴───────────┴───────────┴────────────┘
Требуется найти оптимальное (в смысле максимизации прибыли) коли-
чество каждого вида изготавливаемого продукта при условии, что стои-
мости 6 0разновидностей 6 0этого 6 0продукта 6 0равны: 6 0первого - 13.5, второ 6-
го -11.3 6 и 0 третьего - 8.2 денежные единицы за тонну.
Для решения приведенной выше задачи при помощи системы Eureka
нужно сделать следующую запись в окне Edit.
6$ max (f)
6Z(x,y,v)=13.5*x+11.3*y+8.2*v
60.3*x+0.2*y+0.2*v 7, 6 100
60.2*x+0.1*y+0.5*v 7, 6 150
60.4*x+0.3*y+0.2*v 7, 6 120
60.4*x+0.6*y+0.3*v 7, 6 180
6x 7 . 640 : y 7 . 660 : v 7 . 680
6x+y+v 7, 6450
6f=Z(x,y,v)
После решения получаем следующие результаты.
6f 7~ 6 4538.9983 , x 7~ 6 90.001006 , y 7~ 6 119.99876 , v 7~ 6 239.99985
6x+y+v 7~ 6 499.9996
6Поcле подстановки получаем:
60.3*x+0.2*y+0.2*v 7~ 6 99.000023
60.2*x+0.1*y+0.5*v 7~ 6 150.00000
60.4*x+0.3*y+0.2*v 7~ 6 120.00000
60.4*x+0.6*y+0.3*v 7~ 6 179.99961
_Вывод формулы (*)
61
6───(A(x - 7a 6u),x - 7 a 6u) - (b,x - 7 a 6u) =
62
61 1
6= ───(A(x - 7 a 6u),x) - ───(A(x - 7a 6u), 7a 6u) - (b,x) + (b,u) 7a 6 =
62 2
61 ┌ ┐
6= ───│ (Ax,x) - (Au,x) 7a 6 - (Ax,u) 7a 6 + 5 6(Au,u) 7a 52 6 │- (b,x) + (b,u) 7a 6 =
62 └ ┘
6─────────────────────────────────────────────────────────────────────
Заметим, 6 0что (Au,x) 6 0= 6 0(Ax,u). 6 0Действительно, 6 0(Au 6, 0x) 6 0= 6 0( 6u 0, 6Ax 0)
6т.к. 0А - симметричная матрица 6 и (u,Ax) = (Ax,u) по свойству скалярно-
6го произведения .
6─────────────────────────────────────────────────────────────────────
61 ┌ 5 ┐
6= ───│ (Ax,x) + (Au,u) 7a 52 │ 6 - (Ax,u) 7a 6 - (b,x) + (b,u) 7a 6 =
62 └ 5 ┘
6( т.к. u = Ax - b , то Ax = u + b )
61 ┌ 5 ┐
6= ───│ (Ax,x) + (Au,u) 7a 52 │ - 6(u + b,u) 7a 6 - (b,x) + (b,u) 7a 6 =
62 └ 5 ┘
61 7 6┌ ┐
6= ───│ (Ax,x) + (Au,u) 7a 52 6 │ - (u,u) 7a 6 - (b,u) 7a 6 - (b,x) + (b,u) 7a 6 =
62 └ ┘
61 1
6= ───(Au,u) 7a 52 - 6 (u,u) 7a 6 + ───(Ax,x) - (b,x) .
62 2
6Задание
6───────────
а) Составьте матрицу А для предложенной вам квадратичной функции.
Проверьте при помощи критерия Сильвестра положительную определенность
матрицы А. Найдите
6( 7l 4max 6 - 4 7l 4min 6)
6q = ───────────────
6( 7l 4max 6 - 7 l 4min 6)
являющееся знаменателем геометрической прогрессии со скоростью которой
сходится 6 0метод 6 0наискорейшего 6 0спуска. (Для этого составьте уравнение
6det (A - 7 l 6E) = 0 и решите его используя процедуру 4 6poly(x,a 4n 6,...,a 40 6) 4.
б) Придумайте пример задачи линейного программирования и решите
эту задачу при помощи системы Eureka. Измените коэффициенты целевой
функции и ограничения. Решите задачу заново. Придумайте трактовку по-
лученным результатам.
Лабораторная работа N4
4─────────────────────────
Приближение функций. Вычисление определенных
интервалов. Решение дифференциальных уравнений.
6Цель работы
6──────────────
Приобретение навыков вычисления определнных интегралов, реше-
ния диф. уравнений и приближения функций методом наименьших квад-
ратов при помощи системы Eure 6k 0a.
6Теоретическое введение
6─────────────────────────
I) 6 Вычисление определенных интегралов
7\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Разобъем отрезок интегрирования [a,b] на отрезки [x 4i-1 0,x 4i 0]
точками a=x 40 0<x 41 0<...<x 4n 0=b. Интеграл разобъется при этом на сумму
интегралов:
6n x 4i
6────┐ ────┐ 7 !
6I = \ I 4i 6 = \ 7 2 6 f(x) dx (1)
6/ / 7 2
6────┘ ────┘ 7 1
6i=1 x 4i-1
6Обозначим: f 4i 6=f(x 4i 6) , f 4i-1/2 6=f(x 4i-1/2 6) 4 , 6 где x 4i-1/2 6=(x 4i-1 6+ x 4i 6)/2
Шаг h=x 4i 0- x 4i-1 0 будем считать постоянным.
а) Заменим 6 0приближенно 6 0каждый 6 0интеграл из формулы (1) пло-
щадью прямоугольника, основание 6 0которого 6 0отрезок 6 0 [x 4i-1 0,x 4i 0], а вы-
сота равна f 4i-1/2 0. Тогда мы получим приближенное равенство:
6n
6─────┐
6I 7~ 6 h \ f 4i-1/2 6 = I 4пр 6 4 6 (2)
6/
6─────┘
6i=1
Формула (2) называется составной 6 0 квадратной 6 0формулой 6 0 прямоу-
гольников.
б) Заменим приближенно каждый интеграл 6 0 из 6 0 формулы (1) 6 0 пло-
щадью 4 0трапеции, стороны 4 0которой 6 4 6 [x 4i-1 6,x 4i 6] , [x 4i-1 6,(x 4i-1 6,f 4i-1 6)] ,
6[(x 4i-1 6,f 4i-1 6),(x 4i 6,f 4i 6)] и 0 6[x 4i 6,(x 4i 6,f 4i 6)] . 0 При 6 0этом мы получим прибли 6-
женное равенство: 6
6n
6┌ ─────┐ ┐
6│ f 40 6 + f 4n 6 \ f 4i 6 │
6I 7 ~ 6 h │───────── + / │ = I 4тр 6 (3)
6│ 2 ─────┘ │
6└ i=1 ┘
Формула (3) называется составной квадратной формулой трапеций.
в) Заменим приближенно 4 0каждый интеграл 4 0из формулы (1) пло 6-
щадью 6 0фигуры, расположенной 6 0под парабалой, проходящей через точки:
6(x 4i-1 6,f 4i-1 6) , (x 4i-1/2 6,f 4i-1/2 6) 0и 6(x 4i 6,f 4i 6) 0. 6 0После 6 4 6 0интегрирования 6 4 0и
соответствующих преобразований получается приближенное равентство:
6n 4 6 n-1
6┌ 4 6 4 6 ─────┐ 4 6 ─────┐ ┐
6h 0 6│ 4 6 4 6 \ 4 6 \ │
6I 7 ~ 6 ─── │ f 40 6+ f 4n 6 + 4 / f 4i-1/2 6 + 2 / f 4i 6 │ = I 4с 6 (4)
66 0 6│ 4 6 4 6─────┘ 4 6 ─────┘ │
6└ 4 6 4 6i=1 4 6i=1 ┘
Формула (4) называется составной квадратной формулой Симпсона.
г) П 6р 0иведенны 6е 0 выше способы в 5 0ычисления 5 0 определенного интегра-
ла 5 0дают достаточно х 5 0орошую 5 0точность. Погрешености 5 0этих способов
таковы:
6M 42 6(b - a) M 42 6 (b - a)
6│ I - I 4пр 6│ 7, 6 ──────────── 4 6h 52 6 и │ I - I 4тр 6 │ 7 , 6 ──────────── h 52 6 ,
624 12
6где M 42 6 = m a x │ f 5'' 6(x) │
5[a,b]
6M 44 6 (b - a)
6│ I - I 4с 6 │ 7 , 6 ───────────── h 54 6 , где M 44 6 = m a x │ f 5'''' 6(x) │
62880 5 [a,b]
д) С помощью системы Eure 6k 0a можно вычислять определенные интегра 6-
лы численным методом с контролем погрешности результата. Чем меньше
заданная погрешность, тем длинее 6 0процесс вычислений. 6 0 Далее приво 6-
дится запись, которую необходимо сделать в окне Edit для вычисления 6
интеграла:
49
7! |\\\\\\\\\
72 / 5 6 x 53
72 / 5 7\\\\\\\\\\ 6 dx
71 ? 6 5 6x 54 6 + 31
57.3
6( Запись в окне Edit )
6y(x)=sqrt(x^3/(x^4+31))
6z=integ(y(x),x,7.3,9)
После этого для получения решения 6 0 надо 6 0подняться 6 0 в верхнюю
строку меню и активизировать пункт Solve.
Следующий 6 0пример иллюстрирует задание 6 0 функции 6 0пользователя,
содержащей 6 0вычисление 6 0опрделенного 6 0интеграла. 6 0В данном случае вы-
числяется 6 0путь, пройденной объектом 6 0с 6 0постоянным ускорением. При
такой 6 0записи 6 0задачи 6 0используя пункт меню Graph 6 0можно 6 0построить
график пройденного пути.
v(t)=7*t+5
s1=integ(v(t),t,0,4)
s(tp)=integ(7*t+5,t,0,tp)
Если с помощью функций вычисления 6 0 интегралов 6 0и 6 0производных
задаются 6 0функции 6 0пользователя, то 6 0 нужно 6 0необходимые 6 0 функциональ-
ные 6 0зависимости задавать после открывающей 6 0скобки 6 0списка 6 0 аргу-
ментво. 6 0 В 6 0противном 6 0 случае могут 6 0 возникать 6 0 больше погрешности
из-за неучета особого статуса переменных.
С 6 0 помощью 6 0 системы 6 0Eure 6k 0a 6 0можно 6 0вычислять и кратные интегралы.
При 6 0 этом может потребоваться 6 0 использование 6 0команды 6 0Interate 6 0для
уточнения 6 0вычислений, заканчивающих 6 0из-за 6ис 0черпания лимита 6 0времени.
Для вычисления кратных интегралов:
46 8 6 42 4 6
7! ! 6 7! ! !
72 2 6 e 5xy 6 dxdy и 7 6 72 2 2 6 xyz dxdydz
71 1 6 71 1 1
55 7.3 6 51 3 5
в окне редактирования должна быть записана следующая информа-
ция:
6I=integ(integ(exp(x*y),x,7.3,8),y,5,6)
6P=integ(x*integ(y*integ(z,z,1,2),y,3,4),x,5,6)
II) Приближение функций методом наименьших квадратов.
7\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
а) Пусть 7 0функция 7 0y=f(x) задана 7 0таблицей 7 0приближенных значений
y 4i 7~ 0f(x 4i 0), 7 0i=0,1,...,n 4 0полученных с ошибкой 7e 4i 0=y 4i 5* 0-y 4i 0, где 6 y 4i 5* 6=f(x 4i 6)
Используем для аппроксимации функции f линейную модель:
6y 7 6= 7 F 4m 6(x) 7 = 6 a 40 7f 40 6(x) + a 41 7f 41 6(x) +...+ a 4m 7f 4m 6(x)
Здесь 6 7f 40 6(x), 7f 41 6(x),..., 7f 4m 6(x) 0- 6система фундаментальных функций,
6a 40 6,a 41 6,...,a 4m 6 - 0 6искомые 0параметры 6 0модели, 6 0являющиеся коэффициентами
обощенного многочлена 7 F 4m 6(x).
Теперь мы можем записать систему приближенных неравенств:
6a 40 7f 40 6(x 40 6) + a 41 7f 41 6(x 40 6) +...+ a 4m 7f 4m 6(x 40 6) 7~ 6 y 40
6a 40 7f 40 6(x 41 6) + a 41 7f 41 6(x 41 6) +...+ a 4m 7f 4m 6(x 41 6) 7~ 6 y 41
6.......................................
6a 40 7f 40 6(x 4n 6) + a 41 7f 41 6(x 4n 6) +...+ a 4m 7f 4m 6(x 4n 6) 7~ 6 y 4n
6и 0ли в матричном виде : Pa=y.
В 6 0качестве 6 0критерия 6 0для 6 0выбора 6 0параметров 6 0a 40 0,a 41 0,...,a 4m 0в
методе наименьших квадратов используется min S(a,y), где
6n 0 6┌ m ┐ 52
6────┐ │ ────┐ │
6S(a,y) = \ │ \ a 4j 7f 4j 6(x 4i 6) - y 4i 6│ , где a=(a 40 6,a 41 6,...,a 4m 6)
6/ │ / │
6────┘ │ ────┘ │
6i=0 0 6└ j=0 ┘
Простейший 6 0 способ 6 0решения 6 0этой задачи 6 0состоит в использовании
необходимого условия экстремума 6функции S 0:
6dS
6──── = 0 , k=0,1,...,n
6da 4k
6Вычисляя частные производные и меняя порядок суммирования при-
6ходим к системе линейных алгебраических уравнений :
6m 0 6┌ n 4 6┐ n
6─────┐ │ ─────┐ 4 6 │ ─────┐
6\ │ \ 7 f 4j 6(x 4i 6) 7f 4k 6(x 4i 6)│ a 4j 6 = \ 4 6 y 4i 7f 4k 6(x 4i 6) , (k=0,1,...,n)
6/ │ / 4 6 │ 4 6/
6─────┘ │ ─────┘ 4 6│ 4 6─────┘
6j=0 0 6└ i=0 4 6┘ i=0
которая 4 0называется нормальной системой метода наименьших 4 0квадратов.
В матричном виде эту систему можно записать так:
6P 5T 6Pa = Py 5 6Обозначим: 5 6 P 5T 6P = Г и P 5T 6y = b , тогда
6Гa = b (5)
Искомые параметры 6a 40 6,a 41 6,...,a 4m 0 являются решении системы (5).
Если 6 0 при аппроксимации 6 0 функции y=f(x) используется 6 0 модель
g(x,a), 6 0где g(x,a) 6 0нелинейно зависит 6 0от 6 0параметров 6 0a 40 0,a 41 0,...,a 4m 0,
то применение критерия наименьших квадратов приводит к задаче оп-
ределния искомых параметров из условия минимума функции
6n
6─────┐ ┌ 4 6┐ 52
6S(a,y) = \ │ g(x 4i 6,a) - y 4i 6│
6/ │ 4 6│
6─────┘ └ 4 6┘
6i=0
Такая 4 0 задача 4 0весьма трудна для решения и требует 4 0специальных
методов 4 0минизации для 4 0нахождения 4 0параметров, однако 4 0в некоторых
случаях 4 0нелинейную задачу 4 0можно 4 0свести к 4 0линейной. Пусть, напри-
мер, зависимость y от x ищется в виде y=ae 5bx 0, где a>0. 4 0Логарифмируя
это 6 0равенство, 6 0 приходим 6 0к 6 0линейной 6 0зависимости 6 0ln 6( 0y 6) 0=ln 6(a)+bx
велечины 6 Y 0=ln 6( 0y 6) 0 от 6 0 x.
б) Рассмотрим несколько примеров решения указанной выше 6 0задачи в
системе Eure 6k 0a.
_Пример1
Пусть имеется ряд точек 6 0(x 41 0,y 41 0),(x 42 0,y 42 0),...(x 4n 0,y 4n 0) и надо 6 0подо 6-
брать коэффициенты a и b линейной зависимости:
6y(x)=a+bx т.е. 7 f 40 6(x)=1, 7 f 41 6(x)=x (6)
такими, чтобы 6 0 прямая 6 0y(x) 6 0 прошла в "облаке" 6 0точек 6 0с 6 0наименьшим
6общим 0среднеквадратичным 6 0отключением от них. Зависимость (6) приб-
лиженная 6 0поэтому 6 0вместо знака 6 0точного равенства 6 0надо использовать
знак :=. 6 0 Чтобы 6 0отдать системе 6 0команду 6 на 0 решения методом наимень-
ших 6 0квадратов 6 0необходимо 6 0указать 6 0директиву $ substlevel=0. Пусть
координаты 6 0заданных точек таковы 6 0: 6 0(7,4 6. 05),(9,7),(11,8),(15,9 6. 07),
тогда в окне Edit должна быть сделана следующая запись
f(x):=a+b 6*x
f(7)=4.5:f(9)=7:f(11)=8:f(15)=9.7
$ substlevel=0
После 6 0этого для 6 0получения решения 6 0 6н 0адо подняться 6 0в верхнюю 6 0стороку
меню и активизировать пункт Solve.
_Пример 2
Заданная линейная зависимость иммет более сложный вид:
y(x)=ax 53 0+be 5x 0+c 6(1/x) 7 6 0 т.е. 7f 40 0(x)=x 53 0, 7f 41 0(x)=e 5x 0, 7f 42 0(x)=1/x
При этом записать в окне Edit будет иметь следующий вид:
f(x):=a*f1(x)+b*f2(x)+c*f3(x)
f1(x)=x^3 4 0: 4 0f2(x)=exp(x) 4 0: 4 0f3(x)=1/x
f(3)=7 4 0: 4 0f(4)=5.7 4 0: 4 0f(5)=4.7 4 0: 4 0f(6.3)=6.4
f(8.1)=7.54 4 0: 4 0f(9)=8.74
$ substlevel=0
_Пример 3
Заданная 6 0нелинейная 6 0зависимость 6 0имеет 6 0вид: 6 0y(x)=e 5t 6, 5 6где t=ax 5n 6+b
Ecли в окне Edit сделана запись:
f(x):=exp(a*x^n+b)
f(1)=1.49:f(2)=2.35:f(3)=4.26
f(4)=8.59:f(5)=19.01
$ substlevel=0
, то в качестве ответа будут получены значения:
a=0.25247859 6, 0b=0.14432727 6, 0 6n 0=1.4951058
6C 0истема 7 0 Eure 6k 0ca находит неизвестные параметры и для 7 0 более
сложных зависимостей например y(x)=ae 5-bx 0+ab.
Eще один выжный вид аппроксимационной зависимости 6 0- 6 0полиномальная
зависимость y(x)=a 4m 0x 5m 0+...a 41 0x+a 40 0. Количество пар 6задан 0ных точек должно
превышать 6 0 m+1. Если 6 0оно 6 0равно 6 0этой 6 0велечине, то 6 0реализуется 6 0 не
регрессия, а обчная полиномиальная аппроксимация.
6III) Решение дифференциальных уравнений.
7\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
а) Система Eure 6k 0a 6 0не приспособлена для 6 0решения диф. уравнений.
Однако, в некоторых случаях система может решать задачу Кош 6и 0 6 0методом
Э 6й 0лера. При 6 0этом 6 0прийдется 6 0 ограничит 6ь 0ся несколькими (7-8) точками,
поскольку в 6 0 противном 6 0случае 6 в 0озможности 6 0 системы 6 0 преобразовывать
переменные и подставлять их друг в друга будут исчерпаны. 6 0Отсутствие
в языке системы операторов 6 организации циклов усложняет задачу. Кроме
6того переменные в системе Eureka переопределить нельзя, что иллюстри-
6руется примером. Пусть в окне Edit записана приведенная ниже информа-
6ция.
6y=7
6p(y)=sin(y)*exp(y)
6p1=p(4)
6y1=y
6y=847
6y2=y
6При этом в окне Solution после решения появляются следующие зна-
6чения переменных : y=7 , y1=7 и y2=7. Значение p1=p(4) будет вычис-
6лено верно.
6б) Приближенное решение задачи Коши методом Эйлера заключается
6в приближенном решении диф. уравнения y 4x 5' 6=f(x,y(x)), удовлетворяющем
6начальному условию y(x 40 6)=y 40 6. Сеточное решение задачи состоит в пост-
6роении 4 6таблицы 4 6приближенных 4 6значений 4 6y 41 6,y 42 6,...,y 4n 6 4 6в 4 6 точках
6x 41 6,x 42 6,...,x 4n 6. 4 6Чаще всего x 4i 6=x 40 6+ih 4 6, i=1,2,...,n. Точки x 4i 6 называются
6узлами сетки, a h - шагом сетки (h>0).
6В методе Эйлера y 4i+1 6 вычисляется по формуле:
6y 4i+1 6= 4 6y 4i 6+ 4 6hf(x 4i 6,y 4i 6) , i=0,1,.....
6Этот метод относится к группе одношаговых методов, в которых для
6расчета точки (x 4i+1 6,y 4i+1 6) требуется информация только о последней вы-
6численной точке (x 4i 6,y 4i 6).
6Метод имеет простую геометрическую интерпритацию. Предположим, что
6известна точка (x 4i 6,y 4i 6) на искомой интегральной кривой. Тогда каса-
6тельная к этой кривой, проходящая через точку (x 4i 6,y 4i 6) определяется
6уравнением:
6z(x)=y 4i 6+ y 4x 5' 6(x 4i 6)(x-x 4i 6) ,а т.к. 5 6y 4x 5' 6(x 4i 6)=f(x 4i 6,y 4i 6) 4 6и 4 6 x 4i+1 6-x 4i 6=h ,
6то z(x 4i+1 6) = y 4i 6+ hf(x 4i 6,y 4i 6)=y 4i+1
6в) Запишем в качестве примера следующее диф. уравнение: y 5' 6-y = e 5x
6с начальными условиями x 40 6=3 , y(x 40 6)=y 40 6=4e 53 6 , где e 7 ~ 6 2.71828....
6Точным решением этого диф. уравнения является функция 5 6y = (x + 1)e 5x 6.
6Выберем шаг сетки h = 0.05 . В этом случае для решения диф. уравне-
6ния методом Эйлера в окне Edit должна быть сделана следующая запись:
6f(x,y)=exp(x)+y
6h=0.05 : x0=3 : y0=4*exp(3)
6y1=y0+h*f(x0,y0) : x1=x0+h
6y2=y1+h*f(x1,y1) : x2=x1+h
6y3=y2+h*f(x2,y2) : x3=x2+h
6y4=y3+h*f(x3,y3) : x4=x3+h
6y5=y4+h*f(x4,y4) : x5=x4+h
6y6=y5+h*f(x5,y5) : x6=x5+h
6y7=y6+h*f(x6,y6) : x7=x6+h
6Задание
6───────────
6а) Найдите точное решение предложенного вам диф. уравнения.
6б) Найдите при помощи системы Eureka сетечное решение
6диф. уравнения методом Эйлера.
6в) Получите приближенное решение диф. уравнения в аналитичес-
6кой форме используя для этого предложенную вам аппроксимационную за-
6висимость.
6г) Определите площадь, заключенную между графиком точного и
6графиком 0 6приближенного решения на отрезке сеточного решения.
6д) Определите площадь, заключенную между графиком точного ре-
6шения и осью 0x на отрезке сеточного решения.
6e) Определите в процентах отношение площади, вычисленной в
6пункте (г), к площади, вычисленной в пункте (д).
Документ
Категория
Программное обеспечение
Просмотров
57
Размер файла
77 Кб
Теги
лабораторная
1/--страниц
Пожаловаться на содержимое документа