Лабораторная работа 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 ¦
6L - L -
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`
6L - L -
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¦
6L - L -
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 ¦
6L 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
рерывна
в U 4r 0(x 5* 0) и
0
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 ¦
6L
-
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>
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
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)
= ¦--------,...., ---------¦ , указывает направление
6L
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
¦
6L
-
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¦
6L
i=1 j=1 4 6-x 4k L 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¦
6L
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
L 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
L 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
L 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 ¦
6L
-
Здесь
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
тонн.
Данные о расходах материалов на
производство одной тонны каждой
разновидности
продукта сведены в таблицу.
------------------T-------------T-----------T-----------T------------¬
¦ 6--¬Расход
матери- 0¦ ¦ ¦ ¦
¦
6¦
L--¬ала на 0 6одну 0¦ ¦
¦ ¦ ¦
6¦Раз- 0
6L--¬тонну 0 6¦ 0 I-го ¦
II-го ¦ III-го ¦ IV-го ¦
¦ 6новидно-L---¬ 0
6¦ 0 ¦ ¦ ¦
¦
¦ 6сти
продуктаL---- 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 тонны ¦
L-----------------+-------------+-----------+-----------+-------------
Требуется
найти оптимальное (в смысле максимизации
прибыли) коли-
чество
каждого вида изготавливаемого продукта
при условии, что стои-
мости
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
L -
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
L 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
L 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
L -
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
интегралов:
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 ------ ¦
6L
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 ------ ¦
6L
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
6L 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
6L 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------
L 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пункте
(г), к площади, вычисленной в пункте
(д).
РАБОТА
В СИСТЕМЕ EUREKA.
Введение
Интегрированная
многооконная система Eureka предназначена
для
решения
не очень сложных и часто встречающихся
математических
задач.
С
помощью системы Eureka можно решать
следующие задачи:
1)
Решение нелинейного уравнения;
2)
Вычисление корней полинома;
3)
Вычисление определенного интеграла;
4)
Вычисление производных функции;
5)
Поиск экстремумов функций одной или
многих
переменных;
6)
Решение системы линейных уравнений;
7)
Решение системы нелинейных уравнений;
8)
Аппроксимация функций;
9)
Интерполяция функций;
10)
Линейное и нелинейное программирование;
Система
объединяет: редактор, вычислитель,
верификатор (проверяет
правильность
вычислений),генератор отчетов и простой
графопостро-
итель.Система
ориентирована на ПК класса IBM PC XT и AT и
может
размещаться
на одном гибком диске объемом до 360
Кбайт. Система
может
работать на ПК без математического
сопроцессора, однако
его
использование значительно повышает
скорость работы.
Загрузка
системы
Необходимо
выполнить файл eureka.exe.
После
запуска на экране монитора появляется
табло оболочки
системы.
Экран оказывается разделенным на четыре
окна:
Edit
- для ввода и редактирования текста
задачи;
Solution
- для вывода результатов;
Report
- для вывода отчета о вычислениях на
экран,принтер
или
в файл с расширением log;
Verify
- для проверки точности результата.
Окно
в пассивном состоянии обведено одинарной
рамкой,а в ак-
тивном
- двойной.Курсор располагается в активном
окне.
.
-
2 -
Меню
системы
Кроме
окон, табло оболочки содержит верхнюю
и нижнюю строки
меню.
В
верхней строке оболочки перечисляются
позиции основного
меню
системы:
File
- работа с файлами;
Edit
- редактирование текущего файла;
Solve
- запуск вычислителя;
Commands
- выбор команды управления;
Report
- подготовка отчета;
Graph
- вывод графиков и таблиц;
Options
- задание опций системы;
Window
- работа с окнами.
Переход
в верхнюю строку меню выполняется
клавишей ESC.
Нижняя
строка меню показывает возможности
работы с ключевыми
клавишами
(hot keys). Ee содержимое может меняться в
зависимости
от
режима работы системы.Наибольший интерес
эта строка представ-
ляет
в режиме редактирования.В этом случае
она предлагает следую-
щие
команды:
F1
- Help - помощь по контексту ( можно получать
в любой по-
зиции
меню и подменю);
F2
- Save - запись текущего файла на диск;
F3
- Load - загрузка файла с диска;
F5
- Zoom - расширение активного окна на весь
экран и воз-
вращение
его (при повторном нажатии) к исходным
размерам;
F6
- Next - переключение активности окон (по
циклу);
F7
- BegBek - отметка начала блока;
F8
- EndBek - отметка конца блока;
SCROOL
- Size/move - изменение размера и положения
окна.
Нажатие
клавиш Ctrl и Alt приводит к высвечиванию
иных клю-
чевых
клавиш.
Esc
- отмена команды (переход в вышестоящее
меню);
Alt+E
- переход в окно редактирования;
Alt+S
- начать решение задачи;
Alt+C
- включить встроенный калькулятор;
Alt+X
- выход из системы.
.
-
3 -
Операции
с файлами
Если
активировать в верхней строке позицию
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 - поиск другого решения (Т.к. итерационные
методы
.
-
4 -
приводят
только к одному из возможных решений,
то
для нахождения других надо исключить
найден-
ное
и заново решить задачу. Именно это и
делает
данная
команда. При этом радиус поиска иного
решения
задается установкой: radius = действи-
тельное
число. По умолчанию радиус равен нулю.);
Iterate
- пуск итераций после остановки решения
(Команда ис-
пользуется
для уточнения найденного решения при
условии,
что заданная точность не достигнута,
а
время
отведенное на процесс решения закончено).
Формирование
отчета
Отчет
содержит: титул, листинг программы,
результат решения и
его
верификации и график заданной функции.
Пятая
позиция верхней строки ( Report ) открывает
следующее
подменю:
Go
- составление отчета (результат этой
команды появляется в
окне
Report);
Output
- направление вывода отчета (экран,
принтер);
Formatted
- форматирование отчета;
Capture
- запись отчета в файл eureka.log ( По запросу
EUREKA.LOG
EXIST.A TO ADD,E TO ERASE
этот
файл можно дополнить или стереть. При
включенной
команде в строке переключений
будет
стоять ON, иначе OFF);
Logfile
name - изменение имени log-файла.
Построение
графика
Подменю
шестой позиции верхней строки ( Gragh )
состоит из
четырех
пунктов:
Plot
- построение графика ;
Output
- вывод графика на экран или принтер;
List
- вывод таблицы ;
Function
- задание функции, которую надо построить.
Опишем
последовательность действий, необходимых
для построе-
ния
графика функции более подробно.
Способ
N 1
.
-
5 -
Активизируйте
(т.е. подведите курсор и нажмите Enter)
пункт
верхнего
меню под названием - Graph. В открывшемся
подменю акти-
визируйте
пункт - Function. В появившуюся после этого
строку вве-
дите
название вашей функции (например y(x)
или ab) и нажмите En-
ter.
Во вновь появившуюся строку введите
определение вашей функ-
ции
(например sin(x)+x^2) и нажмите Enter. После
этого активизи-
руйте
пункт подменю с названием - Plot. В
появившуюся строку вве-
дите
начало интервала построения графика
и нажмите Enter. Во
вновь
появившееся окно введите конец интервала
и нажмите Enter. В
результате
всех перечисленных действий на дисплее
появится окно,
содержащее
график, выполненный символами
псевдографики. Если те-
перь
нажать F5, то график перерисуется на
весь экран при помощи
истинной
графики. Повторное нажатие F5 приводит
к возвращению эк-
рана
в состояние,существовавшее до первого
нажатия этой клавиши.
График
может быть перерисован на весь экран в
символах псевдогра-
фики,
если перед F5 была нажата клавиша F4. При
этом, для того
чтобы
вернуться в режим, позволяющий использовать
истинную графи-
ку,
необходимо нажать F7.
Способ
N 2
Войдите
в окно Edit. Запишите в нем определение
одной или не-
скольких
функций (например:
z(x)=sin(x)+x^2
p(x)=deriv(deriv(5*cos(x),x),x)
m(x)=1/x
)
и
любую вычислительную задачу (например
t=z(1)).
Поднимитесь
в верхнюю строку меню и активизируйте
в ней пункт
Solve.
После того, как вычислительная задача
будет решена активи-
зируйте
пункт меню Graph. В открывшемся подменю
активизируйте
пункт
Plot. При этом появится меню, позволяющее
выбрать функцию
(из
числа определенных в окне Edit) для
построения графика. Выбор
функции
осуществляется при помощи курсора. Его
надо подвести к
названию
функции и нажать Enter. Далее выполняются
те же дейс-
твия,
что и в 1-ом способе после активизации
пункта Plot.
Если
возникает потребность в построении
графика другой функ-
ции
(из числа определенных в окне Edit), то
необходимо: войти в
окно
Edit, выйти из этого окна (при этом
редактировать записи не
обязательно),
активизировать пункт Solve и далее
повторить опи-
санные
выше действия.
.
-
6 -
Примечание:
Для вывода на экран функции в табличном
виде при-
годны
оба описанных выше способа. Отличием
является только то,
что
вместо пункта Plot активизируется пункт
List. При этом Eureka
потребует
ввести: начало интервала вычислений,
шаг вычисления и
число
точек, в которых вычисляются значения
функции.
Параметры
системы
Седьмая
позиция верхней строки (Options) имеет
следующее под-
меню:
Variables
- изменение значений переменных без
вхождения в
редактор;
Settings
- задание установок системы:
accuracy
- задание погрешности вычислений;
complex
[yes/no] - с параметром yes разрешает
вычисления
с комплексными числами;
casefold
[yes/no] - с параметром yes отменяет
имеющееся
по умолчанию различия между пропис-
ными
и строчными буквами;
digits
- определяет число цифр у результатов
вычи-
слений;
substlevel=n
- задает количество преобразований
переменных,в
ходе которых одни переменные автома-
тически
выражаются через другие. При n = 0 такие
преобразования
не выполняются. Допустимые значения
n:
0,1,2,....,6. По умолчанию эта установка
равна
шести.
Если задача не решается или решается
пло-
хо,
то варьирование n в указанных пределах
в ряде
случаев
улучшает ситуацию. Так, в задаче N14 для
самостоятельной
работы рекомендуется в качестве
первой
строки листинга записать $ substlevel=2 .
Кроме
перечисленных, этот пункт подменю содер-
жит
еще ряд установок, о назначении которых
можно
узнать,
воспользовавшись клавишей F1 (т.е. Help).
Сolors
- установка окраски окон, рамок и текстов;
Directories
- установка директории (Система и
отдельные фай-
лы
могут храниться в разных директориях.В
этом
случае
нужно указать системе, где находятся
ее
файлы
и файлы с примерами расчетов.);
Load
SETUP - загрузка установочного файла;
Write
SETUP - запись установочного файла.
.
-
7 -
Работа
с окнами
Восьмая
позиция верхней строки (Window) также имеет
подменю:
Open
- открывает активное или указанное окно;
Close
- закрывает активное или указанное окно;
Next
- делает активным следующее окно;
Zoom
- расширяет активное окно;
Tile
- делает размеры окон равными;
Stack
- располагает окна друг за другом;
Goto
- переход в активное окно из меню.
Сведения
о системе
Eureka
имеет следующие ограничения:
-
максимальная длина идентификатора до
40 символов,из них 10
являются
основными;
-
число определенных пользователем
функций не более 10;
-
число используемых числовых констант
не более 200;
-
число переменных не более 12;
-
число подстановок одних переменных в
другие до 6.
При
этом может использоваться подстановка
одних переменных в
другие,
нередко сводящая задачу к точному
решению.
Алфавит
системы Eureka содержит стандартный набор
символов.
Это
латинские прописные (от А до Z) и строчные
(от а до z) буквы,
а
также ряд спецзнаков:
:
- разделитель для выражений размещенных
в одной строке;
;
- отмечает начало строки комментария;
{
} - внутри скобок размещается комментарий;
[]
- используется для работы с размерными
комментариями;
$
- указывает, что следующее слово -
директива (установка);
=
- операция присваивания;
:=
- задание (определение) функции
пользователя или началь-
ных
значений переменных.
Длинные
выражения после символа арифметической
операции мож-
но
переносить на другую строку.
Eureka
может производить следующие операции:
+
сложение;
-
вычитание;
.
-
8 -
*
умножение;
/
деление;
^
возведение в степень;
()
изменение приоритета операций;
<
меньше; > больше; <= меньше или равно;
>= больше или равно.
Элементарные
функции
Eureka
имеет функции re(z) и im(z), возвращающие
действи-
тельную
и мнимую части комплексного числа
z=x+iy. Перед примене-
нием
этих функций необходимо ввести
директиву: $ complex=yes
и
обозначить мнимую единицу i^2=-1 или i =
sqrt(-1).
abs(z)
- модуль ; exp(z) - вычисление e=2,71828... в
степени z;
floor(x)
- целая часть х; ln(z) - вычисление
натурального ло-
гарифма
z; log10(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.
Кроме
перечисленных выше функций Eureka имеет
еще ряд функций
и
процедур:
fact(n)
- вычисление факториала числа n;
ncum(x)
- вычисляет специальную функцию ошибок
Р(х) для нор-
мального
распределения;
sum(f(i),i,n,k)
- вычисляет сумму f(i) при индексе i, меняю-
щемся
от n до k.
В
системе Eureka пользователь имеет возможность
задавать не-
обходимые
ему функции через имеющиеся встроенные.
Функции пользо-
вателя
задаются в виде:
Имя
функции (список переменных) = выражение
или
Имя
функции (список переменных) := выражение
Вторая
форма используется, если заданная
функциональная за-
висимость
рассматривается как приближенная.
.
-
9 -
--------------------------------------------------------------¬
¦
Примеры задач решаемых системой
EUREKA. ¦
¦
------------------------------------------- ¦
L--------------------------------------------------------------
Пример
N1
------------
Решить
нелинейное уравнение: e 5(x^2) 0-5x+1=0.
Решение
Набираем
в окне Edit: exp(x^2)-5*x+1=0. Производим действия
описанные
в пункте " Решение задачи " ( далее
это будет имено-
ваться
" решить задачу ").
Решив
задачу получаем в окне Solution:
Variables
Values
x
= 1.3086594
При
помощи отделения корня можно попробовать
найти другое реше-
ние,
т.е. набрать в окне Edit:
(exp(x^2)-5*x+1)/(x-1.3086594)=0 и
решить
задачу заново. Искать другое решение
можно также при по-
мощи
пункта меню Find other и установки radius.
Пример
N2
------------
Вычислить
корни полинома x 56 0-x 54 0-x 53 0+3x 52 0-1,
т.е. решить уравнение:
x 56 0-x 54 0-x 53 0+3x 52 0-1=0.
Решение
Для
вычисления значений, а также действительных
и комплексных
корней
полинома в системе Eureka существует
специальная функция:
poly(x,an,......,a0).
Набираем
в окне Edit:
$
settings ; Начало блока установок
complex=yes
; Работать с комплексными числами
accuracy=1.0e-9
; Задаваемая точность вычислений
digits=8
; Количество знаков у результатов
вычислений
$
end ; Конец блока установок
i=sqrt(-1)
; Определение мнимой единицы
p(x):=poly(x,1,0,-1,-1,3,0,-1)
Решив
задачу получаем в окне Solution:
.
-
10 -
Roots
to the polynomial p
#
Real part Imaginary part
1
0.69807525 0.0000000
2
-0.54737816 0.0000000
3
0.94982970 0.6507578
4
0.94982970 -0.6507578
5
-1.0251783 0.9608054
6
-1.0251783 -0.9608054
После
нахождения корней сделаем выборочную
проверку. Подста-
вив
первый, третий и четвертый корни в
полином. Для этого сделаем
в
окне Edit следующие записи:
$
settings
complex=yes
accuracy=1.0e-9
digits=8
$
end
i=sqrt(-1)
a=0.69807525
z1=a^6-a^4-a^3+3*a^2-1
b=0.94982970+0.6507578*i
c=0.94982970-0.6507578*i
z2=b*b*b*b*b*b-b*b*b*b-b*b*b+3*b*b-1
z3=c*c*c*c*c*c-c*c*c*c-c*c*c+3*c*c-1
Решив
задачу убеждаемся в том, что значения
полинома в выбран-
ных
точках практически равны нулю. К
сожалению другая форма
записи
при работе с комплексными числами в
системе Eureka может
привести
к ошибочному результату. Если Eureka
выдает сообще-
ние
" Error 5: too many formulas ", проверяем корни
по очереди
порциями,
доступными для обработки системой.
Пример
N3
-------------
4_____
Вычислить
производную функции
f(x)=3lg(x)- 7? 0(x/2)+x 52 0 в
точке
0,5.
.
-
11 -
Решение
Т.к.
в системе Eureka надежнее работает функция
вычисляющая
натуральный
логарифм, то выразим десятичный логарифм
через отно-
шение
натуральных: lg(x)=ln(x)/ln(10).
Набираем
в окне Edit:
a=1/ln(10)
f(x)=3*a*ln(x)-sqrt(x/2)+x^2
x=0.5
z=deriv(f(x),x)
Решив
задачу получаем в окне Solution:
Variables
Values
a
= 0.43429448
x
= 0.50000000
z
= 3.1057669
Пример
4
-----------
lg(1+x)
Вычислить
интеграл от функции f(x)= 7 \\\\\\\ 0 на
интервале [0,1].
(1+x 52)
Решение
Набираем
в окне Edit:
a=1/ln(10)
f(x)=a*ln(1+x)/(1+x^2)
z=integ(f(x),x,0,1)
Решив
задачу получаем в окне Solution:
Variables
Values
a
= 0.43429448
z
= 0.11821420
Пример
5
-----------
Проверить,что
при ¦ a ¦ <= 0,9 выполняется равенство:
7p
7! 0
sin 52 0(x) 7 p
72 0
7\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 0 dx = 7 \\\
71 0
1 + 2 a cos x + a 52 0 2
50
.
-
12 -
Равенство
проверить в точках a = -0,9;-0,45;0;0,45;0,9.
Решение
Набираем
в окне Edit:
t=3.1415926/2
f(a,x)=sin(x)^2/(1+2*a*cos(x)+a^2)
t1=-0.9
: i1=integ(f(t1,x),x,0,3.1415926)
t2=-0.45
: i2=integ(f(t2,x),x,0,3.1415926)
t3=0
: i3=integ(f(t3,x),x,0,3.1415926)
t4=0.45
: i4=integ(f(t4,x),x,0,3.1415926)
t5=0.9
: i5=integ(f(t5,x),x,0,3.1415926)
Решив
задачу получаем в окне Solution:
Variables
Values
i1
= 1.5707963
i2
= 1.5707963
i3
= 1.5707963
i4
= 1.5707963
i5
= 1.5707963
k
= 1.5707963
t1
= -0.9000000
t2
= -0.4500000
t3
= 0.0000000
t4
= 0.4500000
t5
= 0.9000000
Пример
6
-----------
Eureka
позволяет решать задачу поиска
экстремума функции при
помощи
задания директив: $min и $max. При этом,
если функция
имеет
несколько экстремумов, то для нахождения
того, который ну-
жен,
имеет смысл нарисовать график функции
и исходя из этого гра-
фика
задать начальные приближения и
ограничения для поиска
экстремума.
В противном случае поиск экстремума
будет происходить
от
начальных значений, заданных системой
Eureka по умолчанию и
может
привести не к тому экстремуму, который
хотелось бы найти.
Вычислить
максимум функции f(x)=5xe 5(-x/2) 0(2+sin(3x)),
причем
он
должен быть больше 10.
.
-
13 -
Набираем
в окне Edit:
$
max (T)
V(x)=5*x*exp(-x/2)*(2+sin(3*x))
x:=2
V(x)>10
T=V(x)
Решив
задачу получаем в окне Solution:
Variables
Values
T
= 10.629942
x
= 2.5805009
Пример
7
-----------
Вычислить
минимум функции f(x)=x 52 0+y 52 0+z 52 0-1.
Набираем
в окне Edit:
$
min (Fxyz)
F(x,y,z)
= x^2 +y^2 +z^2 -1
Fxyz
= F(x,y,z)
Решив
задачу получаем в окне Solution:
Variables
Values
Fxyz
= -1.0000
x
= 6.1257e-13
y
= -1.3030e-12
z
= -5.9622e-14
Пример
8
-----------
Имеется
квадратный лист бумаги со стороной
a. Из листа
делается
коробка следующим образом: по углам
листа вырезаются
четыре
квадрата и коробка cклеивается по
швам. Какова должна
быть
сторона вырезаемого квадрата, чтобы
коробка имела наибольшую
вместимость.
Решить задачу при a=6.
.
-
14 -
Набираем
в окне Edit:
$
settings
accuracy=1.0e-12
$
end
$
Max(Y)
a=6
G(x)=x*(a-2*x)^2
Y=G(x)
: 0
Решив
задачу получаем в окне Solution:
Variables
Values
a
= 6.0000000
x
= 1.0000000
Y
= 16.0000000
Пример
9
----------- 7
7(
72
0 2x + 3y + z = 11
Решить
систему линейны уравнений: 7 0
7* 0x + y + z = 4
72 0
7x - 2y - 3z = -37
Решение 7
9
Набираем
в окне Edit:
2*x+3*y+z=11
x+y+z=4
7*x-2*y-3*z=-37
Решив
задачу получаем в окне Solution:
Variables
Values
x
= -3.000000
y
= 5.000000
z
= 2.000000
.
-
15 -
Пример
10
------------
¦
5 7 ¦
Вычислить
матрицу обратную к заданной A=¦ ¦ .
¦
2 3 ¦
Решение
Система
Eureka не имеет специальной функции для
вычисления
обратной
матрицы. Однако нам известно, что:
A*A 5-1 0=E. Т.е. :
¦
5 7 ¦ ¦ a b ¦ ¦ 1 0 ¦
¦
¦ * ¦ ¦ = ¦ ¦ или
¦
2 3 ¦ ¦ c d ¦ ¦ 0 1 ¦
¦
5 7 ¦ ¦ a ¦ ¦ 1 ¦ ¦ 5 7 ¦ ¦ b ¦ ¦ 0 ¦
¦
¦ * ¦ ¦ = ¦ ¦ и ¦ ¦ * ¦ ¦ = ¦ ¦
¦
2 3 ¦ ¦ c ¦ ¦ 0 ¦ ¦ 2 3 ¦ ¦ d ¦ ¦ 1 ¦
Набираем
в окне Edit:
5*a+7*c=1
2*a+3*c=0
5*b+7*d=0
2*b+3*d=1
Решив
задачу получаем в окне Solution:
Variables
Values
a
= 3.000000
b
= -7.000000
c
= -2.000000
d
= 5.000000
Пример
11
------------
7(
72 0
7 0e 52x 0 + sin(3x) - y 52 0 = 0
Решить
систему нелинейных уравнений: 7*
72 0
x 53 0 + 7*y + tg(5*x 52 0) = 0
79
при
начальных условиях x 40 0=-1
y 40 0=0,3.
.
-
16 -
Набираем
в окне Edit:
exp(2*x)+sin(3*x)-y^2=0
x^3+7*y+tan(5*x^2)=0
x:=-1
: y:=0.3
Решив
задачу получаем в окне Solution:
Variables
Values
x
= -1.0414127
y
= 0.32744950
Пример
12
------------
Получены
экспериментальные данные зависимости
твердости по
Бринеллю
Hb от степени деформации e для одного
из сортов стали.
Эти
данные представлены в следующей таблице:
------T-----T-----T-----T-----T-----T-----T-----T-----T-----¬
¦
e ¦ 5 ¦ 10 ¦ 15 ¦ 20 ¦ 25 ¦ 30 ¦ 40 ¦ 50 ¦ 60 ¦
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
¦
Hb ¦ 130 ¦ 141 ¦ 152 ¦ 163 ¦ 170 ¦ 180 ¦ 194 ¦ 206 ¦ 213 ¦
L-----+-----+-----+-----+-----+-----+-----+-----+-----+------
Построить
эмпирическую зависимость вида: Hb(e) =
118 + a*e^b.
Вычислить
Hb(e) при e=25 для полученной зависимости.
Набираем
в окне Edit:
Hb(e)
= 118 + a*e^b
Hb(5)
= 130 : Hb(10) = 141
Hb(15)
= 152 : Hb(20) = 163
Hb(25)
= 170 : Hb(30) = 180
Hb(40)
= 194 : Hb(50) = 206
Hb(60)
= 213
t
= 25 : y = Hb(t)
Решив
задачу получаем в окне Solution:
Variables
Values
a
= 5.2800065
b
= 0.70583936
t
= 25.00000
y
= 169.21009
.
-
17 -
Пример
13
------------
Функция
задана в виде таблицы. Построить
интерполяционный
полином
Лагранжа и вычислить его значения в
точках: 6,9 и 7,9.
------T-------T-------T-------T-------T-------¬
¦
x ¦ 2 ¦ 4 ¦ 6 ¦ 8 ¦ 10 ¦
+-----+-------+-------+-------+-------+-------+
¦
y ¦ 13,14 ¦ 8,28 ¦ 9,91 ¦ 5,976 ¦ 16,68 ¦
L-----+-------+-------+-------+-------+--------
Если
эмпирическая зависимость имеет вид
полинома и при
этом
число точек заданных в таблице в
точности равно степени
полинома
плюс единица, то система Eureka осуществляет
лагранжеву
интерполяцию.
Набираем
в окне Edit:
L(x)
= a*x^4 + b*x^3 + c*x^2 + d*x + e
L(2)
= 13.14 : L(4) = 8.28
L(6)
= 9.91 : L(8) = 5.97
L(10)
= 16.68
x
= 6.9 : y = L(x)
x1
= 7.9 : y1 = L(x1)
В
окне Solution получаем
Solution
Variables
Values
a
= 0.08406250
b
= -1.93250000
c
= 15.59500000
d
= -51.97750000
e
= 68.83000000
x
= 6.90000000
x1
= 7.90000000
y
= 8.36504340
y1
= 6.11795090
.
-
18 -
----------------------------------------------------¬
¦
Задания для самостоятельной работы
студентов. ¦
L----------------------------------------------------
Задача
1
-----------
Решить
систему линейных уравнений:
7(
72 0
3x + 2z + v = 0
7* 0
-x + 5y + 4z - v = -14
72 0
x +y + z + v = 1
79 0
1,5x + 0,5y + z -7*v = -6,5
Задача
2
-----------
Найти
матрицу обратную к заданной матрице A:
¦
3 4 2 ¦
¦
¦
A
= ¦ 2 3 5 ¦
¦
¦
¦
1 2 9 ¦
Задача
3
-----------
Определить
коэффициенты a, b, c эмпирической
зависимости
y(x)
= ax 52 0 + bx + c.
.
-
19 -
Таблица
экспериментальных данных
------T-----T-------T-----T-------T-----T-----T----¬
¦
¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦
¦
x ¦ 1 ¦ 1,5 ¦ 2 ¦ 2,5 ¦ 3 ¦ 4 ¦ 5 ¦
+-----+-----+-------+-----+-------+-----+-----+----¦
¦
¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦
¦
y ¦ 0,1 ¦ 0,225 ¦ 0,4 ¦ 0,625 ¦ 0,9 ¦ 1,6 ¦ 2,5¦
L-----+-----+-------+-----+-------+-----+-----+-----
Провести
вычисления по полученной формуле
для точек
x
= 1,5;3 и 5.
Задача
4
-----------
Определить
коэффициенты a, b, c и d эмпирической
зависимости
y(x)
= aT 40 0( t ) + bT 41 0( t ) + cT 42 0(
t ) + dT 43 0(t ) , где:
T 40 0(t)=1
, T 41 0(t)=t , T 42 0(t)=2t 52 0-1 ,
T 43 0(t)=4t 53 0-3t.
Таблица
экспериментальных данных
------T------T------T------T------T-------T-------¬
¦
¦ ¦ ¦ ¦ ¦ ¦ ¦
¦
x ¦ 5 ¦ 6 ¦ 7 ¦ 8 ¦ 9 ¦ 10 ¦
+-----+------+------+------+------+-------+-------+
¦
¦ ¦ ¦ ¦ ¦ ¦ ¦
¦
y ¦ 50,3 ¦ 60,1 ¦ 80,3 ¦ 91,9 ¦ 101,1 ¦ 110,6 ¦
L-----+------+------+------+------+-------+--------
Провести
вычисления по полученной формуле
для точек
x
= 6;8 и 10.
Задача
5
-----------
Найти
значения функции f (x), заданной таблично,
в следующих
точках:
.
-
20 -
h
3h 5h 7h 9h
x 41 0+
7\\\ 0 , x 41 0+ 7\\\\ 0 , x 41 0+
7\\\\ 0 , x 41 0+ 7\\\\ 0 , x 41 0+
7\\\\ 0 .
2
2 2 2 2
Исходные
данные:
h
= 0,005 x 41 0 = 1,335
Функция
задана таблицей
------T-------T-------T-------T-------T-------T-------¬
¦
¦ ¦ ¦ ¦ ¦ ¦ ¦
¦
x ¦ 1,335 ¦ 1,340 ¦ 1,345 ¦ 1,350 ¦ 1,355 ¦ 1,360 ¦
+-----+-------+-------+-------+-------+-------+-------+
¦
¦ ¦ ¦ ¦ ¦ ¦ ¦
¦
f(x)¦ 4,162 ¦ 4,256 ¦ 4,353 ¦ 4,455 ¦ 4,562 ¦ 4,673 ¦
L-----+-------+-------+-------+-------+-------+--------
Задача
6
-----------
Методом
обратного интерполирования, найти
значения аргу-
ментов
x, для которых значения функции y=f(x)
известны и равны
4,21
; 4,31 ; 4,41 ; 4,51 ; 4,61 .
Функция
задана таблично
----------T-------T-------T-------T-------T-------T-------¬
¦
¦ ¦ ¦ ¦ ¦ ¦ ¦
¦
x ¦ 1,335 ¦ 1,340 ¦ 1,345 ¦ 1,350 ¦ 1,355 ¦ 1,360 ¦
+---------+-------+-------+-------+-------+-------+-------+
¦
¦ ¦ ¦ ¦ ¦ ¦ ¦
¦
y=f(x) ¦ 4,162 ¦ 4,256 ¦ 4,353 ¦ 4,455 ¦ 4,562 ¦ 4,673 ¦
L---------+-------+-------+-------+-------+-------+--------
Задача
7
-----------
Определить,
все ли корни уравнения
.
-
21 -
x 55 0
+ 0,5x 54 0 - 3x 53 0 + 27x 52 0 +
13,5x - 81 = 0
действительны.
Задача
8
-----------
Проверить,
что при ¦ a ¦ <= 0,9 выполняется равенство
7p
7! 0
sin(x)
72 0
__________________________ dx = 2 .
72 0
7|\\\\\\\\\\\\\\\\\\\\\\
71 0
7? 0 1 - 2 a cos x + a 52
50
Равенство
проверить в точках a = -0,9;-0,45;0;0,45;0,9.
Задача
9
-----------
Проверить
равенство
a
a 52
7! 0
1 7!
72 0
x 53 0 sin(x 52 0) dx = 7\\\ 0
72 0 x sin(x) dx
72 0
2 72
71 0
71
50 0
50
при 5
0a, изменяющемся от 1 до 2 с шагом h =
0,2 .
Задача
10
------------
Определить,
корень какого из уравнений,
7|\\\\\\\ 0
1
7? 0
x + 1 - 7\\\ 0 = 0 7 0 или x 52 0
- sin( 7p 0x) = 0,
x
.
-
22 -
принадлежащий
отрезку [ 0,7 ; 0,8 ], больше ?
Корни
найти с точностью e = 0,00001.
Задача
11
------------
Определить,
корень какого из уравнений,
7(
|\\\\\ )
7
72 0 0,7854- x 7? 0
1-x 52 7 0 72
lg(6x)
- 7\\\\\\\\ 0=0 или
0,3+x-cos 72\\\\\\\\\\\\\\\\\\2 0=0,
6(2x+1)
72 0 7 0 1-x 52 7
0 7 2
79
0 7 0
принадлежащий
отрезку [ 0,5 ; 0,6 ], меньше ?
Корни
найти с точностью e = 0,00001 .
Задача
12
-------------
Найти
решение системы нелинейных уравнений:
7(
0 7|\
72 0
tg(xyz 52 0+ 0,4) - x 52 0 + 7? 0z
- 1 = 0 ,
72
72
7* 0
0,5x 52 0 + 2y 52 0 + z 52 0 - 2 =
0 ,
72
72
72 0
x + y + z - 2,54732 = 0 ,
79
приняв
за начальное приближение точку
(1,1;0,5;0,95)
и
задав точность вычислений е = 0,00001 .
Задача
13
------------
Найти
решение системы нелинейных уравнений:
.
-
23 -
7( 0
7|\\
72 0
e 5XY 0 - x 52 0z 52 0 + y 7? 0z
- 1,5 = 0 ,
72
72 0
7|\
7* 0
( x + 7? 0z - 0,5 ) + y 52 0 - 1 = 0 ,
72
72
72 0
x + y + z - 1,84643 = 0 ,
79
приняв
за начальное приближение точку
(0,4;0,5;0,95)
и
задав точность вычислений е = 0,00001 .
Задача
14
------------
Экспериментальные
данные зависимости относительного
удлине-
ния
от температуры для катанного молибдена
представлены
следующими
таблицами:
Температура
t , гр. C
----------T---------T---------T---------T---------¬
¦
¦ ¦ ¦ ¦ ¦
¦
27 ¦ 327 ¦ 402 ¦ 477 ¦ 627 ¦
+---------+---------+---------+---------+---------+
¦
¦ ¦ ¦ ¦ ¦
¦
777 ¦ 927 ¦ 1077 ¦ 1227 ¦ 1827 ¦
L---------+---------+---------+---------+----------
Относительное
удлинение 7d 0 , %
----------T---------T---------T---------T---------¬
¦
¦ ¦ ¦ ¦ ¦
¦
10 ¦ 7,5 ¦ 6 ¦ 5,5 ¦ 5 ¦
¦---------+---------+---------+---------+---------+
¦
¦ ¦ ¦ ¦ ¦
¦
5 ¦ 5 ¦ 8 ¦ 10 0 ¦ 2 ¦
L---------+---------+---------+---------+----------
Аппроксимировать
экспериментальные данные зависимостью
.
-
24 -
7d 0(t)
= a + b*t + c/t + d*sin(t).
Выполнить
вычисления по полученной зависимости
для
точек
t = 402; 627; 1077; 1827.
Задача
15
------------
Значения
интегрального синуса
x
7! 0
sin(u)
Si(
x ) = 72 0 ------- du
71 0
u
0
даны
в таблице:
---------T------T------T------T------T------T------T------¬
¦
x ¦ 0,000¦ 0,500¦ 1,000¦ 1,500¦ 2,000¦ 2,500¦ 3,000¦
+--------+------+------+------+------+------+------+------+
¦
Si(x) ¦ 0,000¦ 0,493¦ 0,946¦ 1,325¦ 1,605¦ 1,779¦ 1,849¦
L--------+------+------+------+------+------+------+-------
Вычислить
Si ( 2,357 ) при помощи аппроксимирующей
зависимости.
Для сравнения вычислить интеграл
при помо-
щи
встроенной в систему Eureka функции
integ(f(x),x,a,b).
При
вычислении интеграла нижний предел
брать равным 0,0000001.
Задача
16
------------
Значения
полного нормального эллиптического
интеграла
Лежандра
второго рода
7p 0/2
7! 0
7|\\\\\\\\\\\\\\\\\\\
y(t)
= 72 0 7? 0 1 - sin 52 0(t)sin 52 0(x)
dx
71
0
.
-
25 -
даны
в таблице:
---------T-------T------T------T------T------T------T------¬
¦
t ¦ 0,000 ¦ 7p 0/36 ¦ 7p 0/18 ¦
7p 0/12 ¦ 7p 0/9 ¦ 5 7p 0/36¦
7p 0/6 ¦
+--------+-------+------+------+------+------+------+------+
¦
y(t) ¦ 1,571 ¦ 1,568¦ 1,559¦ 1,544¦ 1,524¦ 1,498¦ 1,467¦
L--------+-------+------+------+------+------+------+-------
Методом
обратного интерполирования, вычислить 7
0t
при
y(t) = 1,46 и 1,56.
Проверить
выполнение равенства:
7p 0/2
7!
|\\\\\\\\\\\\\\\\\\
y(t)
- 72 0 7? 0 1 - sin 52 0(t)sin 52 0(x)
dx = 0 .
71
0
при
полученных значениях.
.
-
26 -
Авторы:
Сигитов Евгений Васильевич,
Гопенгауз
Владимир Израильевич
Типография
МГИСиС. Заказ ___________. Тираж 800 экз.