Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Моделирование в Maple11

Читайте также:
  1. D-моделирование в AutoCad 2011.
  2. Имитационное моделирование
  3. Имитационное моделирование рисков на базе метода Монте-Карло
  4. КОМПОЗИЦИОННОЕ МОДЕЛИРОВАНИЕ ТЕОРЕТИЧЕСКИЙ КУРС (Лекции и контрольные)
  5. Математическое моделирование объектов и устройств автоматизации в САПР Требования к математическим моделям
  6. Математическое моделирование процесса движения
  7. Моделирование

 

1. Задаем значения переменных, которые пользователь может изменять, согласно заданию:

1.1. Введём значение точности ε для процедуры на определение корня методом половинного деления:

1.2. Введём значения точностей ε для главной процедуры нахождения вектора корней:

1.3. Введём число итераций, границы отрезка, в пределах которого будет находиться корень при методе половинного деления:

2. Задаем исходную функцию в виде функции двух скалярных переменных:

Задаем исходную функцию в виде функции вектора:

Те переменные, которые используются только в данной процедуре, объявляются как локальные.

3.Задаем начальное приближение в виде вектора из двух строк, поэтому переменная n:=2:

4.Составляем функцию определения частной производной, как функцию двух переменных:

Функция diff(,) состоит из двух аргументов, где первый – то, что дифференцируется, второй – по какой переменной идёт дифференцирование. Функция eval() применяется для полного вычисления выражения, т.е. до числа.

5. Составляем функцию определения частной производной, как функцию вектора:

6. Составляем функцию определения матрицы Гессе, как функцию двух переменных:

7. Составляем функцию определения матрицы Гессе, как функцию вектора:

8. Находим норму функции. Для числа – это модуль, для матрицы – корень квадратный из суммы квадратов элементов:

Можно применять ещё для вычисления выражения и функцию eval().

9. Составляем вспомогательную функцию для поиска значений t дифференцирование первого порядка:

10. Составляем вспомогательную функцию для поиска значений t дифференцирование второго порядка:

Функция convert(,) преобразовывает один вид данных в другой, матрицу в вектор, и наоборот.

11. Определение корня методом половинного деления с точностью epss0:

Функция abs() - нахождение модуля от выражения в скобках.

12. Проверяем положительную определенность по критерию Сильвестра (определители всех главных диагональных миноров обратной матрицы Гессе должны быть положительны):

Функция SubMatrix() находит миноры матрицы в зависимости от указанных строк и столбцов, Determinant() находит определитель матрицы.

13. Составляем основную программу.

В данной программе точки носят наименование Y. Y – текущее значение точки, XX - предыдущее значение точки.

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

Иначе ищем значение обратной матрицы Гессе . Если эта матрица положительна определена, то ищем минимум функции . Иначе – .

Параметры можно менять, для получения нужного результата, если с этими значениями параметров решение не найдено. Величины этих параметров существенно влияют на скорость вычисления решения.

Затем ищем корни этой производной, чтобы определить экстремум функции . Найденный параметр (шаг) подставляем во вторую производную . Если она положительна – нашли минимум . Если нет – повторяем поиск на другом отрезке. Далее вычисляем новую точку.

Проверяем условие окончания расчета: норма разности значения функций в новой и предыдущей точке и норма разности точек должны быть меньше заданного значения epss2. Если это не так – процесс повторяется. Выход из бесконечного цикла осуществляется только тогда, когда (при условии не выполнения выше указанных) переменная k, которая увеличивается на 1 на каждой итерации, становится равной общему количеству итераций М, установленной в начале описанной программы.

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

 

14. Результат решения задачи:

15. График заданной функции реализуется с помощью функции plot3d(), аргументами которой являются сама функция, диапазон, стиль, ориентация осей и т.д., другие аргументы, использующиеся для изменения дизайна графика, зависят от желаний пользователя.


3. Приложение

 


Дата добавления: 2015-07-07; просмотров: 195 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Сходимость| Метод Ньютона

mybiblioteka.su - 2015-2024 год. (0.015 сек.)